К статье
Практический материал

Администрирование · 11 мин

Как очистить хранилище системных настроек 1С

Как очистить хранилище системных настроек 1С через Конфигуратор и программно: поиск зависших настроек, удаление по пользователю, проверка результата и типичные ошибки.

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

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

Ниже разобраны способы очистки: через стандартную обработку управления настройками, программным кодом, а также вариант полного сброса для конкретного пользователя. Отдельно описаны диагностика проблемы, проверка результата и типичные ошибки администраторов.

Что хранится в хранилище системных настроек и когда его чистить

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

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

Как понять, что проблема именно в настройках

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

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

Ошибка только у одного пользователяПроблема в его личных настройках

Проверить открытие той же формы под другим пользователем

Ошибка формата потокаПовреждены сохранённые настройки

Очистить настройки конкретного объекта у пострадавшего пользователя

Сбой у всех пользователейВозможна ошибка конфигурации, а не настроек

Проверить журнал регистрации и поведение на копии базы

Настройки не сохраняютсяСтарые записи перезаписывают новые

Удалить настройки по ключу объекта и сохранить заново

Подготовка: резервная копия и выбор объёма очистки

Любая очистка хранилища необратима: восстановить удалённые настройки штатными средствами нельзя. Поэтому первый шаг — выгрузка информационной базы через Конфигуратор (Администрирование → Выгрузить информационную базу) или резервное копирование средствами СУБД, если база клиент-серверная. Для файловой базы достаточно скопировать файл 1Cv8.1CD.

Второй шаг — определить объём очистки. Удалять всё хранилище целиком почти никогда не нужно: пользователи потеряют накопленные варианты отчётов и привычные настройки списков. Разумнее действовать точечно — по конкретному пользователю, по ключу объекта (например, по имени отчёта) или по комбинации этих параметров.

Очистка программным кодом через встроенный язык

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

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

bsl
ХранилищеСистемныхНастроек.Удалить("Отчет.Продажи/ФормаНастроек", Неопределено, "ИвановИИ");
// Удалить ВСЕ настройки конкретного пользователя:
ХранилищеСистемныхНастроек.Удалить(Неопределено, Неопределено, "ИвановИИ");

Перед удалением полезно сначала посмотреть, что вообще лежит в хранилище. Для этого используется метод ПолучитьСписок() — он возвращает список ключей настроек по заданному фильтру. Так можно найти «зависшие» записи и точно узнать ключи объектов, которые нужно чистить, вместо удаления вслепую.

Порядок действий при программной очистке
  1. 1
    Сделайте резервную копию информационной базы
  2. 2
    Получите список настроек методом ПолучитьСписок() с фильтром по пользователю или объекту
  3. 3
    Определите точные ключи объектов, которые нужно удалить
  4. 4
    Выполните Удалить() с конкретными параметрами, а не с пустыми значениями
  5. 5
    Попросите пользователя переоткрыть форму и проверьте результат

Очистка через типовые инструменты и обработки

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

Такой вариант удобен, когда нужно разово почистить настройки нескольких сотрудников и нет желания писать код. Ограничение: сторонние обработки нужно запускать с полными правами и только из доверенных источников, так как они имеют прямой доступ к данным базы.

Очистка настроек отчёта у всех пользователей

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

Полный сброс настроек одного пользователя

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

Сравнение вариантов

Программное удаление по ключу

Точечная очистка, максимальный контроль; требует знания встроенного языка и прав администратора

Обработка управления настройками

Наглядный список и выборочное удаление без кода; зависит от качества и источника обработки

Полный сброс по пользователю

Быстро решает массовые жалобы одного сотрудника; стирает все его настройки без разбора

Как проверить результат очистки

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

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

Контрольные точки

Как проверить результат

Открытие формы после очистки
Норма

Форма открывается без ошибок, вид по умолчанию

Тревожный признак

Ошибка формата потока повторяется

Работа отчёта
Норма

Отчёт формируется с настройками по умолчанию

Тревожный признак

Отчёт открывается со старыми отборами

Сохранение новых настроек
Норма

Изменения пользователя сохраняются между сеансами

Тревожный признак

Настройки снова слетают при следующем входе

Типичные ошибки и ограничения

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

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

Типичные ошибки
01
Удаление со всеми пустыми параметрами — стираются настройки всех пользователей и всех объектов
02
Неверный ключ объекта — настройки формы и отчёта лежат под разными ключами, очистка не срабатывает
03
Очистка без завершения сеанса пользователя — старые настройки из памяти записываются обратно
04
Отсутствие резервной копии — при ошибочном удалении восстановить настройки невозможно

Учитывайте и ограничения платформы: в клиент-серверном режиме операции с хранилищем выполняются на сервере и требуют соответствующих прав; в файловом режиме при монопольных операциях может потребоваться отсутствие активных сеансов. Также помните, что часть настроек (например, настройки динамических списков) может храниться отдельно от вариантов отчётов — комплексная проблема иногда требует очистки нескольких ключей.

Итог

Что важно запомнить

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

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

Удалятся ли документы и справочники при очистке хранилища настроек?

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

Пользователь забыл свои варианты отчётов — можно ли восстановить их после очистки?

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

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

Скорее всего, пользователь не завершал сеанс во время удаления: старые настройки оставались в памяти его клиентского приложения и при выходе записались обратно. Завершите сеанс пользователя, повторите удаление и только потом разрешите вход.

Нужны ли права администратора для очистки хранилища?

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

Чем хранилище системных настроек отличается от хранилища общих настроек?

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

Можно ли автоматизировать очистку настроек уволенных сотрудников?

Да. Обычно пишут регламентное задание или обработку, которая получает список пользователей информационной базы, находит недействительных или помеченных на удаление и вызывает удаление их записей из хранилища. Запускать такую обработку следует в нерабочее время и после резервного копирования.