Невозможно вставить повторяющуюся ключевую строку в объект "dbo.#tt42" с уникальным индексом

1. brrart 26 22.01.18 04:35 Сейчас в теме
В один прекрасный день сломался обмен РИБ на стороне периферийной базы.

1С (платформа 1С:Предприятие 8.3 (8.3.8.2088)) пишет следующее сообщение:
Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 10.0: Невозможно вставить повторяющуюся ключевую строку в объект "dbo.#tt42" с уникальным индексом "idx42".
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1

в SQL я не силён, но сдаётся мне что это таблица во временной базе tempdb. Пошел смотреть эту базу, а временной таблицы с таким именем в ней нет. Шайтан какой-то.


Размер базы в SQL варианте 50 Гб. С самой базой 1С проблем нет (ну я так думаю). Выгрузка в dt и загрузка в чистую базу SQL прошла без проблем. Локальные пользователи в ней работают без каких-либо проблем.

Подскажите, в чём может быть проблема?
+
Найденные решения
12. brrart 26 26.01.18 09:24 Сейчас в теме
В общем проблема решилась очисткой регистрации изменений для узла и перепроведением в главном узле всех документов из списка. В результате чего нашли два документа, которые создавали одинаковые записи в периодическом регистре сведений.
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. collider 22.01.18 05:29 Сейчас в теме
(1) Ну могу предложить топорный метод. Выгружаешь базу в файловую, проводишь обмен и загружаешь обратно в сервер. Дальше вроде нормально должно всё пойти.
+
3. brrart 26 24.01.18 02:49 Сейчас в теме
(2) Данный метод не подошел. Слишком большая база для файлового варианта.
+
4. collider 24.01.18 06:14 Сейчас в теме
(3) Ну тогда ещё более мерзкий, но он вроде как должен сработать. Выгрузи в постгри, обменяй и загрузи обратно в MSSQL. :)
Способов получше я не знаю.)
+
5. VZyryanov 24.01.18 08:10 Сейчас в теме
Таблица с префиксом # это локальная временная таблица. Такая таблица видна только во время текущего сеанса. В #tt42 42 это суффикс, который устанавливается SQL сервером и может быть разным.
+
6. brrart 26 24.01.18 10:04 Сейчас в теме
Как я понял, придется мне ковырять все данные, зарегистрированные для обмена для этого узла и искать там косячные данные
+
7. collider 24.01.18 10:31 Сейчас в теме
(6) На предмет чего будешь искать?)
+
8. Fox-trot 158 24.01.18 10:58 Сейчас в теме
9. RustamZz 24.01.18 11:13 Сейчас в теме
Платформу пора менять. В 8.3.8 и 8.3.9 постоянно выходили ошибки с временными таблицами и при обмене, и при обычной работе пользователей. Перешли на 8.3.10.2580 пропали.
+
10. brrart 26 25.01.18 16:43 Сейчас в теме
(9) Обновление на 8.3.10 не помогло
+
11. brrart 26 25.01.18 17:35 Сейчас в теме
Пришлось сохранить все изменения для узла, очистить регистрацию и завтра по списку буду регистрировать данные кусками и обменивать базы ... долго, муторно, но есть шанс выловить косячные данные, ломающие обмен.

Кстати говоря, у нас 10 периферийных узлов ... везде ходят одинаковые данные, но обмен сломался только с одним узлом.
+
12. brrart 26 26.01.18 09:24 Сейчас в теме
В общем проблема решилась очисткой регистрации изменений для узла и перепроведением в главном узле всех документов из списка. В результате чего нашли два документа, которые создавали одинаковые записи в периодическом регистре сведений.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот