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

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    9153    78    4    

110

Особенности национального Workflow: Github Actions и OneScript

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

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    1223    bayselonarrend    3    

37

Автоматизация процесса разработки с помощью сервиса GitFlic

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

GitFlic – первая в России полностью самостоятельная реализация сервиса для хранения репозиториев с исходным кодом. За три года разработки сервис GitFlic стал полноценным инструментом, которым можно заменить GitLab, GitHub и BitBucket. Расскажем о том, как выстроить в GitFlic процесс автоматического тестирования, статического анализа кода и сборки приложений.

05.03.2024    1878    user1989937    6    

15

OpenYellow - рейтинг открытых GitHub репозиториев для платформы 1С:Предприятие

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

Обновляемый топ GitHub репозиториев для 1С по всем языкам программирования и еще немного рассуждений про open-source.

05.02.2024    3788    bayselonarrend    15    

61

Насколько глубок 1С-ный GitHub?

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

Open-source проекты - важная часть мира программного обеспечения. 1С привычно держится немного в стороне от глобальных трендов, но бросить холодный статистический взгляд на положение дел мне показалось небезынтересным.

22.01.2024    7851    bayselonarrend    50    

86

TCP прокси-сервер хранилища конфигурации 1С

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

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    2789    kamisov    17    

57

Отдай корень! Библиотека OneScript для получения информации о захваченных объектах в хранилище

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

Хранилище конфигурации 1С - это инструмент групповой разработки. Работают с хранилищем следующим образом: захватывают какой-либо объект, редактируют, потом отдают его в хранилище. Хранилище помечает уже захваченные объекты и не дает возможности захватить их другим пользователям. Это рождает и самый большой недостаток хранилища - невозможность работы с одним объектом нескольких пользователей, например в случае доработки разных методов в одном большом модуле. Корень конфигурации - это самый верхний ее узел. Только захватив корень, мы можем добавить в конфигурацию новые общие модули, документы, справочники, регистры и подобное. Только захватив корень можно изменить настройки поддержки конфигурации. Соответственно, если корень захвачен одним программистом, другой программист не может добавить новые объекты или снять что-то с поддержки. Потому то и всплывает эта фраза - отдай корень, мне нужно тоже что-то добавить.

26.12.2023    1345    ardn    1    

26

Git Code Review - инструмент для рецензирования кода

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Абонемент ($m)

Git Code Review - инструмент, позволяющий быстро анализировать изменения из git-репозитория прямо в 1С

1 стартмани

20.12.2023    3964    59    salexdv    26    

81
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ImHunter 312 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 749 09.06.22 16:02 Сейчас в теме
Это работает до тех пор, пока шаг влево-вправо не сделали.
7. yermak 51 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 Ответить
Оставьте свое сообщение