Подготовка данных для отчета в 1С

Подготовка данных для отчета в 1С

Подготовка данных для отчета

Система компоновки данных предназначена для создания отчетов в 1С:Предприятие на основе их декларативного описания. Использование декларативного описания отчетов позволяет реализовать следующие возможности:

  • Создание отчета без программирования.
  • Возможность создания различных вариантов отчета.
  • Возможность задания различных вариантов пользовательских настроек.
  • Использование автоматически генерируемых форм просмотра и настройки отчета.
  • Разбиение исполнения отчета на этапы.
  • Исполнение отдельных этапов построения отчета на различных компьютерах.
  • Независимое использование отдельных частей системы компоновки данных.
  • Программное влияние на процесс выполнения отчета.
  • Настройки структуры отчета.
  • Использование нескольких наборов данных.
  • Совмещение в отчете нескольких таблиц.
  • Создание вложенных отчетов и т.д.

Возможности системы компоновки данных используются:

  • При формировании отчетов.
  • При работе динамических списков.
  • При подготовке данных для последующей обработки.

Подготовка данных для отчета начинается с описания схемы источника данных. «Наборы данных» получают данные из описанного «Источника данных». В отчете можно использовать любое количество наборов данных.

Работа с источниками данных

Выделяют три набора данных:

Доступные варианты наборов данных
  • «Набор данных – запрос» – это выборка из базы данных на основе языка запросов. В запросе определяются только обязательные поля, которые могут потребоваться в отчете. По итогу запрос строится системой динамически на основе выбранных полей в варианте отчета из списка обязательных полей первоначального запроса.
Набор данных – запрос
  • «Набор данных – объект» – это имя внешнего источника, который представлен в виде реального объекта конфигурации (справочник, документ и т.д.) или в виде области памяти компьютера, содержащей данные из «Таблицы значений», результата запроса, области ячеек табличного документа или набора записей регистра.
Набор данных – объект
  • «Набор данных – объединение» – служит для объединения нескольких «Наборов данных» любого типа в один «Набор данных». В результате формирования отчета информация, из разных наборов данных не связывается, а объединяется.
Набор данных – объединение

Запросы в СКД

Особенность СКД при работе с «Набором данных – Запрос» заключается в том, что запрос, выполняемый платформой может отличаться от запроса, написанного в самом наборе данных. На рисунке ниже представлены запросы: слева исходный запрос, справа запрос, сгенерированный платформой при формировании отчета. Например, для агрегатных полей добавляются представления.

Отличия в запросах

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

Отбор на уровне отчета
Добавленное условие отбора в запросе к БД

При добавлении отбора для группировки (даже для «Детальной группировки»), в настройках системы компоновки данных, условия отбора не помещаются в текст запроса.

Отбор на уровне группировки
Отсутствие условия отбора в запросе к БД

Автоматическое заполнение доступных полей

При включении режима «Автозаполнение» выполняются следующие действия:

  • Все поля списка выборки и их дочерние поля становятся доступными для отбора, порядка, выбора, группировки.
  • Параметры виртуальных таблиц становятся доступными для отбора.
  • Параметры, указанные в запросе становятся доступными для отбора.
  • Поля виртуальных таблиц, не вошедшие в список выбранных, но на которые можно наложить условия в параметрах этих таблиц, становятся доступными для отбора.

 

Автоматическое заполнение доступных полей

Расширение языка запросов для системы компоновки данных

Язык запросов для СКД можно расширить с помощью специальных синтаксических конструкций, которые заключаются в фигурные скобки { }.

При использовании расширения языка запросов, правильно будет убирать флаг «Автозаполнение», тогда список полей будет заполняться согласно настройкам расширения языка запросов.

В секции ВЫБРАТЬ можно перечислить псевдонимы полей, которые будут пользователю доступны для вывода в отчете.

Если в записи поля присутствует звездочка в конце ссылочного поля, то пользователю будут доступны подчиненные поля.

В секции ГДЕ можно перечислить псевдонимы полей, которые будут пользователю доступны в отборах отчета. Дополнительно можно указать готовые условия отбора.

Настройка набора данных

Ограничения на поля и на подчиненные реквизиты

На поля и на подчиненные реквизиты полей можно наложить ограничения (ограничения действуют и в режиме 1С:Предприятие и в конфигураторе):

  • «Ограничение поля» позволяет запретить использование поля. Важно! Если не установлены ограничения на реквизиты, ограничения на поля не будут отрабатывать.
  • «Ограничение реквизитов» позволяет запретить использование вложенных реквизитов (доступно только у агрегатных реквизитов).

Возможно указать следующие ограничения:

  • «Поле» – не будет доступно для отображения (на закладке «Поля» и на закладке «Пользовательские поля»).
  • «Условие» – не будет доступно в отборах (на закладке «Отбор»).
  • «Группа» – не будет доступно в группировках.
  • «Упорядочивание» – не будет доступно для упорядочивания (на закладке «Сортировка»).

 

Ограничение поля и реквизитов

Тип значения и доступные значения

«Тип значения» – влияет на допустимые типы значений при выборе поля в качестве значения отбора. В основном применяется для полей составного типа, чтобы конкретизировать используемый тип в отчете.

«Доступные значения» – список доступных значений для указания в отборе. При этом можно изменить представление самих значений. Предварительно необходимо обязательно выбрать «Тип значения» для поля.

Доступные значения
Результат использования доступных значений

Соединение наборов данных

При использовании нескольких наборов данных их можно соединить, но при формировании отчета само соединение выполняется на стороне сервера 1С:Предприятие.

При определении в схеме компоновки данных связи между двумя наборами данных используется левое соединение первого набора ко второму, в ряде случаев устанавливается внутреннее соединение.

«Источник связи» – это основной набор данных, «Приемник связи» – это подчиненный набор данных.

«Выражение источник» и «Выражение приемник» – это поля наборов данных по которым осуществляется связь

Настройка связи между двумя наборами данных
Исходный отчет для объяснения флага «Обязательная связь»

Флаг «Обязательная связь» определяет обязательность использования связи при разных вариантах выбранных полей пользователем:

  • Если флаг установлен, то связь будет использоваться, только если присутствует хотя бы одно поле из набора данных «Приемник связи».
Выбраны только поля «Приемник связи» – не учитывается связь
Выбраны только поля «Источника связи» – учитывается связь
  • Если флаг отсутствует, то связь будет использоваться только, если пользователь выбрал поле из поля «Выражение источник».
Выбрано поле «Номенклатура» – учитывается связь
Не выбрано поле «Номенклатура» – не учитывается связь

Иерархические списки

СКД позволяет создавать иерархические списки в отчете не только на основе иерархических справочников, но и на основе линейных списков.

Результат формирования иерархического списка в отчете

Для построения иерархии создается набор данных, который связывается сам с собой и соединяется с набором данных, содержащим простой список.

Набор данных содержащий простой список
Набор данных для формирования иерархии
Связь иерархического набора данных с самим собой

При связывании набора данных «ИерархияСотрудников» с самим собой, в качестве выражения источника указывается искомое поле (в примере это поле «Руководитель»), а в качестве выражения приемника указываем поле, в котором будет осуществляться поиск (в примере это поле «Сотрудник»). Получается, из каждой записи будет получено значение поля «Руководитель» и это значение система будет искать в списке значений поля «Сотрудник». Таким образом, система рекурсивно получит все записи и представит их в виде иерархии. Значение руководителя будет передаваться в параметр «Ссылка». Параметр может принимать список значений, поэтому поставим флаг в поле «Список параметров».

Создаем вторую связь, которая будет указывать, что поле «Сотрудник» набора данных «Сотрудники» следует связывать с полем «Сотрудник» иерархического набора данных «ИерархияСотрудников». Также указываем параметр «Ссылка», а раз он может принимать список значений, ставим флаг в поле «Список параметров».

Важно! Поля, которые обозначают иерархический уровень в наборах данных должны называться одинаково. В нашем примере, в одном наборе данных и в другом поля называются «Сотрудник».

Связь простого списка с иерархическим

Чтобы поля вспомогательного набора данных «ИерархияСотрудников» не отображались у пользователя, их отключают в настройках доступности у набора данных.

Ограничения для иерархического набора данных
Структура отчета с иерархией

Отбор на вхождение в группу собственной иерархии

Если необходимо разрешить установку отбора на вхождение в группу собственной иерархии, отличной от стандартной используется «Проверка иерархии» на закладке «Набор данных». Для этого добавляется новый набор данных, при помощи которого будет осуществляться проверка иерархии.

Набор данных для проверки вхождения в группу

Для набора данных организуется связь с самим собой. Выражение источник «ПроверкаИерархииСотрудника», приемник «РодительИерархииСотрудника». Параметр связи «Руководитель», с возможностью использования списка.

Связь набора данных проверки иерархии с самим собой

Для набора данных «Сотрудники» указывается набор данных проверки иерархии «ПроверкаИерархии», в качестве параметра указывается параметр из набора данных «ПроверкаИерархии». Теперь система будет использовать набор данных «ПроверкаИерархии» для проверки иерархических условий.

Настройка проверки иерархии

Результат настройки представлен на рисунке.

Результат отбора на вхождение в группу собственной иерархии

При попытке выбрать сотрудника может возникнуть ошибка: «Выберите группу, а не элемент.». Дело в том, что система при условии «В группе» ожидает от пользователя выбора группы, а не элемента. Поэтому, либо меняем условие на «Равно», выбираем элемент, после устанавливаем условие «В группе» или с клавиатуры в поле значения набираем фамилию сотрудника.

Установка элемента вместо группы

Язык выражений компоновки данных

В системе компоновки данных используется «Язык выражений компоновки данных».

Язык выражений системы компоновки данных предназначен для записи выражений, используемых в различных подсистемах, таких как:

  • Схема компоновки данных ‑ для описания вычисляемых полей, полей итогов, выражений связи и т. д.
  • Настройки компоновки данных ‑ для описания выражений пользовательских полей.
  • Макет компоновки данных ‑ для описания выражений связи наборов данных, описания параметров макета и т. д.

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

Вызов функции общего модуля

Колонка в отчете, значение которой будет вычисляться по некоторым выражениям с использованием полей исходного набора данных, может быть создана в окне конструктора схемы компоновки в разделе: «Вычисляемые поля», «Параметры», «Макеты», «Настройки» на закладке «Пользовательские поля».

Вычисляемые поля

«Вычисляемые поля» позволяют дополнить существующий состав полей компоновки данных, определенных на закладке «Наборы данных» или заменить существующие поля, определенные на закладке «Наборы данных».

Вычисляемые поля могут использовать арифметические выражения, конструкцию «ВЫБОР КОГДА ТОГДА КОНЕЦ», и обращаться к экспортным функциям общих модулей системы.

Важно! Вычисляемые поля нельзя использовать в выражении других вычисляемых полей.

Добавление вычисляемых полей
Результат использования вычисляемых полей

Поля ресурсов

«Поля ресурсов» – это поля, значения которых вычисляются для групповых записей, где в качестве выражения используется язык выражений системы компоновки данных. В качестве поля ресурса может выступать не только числовое поле, но и поля других типов.

Ресурсы могут быть рассчитаны в разрезе всех группировок или в разрезе конкретных группировок, при этом будут рассчитаны ресурсы и для вложенных группировок.

Настройка полей ресурсов
Результат использования полей ресурсов

Параметры

Схема компоновки данных может содержать параметры для выполнения сложных отборов.

Параметры можно создать:

  • Автоматически, на основании текста запроса.
  • Интерактивно на закладке «Параметры».
  • Программно.

Для параметра можно указать признак обязательности использования, а также запретить использование незаполненного параметра.

Система компоновки данных позволяет использовать стандартные периоды. Для добавляем параметр типа СтандартныйПериод, а в параметрах – даты указываем соответствующие выражения, а также запрещаем их редактирование пользователем.

Настройка параметров

Ваганов Сергей, эксперт в области разработки прикладных решений на платформе 1С:Предприятие, преподаватель-методист CORS Academy и автор курса «Разработчик 1С с нуля до профессионала».

Подготовка данных для отчета в 1С
Подписаться
Уведомить о
guest

wp-puzzle.com logo

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

подпишитесь на рассылку академии

2 письма в неделю со свежими новостями о скидках, курсах и других событиях

Нажимая на кнопку “Подписаться”, вы даете согласие на обработку персональных данных