gifts2017

Ошибка СУБД: ERROR: relation … does not exist

Опубликовал aspirator 23 (aspirator23) в раздел Администрирование - Системное

Вы обновляете конфигурацию в базе данных и «неожиданно» получаете «Ошибка СУБД: ERROR:  relation…does not exist».

Откуда ноги

Причина данной ошибки в том, что таблицы, либо их отдельные поля, описанные в конфигурации 1с, не соответствуют таблицам в базе данных SQL. Например в новой, обновленной конфигурации 1с существует регистр, а среди таблиц SQL его нет.

 Что делать?

Нужно привести таблицы(поля) SQL в соответствие с описанием конфигурации.

Т.е. все таблицы(поля), описанные в конфигурации, должны присутствовать в SQL.

  Лечение

Необходимо, воспользовавшись утилитами, сравнить таблицы SQL с 1с. Описание ошибки сразу выводит на ту таблицу, которую нужно искать.

Далее нужно добавить(исправить) таблицы SQL с тем, чтобы они соответствовали конфигурации 1с.

В приложенном файле показаны примеры исправления. 

Размышления

1.Поиск в интернете показал, что наиболее страдают этой ошибкой базы, размещенные на Postgre.

Здесь описано, что эта проблема существует и решена в версиях начиная с 8.3.

Сталкивался трижды с этой проблемой. Во всех случаях это был Postgre 8.4. 

2.Есть мнение, что одним из поводов для появления ошибки, является динамическое обновление конфигурации.

3. Данная ошибка не возникает, если в новой конфигурации, относительно старой, не изменяли реквизиты, таблицы. Т.е. при изменении только программного кода, форм  конфигурации, такая ошибка не должна  проявляться, т.к. не изменяется структура таблиц SQL. 

На дорожку

При исправлении ошибки, сами работы с таблицами SQL, хотя и не являются сложными, но все же требуют определенной подготовки.

Поэтому - пару рекомендаций, чтобы не пришлось решать описанную проблему:

- Не хочу обижать Postgre, но если база данных небольшая, может использовать MSSQL? Бесплатная версия Express позволяет обслуживать базу размером до 10Гб.

- По возможности избегайте делать динамическое обновление. Хотя фирма 1с периодически сообщает, что ей удалось «победить» эту проблему, но «Пуганая ворона…».

Ну и конечно, прежде чем начать работать с базой данных «по живому», сделайте ее бэкап.

Благодарности:

Для анализа конфигурации использовалась обработка Структура хранения таблиц базы данных

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Ошибка СУБД: ERROR: relation…does not exist
.doc 601,50Kb
25.02.16
24
.doc 601,50Kb 24 Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. DERL (DERL) 09.01.13 09:39
Такой проблемы ТТТ еще не было, но спасибо, будем знать на будущее...
2. Сергей Кудашкин (sikuda) 09.01.13 10:04
Класный слоник.
Еще раз повторю связка 1С и Postgresql технически плохо проработана. Это в основном коммерческие причины.
Когда 1С доработает связку с Oracle, может и Postgresql что нибудь достанется...
3. aspirator 23 (aspirator23) 09.01.13 10:36
(2) Об этом многие говорят. Однако много баз развернуто на Postgre. Потому что бесплатно?
4. Андрей Ро (AndrewVVS) 15.11.15 20:26
сегодя словил такую ошибку при обновлении типовой ЗУП с 2.5.96.1 на 2.5.96.2. у нас PostgreSQL 9.0.3-3.1C. При выгрузке бекапа в файловую версию - обновляется без ошибок. "Тестирование и исправление" - не помогло. Помогла выгрузка в dt и обратная загрузка dt!!!!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа