Почему РИБ не переключается на FTP при автоматической синхронизации и как решить конфликт разрядности платформы

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

В процессе эксплуатации распределенных информационных баз (РИБ) системные администраторы и программисты часто сталкиваются с ситуацией, когда ручной обмен данными проходит успешно, но регламентное задание упорно игнорирует настройки и пытается выполнить обмен через локальный каталог. Рассмотрим подробно, почему это происходит, как настроить транспорт корректно и что делать, если для стабильной работы обмена требуется 64-битная платформа, а оборудование поддерживает только 32-битные драйверы.

Анализ причин сбоя транспорта при регламентном обмене

Ситуация, при которой 1С выдает ошибку ТранспортСообщенийОбменаFILE: Ошибка подключения: Не указан каталог обмена информацией, хотя в настройках выбран FTP-ресурс, обычно связана с механизмом работы Библиотеки стандартных подсистем (БСП). Разберем по шагам, где могут скрываться некорректные параметры.

Во-первых, проанализируем настройки сценария синхронизации. В современных конфигурациях настройки транспорта хранятся в нескольких местах. Даже если в карточке узла указан FTP, в самом Сценарии синхронизации данных могут быть жестко прописаны старые параметры. Выясним, как это проверить: нужно перейти в список сценариев и открыть конкретную строку действий (отправка или получение). Именно там для каждой строки выбирается способ подключения. Если там остался "Локальный или сетевой каталог", система будет игнорировать общие настройки узла.

Во-вторых, обратим внимание на регистр сведений НастройкиТранспортаОбмена. В этом регистре система хранит параметры для каждого вида транспорта отдельно (FILE, FTP, Email). Проанализируем ситуацию: если при инициализации фонового задания по какой-то причине (например, из-за нехватки прав или таймаута) не удается инициализировать объект FTPСоединение, система может попытаться выполнить "откат" к методу по умолчанию. Если поле "Каталог обмена" в записи для FILE было когда-то заполнено, 1С попытается использовать его. Рекомендуется полностью очистить записи для неиспользуемых видов транспорта в этом регистре через "Функции для технического специалиста".

Особенности фоновых заданий в файловом режиме

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

Влияние разрядности платформы на стабильность РИБ

Часто переход с 32-битной на 64-битную платформу решает "необъяснимые" ошибки обмена. Разберем подробнее, почему это происходит. При формировании сообщения обмена (особенно при начальной инициализации узла) система строит в оперативной памяти огромное дерево XML. В 32-битном процессе адресное пространство ограничено 2-4 Гб, и из-за фрагментации памяти процесс может завершиться аварийно или начать вести себя непредсказуемо (например, терять COM-объекты или сетевые соединения).

Как показала практика, установка 64-битной версии платформы часто нормализует работу сетевых протоколов и устраняет ошибки "зависания" при передаче больших файлов по FTP. Однако здесь возникает другая проблема: торговое оборудование.

Решение конфликта 64-битной платформы и 32-битных драйверов

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

Способ 1: Сосуществование двух платформ. Посмотрим на пример реализации, который помог автору темы. На сервере или рабочей станции устанавливаются обе версии платформы (x86 и x64). Для работы пользователя используется ярлык, принудительно запускающий 32-битную версию (это позволяет работать с драйверами). В то же время регламентные задания, работающие в файловой базе, могут запускаться планировщиком или отдельным сеансом под 64-битной платформой. Для принудительного запуска нужной разрядности в строке запуска можно использовать параметр /Run64 или /Run32. Например: "C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "ПутьКБазе" /Run32

Способ 2: Регистрация драйвера через COM+. Если необходимо использовать только 64-битную платформу, можно "обернуть" 32-битный драйвер в сервис COM+. Разберем по шагам, как это сделать:

  1. Откроем "Службы компонентов" (comexp.msc).
  2. Создадим новое пустое приложение COM+ (библиотеку).
  3. В разделе "Компоненты" добавим нужную 32-битную DLL драйвера.
  4. В свойствах приложения на вкладке "Активация" выберем "Библиотека" или "Серверное приложение".

Это позволит 64-битному процессу 1С обращаться к 32-битному драйверу через стандартную прослойку операционной системы.

Профилактика и логирование

Для окончательного исправления ситуации проанализируем Журнал регистрации. При возникновении ошибки "Не указан каталог обмена", нужно отмотать события на несколько секунд назад. Выясним причину: там обязательно будет запись об ошибке FTPСоединение. Чаще всего это "Аутентификация не удалась" или "Не удалось установить соединение". Только после этой первичной ошибки система переходит к попытке обмена через FILE и выдает итоговое сообщение, которое может сбить с толку.

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

← На главную