Как работать с скд 1с
Перейти к содержимому

Как работать с скд 1с

  • автор:

Пример разработки отчета в системе компоновки данных

Данная статья описывает пример создания отчета с использованием системы компоновки данных 1С:Предприятия 8.1. Отчет создается в демонстрационной конфигурации «Примеры 8.1», которая расположена на диске ИТС.

Дистрибутив конфигурации находится в каталоге \1CITS\EXE\Demo81 (копировать дистрибутив конфигурации)

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

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

В появившейся форме введем в поле ввода «Имя» имя отчета: «ОстаткиНоменклатуры». После этого перейдем к созданию схемы компоновки данных.

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

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

Отметим, что схема компоновки данных, с точки зрения конфигурации, является макетом, поэтому система 1С:Предприятие 8 предлагает стандартный диалог конструктора макета. В этом диалоге по умолчанию выбран тип макета «Схема компоновки данных», а другие типы макетов недоступны для выбора.

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

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

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

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

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

Рассмотрим вариант создания текста запроса с помощью конструктора. Для вызова конструктора запроса нажмем кнопку «Конструктор запроса. «:

Конструктор запроса позволяет создавать и редактировать запросы любой сложности и является весьма мощным инструментом. Форма конструктора запроса выглядит следующим образом:

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

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

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

На этом создание запроса завершено — мы создали запрос, который будет получать данные из таблицы остатков.

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

Текст запроса, который был создан с помощью конструктора, система 1С:Предприятие 8 поместит в поле «Запрос». Это поле представляет собой текстовый редактор, в котором можно вручную отредактировать существующий запрос. Кроме того, можно снова вызвать конструктор запроса и отредактировать запрос при помощи него.

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

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

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

Нам необходимо рассчитать суммы по полю «КоличествоОстаток».

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

Отметим, что имеется возможность добавить все доступные числовые поля в список ресурсов нажатием на кнопку «>>». Это удобно, когда имеется большое количество полей — ресурсов.

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

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

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

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

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

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

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

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

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

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

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

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

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

На этом работа по созданию отчета завершена. Посмотрим, как работает наш отчет в режиме 1С:Предприятие.

Запустим систему 1С:Предприятие, нажав F5. На вопрос системы о необходимости обновить конфигурацию базы данных ответим утвердительно.

В открывшемся окне 1С:Предприятия выберем в главном меню пункты Операции->Отчет.

В появившемся списке отчетов выберем наш отчет — «Остатки номенклатуры» и нажмем кнопку ОК.

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

Выполним отчет, нажав на кнопку «Сформировать». Платформа начнет формирование отчета. При выполнении отчета в строке состояния системы 1С:Предприятие 8 отображается процент выведенного результата.

Если необходимо отменить вывод отчета, можно воспользоваться комбинацией клавиш Ctrl+Break.

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

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

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

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

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

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

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

Для дальнейшего практического изучения системы компоновки можно обратиться к другим отчетам из демонстрационной конфигурации «Примеры 8.1». Информацию об устройстве системы компоновки данных можно найти в документации системы 1С:Предприятие 8.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Авторы: Е.Ю. Хрусталева

Как работать с скд 1с

СКД 1С расшифровывается как Система Компоновки Данных. СКД 1С – это новый способ написания отчетов в 1С, который позволяет пользователю полностью настраивать отчет самостоятельно.

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

Написание отчетов СКД требует умение работать с запросами в 1С, что мы обсуждали в уроке по запросам 1С.

Какова технология создания отчета СКД 1С:

  • Написать запрос 1С в СКД 1С, который обеспечивает получение данных
  • Указать СКД 1С роль полей (вычисляемые поля, ресурсы)
  • Ввести настройки СКД 1С по умолчанию.

Пользователю остается возможность изменить множество настроек по своему желанию.

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

  • Написать запрос в программе 1С
  • Разработать форму настроек (уникальную для отчета), которая позволит изменять только выбранные программистом N настроек
  • Написать код (программу) выполнения запроса и построения печатной формы отчета.

Как Вы видите, СКД 1С имеет значительное преимущество как для пользователя, так и для программиста:

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

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

Давайте посмотрим как создать отчет на СКД 1С самому с нуля.

Создаем отчет СКД 1С

В конфигураторе нажмите кнопку нового файла (меню Файл/Новый).

Выберите тип файла Новый отчет.

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

Создадим основную схему СКД 1С.

Создаем запрос для отчета СКД 1С

Источников данных для СКД 1С может быть множество. Чтобы использовать, например, два отдельных запроса – добавьте сначала «Набор данных – объединение», а потом несколько запросов.

В нашем примере мы будем использовать простой запрос.

Набросаем запрос для получения данных.

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

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

Если наименование неудобное, здесь его можно изменить.

Обратите внимание, что мы использовали в запросе параметр &ДатаНачала. В СКД 1С есть параметр (дата) по умолчанию с названием &Период и Вы можете использовать его.

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

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

Поэтому часто &Период запрещают (см. далее), а вместо него используют собственный параметр, как мы сделали это сейчас.

Настройки СКД 1С

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

На закладке Параметры запретим ненужные нам, и включим нужные. Здесь же можно задать человеческое название параметра.

Основная настройка производится на закладке Настройки:

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

Формирование СКД 1С

Нажмите сохранить отчет в файл. Аналогичное меню Файл/Сохранить. В результате у нас получится внешний отчет 1С.

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

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

Вуаля. Отчет работает.

Настройки СКД 1С

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

Перетащим Склад из Колонки в Строки.

Перетащим Номенклатуру на Склад.

Нажмите ОК и сформируйте отчет. Ура – мы только что изменили работу отчета в режиме Программирование без программирования.

Нажмите правой кнопкой на Строки (а можно на любое из полей) и выберите Новая группировка.

Раскроем поле Склад и выберем одно из его полей, например Вид склада.

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

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

Группировка добавилась снизу. Нас это не устраивает.

Схватите левой кнопкой мыши нашу группировку (Склад/Номенклатура) и перетащите ее на новую группировку (Вид склада).

Результат наших настроек.

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

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

Проголосовать за этот пост:

Работа с запросами в 1С СКД. Отладка СКД

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

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

В интернете есть несколько консолей. В том числе консоль от фирмы 1С. Здесь я приведу список консолей, которые я знаю на момент написания статьи. Возможно не все – напишите мне, если вы знаете еще какую консоль. Итак:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *