В процессе работы с типовыми конфигурациями на платформе 1С:Предприятие 8.3 (такими как ERP, Управление торговлей 11 или Комплексная автоматизация) пользователи часто сталкиваются с ситуацией: дополнительный реквизит успешно создан и отображается в колонках отчета, но при попытке установить по нему группировку отчет становится пустым или данные исчезают. Рассмотрим подробнее, почему это происходит и как правильно настроить отчет, чтобы группировка работала корректно.
Прежде всего, проанализируем, как 1С хранит дополнительные реквизиты. Они не являются физическими полями таблицы справочника (например, Справочник.Контрагенты), а хранятся в отдельной табличной части ДополнительныеРеквизиты. Когда мы пытаемся просто «вытянуть» реквизит через путь Контрагент.ДополнительныеРеквизиты.Значение, система воспринимает это как обращение к вложенной таблице.
Важный нюанс: если вы используете группировку по полю из табличной части, система применяет внутреннее соединение (Inner Join). Если у объекта не заполнен хотя бы один доп. реквизит или связь настроена неверно, вся строка данных исключается из отчета. Чтобы этого избежать, в Системе компоновки данных (СКД) существует механизм «Характеристики». Он позволяет платформе «прикидываться», что дополнительный реквизит — это обычное поле объекта, такое же как «ИНН» или «Наименование».
Чаще всего ошибка кроется в неверном выборе поля в окне «Изменить вариант». Давайте разберем по шагам, как найти нужное поле, которое будет работать в группировке:
Контрагент) и разверните его, нажав на «+».Контрагента до самого конца. Благодаря механизму характеристик, ваши дополнительные реквизиты должны дублироваться в конце общего списка. Они обычно имеют иконку, отличную от стандартных реквизитов (часто это желтый значок с ключом или синий квадрат).Проанализируем ситуацию: если вы выбрали поле через путь Контрагент.ДополнительныеРеквизиты.(ИмяРеквизита), отчет может сломаться. Если выбрали просто Контрагент.(ИмяРеквизита) из корня объекта — группировка отработает через левое соединение (Left Join), и пустые значения не «отрежут» данные отчета.
Если в режиме Предприятия в списке полей вы не видите своего реквизита вне папки «Дополнительные реквизиты», значит, в схеме компоновки данных (СКД) не настроены характеристики. Выясним, как это поправить в Конфигураторе:
Рассмотрим пример того, как программно может выглядеть описание характеристик в метаданных (хотя в СКД это чаще настраивается визуально):
// Характеристики описываются для того, чтобы СКД динамически
// подтягивала доп. реквизиты в список доступных полей
// Виды характеристик: ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения
// Значения характеристик: Справочник.Контрагенты.ДополнительныеРеквизиты
// Поле вида: Свойство
// Поле значения: Значение
В «Универсальном отчете» проблема группировки часто связана с тем, какая основная таблица выбрана. Если вы пытаетесь группировать данные справочника по его доп. реквизиту:
Посмотрим на пример настройки: если выбрать таблицу «Дополнительные реквизиты», то отчет будет показывать только сами реквизиты. Для получения полноценных данных (например, остатков или оборотов) вместе с группировкой по свойству, нужно:
РегистрНакопления.ВыручкаИПродажи).АналитикаУчетаПоПартнерам.Партнер.(ВашРеквизит).Если после всех манипуляций при добавлении группировки данные исчезают, проанализируем следующие моменты:
1. Кэш метаданных. Платформа может «помнить» старую структуру характеристик. Попробуйте в режиме Предприятия в окне «Изменить вариант» нажать Еще — Установить стандартные настройки. Это принудительно обновит состав доступных полей из текущей конфигурации.
2. Тип соединения в запросе. Если вы редактировали запрос в конфигураторе вручную, проверьте, как присоединяется таблица дополнительных реквизитов. Всегда используйте ЛЕВОЕ СОЕДИНЕНИЕ, чтобы записи основного объекта (например, продажи) не пропадали, если у контрагента не заполнен этот конкретный реквизит.
3. Сведения вместо Реквизитов. Проверьте, не создано ли ваше поле как «Дополнительное сведение». Сведения хранятся в независимом регистре сведений ДополнительныеСведения. Для них настройка характеристик в СКД отличается (источник значений — регистр, а не табличная часть), и в «Универсальном отчете» их нужно искать в соответствующем разделе.
Таким образом, для корректной группировки в типовых отчетах ERP необходимо использовать механизм характеристик, выбирать поля из корня объекта (а не из папки табличной части) и следить за тем, чтобы в СКД были корректно описаны связи с планом видов характеристик.