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