Каталог решений - Работа с хранилищем из другой версии конфигуратора

Работа с хранилищем из другой версии конфигуратора

Работа с хранилищем из другой версии конфигуратора

В наличии

Хранилище и конфигуратор на разных версиях платформы. Как быть?

Категория:

Описание

Требовалось организовать доступ к внутреннему хранилищу с сервера заказчика. Завернули tcp в http и выкинули наружу. Но при попытке подключиться поняли, что версии у нас и у них разные, а разработчики платформы 1С решили не заморачиваться с версиями и просто запретили подключаться к хранилищу с любой другой версии, кроме той, что у хранилища.

Проведя анализ трафика через WireShark, я заметил, что главное отличие в пакетах на разных платформах, это передача в xml версии платформы конфигуратора в запросе и версии платформы хранилища в ответе:

<?xml version="1.0" encoding="UTF-8"?>
<crs:call xmlns:crs="http://v8.1c.ru/8.2/crs" alias="repo/test.cfe" name="DevDepotAdmin_openDevDepot" version="8.3.18.1334">
	<crs:params>
		<crs:alias value="repo/test.cfe"/>
		<crs:convert value="false"/>
	</crs:params>
</crs:call>

Ну и само собой я решил подменить версию на ту, что ждёт сервер хранилища, и у меня получилось. Правда, пришлось сильно погрузится в Node.js, а именно в потоки.

В итоге я смог подключить конфигурацию ERP/УХ к серверу хранилища (версия 8.3.20.1789) через конфигуратор (версия 8.3.21.1302), т.е. от нового к старому. Время подключения если и поменялось, то незаметно (замеры не делал).

Также тестировал и от старого (версия 8.3.18.1334) к новому (версия 8.3.20.1789), всё прошло гладко.

Захват объектов, помещение, получение и даже администрирование работает без проблем.

Преобразование и пересылка пакетов происходит "на лету" и не жрёт ОЗУ.

Для трансформации пакетов требуется запустить сервис, написанный на Node.js.

Шаги:

1. В файле repo_1c_broker.js требуется указать настройки сервиса:

const service_port = 8000 // порт сервиса трансформации пакетов
const repo_host = 'my.server.ru' // сервер хранилища конфигурации (может быть IP)
const repo_port = '8880' // порт хранилища конфигурации
const repo_version = '8.3.20.1789' // версия хранилища конфигурации

2. Запустить сервис:

node.exe repo_1c_broker.js

* node.exe — это исполняемый файл интерпретатора Node.js. Установить можно отсюда.

3. При подключении к хранилищу подменить адрес на http://localhost:8000/, если вы запустили сервис транформации на компьютере с конфигуратором, либо http://адрес_машины_с_сервисом:8000/ если в другом месте.

Например:

Если раньше вы подключались к хранилищу по адресу:

http://192.168.100.2/repo/repo.1ccr/proj01

то теперь надо так:

http://localhost:8000/repo/repo.1ccr/proj01

 

Возможно, в каких-то платформах есть изменения в службе хранилища, но я давно их не видел в зазеркалье.

has been added to your cart:
Оформление заказа