10

В 1С зависает синхронизация данных из-за циклической ссылки в справочнике

Синхронизация 1С останавливалась на этапе удаления повторяющихся элементов, а затем фоновое задание завершалось сообщением о потерянном сеансе. Простое удаление блокировок не помогало.

Проблема

При ручном запуске сценарий синхронизации доходил до одного и того же места и переставал двигаться. В технологическом журнале перед обрывом появлялось сообщение:

Сеанс отсутствует или удален. Сеанс завершен администратором.

Другие фоновые задания при этом выполнялись, а найденные в консоли блокировки не были причиной остановки обмена.

Что удалось установить

В данных справочника номенклатуры существовала повреждённая связь: группа оказалась собственным родителем. Штатная форма 1С такую запись обычно не допускает, поэтому я рассматривал её как нарушение целостности данных, а не обычную пользовательскую ошибку. При обработке повторяющихся элементов синхронизация снова обходила тот же узел, пока фоновый сеанс не завершался аварийно.

Как я нашёл проблемный элемент

Я включил технологический журнал только на время воспроизведения и повторил обмен вручную. По последней выполнявшейся операции определил этап работы с номенклатурой. Затем проверил иерархию затронутых групп и нашёл элемент, у которого ссылка на родителя замыкалась на него самого.

Решение

  1. Перед исправлением сделал резервную копию информационной базы.
  2. Попробовал открыть проблемную группу номенклатуры штатными средствами.
  3. Если запись открывается, указал правильную родительскую группу или перенёс элемент на верхний уровень. Если карточка недоступна, использовал отдельную проверенную обработку исправления с записью через объектную модель 1С.
  4. Проверил, что в цепочке родителей больше нет возврата к тому же элементу.
  5. Снова запустил синхронизацию и дождался её полного завершения.

Исправлять такую ссылку прямым запросом к таблицам СУБД нельзя: изменение данных в обход платформы не поддерживается. Если карточка не открывается обычными средствами, безопаснее использовать проверенную обработку с резервной копией базы.

Результат

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

Что ещё проверить

Перед разбором фонового обмена полезно сохранить подробный отчёт об ошибке 1С. Если задание вообще не стартует после обновления, это другой сценарий — перезапись регламентного задания.

Раздел:

Получилось или остались вопросы?

Поделитесь результатом, дополните инструкцию своим опытом или задайте вопрос. Я читаю комментарии и обновляю статьи по реальным случаям.

Напишите комментарий

Опишите проблему и укажите, какое решение вы уже проверили. Адрес электронной почты на сайте не публикуется.