Ошибка SDBL (Simple Data Base Language), сообщающая об отсутствии таблицы Consts или других системных таблиц, является одной из самых серьезных проблем, с которыми может столкнуться администратор или программист 1С. Она свидетельствует о глубоком рассинхроне между логическим описанием конфигурации (метаданными) и физической структурой таблиц в базе данных (SQL или файл .1CD). Рассмотрим подробнее причины возникновения этой ситуации и разберем по шагам все доступные методы восстановления работоспособности системы.
Проанализируем ситуацию: чаще всего проблема проявляется после некорректного или прерванного обновления конфигурации. В процессе реструктуризации 1С выполняет цепочку действий: вносит изменения в таблицу метаданных, создает временные таблицы, переносит данные и, наконец, переименовывает или создает финальные таблицы (такие как Consts). Если в этот момент происходит сбой (выключение света, обрыв связи с сервером, нехватка места на диске), база данных остается в "промежуточном" состоянии.
Выделим основные причины:
DBSchema, но физически таблицы еще не созданы.Константы) их именам в СУБД (например, _Consts).Прежде чем переходить к радикальным мерам, попробуем стандартные инструменты, которые предлагает платформа 1С. Рассмотрим их последовательность:
bin установленной платформы. Установим галочку "Исправлять обнаруженные ошибки". Это поможет, если повреждена физическая целостность файла .1CD.Иногда ошибка вызвана конкретным объектом, который был добавлен в последнем обновлении. Проанализируем лог обновления или вспомним, какие объекты были изменены. Если ТиИ не помогает, попробуем следующий алгоритм:
Выясним, какие регистры или константы были добавлены недавно. Попробуем удалить их в Конфигураторе и сохранить конфигурацию базы данных. Это может "подтолкнуть" SDBL-процессор к корректному завершению реструктуризации остальных таблиц. После успешного обновления удаленные объекты можно попробовать добавить заново или восстановить их структуру из копии базы.
Часто ошибка бывает ложной, когда платформа обращается к старым описаниям структуры, хранящимся в кэше. Разберем, как произвести полную очистку:
Для клиентской части: Удалим базу из списка и добавим её заново, либо вручную очистим папки в %AppData%\1C\1cv8\.
Для серверной части:
1C:Enterprise Server.C:\Program Files\1cv8\srvinfo).snccntx (сеансовые данные) и временные файлы.В серверном варианте у нас больше рычагов воздействия через SQL Management Studio. Рассмотрим продвинутый метод восстановления через таблицу Config.
Система хранит структуру базы в записи с FileName = 'dbschema'. Если мы уверены, что физически таблицы в SQL существуют, но 1С их "потеряла", можно попробовать заставить систему перечитать структуру. Внимание: перед этими действиями создание бэкапа средствами SQL обязательно!
Пример запроса для анализа таблицы конфигурации:
SELECT * FROM Config WHERE FileName = 'dbschema'
SELECT * FROM Config WHERE FileName = 'commit'
Иногда помогает удаление записи dbschema, после чего при запуске Конфигуратора система попытается сопоставить объекты заново. Также стоит проверить наличие таблицы _ConfigTable, которая в SQL-версии часто отвечает за хранение значений констант.
Для файловых баз, если chdbfl.exe бессилен, воспользуемся утилитой Tool1CD. Она позволяет просматривать структуру файла базы данных напрямую. Посмотрим, существует ли физически таблица, которую ищет система. С помощью этой утилиты специалисты могут вручную поправить заголовок таблицы или восстановить потерянные описания, если они были затерты при неудачном обновлении.
Рассмотрим радикальный метод, который часто спасает данные в файловом варианте, когда база не открывается вовсе:
.cf файла).DBSchema и Consts.1CD), можно попытаться перенести данные из "битой" базы в каркас новой.ВыгрузкаЗагрузкаДанныхXML.epf, если база дает запустить сеанс в режиме "Предприятие" хотя бы ограниченно.Если Конфигуратор доступен, проанализируем возможность принудительного обновления структуры через сравнение. Создадим пустой файл конфигурации .cf из исправной копии или аналогичной базы. Выполним команду "Конфигурация — Сравнить, объединить с конфигурацией из файла". Даже если конфигурации идентичны, запуск процесса сравнения и последующее сохранение могут инициализировать механизм реструктуризации, который создаст недостающую таблицу Consts.
Важное резюме по работе с таблицей констант: Помните, что в 1С таблица Consts уникальна тем, что она всегда должна содержать ровно одну строку. Если таблица физически пуста или отсутствует, платформа не может инициализировать глобальные переменные и параметры сеанса, что и приводит к критической ошибке SDBL. Всегда проверяйте наличие свободного места на диске перед началом обновления, так как именно его нехватка в 90% случаев приводит к "исчезновению" таблиц в процессе реструктуризации.