Dev ›
Тип реквизита ›
#5
11.04.24 9:31
(4)
я так делал
для события НачалоВыбора реквизита формы
Код |
---|
&НаКлиенте
Процедура НужныйЭлементФормыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
// определяем список доступных для выбора элементов
СтандартнаяОбработка = Ложь;
СписокЭлементовНужногоСправочика = НужныйЭлементФормыНачалоВыбораНаСервере();
НастройкиОтбора = ВыполнитьНастройкуОтбора(СписокЭлементовНужногоСправочика);
ПараметрыФормы = СоздатьСтруктуруПараметровФормы(НастройкиОтбора);
// тип реквизита должен совпадать с типом справочника
ОткрытьФормуМодально("Справочник.НужныйСправочник.Форма.ФормаВыбора", ПараметрыФормы, Элемент);
КонецПроцедуры
&НаСервере
Функция НужныйЭлементФормыНачалоВыбораНаСервере()
ДанныеВыбора = Новый СписокЗначений;
лЗапрос = Новый Запрос();
лЗапрос.Текст = "ВЫБРАТЬ
| НужныйСправочник.Ссылка
|ИЗ
| Справочник.НужныйСправочник КАК НужныйСправочник
|ГДЕ
| НужныеУсловияВыбора";
тзн = лЗапрос.Выполнить().Выгрузить();
Если тзн.Количество() <> 0 Тогда
ДанныеВыбора.ЗагрузитьЗначения(тзн.ВыгрузитьКолонку("Ссылка"));
КонецЕсли;
Возврат ДанныеВыбора;
КонецФункции
&НаКлиенте
Функция ВыполнитьНастройкуОтбора(СписокЭлементовНужногоСправочика)
НастройкиОтбора = Новый НастройкиКомпоновкиДанных;
ЭлементыОтбора = НастройкиОтбора.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементыОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементыОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементыОтбора.ПравоеЗначение = СписокЭлементовНужногоСправочика;
ЭлементыОтбора.Применение = ТипПримененияОтбораКомпоновкиДанных.Иерархия;
Возврат НастройкиОтбора;
КонецФункции
&НаКлиенте
Функция СоздатьСтруктуруПараметровФормы(НастройкиОтбора)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФиксированныеНастройки", НастройкиОтбора);
Возврат ПараметрыФормы;
КонецФункции |
и открывается форма справочника с отбором по определенному ранее списку элементов
аналогичное можно повесить на заполнение выпадающего списка, просто тогда нужно реквизиту ставить галку выбор из списка