Как изменить длинные имена файлов обмена с GUID на короткие префиксы в 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При настройке синхронизации между современными конфигурациями, такими как Управление торговлей 11, Бухгалтерия предприятия 3.0 или ERP, специалисты часто сталкиваются с ситуацией, когда вместо привычных коротких имен файлов обмена (например, Message_ЦБ_БП) система генерирует файлы с очень длинными именами, содержащими GUID (например, Message_ЦБ_68b0d4c1-6347-4867-9441-8be4c3443539...). Рассмотрим подробнее, почему это происходит и как вернуть привычное именование файлов.

Выясняем причину появления GUID в именах файлов

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

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

Способ 1: Редактирование кода узла через «Служебную информацию»

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

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

Важно: Эту операцию необходимо выполнить в обеих базах одновременно. В базе УТ код узла-приемника должен совпадать с кодом узла-отправителя в базе БП, и наоборот.

Способ 2: Использование групповой обработки объектов

Если интерфейсные методы не помогают или объектов слишком много, проанализируем ситуацию с использованием системных обработок. В конфигурациях на управляемых формах стандартная обработка Групповое изменение реквизитов позволяет напрямую поменять значение кода узла.

Рассмотрим шаги по изменению через обработку:

  1. Откроем Групповое изменение реквизитов (через раздел Администрирование — Обслуживание).
  2. В поле «Выбирать элементы типа» укажем нужный нам План обмена.
  3. Нажмем кнопку «Дополнительные параметры» и установим флаг Показывать служебные реквизиты и Режим разработчика.
  4. В списке реквизитов найдем поле Код и пропишем новое значение (короткий префикс).
  5. Выполним изменение.

Помним, что после такого изменения 1С начнет искать и создавать файлы с новыми именами незамедлительно.

Способ 3: Анализ через регистр «Псевдонимы предопределенных узлов»

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


Запрос = Новый Запрос(
"ВЫБРАТЬ
|	ПсевдонимыПредопределенныхУзлов.КодУзла КАК КодУзла
|ИЗ
|	РегистрСведений.ПсевдонимыПредопределенныхУзлов КАК ПсевдонимыПредопределенныхУзлов
|ГДЕ
|	ПсевдонимыПредопределенныхУзлов.Корреспондент = &УзелИнформационнойБазы");

Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелКорреспондента);
ПсевдонимПредопределенногоУзла = "";
Выборка = Запрос.Выполнить.Выбрать();

Если Выборка.Следующий() Тогда
    ПсевдонимПредопределенногоУзла = СокрЛП(Выборка.КодУзла);
КонецЕсли;

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

Критические риски и рекомендации

При ручном изменении имен файлов и кодов узлов мы должны учитывать следующие моменты:

Таким образом, мы разобрали, что управление именами файлов обмена сводится к управлению реквизитом Код соответствующего узла Плана обмена. Выбирайте наиболее удобный для вас метод — через интерфейс или через групповые обработки — и не забывайте о необходимости синхронного изменения настроек в обеих информационных базах.

← На главную