Что такое скд в 1с
Перейти к содержимому

Что такое скд в 1с

  • автор:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что такое скд в 1с

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных 1С 8.3 для начинающих: первый отчёт на СКД

Автор уроков и преподаватель школы: Владимир Милькин

Если вы не читали введение к этому модулю — пожалуйста, прочтите его: ссылка.

  • Готовим рабочее место
  • Ставим цель
  • Создаём отчёт
  • Создаём схему компоновки данных внутри отчёта
  • Пишем запрос через конструктор
  • Настраиваем представление данных
  • Сохраняем отчёт в виде файла
  • Проверяем отчёт в режиме пользователя

Готовим рабочее место

Для выполнения уроков вам понадобится 1С 8.3 (не ниже 8.3.13.1644) .

Если у вас уже есть установленная 1С версии 8.3 — используйте её. Если нет — скачайте и установите учебную версию, которую фирма 1С выпускает специально для образовательных целей: ссылка на инструкцию по скачиванию и установке 1С.

На вашем рабочем столе должен появиться вот такой ярлык:

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

Если вы её удалили — скачайте заново по следующей ссылке, распакуйте и подключите в список баз.

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

Ставим цель

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

  • Имя
  • Пол
  • Любимый цвет клиента.

Отчёт должен быть внешним. Это значит, что он будет создан и настроен в конфигураторе, а затем сохранен в виде отдельного (внешнего) файла на компьютере.

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

Создаём отчёт

Запускаем конфигуратор для базы «Гастроном»:

Из главного меню выбираем пункт «Файл»->»Новый. «:

Выбираем «Внешний отчет»:

Создаём схему компоновки данных внутри отчёта

Открылось окно создания внешнего отчёта. В качестве имени вводим: «Урок1«, а затем жмём кнопку «Открыть схему компоновки данных«:

Запустился конструктор создания схемы. Соглашаемся с именем по умолчанию «ОсновнаяСхемаКомпоновкиДанных» и жмём кнопку «Готово«:

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

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

Сейчас мы находимся на закладке «Наборы данных«. На ней и останемся.

Пишем запрос через конструктор

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

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

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

Добавился набор данных с именем «НаборДанных1«, но мы видим, что поле «Запрос» в нижней части окна пока пустое:

Наша задача написать в это поле текст запроса. Вы ещё не забыли как это делается?

ВЫБРАТЬ Наименование, Пол, ЛюбимыйЦвет ИЗ Справочник.Клиенты

В этом запросе мы выбрали три поля («Наименование«, «Пол» и «ЛюбимыйЦвет«) из таблицы «Справочник.Клиенты«.

Но не торопитесь писать этот текст в поле «Запрос» вручную.

Сейчас мы создадим тот же самый запрос визуально, только при помощи мышки. Этот способ называется «Конструктор запроса«.

Чтобы вызвать этот конструктор нажмём кнопку «Конструктор запроса. » в верхней правой части поля «Запрос»:

В открывшемся окне перетащим таблицу «Клиенты» из первого столбца во второй, чтобы указать, что именно из этой таблицы мы будем запрашивать данные:

Получилось вот так:

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

Получилось вот так:

Поступим точно так же с полями «Пол» и «ЛюбимыйЦвет«. Результат будет таким:

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

Более того на основании текста запроса 1С сама вытащила имена полей (область выше запроса), которые будут использоваться схемой компоновки данных:

Теперь, когда мы составили запрос, СКД знает каким образом получать данные для отчёта.

Настраиваем представление данных

Осталось как-то визуализировать эти данные для пользователя в виде печатной формы. И вот тут СКД может творить чудеса!

Чтобы сотворить такое чудо перейдём на вкладку «Настройки» и нажмём кнопку конструктора настроек (волшебная палочка):

В открывшемся окне укажем тип отчёта «Список» и нажмём «Далее«:

В следующем окне выберем (путём перетаскивания) поля, которые нужно будет отобразить в списке (перетащим все из доступных нам: «ЛюбимыйЦвет«, «Наименование» и «Пол«):

Получим вот такой результат и нажмём кнопку «ОК«:

Конструктор настроек закрылся и появился пункт «Детальные записи«:

Отчёт готов, давайте же его проверим. Для этого вначале сохраним отчет в виде внешнего файла.

Сохраняем отчёт в виде файла

Откроем пункт главного меню «Файл«->»Сохранить«:

Я сохраню его на рабочий стол под именем «Урок1«:

Проверяем отчёт в режиме пользователя

Наконец, закроем конфигуратор и зайдём в нашу базу в режиме пользователя:

Имя пользователя «Администратор», пароля нет:

Через меню выберем пункт «Файл«->»Открыть. «:

И укажем файл отчёта (я сохранял его на рабочий стол под именем «Урок1.erf»:

Открылась форма отчёта, нажмём кнопку «Сформировать«:

Готово! Вот она наша печатная форма со списком клиентов, их любимым цветом и полом:

Печатную форму можно легко распечатать. Для этого достаточно выбрать в меню пункт «Файл«->»Печать. «:

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

То ли ещё будет, наберитесь терпения

Эталонная обработка, после выполнения всех шагов этого урока

Войдите на сайт как ученик

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

Для учеников

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

На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .

Войдите на сайт как ученик

Войдите как ученик, чтобы получить доступ к материалам школы

Что такое скд в 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с

Хочу поделиться с вами интересным решением, на самом деле очевидным, но для меня это было открытием) Запись вида: МассивТабличныхЧастей = Новый Массив; МассивТабличныхЧастей.Добавить(«ПогрузкаЗагрузка»); МассивТабличныхЧастей.Добавить(«ДанныеОПеревозке»); Для каждого ИмяТЧ из МассивТабличныхЧастей Цикл ЗаполнитьЗначенияСвойств(ИмяТЧ.Добавить(), Источник);МассивТабличныхЧастей = Новый Массив; МассивТабличныхЧастей.Добавить(«ПогрузкаЗагрузка»); МассивТабличныхЧастей.Добавить(«ДанныеОПеревозке»); Для каждого…

Обратный цикл

Для Индекс = — Массив.Количество() По -1 Цикл Элемент = Массив.Получить(-Индекс-1); Если Тогда Массив.Удалить(Элемент); КонецЕсли; КонецЦикла;Для Индекс = — Массив.Количество() По -1 Цикл Элемент = Массив.Получить(-Индекс-1); Если Тогда Массив.Удалить(Элемент); КонецЕсли; КонецЦикла; или КоличествоЭлементов = Массив.Количество(); Для Счетчик =…

Разные колонтитулы в одном табличном документе

Задача: Табличный документ состоит из нескольких документов, необходимо пронумеровать страницы — в первом на каждой странице необходимо писать «Документ 1 из 2», во втором — «Документ 2 из 2», и т.д. В результате должен возвращаться один табличный документ. Варианты решения:1)…

  • psy
  • 10.12.2022
  • Примеры кода 1С
  • документ, колонтитулы, нумерация, табличный

СКД — ошибка «Поле не найдено»

Посмотрите, не помещает ли последний запрос в пакете данные во временную таблицу! ��

  • psy
  • 15.11.2022
  • Система компоновки данных
  • не найдено, ошибка, поле, СКД

Необязательные параметры в запросе СКД (и не только)

При установке параметров запроса часто в 1С применяют следующие конструкции: «ГДЕ НЕ Договор.ПометкаУдаления И ВЫБОР КОГДА &Контрагент = Неопределено ТОГДА Договор.Контрагент = &Контрагент ИНАЧЕ ИСТИНА КОНЕЦ» Запрос.УстановитьПараметр(«Контрагент», Контрагент); «ГДЕ НЕ Договор.ПометкаУдаления И ВЫБОР КОГДА &Контрагент = Неопределено ТОГДА Договор.Контрагент…

  • psy
  • 13.10.2022
  • Примеры кода 1С
  • запрос, необязательные, параметры

Преобразование табличного документа в HTML со ссылками

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

Динамический масштаб табличного документа

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

Нестандартный отчет СКД

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

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

Как программно узнать значение общих итогов из СКД

День добрый! Хочу в текст заголовка отчета вывести текст типо: “Много много нам должны” + СуммаОбщихИтоговВРезультатеСКД + ” !”. Прошу не предлагать выводить результат СКД в ТЗ, хочу именно без ТЗ!

  • web.num
  • 01.04.2018
  • Система компоновки данных

1С 8.2 УП : СКД Внешний источник данных, грузим из ТЗ и далее получаем остатки на каждую дату

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

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

Выбор из таблицы значений

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

  • nickston
  • 01.12.2016
  • Система компоновки данных
  • 1

Добавить Вычисляемое поле в отчет

Отчет “ВедомостьАмортизацииОСБухгалтерскийУчет”Необходимо добавить поле “ПроцентИзноса”.В СКД добавляю вычисляемое поле “ПроцентИзноса”, выражение: «ВЫБОР КОГДА ОстаточнаяСтоимость = 0 ТОГДА 100 ИНАЧЕ ОстаточнаяСтоимость*100/ПервоначальнаяСтоимость КОНЕЦ»»ВЫБОР КОГДА ОстаточнаяСтоимость = 0 ТОГДА 100 ИНАЧЕ ОстаточнаяСтоимость*100/ПервоначальнаяСтоимость КОНЕЦ» ТипЗначения — ЧислоПри выполнении отчета в Дополнительных данных” появляется поле…

  • Petrovih
  • 01.08.2016
  • Система компоновки данных
  • 1

Настройка вывода в СКД

Добрый день. Создал отчет по остаткам, но данные выводятся странным образом: Склад компании Регистратор Контрагент Склад Склад получатель Количество Начальный остаток Количество Приход Количество Расход Количество Конечный остаток Д Ввод остатков товаров ГА00000005 от 01.01.2016 8:56:00 АВТОСКЛАД Д 40,000 40,000…

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

Как получить последнее значение группировки?

Приветствую, коллеги. Вопрос такой. Типовая бухгалтерия 2.0, адаптация для Беларуси, блок Учет основных средств, документ Регламентная операция, отчет Справка-расчет амортизации.В отчете помесячно выводится информация вида: Основное средство – Стоимость объектаТабуретка – 300 000 000Январь – 100 000 000Февраль – 100…

Как в отчете на СКД сделать ВЫБРАТЬ РАЗЛИЧНЫЕ для “почти” одинаковых записей группировки

Всем доброго времени суток! Подскажите, пожалуйста, куда копать… Есть отчет на СКД сделанный в виде таблицы, условно: сотрудники – это строки, виды расчета, сгруппированные по категориям – это колонки. Есть виды расчета, устанавливающиеся по штатному расписанию, а есть ВР, установленные…

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

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

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