Как правильно перевести синхронизацию 1С с COM-соединения на веб-сервисы и исправить ошибку «Неправильное имя файла»?

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

Переход с классического COM-соединения на обмен данными через веб-сервисы — это важный шаг в развитии ИТ-инфраструктуры любого предприятия. Технология COM (Component Object Model) постепенно уходит в прошлое из-за сложностей с разрядностью систем (32/64 бит), необходимости регистрации библиотек comcntcfg и низкой стабильности в облачных средах. Веб-сервисы, напротив, работают через стандартные протоколы HTTP/HTTPS, что делает их универсальным инструментом для синхронизации между конфигурациями 1С:Бухгалтерия 3.0 и 1С:Зарплата и управление персоналом 3.0.

В этой статье мы подробно разберем, почему при простой смене способа подключения возникает ошибка «Неправильное имя файла», и как пошагово настроить стабильный обмен данными через интернет-соединение.

Почему возникает ошибка «Неправильное имя файла» при редактировании настройки

Разберем ситуацию: у вас уже настроена синхронизация через прямое подключение (COM). Вы заходите в существующий узел обмена и просто меняете «COM-соединение» на «Синхронизация через интернет». В этот момент система выдает ошибку. Выясним причину этого поведения.

Дело в том, что при создании настройки синхронизации 1С жестко прописывает параметры транспорта в регистры сведений, такие как РегистрСведений.ПараметрыШлюзаИнформационныхБаз или настройки в плане обмена. В этих записях сохраняются пути к локальным каталогам и имена файлов (например, Message_БП_ЗУП.xml). При смене типа транспорта на веб-сервис система пытается инициализировать старые объекты метаданных, которые больше не актуальны, но продолжают фигурировать в программном коде инициализации обмена.

Рекомендация: Никогда не пытайтесь «переключить» существующую настройку с COM на веб-сервис «на лету». Это приведет к конфликту параметров в базе данных. Правильный путь — создание новой настройки синхронизации с нуля, предварительно удалив или деактивировав старую.

Шаг 1: Подготовка веб-сервера и публикация базы

Прежде чем настраивать что-то в самой 1С, мы должны убедиться, что база-приемник доступна извне. Проанализируем процесс публикации на примере IIS (Internet Information Services):

  1. Откроем Конфигуратор от имени администратора.
  2. Перейдем в меню Администрирование — Публикация на веб-сервере.
  3. На вкладке Основные укажем имя публикации.
  4. На вкладке Веб-сервисы обязательно установим флажок напротив сервиса EnterpriseDataExchange. Именно этот сервис отвечает за современную синхронизацию в формате Enterprise Data (КД 3.0).
  5. Для старых типов обменов может потребоваться сервис Exchange, но для БП 3.0 и ЗУП 3.0 приоритетным является именно EnterpriseDataExchange.

Проверим работоспособность публикации. Введем в браузере адрес вида: http://имя_сервера/имя_базы/ws/EnterpriseDataExchange?wsdl. Если система запросила логин/пароль и выдала XML-код, значит, публикация прошла успешно.

Шаг 2: Настройка прав доступа

Для работы веб-сервиса нам понадобится технический пользователь. Не рекомендуется использовать учетную запись администратора с полными правами. Проанализируем необходимые роли:

Шаг 3: Создание новой настройки синхронизации

Теперь рассмотрим алгоритм создания подключения в интерфейсе 1С. Мы будем использовать механизм Enterprise Data, так как именно он лучше всего адаптирован под веб-протоколы.

В первой базе (например, ЗУП):

  1. Перейдем в Администрирование — Синхронизация данных.
  2. Нажмем «Настроить синхронизацию данных» и выберем «1С:Бухгалтерия предприятия, редакция 3.0».
  3. В мастере настройки выберем пункт «Синхронизация через интернет».
  4. Укажем адрес публикации базы БП, логин и пароль созданного ранее пользователя.

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

Шаг 4: Тонкая настройка веб-сервера для больших объемов данных

Часто при первой выгрузке данных (например, всей номенклатуры или кадровой истории) пользователи сталкиваются с обрывом соединения. Разберем, как этого избежать, подкрутив настройки IIS.

По умолчанию IIS ограничивает размер передаваемого контента и время выполнения скриптов. Нам нужно изменить файл web.config, который находится в папке с публикацией базы. Добавим или изменим следующие параметры:


<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="104857600" /> 
        </requestFiltering>
    </security>
</system.webServer>

Здесь значение 104857600 соответствует 100 МБ. Если ваши пакеты данных больше, увеличьте это число. Также проанализируем тайм-ауты. В настройках Application Pool (Пул приложений) в IIS увеличьте значение Idle Time-out и CGI Timeout, чтобы сервер не закрывал соединение раньше, чем 1С успеет подготовить XML-пакет.

Программная очистка «хвостов» (для продвинутых пользователей)

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


ВыборкаУзлов = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.Выбрать();
Пока ВыборкаУзлов.Следующий() Цикл
    Если ВыборкаУзлов.Пустая() Тогда Продолжить; КонецЕсли;
    ОбъектУзла = ВыборкаУзлов.ПолучитьОбъект();
    // Очищаем старые параметры обмена через файлы
    ОбъектУзла.ИмяФайлаСообщенияОбмена = "";
    ОбъектУзла.Записать();
КонецЦикла;

После выполнения такого кода в консоли запросов или обработке, система перестанет искать локальный файл и будет использовать параметры, заданные для веб-сервиса в регистре ПараметрыШлюзаИнформационныхБаз.

Резюме

Подведем итоги. Для успешного перехода на веб-сервисы необходимо:

  1. Отказаться от редактирования старых настроек и создать новые.
  2. Опубликовать веб-сервис EnterpriseDataExchange на корректно настроенном веб-сервере.
  3. Настроить права доступа для технического пользователя.
  4. Увеличить лимиты передачи данных в настройках веб-сервера (IIS/Apache).

Использование веб-сервисов делает обмен данными более гибким, позволяя синхронизировать базы, находящиеся в разных локальных сетях или в облаке, без необходимости настройки сложных VPN-каналов или проброса портов для COM-соединений.

← На главную