Группа: Пользователи
Сообщений: 205
Спасибо сказали: 3 раз
Рейтинг: 3.6
Имеется самописная конфигурация. В конфигурации есть документы с формой списка
Для всех пользователей отображается поле отбора test1, а для пользователей с ролью test отображается только поле отбора test. Это поле имеет ссылку на справочник контрагентов.
В документе есть поле Кто платит. Пользователи с ролью test всегда будут выбирать только одного плательщика Компания. Теперь сама проблема, нужно что бы когда пользователь переходит на список документов у него автоматически подставлялся в поле отбора test контрагент Компания.
Как это можно очень просто реализовать, я далек от 1С
Я думал так проще, так фильтр настроил, показывает правильно. Осталось только по умолчанию сделать только определенного плательщика Вот так сделан отбор по плательщику, Если здесь можно прописать что брать такого то контрагента, то подскажите пожалуйста как
// Создадим группу компановки ИЛИ ГруппаКомпоновкиОтбор = ЭлементыОтбора.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаКомпоновкиОтбор.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; //Отбор по отправителю ЭлементОтбораКурьеркаОтправитель = ГруппаКомпоновкиОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораКурьеркаОтправитель.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Плательщик"); ЭлементОтбораКурьеркаОтправитель.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораКурьеркаОтправитель.Использование = Истина; ЭлементОтбораКурьеркаОтправитель.ПравоеЗначение = Справочники.Контрагенты.НайтиПоКоду("000002643");
КонецЕсли;
КонецПроцедуры
ПРи проверке говорит что переменная не определена {Документ.ДекларацияПочта.Форма.ФормаСписка.Форма(88,55)}: Змінна не визначена (Справочники) ЭлементОтбораКурьеркаОтправитель.ПравоеЗначение = <<?>>Справочники.Контрагенты.НайтиПоКоду("000002643"); (Перевірка: Тонкий клієнт)
// Создадим группу компановки ИЛИ ГруппаКомпоновкиОтбор = ЭлементыОтбора.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаКомпоновкиОтбор.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; //Отбор по отправителю ЭлементОтбораКурьеркаОтправитель = ГруппаКомпоновкиОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораКурьеркаОтправитель.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Плательщик"); ЭлементОтбораКурьеркаОтправитель.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораКурьеркаОтправитель.Использование = Истина; ЭлементОтбораКурьеркаОтправитель.ПравоеЗначение = Контрагент.НайтиПоКоду("000002643");
КонецЕсли;
КонецПроцедуры
Захожу в список документов, отбор не делает тоже. Пробую отобрать документы в ручную, и при выборе контрагента выскакивает ошибка Метод обьекта не обнаружен (НайтиПоКоду)
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0
Не вчитывался особо в тему, если что извините. В УПП, например, есть общий модуль ОбщегоНазначенияКлиентСервер в котором есть полезные процедуры и функции по отбору динамических списков. Я например часто пользуюсь процедурой УстановитьЭлементОтбораДинамическогоСписка. Может содрать от туда эти процедурки и будет Вам счастье по установке отборов.
Сообщение отредактировал Batchir - 24.03.17, 11:39
Группа: Пользователи
Сообщений: 205
Спасибо сказали: 3 раз
Рейтинг: 3.6
Vidocq05 @ Сегодня, 12:40
,
Убрал строку, ошибок никаких нет, не знаю для чего оно
Прописал еще вот что, и заработало
&НаКлиенте Процедура ПриОткрытии(Отказ) Если ЗначениеЗаполнено(Организация) Тогда УстановитьПараметрыОтбораПользователя(); КонецЕсли; [b]УстановитьПараметрыОтбораПлательщикПользователя();[/b]
КонецПроцедуры
Но как только заходишь в базу под нужным пользователем его сеанс подвисает, много документом в базе. А есди сделать по автору документа, это не ускорит?
Или может можно сделать в отборе что бы не брались во внимание документы которые младше 01.01.2017?
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(kot488 @ 24.03.17, 11:44)
А это куда вписвать?
Учите что такое Клиент/Сервер, у вас сейчас нет и этого понимания, поэтому вы пишите шо попало. Сори за резкость, но, я либо учился, либо просто попросил кого-то сделать, а так мучаете и себя и отвечающих тут...
Личные бесплатные консультации не даю, для этого есть форум!
// Создадим группу компановки ИЛИ ГруппаКомпоновкиОтбор = ЭлементыОтбора.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаКомпоновкиОтбор.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; //Отбор по отправителю ЭлементОтбораКурьеркаОтправитель = ГруппаКомпоновкиОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораКурьеркаОтправитель.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтправительСлужбаДоставки"); ЭлементОтбораКурьеркаОтправитель.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораКурьеркаОтправитель.Использование = Истина; ЭлементОтбораКурьеркаОтправитель.ПравоеЗначение = Организация; //Отбор по получателю ЭлементОтбораКурьеркаОтправитель = ГруппаКомпоновкиОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораКурьеркаОтправитель.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПолучательСлужбаДоставки"); ЭлементОтбораКурьеркаОтправитель.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораКурьеркаОтправитель.Использование = Истина; ЭлементОтбораКурьеркаОтправитель.ПравоеЗначение = Организация;
КонецЕсли;
КонецПроцедуры
Посмотрел список документов, от пользователя которому не доступно поле Плательщик, у них тоже делается отбор по Вашему коду выше, и все отображается только список документов в которых контрагент 000002643
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!