При запуске файловой информационной базы 1С пользователи могут столкнуться с критической ошибкой «База повреждена». При проверке утилитой проверки физической целостности chdbfl.exe диагностируются ошибки вида Повреждена таблица размещения внутреннего файла <Данные таблицы '_SYSTEMSETTINGS'> и Повреждены данные таблицы '_SYSTEMSETTINGS'. При этом после автоматического исправления утилитой размер файла базы данных 1Cv8.1CD может существенно уменьшиться, что вызывает обоснованные опасения за сохранность учетных данных. Разберем подробно, за что отвечает данная таблица, почему уменьшается размер базы и как правильно восстановить информационную базу.
Таблица _SYSTEMSETTINGS на уровне платформы соответствует объекту ХранилищеСистемныхНастроек (SystemSettings). Она предназначена исключительно для хранения персональных пользовательских настроек графического интерфейса:
Важно понимать: в таблице _SYSTEMSETTINGS не хранятся проводки, документы, элементы справочников, регистры или другие учетные данные. Потеря или очистка этой таблицы приводит лишь к тому, что интерфейс форм у пользователей вернется к стандартному состоянию (по умолчанию).
Поля таблицы системных настроек содержат данные неограниченной длины (BLOB-структуры). При постоянном изменении пользователями размеров окон и колонок в файловой базе накапливается большой объем фрагментированных и устаревших данных.
Когда утилита chdbfl.exe исправляет повреждения, она удаляет сбойные блоки, очищает битые цепочки размещения и производит внутреннюю дефрагментацию файла. Уменьшение размера базы (например, на 0,7 ГБ при общем объеме 2,4 ГБ) является нормальным процессом: удаляются не учетные данные, а поврежденные и избыточные бинарные блоки настроек интерфейса.
Проанализируем факторы, приводящие к физическому сбою структуры таблицы:
1Cv8.1CD через общую папку — самая частая причина повреждения файловых баз.Разберем последовательность действий для полного и безопасного устранения сбоя.
Шаг 1. Создание резервной копии. Перед любыми восстановительными операциями обязательно создаем полную физическую копию файла базы данных 1Cv8.1CD средствами операционной системы. Все дальнейшие действия выполняем только над копией.
Шаг 2. Физическое исправление через chdbfl.exe.
C:\Program Files\1cv8\8.3.X.X\bin\chdbfl.exe).1Cv8.1CD.Шаг 3. Логическое тестирование и исправление. После успешного физического ремонта открываем базу в режиме «Конфигуратор» и переходим в меню «Администрирование» -> «Тестирование и исправление...». Отмечаем следующие режимы:
Шаг 4. Пересборка базы через файл выгрузки (.dt). Чтобы полностью устранить внутреннюю фрагментацию и обновить структуру страниц файла базы данных:
.dt..dt.Если база открывается, но периодически выдает ошибки при работе конкретных пользователей, можно программно очистить системные настройки для проблемных объектов через встроенный язык 1С:
// Очистка системных настроек для конкретного пользователя или объекта
КлючОбъекта = "Отчет.ОстаткиТоваров/НастройкиПользователя";
ИмяПользователя = "ИвановИИ";
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, "", ИмяПользователя);
Для полной очистки всех системных настроек определенного пользователя передается пустое значение в параметры ключей:
// Полный сброс системных настроек пользователя к значениям по умолчанию
ИмяПользователя = "ИвановИИ";
ХранилищеСистемныхНастроек.Удалить(Неопределено, Неопределено, ИмяПользователя);
Чтобы избежать повреждения файловой базы в будущем, рекомендуется соблюдать следующие правила:
1Cv8.1CD к пределу 4 ГБ запланировать переход на клиент-серверный вариант работы с СУБД (PostgreSQL, Microsoft SQL Server).