В процессе сопровождения и настройки крупных типовых конфигураций, таких как 1С:Зарплата и Управление Персоналом (ЗУП) версии 3.1, специалисты часто сталкиваются с низкоуровневыми ошибками движка базы данных. Одной из наиболее неприятных является ошибка SDBL: Таблица или поле ConfigVersion не содержится в разделе FROM. Данная проблема обычно проявляется при попытке снять конфигурацию с поддержки, выполнить обновление или даже при обычном запуске системы. Проанализируем причины возникновения этой ошибки и разберем по шагам методы её устранения.
Для начала выясним причину, почему платформа выдает именно такое сообщение. SDBL (Simple Data Barrier Language) — это внутренний язык запросов платформы 1С, который служит прослойкой между кодом 1С и конкретной СУБД (MS SQL, PostgreSQL и др.). Поле ConfigVersion является служебным и используется платформой для управления версионированием метаданных в таблицах Config и ConfigSave.
Когда мы пытаемся изменить статус поддержки или обновить информационную базу, процессор SDBL формирует запрос к этим таблицам. Если структура таблиц в базе данных не соответствует ожиданиям текущей версии платформы или если сами таблицы повреждены, возникает критическая ошибка. В нашем случае платформа 8.3.12.1790 пытается обратиться к полю, которое либо еще не создано в данной структуре, либо механизмы работы с ним в этой версии платформы содержат баги.
Рассмотрим основной и самый эффективный метод решения. Как показывает практика и обсуждения специалистов, релизы ЗУП ветки 3.1.9.х и выше предъявляют повышенные требования к технологической платформе. Платформа версии 8.3.12 считается устаревшей для работы с современными версиями метаданных ЗУП.
Для корректной работы выполним следующие действия:
ReadMe.txt в дистрибутиве). Обычно для ЗУП 3.1.9 требуется платформа не ниже 8.3.14.1779 или 8.3.15.Важный момент: Использование модифицированных ("взломанных") исполняемых файлов платформы часто приводит к непредсказуемым ошибкам в транзакциях SQL. Если платформа аварийно завершает работу (вылетает через 10-15 минут), запись в таблицу конфигурации может прерваться на середине, что и вызывает рассогласование структуры ConfigVersion.
Если обновление платформы не помогло или ошибка сохраняется, нам необходимо выполнить реструктуризацию таблиц конфигурации. Стандартное «Тестирование и исправление» (ТиИ) может падать с той же ошибкой SDBL. В таком случае воспользуемся механизмом полной перезаписи структуры базы.
Выполним следующие шаги:
Администрирование -> Выгрузить информационную базу...). Это создаст файл .dt..dt в эту новую базу (Администрирование -> Загрузить информационную базу...).При загрузке из файла .dt платформа 1С не просто копирует данные, а заново создает все таблицы в СУБД в соответствии с требованиями текущей версии платформы. Это гарантированно исправляет логические несоответствия в системных таблицах Config.
Иногда ошибка SDBL является ложной и вызвана тем, что платформа считывает устаревшие описания метаданных из кэша. Выясним причину, попробовав очистить временные файлы.
Для локального кэша:
%AppData%\1C\1cv8\ и %LocalAppData%\1C\1cv8\.Для серверного кэша (в клиент-серверном варианте):
C:\Program Files\1cv8\srvinfo\reg_1541).snccntxt — в ней хранятся сеансовые данные и кэш конфигурации.Существует "секретный" параметр запуска конфигуратора, который помогает в случаях, когда база не открывается из-за ошибок в таблице конфигурации. Проанализируем ситуацию применения командной строки.
Попробуем запустить конфигуратор следующим образом:
"C:\Program Files\1cv8\8.3.14.XXXX\bin\1cv8.exe" CONFIG /F"ПутьКБазе" /N"Логин" /P"Пароль" /ClearConfig
Параметр /ClearConfig заставляет платформу очистить кэшированную основную конфигурацию из базы данных и пересобрать её. Это может помочь восстановить доступ к дереву метаданных и позволит успешно снять базу с поддержки.
Посмотрим на ситуацию под другим углом. Если вашей целью является изменение логики работы ЗУП (добавление функционала или исправление ошибок), необязательно снимать конфигурацию с поддержки. Современные версии 1С позволяют реализовать практически любые изменения через механизм расширений.
Преимущества этого подхода:
Config при снятии с поддержки.Для этого в Конфигураторе выберите Конфигурация -> Расширения конфигурации, создайте новое расширение и перенесите туда нужные объекты для доработки.
Подведем итог: ошибка SDBL: Таблица или поле ConfigVersion не содержится в разделе FROM чаще всего является следствием использования устаревшей версии платформы 1С при работе с новыми релизами ЗУП 3.1. Первоочередное решение — обновление платформы до версии 8.3.14 или 8.3.16. Если это не помогает, используйте метод пересоздания базы через .dt или очистку серверного кэша. Помните, что стабильность работы системы напрямую зависит от использования легального и актуального программного обеспечения.