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