После масштабных обновлений конфигураций, таких как 1С:Управление торговлей 11.5, программисты часто сталкиваются с тем, что привычные отчеты начинают вести себя непредсказуемо. Типичная ситуация: при формировании отчета возникает ошибка "поле характеристика не может использоваться в группировке". При этом ручное добавление поля в режиме "1С:Предприятие" решает проблему лишь временно — после закрытия и открытия отчета все настройки сбрасываются, а попытки сохранить вариант под новым именем не приносят результата. Рассмотрим подробно, почему это происходит и как окончательно устранить проблему.
Одной из главных особенностей последних версий УТ является сосуществование старых и новых механизмов учета (например, переход на взаиморасчеты 2.5). В дереве метаданных это привело к появлению пар отчетов с практически идентичными названиями и синонимами. Проанализируем ситуацию на примере: если через ctrl + F в конфигураторе найти "Ведомость расчетов с клиентами", мы можем обнаружить сразу несколько объектов:
ОбщаяКоманда.ОтчетВедомостьРасчетовСКлиентамиОбщаяКоманда.ОтчетРасчетыСКлиентамиОтчет.ВедомостьРасчетовСКлиентамиОтчет.РасчетыСКлиентамиЧасто пользователь по привычке (или через "Избранное") открывает старый объект, который помечен разработчиками как устаревший, но не удален для совместимости. В то время как система или программные механизмы БСП (Библиотеки стандартных подсистем) уже настроены на работу с новым объектом. Это создает конфликт: вы меняете настройки в одном отчете, а система при следующем запуске подтягивает данные из другого или использует кэшированные настройки "двойника".
Ошибка "поле характеристика не может использоваться в группировке" чаще всего связана с механизмом Дополнительных реквизитов и сведений. В новых версиях конфигураций структура хранения адресов и характеристик была оптимизирована. Если ваш отчет был создан в старой версии, его схема компоновки данных (СКД) может содержать жесткие ссылки на пути к данным, которые после обновления стали недоступны или сменили тип.
Рассмотрим, как это проверить. В конструкторе СКД на закладке "Характеристики" пути к полям могут указывать на объекты, которые в новой версии метаданных скрыты функциональными опциями. Когда вы добавляете поле вручную в режиме предприятия, 1С выполняет динамическое связывание. Но при сохранении варианта система пытается проверить корректность всей структуры СКД, находит "битую" ссылку в исходной схеме и игнорирует сохранение некорректного, с ее точки зрения, варианта.
Чтобы не гадать, с каким из "двойников" мы имеем дело, воспользуемся методом отладки в общем модуле БСП. Разберем по шагам, как найти истинный объект отчета:
ВариантыОтчетов и процедуру СформироватьОтчет.
// В общем модуле ВариантыОтчетов
Функция СформироватьОтчет(Знач Параметры, Знач ПроверятьЗаполнение, Знач ПолучатьФлажокПустой) Экспорт
Результат = Новый Структура("ТабличныйДокумент, Расшифровка, ...
// В этот момент в табло (Shift+F9) вычислите:
// Параметры.СсылкаОтчета.ПолноеИмя
КонецФункции
Этот метод позволит вам точно увидеть ПолноеИмя объекта метаданных. Если вы видите, что запускается не тот отчет, который вы редактируете в конфигураторе (например, Отчет.РасчетыСКлиентами вместо Отчет.ВедомостьРасчетовСКлиентами), значит, вы вносите правки "не туда".
Если отчет верный, но настройки все равно "слетают", выполните следующие действия:
В 1С настройки последнего запуска хранятся отдельно от вариантов. Если в этом хранилище (SystemSettingsStorage) произошел сбой, они будут перекрывать любой сохраненный вариант. Пройдите в Администрирование — Настройки пользователей и прав — Очистка настроек. Выберите нужного пользователя и удалите все настройки для проблемного отчета.
В современных конфигурациях просто изменить СКД в конфигураторе недостаточно. Варианты отчетов регистрируются в специальном справочнике при первом запуске системы после обновления. Если вы добавили новый вариант или существенно изменили старый, выполните принудительное обновление:
// В консоли кода или обработке
ВариантыОтчетов.Обновить();
Или попробуйте сохранить вариант в режиме предприятия под абсолютно новым именем, предварительно сняв флаг "По умолчанию" со всех старых настроек.
Если вы выгрузили отчет во внешнюю обработку, убедитесь, что в свойствах объекта ВнешнийОтчет в поле "Хранилище вариантов" выбрано ХранилищеВариантовОтчетов. Без этого БСП не сможет корректно сохранять настройки во внешнем файле, и они будут пропадать после закрытия формы.
Проверьте, не привязано ли поле "Адрес" или "Характеристика" к функциональной опции (например, ИспользоватьХарактеристикиНоменклатуры). Если опция выключена, 1С физически вырезает поле из схемы при компиляции отчета, даже если оно добавлено в группировку. В этом случае сохранение варианта с этим полем будет блокироваться платформой на уровне проверки прав доступа и видимости данных.
Резюме: Чтобы победить проблему, нужно сначала точно идентифицировать объект через отладку БСП, затем очистить пользовательский кэш настроек и проверить актуальность путей к характеристикам в схеме компоновки данных. Только после этого механизм сохранения вариантов заработает корректно.