Система 1С:Предприятие 8.0 содержит новый механизм для анализа данных — сводные таблицы. С их помощью можно легко выводить многомерные данные, например, объем продаж в разрезе контрагентов и наименований номенклатуры.
Значения измерений отображаются в верхней или боковой шапке сводной таблицы, а ячейки области данных содержат сводную информацию на пересечении измерений. Пользователь имеет возможность добавить или удалить измерения и ресурсы, поменять их расположение.
Для создания сводной таблицы нужны минимальные усилия от программиста, поэтому это самый простой путь для анализа данных.
Ниже показана сводная таблица из отчета АнализПродаж, извлекающего данные из регистра Продажи:
В специальном окне «Поля сводной таблицы», которое отображается при активизации сводной таблицы, можно включать и выключать измерения и ресурсы. Если оно не отображается, то щелкните правой кнопкой на ячейке сводной таблицы и в контекстном меню выберите пункт «Отображать поля».
У табличного документа есть свойство-коллекция ВстроенныеТаблицы, которое позволяет обращаться к сводным таблицам, расположенным на нем. Через эту коллекцию можно добавлять и удалять сводные таблицы при выполнении программы.
Самое главное свойство сводной таблицы — это ИсточникДанных, которое имеет тип РезультатЗапроса или ПостроительОтчета (см. ниже). Это свойство определяет, откуда сводная таблица будет черпать данные для отображения. При использовании результата запроса его итоги становятся ресурсами (отображаются в области данных), а группировочные поля, по которым они подсчитываются, становятся измерениями.
Следующий пример выбирает данные из регистра накопления Продажи, подсчитывает общее количество и сумму по каждому контрагенту (с учетом иерархии), номенклатуре (с учетом иерархии), периодам и странам. Результат запроса помещается в сводную таблицу для анализа:
Запрос = Новый Запрос("
| ВЫБРАТЬ
| ПродажиОбороты.Контрагент КАК Контрагент,
| ПродажиОбороты.Номенклатура КАК Номенклатура,
| ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
| ПродажиОбороты.СуммаОборот КАК СуммаОборот
|ИЗ
| РегистрНакопления.Продажи.Обороты(ПериодС, ПериодПо,
| Месяц,,(Контрагент, Номенклатура))
|КАК ПродажиОбороты
|ИТОГИ СУММА(КоличествоОборот) , СУММА(СуммаОборот) ПО
| Контрагент ИЕРАРХИЯ,
| Номенклатура ИЕРАРХИЯ,
| ПродажиОбороты.Период,
| ПродажиОбороты.Номенклатура.СтранаПроисхождения КАК Страна
| АВТОУПОРЯДОЧИВАНИЕ") ;
Запрос.УстановитьПараметр("ПериодС", Периоде);
Запрос.УстановитьПараметр("ПериодПо", КонецДня(ПериодПо));
Результат = Запрос.Выполнить();
ПолеТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
СводнаяТаблица = ПолеТабДок.ВстроенныеТаблицы.СводнаяТаблица!;
СводнаяТаблица.ИсточникДанных = Результат;
СводнаяТаблица.ОтображатьПоля = Истина;
Если СводнаяТаблица.Колонки.Количество() = 0 И
СводнаяТаблица.Строки.Количество() = 0 И
СводнаяТаблица.Данные.Количество() = 0 Тогда
СводнаяТаблица.Обновление = Ложь;
// Зададим начальное расположение измерений на осях
СводнаяТаблица.Колонки.Добавить("Контрагент");
СводнаяТаблица.Строки.Добавить("Номенклатура");
СводнаяТаблица.Данные.Добавить("КоличествоОборот");
СводнаяТаблица.Данные.Добавить("СуммаОборот");
СводнаяТаблица.Обновление = Истина;
КонецЕсли;
Сформированная сводная таблица выглядит следующим образом:
Компания Архидея - дизайн квартир в кратчайшие сроки. . Купить Canon Powershot G12.