Администрирование · 11 мин
Как работает план обмена в 1С: устройство, настройка и практика
Как работает план обмена в 1С: регистрация изменений, узлы, сообщения обмена, настройка РИБ и обмена между базами, типичные ошибки и проверка результата.
План обмена — это объект метаданных в 1С, который описывает, какие данные и между какими узлами передаются при обмене между информационными базами. Именно он определяет состав данных (какие справочники, документы и регистры участвуют в обмене) и хранит структуру узлов — логических участников обмена. Без плана обмена механизмы синхронизации, включая распределённые информационные базы (РИБ), работать не могут.
Практический смысл плана обмена прост: когда пользователь изменяет документ или элемент справочника, система автоматически фиксирует этот факт в специальных таблицах регистрации изменений. При очередном сеансе обмена 1С формирует сообщение — XML-файл, содержащий только изменённые данные, — и передаёт его в другой узел. Та сторона читает сообщение, записывает данные и отправляет подтверждение приёма.
Такой механизм используется в самых разных сценариях: обмен между центральной базой и филиалами, синхронизация «Управления торговлей» с «Бухгалтерией», перенос данных в интернет-магазин, работа с периферийными базами РИБ. Понимание внутреннего устройства плана обмена помогает правильно настроить обмен, диагностировать сбои и не потерять данные при конфликтах.
Из чего состоит план обмена
Каждый план обмена содержит три ключевых элемента. Первый — состав: перечень объектов конфигурации (справочников, документов, регистров сведений и накопления), данные которых могут передаваться между узлами. Если объект не включён в состав плана обмена, его изменения никуда не уйдут — это частая причина «пропавших» документов.
Второй элемент — узлы. Узел — это логический участник обмена. В каждой базе есть предопределённый узел «Этот узел» (сама текущая база) и один или несколько узлов-корреспондентов. Узлы образуют топологию обмена: звезда, цепочка или произвольная структура. В РИБ топология жёстко иерархическая: главный узел и подчинённые.
Третий элемент — таблицы регистрации изменений. Для каждого узла система ведёт служебный учёт: какие объекты изменены и ещё не отправлены, какие номера сообщений отправлены и приняты. Именно эти таблицы позволяют передавать только отличия, а не всю базу целиком.
Как работает регистрация изменений
Когда пользователь записывает документ, входящий в состав плана обмена, платформа автоматически добавляет запись в таблицу регистрации изменений для каждого узла, куда этот объект должен быть отправлен. Запись содержит ссылку на объект и признак изменения. До момента выгрузки такие записи накапливаются.
При формировании сообщения обмена 1С выбирает все зарегистрированные изменения для конкретного узла, сериализует объекты в XML и присваивает сообщению порядковый номер. После успешной отправки регистрация изменений для этого узла очищается — но только после подтверждения приёма либо в зависимости от настроек механизма. Если сообщение не доставлено, изменения будут отправлены повторно в следующем сеансе.
Важно понимать: регистрация изменений — это не журнал на все случаи жизни, а очередь отправки. Если изменить один и тот же документ десять раз до обмена, в сообщение попадёт только его последнее состояние. Промежуточные версии не передаются.
Администратор может вручную управлять регистрацией: зарегистрировать объект повторно (например, чтобы принудительно выгрузить его заново) или удалить регистрацию, чтобы объект не уходил в другую базу. В типовых конфигурациях для этого есть обработка «Регистрация изменений для обмена данными».
Цикл обмена: выгрузка, передача, загрузка, подтверждение
Полный цикл обмена между двумя узлами состоит из четырёх шагов. На первом база-отправитель формирует сообщение обмена — файл XML с номером сообщения в имени или внутри пакета. На втором шаге файл передаётся в базу-получателя: через каталог обмена, FTP, электронную почту, веб-сервис или прямое подключение через COM/EnterpriseData.
На третьем шаге получатель читает сообщение: объекты записываются в базу, а в служебных таблицах фиксируется номер принятого сообщения. Если при записи объекта возникла ошибка (например, нарушена ссылочная целостность), она попадает в протокол обмена, а проблемный объект может быть отложен.
На четвёртом шаге получатель в своём ответном сообщении передаёт квитанцию — номер успешно принятого пакета. Отправитель, получив квитанцию, окончательно очищает регистрацию изменений. Пока квитанция не получена, данные считаются «в пути», и при сбое они будут отправлены заново — механизм номеров сообщений защищает от потерь и дублей.
- 1Создайте или проверьте план обмена: состав данных и список узлов
- 2Настройте транспорт: каталог обмена, FTP, почту или прямое подключение
- 3Выполните начальную выгрузку (создание начального образа для РИБ)
- 4Запустите первый сеанс обмена и проверьте протокол на ошибки
- 5Настройте расписание автоматического обмена и контроль квитанций
РИБ и универсальный обмен: в чём разница
План обмена лежит в основе двух разных подходов. РИБ (распределённая информационная база) — механизм платформы: все узлы имеют идентичную конфигурацию, обмен идёт «как есть», включая изменения конфигурации от главного узла к подчинённым. План обмена РИБ создаётся с признаком «Распределённая информационная база», а подчинённые базы разворачиваются из начального образа.
Универсальный обмен (через правила конвертации или формат EnterpriseData) применяется между разными конфигурациями — например, между «Управлением торговлей» и «Бухгалтерией предприятия». Здесь план обмена тоже регистрирует изменения, но преобразование данных выполняют правила обмена или механизмы БСП (библиотеки стандартных подсистем). Конфигурации баз могут отличаться.
Сравнение вариантов
Подходит для одинаковых конфигураций (центральный офис и филиалы). Передаёт изменения конфигурации, но требует строгой идентичности метаданных и начального образа.
Подходит для разных конфигураций и произвольной логики. Требует разработки и сопровождения правил, обновления при смене релизов.
Типовой обмен между продуктами 1С через стандартный XML-формат. Простая настройка, но ограничена поддерживаемыми объектами формата.
Настройка обмена на практике
В типовых конфигурациях настройка выполняется через раздел «Синхронизация данных»: выбирается программа-корреспондент, указывается способ подключения, настраиваются правила отправки и получения (фильтры по организациям, датам, складам). Под капотом мастер создаёт узлы плана обмена в обеих базах и заполняет параметры транспорта.
Особое внимание уделите начальной выгрузке. При первом запуске система должна передать в новую базу актуальный срез данных — справочники и остатки. Для РИБ это делается созданием начального образа подчинённого узла, для универсального обмена — выгрузкой с фильтрами по дате начала. Пропуск этого шага приводит к рассинхронизации с первого дня.
Для регулярной работы обмен ставится на расписание через регламентные задания. Рекомендуется выбирать интервал с запасом относительно длительности самого обмена и включать журналирование, чтобы по протоколу отслеживать ошибки и количество переданных объектов.
Диагностика проблем и типичные ошибки
Большинство проблем обмена видны в протоколе: зависшие сообщения, ошибки записи объектов, конфликты номеров сообщений. Первый шаг диагностики — открыть настройку синхронизации и посмотреть предупреждения, затем — регистрацию изменений: не копится ли очередь и не растёт ли она без отправки.
Конфликт «сообщение с меньшим номером» возникает, когда базы обменивались через промежуточные копии или был восстановлен архив. Лечится изменением номеров принятых и отправленных сообщений в узлах (в типовых — кнопка «Изменить номера сообщений») либо повторной регистрацией данных. Конфликты одновременного изменения одного объекта в двух базах в РИБ разрешаются приоритетом главного узла, в универсальном обмене — настройкой приоритета при загрузке.
Как проверить результат
Сеансы завершаются без ошибок, номера сообщений последовательно растут
Повторяющиеся ошибки записи объектов или предупреждения о конфликте номеров
После обмена очередь пуста или содержит только свежие изменения
Очередь стабильно растёт от сеанса к сеансу
Тестовый документ появляется в базе-корреспонденте с тем же номером и суммой
Документ отсутствует, дублируется или отличается по данным
Ограничения и безопасная работа
План обмена не заменяет резервное копирование: сообщения обмена содержат только изменения, а не полное состояние базы. Также обмен не гарантирует мгновенной консистентности — между сеансами базы неизбежно расходятся, и отчёты по двум базам в один момент времени могут отличаться.
При больших объёмах изменений следите за размером таблиц регистрации: они могут существенно раздувать базу и замедлять работу. Полезно периодически проверять, нет ли «мёртвых» узлов, для которых регистрация копится, хотя обмен с ними фактически не ведётся, — такие узлы следует корректно удалить после обследования.
Что важно запомнить
План обмена — это состав данных, узлы и регистрация изменений. Обмен идёт циклами «сообщение — квитанция», диагностируется по протоколу и очереди регистрации, а любые действия с узлами и номерами сообщений требуют предварительной резервной копии.
Частые вопросы
Чем узел плана обмена отличается от самого плана обмена?
План обмена — это описание механизма: состав данных и правила топологии. Узел — конкретный участник обмена внутри этого плана, со своим кодом и счётчиками сообщений. Один план обмена обычно содержит несколько узлов.
Почему документ не уходит в другую базу, хотя обмен работает?
Чаще всего объект не зарегистрирован к отправке: он не входит в состав плана обмена, не проходит по фильтрам правил отправки (дата, организация) или регистрация была удалена вручную. Проверьте состав плана и принудительно зарегистрируйте объект через обработку регистрации изменений.
Что делать при ошибке «принято сообщение с меньшим номером»?
Это конфликт номеров сообщений, обычно после восстановления базы из архива. В типовых конфигурациях откройте настройку синхронизации и скорректируйте номера отправленных и принятых сообщений в соответствующих узлах, затем повторите обмен. Перед корректировкой сделайте резервную копию.
Можно ли обмениваться между базами с разными конфигурациями через план обмена?
Да, но не через РИБ — она требует идентичных конфигураций. Для разных конфигураций используется универсальный обмен: план обмена регистрирует изменения, а преобразование выполняют правила конвертации данных или формат EnterpriseData.
Нужно ли чистить таблицы регистрации изменений?
Регистрация очищается автоматически после подтверждённой отправки. Ручная чистка нужна только для неиспользуемых узлов или при накоплении ошибочной очереди — и выполняется она через штатные средства (удаление регистрации, удаление узла), а не прямым вмешательством в таблицы.
Передаёт ли план обмена удаление объектов?
Да, удаление объектов регистрируется и передаётся, но с ограничениями: в типовых обменах часто действуют настройки, запрещающие удаление, а помеченные на удаление объекты могут передаваться только как пометка. Физическое удаление обычно выполняется регламентно в каждой базе отдельно.