Таблица или поле не содержится в разделе from 1с
Обычно ошибка SDBL происходит при сохранении и обновлении конфигураций в момент реструктуризации базы данных, а также во время работы обменов данными.
- Ожидается выражение (pos = ).
- Выход за пределы размерности.
- Поле таблицы не может принимать значение NULL.
- Ошибка при полнотекстовом индексировании.
- Попытка вставки значения недопустимого типа.
- Поле определено неоднозначно.
- Пропущена точка с запятой.
- В схеме базы данных нет таблицы с именем…
Исправление ошибки SDBL
Большая часть способов исправления связана с восстановлением нормальной работы Информационной Базы. Но иногда описанными способами решить проблему не получается, поэтому помните о самом лучшем, универсальном способе — регулярном резервном копировании.
Перезагрузка сервера 1С и SQL-сервера
Самый простой способ, при условии, что на текущий момент в базе никто не работает.
Зайдите на сервер и выключите следующие службы:
- «Агент сервера 1С»,
- «SQL Server»,
- «Агент SQL Сервера».
А затем запустите их обратно.
Очистка кэша на сервере и клиента, где проявилась ошибка
Как правило кэш расположен по адресу:
- «%userprofile%\Local Settings\Application Data\1C\1Cv8» и «%userprofile%\Application Data\1C\1Cv8» для Windows XP,
- «%userprofile%\AppData\Roaming\1C\1Cv8» и «%userprofile%\AppData\Local\1C\1Cv8» для Windows 7 и выше.
Перейдите в данный каталог и удалить все папки с генерированными именами вида « dg7c8re4-b89r…». При удалении будьте внимательны — в этой директории может присутствовать индекс полнотекстового поиска 1С, а также журналы регистрации, их удалять не нужно.
Перезаливка базы из DT-файла
Иногда помогает, казалось бы, парадоксальный способ — выгрузка базы данных в файл формата DT, а затем загрузка его обратно.
Войдите в режим «Конфигуратор», выберите пункт меню «Администрирование» > «Выгрузить информационную базу» и выберите каталог для сохранения файла.
Затем через аналогично через меню «Администрирование» > «Загрузить информационную базу» загрузите его обратно.
Тестирование и исправление Информационной базы
Для тестирование и исправление Информационной базы: войдите в «Конфигуратор», выберите пункт меню «Администрирование» > «Тестирование и исправление».
В случаях, когда невозможно запустить конфигуратор, воспользуйтесь утилитой chdbfl.exe. Это упрощенная программа-аналог тестирования базы, функции, которая запускается в режиме конфигуратора. Расположена она в папке «bin» установленной технологической платформы, например, C:\Program Files (x86)\1cv8\8.3…\bin\chdbfl.exe.
Пользоваться ей просто — указываете путь к файлу базы данных и ставите опцию, нужно ли сразу исправлять обнаруженные ошибки. Если нет — утилита только продиагностирует ИБ.
Обновление платформы до новой версии
В данном случае всё достаточно просто. Скачивает с сайта поддержки 1С дистрибутив свежей версии платформы, распаковываем и запускаем инсталятор setup.exe.
Очистка таблиц базы данных
В крайнем случае можно попробовать удалить таблицы БД, связанные с ошибкой — «dbo._ConfigChngR» и «dbo._ConfigChngR_ExtProps».
Производится это через менеджер SQL-скриптом вида:
use имя_базы_данных
delete from dbo ._ ConfigChngR
delete from dbo ._ ConfigChngR _ ExtProps
Помните, прямые SQL-запросы лучше доверить профессионалу, умеющему работать с SQL.
12 статей про обновление 1С
Типовую программу 1С легко обновить самостоятельно через конфигуратор или интернет. Ещё один способ — использовать cfu-файл. Если пропущено много релизов, вам сэкономят время промежуточные конфигурации.
После обновления не забывайте запустить особые процедуры.
Бывает выгоднее отдать обновление нетиповой 1С на аутсорсинг.
Что нового для вашей 1С?
Рассылка осуществляется в день выхода обновления. Никакой рекламы, только полезная информация. Посмотрите пример →
Почему возникает ошибка
Рассматривая нами ошибка SDBL является представительницей целого пула схожих ошибок с текстом « Таблица или поле не содержится в разделе FROM ». Такие ошибки обычно связаны с повреждением базы данных из-за различных причин, самой распространённой из которых является технический сбой в работе системы 1С.
Среди других причин ошибки SDBL также выделяют:
- Использование устаревшей конфигурации или платформы 1С;
- Проблемы с кешом сервера 1С;
- Запуск системы с недостаточными правами (к примеру, от имени учётной записи гостя вместо администратора) и другие причины.
Ошибка возникает при попытке обновления базы данных, добавления документа в базу данных, при тестировании базы данных на логическую целостность и других схожих случаях. При этом перезагрузка системы обычно никак не решает возникшую проблему.
Убедитесь в наличии достаточных прав для запуска системы
Первым делом убедитесь, что вы запускаете вашу систему с правами администратора. Недостаточный уровень прав может приводить к появлению различных проблем при работе с 1С.
Обновите вашу конфигурацию (платформу) 1С
Также проверьте, пользуетесь ли вы самой свежей версией платформы (конфигурации) 1С. При необходимости обновите вашу систему до самой свежей версии продукта. Это может помочь устранить ошибку SDBL с полем configversion в 1С.
Используйте инструмент «Тестирование и исправление».
Данный инструмент запускается переходом в конфигуратор, где в разделе «Администрирование» нужно выбрать опцию «Тестирование и исправление». Дождитесь окончания процедуры, после чего проблема может быть решена.
Выгрузите и загрузите файл Dt
Хорошие результаты в избавление от ошибки «поле configversion не содержится в разделе FROM» показал способ, состоящий в выгрузке и последующей загрузке файла Dt (архивной копии базы 1С). Для выгрузки базы зайдите в Конфигуратор, там выберите «Администрирование» , где нажмите на «Выгрузить информационную базу».
Для загрузки выгруженной ранее базы в систему вновь запустите «Конфигуратор», перейдите на вкладку «Администрирование», и в ней активируйте опцию «Загрузить информационную базу». Это может помочь избавиться от ошибки «SDBL: Таблица или поле configversion»
Перезагрузите сервер 1С
Для устранения дисфункции рекомендуем перезагрузить сервер 1С. Перезагрузка указанного сервера обычно выполняется автоматически на протяжении 3-5 минут при условии отсутствия у сервера подключенных пользователей.
Очистите кэш сервера 1С
Туда нужно перейти и удалить папки с генерированными именами. Учтите, что кроме кэша в данной папке могут находиться журналы регистрации, а также индекс полнотекстового поиска 1С.
Очистите таблицы в менеджере SQL
Также можно попробовать выполнить очистку таблиц таблицы _ConfigChngR и _ConfigChngR_ExtProps с помощью команды delete.
Заключение
В нашем материале мы разобрали причины ошибки «SDBL: Таблица или поле configversion не содержится в разделе FROM» и способы её устранения. Среди всех перечисленных альтернатив хорошую эффективность показал способ с выгрузкой файлов базы данных (файл с расширением Dt), с последующей их повторной загрузкой. Обычно после этого ошибка бывает устранена, и вы сможете пользоваться нормальным функционалом системы 1С.
С описываемой ошибкой я столкнулся, когда на самописную "нетленку" понадобилось загрузить конфигурацию-обновление.
Поскольку выгрузка-загрузка ситуацию не исправила, то пришлось разбираться самому :)
Загружаемая конфигурация от текущей отличалась только отсутствием в ней общего реквизита, и я решил пройтись по его составу и отключить его использование в текущей конфигурации у всех объектов.
Изменив режим на "не используется" у всех объектов конфигурации, я снова попытался обновить конфигурацию в БД - ошибка появилась снова.
Тогда я начал отключать использование по видам объектов: сперва были все константы - изменения сохранились нормально, затем была очередь документов - также изменения сохранились без проблем. Повеселев, я стал отключать дальше, но когда дошел до регистров накопления, то вместо очередного нормального сохранения получил знакомую табличку.
"Хм-м. " - сказал я себе и стал отключать регистры по одному, сохраняя конфигурацию и обновляя её в БД после каждого изменения. Пройдясь по всем регистрам и успешно всё сохранив, я переключил режим разделения данных у общего реквизита на "не используется" - и это изменение также успешно сохранилось.
Загрузив и успешно сохранив конфигурацию-обновление, я снова сказал сам себе "Хм!" и решительно восстановил базу из бекапа, сделанного перед всеми изменениями.
Пройдясь по всему составу общего регистра-разделителя и установив "не используется" везде кроме регистров накопления и успешно сохранив и применив данное изменение конфигурации в БД, я попробовал изменить режим на "не используется" у двух регистров накопления сразу. Применить обновление конфигурации в БД не удалось - ошибка появилась снова.
Тогда я прошёлся по каждому регистру, сохраняя изменения после каждого - всё прошло "на ура".
В итоге, суть такова:
На платформе 8.3.18.1289 (другие не проверял) попытка за один раз изменить режим использования двух и более регистров накопления в составе общего реквизита приводит к появлению указанной мной ошибки при обновлении конфигурации в БД в момент пересчета итогов.
Решение:
Изменять режим использования по одному регистру за раз, затем сохранять и применять обновление конфигурации в БД после каждого изменения.
Нередко пользователи платформы 1С сталкиваются с ошибкой SDBL. Она может иметь различный характер, все зависит от конкретной надписи. Наиболее распространенный вариант — это ошибка: SDBL таблица или поле configversion не содержится в разделе FORM. Мы постараемся не лезть в дебри, а рассмотреть наиболее эффективные и общие способы решения данной проблемы.
Причины ошибки SDBL
Как писалось ранее причин, по которым появляется данная ошибка, может быть достаточно много. Обычный пользователь вряд ли самостоятельно сможет идентифицировать, в чем же именно кроется проблема. Однако, как правило, ошибка SDBL возникает во время обновления или установки конфигураций или в момент реструктуризации базы данных. В целом, можно заключить, что в 90% случаев данная ошибка показывает, что имеется некий технический баг в базе данных платформы 1С.
Независимо от того возникают у вас ошибки или нет, рекомендуем регулярно делать резервное копирование данных базы 1С. Это спасет ваши ценные данные в случае аварийной ситуации. Резервное копирование делается достаточно просто. Для этого войдите в «Конфигуратор», после чего нажмите на вкладку «Администрирование» — «Выгрузить информационную базу».
Создание резервной копии
В случае необходимости для загрузки сохраненной копии нажмите на пункт «Загрузить информационную базу».
Как решить проблему
Итак, если вы решили самостоятельно попробовать решить проблему, то необходимо попробовать следующее:
- Перезагрузить сервер 1C и сервер SQL. Инструкций как это делается в интернете достаточно много, поэтому не будем на этом заострять внимания. Конечно, этот способ вряд ли сможет вам помочь, но стоит попробовать.
- Отчистите кэш в сервере 1C. Для этого необходимо перейти в папку, где хранятся временные файлы 1С. Данный адрес можно посмотреть в настройках клиента. Далее необходимо перейти в папку «Local» — «1C» — «1Cv82». Папки с длинными и непонятными наименованиями и есть тот самый кэш, его можно смело удалять.
В этой инструкции мы специально не писали способы, в которых необходимо исправлять программный код и т.д. Это подойдет только для продвинутых пользователей или системных администраторов. В любом случае, если ничего из вышеизложенного вам не помогло, то лучше обратитесь в техподдержку или вызовите специалиста на дом или в офис компании.
Итог
Приветствую, коллеги! В данной статье будет рассмотрена знакомая и набившая оскомину многим специалистам 1С ошибка SDBL, а также возможные пути её устранения.
1. Возникновение ошибки SDBL
· была совершена попытка вставить значение с недопустимым типом;
· был совершён пропуск точки с запятой;
· имеет место ошибка, которая произошла при индексировании с полным текстом;
· некоторое поле имеет неоднозначное определение;
· не хватает выражения (pos =);
· совершён выход из размерностей;
· в поле таблицы используется невозможный тип значения «NULL».
2. Устранение ошибки SDBL в 1С
Устранить ошибку SDBL можно одним из способов, которые описаны ниже.
1. Сделать перезагрузку на сервере с приложениями для 1С 8.3. Далее может помочь, если включить и выключить все сервисы SQL и агентами SQL. Для этого потребуется зайти на сервер, выбрать «Агент сервера 1С» и при помощи контекстного меню приостановить работу. По аналогии сделаем с «Агентом SQL» и «SQL Server» для сервера SQL. Затем следует снова подключить их, но в обратной последовательности.
2. Выгрузить базу с данными в некоторый файл, который будет иметь расширение DT, а затем выгрузить её назад – в ту же базу с информацией. Аналогично будет исполняться для режима конфигуратора при помощи вкладки меню «Администрирование» – посредством использования команд «Загрузить информационную базу…» и «Выгрузить информационную базу…».
4. Также можно обновить платформу на более современную версию (с главного портала – ИТС). Для выполнения данного действия скачиваем с ИТС новую платформу 1С 8.3 и устанавливаем ее на компьютерах клиентов и на сервере.
5. Рассмотрим еще один вариант – использование механизма «Тестирование и исправление информационных баз», который находится внутри конфигуратора. В необходимой базе переходим по пути: «Администрирование → Тестирование и исправление информационных баз», а далее запускаем процесс.
6. Совершим загрузку внутри копии, которая является резервной, если она была создана в недавнем времени. Замечание: обязательно часто делать резервные копии до любого важного действия с ИБ. Копии делаются посредством SQL MS или конфигуратора, при этом происходит выгрузка файла в формат dt.
Если ни один из вышеперечисленных способов не устранил ошибку SDBL, следует произвести очистку таблиц _ConfigChngR_ExtProps и _ConfigChngR. Однако для этого потребуется знания принципов работы MSSQL.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Читайте также: