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

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

Планы обмена в 1С: как происходит обмен данными между базами

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

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

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

Обмен может выполняться через файлы (XML), через веб-сервисы, через COM-соединение или корпоративный сервис 1С:Предприятие через Интернет. Выбор транспорта зависит от топологии сети, объёма данных и требований к частоте синхронизации. Ниже разобраны все этапы: от создания узла до контроля результата.

Что такое план обмена и из чего он состоит

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

Ключевые свойства плана обмена — признак «Распределённая информационная база» и набор правил формирования сообщений. Если признак установлен, план используется для классической распределённой базы (РИБ) с жёсткой иерархией главный–подчинённый. Без этого признака план применяется для гибкого обмена между независимыми базами, часто совместно с типовыми правилами конвертации данных.

Каждый узел имеет уникальный код и наименование. Узел «Этот узел» (предопределённый элемент) описывает текущую базу — его код нельзя менять после начала обмена, иначе система перестанет сопоставлять сообщения. Остальные элементы справочника плана обмена — это соседние базы, с которыми идёт синхронизация.

Регистрация изменений: как платформа понимает, что выгружать

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

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

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

Зарегистрировать изменения можно и вручную — через обработку «Регистрация изменений для обмена данными» или программно методом ПланыОбмена.ЗарегистрироватьИзменения(). Это применяется для первоначальной выгрузки данных или принудительной повторной отправки объектов.

Нумерация сообщений и подтверждение приёма

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

Принимающая база, загрузив сообщение, формирует ответное сообщение, в заголовке которого указывает номер принятого пакета. Когда отправитель получает подтверждение, записи регистрации с этим номером окончательно удаляются. Так реализуется гарантированная доставка: если подтверждения нет, при следующем сеансе изменения будут отправлены повторно.

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

Как происходит выгрузка и загрузка данных

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

При выгрузке платформа читает таблицу регистрации, выбирает объекты и сериализует их в XML по правилам плана обмена или правилам конвертации данных. Файл сохраняется в каталог обмена, отправляется через веб-сервис или FTP — в зависимости от настроенного транспорта.

При загрузке платформа разбирает входящее сообщение, ищет соответствия объектов по уникальному идентификатору (GUID) и полям поиска, затем записывает данные в базу. Объекты, не найденные по идентификатору, ищутся по ключевым реквизитам (например, контрагент — по ИНН и КПП), чтобы избежать дублей.

Порядок сеанса обмена
  1. 1
    Платформа проверяет наличие входящих сообщений от узла
  2. 2
    Входящее сообщение загружается, объекты сопоставляются и записываются
  3. 3
    Формируется подтверждение с номером принятого сообщения
  4. 4
    Читается таблица регистрации изменений для узла
  5. 5
    Изменённые объекты выгружаются в новое сообщение с очередным номером
  6. 6
    Сообщение передаётся через настроенный транспорт
  7. 7
    Проверяется журнал регистрации и протокол обмена на предмет ошибок

Настройка обмена: пошаговый сценарий

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

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

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

Транспорты обмена: что выбрать

Способ передачи сообщений выбирается исходя из доступности баз друг для друга. Если обе базы в одной сети, достаточно общего сетевого каталога или прямого подключения. Для территориально разнесённых баз используют FTP, электронную почту или веб-сервисы.

Сравнение транспортов обмена

Локальный/сетевой каталог

Подходит для баз в одной сети. Простая настройка, но требует общего доступа к папке и не работает через интернет без VPN.

FTP

Подходит для разнесённых баз. Требует FTP-сервера и контроля прав доступа; файлы могут накапливаться при сбоях.

Веб-сервис

Прямая передача без промежуточных файлов. Требует публикации базы на веб-сервере и настройки аутентификации.

Прямое подключение (COM/EnterpriseData)

Онлайн-обмен без файлов. Зависит от доступности обеих баз одновременно; падение одной базы останавливает обмен.

Типичные ошибки и их последствия

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

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

Типичные ошибки
01
Пропуск этапа сопоставления при первичной настройке — появляются дубли справочников в обеих базах
02
Одинаковые префиксы у узлов — пересечение номеров документов и ошибки записи
03
Изменение кода узла после начала обмена — разрыв нумерации сообщений и потеря очереди изменений
04
Игнорирование протокола обмена — ошибки прав доступа и блокировок накапливаются незаметно
05
Ручное редактирование одного объекта в обеих базах — коллизии и непредсказуемое итоговое состояние данных

Как проверить, что обмен работает корректно

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

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

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

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

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

Номера отправленных и принятых сообщений растут после каждого сеанса

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

Номера не меняются или сброшены

Протокол обмена
Норма

Нет ошибок, все объекты загружены и выгружены

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

Ошибки прав доступа, блокировок или несопоставленных объектов

Тестовый документ
Норма

Созданный документ появляется во второй базе с теми же суммами и реквизитами

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

Документ отсутствует, задвоен или пришёл с искажёнными данными

Количество зарегистрированных изменений
Норма

После успешного обмена очередь изменений пустеет

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

Очередь постоянно растёт — изменения накапливаются без отправки

FAQ: частые вопросы о планах обмена

Чем план обмена отличается от правил конвертации данных?

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

Можно ли настроить обмен, если базы никогда не бывают доступны одновременно?

Да. Используйте файловый транспорт: через общий каталог, FTP или электронную почту. Одна база выгружает сообщение в файл, вторая забирает его в удобное время. Подтверждение приёма вернётся следующим сообщением — гарантия доставки при этом сохраняется.

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

Сначала остановите автоматический обмен, чтобы дубли не размножались. Затем используйте обработку поиска и замены дублирующихся значений: объедините дубли в один элемент, выбрав правильный по уникальному идентификатору из базы-источника. После устранения проверьте настройки полей поиска в правилах конвертации — обычно дубли возникают из-за незаполненных ИНН/КПП или отключённого поиска по GUID.

Как принудительно отправить объект, который не выгрузился?

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

Опасно ли удалять старые файлы сообщений из каталога обмена?

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

Почему регламентный обмен выполняется, но данные не приходят?

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

Итог

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

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