Ошибка "В процессе обновления информационной базы произошла критическая ошибка". Bash в помощь



Ошибка «В процессе обновления информационной базы произошла критическая ошибка» в пустую конфигурацию.
1С:Предприятие 8.3 (8.3.13.1513), режим совместимости 8.2.
При загрузке конфигурации(.cf) в пустую базу и попытке обновить, получал ошибку:
«В процессе обновления информационной базы произошла критическая ошибка по причине:
Ошибка при попытке вставки записи с неуникальным значением ссылки.»

Ошибка "В процессе обновления информационной базы произошла критическая ошибка" в пустую конфигурацию

1С:Предприятие 8.3 (8.3.13.1513), режим совместимости 8.2

При загрузке конфигурации(.cf) в пустую базу и попытке обновить, получал ошибку.

В процессе обновления информационной базы произошла критическая ошибка по причине:

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

Microsoft SQL Server Native Client 11.0: Violation of PRIMARY KEY constraint ‘PK___Chrc173__AC8ED0C4E093E775’. Cannot insert duplicate key in object ‘dbo._Chrc17340NG’. The duplicate key value is (0xa040dc2d4659cfa8487345e49e5c49f4). HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2627, line=1

В Технологическом журнале зафиксировалась аналогичная ошибка.

«08:52.535000-0,EXCP,4,process=1cv8,Usr=DefUser,dbpid=100,Exception=DataBaseException,Descr="Ошибка при попытке вставки записи с неуникальным значением ссылки. Microsoft SQL Server Native Client 11.0: Violation of PRIMARY KEY constraint ‘PK___Chrc173__AC8ED0C4E093E775’. Cannot insert duplicate key in object ‘dbo._Chrc17340NG’. The duplicate key value is (0xa040dc2d4659cfa8487345e49e5c49f4). HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2627, line=1»

Чтобы «расшифровать» имя таблицы воспользовался статьей на ИТС и запуском обработки для получения информации о структуре таблиц базы данных в рабочей базе. Для поиска повторяющихся ключей на рабочей копии базы, воспользовался статьей nonunique,  но без успешно.
Так как при повторной загрузке конфигурации(.cf) получал в ошибке уже  другое имя таблицы ‘dbo._Chrc552NG’, пришлось применить другой метод для поиска причины неуникальной записи. После прочтения статьи ИТС узнал, что префикс «_Chrc…» относится к плану виду характеристик и чтобы узнать какие предопределенные объекты задублировались, выгрузил конфигурацию в файлы. Суммарное количество предопределенных элементов более 600 шт.

Запустил git bash here в каталоге, куда выгрузил конфигурацию в файлы, перешел в папку, где хранятся планы видов характеристик, например, «e:ConfChartsOfCharacteristicTypes» и запустил bash скрипт. Подробнее на ИТС о выгрузке конфигурации в xml-файлы.
Вывел скриптом совпадения поля «Item id = "guid"».
grep -r ‘Item id=’ | awk -F: ‘{print $0}’ | sort | uniq -d | sort -r

Нашел 3 предопределенных элемента, у которых id одинаковый. После этого перед обновлением конфигурации в конфигураторе, нашел по имени Name объект, удалил и заново создал предопределенный объект, чтобы сгенерить новые id. Конфигурация обновилась.

Причины возникновения ошибки связываю с использованием платформы 8.3.10.2580, в части механизма «Выгрузить конфигурацию в файлы/Загрузить конфигурацию из файлов», т.к. до перехода на 8.3.13.1513, ошибки с обновлением в пустую конфигурацию не было. Как платформа при загрузке конфигурации из файлов смогла обновить и создать элементы с одинаковыми id, останется для меня загадкой и пусть разгадывают в 1С.

Буду рад, если статья кому-нибудь поможет.

3 Comments

  1. yarsort

    Хорошее решение.

    Reply
  2. Vovan58

    Спасибо за статью. Кроме git bash можно применять Cygwin64

    Reply
  3. sashapere

    Круто

    Reply

Leave a Comment

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