При работе в конфигурациях на базе управляемого интерфейса (в частности, в 1С:ERP Управление предприятием 2) пользователи и администраторы нередко сталкиваются с ситуацией, когда формы документов или списков перестают открываться корректно, возникают непредвиденные ошибки интерфейса или пропадают важные колонки. В обычном приложении для сброса существовал простой метод ОчиститьНастройкиПользователя, однако в тонком клиенте на управляемых формах он недоступен. Выясним причину этой проблемы и подробно разберем все способы очистки пользовательских настроек, хранящихся на сервере.
Проанализируем ситуацию: серверные настройки пользователя включают в себя расположение и видимость колонок списков, сохраненные отборы, сортировки, оформление табличных частей, а также пользовательские варианты отчетов. Необходимость их сброса чаще всего возникает после обновления структуры конфигурации, когда сохраненные ранее метаданные интерфейса начинают конфликтовать с новыми реквизитами форм, либо при повреждении сериализованных данных настроек в информационной базе.
Рассмотрим самый быстрый способ, позволяющий администратору сбросить накопленные интерфейсные параметры конкретного сотрудника без написания кода и вызова внешних обработок. Разберем по шагам порядок действий в интерфейсе 1С:ERP:
Этот метод сбрасывает привязанные к пользователю настройки внешнего вида форм и возвращает отображение элементов к стандартному системному состоянию, заданному разработчиками конфигурации.
В конфигурациях, использующих Библиотеку стандартных подсистем (включая 1С:ERP, КА, УТ), предусмотрен специализированный интерфейс для более гибкого управления пользовательскими настройками. Он позволяет очищать не только все параметры сразу, но и точечно выбирать определенные формы или списки.
Разберем последовательность действий:
Такой подход удобен, если у пользователя нарушилось отображение только одной проблемной формы: нет необходимости сбрасывать остальные привычные настройки интерфейса всей системы.
Если сбой затронул только одну форму, а у сотрудника нет прав администратора базы, он может вернуть ее исходный вид самостоятельно. Рассмотрим, как это сделать:
Посмотрим на пример решения задачи средствами встроенного языка 1С:Предприятия. На платформе 8.3 для управления серверными настройками в управляемом приложении предназначены менеджеры хранилищ. С их помощью можно программно сбросить параметры конкретного пользователя на стороне сервера. Для этого используется метод Удалить() соответствующего объекта:
// Удаление системных настроек пользователя (настройки форм, списков и т.д.)
ХранилищеСистемныхНастроек.Удалить(Неопределено, Неопределено, ИмяПользователя);
// Удаление общих настроек
ХранилищеОбщихНастроек.Удалить(Неопределено, Неопределено, ИмяПользователя);
// Удаление сохраненных данных форм
ХранилищеНастроекДанныхФорм.Удалить(Неопределено, Неопределено, ИмяПользователя);
// Удаление пользовательских вариантов и настроек отчетов
ХранилищеПользовательскихНастроекОтчетов.Удалить(Неопределено, Неопределено, ИмяПользователя);
Проанализируем параметры: если первыми двумя аргументами передать Неопределено, менеджер удалит абсолютно все настройки указанного пользователя в этом хранилище. Если же требуется сбросить настройки только одного объекта, первыми параметрами передаются конкретные КлючОбъекта и КлючНастроек.
Обратите внимание: выполнение этого кода для другого пользователя требует полных административных прав (наличия роли с правом Администрирование).
На стороне СУБД серверные настройки 1С распределяются по системным таблицам. Например, в MS SQL Server параметры хранятся в следующих таблицах:
_SystemSettings — хранит настройки форм, списков и интерфейсных элементов;_CommonSettings — системные и общие параметры конфигурации;Некоторые администраторы практикуют удаление записей прямыми запросами DELETE по полю _UserId. Однако мы настоятельно рекомендуем избегать этого метода из-за следующих архитектурных особенностей платформы:
rphost активно кэшируют пользовательские настройки в оперативной памяти сервера. Удаление строк напрямую в SQL не сбрасывает кэш сервера приложений: при выходе пользователя из системы его активная сессия может повторно перезаписать старые данные обратно в таблицы базы./ClearCache либо ручным удалением каталогов в AppData\Local\1C\1cv8 и AppData\Roaming\1C\1cv8.Таким образом, наиболее надежным и безопасным решением для управляемых форм 1С:ERP остается использование встроенных инструментов БСП через меню администрирования или программный вызов методов ХранилищеСистемныхНастроек.