К статье
Практический материал

Администрирование · 10 мин

Как проверить синхронизацию баз 1С

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

Синхронизация между базами 1С — основа обмена данными между конфигурациями: например, между «Управление торговлей» и «Бухгалтерия предприятия», центральным офисом и филиалами, 1С и интернет-магазином. Если обмен работает некорректно, в одной базе появляются документы, которых нет в другой, справочники расходятся, а отчёты показывают разные цифры. Регулярная проверка синхронизации позволяет заметить проблему до того, как расхождения повлияют на учёт.

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

Что считается успешной синхронизацией

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

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

Проверка журнала регистрации и ошибок обмена

Первый шаг диагностики — открыть журнал регистрации (Администрирование → Обслуживание → Журнал регистрации) и отфильтровать события по ключевым словам «Обмен данными», «Синхронизация данных» и по пользователю, от имени которого выполняется обмен. Ошибки обычно имеют уровень «Ошибка» и содержат текст с указанием объекта, который не удалось записать.

Типичные записи об ошибках: «Конфликт блокировок при выполнении транзакции», «Ошибка при вызове метода контекста (Записать)», «Значение поля не может быть пустым». Первая означает, что объект был занят другим пользователем — обычно решается повторным обменом. Вторая и третья указывают на проблему с данными или правилами конвертации.

Также проверьте встроенный механизм контроля: в разделе синхронизации данных есть кнопка «События отправки и получения данных» (в типовых конфигурациях на базе БСП), где показаны даты последних сеансов и их результат. Если последний успешный обмен был давно, а расписание активно — регламентное задание не выполняется.

Сравнение данных в двух базах

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

bsl
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ КОЛИЧЕСТВО(РеализацияТоваровУслуг.Ссылка) КАК Количество ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.Дата МЕЖДУ &Начало И &Конец";
Запрос.УстановитьПараметр("Начало", НачалоМесяца(ТекущаяДатаСеанса()));
Запрос.УстановитьПараметр("Конец", КонецМесяца(ТекущаяДатаСеанса()));
Результат = Запрос.Выполнить().Выгрузить();

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

Контрольные точки

Как проверить результат

Количество документов за период
Норма

Числа совпадают в обеих базах

Тревожный признак

Разница растёт от месяца к месяцу

Очередь сообщений обмена
Норма

Очередь пуста, сообщения доставлены

Тревожный признак

Накоплены неотправленные или непринятые сообщения

Итоги контрольного отчёта
Норма

Суммы совпадают до копейки

Тревожный признак

Расхождение даже на небольшую сумму

Журнал регистрации
Норма

События обмена без уровня «Ошибка»

Тревожный признак

Регулярные ошибки записи объектов

Если расхождение найдено, локализуйте его: сузьте период до дня, затем сравните списки документов за этот день. Чаще всего «потерянный» объект либо не зарегистрирован к обмену, либо упал с ошибкой при загрузке.

Проверка очереди сообщений и регистрации изменений

При обмене через каталог, FTP или веб-сервис данные передаются сообщениями (файлами XML). Если сообщение не доставлено или не обработано, изменения «зависают» в очереди. Проверьте каталог обмена: наличие старых файлов Message_* означает, что приём или отправка не отработали.

Второй механизм — регистрация изменений на узле плана обмена. Объект, изменённый в базе, регистрируется к выгрузке и снимается с регистрации после успешной отправки. Зависшие регистрации видны через обработку «Регистрация изменений для обмена данными»: откройте её, выберите узел и посмотрите, какие объекты ожидают выгрузки и с каким номером сообщения.

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

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

Типичные причины расхождений

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

Вторая группа причин — ошибки загрузки конкретных объектов: незаполненные обязательные реквизиты, отсутствие связанного элемента справочника в базе-приёмнике, конфликт по уникальному идентификатору. Такие объекты видны в журнале регистрации и в протоколе обмена.

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

Типичные ошибки
01
Полный перезапуск обмена при первом расхождении — приводит к дублям и долгой выгрузке вместо точечного исправления
02
Сравнение всех данных подряд, включая объекты, не входящие в план обмена, — ложные выводы о проблеме
03
Игнорирование ошибок в журнале регистрации, если обмен формально «выполняется» — расхождения накапливаются незаметно
04
Ручное редактирование объектов в базе-приёмнике без понимания приоритета версий — изменения затираются следующим обменом

Как устранить найденные расхождения

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

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

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

Маршрут решения

Как выбрать действие

Одиночные объекты отсутствуют в приёмникеЗарегистрируйте их к обмену вручную и выполните сеанс синхронизации
Ошибки записи объектов в журнале регистрацииИсправьте данные объекта (заполните реквизиты, восстановите связи) и повторите обмен
Накопились файлы сообщений в каталоге обменаПроверьте доступность каталога и права пользователя, затем выполните обмен вручную
Массовые дубли справочников после обменаИспользуйте сопоставление объектов и удаление дублей, затем перенастройте правила конвертации
Расхождения появляются регулярно без ошибок в журналеПроверьте отборы плана обмена и дату начала выгрузки данных

Регулярный контроль: что встроить в практику

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

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

Итог

Что важно запомнить

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

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

Как быстро понять, работает ли синхронизация прямо сейчас?

Откройте настройки синхронизации данных и посмотрите дату и результат последнего сеанса. Затем выполните обмен вручную кнопкой «Выполнить обмен данными»: если сеанс завершился без предупреждений, а контрольный тестовый объект появился во второй базе, обмен работает.

Количество документов в базах разное, но ошибок нет. Почему?

Наиболее вероятная причина — отборы плана обмена: часть документов не попадает под правила регистрации (по дате, организации, виду документа). Откройте настройки узла обмена и проверьте состав выгружаемых данных и дату начала выгрузки.

Что делать, если в базе-приёмнике появились дубли контрагентов?

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

Можно ли проверить синхронизацию без прав администратора?

Частично: пользователь с доступом к разделу синхронизации может посмотреть даты сеансов и сравнить отчёты в обеих базах. Но журнал регистрации, регистрация изменений и настройки плана обмена обычно требуют прав администратора.

Как часто нужно проверять синхронизацию?

Минимальный разумный режим — автоматические уведомления об ошибках плюс ежемесячная сверка контрольных отчётов. Если обмен критичен для ежедневной работы (например, заказы с сайта), контроль очереди сообщений стоит выполнять ежедневно.

Обмен остановился после обновления конфигурации. В чём причина?

После обновления могут измениться формат обмена или правила конвертации, а также требоваться обновление второй базы до совместимой версии. Проверьте версии формата обмена (EnterpriseData) в обеих конфигурациях и журнал регистрации на ошибки формата сообщения.