Каталог решений - Причина появления и исправление ошибки SDBL "Таблица или поле Fld…… не содержится в резделе FROM"

Причина появления и исправление ошибки SDBL "Таблица или поле Fld…… не содержится в резделе FROM"

Причина появления и исправление ошибки SDBL "Таблица или поле Fld…… не содержится в резделе FROM"

В наличии

Данная ошибка возникает при любом действии из следующих:
— изменении состава общего реквизита
— переключении режима разделения данных в режим «Не использовать» у общего реквизита.

Категория:

Описание

Для торопливых: в конце кратко изложена суть.

Итак.

С описываемой ошибкой я столкнулся, когда на самописную "нетленку" понадобилось загрузить конфигурацию-обновление.

С удивлением прочитав выскочившее сообщение (см. картинку) я начал гуглить причину его возникновения. Все советы сводились либо к выгрузке-загрузке ИБ, либо к созданию пустой ИБ и "перегоном" в неё всех данных из "боевой" базы.

Поскольку выгрузка-загрузка ситуацию не исправила, то пришлось разбираться самому 🙂 

Загружаемая конфигурация от текущей отличалась только отсутствием в ней общего реквизита, и я решил пройтись по его составу и отключить его использование в текущей конфигурации у всех объектов.

Изменив режим на "не используется" у всех объектов конфигурации, я снова попытался обновить конфигурацию в БД — ошибка появилась снова.

Тогда я начал отключать использование по видам объектов: сперва были все константы — изменения сохранились нормально, затем была очередь документов — также изменения сохранились без проблем. Повеселев, я стал отключать дальше, но когда дошел до регистров накопления, то вместо очередного нормального сохранения получил знакомую табличку.
"Хм-м…" — сказал я себе и стал отключать регистры по одному, сохраняя конфигурацию и обновляя её в БД после каждого изменения. Пройдясь по всем регистрам и успешно всё сохранив, я переключил режим разделения данных у общего реквизита на "не используется" — и это изменение также успешно сохранилось.

Загрузив и успешно сохранив конфигурацию-обновление, я снова сказал сам себе "Хм!" и решительно восстановил базу из бекапа, сделанного перед всеми изменениями.

Пройдясь по всему составу общего регистра-разделителя и установив "не используется" везде кроме регистров накопления и успешно сохранив и применив данное изменение конфигурации в БД, я попробовал изменить режим на "не используется" у двух регистров накопления сразу. Применить обновление конфигурации в БД не удалось — ошибка появилась снова.

Тогда я прошёлся по каждому регистру, сохраняя изменения после каждого — всё прошло "на ура".

В итоге, суть такова:
На платформе 8.3.18.1289 (другие не проверял) попытка за один раз изменить режим использования двух и более регистров накопления в составе общего реквизита приводит к появлению указанной мной ошибки при обновлении конфигурации в БД в момент пересчета итогов.

Решение:
Изменять режим использования по одному регистру за раз, затем сохранять и применять обновление конфигурации в БД после каждого изменения.

Спасибо за внимание.

 

PS: Статья первая — тапками кидать обязательно.

has been added to your cart:
Оформление заказа