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

Администрирование - Системное

Вы обновляете конфигурацию в базе данных и «неожиданно» получаете «Ошибка СУБД: 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с периодически сообщает, что ей удалось «победить» эту проблему, но «Пуганая ворона…».

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

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

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

Статьи и решения для платформы 8.х

Сравнение товарных остатков между двумя базами данных

Учет доставок в Управление торговлей 10.3 (УПП - опционально)

Сравнение взаиморасчетов с контрагентами УТ с БП 

Настройка обмена в 1С:Предприятие 8 после смены баз данных

Учета документов, сданных в бухгалтерию для Управление торговли 10.3

Клиент-банк ВТБ 24. "Неожиданный" ОКТМО

Новогодние истории: Праздничный учет 

Решения для платформы 7.7

Быстрая Книга учета доходов и расходов для комплексной 7.7

Реестр сертификатов для 7.7

Прайс-лист для 7.7. А побыстрее можно?

Комфортные наборы пользователя

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

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

См. также

Комментарии
1. DERL (DERL) 09.01.13 09:39 Сейчас в теме
Такой проблемы ТТТ еще не было, но спасибо, будем знать на будущее...
2. Сергей Кудашкин (sikuda) 495 09.01.13 10:04 Сейчас в теме
Класный слоник.
Еще раз повторю связка 1С и Postgresql технически плохо проработана. Это в основном коммерческие причины.
Когда 1С доработает связку с Oracle, может и Postgresql что нибудь достанется...
3. aspirator 23 (aspirator23) 300 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!!!!
Оставьте свое сообщение