Ошибка СУБД Column does not exist

21.11.21

База данных - Администрирование СУБД

В данной статье на примере СУБД Postgre и конфигурации УНФ описывается метод исправления ошибки "Column does not exist". На просторах интернета натыкался на общее описание проблемы, что состав базы со стороны СУБД не соответствует той картине, что ожидает 1С. Надо приводить все в соответствие, а конкретных примеров не находил.

Изначально имеем:

Управление нашей фирмой, редакция 1.6 (1.6.25.212)

Postgre 9.4.2

pgAdmin 4.6.2

Все действия выполняются без активных сеансов с базой (кроме конфигуратора, когда он нужен)


При попытке выгрузки *.dt перед обновлением появилась ошибка, которая указывала на то,что не найдена колонка с обозначенным именем.

Уточнил у системного администратора, копии средствами СУБД делаются успешно, стандартная проверка базы ошибок не дает.

Попытка запуска ТиИ выдала такую же ошибку. Зато в нижней части конфигуратора видно было, какая таблица проверялась, когда получили ошибку с полем. (В принципе, это можно было узнать и средствами СУБД.

 
 Прилагаю пример, как это можно найти в Pg admin 4. Как альтернатива, можно также написать запрос, примера которого у меня нет под рукой)

 

Далее, используя платформенный метод ПолучитьСтруктуруХраненияБазыДанных(), узнал, на какую таблицу и поле указывает ошибка. В моем случае это был справочник "ДанныеОКорректировкеСведенийЗастрахованныхЛицСЗВ_КОРРПрисоединенныеФайлы" и поле "Редактирует". Справочник пуст, что снимает переживания о потере данных.

 

После этого полез в СУБД изучать картину. 

Слева проблемная база, справа ее копия для тестирования, развернутая до возникновения проблемы.

Попытка обычного переименования(через интерфейс pgAdmin) выдает ошибку, что поле "_fld28724]rtref" не найдено. Попытка создания правильного поля(скриптом Create) выдает ошибку, что поле "_fld28724_rtref" уже существует.

Ага! т.е. оно есть, но видим мы его иначе.

А вот скрипт 

ALTER TABLE IF EXISTS public._reference28250
    RENAME COLUMN "_fld28724_rtref" TO "_fld28724__rtref";

Работает успешно. Обновляем дерево объектов в СУБД. Теперь поле отражается, как мы задали ему новое имя. Меняем обратно на исходное.

ALTER TABLE IF EXISTS public._reference28250
    RENAME COLUMN "_fld28724__rtref" TO "_fld28724_rtref";

После этого получилось выгрузить копию *.dt и произвести дальнейшие манипуляции с базой.

 

Следует отметить, что случай этот не страшный.

Сам справочник пустой, поле итак присутствовало, но с некорректным именем. Не было необходимости создавать поле с нуля, сверившись с другой базой или скопировав из нее. Не было необходимости восстанавливать данные.

Процессу работы пользователей ошибка не мешала, копии средствами СУБД выполнялись исправно.

 

Если кто знает более практичные способы решения проблемы - буду рад ознакомиться.

СУБД Администрирование баз данных Ошибка Поле не найдено

См. также

Администрирование СУБД Системный администратор Программист

В крупных компаниях, где много типовых и сильно доработанных баз с режимом работы 24/7, переход с MS SQL на PostgreSQL затягивается. Получается гетерогенная структура – когда прод уже на PostgreSQL, а разработка и тестирование – пока на MS SQL. О том, какие варианты помогут постепенно перевести прод с несколькими базами MS SQL на PostgreSQL, не сломав среду тестирования и разработки, пойдет речь в статье.

21.11.2024    2443    a.doroshkevich    7    

14

Администрирование СУБД Системный администратор Платформа 1С v8.3 Бесплатно (free)

Пользовался ранее https://infostart.ru/1c/articles/1120161/#, но она устарела, т.к. службы запускаются через systemctl, да и сами службы слегка изменились. Возможно, где-то на ИТС уже есть нужная инструкция, но мне не попалась.

15.11.2024    331    Baser    2    

1

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Россия Бесплатно (free)

Мы исследуем проблему долгого выполнения запросов PostgreSQL при использовании конструкции VALUES: когда она возникает, как на нее можно повлиять, а главное, почему ее продуманная отработка важна для более быстрого функционирования решений на базе 1С

12.11.2024    848    Tantor    19    

14

HighLoad оптимизация Администрирование СУБД Механизмы платформы 1С Программист Платформа 1С v8.3 ИТ-компания Россия Бесплатно (free)

В данной статье мы рассмотрим, как работает механизм временных таблиц на postgres на платформе 8.3.23 и что изменилось в нем при добавлении новых возможностей в платформе 8.3.25. А также на примере покажу, как понимание работы платформы позволяет оптимизировать СУБД для работы с 1С.

29.10.2024    3222    Tantor    38    

34

Администрирование СУБД Системный администратор Программист Бесплатно (free)

CDC - очень мощный механизм, который можно использовать во многих сценариях, возможность развернуть его в Docker показывает простоту и лёгкость данной технологии.

08.10.2024    757    AlexSvoykin    1    

7

Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ и решение ошибок СУБД. Во время реиндексации базы Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Не удалось найти объект "ИмяБазы.dbo._RefSInf21806", так как он не существует, или отсутствуют разрешения. Во время проверки целостности Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Недопустимое имя объекта "dbo._RefSInf21806".

19.09.2024    4391    Xershi    10    

17

HighLoad оптимизация Администрирование СУБД Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

13.08.2024    2990    1CUnlimited    9    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Kalam 105 23.11.21 10:27 Сейчас в теме
Если кто знает более практичные способы решения проблемы - буду рад ознакомиться.


обновиться не пробовали?
говорят помогает...
4. tigcorp 4 01.12.21 16:21 Сейчас в теме
(1)Спасибо за дельный совет под статьей, которая начинается с того, что не получается произвести обновление из-за указанной ошибки.
meowmeow; +1 Ответить
2. aspirator23 339 26.11.21 11:22 Сейчас в теме
Да, это увы пока проблема. https://infostart.ru/public/168392/ с примерами исправления для MSSQL и Postgre. Там же есть обсуждение.
3. tigcorp 4 01.12.21 16:19 Сейчас в теме
(2)Это как раз одна из статей, которые навели меня на решение проблемы. Увы, проглядел в ней короткую строчку, что файл с примерами приложен
Оставьте свое сообщение