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