При разработке и модификации отчетов на Системе Компоновки Данных (СКД) в 1С, особенно при использовании внешних отчетов, мы часто сталкиваемся с ситуацией, когда внесенные изменения не отображаются в режиме "Предприятие". Это может быть вызвано несколькими причинами, связанными с кэшированием, пользовательскими настройками, особенностями внешних отчетов и их интеграцией в систему. Давайте подробно разберем, почему так происходит и какие шаги необходимо предпринять для решения этой проблемы.
Основная проблема, с которой мы столкнулись: после добавления нового поля в группировку отчета через конфигуратор, оно не появляется в режиме 1С:Предприятие. Поле становится видимым только после того, как мы заходим в расширенные настройки отчета и вручную добавляем его в группировку.
1С активно кэширует пользовательские настройки отчетов. Если пользователь уже открывал отчет и, возможно, сохранял свои индивидуальные настройки, эти сохраненные настройки будут иметь приоритет над изменениями, которые мы внесли в конфигураторе. Поэтому, даже если мы добавили новое поле в схему компоновки данных, пользователь может его не увидеть, пока не сбросит свои индивидуальные настройки.
Идентификатор пользовательских настроек: Пользовательские настройки связаны с вариантом отчета через поле ИдентификаторПользовательскойНастройки. Они применяются "поверх" настроек варианта отчета, что может скрывать наши изменения.
Чтобы изменения в отчете, сделанные в конфигураторе, стали видны пользователям, необходимо сбросить их индивидуальные настройки. Рассмотрим несколько способов, как это сделать:
Через меню отчета в режиме "Предприятие":
Самый простой способ для пользователя – это сбросить настройки непосредственно в форме отчета. Для этого:
Совет из сообщения 2: "После изменения настроек СКД через конфигуратор, устанавливайте стандартные настройки. Так как на УФ некоторые данные сохраняются в пользовательских настройках и изменения не видны."
Очистка настроек для конкретного пользователя администратором:
Если мы хотим сбросить настройки для определенного пользователя централизованно, это может сделать администратор через соответствующий функционал 1С. Обычно это находится в меню "Администрирование" -> "Настройки пользователей и прав" -> "Персональные настройки пользователей" или "Настройки пользователя", где можно найти и удалить сохраненные настройки для конкретного отчета.
Очистка кэша файлов 1С:
Иногда кэширование происходит на уровне файловой системы. Мы можем попробовать очистить файлы кэша с расширениями *.usr и *.cfg из папок профиля пользователя. Это более радикальный шаг, который сбросит все настройки пользователя, а не только для конкретного отчета.
Внешние отчеты, особенно если они созданы копированием типового отчета, могут иметь свои нюансы в плане сохранения и применения настроек. 1С может "помнить" исходный типовой отчет по определенным идентификаторам, даже если мы его сохранили как внешний и внесли изменения.
Чтобы избежать проблем с идентификацией и применением изменений для внешних отчетов, мы можем предпринять следующие шаги:
Переименование отчета:
Если внешний отчет создан копированием типового, может возникнуть "глюк", при котором изменения перестают применяться. Часто помогает переименование отчета, чтобы система воспринимала его как совершенно новый объект. Это приводит к потере старых пользовательских настроек, но обеспечивает применение новых настроек из конфигуратора.
Совет из сообщения 5: "Тогда имя отчета поменяй."
Копирование и назначение основной формы отчета:
При создании внешнего отчета на основе типового, рекомендуется не только изменить имя отчета, но и, если отчет имеет свою форму, скопировать эту форму и назначить ее основной для нового внешнего отчета. Это помогает избежать привязки к идентификаторам типового отчета и его настройкам.
Совет из сообщения 5: "Плюс если есть форма отчета, то лучше ее скопировать и назначить основной. Там привязка в идентификаторах остается и 1ска тащит настройки типового отчета."
Запуск через "Файл - Открыть" для отладки:
Если отчет добавлен как дополнительный (включен в состав конфигурации без изменения ее структуры), и изменения не применяются, мы можем попробовать отключить его публикацию (если она была настроена) и запускать отчет через меню "Файл" -> "Открыть" для проверки. Этот способ гарантирует, что мы работаем с файлом отчета напрямую, минуя возможные кэшированные или ошибочно привязанные настройки из системы дополнительных отчетов.
Программное управление настройками для внешних отчетов:
Для внешних отчетов, особенно на обычных формах (хотя в нашем случае речь идет об управляемых формах), необходимо программно заботиться о сохранении и отображении настроек, если мы не используем типовые шаблоны отчетов, где это реализовано автоматически.
Иногда проблема с отображением изменений может быть связана с тем, что старые варианты отчета, созданные пользователями, имеют устаревшие настройки, которые конфликтуют с новой схемой компоновки данных. Эти варианты продолжают использовать свои внутренние настройки, игнорируя изменения в СКД.
В некоторых случаях, проблема решается путем создания нового варианта отчета непосредственно в режиме "Предприятие". Это может быть связано с тем, что старые варианты отчета имеют устаревшие настройки, которые конфликтуют с новой схемой компоновки данных. При создании нового варианта, он будет основан на текущей схеме СКД из конфигуратора, что гарантирует применение всех последних изменений.
Наблюдение из сообщения 8: "Только работает при создании нового в варианта отчета в режиме предприятие." Это подтверждает, что создание нового варианта действительно обходит проблему с устаревшими настройками.
Пошаговое создание нового варианта отчета:
Учет БСП (Библиотека стандартных подсистем):
Если мы используем варианты отчетов в конфигурации с БСП, необходимо обязательно заполнять описание варианта отчета, иначе они могут не отображаться в общем списке. Также, после добавления новых вариантов или изменения существующих, может потребоваться запустить служебную обработку "Обновление вспомогательных данных", чтобы система корректно обновила информацию о вариантах.
Если вышеуказанные шаги не помогли, или мы хотим более глубоко понять причину проблемы, нам могут пригодиться следующие инструменты:
Консоль компоновки данных:
Для отладки проблем в СКД мы можем использовать "Консоль компоновки данных" (обычно это внешняя обработка или функционал, доступный в режиме отладки конфигуратора). Она позволяет нам увидеть:
Работая с консолью, мы можем пошагово строить СКД, проверяя каждый этап и убеждаясь, что схема компоновки данных формируется так, как мы ожидаем, и все поля присутствуют в наборе данных.
Пошаговая отладка модуля отчета:
Если у отчета есть модуль объекта или модуль формы, в котором происходит программное формирование настроек СКД, мы можем воспользоваться пошаговой отладкой в конфигураторе. Это позволит нам проследить, как формируются настройки, какие параметры устанавливаются и нет ли программных ограничений, которые могут скрывать наши новые поля.
Совет из сообщения 9: "Может в модулях что-то происходит, не смотрел отладчиком?"
В целом, при работе с СКД важно помнить о различных уровнях хранения настроек: в конфигураторе (схема компоновки данных), в вариантах отчета (пользовательские и предопределенные) и в индивидуальных пользовательских настройках. Используя соответствующие механизмы для их обновления и сброса, мы сможем эффективно управлять отображением отчетов и внедрять новые изменения.