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