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