Рассмотрим ситуацию, с которой часто сталкиваются специалисты при настройке синхронизации между конфигурациями на платформе 1С:Предприятие (например, между «1С:Управление торговлей» и «1С:Бухгалтерия предприятия»). Настроен односторонний обмен через FTP-каталог или сетевую папку. Выгрузка из базы-источника проходит успешно, файл формируется и появляется в нужной папке (например, с именем Message_УТ_ОП.xml). Однако база-приемник отказывается его загружать, выдавая ошибку вида:
«Обработка: ТранспортСообщенийОбменаFILE: В каталоге обмена информацией не был обнаружен файл сообщения с данными. Каталог обмена информацией: "W:\obmen" Имя файла сообщения обмена: "Message*_1fb34ad3-7dfa-4034-af29-452388c06db4_ОП.xml"»
Проанализируем эту ситуацию. Мы видим явное несовпадение ожиданий: источник отправляет файл, где код узла — это привычный строковый префикс УТ, а приемник отчаянно ищет файл, где вместо кода источника фигурирует длинный уникальный идентификатор (GUID) 1fb34ad3-7dfa-4034-af29-452388c06db4. Разберем по шагам, откуда берутся эти длинные имена, почему ручное переименование не помогает и как навсегда «подружить» базы.
Если мы зайдем в план обмена в базе-приемнике и вручную изменим поле «Код узла» с непонятного GUID на нужный нам префикс УТ, то первый же сеанс обмена может пройти успешно. Но затем мы с удивлением обнаружим, что код узла снова самостоятельно перезаписался на GUID. Посмотрим, почему так происходит.
Описанное поведение — это не баг, а задокументированный механизм Библиотеки стандартных подсистем (БСП). В определенный момент фирма «1С» изменила логику формирования кодов узлов в планах обмена при переходе на универсальный формат EnterpriseData (начиная с версии формата 1.9). Строковые префиксы (например, УТ или БП) перестали удовлетворять требованиям масштабируемости, так как при настройке сложных распределенных баз данных возникали коллизии имен (разные базы могли иметь одинаковые префиксы). Для этой задачи есть настройка стабильной синхронизации по EnterpriseData.
Чтобы избежать дублирования узлов, алгоритмы 1С стали использовать уникальные идентификаторы (GUID). Процесс выглядит так:
В итоге, УТ выгружает данные с префиксом, а БП после обновления требует файлы с GUID. Возникает тупик синхронизации.
Рассмотрим два самых действенных способа исправить этот сбой, не прибегая к сложной модификации кода конфигурации или используя готовые правила обмена для УТ 11 и БП 3.0 (для этого подойдёт альтернативный перенос документов из УТ в БП).
Это быстрое и эффективное решение, если вы не хотите полностью пересоздавать настройки синхронизации.
Если понижение формата не дало результатов, самым надежным, «чистым» решением станет перенастройка обмена с нуля. Под капотом 1С сопоставление узлов привязывается к системным регистрам (бывает, что обмен переполнен документами и не может быть выгружен в адекватное время). (например, регистр сведений ПубличныеИдентификаторыСинхронизируемыхОбъектов). Когда база ловит "клин" между префиксами и GUID, эти регистры могут содержать противоречивую информацию.
Если вы исключили проблему с подменой имени файла из-за GUID (имена файлов, которые ищет БП и которые формирует УТ, абсолютно идентичны), но ошибка «В каталоге обмена информацией не был обнаружен файл...» всё равно появляется, обратите внимание на следующие внешние факторы:
Message_...xml может блокироваться для проверки, моментально удаляться или помещаться в карантин. Попробуйте добавить каталог обмена в исключения антивируса.USR1CV8). Убедитесь, что у этого пользователя есть полные права на чтение и запись в папку обмена (настройка разрешений NTFS на уровне Windows).Следуя этим шагам, вы сможете точно локализовать проблему и восстановить штатную работу обмена данными между вашими информационными базами 1С.