Отчеты
Система компоновки данных: устройство
Доп. материалы к книге. Архив распаковывается, устанавливается база из папки report82/conf/setup.exe Весит немного. Затем при добавлении новой базы указать новую и в списке будет данный шаблон.
Этапы формирования отчета:
- Разработчик создает схему компоновки данных и стандартные настройки компоновки, которые содержат полную информацию о компоновке.
- На основе схемы компоновки данных и настроек компоновки, компоновщик макета создает макет компоновки данных, который является уже готовым заданием для процессора компоновки.
- Процессор компоновки данных в соответствии с макетом компоновки извлекает данные из информационной базы, агрегирует, оформляет эти данные и формирует результат компоновки. Результат компоновки состоит из массива элементов, которые можно получать последовательно, но в большинстве случаев результат компоновки получается целиком.
- Процессор вывода обрабатывает результат компоновки и выводит его в различные форматы: табличный документ, HTML-документ, таблица значений, дерево значений.
Схема компоновки данных
Схема компоновки данных (СКД) – декларативный инструмент создания отчетов. Состоит из набора элементов, у каждого свое декларативное описание и возможность XML сериализации. Создать СКД можно при помощи конструктора, через создание XML документа или через код.
Состав СКД:
Наборы данных.
Источник данных для отчета. Получают из информационной базы или из некоторых объектов в памяти (например, из таблицы значений). Один отчет может использовать одновременно несколько наборов данных. Виды наборов данных:
- Запрос – содержит запрос к базе данных на языке запросов с использованием дополнительных синтаксических элементов (расширений)
- Объект – содержит информацию о внешнем наборе данных, например, таблице значений;
- Объединение – объединяет информацию из нескольких наборов данных.
Связи наборов данных.
Используется для описания правил объединения наборов данных. Аналог соединения и объединения в языке запросов.
Вычисляемые поля.
Ресурсы.
Групповые итоговые данные. В большинстве случаев необходимо указывать.
Параметры.
Параметры для набора данных, обычно задается пользователем.
Макеты.
Вложенные схемы.
Использование данных одного отчета внутри другого.
Настройки.
Определение стандартных настроек. Аналогичное окно при пользовательской настройке.
Книги
Хрусталева Е. Ю. Разработка сложных отчетов
Алгоритм преобразования задачи в реализацию
Дано: есть представление в голове заказчика, как должен выглядеть отчет (таблицы, диаграммы).
Шаг 1. В 1С каждый отчет работает только с одной таблицей данных. Использование нескольких независимых (или почти независимых) таблиц достигается за счет вложенных схем и возможной передачи параметров из основной схемы во вложенную. Здесь начинается искусство, похожее на создание классов в нормальных языках: вариантов много, нужно выбрать более простой с одной стороны и функциональный с другой.
Результат: разделение всех необходимых данных на независимые таблицы. ВАЖНО. Под независимой таблицей данных отчета понимается таблица, получившаяся в результате шага 2, т е это может быть объединение нескольких таблиц базы.
Шаг 2. За счет наборов данных, связей наборов данных, вычисляемых полей, ресурсов и параметров получаем сырую таблицу, но полностью включающую в себя все строки и столбцы. Деталь: есть группировка на уровне запроса (при создании набора данных через запрос) и группировка на уровне настройки отчета. При работе с отчетами, в наборе данных нужно получать сырую таблицу, без группировок/итоговых расчетов.
Результат: неоформленная таблица с необходимыми данными и полями настроек.
Шаг 3. При помощи Настроек используя Макет (один из стандартных или созданный вручную), создается внешнее оформление.
Шаг 4. Сборка всего вместе и наслаждение результатом.
Макеты
Добавление параметра макета в отчёт: Для ячейки макета, в которой будет отображаться поле, в палитре свойств установить свойство «Заполнение» в «Параметр». В качестве значения свойства «Параметр» установить имя параметра макета. Затем в списке параметров макета установить в качестве выражения представление выводимого поля.