При настройке обмена данными между конфигурациями 1С:Управление нашей фирмой (УНФ) и 1С:Бухгалтерия предприятия (БП), особенно в среде Linux (RedOS, Ubuntu) с использованием веб-сервера Apache, системные администраторы и программисты часто сталкиваются с неприятной ситуацией. Вместо корректных имен файлов обмена, содержащих префиксы баз (например, Message_NF_BP.xml), платформа генерирует файлы с вопросительными знаками: Message_??_??.xml. В результате принимающая база «не видит» эти файлы, и синхронизация прерывается.
Рассмотрим подробно природу этой проблемы и разберем по шагам методы ее решения, начиная от самых простых и заканчивая глубокой настройкой серверной части.
Проанализируем ситуацию: платформа 1С при формировании сообщения обмена использует префиксы узлов, заданные в плане обмена. Если в качестве префиксов выбраны кириллические символы (например, «НФ» и «БП»), 1С пытается передать эти строки операционной системе для создания файла на диске.
В среде Linux, если веб-сервер Apache запущен с локалью по умолчанию (обычно это POSIX или C), он не поддерживает многобайтовые кодировки, такие как UTF-8, для операций с файловой системой. Когда 1С запрашивает создание файла с русскими буквами в названии, происходит ошибка интерпретации символов, и операционная система заменяет «непонятные» ей знаки на ??. Аналогичная проблема возникает и внутри самого XML-файла в заголовках msg:To и msg:From.
Самый быстрый и надежный способ исправить ситуацию — отказаться от кириллицы в технических идентификаторах обмена. Разберем, как правильно изменить префиксы, чтобы не нарушить работу уже настроенной синхронизации.
Важный момент: После смены префиксов в уже существующей настройке обмена, старые файлы в каталоге обмена перестанут подхватываться автоматически. Рекомендуем очистить папку обмена перед запуском первой синхронизации с новыми параметрами.
Если использование латиницы по каким-то причинам невозможно или вы хотите решить проблему глобально для всех баз на сервере, необходимо заставить Apache понимать кириллицу. Проанализируем процесс настройки переменных окружения в RedOS или других дистрибутивах на базе системного менеджера systemd.
Выполним следующие шаги в терминале сервера:
httpd или apache2):
sudo systemctl edit httpd
[Service] с указанием нужной локали:
[Service]
Environment="LANG=ru_RU.UTF-8"
Environment="LC_ALL=ru_RU.UTF-8"
sudo systemctl daemon-reload
sudo systemctl restart httpd
После этих манипуляций процесс httpd, в контексте которого работает расширение 1С, получит корректные настройки кодировки, и создание файлов с кириллическими именами станет возможным.
Рассмотрим альтернативный вариант, который полностью исключает проблему записи файлов на диск. Формат EnterpriseData позволяет настроить обмен через прямое подключение. В этом случае данные передаются через HTTP-запросы непосредственно из одной базы в другую.
Преимущества этого метода:
Для настройки выберем в помощнике синхронизации вариант «Подключение через веб-сервис». Вам потребуется опубликовать обе базы на веб-сервере и указать адрес публикации, логин и пароль пользователя с правами на выполнение синхронизации.
Стоит помнить, что при использовании универсального формата EnterpriseData (на котором построена синхронизация УНФ и БП), технические заголовки сообщения выглядят так:
<msg:Header>
<msg:Format>http://v8.1c.ru/edi/erp_exchange/EnterpriseData/1.15</msg:Format>
<msg:CreationDate>2023-10-27T12:00:00</msg:CreationDate>
<msg:From>NF</msg:From>
<msg:To>BP</msg:To>
</msg:Header>
Использование латиницы в тегах msg:From и msg:To является «золотым стандартом» разработки. Даже если ваша текущая ОС настроена корректно, при миграции баз на другой сервер или при обновлении платформы 1С кириллица может снова стать источником проблем. Поэтому мы рекомендуем всегда использовать латинские префиксы (например, UNF, ERP, Retail, Accounting).
Подводя итог, можно сказать, что проблема Message_??_??.xml — это классический конфликт кодировок между приложением и операционной системой. Чтобы избежать «ада» при настройке синхронизации:
apache (или www-data) к каталогам, где хранятся файлы обмена.Соблюдение этих простых правил сделает вашу работу с обменами 1С предсказуемой и надежной.