Содержание:
1. Как открыть форму списка с отбором
2. Перемещение условия по отбору в запрос
Приветствую, коллеги! В данной статье я расскажу, как работать с отбором в обычных формах списка в системе 1С:Предприятие 8.3. Мы рассмотрим как программные решения, так и решения при помощи автоматизации системы. Также будет дана инструкция по запуску формы списка с отбором.
1. Как открыть форму списка с отбором
Существуют различные варианты в системе 1С для открытия и работы с формами списка, которые содержат какой-то, установленный раннее, отбор. Рассмотрим все способы.
Первый, наиболее очевидный способ открыть форму списка с отбором – отметить специальный параметр «Отбор» внутри формы. После этого необходимо запустить данную форму списка, учитывая параметр. Сам параметр «Отбор» является структурой. Исходя из представления структуры, можно сделать вывод, что наименования элементов и наименования полей будут иметь однозначное соответствие. Как раз основываясь на данном соответствии и будет происходить отбор, а внутри самих значений находятся и значения по отбору. Параметр «Отбор» является расширением внутри формы, которой можно управлять, и которая принадлежит динамическому списку. То есть, параметр может существовать только для тех форм, которые в основном реквизите содержат тот реквизит, который имеет тип «Динамический список». Примером подобных форм являются формы со списком и формы с выбором.
Во время запуска формы списка в 1С 8 отбор будет осуществлён по конкретному полю, которое было избрано. В примере кода ниже показано, как открыть список с приходными накладными, которые имеют отбор в поле «Номер», для примера было взят номер «333»:
Рис. 1 Пример отбора в форме списка в 1С
Следующий вариант открытия формы, а в последствии и работы с ней, – код, который используется без параметров:
Рис. 2 Вариант открытия формы списка в 1С 8
Далее внутри обработчика по событиям внутри формы списка с приходными накладными «ПриСозданииНаСервере» нужно прописать программный код, который будет осуществлять отбор обычной формы по динамическому перечню, который представляет главный реквизит внутри формы, как показано на скриншоте примера ниже:
Рис. 3 Отбор обычной формы по динамическому перечню
Преимущество этого способа состоит в том, что «ВидСравнения» внутри отбора обычной формы в 1С можно создать не только вида «Равно», как было представлено в способе выше, но и вида «Меньше» или «Больше».
Также стоит отметить, что в данном методе есть большой минус: при помощи такого отбора обычная форма будет открыта в любом случае, не важно, откуда она была вызвана. Так что форму, которая будет вызываться данным способом, лучше не назначать в виде основной формы. В случае, если она была создана основной, то до начала отбора нужно произвести анализ того, как и откуда будет запускаться эта форма. Такой анализ может быть создан по параметрам в форме.
2. Перемещение условия по отбору в запрос
Рассмотрим помещение основного условия по отбору в запрос, который будет избирать данные в динамический список. Как пример, необходимо запустить перечень приходных накладных, внутри данной документации есть номенклатура, которая будет выделена во всём общем списке. Внутри самой формы списка при отборе в 1С нужно создать специальную команду и кнопку, которая будет отвечать за неё – «Приходные накладные».
Рис. 4 Перемещение основного условия по отбору в запрос
Далее обработчик, который будет исполнять команду по кнопке, стоит прописать, как показано на скриншоте примера кода:
Рис. 5 Обработчик реализации перемещения основного условия по отбору в запрос
Внутри данного обработчика всё работает так, что в итоге мы выведем форму списка в 1С с приходными накладными, после чего данный список передаётся в параметр формы «ФильтрПоТовару», а также в него передаётся ссылка выбранного элемента внутри перечня с номенклатурой, после чего можно открыть форму с данным параметром.
Далее можно создать специальную форму списка с документами «ПриходнаяНакладная», где необходимо прописать реквизит для формы «ФильтрПоТовару», который будет использован в виде параметра в форме во время её запуска. Далее запускаем свойства для главного реквизита внутри формы «Список». После нужно отметить «галочкой» пункт «ПроизвольныйЗапрос» и внутри строки «Настройка списка» кликаем на «Открыть». Свойства по реквизиту и действия внутри данной панели указаны на скриншоте ниже:
Рис. 6 Работа с формой списка с документами
Внутри поля «Запрос» нужно прописать следующий запрос, который указан ниже:
Рис. 7 Запрос для формы списка с документами
Обратите внимание, что в запросе был использован параметр «Товар». В данный параметр и будет передана ссылка для текущей строки внутри списка с номенклатурой, которая находится внутри параметра формы списка с приходными накладными «ФильтрПоТовару». Далее, чтобы осуществить вышеописанное действие, внутри обработчика событий формы списка «ПриОткрытии» нужно прописать код установки значения параметра для запроса «Товар»:
Рис. 8 Код в обработчике событий формы списка 1С 8
Рассмотри вышеуказанный программный код. В нём «Список.Параметры» является перечнем всех возможных параметров в запросе для динамического списка в реквизите «Список». Параметр «Товар» будет иметь то же значение, что и значение у параметра внутри формы «ФильтрПоТовару».
В результате, кликнув на «Приходные накладные», внутри формы списка в1С 8 по номенклатуре мы получим конкретный перечень приходных накладных, для которых будет указана номенклатура, которая в текущее время также выбрана внутри списка с номенклатурой.
В данной статье были представлены три возможных различных метода для открытия обычных форм с отбором, и, в последствии, работа с формами списка. Для каждого из способов были описаны все нюансы, дана инструкция и представлены преимущества и недостатки каждого.
Специалист компании «Кодерлайн»
Анна Лисовая