Назначение: получение управляемой формы выбора с заданным отбором (предполагается, форма выбора уже есть в конфигурации).
Номенклатура объектов: справочник «Контрагенты», документ «Поступление товаров и услуг». Накладываем отбор на справочник «Контрагенты».
Разработка на форме:
1.На форме документа встаем на поле «Контрагент».
Номенклатура объектов: справочник «Контрагенты», документ «Поступление товаров и услуг». Накладываем отбор на справочник «Контрагенты».
Разработка на форме:
1.На форме документа встаем на поле «Контрагент».
2.В свойствах в разделе «События» создаем событие «НачалоВыбора».
Процедура КонтрагентНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; // получаем форму выбора, как она задана в конфигураторе ФормаКонтрагенты = Справочники.Контрагенты.ПолучитьФормуВыбора("ФормаВыбораУправляемая",Элемент,); ДинамическийСписокФормыВыбора = ФормаКонтрагенты.Список; ЭлементОтбора = ДинамическийСписокФормыВыбора.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; // тип только СписокЗначений, строка "ВидСравнения" обязательно перед строкой "ПравоеЗначение" ЭлементОтбора.Использование = Истина; СписокКонтрагентов = ПолучитьКонтрагентовДляВыбора(); ЭлементОтбора.ПравоеЗначение = СписокКонтрагентов; // если отбираем по наименованию, то в списке значений должны быть наименования. // можно применять различные поля отбора и различные виды сравнения. //---- если требуется, чтобы пользователь не видел на форме условия отбора--- //ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; //--------------------------------------------------------------------------- ФормаКонтрагенты.Открыть(); КонецПроцедуры Функция ПолучитьКонтрагентовДляВыбора() Список = Новый СписокЗначений; // заполняем список значений, по которому будем отбирать Список.Добавить(Справочники.Контрагенты.НайтиПоКоду("00012").Наименование); Список.Добавить(Справочники.Контрагенты.НайтиПоКоду("00022").Наименование); Список.Добавить(Справочники.Контрагенты.НайтиПоКоду("00052").Наименование); Возврат Список; КонецФункции
Комментариев нет:
Отправить комментарий