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