Почему 1С 8.3 не запоминает настройки пользователя и как это исправить

· 9 мин

Содержание

«Сохранение данных пользователя» в 1С 8.3 — это право в роли, без которого платформа не записывает личные настройки: ширину колонок, отборы списков, варианты отчётов, состав панелей, историю ввода. Если у пользователя нет ни одной роли с этим правом, после каждого перезапуска интерфейс возвращается к стандартному виду. Проверка занимает минуту: роль в конфигураторе, вкладка прав, флажок на уровне конфигурации.

Типичная история: бухгалтер настроила журнал проводок под себя, на следующий день открыла 1С — всё сбросилось. Администратор недавно собрал для неё новый профиль доступа и забыл роль, которая разрешает сохранять настройки. Пока роль не вернули в профиль, каждое утро начиналось с повторной настройки колонок и отборов. После исправления профиля и одного перезапуска программы проблема ушла и больше не возвращалась.

Как 1С 8.3 хранит персональные настройки пользователя

Личные настройки живут в самой информационной базе, а не на компьютере пользователя. Поэтому они «переезжают» вместе с человеком: зашёл с другого рабочего места или через веб-клиент — увидел свой привычный интерфейс.

Платформа раскладывает настройки по нескольким хранилищам. Каждое доступно и из встроенного языка:

Хранилище (свойство глобального контекста)Что в нём лежит
ХранилищеСистемныхНастроекПоложение окон, состав панелей, настройки командного интерфейса, история
ХранилищеОбщихНастроекПроизвольные настройки, которые сохраняет прикладной код конфигурации
ХранилищеНастроекДанныхФормЗначения реквизитов форм, помеченных как сохраняемые
ХранилищеВариантовОтчетовВарианты отчётов, созданные пользователями
ХранилищеПользовательскихНастроекОтчетовОтборы, группировки и оформление в отчётах
ХранилищеПользовательскихНастроекДинамическихСписковОтборы, сортировка, колонки списков

В клиент-серверном варианте этим хранилищам соответствуют служебные таблицы СУБД — _SystemSettings, _CommonSettings, _FrmDtSettings, _RepSettings, _RepVarSettings, _DynListSettings. В файловой базе всё находится внутри 1Cv8.1CD.

Не правьте и не очищайте эти таблицы запросами к SQL. Структуру поддерживает платформа, ручное вмешательство приводит к ошибкам при открытии форм. Для управления настройками есть штатные средства, о них ниже.

Ключ каждой записи — имя пользователя информационной базы, ключ объекта (например, имя формы) и ключ настроек. Отсюда два следствия:

  • 👤 у разных пользователей одной базы настройки независимы;
  • 🔁 если человек работает под общей учётной записью, все, кто под ней входит, перезаписывают настройки друг друга.

Отдельно от базы на компьютере хранится только локальная служебная информация: кэш конфигурации в %APPDATA%\1C\1cv8\ и %LOCALAPPDATA%\1C\1cv8\, список баз в ibases.v8i. Очистка кэша через параметр запуска /ClearCache личные настройки форм и отчётов не удаляет.

Право «Сохранение данных пользователя» в ролях

Право находится в свойствах роли на уровне всей конфигурации, а не отдельного объекта. Чтобы проверить его в конфигураторе:

  1. Откройте Конфигурация → Открыть конфигурацию.
  2. В дереве метаданных разверните Общие → Роли, откройте нужную роль.
  3. В левом списке объектов выделите самую верхнюю строку — корень конфигурации.
  4. В правом списке прав найдите «Сохранение данных пользователя» и посмотрите, стоит ли флажок.

Роли объединяются по принципу «разрешено хотя бы в одной». Достаточно, чтобы право было включено в любой из ролей пользователя.

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) для этого есть отдельная роль «Сохранение данных пользователя». Её включают в профили групп доступа. Когда администратор создаёт свой профиль с нуля или копирует профиль и удаляет «лишнее», эта роль часто пропадает.

Роль «Сохранение данных пользователя» в БСП несёт только это право и не открывает доступ к данным учёта. Включать её можно в любой профиль без риска расширить права.

Рядом с ним в том же списке есть похожие по смыслу права, которые путают:

  • 🗂 «Сохранение данных пользователя» — запись личных настроек;
  • 📊 «Вывод» — печать, сохранение в файл и копирование в буфер табличных документов;
  • 🔐 «Администрирование» — в том числе работа с настройками других пользователей через хранилища.

Без «Вывода» пользователь не сохранит отчёт в Excel, но настройки отчёта у него сохранятся. Без «Сохранения данных пользователя» — наоборот.

Профили и настройки пользователей в режиме «Предприятие»

В конфигурациях на БСП права раздают не в конфигураторе, а в пользовательском режиме. Путь общий для БП 3.0, ЗУП 3.1 и УТ 11:

Администрирование → Настройки пользователей и прав

Там три нужных инструмента:

  • 🧩 Профили групп доступа — откройте профиль, на вкладке ролей найдите «Сохранение данных пользователя» поиском по списку и отметьте её. Поставляемые профили менять нельзя: скопируйте профиль и правьте копию.
  • 👥 Группы доступа — проверьте, что пользователь входит в группу с исправленным профилем.
  • ⚙️ Настройки пользователей — обработка, которая показывает, копирует и очищает личные настройки выбранного человека.

Обработка «Настройки пользователей» решает почти все задачи без программиста:

  1. Выберите пользователя-источника.
  2. Отметьте виды настроек: внешний вид, настройки отчётов, прочие.
  3. Нажмите команду копирования и укажите, кому передать настройки. Можно выбрать нескольких получателей или целую группу.
  4. Для сброса выберите пользователя и выполните очистку отмеченных настроек.

Так удобно готовить рабочее место новому сотруднику: настроить один «эталонный» профиль кассира или кладовщика и разнести его на всех.

Копирование заменяет настройки получателя без запроса на слияние. Если у получателя есть свои варианты отчётов, сначала скопируйте их отдельно либо предупредите человека.

Сам пользователь может вернуть стандартный вид без администратора. Для одной формы — через Ещё → Изменить форму и кнопку стандартных настроек. Для отчёта — через меню настроек отчёта. Это локальный сброс, остальные формы не трогаются.

Перенос настроек между базами и выгрузка в XML

Обработка «Настройки пользователей» работает только внутри одной базы. Для переноса в другую базу (например, из копии в рабочую) нужен код. Самый надёжный путь — прочитать настройку из хранилища, сериализовать в XML, затем записать в другой базе.

Пример выгрузки общей настройки текущего пользователя в файл. Выполнять на сервере, например во внешней обработке:

&НаСервереБезКонтекста
Процедура ВыгрузитьНастройкуНаСервере(КлючОбъекта, КлючНастроек, ИмяФайла)

	Настройка = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта, КлючНастроек);
	Если Настройка = Неопределено Тогда
		ВызватьИсключение "Настройка не найдена";
	КонецЕсли;

	Запись = Новый ЗаписьXML;
	Запись.ОткрытьФайл(ИмяФайла);
	СериализаторXDTO.ЗаписатьXML(Запись, Настройка, НазначениеТипаXML.Явное);
	Запись.Закрыть();

КонецПроцедуры

Загрузка в другой базе — обратная операция:

&НаСервереБезКонтекста
Процедура ЗагрузитьНастройкуНаСервере(КлючОбъекта, КлючНастроек, ИмяФайла)

	Чтение = Новый ЧтениеXML;
	Чтение.ОткрытьФайл(ИмяФайла);
	Настройка = СериализаторXDTO.ПрочитатьXML(Чтение);
	Чтение.Закрыть();

	ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройка);

КонецПроцедуры

Что важно знать о таком переносе:

  • 📌 не каждое значение сериализуется в XDTO. Простые типы, структуры, массивы, НастройкиКомпоновкиДанных проходят; объекты с внутренними ссылками на данные базы могут не загрузиться, если в целевой базе нет тех же элементов справочников;
  • 📌 чтобы выгрузить настройки другого пользователя, у методов Загрузить и Сохранить есть параметр с именем пользователя. Работать с чужими настройками может только пользователь с правом «Администрирование»;
  • 📌 ключи объектов совпадают только между базами одной конфигурации. Между БП и УТ формы называются по-разному.

Для полного переноса базы целиком настройки уходят вместе с ней: выгрузка .dt содержит хранилища настроек. Если восстановить базу из старого .dt, у всех пользователей вернутся настройки на дату выгрузки.

Параметры сеанса и что в них сохранять нельзя

Параметры сеанса часто путают с сохранением данных пользователя. Это разные механизмы.

Параметры сеансаХранилища настроек
Где живутВ памяти сеанса на сервереВ таблицах информационной базы
Срок жизниДо завершения сеансаПока их не удалят
Кто задаётКод в модуле сеанса, процедура УстановкаПараметровСеансаПлатформа при закрытии форм и код конфигурации
Нужно ли право «Сохранение данных пользователя»НетДа
Зачем нужныТекущий пользователь, организация по умолчанию, параметры для RLSВнешний вид и личные предпочтения

Параметр сеанса пропадает при выходе из программы. Если доработка хранит в нём, например, выбранный склад, то после перезапуска склад сбросится, и никакие права это не исправят. Для таких значений нужен ХранилищеОбщихНастроек или регистр сведений с измерением «Пользователь».

Обратная ситуация тоже встречается. Ограничение доступа на уровне записей (RLS) читает параметры сеанса. Если программист в модуле сеанса заполняет их из личных настроек, а сохранение запрещено, пользователь получит пустые значения и, как следствие, пустые списки или ошибки доступа.

Правило для доработок: всё, что должно пережить перезапуск, — в хранилище или регистр. Всё, что нужно только в текущем сеансе и для ограничений доступа, — в параметры сеанса.

Диагностика: почему сбрасываются настройки интерфейса

Ниже — причины, которые встречаются на практике, от частой к редкой. Проверяйте по порядку.

Диагностика: выберите симптом

Если причина в правах, после исправления профиля пользователь должен перезапустить 1С: состав ролей применяется при входе в программу.

Если права в порядке, а настройки всё равно сбрасываются у всех сразу, проверьте журнал регистрации за последние сутки. Ищите события обновления конфигурации и загрузки информационной базы — это покажет, не откатывал ли кто-то базу.

Перед массовой очисткой настроек через обработку сделайте резервную копию базы . Удалённые варианты отчётов не восстанавливаются иначе как из копии.

Если ничего не помогло

Когда права есть, пользователь один, а интерфейс всё равно не запоминается, остаются редкие случаи:

  1. 🧪 Доработка, которая сбрасывает настройки. В конфигурации может быть код, очищающий хранилища при входе. Поищите глобальным поиском в конфигураторе вызовы ХранилищеСистемныхНастроек.Удалить и ХранилищеОбщихНастроек.Удалить.
  2. 🧱 Расширение со своей ролью. Если расширение подменяет роли пользователя или формы, сохранённые настройки исходных форм перестают подходить. Отключите расширение на копии базы и проверьте.
  3. 🗃 Переопределённые хранилища. Конфигурация может подменять стандартные хранилища своими объектами «Хранилище настроек» (свойства конфигурации в конфигураторе). Если там указан собственный объект, логика записи определяется его модулем.
  4. 🛠 Повреждение таблиц. Для файловой базы — тестирование и исправление через Администрирование → Тестирование и исправление в конфигураторе. Режим требует монопольного доступа: все пользователи должны выйти из базы, сеансы будут прерваны. Запускайте вне рабочего времени и только после резервной копии.

Частые вопросы

Сохранятся ли настройки, если пользователя переименовать?
Настройки привязаны к имени пользователя информационной базы. После переименования проверьте, что форма и отчёты открываются в привычном виде; если нет — скопируйте настройки обработкой «Настройки пользователей» со старого имени до его удаления.
Можно ли запретить пользователю менять свой интерфейс?
Да, если убрать право «Сохранение данных пользователя». Он сможет двигать колонки в текущем сеансе, но после перезапуска всё вернётся к стандартному виду, заданному администратором.
Где хранятся настройки в веб-клиенте?
Там же, в информационной базе. Веб-клиент и тонкий клиент одного пользователя видят одни и те же настройки форм и отчётов.
Удаляет ли очистка кэша мои варианты отчётов?
Нет. Кэш на компьютере хранит служебные файлы конфигурации. Варианты отчётов и настройки списков лежат в базе и остаются на месте.
Как задать одинаковые настройки сразу всем новым сотрудникам?
Настройте рабочее место у одного пользователя-шаблона и раздайте его настройки обработкой «Настройки пользователей». Новым людям копируйте с этого шаблона при создании учётной записи.