Как сделать итоги в скд
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: считаем итоги (ресурсы)
Автор уроков и преподаватель школы: Владимир Милькин
Ставим цель
Целью этого урока будет:
- Написать отчёт, который выводит список продуктов (справочник Еда), их калорийность и вкус.
- Сделать группировку продуктов по их цвету.
- Познакомиться с возможностью подведения итогов (ресурсы) и вычисляемыми полями.
Создаём новый отчёт
Как и на предыдущих уроках открываем базу «Гастроном» в конфигураторе и создаём новый отчёт через меню «Файл«->»Новый. «:
Вид документа — внешний отчёт:
В форме настройки отчёта пишем имя «Урок3» и нажимаем кнопку «Открыть схему компоновки данных«:
Оставляем имя схемы по умолчанию и нажимаем кнопку «Готово«:
Добавляем запрос через конструктор
На закладке «Набор данных» нажимаем зелёный плюсик и выбираем пункт «Добавить набор данных — запрос«:
Вместо того, чтобы писать текст запроса вручную, вновь запускаем конструктор запроса:
На вкладке «Таблицы» перетягиваем таблицу «Еда» из первой колонки во вторую:
Выбираем из таблицы «Еда» поля, которые будем запрашивать. Для этого перетаскиваем поля «Наименование«, «Вкус«, «Цвет» и «Калорийность» из второй колонки в третью:
Получилось вот так:
Нажимаем кнопку «ОК» — текст запроса сформировался автоматически:
Формируем настройки представления отчёта
Переходим на закладку «Настройки» и нажимаем на волшебную палочку, чтобы вызвать конструктор настроек:
Выбираем вид отчета «Список. » и нажимаем кнопку «Далее«:
Перетаскиваем из левой колонки в правую поля, которые будут отображаться в списке и нажимаем «Далее«:
Перетаскиваем из левой колонки в правую поле «Цвет» — по нему будет происходить группировка строк в отчёте. Нажимаем «ОК«:
А вот и результат работы конструктора. Иерархия нашего отчёта:
- отчёт в целом
- группировка «Цвет»
- детальные записи — строки с названиями еды
Сохраним отчёт (кнопка дискета) и не закрывая конфигуратора тут же откроем его в режиме пользователя. Получилось вот так:
Меняем порядок колонок
Но давайте поменяем порядок колонок (стрелки вверх-вниз), чтобы он был таким как на рисунке ниже:
Сохраним отчёт и вновь откроем в режиме пользователя:
Отлично, так гораздо лучше.
Подводим итог (сумму) по калорийности
Было бы неплохо выводить итог калорийности продуктов по группам. Чтобы видеть сумму калорийности всех продуктов, скажем, белого или жёлтого цвета. Или узнать общую калорийность вообще всех продуктов в базе.
Для этого существует механизм вычисления ресурсов.
Переходим на вкладку «Ресурсы» и перетаскиваем поле «Калорийность» (мы же по нему собираемся итог подводить) из левой колонки в правую.
При этом в поле выражение выбираем из выпадающего списка «Сумма(Калорийность)«, так как итогом будет являться сумма всех входящих в итог элементов:
Сохраняем и формируем отчёт:
У нас появились итоги по каждой из групп и по отчёту в целом.
Подводим итог (среднее) по калорийности
Теперь давайте сделаем так, чтобы в ещё одной колонке выводилась средняя калорийность продуктов по группам и в целом по отчёту.
Трогать уже имеющуюся колонку «Калорийность» нельзя — в неё уже выводится итог-сумма, поэтому заведём ещё одно поле, которое будет являться точной копией поля «Калорийность».
Чтобы завести такое «виртуальное» поле воспользуемся механизмом вычисляемых полей.
Переходим на закладку «Вычисляемые поля» и нажимаем зелёный плюсик:
В колонке «Путь к данным» пишем имя нового поля (слитно, без пробелов). Пусть оно будет называться «СредняяКалорийность«, а в колонке «Выражение» пишем имя уже существующего поля, на основании которого будет рассчитываться новое поле. Пишем туда «Калорийность«. Колонка «Заголовок» заполнится автоматически.
Мы добавили новое поле («СредняяКалорийность«), но в отчёте оно само по себе не появится — нужно или вновь вызывать конструктор настроек («волшебная палочка») или добавить это поле вручную.
Поступим вторым способом. Для этого переходим на закладку «Настройки«, выбираем «Отчет» (ведь мы хотим добавить поле в целом к отчёту), выбираем внизу закладку «Выбранные поля» и перетаскиваем поле «СредняяКалорийность» из левой колонки в правую:
Получилось вот так:
Сохраняем и формируем отчет:
Поле появилось и мы видим, что его значениями являются значения поля «Калорийность». Отлично!
Но мы помним, что конечная цель — посчитать среднюю калорийность по группам и в целом по отчёту.
Для этого вновь воспользуемся уже знакомым нам механизмом ресурсов (подведение итогов). Переходим на закладку «Ресурсы» и перетаскиваем поле «СредняяКалорийность» из левой колонки в правую:
При этом в колонке «Выражение» выбираем «Среднее(СредняяКалорийность)«:
Сохраняем и формируем отчёт:
Видим, что по группам, то есть по каждому цвету, и по отчёту в целом совершенно верно посчиталось среднее значение. Но присутствуют лишние записи по отдельным продуктам (не по группам), которые хотелось бы убрать из отчёта.
Знаете почему они появились (значения не по группам)? Потому что, когда мы добавляли поле «СредняяКалорийность» в настройки отчёта, на втором шаге мы выделили весь отчёт в целом и это новое поле попало в элемент «Детальные записи«.
Исправим ошибку. Для этого вернёмся на закладку «Настройки«, выберем «Детальные записи» сначала сверху (шаг 2), а затем «Детальные записи» снизу (шаг 3), перейдём на закладку «Выбранные поля» и увидим в её правой колонке элемент «Авто«.
Элемент «Авто» — это не одно поле. Это несколько полей, которые попадают сюда автоматически на основании вышестоящих настроек.
Чтобы увидеть, что это за поля — нажмём на элемент «Авто» правой кнопкой и выберем пункт «Развернуть«:
Элемент «Авто» раскрылся в следующие поля:
А вот и наше поле «СредняяКалорийность«, которое попало сюда из пункта «Отчет«, когда мы его туда перетаскивали. Просто снимем галку рядом с этим полем, чтобы убрать его вывода:
Сохраним и сформируем отчёт:
То, что надо! Значения «СредняяКалорийность» остались только в группах (цвет) и в итоге по отчёту в целом.
Подводим итог (количество) по вкусам
Ну и напоследок, чтобы закрепить умение подводить итоги, сделаем вывод количества различных вкусов для продуктов каждого цвета.
Ну, например, для белого цвета, это значение будет равно 2 (всего два вкуса «Кислый» и «Сладкий»), а для жёлтого 3 («Сладкий», «Солёный» и «Кислый»).
Переходим на закладку «Ресурсы» и перетаскиваем поле «Вкус» из левой колонки в правую:
В качестве выражения выбираем «Количество(Различные Вкус)«:
Сохраняем и формируем отчёт:
Войдите на сайт как ученик
Авторизуйтесь, чтобы получить доступ ко всем материалам школы
Для учеников
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Итоги в отчетах 1с
Итоги должны присутствовать в любом отчете. Например, если у вас есть поля Наименование количество цена и сумма, то логично по последние колонки получить общий итог. Сегодня рассмотрим, как это сделать с помощью СКД (Система компоновки данных).
На сегодняшний день СКД очень широко применяется для создания различных отчетов. Связанно это с тем что средствами СКД можно создать практический любой отчет. Те кто пользовался системой компоновки данных знает что это очень удобно и быстро не нужно судорожно писать код можно все сделать в конструктором.
Для примера я возьму отчет который мы создавали в прошлой статье. Выглядел он у нас вот так.

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

В открывшемся окне переходим на вкладку Ресурсы. Слева из окна доступные поля выбираем поле Сумма и перетаскиваем его в правое окно. Больше не чего не меняем.

Запускаем 1С и смотрим что у нас получилось. Если вы все сделали правильно, то в конце таблицы должен появиться итог по колонке.

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

В результате получим итоговую сумму по всем колонкам.

Ну вот мы и научились выводит итого по колонкам с помощью системы компоновки данных.
Скриншоты, опубликованные в данной статье, являются цитатами и иллюстрациями программного продукта «1C:Предприятие», авторское право на который принадлежит ЗАО 1С.
как вывести итоги в СКД
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗначенияСвойствОбъектовСрезПоследних.Объект,
ЗначенияСвойствОбъектовСрезПоследних.Свойство,
ЗначенияСвойствОбъектовСрезПоследних.Значение
ПОМЕСТИТЬ ВТ_Нелегальщик
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних(&ДатаВыбора, ) КАК ЗначенияСвойствОбъектовСрезПоследних
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗначенияСвойствОбъектовСрезПоследних.Объект,
ЗначенияСвойствОбъектовСрезПоследних.Свойство,
ЗначенияСвойствОбъектовСрезПоследних.Значение
ПОМЕСТИТЬ ВТ_Участок
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних(&ДатаВыбора, ) КАК ЗначенияСвойствОбъектовСрезПоследних
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Абонент.Ссылка КАК Абонент,
ВТ_Абонент.Подразделения КАК Подразделение,
ВТ_Нелегальщик.Свойство КАК Нелегальщик,
ВТ_Нелегальщик.Значение КАК НелегальщикЗначение,
ВТ_Участок.Свойство КАК Участок,
ВЫБОР
КОГДА НЕ ВТ_Участок.Значение.Наименование ПОДОБНО «%Несанкционирован%»
ТОГДА «заключен»
ИНАЧЕ «незаключен»
КОНЕЦ КАК СостояниеДоговора,
ВТ_Участок.Значение КАК УчастокЗначение,
ВЫБОР
КОГДА ВТ_Участок.Значение.Наименование ПОДОБНО «%Несанкционирован%»
И ВТ_Нелегальщик.Значение = ИСТИНА
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК Нелегал,
ВЫБОР
КОГДА НЕ ВТ_Участок.Значение.Наименование ПОДОБНО «%Несанкционирован%»
И ВТ_Нелегальщик.Значение = ИСТИНА
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК НелегалСДоговором,
ВЫБОР
КОГДА ВТ_Участок.Значение.Наименование ПОДОБНО «%Несанкционирован%»
И ВТ_Нелегальщик.Значение = ЛОЖЬ
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК НаПроверку
ПОМЕСТИТЬ ЗапросПакета4
ИЗ
ВТ_Абонент КАК ВТ_Абонент
ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Нелегальщик КАК ВТ_Нелегальщик
ПО ВТ_Абонент.Ссылка = ВТ_Нелегальщик.Объект
ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Участок КАК ВТ_Участок
ПО ВТ_Абонент.Ссылка = ВТ_Участок.Объект
ГДЕ
ВТ_Участок.Свойство = &Участок
И ВТ_Нелегальщик.Свойство = &Нелегальщик
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗапросПакета4.Абонент,
ЗапросПакета4.Абонент.ЛицевойСчет КАК ЛицевойСчет,
ЗапросПакета4.Абонент.Адрес КАК Адрес,
ЗапросПакета4.Подразделение,
ЗапросПакета4.Нелегальщик,
ЗапросПакета4.НелегальщикЗначение,
ЗапросПакета4.Участок,
ЗапросПакета4.УчастокЗначение,
СУММА(ЕСТЬNULL(ЗапросПакета4.Нелегал, 0)) КАК НеЛегал,
СУММА(ЕСТЬNULL(ЗапросПакета4.НелегалСДоговором, 0)) КАК НеЛегалСДоговором,
СУММА(ЕСТЬNULL(ЗапросПакета4.НаПроверку, 0)) КАК НаПроверку
ИЗ
ЗапросПакета4 КАК ЗапросПакета4
ГДЕ
(ЗапросПакета4.Нелегал <> 0
ИЛИ ЗапросПакета4.НелегалСДоговором <> 0
ИЛИ ЗапросПакета4.НаПроверку <> 0)
СГРУППИРОВАТЬ ПО
ЗапросПакета4.Абонент,
ЗапросПакета4.Подразделение,
ЗапросПакета4.Нелегальщик,
ЗапросПакета4.НелегальщикЗначение,
ЗапросПакета4.Участок,
ЗапросПакета4.УчастокЗначение,
ЗапросПакета4.Абонент.ЛицевойСчет,
ЗапросПакета4.Абонент.Адрес
1С свой итог в отчете скд
Система компоновки данных позволяет настраивать отображение общих итогов по горизонтали и по вертикали в отчете. Для управления расположением общих итогов используются настройки компоновки данных. При использовании конструктора схемы компоновки данных необходимо перейти на вкладку Настройки , а затем выбрать вкладку Другие настройки . На данной вкладке находятся параметры Расположение общих итогов по горизонтали и Расположение общих итогов по вертикали , позволяющие управлять расположением общих итогов в отчете.
Параметр Расположение общих итогов по горизонтали имеет смысл только для таблиц, а параметр Расположение общих итогов по вертикали — для группировок и таблиц.
Существуют следующие варианты расположения общих итогов :
- Нет — не отображать итоги. Для группировок не отображаются только итоги по вертикали, а для таблиц и тоги по вертикали и по горизонтали ;
Пример группировки, для которой параметр Расположение общих итогов по вертикали установлен в значение Нет :
Пример таблицы, для которой параметры Расположение общих итогов по горизонтали и Расположение общих итогов по вертикали установлены в значение Нет :
- Начало — отображать итоги в начале. Для группировок и строк таблицы общие итоги отображаются перед строками группировки, а для колонок таблицы перед колонками группировки ;
Пример группировки, для которой параметр Расположение общих итогов по вертикали установлен в значение Начало :
Пример таблицы, для которой параметры Расположение общих итогов по горизонтали и Расположение общих итогов по вертикали установлены в значение Начало :
- Конец — отображать итоги в конце. Для группировок и строк таблицы общие итоги отображаются после строк группировки, а для колонок таблицы после колонок группировки ;
Пример группировки, для которой параметр Расположение общих итогов по вертикали установлен в значение Конец :
Пример таблицы, для которой параметры Расположение общих итогов по горизонтали и Расположение общих итогов по вертикали установлены в значение Конец :
- Начало и конец — отображать итоги в начале и конце. Для группировок и строк таблицы общие итоги отображаются перед и после строк группировки, а для колонок таблицы перед и после колонок группировки ;
Пример группировки, для которой параметр Расположение общих итогов по вертикали установлен в значение Начало и конец :
Пример таблицы, для которой параметры Расположение общих итогов по горизонтали и Расположение общих итогов по вертикали установлены в значение Начало и конец :
- Авто — расположение общих итогов определяется автоматически. Для группировок верхнего уровня общие итоги отображаются в конце, для остальных группировок общие итоги не отображаются.
Стоит заметить что параметры Расположение общих итогов по горизонтали и Расположение общих итогов по вертикали можно использовать и для вложенных группировок. Например, в указанном ниже отчете для группировки Контрагент общие итоги отображаются в конце, а для группировки Номенклатура в начале и в конце.
Также стоит заметить, что отбор, применяемый в группировке, влияет на отображение общего итога по данной группировке. Например, в указанном ниже отчете для группировки Номенклатура установлен отбор. Соответственно, в общем итоге по группировке Номенклатура указаны количество и стоимость с учетом отбора, тогда как для вышестоящей группировки Номенклатура.Основной поставщик указывается количество и стоимость без учета отбора.
Отчеты в системах 1С используются для вывода информации пользователям в требуемом виде. Чаще всего для этого используется система компоновки данных – специальный механизм платформы, позволяющий писать достаточно сложные отчеты без написания кода. Если вы хотите быстро и грамотно писать отчеты в 1С, то вам придется изучить основные приемы работы с СКД.
Как рассчитать и вывести итоги в СКД
Одной из самых частых просьб пользователей является автоматический подсчет итогов по определенным критериям. Это действительно удобно и позволяет моментально оценить общий результат работы, чтобы не разбирать детально каждую строку отчета. СКД в 1С 8.3 поддерживает достаточно гибкие настройки, чтобы удовлетворить любые разумные требования пользователей.
Рассматривать вывод итогов оптимально на конкретных примерах с отчетом на СКД.
Расчет итогов настраивается на вкладке «Ресурсы», где слева у нас расположены все поля из запроса, а справа – настроечная таблица. Если не задерживаться на этой вкладке, то 1С не будет ничего рассчитывать и выведет данные, полученные после выполнения запроса. Попробуем сделать простой расчет общего количества номенклатуры на каждом складе. Для этого переместим поле в правую часть и установим в качестве выражения сумму.


Кроме суммы в СКД заложены и другие операции, которые можно указывать в поле «Выражение» в правой таблице. Причем они отличаются в зависимости от типа данных поля. Для нечисловых полей вы не сможете вывести в итоги их сумму или узнать среднее значение. С числами вы можете использовать полный набор арифметических операций:
- Сумма;
- Среднее;
- Максимум;
- Минимум;
- Количество;
- Количество различных.
Следует упомянуть, что никто не запрещает нам комбинировать вышеперечисленные функции в поле «Выражение». У нас есть возможность прописать там целые формулы и даже обращаться к функциям общих модулей. В поле «Рассчитывать по…» задают группировки, по которым необходим расчет итогов. То есть вы можете в одном столбце получить различную информацию по отдельным группировкам.
Разберем в качестве примера ситуацию, когда нужно показать информацию, сколько единиц товаров находится на каждом складе. Дополнительно с помощью оператора «Вычислить» в СКД отразим процент единиц номенклатуры определенного цвета от общего количества товаров. Так как для первого запроса нам нужна группировка по складам и общая, а для цветовой дифференциации – лишь по цвету, то мы можем вывести итоги в одну колонку. Дополнительно воспользуемся оператором «Формат», чтобы округлить проценты, и получим такую картину:

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

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

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

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

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

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

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

В открывшемся окне переходим на вкладку Ресурсы. Слева из окна доступные поля выбираем поле Сумма и перетаскиваем его в правое окно. Больше не чего не меняем.

Запускаем 1С и смотрим что у нас получилось. Если вы все сделали правильно, то в конце таблицы должен появиться итог по колонке.

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

В результате получим итоговую сумму по всем колонкам.

Ну вот мы и научились выводит итого по колонкам с помощью системы компоновки данных.
Скриншоты, опубликованные в данной статье, являются цитатами и иллюстрациями программного продукта «1C:Предприятие», авторское право на который принадлежит ЗАО 1С.