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