Open sergey-s-betke opened 2 years ago
Отправить мало. Необходимо ещё дождаться ответа. По этой причине целесообразно в этом случае использовать обмен не через файлы, а через вызов COM сервера. Что в нашем случае доступно.
Либо активный обмен через Web сервис (SOAP) (это уже для совместимости с Linux в дальнейшем).
Важно!
Если две информационные базы, между которыми настроен обмен данными, расположены в одной локальной сети или на одной машине, то рекомендуется, чтобы константы КаталогСообщенийОбменаДаннымиДляWindows и КаталогСообщенийОбменаДаннымиДляLinux в обеих базах указывали на один и тот же каталог обмена. Это позволит повысить производительность обмена данными.
Если кластер сервера 1С:Предприятия работает на одном физическом сервере, то задание значений констант не является обязательным. В качестве каталога временных файлов для сообщений обмена будет использоваться временный каталог пользователя, от имени которого запущен сервер 1С:Предприятия.
Пока вижу такой алгоритм:
https://its.1c.ru/db/metod8dev/content/2272/hdoc
Да, есть пример прямо жёсткого варианта:
Dim connector = CreateObject("V8.COMConnector")
Dim connection = connector.connect("file=c:\IB")
Dim nodeRef = connection.ПланыОбмена.УдаленныеОфисы.НайтиПоКоду("Офис1")
If (Not nodeRef.Пустая()) Then
Dim node = nodeRef.ПолучитьОбъект()
node.ПрочитатьСообщениеСИзменениями()
node.ЗаписатьСообщениеСИзменениями()
End If
Видимо, целесообразно будет использовать указанный выше вариант запуска сценария обмена на сервере, но - в длительной операции. И необходимо проверить работу обмена с вызовом через COM. Надеюсь, получим достаточно быстрый результат.
Ждать придётся до тех пор, пока регистрация изменений объекта не уйдёт из плана обмена. А уйдёт она при получении квитанции о доставке изменений.
Требуемая возможность
Добавить возможность немедленной отправки синхронизируемого объекта из формы объекта.
Текущее поведение
Сейчас после изменения / создания объекта приходится ждать несколько минут.
Возможное решение
Не обязательно.