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

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

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

Создание схемы компоновки данных (СхКД) может быть выполнено:

  • при помощи конструктора схемы компоновки данных;
  • при помощи любого редактора, позволяющего редактировать текст XML;
  • программно, при помощи объектов встроенного языка системы «1С:Предприятие».

СхКД может содержать:

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

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

Вкладки (разделы) схемы компоновки данных:

Наборы данных

Вкладка "Набор данных" предназначена для добавления набора данных (одного или нескольких), из которого в отчет будут получены данные. 

В системе компоновки данных (СКД) можно использовать следующие наборы данных:

  1. набор данных - запрос;
  2. набор данных - объект;
  3. набор данных - объединение.
Добавление набора данных

Набор данных типа "Запрос"

[свернуть]

Если наборов данных несколько, то их можно связать на вкладке СхКД "Связи наборов данных" по ключу, аналогично механизму соединения таблиц запросов:

При этом флаг "Обязательный" определяет, задействованы ли поля, используемые в источнике (ЛОЖЬ) или в приемнике (ИСТИНА) и на основании этого добавляет связь в макет.

В таблице «Поля» (вкладки "Наборы данных") заполняются свойства:

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

    Диалог редактирования ролей в СКД

    [свернуть]
    • «Без роли» - никаких особых «нагрузок» на поле не накладывается, режим по умолчанию для большинства полей;
    • «Период» - содержит номер периода, если поле имеет тип периода. Самый младший период должен иметь тип 1. Данный номер будет указывать, как в СКД рассчитывается итоги по полям остатка (например, в запросе рассчитываем итоги по различным периодам: ПериодСекунда = 1, ПериодДень=2, ПериодНеделя=3 и т.д.);
    • «Дополнительный» – указывает на то, что поле-период не является обязательным;
    • «Счет» - указывает на то, что поле является бухгалтерским счетом, используется для расчета бухгалтерских итогов;
    • «Вид» - строка-выражение, с помощью которого рассчитывается вид счета. Результатом выражения должно быть значение перечисления ВидСчета (Активный, Пассивный, Активно/Пассивный), либо число (0 соответствует активному счету, 1 – пассивному, 2 – активно-пассивному). Выражение записывается на языке выражений системы компоновки данных. Данная информация используется при расчете по полям бухгалтерских остатков; 
    • «Остатки» – признак того, что поле является полем остатка;
    • «Имя» – строка, содержащая имя группы полей остатка (например, "Сумма", "Количество");
    • «Тип» – тип остатка ("НачальныйОстаток", "КонечныйОстаток", "Нет" - поле не является остатком);
    • «Бух. тип» – тип бухгалтерского остатка ("Дебет", "Кредит", "Нет" - поле не является бухгалтерским остатком); 
    • «Поле счета» – имя поля-счета, для которого рассчитываются остатки;
    • флаг "Игнорировать значения NULL" – если установлен, то в результат не нужно включать групповые записи по данному полю в случае, если поле содержит значение NULL;
    • флаг «Обязательное» - при выполнении запроса поле с указанным флажком будут присутствовать всегда, даже если не были выбраны в выборке.
  7. «Выражение представления» - содержит выражение, которое используется при выводе значений поля в отчет (выражение, результат которого будет выводиться в результат компоновки для данного поля); в случае, если выражение представления не заполнено, выдаваться будет значение самого выражения поля. Например, нужно преобразовать:
    • дату в особый формат (для этого указываем такое выражение «Формат(ПериодПолугодие,"ДФ = '""Полугодие с"" дд.ММ.гггг""'")») или
    • ссылку на документ к произвольному виду (««Дата: »+Ссылка.Дата+«Номер: »+Ссылка.Номер»);
  8. «Выражение упорядочивания» - выражения, используемые для упорядочивания поля. Описывается аналогично выражениям упорядочивания для поля набора данных. При редактировании открывается диалог:
    Выражение упорядочивания СКД

    Выражения упорядочивания СКД

    [свернуть]
    • «Выражение» - как упорядочивается это поле;
    • «Тип упорядочивания» - «по возрастанию» или «по убыванию»;
    • флаг «Необходимость автоупорядочивания» – автоматическое определение полей, по которым необходимо упорядочивать результат компоновки данных
  9. «Проверка иерархии» - используется, в случае если нужно формировать нестандартные отборы:
    Рисунок

    Проверка иерархии наборов данных

    [свернуть]
    • «Набор данных» – набор данных для проверки иерархии; 
    • «Параметр» – параметр, в который будет подставляться значение, для которого нужно получить дочерние элементы; 
  10. «Тип значения» - уточнение типа значения поля набора данных, полезно использовать для уточнения полей составного типа.
  11. «Оформление» - параметры оформления поля набора данных. При редактировании открывается диалог:
    Рисунок

    [свернуть]

     

Особенности использования набора данных:

  1. Платформа 1С допускает использование нескольких наборов данных.
  2. При определении в схеме компоновки данных связи между двумя наборами данных используется левое соединение первого набора ко второму, в ряде случаев устанавливается внутреннее соединение.
  3. Если необходимо разрешить установку отбора на вхождение в группу собственной иерархии, отличной от стандартной, то необходимо настраивать проверку иерархии на закладке "Наборы данных" в окне конструктора схемы компоновки.
  4. В системе компоновки могут быть реализованы следующие виды соединений двух наборов данных:
    • только "Все ко всем";
    • "Левое";
    • "Внутреннее".
  5. Если при настройке связи между двумя наборами данных установлен флаг "Обязательная связь" и в списке выбранных полей указаны поля только левого набора, то такие действия пользователя приведут к тому, что связь не будет реализована.
  6. Внешние данные передаются в набор-объект в системе компоновки данных средствами встроенного языка через процессор компоновки данных.
Особенности использования "набор данных - запрос"

Добавление "набор данных - запрос":

Набор данных типа "Запрос"

[свернуть]

В случае, если в качестве набора данных для СКД был указан "набор данных - запрос", то собственно запрос нужно специфицировать.

Запрос при этом не обязательно указывать через конструктор, можно прописать вручную, либо скопировать из консоли. Каких-то ограничений на запросы нет, доступны все возможности языка; более того, язык запросов имеет расширения для СКД. Это синтаксические конструкции, заключенные в фигурные скобки.

Особенности набора данных - запроса:

  1. Если в схеме компоновки данных использовать пакетные запросы, то результирующим запросом будет пакетный запрос.
  2. При использовании пакетных запросов содержимым набора данных будет считаться результат последнего набора.
  3. Синтаксические инструкции языка запросов для системы компоновки данных выделяются фигурными скобками {}.

[свернуть]
Связи наборов данных

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

Существует два способа связи наборов данных:

  1. объединение;
  2. соединение (на специальной вкладке "Связи наборов данных").

Связь - объединение

Объединение выполняется с помощью специального отдельного набора данных «Набор данных объединение», при этом количество выходных полей у объединяемых наборов может отличаться.

Особенности объединения наборов данных:

  1. Поля объединяемых наборов с одинаковым значением реквизита «Путь» сворачиваются в одно.
  2. Автоматической группировки строк по полям с одинаковым реквизитом «Путь» - не происходит.
  3. Поля с разными значениями реквизита «Путь» образуют отдельные поля в итоговом наборе.
  4. Если нужно, чтобы какие-либо значения из двух наборов объединились в одну колонку, это достигается путем указания у них одного и того же реквизита «Путь».

Связь - соединение

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

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

Особенности соединения наборов данных:

  1. Вид соединения по умолчанию всегда «ЛЕВОЕ ВНЕШНЕЕ».
  2. Источником связи выступает основной набор данных, приемником связи – подчиненный.
  3. Выполнять соединение можно только для наборов данных верхнего уровня (т.е. наборы данных, которые входят в наборы «Объединения», соединять нельзя).

В подчиненный набор данных можно передать параметры через поля "Выражение источник", "Выражение приемник" и "Параметр" (подробнее).

"Условие связи" – поле, в котором можно задать произвольное выражение, при этом связь будет выполняться только в том случае, если значение выражения будет «Истина» (с участием полей только из набора данных, указанного в источнике связи).

"Начальное значение связи" – используется для указания начального значения (корневого элемента) для связи набора данных с самим собой. Настройка может использоваться для создания собственной иерархии детальных записей.

"Обязательная связь" – если данный флаг отключен, связь будет добавлена в итоговый макет компоновки только в том случае, если в настройках компоновки используется поле из выражения источника связи.

[свернуть]
Вычисляемые поля

 

[свернуть]
Ресурсы

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


Особенности использования вкладки "Ресурсы":

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

    в качестве ресурса не числовое полеВыражение "Количество(...)" формируется автоматически при добавлении нечислового ресурса. Помимо этого в раскрывающемся списке "Выражение" можно выбрать "Максимум(...)", "Минимум(...)".

    [свернуть]
  3. Если для ресурса (при настройке схемы компоновки данных) было указано, что его можно рассчитывать только в разрезе некоторой группировки, то данный ресурс будет выводиться в результат только для этой группировки и группировок в нее вложенных.

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

Закладка "Ресурсы"

Для добавления всех доступных числовых полей в список ресурсов нужно нажать на кнопку ">>".

[свернуть]
Параметры

На данной вкладке перечислены все параметры, которые передаются в запрос – источник данных.

В запросе параметры определяются с помощью имени параметра и знака «&», например, &НачалоПериода, &КонецПериода, &СписокНомеклатуры.

  1. «Имя» - имя параметра, определенного в запросе, или нового, введенного пользователем непосредственно в таблицу параметров.
  2. «Заголовок» - наименование параметра, как оно будет представлено пользователю в диалоге «Настройки».
  3. «Тип» - доступные типы параметра, такие как Число, Дата, Строка, или типы, определенные в конфигурацииСправочникСсылка, ДокументСсылка и т.д. Можно назначать составные типы. Существует также специальный тип СтандартныйПериод для задания автоматического отрезка даты и передачи его в параметры &НачальнаяДата и &КонечнаяДата.
    Пример
    [свернуть]

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

    Стандартный период (схема компоновки данных)

    Стандартный период

    [свернуть]
  • «Доступные значения» - если для параметра возможен ограниченный набор значений, то их следует указать в данном поле. 5. «Доступен список значений» - галочка влияет на последующее поле «Значения». Если галочка установлена то в поле «Значения» - доступен список значений. 6. «Значения» - значение или список значений параметра по-умолчанию. 7. «Выражение» - в данном поле можно указать выражение, по которому вычисляется пара-метр. В выражении можно использовать функции общих модулей, а также другие значения других параметров. 8. «Включать в доступные поля» - галочка регулирует видимость/невидимость параметра в списке выбранных полей диалога «Настройка». 9. «Ограничение доступности» - если установлена данная галочка, то пользователю интерактивная установка значений данных параметров будет недоступна.[/spoiler]
  • Макеты

    Макеты, созданные в окне конструктора схемы компоновки в разделе "Макеты", позволяют:

    1. задать оформление всего отчета;
    2. задать оформление отдельного элемента настроек;
    3. определить данные, которые необходимо выводить в отчет.
    Рисунок
    [свернуть]

    Закладка Макеты

    Форматирование (оформление) ячеек доступно через палитру свойств:

    Форматирование ячейки макета 1С

    Задать оформление всего отчета или отдельного элемента настроек можно на закладке "Настройки":

    оформление всего отчета или отдельного элемента настроек

    Приоритет настроек оформления отчета:

    1. Вкладка "Другие настройки" вкладки СКД "Настройки" (нижний уровень).
    2. Вкладка СКД "Макеты".
    3. Вкладка "Условное оформление" вкладки СКД "Настройки" (поверх предыдущих).

    Если, например, в схеме компоновки данных создан макет поля "Склад", то данный макет будет использован при формировании печатной формы в следующих случаях:

    1. поле "Склад" использовано в списке выбранных полей настроек системы компоновки данных;
    2. Поле "Склад" использовано в элементе структуры настроек системы компоновки данных "Группировка";
    3. Поле "Склад" использовано в элементе структуры настроек системы компоновки данных "Таблица".
    Рисунки

    макет будет использован при формировании печатной формы

    [свернуть]

    [свернуть]
    Настройки

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

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

    Конструктор настроек компоновки

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

    Замечание: Пользовательское поле может быть создано вида и поле-выбор, и поле-выражение.

    Рисунок

    Поле-выбор и поле-выражение

    [свернуть]

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

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

    Закладка Настройки

    Нажмем кнопку "Далее >".

    На следующем шаге нужно указать, по каким полям следует группировать строки и колонки таблицы. Мы хотим видеть в строках номенклатуру, а в колонках склад. Будем действовать соответственно - перетащим при помощи мыши все поля, за исключением поля "Склад", в табличное поле строк, а поле "Склад" - в табличное поле колонок.

    Конструктор настроек компоновки данных

    Нажмем кнопку "Далее >".

    На следующем шаге нам будет предложено выбрать поля, по которым нужно упорядочивать данные. Мы не будем выбирать поля упорядочивания, а доверим системе 1С:Предприятие 8 самой решать как будет упорядочиваться отчет. 

    Нажмем кнопку "ОК" для завершения работы конструктора.

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

    На этом работа со схемой компоновки закончена, мы сделали все, что хотели: создали запрос, указали формулы для расчета ресурсов, создали настройки по умолчанию. Закроем конструктор.

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

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

     Как видно, не очень-то понятно...

    [свернуть]
    Результат после внесения небольших изменений

    Совсем другое дело.

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

    [свернуть]
    Результат с группировкой по полю "Материал"

    Результат с группировкой по полю

    [свернуть]

    [свернуть]

    Добавить комментарий

    Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.