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

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

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

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

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

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

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

Что такое регистрация изменений и когда она нужна

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

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

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

Подготовка: что проверить перед регистрацией

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

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

Способ 1: регистрация через команды плана обмена

Самый простой путь — через форму узла плана обмена. Откройте раздел настройки синхронизации данных (в типовых конфигурациях это «Администрирование» → «Синхронизация данных» или «Обмен данными»), перейдите в список узлов плана обмена и откройте нужный узел-корреспондент.

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

Порядок действий в форме узла
  1. 1
    Откройте список узлов плана обмена и выберите узел-приёмник
  2. 2
    Вызовите команду регистрации изменений (в форме узла или меню «Ещё»)
  3. 3
    Выберите тип объекта «Документы» и нужный вид документа
  4. 4
    Задайте отбор по периоду и организации или добавьте документы вручную
  5. 5
    Подтвердите регистрацию и проверьте, что объекты появились в очереди с номером сообщения

Способ 2: типовая обработка «Регистрация изменений для обмена данными»

Когда нужно зарегистрировать много документов разных видов, удобнее универсальная обработка «Регистрация изменений для обмена данными» — она входит в состав Библиотеки стандартных подсистем и доступна в большинстве типовых конфигураций. В некоторых решениях её можно открыть из раздела обмена данными, в других — через «Файл» → «Открыть», если она поставляется как внешняя обработка.

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

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

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

Способ 3: программная регистрация через встроенный язык

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

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

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

Как проверить, что документ зарегистрирован

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

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

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

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

Документ в очереди изменений узла
Норма

Объект отображается в списке зарегистрированных с номером сообщения

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

Документа нет в списке — регистрация не выполнена

Выгрузка при синхронизации
Норма

В протоколе обмена объект числится выгруженным без ошибок

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

Ошибки конвертации или объект пропущен правилами

Документ в базе-приёмнике
Норма

Документ создан, реквизиты и движения совпадают

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

Документ отсутствует, не проведён или с пустыми ссылочными полями

Типичные ошибки и ограничения

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

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

Итог

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

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

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

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

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

Можно ли зарегистрировать все документы одного вида сразу?

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

Как отменить регистрацию документа, если он попал в очередь по ошибке?

В той же форме регистрации изменений выделите объект и выполните команду отмены регистрации. Программно используется метод ПланыОбмена.УдалитьРегистрациюИзменений() с указанием узла и ссылки. Отменять регистрацию нужно до момента выгрузки — после успешной отправки объект уже ушёл в приёмник.

Нужно ли регистрировать справочники вместе с документом?

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

Почему документ не регистрируется автоматически при записи?

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

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

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