Доброго всем дня.
Есть задача. При выборе реквизита (Событие НачалоВыбора) открывать форму выбора с отбором. Отбор сложный (есть условие не в списке, поэтому через параметры выбора данный вопрос решить не получается)
Нашла в интернете такой способ
Код отрабатывает, фиксированные настройки заполняются, появляются в открываемой форме, но на саму форму эти отборы не повлияли. Какие еще настройки необходимо заполнить, чтобы форма открылась с отбором? (форма выбора содержит динамический список)
Есть задача. При выборе реквизита (Событие НачалоВыбора) открывать форму выбора с отбором. Отбор сложный (есть условие не в списке, поэтому через параметры выбора данный вопрос решить не получается)
Нашла в интернете такой способ
НастройкиОткрытия = Новый НастройкиКомпоновкиДанных;
ЭлементОтбораОрганизация = НастройкиОткрытия.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораОрганизация.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация");
ЭлементОтбораОрганизация.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораОрганизация.ПравоеЗначение = СтруктураОтбора.Организация;
ЭлементОтбораОрганизация.Использование = Истина;
ЭлементОтбораОрганизация.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбораСсылка = НастройкиОткрытия.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораСсылка.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементОтбораСсылка.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ЭлементОтбораСсылка.ПравоеЗначение = СтруктураОтбора.МассивДоговоров;
ЭлементОтбораСсылка.Использование = Истина;
ЭлементОтбораСсылка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбораКонтрагент = НастройкиОткрытия.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораКонтрагент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
ЭлементОтбораКонтрагент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораКонтрагент.ПравоеЗначение = СтруктураОтбора.Контрагент;
ЭлементОтбораКонтрагент.Использование = Истина;
ЭлементОтбораКонтрагент.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФиксированныеНастройки", НастройкиОткрытия);
ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Форма.ФормаВыбора", ПараметрыФормы);
ПоказатьКод отрабатывает, фиксированные настройки заполняются, появляются в открываемой форме, но на саму форму эти отборы не повлияли. Какие еще настройки необходимо заполнить, чтобы форма открылась с отбором? (форма выбора содержит динамический список)
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Во первых в качестве коллекции в отбор нужно передавать СписокЗначений. Это такая особенность. Во вторых, на форме выбора, скорее всего выведены обычные реквизиты формы, значения которых устанавливается в отборе. Если так, то вряд ли можно будет повлиять на эти отборы. Если форма обычная (без всяких специфических полей и пр.) тогда не фиксированные настройки передавайте, а Пользовательские. Они по умолчанию должны вывестись, как если бы пользователь сам делал отборы.
В ходе эксперимента выяснила, что фиксированные настройки из первого варианта отрабатывают. Причина была в том, что у меня на форме в пользовательском режиме не было выведено поле, по которому шел отбор. В динамическом списке оно было, поэтому подумала, что отбор должен сработать, но нет. Как только я сделала, чтобы отбор шел по партнеру(оно было на форме), а не по контрагенту(этого поля не было), все заработало по примеру кода из первого сообщения.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот