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