Куперс

Бухучет и анализ

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

Стандартный функционал для выбора значений агрегатного типа (справочников, документов, перечислений, счетов и т. п.) подразумевает выбор из всего существующего списка значений. А как быть, если список выбора необходимо ограничить? Об этом сегодня пойдет речь.

Способ 1. Использование отбора.

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

Для этого нужно для события НачалоВыбора соответствующего поля ввода определить процедуру обработки и внутри процедуры программно устанавить отбор для списка.

Далее следует пример процедуры обработки события НачалоВыбора для поля ввода СтатьяПДР. Реквизит (и поле ввода, соответственно) СтатьяПДР имеет тип СправочникСсылка.ПрочиеДоходыИРасходы. Для списка справочника «Прочие доходы и расходы» устанавливается отбор по реквизиту «Вид прочих доходов и расходов» со значением «Прочие внереализационные доходы (расходы)».

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

Обратите внимание на строку кода

ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ВидПрочихДоходовИРасходов.Доступность = Ложь;

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх