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