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

от admin

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

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

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

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

Основные элементы системы компоновки данных представлены на следующей схеме:

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

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

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

Настройки компоновки данных

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

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

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

Элемент результата компоновки данных

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

Работа с системой компоновки данных в конфигурации

Система компоновки данных интегрирована в объект конфигурации Отчет. Это позволяет создавать отчеты без программирования.

У объекта конфигурации Отчет реализовано свойство «Основная схема компоновки данных»:

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

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

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

После нажатия кнопки «Готово» будет открыт конструктор схемы компоновки данных.

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

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

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

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

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

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

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

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

Консоль системы компоновки данных

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

Система компоновки данных (СКД). Часть 1.

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

Входные данные для построения отчёта с использованием системы компоновки данных (СКД).

    1. Схема компоновки данных — содержит описания наборов данных и параметров получения данных. В ней записано, откуда получать данные и как управлять компоновкой данных. Данная схема получается с помощью конструктора.
    1. Настройки компоновки данных — настройки выполнения отчёта, то есть, как должен выводиться отчёт, какие должны быть параметры получения данных и какие применены отборы для определённой схемы компоновки данных.
    2. Компоновщик макета — обрабатывает схему компоновки данных и настройки компоновки данных.
      В результате работы компоновщика макета получается макет компоновки данных, который является результатом применения настроек к схеме компоновки.

    Основные этапы, из которых состоит выполнение отчета с использованием системы компоновки данных (СКД).

    Этапы системы компоновки

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

      Результат каждого этапа можно сериализовать (сохранить) в файл xml. Тогда можно каждый этап формирования отчета выполнять на разных компьютерах.

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

      Схема компоновки данных — объект встроенного языка системы 1С:Предприятие «СхемаКомпоновкиДанных».
      Ещё можно назвать макетом специального типа, который может быть создан у любого объекта в конфигурации 1С Схема компоновки данных соответствует понятию макета, так как макет — это объект, который содержит различные данные, требующиеся для отображения выходной информации.

      Из чего состоит схема компоновки данных?

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

      Источники данных для наборов данных — это неиспользуемый функционал, созданный для указания на некоторые внешние информационные базы. Сейчас указывают на локальную базу, в которой выполняется отчёт.

      1. Запрос — обращение к текущей информационной базе для получения данных.
      2. Объект — в качестве объекта выбирается: таблица значений, табличная часть, результат запроса, область ячеек табличного документа, документ, набор записей регистра и т.д. Для чего нужен набор данных объект? Например, если на входе используем таблицу значений, а в ней данные из другой базы (возможно даже не 1С), то, по сути, мы работаем данными этой базы.
      3. Объединение — объединяет данные из наборов данных: запрос и объект. Для чего нужен набор данных объект, если в запросе существует предложение UNION, которое позволяет связать различные данные, то есть объединить их? Этот набор данных необходим, так как в качестве набора данных может выступать не только запрос, а также, например, таблица значений.

      Настройки

      1. Если не указать никаких настроек отчёта, тогда в результате не будет ничего отображено. Опытный пользователь сможет сам указать настройки и тогда результат появится в согласии с его настройками. Но лучше создать базовые настройки в ходе разработки отчёта.

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

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

      Разбор тестирования 1С:Профессионал и PMP

      Подтверждаю: По результатам платного тестирования на 12.01.2021 правильный ответ на вопрос 11.28 — 2.Объектом конфигурации.

      Вопрос 11.28 Ответ 2. Проверил в официальном тестировании.

      В руководстве разработчика указано следующее: "Схема компоновки данных представляется объектом встроенного языка "1С: Предприятие" СхемаКомпоновкиДанных и состоит из множества других вложенных объектов."
      См. глава 10.3. Схема компоновки данных.

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

      Для начала, несколько слов об СКД с точки зрения начинающего. Сразу же хочу сказать, что постарался «разжевать» материал как можно подробнее, так сам еще совсем недавно был начинающим и мне далось очень не просто изучение данного материала, надеюсь, что этот урок кому нибудь может быть оказаться полезным.
      Не вдаваясь в тонкости, могу сказать, что это некий механизм, который позволит нам не беспокоиться об интерфейсе отчета (рисования различных форм и фильтров, как например это было в 1с 7), а сосредоточиться по большей мере на работе над самим основным — запросом.

      Для создания и откладки отчета очень удобно использовать обработку консоль запросов от Павла Чистова, или консоль запросов СКД.

      Изображение

      В данной статье я попытаюсь рассказать как можно более простым языком, как сделать отчет для СКД но программно. Для чего же нужнен этот «программный» вариант отчета на СКД? Например, возьмем пример Балашова Романа. Мы успешно сформировали отчет по продажам и вывели его на печать. Очень удобные отбор и сортировка, всем хорошо: и пользователям и разработчикам — СКД здорово облегчила всем работу. Ну а что если задача немного другая? Нужно чтобы по данным из продаж проставить определенные свойства, например, договорам контрагентов. СКД не «умеет» изменять объекты. Именно для этого и нужно уметь создавать отчет программно, чтобы с одной стороны использовать удобства интерфейса СКД, с другой стороны получить доступ к выборке результата отчета как подробно рассказано Вячеславом.

      Итак, приступим. План такой:

      1. Создаем отчет. Для этого в меню конфигуратора выбираем последовательно: «Файл — Новый» и получаем:

      Изображение

      Далее последовательно нажимаем на кнопку «Открыть схему компоновки данных» и в открывшемся

      окне кнопку «Готово».

      Изображение

      В итоге мы получаем окно основной схемы компоновки данных на первой закладке «Набор данных». Если щелкнуть правой клавишей мыши на «Наборы данных», то появляется контекстное меню из трех пунктов. Первый мы уже видели в уроке Романа, но в данном случае нам нужен второй пункт «Объект». Третий же особенно полезен когда мы имеет дело со внешними данными в качестве набора данных(например документ Excel или сторонняя база данных).

      Изображение

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

      Изображение

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

      Схема компоновки (некий перечень данных, с которыми мы будем работать), которая вместе с настройками подается на вход компоновщику макета КД(компоновки данных), которых из этих двух ингридиентов формирует Макет КД. В макете еще нет никаких реальных данных, лишь текст запроса и другие вспомогательные данные, такие как отборы и сортировки. По сути некий шаблон для заполнения. Вот когда шаблон готов в дело вступает Процессор компоновки данных . Именно после его работы мы получаем реальные данные из базы данных или другого внешнего источника. Теперь у нас данные. Осталось лишь вывести их. Последний этап — работа Процессора вывода КД. Он может вывести полученные от процессора компоновки данные либо в табличный документ либо в таблицу значений. В нашем случае таблица значений нас бы очень даже устроила.

      Возникает резонный вопрос: какже создать и запустить механизмы, описанные выше, применимо к нашей задачи? Для отчетов на СКД в модуле есть предопределенная процедура «При компоновке результата». Именно в ней мы будем описывать и запрос и создавать основные объекты СКД.

      Изображение

      Вот листинг нашей процедуры. В данном случае я рассматриваю пример с документом «ПоступлениеУслугТоваров» с целью каким то образом изменить объект для демонстрации целей задачи. (К примеру записать в комментарий количество из документа);

      Значение и описание параметров данной процедуры можно почитать в описании используя «Синтакс помощник».
      Стандартная обработка = Ложь; говорит о том, что мы сами берем на себя контроль над событием, которое описывает данная предопределенная процедура.
      Далее нам нужно создать запрос, чтобы использовать его макете как мы и планировали ранее.
      Для этого очень удобно использовать мастер создания. Для этого мы нажимаем правую клавишу мыши в любом месте кода нашей процедуры и выбираем «конструктор запроса с обработкой результата», система сообщит, что запрос не найден и предложит его создать, мы соглашаемся, переходим на закладку «Таблицы и поля».

      Изображение

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

      Но нам нам обход результат не нужен, достаточно лишь Результат = Запрос.Выполнить().Выгрузить(); все остальное убираем до конца процедуры. Итак у нас теперь есть таблица значений с результатами работы нашего запроса.
      Пришло время «заводить» СКД.
      Но перед этим нам самое время вернуться к нашей схеме компоновки данных, где мы уже создали набор данных с типом «Объект» и остановились на создании полей. Отметим, что в отличии от примера, описанного Романом, в данном случае придется каждое поле добавлять «ручками», но проблем с этим нет ни каких. Итак после добавления нового поля (зеленая кнопка «+» или клавиша «insert») мы даем ему название в выбираем соответствующий тип данных.
      Изображение
      В данном случае мы назвали поле «Номенклатура» и дали ему соответствующий тип «СправочникСсылка.Номенклатура». . ОЧЕНЬ ВАЖНО. чтобы имя данное полю тут (в схеме компоновки) совпадало с названием поля, который мы описали в запросе процедуры ПриКомпоновкеРезультата.
      Аналогично добавляем поле «Количество». Поля, которые мы описываем тут могут быть использованы в настройках схемы КД для отобора и сортировки данных запроса, который мы написали в модуле.
      Далее формируем цепочку, описанную выше: настройки + схема = макет(при помощи КомпоновщикаМакетов). Далее из макета + данных запроса обрабатываем при помощи ПроцессораКомпоновки(получаем данные из запроса с учетом отборов в макете). И наконец ПроцессорВывода(в ТабличныйДокумент/В коллекцию значений) выводит в данном случае в таблицу значений МояТЗ, чтобы в последующим можно было изменить нужный реквизит элементов запроса.

      Также не менее важное замечание: обязательно заполним закладку «Настройки» в основной схеме КД(рисунок выше). Без заполнения этой закладки мы получим следующее: запрос будет выполнен, данные будут получены и записаны в переменную «Результат» (из листинга выше). Однако так как настройки пусты, то никаких группировок не будет создано и табица «МояТЗ» будет пуста. Очень важно это не забывать.
      Изображение

      Далее выбираем, например, поле «Номенклатура» или другие нужные нам поля и нажимаем кнопку «ОК».

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

      Читать:
      Сколько единиц в двоичной записи десятичного числа 307

Похожие статьи