1с итоги в отчете

Обновлено: 07.07.2024

в скд выводится отчет где есть несколько числовых полей, как по ним вывести итоги внизу?

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

Запрос не при чем. Посмотри закладку Другие настройки. Там есть "расположение общих итогов. " - не отключено случаем?

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

(2) поставил я расположение итогов на этой вкладке авто, и ничего не вывелось !

Попробуй в СКД закладка Настройки, Затем другие настройки. Там можно все изменить.

(7) а что там можно изменить? я ставлю вывод общих итогов галки, не выводит

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

(10) извиняюсь, напряженная работа, не туда куда то закинул (((

(11) они все в одной группировке, нужно разделить числовые?

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

итоги по ресурсам расчитаются автоматически (это значит убери в оформлении все галки напростив итогов)

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

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

ВЫБРАТЬ
Абоненты.Ссылка,
ЗапросПакета4.Абонент.Адрес

Почему ПОЛНОЕ СОЕДИНЕНИЕ то? По всем признакам должно быть левое?

(24) в принципе на выборку это не влияет, вот итогов по прежнему нет !(

Поле "Состояние договора" - не числовое, но у тебя не включено в группируемые поля. Может из-за этого?

может сам отчет проще выложить? в скд слишком много от галочек зависит.

ЗапросПакета4.Абонент.ЛицевойСчет, ЗапросПакета4.Абонент.Адрес надо указать в роли что его родителем является измерение Абонент.

в (15)и(16) все сказано для формирования итогов, если у тебя не то формирует, значит либо запрос кривой, либо настройка вывода кривая

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

В мастере настроек группировки выбирай тип отчета - список

(37) убрал таблицу оставив одну группировку, то же самое.

Ну сверху над кнопка такая есть "Открыть конструктор настроек"

(42) знаю только конструктор запроса кнопку, в упор не нащел конструктор настроек, над чем она есть?

(42) нащел кнопку, но она стирает предыдущие настройки, я же их вручную делал .

(45)неправильно делал. Пусть за тебя конструктор сделает

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

Наведи порядок в своей работе используя конфигурацию 1C "Управление IT-отделом 8"

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

Система компоновки данных 1С 8.3 для начинающих: считаем итоги (ресурсы)

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

Ставим цель

Целью этого урока будет:

  • Написать отчёт, который выводит список продуктов (справочник Еда), их калорийность и вкус.
  • Сделать группировку продуктов по их цвету.
  • Познакомиться с возможностью подведения итогов (ресурсы) и вычисляемыми полями.

Создаём новый отчёт

Как и на предыдущих уроках открываем базу "Гастроном" в конфигураторе и создаём новый отчёт через меню "Файл"->"Новый. ":

Вид документа - внешний отчёт:

В форме настройки отчёта пишем имя "Урок3" и нажимаем кнопку "Открыть схему компоновки данных":

Оставляем имя схемы по умолчанию и нажимаем кнопку "Готово":

Добавляем запрос через конструктор

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

Вместо того, чтобы писать текст запроса вручную, вновь запускаем конструктор запроса:

На вкладке "Таблицы" перетягиваем таблицу "Еда" из первой колонки во вторую:

Выбираем из таблицы "Еда" поля, которые будем запрашивать. Для этого перетаскиваем поля "Наименование", "Вкус", "Цвет" и "Калорийность" из второй колонки в третью:

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

Нажимаем кнопку "ОК" - текст запроса сформировался автоматически:

Формируем настройки представления отчёта

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

Выбираем вид отчета "Список. " и нажимаем кнопку "Далее":

Перетаскиваем из левой колонки в правую поля, которые будут отображаться в списке и нажимаем "Далее":

Перетаскиваем из левой колонки в правую поле "Цвет" - по нему будет происходить группировка строк в отчёте. Нажимаем "ОК":

А вот и результат работы конструктора. Иерархия нашего отчёта:

  • отчёт в целом
  • группировка "Цвет"
  • детальные записи - строки с названиями еды

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

Меняем порядок колонок

Но давайте поменяем порядок колонок (стрелки вверх-вниз), чтобы он был таким как на рисунке ниже:

Сохраним отчёт и вновь откроем в режиме пользователя:

Отлично, так гораздо лучше.

Подводим итог (сумму) по калорийности

Было бы неплохо выводить итог калорийности продуктов по группам. Чтобы видеть сумму калорийности всех продуктов, скажем, белого или жёлтого цвета. Или узнать общую калорийность вообще всех продуктов в базе.

Для этого существует механизм вычисления ресурсов.

Переходим на вкладку "Ресурсы" и перетаскиваем поле "Калорийность" (мы же по нему собираемся итог подводить) из левой колонки в правую.

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

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

У нас появились итоги по каждой из групп и по отчёту в целом.

Подводим итог (среднее) по калорийности

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

Трогать уже имеющуюся колонку "Калорийность" нельзя - в неё уже выводится итог-сумма, поэтому заведём ещё одно поле, которое будет являться точной копией поля "Калорийность".

Чтобы завести такое "виртуальное" поле воспользуемся механизмом вычисляемых полей.

Переходим на закладку "Вычисляемые поля" и нажимаем зелёный плюсик:

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

Мы добавили новое поле ("СредняяКалорийность"), но в отчёте оно само по себе не появится - нужно или вновь вызывать конструктор настроек ("волшебная палочка") или добавить это поле вручную.

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

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

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

Поле появилось и мы видим, что его значениями являются значения поля "Калорийность". Отлично!

Но мы помним, что конечная цель - посчитать среднюю калорийность по группам и в целом по отчёту.

Для этого вновь воспользуемся уже знакомым нам механизмом ресурсов (подведение итогов). Переходим на закладку "Ресурсы" и перетаскиваем поле "СредняяКалорийность" из левой колонки в правую:

При этом в колонке "Выражение" выбираем "Среднее(СредняяКалорийность)":

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

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

Знаете почему они появились (значения не по группам)? Потому что, когда мы добавляли поле "СредняяКалорийность" в настройки отчёта, на втором шаге мы выделили весь отчёт в целом и это новое поле попало в элемент "Детальные записи".

Исправим ошибку. Для этого вернёмся на закладку "Настройки", выберем "Детальные записи" сначала сверху (шаг 2), а затем "Детальные записи" снизу (шаг 3), перейдём на закладку "Выбранные поля" и увидим в её правой колонке элемент "Авто".

Элемент "Авто" - это не одно поле. Это несколько полей, которые попадают сюда автоматически на основании вышестоящих настроек.

Чтобы увидеть, что это за поля - нажмём на элемент "Авто" правой кнопкой и выберем пункт "Развернуть":

Элемент "Авто" раскрылся в следующие поля:

А вот и наше поле "СредняяКалорийность", которое попало сюда из пункта "Отчет", когда мы его туда перетаскивали. Просто снимем галку рядом с этим полем, чтобы убрать его вывода:

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

То, что надо! Значения "СредняяКалорийность" остались только в группах (цвет) и в итоге по отчёту в целом.

Подводим итог (количество) по вкусам

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

Ну, например, для белого цвета, это значение будет равно 2 (всего два вкуса "Кислый" и "Сладкий"), а для жёлтого 3 ("Сладкий", "Солёный" и "Кислый").

Переходим на закладку "Ресурсы" и перетаскиваем поле "Вкус" из левой колонки в правую:

В качестве выражения выбираем "Количество(Различные Вкус)":

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

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

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

Для учеников

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

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

Особенности отображения общих итогов

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


Параметр Расположение общих итогов по горизонтали имеет смысл только для таблиц, а параметр Расположение общих итогов по вертикали - для группировок и таблиц.

Существуют следующие варианты расположения общих итогов :

  • Нет - не отображать итоги. Для группировок не отображаются только итоги по вертикали, а для таблиц и тоги по вертикали и по горизонтали ;

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


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


  • Начало - отображать итоги в начале. Для группировок и строк таблицы общие итоги отображаются перед строками группировки, а для колонок таблицы перед колонками группировки ;

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


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


  • Конец - отображать итоги в конце. Для группировок и строк таблицы общие итоги отображаются после строк группировки, а для колонок таблицы после колонок группировки ;

Пример группировки, для которой параметр Расположение общих итогов по вертикали установлен в значение Конец :


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


  • Начало и конец - отображать итоги в начале и конце. Для группировок и строк таблицы общие итоги отображаются перед и после строк группировки, а для колонок таблицы перед и после колонок группировки ;

Пример группировки, для которой параметр Расположение общих итогов по вертикали установлен в значение Начало и конец :


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


  • Авто - расположение общих итогов определяется автоматически. Для группировок верхнего уровня общие итоги отображаются в конце, для остальных группировок общие итоги не отображаются.

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


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

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

Я предлагаю функцию обПостроительВывестиПоГруппировкам , которая занимается выводом таблицы значений с помощью построителя отчета с заданными группировками, итогами и параметрами группировок.
Итоги можно использовать любые - количество, сумма, среднее.
Пока еще не поддерживается сортировка, именно поэтому список параметров передается в виде структуры, чтобы можно было добавлять свои параметры.
Используется гибкое управление параметрами:
= Если не задан макет, то замена макета не производится
= Если не заданы параметры построителя, то они и не назначаются
= Может использоваться в качестве источника не только таблица значений, но и результат запроса
= Если не задан табличный документ, то она не выводится

Пример вызова функции:

Структура макета

Строки с уровнями именуются Уровень0, Уровень1, .
Колонки с уровнями именуются кУровень0, кУровень1, …
Детальная информация по строкам именуется кДетали.
Общие итоги именуются ОбщиеИтоги, шапка таблицы - ШапкаТаблицы, подвал таблицы - ПодвалТаблицы.


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

Кроме измерений и итогов, можно выводить доп.параметры, например на рисунке виден параметр Адрес.

Замечания по коду

Пусть у нас есть некая таблица значений ТЗ.
Построитель отчета, привязанный к этой таблице значений, создается так:

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

Нужно указать, что колонки спзГруппы будут измерениями построителя - функция обПостроительОтчетаУстановитьИзмерения .
Нужно указать, что колонки спзИтоги будут итогами построителя и назначить им некоторую функцию итогов (Количество,Сумма) - функция обПостроительОтчетаУстановитьИтоги .
Затем вызывает заполнение настроек построителя:

Затем мы выполняем построитель и заполняем параметры вывода макета:

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

Читайте также: