Как изменить или удалить код узла синхронизации в 1С:Управление торговлей 11.4

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе с механизмами синхронизации данных в 1С:Управление торговлей 11.4 администраторы часто сталкиваются с ситуацией, когда необходимо изменить код узла обмена. Это может потребоваться при случайной ошибке в префиксе, при создании копии базы для тестирования или при необходимости перенастроить существующий обмен через универсальный формат Enterprise Data. По умолчанию поле «Код» в плане обмена заблокировано для редактирования, так как оно напрямую влияет на идентификацию файлов обмена (например, Message_УТ_КТ.xml). В этой статье мы подробно разберем, как обойти это ограничение и корректно настроить обмен данными.

Метод 1: Использование типовой обработки «Редактирование реквизитов объектов»

Рассмотрим ситуацию, когда нам нужно изменить код узла через пользовательский интерфейс, не прибегая к написанию кода. В конфигурации Управление торговлей 11.4 (как и во многих других на базе БСП) присутствует встроенный инструмент для изменения заблокированных полей (существует также расширение для группового изменения реквизитов с формы).

Проанализируем шаги, которые необходимо выполнить:

  1. Откроем раздел НСИ и администрирование — Обслуживание — Корректировка данных.
  2. Найдем пункт Групповое изменение реквизитов (для продвинутых задач подойдет профессиональный менеджер редактирования данных).
  3. В поле «Выбирать элементы типа» выберем соответствующий план обмена. Чаще всего это Синхронизация данных через универсальный формат.
  4. Нажмем кнопку Добавить условие отбора и выберем конкретный узел, код которого мы хотим изменить.
  5. Перейдем в Дополнительные параметры (кнопка внизу или в меню) и установим флажок Показывать служебные реквизиты и Разрешить изменение специальных реквизитов объектов.
  6. В списке доступных для изменения полей найдем Код и введем новое значение.
  7. Нажмем Изменить реквизиты.

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

Метод 2: Программное изменение кода через консоль

Выясним, как можно изменить код узла максимально быстро, если у нас есть права разработчика. Для этого воспользуемся внешней обработкой «Консоль кода» или создадим временную обработку. Этот метод позволяет игнорировать любые запреты на уровне формы объекта ПланыОбмена.

Рассмотрим пример кода:


// Находим нужный узел по старому коду
УзелОбъект = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоКоду("СТАРЫЙ_КОД").ПолучитьОбъект();

Если УзелОбъект <> Неопределено Тогда
    // Устанавливаем новый код
    УзелОбъект.Код = "НОВЫЙ_КОД";
    
    // Записываем объект с отключением проверок, если это необходимо
    УзелОбъект.ОбменДанными.Загрузка = Истина;
    УзелОбъект.Записать();
    Сообщить("Код узла успешно изменен на: " + УзелОбъект.Код);
КонецЕсли;

Использование свойства ОбменДанными.Загрузка = Истина позволяет избежать выполнения некоторых встроенных проверок при записи, что полезно при работе со служебными справочниками и планами обмена.

Проблема идентичности баз при копировании (UUID)

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

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

  1. Разрыв связи с главным узлом: Если копия была создана из РИБ-системы, в ней может быть установлен признак подчиненного узла. Его нужно снять командой: ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
  2. Изменение идентификатора базы: В каждой базе есть константа, хранящая её уникальный ID для обмена. Проверьте настройки в меню НСИ и администрирование — Синхронизация данных. Убедитесь, что Префикс этой информационной базы в копии отличается от оригинала.

Очистка и проверка регистров сведений

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

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

2. Регистр сведений «Общие настройки узлов информационных баз». В этом регистре хранятся технические параметры: версии формата Enterprise Data, настройки транспорта (FTP, папка, почта). После изменения кода узла обязательно зайдите в настройки синхронизации и пересохраните параметры подключения.

Автоматизация синхронизации в пару кликов

Если ваша задача — разово или периодически переносить номенклатуру, штрихкоды и цены, не обязательно использовать внешние обработки типа ВыгрузкаЗагрузкаДанныхXML.epf, где нужно постоянно настраивать фильтры. Разберем более изящный способ через Регистрацию изменений:

  1. Зайдем в настройки синхронизации и нажмем кнопку Состав отправляемых данных (иконка с монитором).
  2. В открывшемся окне мы увидим все объекты, которые «ждут» отправки.
  3. Мы можем нажать правой кнопкой мыши на типе объекта (например, Номенклатура) и выбрать Зарегистрировать все объекты данного типа.
  4. Аналогично поступим со штрихкодами и ценами (регистры сведений).

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

Резюме

Для изменения кода узла в УТ 11.4 эффективнее всего использовать программный метод или типовую обработку группового изменения реквизитов. Однако помните, что для успешного обмена между «базой-оригиналом» и «базой-копией» критически важно настроить разные префиксы и убедиться в уникальности идентификаторов информационных баз.

← На главную