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

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

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

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

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

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

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

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

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

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

Подготовка: что сделать до очистки

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

Сделайте резервную копию информационной базы. Для файловой базы достаточно скопировать файл 1Cv8.1CD при остановленной работе пользователей, для клиент-серверной — выполнить выгрузку в dt или средствами СУБД.

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

Способ 1. Очистка через стандартную обработку

В типовых конфигурациях на базе БСП (Управление торговлей, ERP, Бухгалтерия и другие) есть встроенная обработка «Регистрация изменений для обмена данными». Она открывается из настроек синхронизации: в форме настройки обмена — кнопка «Ещё» или ссылка «Регистрация изменений», в зависимости от версии конфигурации.

Порядок действий в обработке:

Очистка через обработку
  1. 1
    Откройте настройку синхронизации данных и перейдите к обработке регистрации изменений
  2. 2
    Выберите узел обмена, по которому нужно удалить регистрацию
  3. 3
    Отметьте объекты: можно снять регистрацию по всем типам или выборочно по справочникам и документам
  4. 4
    Нажмите команду удаления регистрации (Удалить регистрацию / Нет в подменю регистрации)
  5. 5
    Дождитесь завершения и проверьте, что счётчик зарегистрированных объектов обнулился

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

Способ 2. Программная очистка через код

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

bsl
// Полная очистка регистрации по узлу
Узел = ПланыОбмена.ОбменССайтом.НайтиПоКоду("000000002");
ПланыОбмена.УдалитьРегистрациюИзменений(Узел);

// Очистка только по одному типу метаданных
ПланыОбмена.УдалитьРегистрациюИзменений(Узел, Метаданные.Справочники.Номенклатура);

Код выполняется в консоли кода (внешняя обработка «Консоль кода» из инструментов разработчика) или через временное регламентное задание. Выполняйте его под пользователем с правами администратора и при отсутствии активных сеансов обмена, чтобы не получить конфликт блокировок.

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

Способ 3. Удаление узла плана обмена

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

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

Сравнение способов очистки

Какой способ выбрать

Обработка «Регистрация изменений»

Подходит для разовой точечной очистки без программирования. Ограничение: доступна только в конфигурациях на БСП и требует ручного запуска.

Код УдалитьРегистрациюИзменений

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

Удаление узла обмена

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

Проверка результата и типичные ошибки

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

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

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

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

Счётчик зарегистрированных объектов по узлу
Норма

Ноль или единичные свежие записи

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

Тысячи записей сразу после очистки — регистрация продолжается массово, ищите причину в регламентных заданиях

Время выполнения выгрузки
Норма

Обмен завершается быстро, сообщение компактное

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

Выгрузка по-прежнему длительная — возможно, очередь накапливается в другой базе

Данные в приёмнике
Норма

Актуальные объекты на месте, расхождений нет

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

Отсутствуют документы или элементы справочников — нужна повторная регистрация и выгрузка

Как не допустить переполнения очереди в будущем

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

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

Итог

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

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

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

Восстановится ли регистрация изменений после очистки?

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

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

Нет. Очищаются только служебные записи очереди обмена. Пользовательские данные — документы, справочники, движения — остаются нетронутыми.

Нужно ли останавливать работу пользователей при очистке?

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

Регистрация появляется снова сразу после очистки — это нормально?

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

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

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

Можно ли настроить автоматическую очистку регистрации?

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