Как правильно удалить узел плана обмена в 1С:Бухгалтерия 2.0?

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

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

Причины, препятствующие удалению узла плана обмена

Выясним, какие технические факторы блокируют удаление узла:

  1. Наличие зарегистрированных изменений. В процессе работы обмена для узла накапливаются записи в таблицах регистрации изменений (документы, справочники, регистры). Пока эти записи существуют, платформа не даст физически удалить узел.
  2. Записи в технических регистрах сведений. Ссылка на узел сохраняется в сопутствующих регистрах, таких как Соответствие объектов для обмена, Состояния обменов данными, Настройки выполнения обменов.
  3. Ограничения платформы для предопределенных элементов. Предопределенный узел Этот узел (обозначающий текущую информационную базу) удалить физически нельзя — это жесткое ограничение платформы 1С.

Шаг 1. Снятие регистрации изменений с узла

Перед тем как удалять сам узел, необходимо обязательно очистить все накопленные для него изменения. Сделать это можно двумя способами:

Способ 1. С помощью типовой обработки

Откроем обработку Регистрация изменений для обмена данными, выберем нужный узел плана обмена и выполним команду отмены регистрации для всех объектов узла.

Способ 2. Программный сброс регистрации

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


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

Шаг 2. Поиск и устранение ссылок на узел

После снятия регистрации изменений найдем все оставшиеся в базе ссылки на удаляемый узел. Для этого разберем применение внешних обработок с диска ИТС:

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

Шаг 3. Удаление узла плана обмена

Когда все ссылки очищены и регистрация снята, перейдем к непосредственному удалению элемента.

Интерактивное удаление:

В форме списка плана обмена воспользуемся пунктом меню Действия → Удалить непосредственно (если у пользователя есть соответствующие права в роли) либо стандартно пометим элемент на удаление и запустим процедуру Удаление помеченных объектов.

Программное удаление:

Если требуется удалить узел программно, применим следующий алгоритм:


ОбъектУзел = СсылкаНаУзел.ПолучитьОбъект();
ОбъектУзел.Удалить();

Особый случай: отключение главного узла РИБ

Если удаляемый узел являлся главным в распределенной информационной базе (РИБ), перед его удалением или отсоединением базы от РИБ необходимо программно сбросить признак главного узла:

ПланыОбмена.УстановитьГлавныйУзел(Неопределено);

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

← На главную