При работе с типовыми конфигурациями на «обычных формах», такими как 1С:Управление торговлей 10.3, пользователи часто сталкиваются с проблемой визуального оформления отчетов. Одной из самых популярных задач является разделение группировок (например, «Менеджер» и «Адрес доставки») по разным колонкам таблицы. По умолчанию «Универсальный отчет» выводит их в виде дерева в одной колонке, что не всегда удобно для анализа или экспорта в Excel.
В этой статье мы разберем, почему это происходит, в чем заключается фундаментальная разница между старым и новым движками отчетности 1С, и какими способами можно добиться желаемого результата.
Для начала проанализируем ситуацию с технической стороны. В современных конфигурациях (УТ 11, ERP, БП 3.0) большинство отчетов строится на Системе компоновки данных (СКД). В СКД существует простая настройка: Расположение полей группировок — «Отдельно» или «Вместе».
Однако в УТ 10.3 «Универсальный отчет» базируется на более старой технологии — Построителе отчета. В архитектуре «Построителя» заложено иерархическое отображение группировок в одной колонке (так называемая «колонка иерархии»). Это сделано для экономии места по горизонтали, но программный код типового Универсального отчета жестко фиксирует это поведение, не давая пользователю возможности изменить его через стандартный интерфейс.
Если нам необходимо остаться в рамках типового Универсального отчета, мы можем прибегнуть к хитрости с использованием дополнительных полей. Рассмотрим этот алгоритм по шагам:
Менеджер. Вторую искомую группировку (например, Адрес доставки) отсюда нужно удалить.Адрес доставки.После таких настроек мы получим следующую структуру: в первой колонке будет «Менеджер», а во второй (в строках детальных записей) — его «Адреса доставки».
Если вы обладаете навыками программирования или имеете доступ к конфигуратору, можно изменить поведение отчета через код. У объекта ПостроительОтчета есть свойство РазмещениеГруппировок.
Посмотрим на пример кода, который управляет этим свойством:
// Пример настройки размещения группировок в Построителе отчета
ПостроительОтчета.РазмещениеГруппировок = РазмещениеГруппировокПостроителяОтчета.ВОтдельныхКолонках;
// Другие варианты:
// .ВОднойКолонке - стандартное поведение дерева
// .ВОтдельныхКолонкахИерархически - раздельно, но с сохранением иерархических отступов
В типовом Универсальном отчете это свойство часто переопределяется внутри модуля обработки. Чтобы внести изменения, придется создать внешнюю копию отчета и модифицировать процедуру формирования табличного документа.
Рано или поздно возможности Универсального отчета в УТ 10.3 станут недостаточными. В этом случае мы рекомендуем использовать Консоль системы компоновки данных. Это мощный инструмент, который позволяет:
Рассмотрим подробнее, где найти эту настройку в конструкторе СКД:
Расположение полей группировок.В этом случае Менеджер будет в первой колонке, а Адрес доставки — во второй, при этом иерархия и итоги сохранятся в полном объеме.
Почему у многих пользователей не получается сделать это с первого раза? Проанализируем типичные ошибки:
Подведем итог: если вам нужно быстро разделить колонки в УТ 10.3 без программирования — используйте «Дополнительные поля» с включенными детальными записями. Если же отчет должен быть профессиональным, красивым и сложным — лучшим выходом будет создание нового отчета на базе Системы компоновки данных (СКД).