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