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

23.05.22

Разработка - Групповая разработка (Git, хранилище)

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
repo_1c_broker.js
.js 2,42Kb
4 3 000 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Требовалось организовать доступ к внутреннему хранилищу с сервера заказчика. Завернули 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

 

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

Вступайте в нашу телеграмм-группу Инфостарт

хранилище платформа node.js конфигуратор разные версии особенность платформы совместная разработка удалённый доступ

См. также

Групповая разработка (Git, хранилище) EDT Программист 1С:Предприятие 8 Россия Бесплатно (free)

Синхронизируйте свой проект EDT с хранилищем конфигурации так же легко, как в git клиенте. По кнопке Pull в проект EDT подтягиваются изменения из хранилища, по кнопке Push ваш коммит из git репозитория проекта EDT улетает в хранилище конфигурации.

09.07.2026    1856    DmitryShehovtsev    4    

18

Архивирование (backup) Групповая разработка (Git, хранилище) Системный администратор Программист Бесплатно (free)

Как дать возможность каждому разработчику 1С вести разработку, тестирование и оптимизацию на собственной полноразмерной копии базы и при этом не тратить миллиарды рублей и тысячи часов на развертывание тестового окружения, а так же экономить дисковое пространство? Расскажем о том, как с помощью инструмента Database Lab получать полноразмерные копии базы 1C на СУБД PostgreSQL за считанные секунды (даже в случае использования многотерабайтных баз).

15.12.2025    10657    nasonkin    18    

31

Инструменты администратора БД Групповая разработка (Git, хранилище) Обновление 1С Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 2.х 1С:Библиотека стандартных подсистем Абонемент ($m)

Обработка, объединяющая в себе использование инструментов БСП по администрированию кластера серверов и запуска скриптов для автоматического обновления конфигурации из хранилища.

4 стартмани

17.11.2025    2979    14    KovrovtsevAS    0    

12

Групповая разработка (Git, хранилище) Бесплатно (free)

Проектная разработка в 1С живет в условиях жестких дедлайнов, меняющихся команд и нестабильных CI/CD. В статье показываем, как быстро и без лишних затрат внедрить Git на ERP-проектах, продать идею себе и команде и избежать типичных подводных камней. Разберем ветвление, подходы к командной работе, интеграцию с таск-трекерами и особенности тяжелых конфигураций.

04.09.2025    21614    bozo    42    

12

EDT Групповая разработка (Git, хранилище) Программист 1С:Предприятие 8 Бесплатно (free)

Плагин, расширяющий функциональность EDT, предоставляя возможность работы с хранилищем конфигурации 1С без использования 1С:ГитКонвертер.

04.08.2025    15074    ZigRinat85    54    

53

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Абонемент ($m)

Позволяет проектировать и выполнять сценарии, состоящие из команд 1С, Git и CMD, а также решать конфликты слияния напрямую из 1С с помощью KDiff3. Предустановлен набор команд для автоматизации сборки CFE-файлов.

1 стартмани

29.07.2025    5768    9    gorsheninsn    6    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1104 23.05.22 18:16 Сейчас в теме
За исследование +
А вот про надежность данного подхода можно только гадать. Т. к. файл хранилища по своей сути аналогичен файловой базе. И какая стрктура будет соответствовать своей платформе - знает только 1с.
2. curdate 53 01.11.22 18:34 Сейчас в теме
Похоже, что метод работает только для http доступа к хранилищу.
А мне понадобился прокси к tcp хранилищу, и обработка не взлетела. А как работает js скрипт и как его перепилить для tcp - пока не понял.
3. frutty 125 02.11.22 10:30 Сейчас в теме
(2)
Похоже, что метод работает только для http доступа к хранилищу.
А мне понадобился прокси к tcp хранилищу, и обработка не взлетела. А как работает js скрипт и как его перепилить для tcp - пока не понял.

а почему нельзя "параллельно" сделать и http версию хранилища? по факту это просто "надстройка" над tcp. Но вы правы, скрипт работает только с http протоколом.
5. frutty 125 13.12.24 13:48 Сейчас в теме
(2) есть подобный скрипт для tcp.
4. Garykom 17 08.05.23 03:57 Сейчас в теме
1. Берем OpenResty (nginx + lua) и
https://github.com/ovcharenko-di/crserver-filter

2. Добавляем
-- замена версии
if req then
req = ngx.re.gsub(req, 'version="8.3.23.1688"', 'version="8.3.22.1709"')
end
ngx.req.set_body_data(req)

3. Увеличиваем таймауты и буфер чтобы даже ERP УХ влезла

Профит!
curdate; pavlo; +2 Ответить
6. frutty 125 25.12.24 09:59 Сейчас в теме
(4)

проблема в обратном преобразовании ответов, т.к. версия с которой подключается клиент заранее неизвестна. В скрипте при преобразовании запоминается версия, с которой идёт подключение, чтобы преобразовать пакет обратно в нужную версию.
Для отправки сообщения требуется регистрация/авторизация