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

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

Как работает регистрация изменений в 1С

Как устроена регистрация изменений в 1С: планы обмена, узлы, номера сообщений, состав объектов, настройка и типичные ошибки при обмене данными.

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

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

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

Что такое план обмена и узел

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

Узел плана обмена — это конкретная база-участник обмена. В каждой базе существует предопределённый узел «Этот узел», представляющий саму базу, и один или несколько узлов-корреспондентов, представляющих удалённые базы. Именно в разрезе узлов-корреспондентов платформа хранит очередь изменений: что нужно отправить конкретной базе.

Один и тот же объект может быть зарегистрирован сразу для нескольких узлов, если он входит в состав нескольких планов обмена или обмен настроен с несколькими базами. Удаление или изменение объекта отражается в очередях всех соответствующих узлов независимо друг от друга.

Как платформа регистрирует изменения

Регистрация происходит автоматически при записи объекта. Когда пользователь проводит документ, изменяет элемент справочника или записывает набор регистра, платформа проверяет, входит ли этот тип данных в состав какого-либо плана обмена. Если входит — объект помещается в очередь изменений для всех узлов, для которых действует регистрация.

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

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

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

Номера сообщений и подтверждение получения

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

Когда база А выгружает сообщение №5 в базу Б, изменения остаются зарегистрированными. База Б, получив и загрузив сообщение, при следующем обмене отправляет квитанцию с номером принятого сообщения. Только после получения этой квитанции база А снимает регистрацию изменений, вошедших в сообщение №5.

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

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

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

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

Программно регистрация выполняется методом ПланыОбмена.ЗарегистрироватьИзменения(Узел, Данные), а снятие — ПланыОбмена.УдалитьРегистрациюИзменений(Узел, НомерСообщения). Вызов без указания конкретных данных регистрирует или снимает все изменения по узлу, поэтому такие вызовы требуют осторожности.

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

Настройка состава и фильтров

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

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

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

Способы управления выгрузкой

Состав плана обмена

Задаётся разработчиком, определяет саму возможность регистрации типа данных. Изменение требует доработки конфигурации.

Авторегистрация

Включает автоматическое отслеживание изменений. Отключение переносит контроль на прикладной код.

Правила фильтрации

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

Ручная регистрация

Точечное добавление объектов в очередь. Подходит для разового восполнения пропусков, не масштабируется.

Типичные проблемы и их диагностика

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

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

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

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

Безопасное обслуживание механизма

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

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

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

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

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

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

Объект присутствует и исчезает после подтверждённого обмена

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

Объект остаётся после нескольких успешных обменов — не доходят квитанции

Размер файла сообщения
Норма

Соответствует объёму реальных изменений за период

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

Резко вырос без роста активности пользователей

Номера сообщений узла
Норма

Отправленный и принятый номера увеличиваются синхронно

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

Номер принятого не меняется длительное время

Ответы на частые вопросы

Почему изменения не снимаются с регистрации после выгрузки?

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

Как выгрузить объект, созданный до настройки обмена?

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

Можно ли отключить регистрацию для отдельного справочника?

Да, но только в конфигураторе: в составе плана обмена для нужного объекта установите авторегистрацию «Запретить» или исключите объект из состава. После этого потребуется обновление конфигурации базы данных.

Что делать, если очередь изменений выросла до миллионов записей?

Сначала выясните причину: неработающий обмен, неиспользуемый узел или отсутствие квитанций. Устраните причину, затем либо дождитесь постепенной выгрузки, либо, если данные в приёмнике не нужны, снимите регистрацию по проблемному узлу с предварительной резервной копией.

Чем регистрация изменений отличается от версионирования объектов?

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

Влияет ли регистрация изменений на производительность базы?

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

Итог

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

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