Настройки форм, отчётов и интерфейса в 1С 8.3: хранилища в базе, локальные файлы и перенос

· 9 мин

Содержание

Настройки пользователей в 1С 8.3 хранятся в самой информационной базе, а не на компьютере. В файловой базе они лежат внутри файла 1Cv8.1CD, в клиент-серверной — в отдельных служебных таблицах базы данных на SQL-сервере. Поэтому перенос настроек на другой ПК обычно сводится к одному: подключить ту же базу.

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

Настройки 1С 8.3 живут в базе: что это значит на практике

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

Из этого следует несколько практических выводов:

  • 💻 Пользователь зашёл с другого ПК, через веб-клиент или по RDP — он видит свой привычный интерфейс.
  • 👥 Два сотрудника под одним логином 1С делят одни и те же настройки и перетирают их друг другу.
  • 🔁 Переустановка Windows или платформы настройки не трогает.
  • 💾 Резервная копия базы (файл 1Cv8.1CD или выгрузка .dt) уже содержит настройки всех пользователей.

Что попадает в пользовательские настройки:

  • ширина, порядок и видимость колонок в списках и табличных частях;
  • отборы и сортировки динамических списков;
  • варианты отчётов и их пользовательские настройки (группировки, отборы, оформление);
  • состав панели разделов, панели функций, избранное и история;
  • значения, которые форма «запоминает» между открытиями (например, последний выбранный период или организация).

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

Хранилища настроек форм и отчётов в информационной базе

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

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

Есть и отдельное хранилище для настроек динамических списков, но принцип у всех одинаковый: запись = объект + ключ + пользователь + сами настройки в упакованном виде.

💡 В конфигурации разработчик может переопределить стандартное хранилище своим (например, хранить варианты отчётов в справочнике). Так устроены варианты отчётов в типовых решениях на БСП: они лежат в справочнике «Варианты отчетов», а не только в системной таблице. Поэтому для таких данных надёжнее пользоваться инструментами конфигурации, а не лезть в таблицы.

Файловая и клиент-серверная база: где физически лежат настройки

Логика хранения одна, физическое размещение разное.

Вариант базыГде лежат настройкиКак сделать копию
Файловаявнутри файла 1Cv8.1CD в каталоге базыскопировать каталог при закрытой базе или выгрузить .dt
Клиент-серверная (MS SQL, PostgreSQL)служебные таблицы _SystemSettings, _CommonSettings и другие в базе данных СУБДбэкап средствами СУБД или выгрузка .dt

В файловой базе отдельного файла «настройки.dat» нет. Скопировать «только настройки» из каталога базы не получится: они в одном файле с данными учёта.

В клиент-серверной базе таблицы видны в SQL Management Studio или в pgAdmin. Видеть — да, править — нет.

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

Что 1С хранит в локальных папках профиля Windows

Часть данных платформа всё же держит на компьютере. Это не пользовательские настройки форм, а служебная информация клиента.

ПутьЧто там
%APPDATA%\1C\1CEStart\ibases.v8iсписок информационных баз в окне запуска
%APPDATA%\1C\1CEStart\1cestart.cfgпараметры стартера: каталоги, общие списки баз
%APPDATA%\1C\1cv8\настройки запуска клиента и папки по каждой базе (в том числе файл def.usr с последним именем пользователя)
%LOCALAPPDATA%\1C\1cv8\кэш конфигурации по каждой базе

Папки отдельных баз названы идентификаторами, а не именами баз. Сопоставить их вручную неудобно, и обычно это не нужно.

Удаление этих папок при закрытой 1С не трогает данные и настройки в базе. Оно даёт тот же эффект, что запуск с параметром /ClearCache: клиент заново скачает кэш конфигурации. Пропадёт разве что список баз в окне запуска, если удалить ibases.v8i.

Перед удалением кэша закройте все сеансы 1С на этом компьютере. Если пользователь работает на терминальном сервере, чистите папки только в его профиле и только когда он вышел из программы, иначе часть файлов будет занята.

Как найти, скопировать и выгрузить настройки пользователей

Через обработку «Настройки пользователей» (БП 3.0, ЗУП 3.1, УТ 11)

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

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

Это самый безопасный способ: обработка сама учитывает, где конфигурация хранит варианты отчётов, и не ломает связи.

💡 Удобный приём для новых сотрудников: заведите эталонного пользователя, настройте ему рабочее место (разделы, колонки, отчёты), а затем копируйте его настройки каждому новичку. Пользователь при этом должен быть не в сеансе, иначе изменения он увидит только после перезахода.

Программно: выборка из хранилища

Если конфигурация не на БСП или нужно выгрузить настройки в файл, помогают методы менеджера стандартного хранилища. Пример ниже копирует системные настройки одного пользователя другому. Выполняйте его на сервере под пользователем с административными правами, например во внешней обработке.

&НаСервереБезКонтекста
Процедура СкопироватьСистемныеНастройки(ИмяИсточника, ИмяПолучателя)

    Отбор = Новый Структура("Пользователь", ИмяИсточника);
    Выборка = ХранилищеСистемныхНастроек.Выбрать(Отбор);

    Пока Выборка.Следующий() Цикл
        ХранилищеСистемныхНастроек.Сохранить(
            Выборка.КлючОбъекта,
            Выборка.КлючНастроек,
            Выборка.Настройки,
            ,
            ИмяПолучателя);
    КонецЦикла;

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

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

Хранилища, переопределённые конфигурацией, этим кодом не охватываются. Если в вашей базе варианты отчётов хранятся в справочнике, копируйте их средствами конфигурации.

Восстановление настроек после сбоя или переустановки

Сначала определите, что именно пропало. Сценарии разные, и решение тоже.

Что случилось с настройками?

Как не потерять настройки при переименовании пользователя

Платформа ищет настройки по имени пользователя информационной базы. Переименование в Конфигураторе (Администрирование → Пользователи) отвязывает человека от его настроек.

В типовых конфигурациях на БСП переименовывайте пользователя в карточке в режиме Предприятия: Администрирование → Настройки пользователей и прав → Пользователи. Подсистема при смене имени сама переносит настройки на новое имя.

Частичное восстановление из резервной копии

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

  1. Разверните резервную копию в отдельную базу (загрузите .dt в пустую базу или скопируйте каталог файловой базы).
  2. В копии выгрузите настройки нужного пользователя в файл: программно, как описано выше.
  3. В рабочей базе загрузите файл под этим пользователем, когда он не в сеансе.

Перенос настроек на новый компьютер, в другую базу или в облако

ЗадачаЧто делать
Новый компьютер, та же базаничего не переносить: подключить базу, войти под тем же пользователем
Новый компьютер, нужен тот же список базскопировать ibases.v8i в %APPDATA%\1C\1CEStart\ нового профиля
Перенос базы целиком на другой сервервыгрузка и загрузка .dt: пользователи и их настройки переедут вместе с данными
Другая база с той же конфигурациейвыгрузить настройки в файл из исходной базы и загрузить в новую
Переход в облачный сервисуточнить у провайдера способ миграции до начала

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

Терминальный сервер и перемещаемые профили

На терминальном сервере каждый сотрудник получает свой профиль Windows, а значит, свой кэш и свой список баз. Настройки форм при этом всё равно берутся из базы, поэтому переезд пользователя с одного терминального сервера на другой проходит незаметно.

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

💡 Перенос между разными конфигурациями (например, из УТ в БП) смысла не имеет: ключи объектов отличаются, и настройки форм просто не найдут своих форм.

Частые ошибки при работе с настройками пользователей

  • ❌ Чистить профиль Windows в надежде сбросить настройки. Не поможет: сбросится только кэш. Для сброса используйте Вид → Установить стандартные настройки или очистку в обработке «Настройки пользователей».
  • ❌ Работать вдвоём под одним логином. Настройки общие, каждый «ломает» колонки другому. Заведите отдельных пользователей.
  • ❌ Копировать настройки пользователю, который сейчас в программе. При выходе его сеанс может сохранить старые настройки поверх скопированных.
  • ❌ Восстанавливать всю базу из копии ради одного отчёта. Потеряются свежие документы. Используйте частичное восстановление через отдельную копию.

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

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