1с форма выбора справочника

1С:Предприятие 8 поддерживает готовую функциональность для организации выбора из форм списков объектных данных (справочников, документов и т.д.). В большинстве случаев выбираются именно такие значения. Однако, в некоторых случаях, необходимо организовать выбор и других значений. Механизм форм 1С:Предприятия 8 включает универсальный механизм выбора, позволяющий организовать выбор практически любых значений.

Для этого используется возможность открытия формы в режиме выбора и возможность обработки события выбора.

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

Вначале создадим новую форму списка регистра сведений и назовем ее «ФормаВыбора». В форме реализуем событие Выбор табличного поля отображающего список.

В этом событии мы отменяем стандартное действие, предусмотренное расширением табличного поля, и вместо него вызываем метод ОповеститьОВыборе() , передавая ему в качестве параметра текущую строку. Значением текущей строки будет являться значение типа РегистрСведенийКлючЗаписи. .

Теперь реализуем функциональность выбора в той форме, в которой это требуется. Например, в форме обработки, имеющей поля ввода «Валюта» и «Период».

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

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

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

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

Заметим, что в качестве владельца формы может устанавливаться не только сама форма, в которой осуществляется выбор, но и ТабличноеПоле , ПолеВвода и ПолеВыбора . Соответственно и обработчик выбора нужно будет реализовывать у этих элементов управления.

Открываем форму выбора 1С 8.3

Параметры формы выбора

Обработка выбора

Т.к. мы используем отказ от модальности, то для обработки выбранного значения нам необходимо инициализировать описание оповещения, где указать процедуру продолжения и при необходимости передать дополнительные параметры.

ВАЖНО. Процедура в оповещении должна быть экспортной и содержать два параметра (внашем случае «Значение» и «ДопПараметры»)

Процедура обработки выбора

Здесь все предельно просто. Основной момент в том, что процедура должна быть Экспортной и Клиентской
Надеемся данный пример оказался полезным для Вас. Спасибо!

Для того чтобы открыть форму выбора с отбором в 1с 8.2 (обычные формы), нам нужно выполнить некоторые действия. Сначала мы ее получим. После этого выставим отбор и программно откроем, вот пример кода:

Отбор на форме в поле ввода 1С 8.2 с несколькими значениями

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

Для начала получаем форму выбора, в параметрах передаем «Элемент» (владельца), устанавливаем флаг режима выбора. Потом создаем список значений и массив, отмечаем что в качестве отбора когда устанавливается вид сравнения в списке, может присутствовать объект только с типом СписокЗначений. Добавляем элементы в массив, затем этот массив загружаем в СписокЗначений который в следствии мы устанавливаем в отборе. Также не забываем включить флаг использования данного отбора, и установить ВидСравнения.

Установка отбора в поле ввода на форме в 1С 8.3, событие НачалоВыбора

Теперь рассмотрим отбор в поле ввода на управляемой форме в 1С 8.3. Найдем на форме интересующий нас элемент, в котором мы будем устанавливать отбор, в нашем случае это поле «Организация». Находим событие «НачалоВыбора», щелкаем на лупу и оказываемся в процедуре. Мы видим параметр ДанныеВыбора, этот параметр имеет тип СписокЗначений. Для того чтобы ограничить выбор необходимыми элементами , нам необходимо заполнить СписокЗначений. Элементы выбрать можем только на сервере, поэтому создаем процедуру с директивой компиляции &НаСервере. В данной процедуре заполняем ДанныеВыбора.

Как альтернатива можно воспользоваться вариантом как описано открытие формы выбора с отбором для 1С 8.2, конечно код возможно чуть-чуть придется модифицировать, но суть остается та же.

У нас вы можете заказать услуги сопровождения 1с баз данных, а также любые доработки для 1с.

Оцените статью
Все о Windows 10
Добавить комментарий

Adblock
detector