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

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

Как включить авторегистрацию изменений для обмена 1С

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

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

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

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

Как устроена авторегистрация и когда она нужна

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

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

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

Условия, без которых авторегистрация не сработает

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

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

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

Включение авторегистрации в типовых конфигурациях

В типовых решениях на базе БСП (Библиотека стандартных подсистем) — «Управление торговлей», «ERP», «Бухгалтерия», «Зарплата и управление персоналом» — настройка ведётся через раздел синхронизации данных. Общий порядок такой:

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

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

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

Отбор объектов в правилах синхронизации

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

Программное включение и управление регистрацией

Для задач обслуживания и интеграции регистрацией изменений управляют через встроенный язык. Основные методы объекта ПланыОбменаМенеджер — ЗарегистрироватьИзменения, УдалитьРегистрациюИзменений и ВыбратьИзменения. Они позволяют вручную зарегистрировать объект для узла, снять регистрацию или получить выборку зарегистрированных изменений.

Типовой пример — массовая регистрация всех элементов справочника для узла при первичной настройке обмена или после восстановления базы из копии:

bsl
Узел = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоКоду("002");
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    ПланыОбмена.ЗарегистрироватьИзменения(Узел, Выборка.Ссылка);
КонецЦикла;

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

Начальная выгрузка и регистрация существующих данных

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

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

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

Проверка того, что авторегистрация работает

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

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

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

Запись об изменении в форме узла
Норма

Изменённый объект появился в списке зарегистрированных изменений

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

Объект отсутствует — проверяйте состав плана обмена и отборы

Фактическая выгрузка
Норма

После сеанса обмена объект появился в базе-приёмнике

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

Объект зарегистрирован, но не выгружается — смотрите отборы правил и журнал обмена

Снятие регистрации
Норма

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

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

Регистрация копится — обмен не выполняется или завершается с ошибкой

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

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

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

Типичные ошибки
01
Объект не включён в состав плана обмена — изменения не регистрируются вообще, и администратор долго ищет проблему в настройках узла.
02
Путаница между регистрацией и выгрузкой: объект зарегистрирован, но отсекается отбором по дате или организации — в приёмнике его не будет, хотя регистрация есть.
03
Ручная загрузка данных без ОбменДанными.ОтправкаДанных.Пропустить — загруженные объекты регистрируются обратно, базы начинают бесконечно пересылать одни и те же данные.
04
Восстановление базы из старой копии без переустановки номеров сообщений обмена — узел считает часть данных уже отправленной, изменения теряются.
05
Удаление и пересоздание узла без начальной выгрузки — существующие данные не попадают в обмен, синхронизируются только новые изменения.

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

Когда авторегистрацию стоит ограничить или заменить

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

Маршрут решения

Как выбрать действие

Обмен должен передавать все изменения без участия пользователейИспользуйте штатную авторегистрацию плана обмена с настроенным расписанием синхронизации
В обмен должны попадать только часть объектовОставьте авторегистрацию включённой и настройте отборы в правилах отправки данных
Данные загружаются массово и не должны уходить в другие узлыПри записи устанавливайте ОбменДанными.ОтправкаДанных.Пропустить = Истина
Регистрация потеряна после восстановления из копииВыполните повторную регистрацию изменений для узла через обработку регистрации или начальную выгрузку

Для интеграций, где план обмена избыточен (например, разовая выгрузка во внешнюю систему), иногда рациональнее использовать собственные механизмы выгрузки. Но для регулярной двусторонней синхронизации между базами 1С план обмена с авторегистрацией остаётся штатным и самым надёжным решением.

Итог

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

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

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

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

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

Документ изменили, но в списке зарегистрированных он не появился. В чём причина?

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

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

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

Влияет ли авторегистрация на производительность базы?

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

Можно ли отключить авторегистрацию для отдельного узла?

Штатного переключателя «выключить авторегистрацию» у узла нет — регистрация определяется составом плана обмена. Фактически отключить передачу можно отборами в правилах отправки (ничего не выгружать) или удалением узла, если обмен с этой базой больше не нужен. Для разовой блокировки при программной записи используйте ОбменДанными.ОтправкаДанных.Пропустить.

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

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