Узлы плана обмена в 1С 8.3: от синхронизации в типовой базе до кода

· 9 мин

Содержание

Чтобы создать узел в 1С 8.3 в типовой конфигурации, откройте Администрирование → Синхронизация данных, включите флажок синхронизации, задайте префикс базы и нажмите Новая синхронизация данных. Мастер сам создаст узел плана обмена в обеих базах и сопоставит их. Вручную, через список плана обмена, узлы создают только в собственных конфигурациях.

Частая ошибка новичков — создать узел «как элемент справочника» в типовой базе через Все функции и ждать, что обмен заработает. Не заработает: у узла не будет настроек транспорта, правил и пары во второй базе. Узел работает только в паре: по одному в каждой базе, с совпадающими кодами.

Что такое узел плана обмена и зачем он нужен

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

У каждого плана обмена есть предопределённый узел «Этот узел». Он обозначает текущую базу. Остальные узлы — это корреспонденты.

Что даёт узел:

  • 📌 Регистрацию изменений. Платформа запоминает, какие объекты изменились с прошлого обмена, отдельно для каждого узла.
  • 🔢 Нумерацию сообщений. У узла есть номер отправленного и номер принятого сообщения. По ним платформа понимает, что корреспондент уже получил, и не гоняет данные повторно.
  • 🧭 Адрес для отбора. По реквизитам узла можно ограничить состав данных: например, только одна организация или один склад.

Без узла обменяться можно только «вслепую» — каждый раз выгружать всё целиком. С узлом выгружаются только изменения.

Виды узлов: что выбрать под задачу

Тип узла задаёт сам план обмена, а не отдельная галочка у узла. Выбор зависит от того, одинаковые ли конфигурации у баз.

СценарийЧто используетсяКогда подходит
Распределённая информационная база (РИБ)План обмена с флажком «Распределенная информационная база»Одинаковая конфигурация: главная база и филиалы, ноутбук выездного сотрудника
Обмен между разными конфигурациямиПлан обмена без флажка РИБ, правила конвертации или формат EnterpriseDataУТ 11 → БП 3.0, ЗУП 3.1 → БП 3.0, Розница → УТ
Обмен с внешней системойСвой план обмена и узел на каждую системуСайт, мобильное приложение, складская программа

Ключевая разница. В РИБ подчинённый узел получает и данные, и изменения конфигурации от главного. Конфигурацию в подчинённом узле менять нельзя, только принимать. В обмене между разными конфигурациями каждая база живёт своей жизнью, а данные переводятся по правилам.

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

Как создать узел в типовой конфигурации через мастер

Путь одинаковый для БП 3.0, ЗУП 3.1, УТ 11 и других конфигураций на БСП. Различается только список доступных вариантов обмена.

Что подготовить заранее

Проверьте до запуска мастера:

Перед созданием узла
Выполнено: 0 / 6

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

Шаг 1. Включить синхронизацию

  1. Откройте Администрирование → Синхронизация данных.
  2. Установите флажок Синхронизация данных.
  3. В поле Префикс этой информационной базы укажите префикс.

Шаг 2. Запустить мастер

  1. Нажмите Настройки синхронизации данных.
  2. Нажмите Новая синхронизация данных.
  3. Выберите вариант: конфигурацию-корреспондента (например, «Управление торговлей, ред. 11») или распределённую информационную базу.

Шаг 3. Выбрать способ связи

Мастер предложит подключение. Варианты зависят от релиза, но обычно это:

  • 🔌 прямое подключение к другой базе (файловой или на сервере 1С);
  • 📁 общий сетевой каталог;
  • 🌐 FTP или подключение через интернет к опубликованной базе.

При прямом подключении мастер сам создаст парный узел во второй базе. При обмене через каталог или FTP он выгрузит файл настроек: его нужно загрузить в мастере второй базы.

Шаг 4. Настроить отборы и выполнить первый обмен

  1. Укажите, с какой даты переносить данные и по каким организациям.
  2. Выполните сопоставление справочников. На первом обмене это самый важный шаг: контрагенты и номенклатура, которые уже есть в обеих базах, нужно связать, иначе появятся дубли.
  3. Запустите синхронизацию.

После этого в списке настроек синхронизации появится строка — это и есть созданный узел. Посмотреть его как элемент плана обмена можно через Все функции → Планы обмена (команда Все функции включается в Сервис и настройки → Параметры).

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

После первой синхронизации не спешите отдавать базы пользователям. Проверьте три вещи:

  1. Количество. Откройте в обеих базах список контрагентов и номенклатуры с отбором по дате создания. Если в приёмнике элементов вдвое больше, чем ожидали, — сопоставление прошло не полностью.
  2. Номера документов. Создайте тестовый документ в каждой базе и посмотрите номер: в нём должен стоять префикс своей базы.
  3. Обратное направление. Измените один элемент во второй базе, запустите синхронизацию и убедитесь, что изменение вернулось. Так видно, что пара узлов связана в обе стороны, а не только «туда».

Тестовые документы потом пометьте на удаление в обеих базах.

Отдельно: подчинённый узел РИБ и начальный образ

Для РИБ узел создаётся в главной базе, а сама подчинённая база получается из начального образа. В мастере синхронизации после выбора варианта РИБ появится шаг создания начального образа: укажите каталог для новой файловой базы или параметры серверной.

Не копируйте файл базы вместо создания начального образа. Копия не знает, что она подчинённый узел, и обмен с ней не пойдёт.

Как создать узел вручную в своей конфигурации

Этот путь нужен разработчику, когда план обмена добавлен в нетиповую конфигурацию.

В Конфигураторе

  1. В дереве метаданных откройте ветку Общие → Планы обмена и добавьте план обмена.
  2. Если нужна РИБ — установите флажок Распределенная информационная база.
  3. На закладке Основные откройте Состав и отметьте объекты, которые участвуют в обмене. Для каждого задайте Авторегистрация: Разрешить — изменения регистрируются сами, Запретить — регистрация только кодом.
  4. Обновите конфигурацию базы данных (F7).

В режиме 1С:Предприятие

  1. Откройте Все функции → Планы обмена → <ваш план>.
  2. Откройте узел «Этот узел» (он выделен значком) и заполните Код и Наименование. Пустой код у «Этого узла» — источник ошибок при загрузке сообщений.
  3. Создайте новый узел для корреспондента: код, наименование, при необходимости — реквизиты для отбора.

Код узла во второй базе должен совпадать: узел «Склад» с кодом СК в базе офиса соответствует «Этому узлу» с кодом СК в базе склада.

Программно

Узел = ПланыОбмена.ОбменСоСкладом.СоздатьУзел();
Узел.Код = "СК";
Узел.Наименование = "Удалённый склад";
Узел.Записать();

Начальный образ подчинённой базы РИБ создаётся методом платформы:

ПланыОбмена.СоздатьНачальныйОбраз(Узел, "File=""D:\Bases\Sklad"";");

Метод выполняется на сервере. Каталог должен быть пустым или не существовать.

Правила обмена и регистрация изменений

Узел сам по себе ничего не переносит. Что и как попадёт в другую базу, определяют два механизма.

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

Правила конвертации. В РИБ правила не нужны: объекты переносятся как есть. Между разными конфигурациями данные переводятся:

  • 📦 через универсальный формат EnterpriseData — в актуальных типовых связках (УТ — БП, ЗУП — БП) он встроен, ничего загружать не нужно;
  • 🛠 через правила, разработанные в конфигурации «Конвертация данных » — для нетиповых сценариев и собственных конфигураций.
Какие правила нужны вашему узлу?

Обмен по расписанию

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

Под капотом работает регламентное задание. Отсюда важные ограничения:

  • 🖥 Клиент-серверная база. Регламентные задания выполняет сервер 1С. Проверьте, что в свойствах информационной базы в консоли кластера не установлена Блокировка регламентных заданий.
  • 📂 Файловая база. Регламентные задания выполняются только при открытом сеансе пользователя. Нет запущенной 1С — нет обмена.

Разумная частота для офиса и склада — раз в 15-30 минут. Для пары «торговля — бухгалтерия» обычно хватает обмена раз в час или несколько раз в день: бухгалтеру не нужны изменения поминутно.

Не ставьте интервал меньше времени самого обмена. Если синхронизация длится 5 минут, а запускается каждые 2, задания будут наслаиваться и мешать пользователям.

Узел для сайта и внешней системы

Узел плана обмена полезен и тогда, когда второй стороны-1С нет. Схема простая:

  1. Создайте план обмена, например «ОбменССайтом», и включите в состав номенклатуру, цены, остатки.
  2. Создайте один узел — «Сайт».
  3. Внешняя система по расписанию обращается к HTTP-сервису 1С.
  4. HTTP-сервис выбирает изменения по узлу (ПланыОбмена.ВыбратьИзменения), отдаёт их в JSON или XML и после подтверждения снимает регистрацию.

Так сайт получает только то, что изменилось, а не весь каталог на 20 000 позиций при каждом запросе.

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

Ошибки при создании узла и как их исправить

Диагностика: выберите симптом

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

Можно ли удалить узел плана обмена?
Можно, но вместе с ним теряется регистрация изменений и номера сообщений. Если обмен потом понадобится, придётся настраивать его заново и снова сопоставлять данные. В типовых конфигурациях удаляйте настройку синхронизации из списка настроек, а не узел напрямую.
Сколько узлов может быть в одном плане обмена?
Платформа жёстко не ограничивает. На практике упирается в производительность: каждый узел добавляет записи регистрации при каждом изменении объекта.
Чем «Этот узел» отличается от остальных?
Он обозначает текущую базу, создаётся автоматически, удалить его нельзя. Изменения для него не регистрируются.
Можно ли превратить обычную копию базы в подчинённый узел РИБ?
Штатно — нет. Подчинённую базу создают из начального образа главного узла.
Нужен ли программист, чтобы создать узел в типовой конфигурации?
Нет, если нужная связка есть в мастере синхронизации. Программист нужен для доработанных конфигураций и обмена с внешними системами.