Обмен данными между базами 1С сбоит: где смотреть и что исправлять

· 10 мин

Содержание

Проверить синхронизацию 1С проще всего с экрана Администрирование → Синхронизация данных → Настройки синхронизации данных: там по каждой связанной базе видно дату последнего обмена, его результат и ссылку на предупреждения. Если дата старая или стоит отметка об ошибке, дальше идут журнал регистрации, регламентное задание и транспорт — именно в таком порядке.

Частое заблуждение: «обмен прошёл без ошибок — значит, данные одинаковые». Нет. Обмен может завершиться успешно, но часть документов загрузится непроведёнными, часть объектов отклонится датой запрета, а часть просто не была зарегистрирована к отправке. Диагностика синхронизации данных — это проверка всех трёх слоёв: запуск, передача, загрузка.

Первичная проверка: работает ли синхронизация вообще

Начните с той базы, где пользователи заметили расхождение. Порядок одинаковый для БП 3.0, ЗУП 3.1, УТ 11 и других конфигураций на БСП.

  1. Откройте Администрирование → Синхронизация данных. Убедитесь, что флажок «Синхронизация данных» включён. Если его кто-то снял, обмен молча остановится во всех направлениях.
  2. Перейдите по ссылке «Настройки синхронизации данных». В списке — все узлы: другая база БП, ЗУП, УТ, Розница, филиал РИБ.
  3. Посмотрите на каждой строке дату и результат последнего обмена. Отдельно смотрите отправку и получение: бывает, что данные уходят, но не приходят.
  4. Выделите проблемный узел и запустите обмен вручную командой «Синхронизировать». Ручной запуск сразу отделяет проблему расписания от проблемы самого обмена.

Что означает результат ручного запуска:

Что вы видитеГде искать причину
Вручную работает, по расписанию — нетРегламентное задание, сценарий синхронизации, пользователь задания
Ошибка подключения сразу при запускеТранспорт: каталог, FTP, веб-сервис, COM
Обмен прошёл, но есть предупрежденияЗагрузка: конфликты, даты запрета, непроведённые документы
Обмен прошёл, предупреждений нет, данных нетРегистрация изменений и правила отбора узла

Запускайте ручную синхронизацию с обеих сторон по очереди. Если из базы А в Б обмен идёт, а обратно нет, проблема почти всегда в настройках или транспорте только одного направления.

Журнал регистрации: как найти ошибку обмена

Сообщение об ошибке в форме синхронизации обычно короткое. Полный текст лежит в журнале регистрации.

  1. Откройте Администрирование → Обслуживание → Журнал регистрации.
  2. Нажмите «Установить отбор» и в поле «События» оставьте события обмена данными. Их имена начинаются со слов «Обмен данными» — быстрее всего найти их поиском по списку событий.
  3. Задайте интервал: от последней успешной синхронизации до текущего момента.
  4. Отберите уровень «Ошибка», затем «Предупреждение».
  5. Откройте запись двойным щелчком. В поле комментария — полный текст ошибки, в поле данных — объект, на котором загрузка споткнулась.

Что обычно находится в журнале:

  • 🔴 ошибка подключения с текстом от транспорта: нет доступа к каталогу, отказ авторизации, таймаут;
  • 🔴 ошибка записи конкретного объекта: незаполненный обязательный реквизит, нарушение уникальности, запрет изменения;
  • 🟡 предупреждение о непроведённом документе с причиной: нехватка остатков, незаполненный счёт учёта;
  • 🟡 сообщение о несовпадении номеров сообщений обмена — признак того, что одну из баз восстанавливали из копии.

Журнал регистрации пишется в той базе, которая выполняла операцию. Ошибку загрузки ищите в базе-получателе, а не в той, откуда ушли данные.

Если журнал пуст за нужный период, проверьте его настройки: Администрирование → Обслуживание → Журнал регистрации → Настройка журнала регистрации (в клиент-серверной базе — ещё и параметры в консоли кластера). При режиме «Не регистрировать» диагностировать по журналу нечего.

Настройки узлов и правил обмена

Обмен проходит без ошибок, но нужных документов в базе-получателе нет — значит, их не отправляли. Причины лежат в настройках узла.

Правила отбора данных

Откройте настройку проблемного узла и посмотрите, какие данные он отправляет:

  • 📅 дата начала обмена — документы раньше неё не уйдут, сколько их ни перепроводи;
  • 🏢 отбор по организациям — если добавили новую организацию, а в отборе её нет, её документы не выгрузятся;
  • 📦 отбор по складам или видам документов — в обменах с торговыми конфигурациями;
  • 🔁 режим выгрузки справочников — «все» или «только используемые в документах».

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

Регистрация изменений

Объект уходит в другую базу, только если при записи он зарегистрирован к отправке на этот узел. Документ, созданный до настройки обмена или до расширения отбора, сам не зарегистрируется.

Что делать:

  1. В настройке узла найдите команду просмотра состава отправляемых данных — там видно, что сейчас стоит в очереди.
  2. Если нужного документа нет, проще всего перезаписать его в базе-источнике: при записи он регистрируется повторно.
  3. Для больших объёмов используйте выгрузку с начальной даты через помощник настройки или внешнюю обработку регистрации изменений.

Массовая перерегистрация отправит в другую базу всё, что попадёт под отбор. Перед ней сделайте резервную копию базы-получателя: изменённые там вручную документы будут перезаписаны.

Номера сообщений

Каждая сторона помнит номер последнего отправленного и принятого сообщения. Когда одну базу восстановили из резервной копии, номера расходятся: получатель считает новое сообщение старым или ждёт другое. В РИБ это лечится повторной инициализацией подчинённого узла из главного, в обменах БСП — повторной выгрузкой с сопоставлением данных через помощник синхронизации.

Регламентные задания и расписание обмена

Ручной обмен работает, автоматический — нет. Значит, смотрите на задание, которое запускает сценарий синхронизации.

  1. Откройте Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
  2. Найдите задание синхронизации данных для нужного узла. В БСП такое задание создаётся под сценарий синхронизации.
  3. Проверьте: задание включено, расписание заполнено, указан пользователь.
  4. Посмотрите колонку с датой и состоянием последнего выполнения. Ошибка завершения — откройте задание, внизу будет текст.
  5. Переключитесь на фоновые задания: если задание синхронизации висит в состоянии «Выполняется» много часов, обмен застрял.

Типовые причины по режиму работы базы:

Режим базыПочему задание не запускается
ФайловаяРегламентные задания выполняет только открытый клиентский сеанс. Ночью, когда все вышли из программы, обмен не идёт
Клиент-сервернаяВ свойствах базы в консоли кластера включена «Блокировка регламентных заданий»
ЛюбаяПользователь задания удалён, заблокирован или у него сменился пароль
ЛюбаяФлажок «Синхронизация данных» снят или сценарий отключён

Копия рабочей базы, развёрнутая для тестов, тоже умеет обмениваться по расписанию. Если тестовая копия «съела» сообщения обмена из общего каталога, рабочая база их уже не получит. После развёртывания копии сразу отключайте в ней синхронизацию.

Зависшее фоновое задание можно отменить из того же списка. Отмена прерывает только сам обмен, сеансы пользователей не затрагивает. Перезапускать службу сервера 1С ради одного зависшего обмена не нужно: это оборвёт работу всем пользователям базы.

Конфликты и ошибки при загрузке данных

Обмен прошёл, но рядом с узлом есть отметка о предупреждениях. Откройте их по ссылке в списке настроек синхронизации. Там собраны проблемы загрузки, сгруппированные по типам.

Конфликты изменения

Конфликт — это когда один и тот же объект поменяли в обеих базах между двумя обменами. Программа должна решить, чья версия останется.

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

Решение по каждому конфликту принимает человек, который знает учёт: сравните обе версии и оставьте правильную. Если конфликты повторяются ежедневно по одним и тем же справочникам — договоритесь, в какой базе их ведут, и закройте редактирование в другой.

Даты запрета загрузки

В конфигурациях на БСП есть даты запрета изменения и отдельно — даты запрета загрузки для узлов обмена. Документ закрытого периода не загрузится, а в предупреждениях появится запись о запрете. Это защита, а не сбой: прежде чем сдвигать дату, выясните, почему в базе-источнике меняют закрытый период.

Непроведённые документы и незаполненные реквизиты

Документ может загрузиться, но не провестись. Частые причины:

  • 📉 в базе-получателе не хватает остатков, а контроль остатков включён;
  • 🧾 у номенклатуры или контрагента нет счёта учёта или вида операции;
  • 🔗 ссылочные данные пришли пустыми, потому что справочник не сопоставился и создался заново.

Последний случай опасен: появляются дубли контрагентов и номенклатуры. Сопоставление объектов при первой настройке обмена — основная защита от них.

Диагностика: выберите симптом

Транспорт: каталог, FTP, COM и веб-сервис

Если ошибка возникает сразу при подключении, дело не в данных, а в канале. Проверка зависит от вида транспорта.

ТранспортЧто проверить
Локальный или сетевой каталогКаталог существует, путь указан одинаково с обеих сторон, есть права на чтение и запись, достаточно места на диске
FTPЛогин и пароль, пассивный режим, ограничение размера файла на сервере
COM-соединениеЗарегистрирован comcntr.dll той же версии и разрядности, что и платформа
Интернет (веб-сервис)База опубликована на веб-сервере с веб-сервисами, публикация открывается из браузера, пользователь подключения существует
Электронная почтаУчётная запись почты работает, письма не уходят в спам, вложение не режется по размеру

Права на каталог обмена

Самая частая ловушка клиент-серверного варианта. Обмен по расписанию выполняет не пользователь за компьютером, а рабочий процесс сервера 1С. Он работает под учётной записью службы — по умолчанию USR1CV8. Если у этой учётной записи нет доступа к сетевой папке, вручную из-под администратора всё работает, а по расписанию — ошибка доступа.

Указывайте каталог по UNC-пути вида \\server\exchange\buh_zup, а не через подключённый сетевой диск: у службы буквы дисков пользователя нет.

COM-соединение

После обновления платформы COM-обмен часто ломается: библиотека осталась зарегистрированной от старой версии. Перерегистрируйте её из каталога новой версии от имени администратора:

regsvr32 "C:\Program Files\1cv8\<версия>\bin\comcntr.dll"

Вместо <версия> подставьте номер установленной платформы — так называется её папка в C:\Program Files\1cv8\. Для 32-разрядной платформы на 64-разрядной Windows путь будет в C:\Program Files (x86)\1cv8\. Разрядность библиотеки и процесса, который её вызывает, должна совпадать.

Веб-сервис и таймауты

При обмене через интернет большие сообщения упираются в ограничения веб-сервера и прокси. Признак — первые обмены после долгого перерыва падают по таймауту, а небольшие проходят. Решение — синхронизироваться чаще, чтобы пакеты были меньше, или увеличить таймауты на веб-сервере.

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

Как держать обмен под контролем

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

  • 📆 Раз в день смотрите список настроек синхронизации: даты последнего обмена должны быть сегодняшними.
  • 🧮 Раз в месяц перед закрытием сверьте ключевые суммы в обеих базах: например, начисленную зарплату в ЗУП и отражение зарплаты в БП за тот же месяц, или выручку в УТ и в БП.
  • 📨 Настройте уведомления: в БСП есть оповещение о проблемах синхронизации для ответственного пользователя.
  • 🔒 После каждого восстановления из копии запускайте ручной обмен и сразу проверяйте предупреждения: так рассинхронизация номеров сообщений всплывёт в тот же день.
  • 🛠 После обновления любой из баз — один ручной обмен в обе стороны. Если обновлена только одна база, а формат обмена у второй старый, ошибки появятся в первый же сеанс.

Частые вопросы

Можно ли запускать синхронизацию, пока пользователи работают в базе?
Да. Обмен не требует монопольного доступа. Пользователи могут работать, но при загрузке большого пакета база будет отвечать медленнее, поэтому крупные обмены удобнее ставить на нерабочее время.
Почему одна и та же запись в журнале повторяется при каждом обмене?
Объект не загружается и остаётся зарегистрированным к отправке. Каждый следующий обмен снова пытается его передать. Исправьте причину в базе-получателе или в данных объекта — запись исчезнет после успешной загрузки.
Как понять, что база — подчинённый узел РИБ, а не обычный обмен?
В РИБ все базы имеют одну конфигурацию, и её изменения приходят только из главного узла. В списке настроек синхронизации такой узел обозначен как распределённая информационная база, а обычный обмен — названием второй программы: «Зарплата и управление персоналом», «Управление торговлей» и т.п.
Что делать, если обмен с ЗУП перестал работать после обновления только БП?
Обновите вторую базу до релиза, который поддерживает тот же формат обмена, и выполните ручную синхронизацию. Если оба релиза актуальны, а ошибка осталась, проверьте журнал регистрации в базе-получателе.
Нужно ли сдвигать дату начала обмена, чтобы передать старые документы?
Только если это действительно требуется учёту. Сдвиг даты отправит все документы за добавленный период, включая те, что в базе-получателе уже вводили вручную, и даст дубли.