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