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

27.11.15

Задачи пользователя - Корректировка данных

При обновлении конфигурации может возникнуть очень неприятная вещь!
В процессе обновления информационной базы произошла критическая ошибка по причине:
Попытка вставки неуникального значения в уникальный индекс: Далее текст самой ошибки.
Эту ошибку устранить довольно легко! А как, читайте дальше...

Предыстория

Нужно нам было создать новый регистр сведений "ЖурналОтслеживанияСообщений". Добавили в конфигурацию, загрузили данные. Затем пошла работа по оптимизации. Пришлось менять структуру регистра. Но не тут-то было!

Реорганизация

Тут все ясно. Записи стали неуникальными, нужно их удалить!

Самой простой способ это:

НоваяЗапись = РегистрыСведений.ЖурналОтслеживанияСообщений.СоздатьНаборЗаписей();
НоваяЗапись.Записать();

Таким методом мы очистим регистр в 1С очень быстро (но это будет и нашей ошибкой). 

Ошибка

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

Ошибка 1С

Что же представляет ошибка:

В процессе обновления информационной базы произошла критическая ошибка
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._InfoRgChngR34546NG' and the index name '_InfoR34546_ByNodeMsg_RNTSRRRRRRNG'. The duplicate key value is (0x00000011, 0x80ca00155d03c00d11e54af2ae5400d7, <NULL>, Sep 27 4015 10:22PM, 768404, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1

Пояснение

Давайте разберемся со структурой SQL. У нас есть регистр "ЖурналОтслеживанияСообщений", он в SQL находится в таблице "_InfoR34546". Проверить это вы можете специальными обработками или методом "тыка" (нам это не придется делать т.к. в тексте ошибки уже указано название таблицы). 

А теперь поясню, что же произошло. Когда мы загрузили данные в регистр, то в SQL они попали в таблицу "_InfoR34546". Когда мы кодом в 1С очистили таблицу, то эти данные удалились из таблицы "_InfoR34546", но они скопировались в таблицу "_InfoRgChngR34546". Это и стало проблемой.

Решение

Для решения возникшей проблемы нам понадобится очистить SQL таблицу "_InfoRgChngR34546".

Расскажу на примере "Microsoft SQL Server Management Studio". Заходим в "Management Studio". Находим нашу базу, открываем вкладку таблиц, кликаем на любую и жмем кнопку "Новый запрос":Новый запрос. Теперь набираем запрос 

truncate table "_InfoRgChngR34546"

У вас может быть и другая таблица! Не забывайте!

И жмем выполнить или клавишу "F5". Вот такой должен быть результат:

Успех

Все, теперь можно спокойно обновлять 1С, и ошибки не будет!

См. также

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    32453    105    152    

73

Корректировка данных Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 руб.

10.02.2017    110297    663    174    

702

Взаиморасчеты Корректировка данных Бухгалтер Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Бухгалтерский учет Управленческий учет Платные (руб)

Вы наконец разобрались с закрытием месяцев и пора начать контролировать сроки оплаты поставщикам и задолженности клиентов, но в базе расчеты не идут из-за развернутого сальдо? Не беда, есть решение!

7200 руб.

02.11.2020    7278    5    0    

8

Корректировка данных Зарплата Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

4800 руб.

06.10.2023    3993    34    17    

43

Закрытие периода Корректировка данных Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Закрытие месяца - важный процесс в современных конфигурациях, таких как УТ 11.4, УТ 11.5, КА 2.4, КА 2.5 ERP 2.4,ERP 2.5, КА 2 Казахстан, УТ 3 Казахстан регламентные операции влияют на расчет себестоимости, и ошибки в данном расчете не дают картины деятельности организации.

4800 руб.

27.10.2021    23804    241    35    

78

Корректировка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет НДС Платные (руб)

Обработка предназначена для корректировки входящего НДС при смене системы налогообложения индивидуального предпринимателя с УСН на ОСНО в 1С:Бухгалтерия предприятия 3.0

4000 руб.

18.07.2024    667    1    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Danil.Potapov 517 27.10.15 17:11 Сейчас в теме
злодей. а что мешало при очистке не регистрировать на обмен или очистить штатными средствами.
2. Xershi 1551 27.10.15 17:24 Сейчас в теме
(1) Dpotapov, купился на слова: //Способ 1 - быстрый и легкий. http://1cprofi.com/content/view/15/15
3. Danil.Potapov 517 27.10.15 19:32 Сейчас в теме
(2) перед записью можно отключить регистрацию изменений на обмен. удаление изменений из таблицы можно выполнить тоже штатными средствами. Не понятно другое, если уже полез на уровень СУБД, то и записи из регистра тогда грохнул бы таким же способом, а то половина средствами платформы, вторая половина средствами СУБД (со всеми вытекающими последствиями для бизнес-логики).
4. Xershi 1551 28.10.15 08:55 Сейчас в теме
(3) Dpotapov, да вы правы. Добавил на автомате регистр в тестовую базу, а он автоматом прописался в план-обмена удаленной копии. Т.к. я об этом не подозревал на этот момент, поэтому полез в SQL и там очистил таблицу.
Теперь конечно понятно, что таблица "_InfoRgChngR34546" ничто иное как регистрация регистра для обмена и почистить эту таблицу можно через обработку "Регистрация изменений для обмена".
Но повторюсь на тот момент это последнее, что пришло бы в голову!
5. IgorS 43 28.10.15 12:26 Сейчас в теме
По рукам бить программиста, который после каждой ошибки лезет "что-нибудь подправить" в СУБД.
6. Xershi 1551 28.10.15 13:29 Сейчас в теме
(5) IgorS, ну не скажи. Вот если бы у тебя не было под рукой обработки "Регистрация изменений для обмена". То это решение как раз, то что нужно!
Тем более, если мы понимаем, что делаем!
7. пользователь 07.02.24 10:53
Сообщение было скрыто модератором.
...
Оставьте свое сообщение