Какие типы подключения лучше использовать для синхронизации между УТ и БП на Linux-сервере

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

Синхронизация данных между 1С:Управление торговлей (УТ) и 1С:Бухгалтерия предприятия (БП) — это стандартная задача, однако при переносе серверной части на ОС Linux (например, Ubuntu) возникают специфические нюансы. В этой статье мы подробно разберем, какие механизмы обмена будут работать наиболее стабильно, как обойти ограничения прав доступа и почему привычные для Windows методы могут оказаться недоступны.

Анализ ситуации и выбор стратегии обмена

Прежде всего, проанализируем архитектуру системы. Когда сервер 1С работает под управлением Linux, мы сразу теряем возможность использования COM-соединения (хотя вы можете изучить пример запуска обмена через COM для понимания логики работы в Windows-среде). Это критически важный момент, так как прямое подключение одной базы к другой «напрямую» через COM-объект в Linux-среде технически невозможно. Следовательно, нам необходимо рассматривать альтернативные транспорты данных.

Разберем основные варианты, которые можно реализовать в данной среде:

  1. Обмен через веб-сервисы (HTTP/Web-services) или выгрузку данных в XML с гибким отбором.
  2. Обмен через файловые ресурсы (локальные папки или сетевые диски).
  3. Обмен через протоколы передачи файлов (FTP/SFTP).
  4. Использование электронной почты и оповещений при остановке обмена.

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

Рассмотрим этот вариант как наиболее современный и производительный. Публикация базы на веб-сервере позволяет настроить обмен в режиме реального времени или по расписанию без создания промежуточных файлов.

Пошаговый алгоритм действий:

  1. Установим веб-сервер Apache 2.4 на Ubuntu. Это наиболее стабильное решение для связки с 1С.
  2. Выполним публикацию информационной базы и необходимых веб-сервисов (или HTTP-сервисов) через утилиту webinst или через конфигуратор (запущенный под Wine или с клиентской машины).
  3. В настройках синхронизации выберем тип подключения «Через веб-сервис».

Проанализируем вопрос лицензирования, который часто пугает пользователей. Для публикации на веб-сервере серверу 1С необходимо «видеть» лицензию. Даже если основные ключи у вас распределены по рабочим местам, сеанс обмена через веб-сервис кратковременен. Система запрашивает лицензию только в момент передачи пакета данных. Если на сервере настроен поиск программных лицензий или доступен сетевой HASP-ключ, проблем с публикацией не возникнет.

Вариант 2: Синхронизация через общую папку на Linux

Этот способ кажется самым простым, но он требует внимательности при настройке прав доступа. Выясним причину возможных ошибок: сервер 1С в Linux запускается от имени специального пользователя, обычно это usr1cv8.

Нюансы настройки прав:

Если мы создаем папку для обмена в файловой системе сервера, мы должны гарантировать, что пользователь usr1cv8 имеет полные права (чтение и запись) на этот каталог. Воспользуемся командами терминала для настройки:


chown -R usr1cv8:grp1cv8 /home/exchange_folder
chmod -R 770 /home/exchange_folder

Если папка обмена находится на другом (Windows) сервере, нам потребуется монтировать её в файловую систему Linux. Использование путей формата \\server\folder (UNC-пути) напрямую в 1С под Linux не сработает. Рассмотрим пример монтирования через cifs-utils:


mount -t cifs //192.168.1.10/Exchange /mnt/1c_exchange -o username=user,password=pass,uid=usr1cv8

После этого в настройках синхронизации 1С мы указываем локальный путь /mnt/1c_exchange.

Вариант 3: Безопасный обмен через SFTP

Как мы уже выяснили, стандартный FTP считается небезопасным. В среде Linux штатно работает SSH, а значит, доступен и SFTP. 1С поддерживает этот протокол «из коробки» начиная с версий платформы 8.3.

Разберем преимущества этого метода:

Посмотрим на пример того, как программно можно проверить доступность ресурса (фрагмент для обработки):


ПараметрыНТТР = Новый HTTPСоединение("myserver.com", , "admin", "password");
Попытка
    ПараметрыНТТР.Получить(Новый HTTPЗапрос("/ping"));
    Сообщить("Соединение установлено успешно");
Исключение
    Сообщить("Ошибка подключения: " + ОписаниеОшибки());
КонецПопытки;

Использование формата EnterpriseData

При настройке обмена между современными конфигурациями (УТ 11 и БП 3.0) мы настоятельно рекомендуем использовать формат EnterpriseData. Это универсальный XML-стандарт, который минимизирует риски при обновлении конфигураций. В отличие от старых правил обмена (на базе «Конвертации данных 2.0»), EnterpriseData лучше оптимизирован под веб-технологии и работу на Linux-серверах, так как он менее зависим от специфических метаданных конкретной сборки базы.

Автоматизация и мониторинг через Cron

В Linux-системах мы можем эффективно использовать системный планировщик Cron для обслуживания процесса обмена. Хотя в 1С есть механизм регламентных заданий, внешние скрипты на Bash помогут нам решить сопутствующие задачи, такие как очистка старых файлов обмена или проверка «зависших» сеансов.

Например, проанализируем простой скрипт для удаления логов обмена старше 7 дней:

find /home/exchange_folder/logs -type f -mtime +7 -exec rm {} \;

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

Резюме и выводы

Подведем итог нашему исследованию. Для настройки синхронизации между УТ и БП на Linux-сервере:

  1. Забудьте про COM-соединение — оно не работает в этой среде.
  2. Для максимальной скорости и надежности выбирайте Web-сервисы (HTTP) через Apache 2.4.
  3. Если используете папки, всегда проверяйте права пользователя usr1cv8 и монтируйте сетевые ресурсы в локальные точки монтирования.
  4. Вместо обычного FTP отдавайте предпочтение SFTP для обеспечения безопасности данных.
  5. Используйте формат EnterpriseData для упрощения поддержки обмена в будущем.

Следуя этим рекомендациям, мы сможем построить отказоустойчивую систему обмена данными, которая будет эффективно работать в среде Open Source.

← На главную