При организации взаимодействия между крупными информационными системами, такими как 1С:ERP Управление предприятием и 1С:Документооборот (ДО), разработчики часто выбирают прямое COM-соединение как наиболее простое в реализации. Однако на практике такая схема часто приводит к существенному снижению производительности. Пользователи начинают жаловаться на «фризы» интерфейса, долгое открытие карточек справочников (от 7 до 20 секунд) и общую нестабильность системы.
В этой статье мы подробно разберем, почему COM-соединение может тормозить работу, и пошагово рассмотрим процесс перехода на обмен через общую папку (файловый обмен) или современные HTTP-сервисы.
Прежде чем приступать к перенастройке, проанализируем ситуацию. Когда база 1С:Документооборот инициирует обмен через V83.COMConnector, она создает сеанс внутри базы 1С:ERP. Если базы находятся на разных физических серверах, возникают следующие проблемы:
КонвертацияДанных) таких запросов могут быть тысячи, что превращает миллисекунды в десятки секунд ожидания.Контрагенты или Договоры, попадают в очередь ожидания.Переход на обмен через файлы или сервисы позволяет сделать базы автономными: одна база выгружает данные в «буфер», а вторая забирает их тогда, когда у нее есть свободные ресурсы.
Если в ваших базах настроена типовая синхронизация данных, переход с COM на файл выполняется достаточно просто, так как правила конвертации и состав отправляемых данных уже определены. Разберем шаги настройки:
Шаг 1. Подготовка сетевого ресурса
Для начала необходимо создать папку, к которой будут иметь доступ оба сервера. Здесь кроется важный технический нюанс: права доступа. Помните, что обмен выполняет не ваш пользователь Windows, а служба сервера 1С. Обычно это учетная запись USR1CV8.
\\Server1\1C_Exchange\).Агент сервера 1С:Предприятия на обоих серверах.Шаг 2. Изменение настроек в базе-источнике (ДО)
Перейдем в настройки синхронизации данных. Вместо варианта «Прямое подключение» выберем «Синхронизация через общий ресурс». Укажем путь к нашей папке. Система предложит выгрузить файл настроек (обычно ExchangeSettings.xml). Этот файл понадобится нам для настройки второй базы, чтобы они «узнали» друг друга по уникальным кодам узлов.
Шаг 3. Изменение настроек в базе-приемнике (ERP)
В 1С:ERP заходим в НСИ и администрирование — Синхронизация данных. Выбираем нашу настройку и меняем параметры подключения на файловый обмен, указывая ту же самую папку. Теперь при запуске синхронизации база ДО будет класть файл выгрузки (сообщения обмена) в папку, а ERP будет его оттуда забирать.
Чтобы обмен происходил без участия пользователя, проанализируем работу РегламентныеЗадания. В обеих базах необходимо настроить расписание:
1С:Документооборот создаем расписание для выгрузки (например, каждые 15 минут).1С:ERP создаем расписание для загрузки и обратной выгрузки подтверждений.Важно не ставить слишком частый интервал (например, раз в секунду), так как постоянное обращение к диску может создать лишнюю нагрузку на подсистему ввода-вывода.
Если вам требуется максимально оперативный обмен («почти онлайн»), рассмотрим вариант с HTTP-сервисами, о котором упоминали эксперты в обсуждении. Это более современный подход, чем использование папок.
Проанализируем пример логики работы через HTTP-запрос:
// Пример функции для отправки данных через HTTP
Функция ОтправитьДанныеВERP(ТекстXML)
Соединение = Новый HTTPСоединение("erp-server", , "Пользователь", "Пароль");
Запрос = Новый HTTPЗапрос("/ERP_Base/hs/Exchange/v1/ReceiveData");
Запрос.УстановитьТелоИзСтроки(ТекстXML, КодировкаТекста.UTF8);
Попытка
Ответ = Соединение.ОтправитьДляОбъекта(Запрос);
Если Ответ.КодСостояния = 200 Тогда
Возврат Истина;
КонецЕсли;
Исключение
ЗаписатьЛогОшибки(ОписаниеОшибки());
КонецПопытки;
КонецФункции
При использовании HTTP-сервисов данные передаются в теле запроса (обычно в формате XML или JSON). Преимущества очевидны: не нужны общие папки, обмен происходит мгновенно, а нагрузка на ERP распределяется более эффективно за счет фоновых процессов веб-сервера.
Разберем ситуацию, когда обмен все равно кажется медленным даже после отказа от COM. В современных конфигурациях (ERP 2 и ДО) используется технология Enterprise Data (ED). Если ваш обмен построен на старых правилах КонвертацияДанных 2.0, система вынуждена каждый раз инициализировать тяжелые менеджеры объектов.
При использовании Enterprise Data (КД 3.0) структура данных стандартизирована. Посмотрим на плюсы этого подхода:
ЧтениеXML.Замена COM-соединения на обмен через папку позволит вам:
1С:ERP, вызванные удаленными вызовами из ДО, исчезнут.Для реализации этой задачи мы рекомендуем использовать типовой механизм Синхронизация данных, переключив его в режим «через каталог». Это наиболее безопасный и быстрый способ решить проблему «тормозов» системы без написания сложного программного кода.