Как в отчете СКД вывести только итоги по строкам без детальных колонок?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

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

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

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

  1. Откроем схему компоновки данных и перейдем на вкладку «Настройки».
  2. В верхней панели вариантов скопируем текущий вариант отчета (например, «Основной») и переименуем созданную копию в «Только итоги» или «Сводный».
  3. Перейдем к окну структуры отчета нового варианта. Если вывод настроен через элемент Таблица, развернем ветку «Колонки».
  4. Снимем флажки активности с группировок колонок (документы, периоды или виды продаж) либо полностью удалим группировки колонок из структуры таблицы.
  5. Убедимся, что в выбранных полях группировки строк или самого отчета указан ресурс (например, Сумма или Количество).
  6. Сохраним отчет. Теперь пользователь может в режиме «1С:Предприятие» в любой момент переключиться между подробным и сводным вариантами через меню «Выбрать вариант».

Способ 2. Замена таблицы на плоский список группировок

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

  1. В новом варианте отчета удалим корневой элемент Таблица.
  2. Добавим новую группировку верхнего уровня без указания поля или сразу с полем Номенклатура.
  3. На вкладке «Выбранные поля» для данной группировки укажем необходимые поля: Номенклатура и ресурс СуммаОборот.
  4. При формировании такого отчета СКД сформирует плоский перечень позиций с итоговой суммой по каждой номенклатуре, исключая кросс-табличную сетку.

Способ 3. Одновременный вывод подробной и сводной таблиц на одном экране

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

  1. В схеме СКД на вкладке «Настройки» в корне структуры добавим первый элемент — Таблица (с детальными строками и колонками продаж).
  2. Ниже добавим второй корневой элемент — Группировка (Список) по полю Номенклатура.
  3. В выбранных полях второго элемента оставим только поле группировки и ресурс суммы.
  4. При компоновке отчета СКД последовательно выведет в табличный документ сначала полную матрицу продаж, а затем лаконичную итоговую таблицу.

Способ 4. Настройка расчета ресурсов по выбранным группировкам

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

  1. Перейдем на вкладку «Ресурсы» схемы компоновки данных.
  2. Найдем поле ресурса (например, Сумма) с выражением Сумма(Сумма).
  3. В колонке «Рассчитывать по...» снимем значение Все итоги и явно укажем только группировку Номенклатура и ОбщийИтог.
  4. В таком случае по детальным колонкам документы не будут получать расчетных значений, а итоговая колонка по строке номенклатуры рассчитается корректно.

Способ 5. Динамическое управление выводом через параметр в событии ПриКомпоновкеРезультата

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

Для этого добавим в схему булев параметр ТолькоИтоги и включим его в пользовательские настройки. В модуле отчета переопределим обработчик ПриКомпоновкеРезультата:


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	ПараметрТолькоИтоги = Настройки.ПараметрыДанных.Элементы.Найти("ТолькоИтоги");
	
	Если ПараметрТолькоИтоги <> Неопределено И ПараметрТолькоИтоги.Использование И ПараметрТолькоИтоги.Значение = Истина Тогда
		// Отключаем использование группировок колонок в таблице
		Для Каждого ЭлементСтруктуры Из Настройки.Структура Цикл
			Если ТипЗнч(ЭлементСтруктуры) = Тип("ТаблицаКомпоновкиДанных") Тогда
				Для Каждого Колонка Из ЭлементСтруктуры.Колонки Цикл
					Колонка.Использование = Ложь;
				КонецЦикла;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
КонецПроцедуры

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

← На главную