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

Особенность хранилища настроек в том, что оно не является частью базы данных. Это отдельный файл (или набор файлов), который платформа автоматически создаёт для каждого пользователя. В зависимости от версии и конфигурации, хранилище может располагаться как на сервере, так и на локальных машинах клиентов. Именно эта "распылённость" часто становится причиной проблем: от потери персональных настроек до конфликтов при групповой работе. Мы покажем, как централизовать управление хранилищем, резервировать его и восстанавливать в критических ситуациях.

Что такое хранилище настроек 1С и зачем оно нужно

Хранилище настроек — это механизм платформы 1С:Предприятие 8, предназначенный для сохранения индивидуальных параметров пользователей между сеансами. Сюда входят:

  • 📌 Настройки интерфейса: расположение панелей, размеры окон, выбранные колонки в списках.
  • 📊 Параметры отчётов и обработок: сохранённые варианты отборов, сортировки, группировки.
  • ⚙️ Персональные настройки конфигурации: например, выбранный склад по умолчанию или валюта цен.
  • 🔧 Данные форм: последние введённые значения в полях ввода, история выбора справочников.

Без хранилища все эти настройки сбрасывались бы после каждого выхода из программы. Однако его наличие создаёт и новые вызовы:

  • 🔄 Синхронизация: при работе с терминальным сервером или веб-клиентом настройки могут "разъезжаться" между устройствами.
  • 💾 Резервное копирование: файлы хранилища часто забывают включать в бэкапы, что приводит к потере данных.
  • 🐞 Конфликты: при обновлении конфигурации старые настройки могут мешать работе новых функций.

Важно понимать, что хранилище не является частью информационной базы. Оно хранится отдельно — в файлах с расширением .usr (для пользовательских настроек) и .st (для системных параметров). Путь к этим файлам зависит от режима работы:

Режим работы Путь к хранилищу Примечания
Файловый %APPDATA%\1C\1Cv8\<ИмяБазы>\ Для каждого пользователя Windows создаётся отдельная папка.
Клиент-сервер (тонкий клиент) \\<Сервер>\1Cv8\<ИмяБазы>\Users\ Централизованное хранилище на сервере, общий доступ.
Веб-клиент /var/1C/users/ (Linux) или C:\inetpub\wwwroot\1c\users\ (Windows) Зависит от настроек веб-сервера.
⚠️ Внимание: В последних версиях платформы (начиная с 8.3.20) изменился формат хранения некоторых параметров. Если вы используете старые скрипты для резервного копирования, проверьте их актуальность в документации к вашей версии.

Где физически хранится хранилище настроек и как его найти

Один из самых частых вопросов администраторов — "где искать файлы хранилища?". Ответ зависит от трёх факторов: версии платформы, режима работы (файловый/клиент-сервер) и типа клиента (толстый/тонкий/веб). Рассмотрим основные сценарии.

Для файлового варианта работы путь строится по шаблону:

%APPDATA%\1C\1Cv8\<УникальныйИдентификаторБазы>\

Где %APPDATA% — это системная переменная, ведущая в папку C:\Users\<ИмяПользователя>\AppData\Roaming\. Уникальный идентификатор базы можно узнать из файла 1Cv8.1CD (для файловой базы) или из списка баз в конфигураторе.

Для клиент-серверного варианта (тонкий клиент) путь обычно выглядит так:

\\<ИмяСервера>\1Cv8\<ИмяБазы>\Users\<ИмяПользователя1С>\

Здесь важно не путать имя пользователя Windows и имя пользователя 1С — файлы хранилища привязаны к учётной записи в базе, а не к ОС.

📊 Какой режим работы 1С вы используете?
Файловый
Клиент-сервер (тонкий клиент)
Веб-клиент
Толстый клиент

Особняком стоит веб-клиент. Здесь путь зависит от настроек веб-сервера:

  • 🖥️ IIS (Windows): обычно C:\inetpub\wwwroot\1c\users\.
  • 🐧 Apache/Nginx (Linux): часто /var/1C/users/ или /opt/1C/v8/users/.

Чтобы точно определить путь, можно воспользоваться встроенным механизмом платформы. Запустите 1С:Предприятие в режиме отладки (1cv8.exe /Debug) и выполните следующий код в отладчике:

Сообщить(ПолучитьПутьКХранилищуНастроек());
⚠️ Внимание: В многопользовательских системах (терминальные серверы, RDS) хранилище может дублироваться для каждого сеанса. Это приводит к "раздвоению" настроек. Чтобы избежать проблем, настройте централизованное хранилище через параметр запуска /UserSettingsStoragePath.

Как создать резервную копию хранилища настроек

Резервное копирование хранилища — критически важная процедура, которую часто упускают из виду. В отличие от базы данных, файлы настроек не восстанавливаются из бэкапа .dt или .cf. Их потеря означает, что все пользователи потеряют свои персональные настройки: от расположения панелей до сохранённых отчётов.

Существует три основных способа резервирования:

  • 📂 Ручное копирование: подходит для небольших систем. Достаточно скопировать папку с файлами .usr и .st в безопасное место.
  • 🤖 Автоматизированный скрипт: для Windows можно использовать robocopy, для Linux — rsync. Пример команды для Windows:
    robocopy "C:\Users\Public\1C\Users\" "D:\Backup\1C_Settings\" /MIR /Z /R:3 /W:5
  • 🔄 Интеграция с системой бэкапов: современные решения (например, Veeam или Acronis) позволяют включать папки хранилища в общий план резервного копирования.

Для клиент-серверных систем рекомендуется использовать централизованное хранилище, расположенное на сервере. Это упрощает бэкап: вместо копирования файлов с каждого рабочего места достаточно резервировать одну папку. Чтобы настроить централизованное хранилище:

  1. Откройте файл запуска клиента (1cv8.cfg или ярлык).
  2. Добавьте параметр:
    /UserSettingsStoragePath=\\Server\1C_Settings\
  3. Убедитесь, что у пользователей есть права на запись в эту папку.

Создать отдельную папку для бэкапов настроек|

Проверить права доступа к папке хранилища|

Настроить автоматическое копирование (через Планировщик задач или cron)|

Протестировать восстановление из бэкапа-->

Особое внимание уделите веб-клиенту. Здесь файлы хранилища могут обновляться чаще из-за особенностей работы браузеров. Рекомендуется:

  • 🔒 Настроить chmod для папки /var/1C/users/ так, чтобы веб-сервер (apache или nginx) имел права на запись.
  • 📅 Автоматизировать бэкап через cron:
    0 3   * tar -czf /backup/1c_settings_$(date +\%Y\%m\%d).tar.gz /var/1C/users/
⚠️ Внимание: Если вы используете 1С:Fresh или облачные решения, хранилище настроек может располагаться на стороне провайдера. В этом случае резервное копирование лежит на плечах поставщика услуг — уточните детали в договоре.

Как восстановить хранилище настроек после сбоя

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

Алгоритм действий зависит от scenarios:

Сценарий Действия Риски
Файлы удалены, но есть бэкап Восстановите файлы .usr и .st из резервной копии в исходную папку. Перезапустите клиенты 1С. Если бэкап устарел, пользователи потеряют настройки, сделанные после его создания.
Файлы повреждены Удалите повреждённые файлы. При следующем запуске 1С создаст новые с настройками по умолчанию. Все персональные настройки будут сброшены.
Сбой сервера (Raid, HDD) Восстановите папку хранилища из образа диска или резервной копии сервера. Возможны конфликты, если пользователи работали с другими клиентами (например, веб-версией).
Обновление конфигурации Сравните версии хранилища и конфигурации. При необходимости перенесите настройки вручную через Конфигуратор → Администрирование → Настройки пользователей. Некоторые настройки могут быть несовместимы с новой версией.

Если бэкапа нет, можно попытаться восстановить файлы с помощью специализированных утилит (например, Recuva или R-Studio). Однако шансы на успех невысоки: файлы .usr часто фрагментированы, а их структура зашифрована. В этом случае проще:

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

Для клиент-серверных систем с большим числом пользователей восстановление вручную нереально. Здесь поможет скрипт на 1С:Предприятие, который экспортирует настройки из бэкапа и применяет их к текущим пользователям:

// Пример кода для восстановления вариантов отчётов

Процедура ВосстановитьВариантыОтчетов(ПутьКБэкапу)

КаталогНастроек = Новый Файл(ПутьКБэкапу);

Для Каждого ФайлНастройки Из КаталогНастроек.НайтиФайлы("*.usr") Цикл

ИмяПользователя = Сред(ФайлНастройки.Имя, 1, Найти(ФайлНастройки.Имя, ".") - 1);

Попытка

Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);

Если Не Пользователь = Неопределено Тогда

// Код восстановления настроек для конкретного пользователя

КонецЕсли;

Исключение

ЗаписатьВЛог("Ошибка восстановления для " + ИмяПользователя + ": " + ОписаниеОшибки());

КонецПопытки;

КонецЦикла;

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

💡

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

Типичные ошибки при работе с хранилищем настроек и как их избежать

Даже опытные администраторы сталкиваются с проблемами, связанными с хранилищем настроек. Чаще всего ошибки возникают из-за непонимания механизма работы платформы или несоблюдения лучших практик. Разберём самые распространённые случаи и способы их решения.

1. "Настройки сбрасываются после обновления"

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

Решение: Перед обновлением экспортируйте критичные настройки через Конфигуратор → Администрирование → Настройки пользователей → Экспорт. После обновления импортируйте их обратно.

2. "Пользователи видят чужие настройки"

Причина: В терминальных системах (RDS, Citrix) или при использовании общих профилей Windows файлы .usr могут перезаписываться. Это происходит, если несколько пользователей работают под одной учётной записью ОС.

Решение: Настройте централизованное хранилище с привязкой к именам пользователей 1С, а не Windows. Используйте параметр /UserSettingsStoragePath с уникальными подпапками для каждого пользователя.

3. "Хранилище разрастается до гигантских размеров"

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

Решение: Периодически чистите хранилище с помощью скрипта:

// Удаление устаревших настроек (старше 180 дней)

Процедура ОчиститьСтарыеНастройки(ПутьКХранилищу, ДнейХранения = 180)

Каталог = Новый Файл(ПутьКХранилищу);

ТекущаяДата = ТекущаяДата();

Для Каждого Файл Из Каталог.НайтиФайлы("*.usr") Цикл

ДатаИзменения = Файл.ДатаМодификации();

Если (ТекущаяДата - ДатаИзменения) > ДнейХранения Тогда

Файл.Удалить();

КонецЕсли;

КонецЦикла;

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

4. "Настройки не синхронизируются между устройствами"

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

Решение: Используйте единое централизованное хранилище для всех типов клиентов. Для веб-клиента настройте символические ссылки (symlink) на общую папку:

mklink /D "C:\inetpub\wwwroot\1c\users" "\\server\1C_Settings\"
Почему не работает параметр /UserSettingsStoragePath?

Если параметр /UserSettingsStoragePath не срабатывает, проверьте:

1. Правильность пути (должен существовать и быть доступен для записи).

2. Отсутствие пробелов или специальных символов в пути (используйте короткие имена типа 8.3, если необходимо).

3. Версию платформы: в старых версиях (до 8.3.10) этот параметр мог игнорироваться.

4. Права доступа: пользователь, под которым запущен 1С, должен иметь полные права на папку.

⚠️ Внимание: В многопользовательских системах никогда не настраивайте хранилище на сетевой диск с кэшированием (например, Offline Files в Windows). Это приводит к конфликтам и потере данных при отключении сети.

Оптимизация работы с хранилищем: советы для администраторов

Хранилище настроек может стать "узким местом" в производительности, если им не управлять. Особенно это заметно в крупных системах с сотнями пользователей. Вот несколько проверенных способов оптимизации:

1. Разделение хранилища по группам пользователей

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

\\server\1C_Settings\

├── Бухгалтерия\

├── Склад\

├── Продажи\

└── Администраторы\

2. Ограничение размера хранилища

Настройте автоматическую очистку старых файлов через Планировщик задач (Windows) или cron (Linux). Например, этот скрипт для PowerShell удаляет файлы старше 90 дней:

$Path = "\\server\1C_Settings\"

$Days = 90

$Now = Get-Date

Get-ChildItem -Path $Path -Recurse -Include "*.usr" | Where-Object {

$_.LastWriteTime -lt $Now.AddDays(-$Days)

} | Remove-Item -Force

3. Использование SSD для хранилища

Файлы .usr читаются/пишутся при каждом запуске клиента. Размещение хранилища на SSD-диске может сократить время загрузки на 30-40%. Особенно актуально для терминальных серверов.

4. Отключение сохранения ненужных параметров

Некоторые настройки (например, положение окон) можно отключить от сохранения. Для этого в конфигураторе найдите модуль управляемого приложения и добавьте:

#Если Клиент Тогда

ПараметрыСеанса.СохранятьПоложениеОкон = Ложь;

#КонецЕсли

5. Мониторинг роста хранилища

Настройте оповещения о превышении размера папки. Например, в Zabbix или Nagios можно создать триггер:

# Пример условия для Zabbix

{template_app_1c_settings:vfs.fs.size[/1C_Settings].last()} > 1G

💡

Централизованное хранилище на SSD с автоматической очисткой — оптимальное решение для систем с 50+ пользователями. Это сокращает время загрузки клиента и упрощает администрирование.

Программное управление хранилищем: методы и примеры кода

Платформа 1С:Предприятие предоставляет разработчикам API для работы с хранилищем настроек. Это позволяет автоматизировать резервное копирование, миграцию и очистку. Рассмотрим ключевые методы и примеры их применения.

1. Получение пути к хранилищу

Чтобы узнать текущий путь к хранилищу из кода, используйте:

ПутьКХранилищу = КаталогПользовательскихНастроек();

Сообщить(ПутьКХранилищу);

2. Экспорт и импорт настроек

Для переноса настроек между базами или пользователями:

// Экспорт настроек пользователя

ЭкспортироватьНастройкиПользователя("ИвановИИ", "C:\Backup\ivanov_settings.xml");

// Импорт настроек

ИмпортироватьНастройкиПользователя("ПетровПП", "C:\Backup\ivanov_settings.xml");

3. Работа с вариантами отчётов

Чтобы скопировать варианты отчётов между пользователями:

// Получаем все варианты отчёта "ПродажиПоНоменклатуре"

Отчет = Отчеты.ПродажиПоНоменклатуре.Создать();

Варианты = Отчет.ВариантыОтчета();

// Копируем варианты от Иванова к Петрову

Для Каждого Вариант Из Варианты Цикл

Если Вариант.Владелец.Имя = "ИвановИИ" Тогда

НовыйВариант = Отчет.ВариантыОтчета.Добавить();

НовыйВариант.Заполнить(Вариант);

НовыйВариант.Владелец = Пользователи.НайтиПоИмени("ПетровПП");

КонецЕсли;

КонецЦикла;

4. Очистка хранилища через код

Для удаления устаревших файлов:

Процедура ОчиститьХранилище(ДнейХранения = 30)

Путь = КаталогПользовательскихНастроек();

Каталог = Новый Файл(Путь);

ТекущаяДата = ТекущаяДата();

Для Каждого Файл Из Каталог.НайтиФайлы("*.usr") Цикл

РазницаДней = (ТекущаяДата - Файл.ДатаМодификации()) / 86400;

Если РазницаДней > ДнейХранения Тогда

Файл.Удалить();

КонецЕсли;

КонецЦикла;

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

5. Перенос хранилища на другой сервер

При миграции системы используйте этот скрипт для копирования всех настроек:

Процедура ПеренестиХранилище(ИсходныйПуть, ЦелевойПуть)

ИсходныйКаталог = Новый Файл(ИсходныйПуть);

ЦелевойКаталог = Новый Файл(ЦелевойПуть);

Если Не ЦелевойКаталог.Существует() Тогда

ЦелевойКаталог.Создать();

КонецЕсли;

Для Каждого Файл Из ИсходныйКаталог.НайтиФайлы(".") Цикл

ЦелевойФайл = Новый Файл(ЦелевойКаталог.ПолноеИмя + "\" + Файл.Имя);

Файл.Копировать(ЦелевойФайл.ПолноеИмя);

КонецЦикла;

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

⚠️ Внимание: При программной работе с хранилищем всегда оборачивайте операции в блоки Попытка...Исключение. Файлы .usr могут быть заблокированы, если пользователь работает в системе.

FAQ: Частые вопросы по работе с хранилищем настроек 1С

Можно ли отключить хранилище настроек совсем?

Технически да, но это не рекомендуется. Хранилище — неотъемлемая часть платформы, и его отключение приведёт к потере всех персональных параметров. Однако можно ограничить сохраняемые данные. Например, в конфигураторе отключите сохранение положения окон:

#Если Клиент Тогда

ПараметрыСеанса.СохранятьПоложениеОкон = Ложь;

ПараметрыСеанса.СохранятьРазмерыОкон = Ложь;

#КонецЕсли

Это уменьшит размер файлов .usr, но не отключит хранилище полностью.

Как перенести настройки с одного компьютера на другой?

Скопируйте файлы <ИмяПользователя>.usr и <ИмяПользователя>.st из папки хранилища старого компьютера в папку на новом. Убедитесь, что:

  • Имена пользователей в 1С совпадают.
  • Версии платформы идентичны (или совместимы).
  • Права доступа на новые файлы разрешают запись.

Если переносите настройки между разными базами, используйте экспорт/импорт через конфигуратор.

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

Это типичная ситуация, если:

  • Структура конфигурации изменилась (удалены формы, отчёты, реквизиты).
  • Обновилась версия платформы, и формат хранилища стал несовместим.
  • При обновлении был сброшен флаг "Сохранять настройки пользователей" в конфигураторе.

Чтобы избежать потерь:

  1. Перед обновлением экспортируйте настройки через Администрирование → Настройки пользователей.
  2. Сравните версии хранилища и конфигурации с помощью утилиты chdbfl.exe.
  3. После обновления импортируйте сохранённые настройки.
Как восстановить настройки, если файлы .usr повреждены?

Если файлы повреждены (например, размер 0 байт или ошибки чтения):

  1. Удалите повреждённые файлы. 1С создаст новые при следующем запуске.
  2. Если есть бэкап — восстановите файлы из него.
  3. Для критичных настроек (варианты отчётов) воспользуйтесь журналом изменений в конфигураторе (Администрирование → Журнал изменений).

Если бэкапа нет, попробуйте восстановить данные с помощью утилит вроде 1Cv8UsrTool (стороннее ПО, используйте на свой страх и риск).

Можно ли хранить хранилище настроек в базе данных?

Нет, платформа 1С не поддерживает хранение пользовательских настроек непосредственно в базе данных SQL. Файловый формат (.usr) жёстко зашит в архитектуру системы. Однако можно: