Отчет скд с остатками и документами. Использование СКД на примере создания простого отчёта на управляемых формах. Процесс создания отчета на СКД

СКД 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С (8.2 и новее) для разработки отчетов, а вовсе не система контроля доступа.

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

Видеоурок по созданию отчета «Журнал документов» в 1С СКД:

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

Получите 267 видеоуроков по 1С бесплатно:

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

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

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

Основа управляемого интерфейса 1С — СКД

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

Как освоить и научиться делать отчеты на СКД?

Пусть поставлена задача создать отчёт по всем документам "РеализацияТоваровУслуг", которые содержат позиции номенклатуры из заданной группы. Поскольку мы будем работать с управляемой формой, создадим в конфигурации встроенный отчёт с названием "Тестовый отчёт" и выберем при создании основную схему компоновки данных (рис. 1).

Рис. 1. Создание отчёта

В появившейся форме основной схемы компоновки данных используем кнопку "Добавить набор данных" и выберем "Добавить набор данных - запрос" (рис. 2)

Рис. 2. Добавление набора данных

Для создания запроса будем использовать конструктор запросов. Выберем из панели "Базы данных" документ "РеализацияТоваровУслуг" и его табличную часть "РеализацияТоваровУслуг.Товары". На панеле "Таблицы" из соответствующих таблиц выберем поля - "РеализацияТоваровУслуг.Ссылка" и "РеализацияТоваровУслуг.Номенклатура.Ссылка" (рис. 3).

Рис. 3. Создание запроса

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

Рис. 4. Набор данных - запрос

Настройки

Для правильной работы отчёта необходимо указать, какая информация будет выводится в отчёт. Нажмём кнопку "Открыть конструктор настроек" (рис. 5)

Рис. 5. Конструктор настроек

Выберем Тип отчёта - Список и нажмём кнопку "Далее". Выберем доступные поля - Ссылка и Номенклатура (Рис. 6.), после чего можно нажать кнопку "ОК".

Рис. 6. Выбор полей отчёта

В принципе, наш отчёт готов. Но в задании надо было получить не все данные, а использовать отбор по номенклатуре из выбранной группы. Разрешим пользователю пользоваться отбором. Для этого на закладке "Настройки" воспользуемся кнопкой "Свойства элемента пользовательских настроек" и выберем Отбор (Рис. 7.)

Рис. 7. Пользовательские настройки

Нажимаем кнопку "ОК", и на этом наши настройки закончены (Рис. 7).

Для правильного вызова отчёта его необходимо включить в одну из подсистем. Пусть это будет в подсистема "Продажи" (рис. 8)

Рис. 8. Подсистема Продажи

Наш отчёт готов! Обновим конфигурацию базы данных и запустим 1С:Предприятие. Переходим в подсистему "Продажи" и вызываем "Тестовый отчёт" и далее, кнопку "Сформировать" (Рис. 9.)

Рис. 9. Вызов отчёта

По условиям задачи нам надо в отборе задать условие, чтобы номенклатура принадлежала определённой группе. Для этого выберем правое поле настройки Отбор. Откроется форма "Редактирование отбора". Перетащим мышью из доступных полей поле Номенклатура в Отбор, в колонке "Вид сравнения" установим "В группе", а в колонке "Значение" выберем группу номенклатуры "Бытовая техника" (Рис. 10.)

Рис. 10. Установка отбора

Нажимаем кнопку "ОК", формируем отчёт заново с учётом отбора, и задача решена (Рис. 11).

Рис. 11. Отбор по группе номенклатуры.

Мы надеемся, что наш ресурс будут посещать не только опытные специалисты, которые уже отличают «Систему компоновки данных» от «Сальдо конечное дебет», но и начинающие программисты, которые СКД не видели совсем. Вообще-то, хотелось бы верить, что начинающие возьмут в руки эту книжку (http://v8.1c.ru/metod/books/book.jsp?id=132). Но если её нет, а построить простенький отчет хочется уже сейчас, то это статья для Вас.

Пример был реализован на платформе 1С 8.2.11.232.

Где она вообще, эта СКД?

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

Кстати! Разница между внешней обработкой и внешним отчетом как раз в наличии у отчета «Основной схемы компоновки данных» и «Основной формы настроек».

Отчет

Наша задача с помощью СКД, построить простой отчет по продажам с возможностью группировки по контрагентам. Отчет будем строить в демо-базе УПП.

Начнем…

Создадим новый внешний отчет (Файлà–>Новый–>Внешний отчет):

Рис.1 Форма нового отчета

По кнопке «Открыть основную схему компоновки данных» создадим новую схему. После создания, убедимся, что создан макет:

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

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

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

Рис. 3 Вкладка "Наборы данных"

Теперь необходимо создать запрос. Используем «Конструктор запроса»:

Рис.4 Кнопка "Конструктор запроса"

На закладке «Таблицы и поля» конструктора запроса выберем регистр накопления «Продажи». Из регистра последовательно выберем поля: «Контрагент», «Номенклатура», «Количество» и «Стоимость»:

Нажмем «ОК». Так, как у нас была установлена галка «Автозаполнение», то доступные поля текущего набора данных заполнились автоматически:

Рис.6 Вкладка "Наборы данных" с заполненными полями

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

Ресурсы

«Я что-то слышал про СКД и мне сказали, что там почти всегда необходимо определять ресурсы» – многие из начинающих могут так сказать. А что же это такое? Попробуем разобраться. Для этого сначала выведем отчет без указания ресурсов. Для этого перейдем сразу на вкладку настройки. Для того чтобы вывести данные в отчет без каких либо группировок, нужно все же создать группировку, но ничего не указывать. Таким образом, у нас будут выведены «детальные записи».

Что делаем? На вкладке «Настройки» жмем добавить –>новая группировка (или Ins), и в появившемся окне просто жмем «ОК»:

Настроим выбранные поля для детальных записей (поле «Контрагент» пока выбирать не будем):

Теперь сохраняем наш внешний отчет, открываем его в предприятии, и формируем:

Рис. 9 Формирование отчета с одной группировкой "Детальные записи"

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

Отчет с одной группировкой

Итак, мы уяснили, что хотим сгруппировать наши данные по номенклатуре. Давайте спросим у СКД, умеет ли она это делать? Умею, конечно, – отвечает СКД. Вы мне только скажите, по каким полям, и по какому выражению вам вывести итоги. Так вот как раз ресурсы и есть – итоговые записи по группировкам.

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

Рис.10 Вкладка "Ресурсы"

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

Сохраняем изменения и формируем отчет:

Рис.11 Отчет с одной группировкой "Номенклатура"

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

Отчет с группировкой по контрагентам

Немного усложним задачу, и сгруппируем отчет еще и по контрагентам. На вкладке «Настройка» удалим группировку «Номенклатура». Теперь создадим структуру отчета, используя «Конструктор настроек»:

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

Рис.13 Вкладка "Настройки"

Сохраним и сформируем отчет:

Отлично! Все группируется, итоги считаются.

Нет похожих статей

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

Создание отчета в 1С через СКД

Процесс разработки отчета при помощи СКД можно разделить на следующие этапы:

  1. Создание запроса. Запрос можно написать вручную или обойтись без программного кода, воспользовавшись удобным интерфейсом;
  2. Настройка отчета. Выбираются поля, итоги, группировки, параметры, оформление отчета;
  3. После этого нам останется лишь подключить получившийся отчет в конфигурацию любым доступным способом.

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

Рассмотрим пример создания внешнего отчета на СКД:


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

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

Возможности СКД

Бывают ситуации, когда мы сделали отчет, а потом приходит пользователь и просит сделать небольшую доработку. Например, вместо названий номенклатуры выводить артикулы. СКД позволяет такие доработки делать пользователям самостоятельно с помощью кнопки «Еще» - «Изменить вариант…».


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


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


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


Механизм СКД 1С:Предприятие 8.3 также имеет расширенный функционал для разработчиков. При разработке отчета мы пользовались всего 2 вкладками – «Наборы данных» и «Настройки», но в СКД их намного больше. Чтобы пользоваться всеми функциями системы компоновки данных, необходимо представлять, для чего каждая из вкладок нужна:

  1. Наборы данных – здесь перечислены все запросы, участвующие в формировании отчета;
  2. Связи наборов данных – используется для построения связи между различными запросами с первой вкладки;
  3. Вычисляемые поля – перечень добавленных полей не из запроса. Чаще всего используется в случаях, когда на основании значений нескольких полей из запроса нужно получить 1 значение;
  4. Ресурсы. В 1С так называются поля, по которым необходимо знать итоги. Ресурсы поддерживают различные арифметические операции – сумму, количество, максимум и другие;
  5. Параметры. Используются, если для формирования отчета необходимо, чтобы пользователь ввел определенные данные – дату, подразделений или номенклатуру, например;
  6. Макеты. Предназначены для тех случаев, когда пользователи хотят увидеть уникально оформленный отчет. Создать отдельное место для подписей или новую верхнюю часть отчета – все это можно здесь;
  7. Вложенные схемы. Они необходимы, когда ваш отчет должен содержать данные других отчетов;
  8. Настройки. В разделе объявляются выводимые поля, группировки, настраивается внешний вид отчета.


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