1с как открыть форму выбора с отбором

от admin

1С отборы в форме выбора

Форма выбора открывается при нажатии на кнопку выбора у элемента формы. Если требуется наложить отборы на выбираемые значения или открыть другую форму, то необходимо использовать событие элемента формы НачалоВыбора.

Процедура для обычного приложения

Процедуры для управляемого приложения

Настройка отборов с использованием объекта НастройкиКомпоновкиДанных. Есть возможность задать вид сравнения, доступность элементов отбора для редактирования и т.д.

Настройка отборов с использованием структуры. Это более простой вариант открытия формы выбора с установленными отборами. В этом варианте некоторые настройки недоступны.

Комментарии (0)

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Как программно открыть форму выбора с отбором?

Для открытия формы выбора (справочника, документа и т.п.) необходимо воспользоваться параметрами открываемой формы.

Обязательным условием является наличие в открываемой форме динамического списка, который назначен основным реквизитом формы. В качестве полей отбора можно воспользоваться любым полем, настроенным в динамическом списке.

Давайте рассмотрим работу механизма на примере: в документе «Поступление товаров» при выборе контрагента необходимо выбирать только поставщиков (отбор будем производить по реквизиту Поставщик типа Булево справочника «Контрагенты»).

Для начала, проверим наличие поля отбора «Поставщик» в настройках отбора динамического списка. Для этого откроем форму выбора справочника «Контрагенты» и перейдем к настройкам динамического списка:

Мы видим, что поле Поставщик есть среди полей отбора. Значит, наш отбор работать будет (на самом деле, мы можем добавить дополнительные поля в динамический список и использовать их для отбора):

Теперь нам осталось написать только код процедуры, который будет вызывать форму выбора:

Читать:
Nvidia geforce gt 1030 что потянет

Как видите, ничего сложного нет: мы создаем структуру, имитирующую отбор (ключ структуры — имя поля отбора, а значение — значение отбора), и включаем его в параметры открываемой формы.

1С 8.3 Открываем форму выбора с отбором — Программист 1С Минск. Автоматизация бизнеса.

Отбор = НастройкКД . Отбор . Элементы . Добавить ( Тип ( «ЭлементОтбораКомпоновкиДанных» ));
Отбор . ЛевоеЗначение = Новый ПолеКомпоновкиДанных ( «Ссылка» );
Отбор . ВидСравнения = ВидСравненияКомпоновкиДанных . ВСписке ;
Отбор . ПравоеЗначение = ПолучитьСписокЗначенийНаСервере ( Элементы . ИмяТаблЧасти . ТекущиеДанные . Реквизит1 );
Отбор . Использование = Истина;
Отбор . РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных . Недоступный ;

ПарФормы = Новый Структура ;
ПарФормы . Вставить ( «ФиксированныеНастройки» , НастройкКД );

ОткрытьФорму ( «Справочник.Контрагенты.ФормаВыбора» , ПарФормы , Элемент );

&НаСервере
Функция ПолучитьСписокЗначенийНаСервере ( РеквизитТЧ )

// Пишем нужный запрос с отбором по реквизиту табличной части
СписокОтбора = Новый СписокЗначений ;

Запрос = Новый Запрос ;
Запрос . Текст = «ВЫБРАТЬ
| Страны.Ссылка
|ИЗ
| Справочник.Страны КАК Страны
|ГДЕ
| Страны.ЧастьСвета = &Европа» ;
Запрос . УстановитьПараметр ( «Европа» , РеквизитТЧ );

Выборка = Запрос . Выполнить (). Выбрать ();
Пока Выборка . Следующий () Цикл
СписокОтбора . Добавить ( Выборка . Ссылка );
КонецЦикла;

Как открыть форму выбора с определенным отбором в 1С 8.3 ?

Часто требуется дополнить условия выбора объекта на форме. Для этого существует обработчик события «НачалоВыбора». В примере приведен случай когда при выборе договора нужен отбор по реквизиту Контрагент, заданного на форме. Для элемента управления «Договор» формируем обработчик события «ДоговорНачалоВыбора», в котором пишем следующий код:

&НаКлиенте
Процедура ДоговорНачалоВыбора ( Элемент , ДанныеВыбора , СтандартнаяОбработка )

СтандартнаяОбработка = Ложь;
ЗначениеОтбора = Новый Структура ( «Контрагент» , Объект . Контрагент );
ПараметрыВыбора = Новый Структура ( «Отбор» , ЗначениеОтбора );
ОткрытьФорму ( «Справочник.ДоговорыКонтрагентов.ФормаВыбора» , ПараметрыВыбора , Элемент );

Похожие статьи