Содержание:
1. Заполнение данных при работе в пользовательском режиме
2. Как установить отбор программно?
1. Заполнение данных при работе в пользовательском режиме
При разработке объектов конфигурации, в которых имеется реквизит ссылочного типа, нередко можно заметить свойство «Быстрый выбор», которое имеет значение типа булево. Данное свойство появилось в типовых конфигурациях 1С 8 и разработано для ускорения и облегчения заполнения данных при работе в пользовательском режиме. Допустим у нас есть справочник «Склады», мы не используем иерархию в справочнике и элементов справочника небольшое количество, а именно «Склад1» и «Склад2». Имеем документ по поступлению товаров в котором есть реквизит Склад, с типом данных СправочникСсылка и наименованием «Склады». По умолчанию, когда пользователь хочет выбрать один из складов и нажимает кнопку выбора- и открывается форма выбора и далее ему нужно выбрать одно из двух значений из формы выбора. Если это несколько документов в день- нет ничего страшного, однако если количество обрабатываемых документов исчисляется сотнями, то данное монотонное действие приведет к потере времени на рутинные операции. Для ускорения процесса целесообразно установить данную галку и при попытке выбора склада у нас выйдет спадающий список, в котором сразу можно выбрать нужный нам элемент.
2. Как установить отбор программно?
Однако что делать, если быстрый выбор нам нужен только в конкретной форме, для этих целей функция быстрого выбора реализована не только в объектах метаданных ссылочного типа, но и в элементах форм, что позволяет нам установить выбор как в настройке реквизитов формы, так и программным способом.
При использовании быстрого выбора часто возникает вопрос, как в данном случае программно установить отбор возможных вариантов выбора. Для этого следует использовать процедуру НачалоВыбора. Рассмотрим ее пример. Например, в реквизите «Организация» нам следует выводить список организаций, не помеченных на удаление:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Организации.Ссылка
|ИЗ
| Справочник.Организации КАК Организации
|ГДЕ
| НЕ Организации.ПометкаУдаления ";
ТЗ = Запрос.Выполнить().Выгрузить();
СписокОрганизаций = Новый СписокЗначений;
СписокОрганизаций.ЗагрузитьЗначения(ТЗ.ВыгрузитьКолонку("Ссылка"));
ЭлементыФормы.Организация.СписокВыбора = СписокОрганизаций;
Либо можно пойти более коротким путем:
СписокВыбора = новый СписокЗначений;
Выборка = Справочники.Организации.Выбрать(,,новый ФиксированнаяСтруктура("ПометкаУдаления",Ложь);
Пока выборка.следующий цикл
СписокВыбора.Добавить(Выборка.Ссылка);
КонецЦикла;
Элементы.Организация.СписокВыбора = СписокВыбора;
В данной статье мы рассмотрели функцию 1С быстрый выбор, как ее использовать, а также ее положительные качества относительно формы выбора.
Специалист компании «Кодерлайн»
Сергей Кулажевский