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

08.06.22

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

Бывают ситуации (в моей практике - постоянно), когда нужно работать с одним хранилищем конфигурации из-под разных версий платформы. Предлагаю свой вариант решения.

Хранилище конфигурации - незаменимый инструмент, с которым удобно работать, даже когда с базой работает только один разработчик. Плюсы даже нет смысла перечислять - они очевидны и общеизвестны. Но вот незадача - очень часто нужно работать с разными заказчиками, а у них у всех базы работают под разными релизами, и синхронизировать версии, если заказчиков больше одного, - задача нетривиальная.

Если заказчиков двое - можно воспользоваться методом, предложенным в публикации //infostart.ru/public/1663203/, но что делать, если их трое и более?

Я давно использую следующее решение: для каждой используемой версии платформы устанавливаю свой сервер хранилища. Сервер хранилища - это же просто служба Windows. На один компьютер их можно установить сколько угодно, лишь бы порты были разные.

При появлении необходимости в использовании очередной версии - на компьютер, который трудится сервером, установите нужную версию платформы, при установке выберите флаг "Хранилище конфигурации".

Далее в реестре (regedit.exe), найдите путь к уже установленной службе (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C: Repository Server) и сохраните раздел в файл.

Любым редактором исправьте в этом файле названия службы, описание - так будет потом проще разбираться.

 

 

Сохраните файл и добавьте данные из него файла в реестр.

Снова зайдите в редактор реестра (regedit) и найдите вновь добавленную ветку.

Теперь необходимо отредактировать ключ Imagepath так, чтобы он указывал на общую для всех версий папку, но использовал уникальный порт, например:

c:\Program Files\1cv8\8.3.21.1302\bin\crserver.exe" -srvc -port 1302 -d D:\Cassaforte\

Для меня оказалось удобным использовать в качестве номера порта последние цифры из номера версии платформы, но никто не мешает вам придумать свою схему нумерации, например, нумеровать используемые порты по порядку, или еще как-нибудь.

Собственно, на этом установка окончена. Осталось перезагрузить компьютер, чтобы новая служба запустилась и пробросить порт через роутер, для того, чтобы к данному хранилищу можно было подключаться извне (если такая необходимость есть, конечно). Описывать проброс порта незачем, задача с одной стороны тривиальная, с другой - она отличается для каждой модели роутера.

Конечно, службу можно добавлять и другим способом - для этого есть множество инструментов командной строки, тут каждый может выбрать по вкусу.

Устанавливать и настраивать доступ через http считаю избыточным - никаких плюсов подключение через http по сравнению с tcp не приносит.

Возможно, используемый порт понадобится добавить в разрешенные в Брендмауре Windows.

Теперь можно получать доступ к одному и тому же хранилищу из разных версий платформы, меняя только путь к хранилищу:

tcp://адрес_компьютера:1302/ИмяХранилища - для версии 8.3.21.1302;

tcp://адрес_компьютера:1710/ИмяХранилища - для версии 8.3.20.1710; и так далее, по необходимости.

Практика использования такого механизма показала, что структуру хранилища компания 1С не меняет, и с одной и той же конфигурацией можно одновременно благополучно работать как с версиями 8.3.11, так и 8.3.21, никаких проблем нет.

В будущем, конечно, что-то может измениться, но работать-то нужно прямо сейчас.

Хранилище конфигурации версия хранилища разные версии

См. также

Системы контроля версий для 1С-разработчиков.

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Платформа 1С v8.3 Платные (руб)

Основы командной разработки на 1С. Использование систем контроля версий при разработке на платформе 1С:Предприятие 8

4900 руб.

29.06.2022    7024    64    4    

87

Jenkins на службе 1С

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

Основная специализация Jenkins – это, прежде всего, CI/CD. Но его можно использовать и для других важных задач: разбора хранилищ, настройки копий баз данных, раздачи прав пользователям, рестарта кластера и проверки кода проектов.

19.07.2023    1156    yukon    4    

11

Приемы быстрой работы в EDT/Git

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Статья даёт ответы на некоторые вопросы, возникающие у разработчиков, которые погружаются в океан технологий EDT и Git, омывающий царство DevOps... Сколько и какие ветки нужны? Какой репозиторий выбрать? Кто должен сливать доработки в мастер ветку или ветку версии? Как не тратить время в EDT на ресурсоёмких операциях? Зачем нам сборочный конвейер и как его построить? Зачем нам нужно тестирование и как его реализовать? Как вести разработку, если есть разработчики, не умеющие вести разработку в EDT или не имеющие технической возможности, но нам нужны их skills в 1С? Что такое фантомы и нужно ли с ними бороться? Как слить 20 доработок с конфликтами и уложиться в 4 часа? Опыт использования модных технологий в реальных проектах.

30.03.2023    6140    check2    10    

81

Получаем статистику по git-репозиторию в разрезе разработчиков

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

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    1886    ardn    3    

27

Формула успешного внедрения DevOps и Agile в 1С: от неудачи к неудаче без потери энтузиазма

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

На конференции Infostart Event 2021 Post-Apocalypse выступил директор практики БИТ:ERP компании Первый БИТ Глеб Стальной. В ходе доклада он рассмотрел трансформацию проектного подхода в продуктовый, рассказал про имплементацию «современных» практик DevOps и продемонстрировал инструменты для разработки, взаимодействия с бизнесом и клиентами, применяемые в его команде.

27.02.2023    1653    glebushka    2    

13

Кровь, пот и GIT

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

Ведущий разработчик 1С Андрей Карпов на конференции Infostart Event 2021 Post-Apocalypse поделился ошибками, которые совершают новички в работе с GIT. В докладе четыре кейса с пошаговыми инструкциями, которые позволят не допускать конфликтов в разработке.

17.01.2023    7602    karpik666    45    

65

Прокси хранилища 1С (IIS, OneScript)

Групповая разработка (Git, хранилище) OneScript DevOps и автоматизация разработки Платформа 1С v8.3 Россия Бесплатно (free)

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    6323    kamisov    46    

89

Что, если Continuous Integration – это прежде всего практика, а не набор инструментов?

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

Рано или поздно многие компании приходят к практикам DevOps. И начало этому – Continuous Integration. О том, что происходит в команде специалистов 1С, когда они переходят на Git, и почему простое внедрение CI-инструментов не решает проблему подходов к разработке, в докладе на Infostart Event 2021 Post-Apocalypse рассказал руководитель компании ПрогТехБизнес Александр Анисков.

07.12.2022    1914    vandalsvq    0    

23
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ImHunter 277 08.06.22 17:39 Сейчас в теме
Собственно, плюс. За предпоследний абзац, в основном.
А почему не стали пользоваться режимом совместимости хранилищ?
2. curdate 50 08.06.22 18:02 Сейчас в теме
(1) Режим совместимости - это, насколько я помню, про структуру хранения данных. Какой не выбери, он все равно не позволит подключаться разным версиям платформы к одному хранилищу.
3. user1677685 09.06.22 10:53 Сейчас в теме
Зачем службу через реестр создавать, когда можно быстро создать службу на выбранном порту с выбранной версией 1С?
Во вложении пример, можно переделать определение портов, если хочется.
Прикрепленные файлы:
Create_1C_RepositoryOnPort.cmd.txt
4. curdate 50 09.06.22 11:26 Сейчас в теме
(3) Так исторически сложилось:). Я использую эту схему с множественными службами хранилища еще с 8.3.1 (на 8.2 не было контроля версии при подключении); тогда решить проблему нужно было быстро, ведь все работать-то должно было еще вчера.
Ведь в начале это была гипотеза - а будет ли работать 2 службы? Это же было не очевидно, что заработает. Проверил тогда по быстрому, первым пришедшим в голову методом. А потом просто использовал готовое - нет смысла оптимизировать минутную задачу, которую нужно выполнять даже не каждый месяц. Тем более, использование командной строки не добавит ни скорости, ни надежности, ни наглядности.

Но если начинать что-то строить с нуля, да без спешки - почему бы и не углубиться. Спасибо за cmd, пригодится:)
5. user1677685 09.06.22 11:42 Сейчас в теме
(4) Ну вот у меня в итоге за несколько лет простой cmd превратился в универсальный инструмент создания службы. Такие же созданы для службы 1С сервера, службы RAS, переопределения Applications, ComConnector, AdminConsol - удобно, когда на нескольких серверах устанавливаешь одну и ту же версию для предварительного тестирования и надо отдельную службу.
6. SerVer1C 663 09.06.22 16:02 Сейчас в теме
Это работает до тех пор, пока шаг влево-вправо не сделали.
7. yermak 50 14.06.22 08:41 Сейчас в теме
а не опасненько так делать? Что на это скажут разработчики фирмы 1с?
8. curdate 50 14.06.22 13:40 Сейчас в теме
(7) Волков бояться - в лес не ходить мучиться с разными версиями или работать без хранилища.
А разработчикам мы ничего не расскажем.
9. 7OH 69 14.06.22 18:47 Сейчас в теме
(1)
"Устанавливать и настраивать доступ через http считаю избыточным - никаких плюсов подключение через http по сравнению с tcp не приносит."
А как вы у заказчиКОВ то подключаетесь к созданным дома хранилищам ?
Вот как раз http в этом случае удобно.
Дома дописал - оттуда подключился и только забрал изменения, а не всю конфу через удаленку кидать.
10. curdate 50 14.06.22 19:18 Сейчас в теме
(9) tcp же, через внешний ip
GYlgamesh; +1 Ответить
Оставьте свое сообщение