Как настроить синхронизацию данных 1С после переноса сервера на Linux

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

Переход с Windows-ориентированной инфраструктуры на ОС семейства Linux (например, Ubuntu, CentOS или Astra Linux) в связке с СУБД PostgreSQL часто преподносит сюрпризы администраторам и разработчикам 1С. Одной из наиболее распространенных проблем является невозможность выбрать «Прямое подключение» в мастере настройки синхронизации данных. Разберем детально, почему это происходит и как правильно организовать обмен данными в новых условиях.

Почему пропадает «Прямое подключение»

Проанализируем техническую сторону вопроса. В операционной среде Windows «Прямое подключение» между базами 1С реализуется через технологию COM (Component Object Model). За это отвечает библиотека comcntr.dll (COM-соединитель). При настройке обмена одна база буквально вызывает другую через системные механизмы Windows.

В Linux-версии сервера «1С:Предприятие» технология COM отсутствует в принципе, так как она является проприетарной разработкой Microsoft. Следовательно, библиотека comcntr.dll не может быть зарегистрирована или запущена. Платформа 1С, «видя», что сервер запущен под Linux, автоматически скрывает или блокирует функционал, зависящий от COM. Поэтому восстановить «Прямое подключение» в том виде, к которому вы привыкли на Windows, невозможно. Нам необходимо рассмотреть альтернативные и более современные способы обмена.

Вариант №1: Использование веб-сервисов (рекомендуемый метод)

Рассмотрим самый надежный способ настройки синхронизации для Linux-серверов — обмен через веб-сервис (HTTP/HTTPS). Этот метод не зависит от операционной системы и работает значительно стабильнее файловых шар.

Разберем процесс по шагам:

  1. Публикация базы на веб-сервере. Одну из баз (которая будет выступать «приемником» или обе базы) необходимо опубликовать на веб-сервере Apache или Nginx. Для этого на Linux-сервере должен быть установлен соответствующий пакет веб-сервера и модуль расширения 1С для него.
  2. Настройка публикации. При публикации в конфигураторе (или через утилиту webinst) обязательно нужно установить флажок «Публиковать стандартные интерфейсы OData» и убедиться, что веб-сервис Interface_EnterpriseDataExchange (или аналогичный в зависимости от конфигурации) доступен.
  3. Настройка в мастере синхронизации. В базе-инициаторе при создании новой синхронизации выберем вариант «Синхронизация через интернет». В качестве адреса укажем URL опубликованной базы (например, http://server/base_name), логин и пароль пользователя с правами на обмен.

Этот подход позволяет избежать проблем с правами доступа к файловой системе и является стандартным для современных облачных решений.

Вариант №2: Файловый обмен через сетевой каталог

Если использование веб-сервисов по каким-то причинам невозможно, проанализируем ситуацию с файловым обменом. Часто пользователи пытаются указать привычный путь вида \\server\share, но в Linux такая нотация не работает. Выясним, как правильно настроить доступ к папкам.

Для того чтобы сервер 1С на Linux мог работать с сетевой папкой, её необходимо «примонтировать» к файловой системе сервера как локальный каталог. Рассмотрим последовательность действий:

  1. Установка необходимых утилит. Установим пакет cifs-utils (для работы с Windows-шарами SMB).
  2. Создание точки монтирования. Создадим локальную папку, через которую 1С будет «видеть» обмен, например: mkdir /mnt/1c_exchange.
  3. Монтирование ресурса. Выполним команду монтирования. Пример команды:
    
    mount -t cifs //192.168.0.1/exchange_folder /mnt/1c_exchange -o user=domain_user,pass=password,domain=your_domain,uid=usr1cv8,gid=grp1cv8
    
    Здесь критически важно указать параметры uid и gid пользователя, от имени которого запущен сервер 1С (обычно это usr1cv8).
  4. Настройка в 1С. В интерфейсе программы укажем путь к каталогу как /mnt/1c_exchange/. Помните, что Linux чувствителен к регистру символов: /Mnt/Exchange/ и /mnt/exchange/ — это разные пути.

Важные нюансы работы на Linux

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

Права доступа. Самая распространенная ошибка — отсутствие прав у пользователя ОС usr1cv8 на запись в каталог обмена. Даже если вы примонтировали папку под root, сервер 1С не сможет в неё писать без явного указания прав. Проверим права командой:


chown -R usr1cv8:grp1cv8 /mnt/1c_exchange
chmod -R 770 /mnt/1c_exchange

Универсальный формат EnterpriseData. При работе на Linux настоятельно рекомендуем использовать обмен через «Универсальный формат передачи данных». Он минимизирует зависимость от платформенных функций (таких как COM) и лучше оптимизирован под работу в гетерогенных сетях (смесь Windows и Linux).

Регистрозависимость. Посмотрим на типичную ситуацию: если в настройках обмена указано имя файла Message_001_002.xml, а система создала message_001_002.xml, Linux-сервер выдаст ошибку «Файл не найден». Всегда придерживайтесь единого регистра в именовании папок и префиксов баз.

Заключение

Подводя итог, можно сказать, что «лечение» проблемы отсутствия прямого подключения заключается в смене парадигмы настройки. Вместо попыток эмулировать Windows-механизмы, следует перейти на использование веб-сервисов. Это не только решит текущую проблему с переносом на Linux, но и сделает вашу систему обмена более отказоустойчивой и масштабируемой.

← На главную