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