Форма выбора программно (УФ)

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

Задача: в документе ‘ЛимитыРасходов’ в табличной части ‘Распределение’ сделать так, что бы при выборе номенклатуры пользователь сразу видел элементы из группы “Материалы”.

Делается это очень просто. Для колонки “Номенклатура” добавляем событие ‘НачалоВыбора, StartChoice’.

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

Параметр формы выбора 'ТекущаяСтрока'.
Параметр формы выбора ‘ТекущаяСтрока’.

Как работать с параметрами формы, вы можете ознакомиться в этой статей (ссылка на статью этого сайта).

Всё что нам теперь по сути остается, это написать экспортную клиентскую процедуру ‘ОбработкаВыбораНоменклатуры’, в которой мы обработаем наш выбор – поместим выбранное нами значение в реквизит. Обратите так же внимание, что с помощью параметров оповещения ‘СтруктураПараметровОповещения’ мы можем дополнительное передавать и обрабатывать нужные нам значения:

Процедура оповещения.
Процедура оповещения.

Вот таким вот простым способом, использую описание оповещения, мы можем организовать любые самые сложные задачи по организации формы выбора для реквизитов формы. Ну и бонусом процедура, которая определяет первый по алфавиту элемент группы ‘Материалы’, которую я использую для определения параметра ‘ТекущаяСтрока’:

Смело копируйте исходный код как шаблон и используете в своем выборе! Всем отличный решений и хорошего кода!

3+

Оставить комментарий

Ваш адрес email не будет опубликован.