Ошибка СУБД: 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. А побыстрее можно?

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

                                                                                                 Оборудование

Обновление прошивки на фискальном регистраторе Штрих-М. Com — порт

Обновление прошивки на фискальном регистраторе Штрих-М. USB — порт

Установка лицензии на фискальные регистраторы Штрих-М

 

17 Comments

  1. DERL

    Такой проблемы ТТТ еще не было, но спасибо, будем знать на будущее…

    Reply
  2. sikuda

    Класный слоник.

    Еще раз повторю связка 1С и Postgresql технически плохо проработана. Это в основном коммерческие причины.

    Когда 1С доработает связку с Oracle, может и Postgresql что нибудь достанется…

    Reply
  3. aspirator23

    (2) Об этом многие говорят. Однако много баз развернуто на Postgre. Потому что бесплатно?

    Reply
  4. AndrewVVS

    сегодя словил такую ошибку при обновлении типовой ЗУП с 2.5.96.1 на 2.5.96.2. у нас PostgreSQL 9.0.3-3.1C. При выгрузке бекапа в файловую версию — обновляется без ошибок. «Тестирование и исправление» — не помогло. Помогла выгрузка в dt и обратная загрузка dt!!!!

    Reply
  5. Efimoff

    Закину свои пять копеек.

    При восстановлении из бэкапа получил такое сообщение при выгрузке базы в конфигураторе самой 1С. Тестирование падало при Реструктуризации. Удаление configcas и configcassave в самом postgre тоже не помогло.

    Помогло.

    Сохранить конфигурацию в файл и Загрузить конфигурацию из этого файла. После реструктуризации и сохранении самой 1С всё встало на свои места.

    Платформа 8.3.11.2899

    Reply
  6. zipa88

    Подскажите ,загрузка конфигурации УНФ — 1.6.14.81, проходит нормально.. но при запуске базы вылазит:

    Ошибка СУБД:
    ERROR:  column «fld10303rref» does not exist
    LINE 2: COALESCE(Fld10303RRef,Q_001_F_000RRef),
    #k8SjZc9Dxk
    

    PostgreSQL 9.6.8

    Платформа — 8.3.12.1412

    Reply
  7. aspirator23

    (6) Нет поля. В описании к этой публикации есть примеры как работать с базами SQL. Но будьте аккуратнее — опыты делайте на тестовой базе.

    Reply
  8. zipa88

    Забыл добавить, что это новая сборка на CentOS release 6.9 (Final)…

    И конфигурация заливается чистая…

    Пробовал сохранить в формат .dt и загрузить обратно..

    Так же пробыв загружать конфигурацию в .cf

    Результат такой же остаётся…

    Я так подозреваю может PostgreSQL надо конфиги поправить… Или куда копать?

    Пустая база создается и запускается и редактируется через конфигуратор….

    Reply
  9. aspirator23

    (8) Можно для начала поправить таблицу в Postrge.

    Reply
  10. igee12

    (6) Что интересно, у нас тоже PostgreSQL 9.6.8 и платформа — 8.3.12.1412, и с ЗУП 3.1.6 (и 3.1.5) такая же беда.

    Загружаем чистую конфу и при загрузке в режиме предприятия ошибка:

    Ошибка СУБД:
    ERROR:  column «fld16396rref» does not exist
    LINE 2: COALESCE(Fld16396RRef,Q_001_F_000RRef),

    Система Debian 64-bit, 1C 32-bit.

    Похоже, придется лезть в базу postgresql

    Reply
  11. igee12

    (6) и, кстати, на Windows Server 2008 и Postgresql 9.4.5 такая же ерунда.

    Reply
  12. zipa88

    Кстати у меня получилось так:

    Сначала развернул файловую версию, потом сохранил в формат .dt, создал пустую БД и залил через конфигуратор..

    Reply
  13. StainDN

    Возможно баян, но все же. 2 дня бился с подобной ошибкой. Оказалось что Postgresql не «любит» ПОЛНОЕ соединение в запросах.

    Reply
  14. ansh15

    Имеет смысл обновить платформу до 8.3.12.1529 — https://bugboard.v8.1c.ru/error/000042491.html

    Reply
  15. StainDN

    (14) Ну похоже имеет )

    Reply
  16. westwest

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

    Не подскажите, какими утилитами?

    Reply
  17. aspirator23

    (16) В инструкции более подробно описан процесс, приведены примеры исправления для MSSQL и Postgre.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *