При разработке и доработке отчетов на базе Системы компоновки данных (СКД) в 1С разработчики часто сталкиваются с неочевидным поведением платформы. Разберем типичную ситуацию: мы добавили новое поле, например Артикул номенклатуры, в отчет «Остатки запасов» в конфигурации «1С:Управление нашей фирмой». Однако при запуске в режиме «Предприятие» добавленный артикул либо вообще не выводится, либо «слипается» в одной колонке с наименованием номенклатуры. Проанализируем причины такого поведения и рассмотрим рабочие способы решения этой задачи.
Часто программисты вносят изменения в структуру отчета в Конфигураторе, добавляют новые группировки или выбранные поля, но в пользовательском режиме отчет выглядит по-старому. Выясним причину.
Механика работы 1С устроена так, что платформа отдает наивысший приоритет пользовательским настройкам. Когда пользователь впервые открывает отчет, система формирует для него индивидуальный вариант настроек и сохраняет его в базе. Если после этого мы меняем схему в Конфигураторе, платформа не применяет эти изменения автоматически, чтобы не затереть то, что пользователь мог кропотливо настроить под себя.
Решим эту проблему по шагам:
После этих действий отчет подтянет актуальную структуру напрямую из Конфигуратора, и наши новые поля наконец-то появятся.
Важное дополнение: Иногда схема СКД жестко кэшируется текущим сеансом платформы (особенно если мы работаем с внешним отчетом). Если сброс настроек не помог, закроем режим «Предприятие» и очистим кэш 1С, либо просто сохраним внешний отчет под новым именем файла.
Вторая часть проблемы заключается в том, что реквизит выводится не так, как нам нужно. Если добавить Артикул просто как дополнительное поле к группировке Номенклатура, система по умолчанию выведет их в одной ячейке (слитно). Рассмотрим несколько правильных способов вывода реквизитов в отдельные колонки, чтобы не плодить лишние вложенные группировки.
Способ 1: Настройка расположения реквизитов (рекомендуемый)
В СКД предусмотрена специальная настройка, управляющая поведением дополнительных реквизитов. Разберем, как ее использовать:
Расположение реквизитов.Артикул (без создания отдельной группировки для него).Теперь СКД автоматически выделит под артикул отдельную красивую колонку рядом с номенклатурой.
Способ 2: Настройка расположения полей группировок
Если по какой-то причине нам необходимо добавить Артикул именно как отдельное поле группировки (измерение) на одном уровне с Номенклатура, применим другой параметр:
Расположение полей группировок.Что делать, если пользователь хочет видеть Артикул перед наименованием (в самой первой колонке отчета), а мы не хотим переписывать схему в Конфигураторе? Рассмотрим отличный инструмент — Пользовательские поля.
Мы можем настроить это прямо в режиме «Предприятие»:
[Номенклатура.Артикул].Таким образом, мы добились идеального визуального результата без программирования и изменения основной конфигурации. Посмотрим на результат — теперь отчет строится корректно, а данные легко читаются.