Урок по треку Разработка на 1С 5 мин

Система компоновки данных

Схема компоновки данных: наборы, ресурсы, параметры, варианты и программный вывод.

Почти все отчёты в типовых конфигурациях сделаны на СКД. Она даёт пользователю самому настраивать группировки, отборы и оформление, а разработчику не писать вывод вручную.

Из чего состоит

Схема компоновки данных:

  • наборы данных: запрос, объект (данные из кода), объединение (как ОБЪЕДИНИТЬ ВСЕ);
  • связи наборов: работают как левое соединение от источника к приёмнику;
  • вычисляемые поля: выражения над полями без изменения запроса;
  • ресурсы: поля, по которым считаются итоги в группировках;
  • параметры: период, организация и др.;
  • макеты, вложенные схемы.

Настройки: структура группировок, выбранные поля, отборы, сортировка, условное оформление. Сохраняются вариантами: из одной схемы получаются разные отчёты. Часть настроек выводят в шапку как пользовательские (быстрые).

Запрос набора данных

Пишется на языке запросов с дополнениями. Фигурные скобки описывают необязательные части: ГДЕ {Т.Склад} попадёт в запрос, только если пользователь задал отбор. С автозаполнением СКД сама определяет поля для отбора. Цель: чтобы отборы пользователя попадали внутрь запроса и в параметры виртуальных таблиц, а не накладывались на готовый результат.

Ресурсы и итоги

Ресурс задаётся выражением: СУММА(Сумма), МАКСИМУМ(Дата). Проценты не суммируют: наценку в итогах считают из сумм:

(СУММА(Продажа) - СУММА(Себестоимость)) / СУММА(Себестоимость) * 100

Программный вывод

Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = Схема.НастройкиПоУмолчанию;
Компоновщик = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = Компоновщик.Выполнить(Схема, Настройки);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(Макет);
Вывод = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Вывод.УстановитьДокумент(ТабДок);
Вывод.Вывести(Процессор);

Для набора «Объект» данные передают вторым параметром Инициализировать: Новый Структура("Данные", Таблица). Для расшифровки передают ДанныеРасшифровкиКомпоновкиДанных в Выполнить и Инициализировать. Чтобы получить результат как таблицу значений, используют ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.

Расшифровка

Данные расшифровки связывают ячейки результата со значениями полей. По клику открывается объект или новый отчёт с отбором по ячейке. Своё поведение задают в обработчике ОбработкаРасшифровки формы отчёта.

Производительность отчётов

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

В конфигурациях на БСП отчёты подключаются к подсистеме «Варианты отчётов»: хранение вариантов, размещение в разделах, рассылка.

Что спросят на собесе

  • Из чего состоит СКД?
  • Что такое ресурс и как правильно посчитать итог по проценту?
  • Как вывести отчёт программно?
  • Как передать в отчёт таблицу значений?
  • Почему отчёт на СКД тормозит и как ускорить?

Закрепите за 5 минут

После урока в тренажёре 3-5 проверочных вопросов, дальше модуль уходит в повторения.