Штатная процедура «Тестирование и исправление» (ТиИ) в конфигураторе «1С:Предприятия» — один из ключевых инструментов администратора для восстановления работоспособности и целостности информационной базы. Однако неправильно выставленные параметры проверок могут не только не решить исходную проблему, но и привести к необратимой потере данных или невозможности запустить базу вовсе. Разберем детально, как работают внутренние механизмы ТиИ, чем опасна бездумная очистка ссылок и как устранить критическую ошибку «Ошибка SDBL: Выход за пределы размерности результата».
При обнаружении ссылок на несуществующие элементы (так называемых «битых» ссылок) диалоговое окно ТиИ предлагает выбрать одно из действий: «Очищать ссылки», «Создавать объекты» или «Не изменять». Выясним, что происходит на уровне таблиц базы данных при выборе каждого из вариантов:
СправочникСсылка.Номенклатура). Это действие несет в себе скрытую угрозу для регистров сведений, накопления и бухгалтерии. Если в регистре было несколько записей, ссылавшихся на разные удаленные объекты в рамках одного периода или набора измерений, после очистки измерение у всех этих записей станет пустым. В результате в таблице регистра образуются строки с абсолютно идентичным набором измерений. Это приводит к нарушению уникальности записей, сбою уникального индекса и критическому падению базы при попытке чтения или записи набора записей.ПоискИЗаменаДублей или штатного механизма удаления неиспользуемых элементов.Данная настройка определяет поведение системы, когда у объекта метаданных повреждены составные части (например, утеряна строка табличной части, но сохранилась шапка документа):
Механизм SDBL (Simple Data Base Language) представляет собой внутренний транслятор запросов технологической платформы «1С:Предприятие» в диалект конкретной СУБД. Ошибка переполнения размерности чаще всего возникает по следующим причинам:
_ConfigChngR) накапливают миллионы строк, что вызывает сбой агрегатных функций SDBL.Чтобы не допустить разрушения базы данных и успешно избавиться от ошибки SDBL, разберем по шагам правильную последовательность действий.
Шаг 1. Создание резервной копии. Перед любыми манипуляциями обязательно создаем полную копию информационной базы (выгрузка в файл .dt или прямое копирование файла 1Cv8.1CD для файловых баз; создание бэкапа средствами SQL для клиент-серверных баз).
Шаг 2. Физическая проверка файловой базы (chdbfl.exe). Если база файловая, перед запуском конфигуратора необходимо проверить целостность файла утилитой chdbfl.exe (находится в каталоге bin установленной платформы), установив флаг «Исправлять обнаруженные ошибки». Это устранит повреждения заголовков страниц и физических блоков таблицы.
Шаг 3. Поэтапное тестирование в конфигураторе. Никогда не запускайте все проверки одновременно. Выполняем их по очереди, нажимая «Выполнить» после выбора каждого пункта:
Шаг 4. Очистка платформенного кэша. Закрываем все сеансы «1С:Предприятия» и удаляем каталоги временных файлов пользователя (папки с буквенно-цифровыми идентификаторами в путях %LocalAppData%\1C\1cv8 и %AppData%\1C\1cv8). В клиент-серверном варианте также рекомендуется перезапустить службу агента сервера «1С:Предприятия».
Шаг 5. Выгрузка и загрузка базы данных. Если после выполнения ТиИ ошибка сохраняется, выполняем выгрузку базы в файл .dt через меню «Администрирование» — «Выгрузить информационную базу», создаем новую пустую базу и загружаем файл обратно. Данная процедура полностью пересобирает внутренние страницы формата .1CD и устраняет фрагментацию системных таблиц.