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

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 конфигуратор разные версии особенность платформы совместная разработка удалённый доступ

См. также

Linux Групповая разработка (Git, хранилище) Администрирование СУБД Системный администратор Программист 1С 8.3 Абонемент ($m)

Декларативный pipeline в GitHub Actions, тонкости лицензирования в Docker (--net=host), изоляция RUN_ID и интеграция со сборочным конвейером 1C:SRE-Suite. Вторая часть практического руководства (https://infostart.ru/public/2779597): от первого коммита до детерминированного синтаксического гейта на headless-раннере Linux

1 стартмани

03.09.2026    582    Ninel_S    0    

3

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

Четыре года в интеграторе я работал с git и EDT. Git после хранилища полюбил сразу: видно, кто и что менял. С EDT сложнее: тормозит, ошибки при обновлении ERP, автономный сервер внутри него работает только с файловой базой. На новой работе команда захотела перейти на git, я развернул EDT, и оно на второй день разрушило проект при загрузке расширения. Тогда я решил дать команде git с привычным Конфигуратором и инструмент, который за минуту доносит коммит до базы через ibcmd, вместо получасовой загрузки из файлов. На новой работе разрешили ИИ, и я написал это приложение с его помощью: от чтения документации и первого ТЗ до идей в электричке. Впервые за годы снова почувствовал себя творцом, а не закрывателем задач. По дороге приросли выгрузка, объединение и проверка конфигурации по коммитам, YAxUnit и режим MCP-сервера. В статье: схемы, скриншоты, грабли и честный список ограничений. Ссылки пока нет: хочу понять, нужно ли это кому-то, кроме меня.

03.09.2026    8813    KatanaDragon511    26    

35

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

Пакетный запуск Конфигуратора 1С на Linux таит опасную ловушку: при критических ошибках утилита DESIGNER завершается с кодом возврата 0 - «всё хорошо». Дефект уходит на продуктив. Мы открываем проект 1C:SRE-Suite - набор проверенных инструментов для надёжной эксплуатации 1С на Linux: • пятислойный сборочный скрипт с защитой от False Success (BOM, кодировки, lock-файлы, diff с Git) • Мягкая ротация процессов "rphost" через RAS API без обрыва сеансов • EDT ; Конфигуратор: CLI-мост для CI/CD на Node.js • Готовые конфиги logcfg.xml и nethasp.ini для боевого сервера • systemd-шаблоны для фонового мониторинга кластера Проект в активной разработке, лицензия MIT. Ждём ваших тест-репортов и PR.

03.09.2026    573    Ninel_S    0    

1

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

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

09.07.2026    6330    DmitryShehovtsev    14    

26

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

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

15.12.2025    13133    nasonkin    19    

31

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

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

4 стартмани

17.11.2025    3315    14    KovrovtsevAS    0    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1142 23.05.22 18:16 Сейчас в теме
За исследование +
А вот про надежность данного подхода можно только гадать. Т. к. файл хранилища по своей сути аналогичен файловой базе. И какая стрктура будет соответствовать своей платформе - знает только 1с.
2. curdate 52 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)

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