Вывод в таблицу системой компоновки данных 1С

Это продолжение статьи Макет компоновки данных.

Получение данных по макету КД

Рабочий объект – это «Процессор компоновки данных».
Процессор КД получает из базы (таблиц СУБД) информацию, которая необходима пользователю, с учетом всех параметров и отборов, а так же в том виде, как необходимо для ее итогового отображения (группировки, сортировки и т.д.).

Таким образом, после инициализации процессора КД, мы можем передавать его в процессор вывода, потому что наши данные готовы для отображения пользователю (или сохранения в прикладной объект, например, в таблицу значений).

Вывод результата

Рабочий объект – это «Процессор вывода».

Процессор вывода отвечает уже за непосредственный вывод данных в нужном виде: Табличный документ, Таблица значений или Дерево значений.

Курс 1С: Эксперт. Программный вывод результата СКД в табличный документ
Программный вывод результата СКД в табличный документ

В результате работы процессора вывода, мы получаем конечный результат (вывод данных).

Пример СКД для работы с динамическим списком

Динамический список в качестве движка содержит механизм СКД. Это нам позволяет получать результаты вывода динамического списка в требуемом нам виде.

Например, получим количество строк динамического списка, с учетом всех его отборов. Для этого нам достаточно написать свою схему КД с таким же текстом запроса, как у Списка, применив настройки компоновки данных из этого списка!

В качестве полей вывода реализуем ресурс для подсчета количества ссылок (в другом динамическом списке, мы можем считать по-другому).

Курс 1С: Эксперт. Программный вывод результата СКД в ТЗ
Подсчет количества строк динамического списка

Пример СКД для отборов в таблицах

Часто может потребоваться выводить таблицу значений с данными для редактирования, например, ввод цен продажи для товаров. Предположим перед нами стоит задача — выводить в таблицу значений информацию о продажах товаров за период, для установки цен на следующий период.

Итоговая таблица должна иметь колонки

  1. Номенклатура
  2. Сумма за указанный на форме период
  3. Количество продаж за указанный на форме период
  4. Цена продажи – пустое поле, его заполняет пользователь.

Необходимо реализовать гибкую систему настроек, например

  1. Отбор по номенклатуре с различными видами сравнения, включая иерархию
  2. Отбор по контрагенту, которому осуществлялись продажи
  3. Отбор по сумме и количеству продажи
  4. Задавать поля сортировки
Курс 1С: Эксперт. Обработка гибкие отборы СКД для таблицы значений
Обработка гибкие отборы СКД для таблицы значений

Для этого

  1. Добавим на форму таблицу с необходимыми колонками.
  2. Сформируем запрос заполнения таблицы, без отборов.
  3. Создадим макет с типом СКД и укажем в качестве набора данных наш запрос.
  4. Добавим на форму объект Компоновщик настроек компоновки данных.
  5. Выведем на форму в виде элемента «Настройки» компоновщика настроек КД.
  6. Реализуем процедуру Заполнить, которая будет получать нашу Схему КД, загружать настройки с формы и выводить результат в таблицу значений.
Курс 1С: Эксперт. Обработка гибкие отборы. Инициализация СКД
Обработка гибкие отборы. Инициализация СКД

Чтобы компоновщик настроек КД содержал данные из нашей Схемы КД (поля, наборы и т.д.) его необходимо инициализировать.

Данная тема подробнее рассматривается в пакете видео-курса «Секреты 1С: Эксперта» Шаг 1. Занятие 02-02 Система компоновки данных.

Константин Ефимов | 1С: Эксперт. Фриланс Вьетнам.

КОНСТАНТИН ЕФИМОВ
Комментарии и вопросы