Технология доработки типовой конфигурации с использованием конфигуратора

16.07.22

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

Как обычно происходит процесс доработки типовой? Разворачивается и используется рабочая база из какой-то типовой поставки 1С (БП/ERP/ЗУП и т.д.). Далее бизнес постоянно приносит требования по доработке типового функционала (отдельный вопрос, зачем это нужно). Возникает задача организовать постоянное изменение типовой конфигурации группой программистов. На мой взгляд, это довольно частая задача. Хотелось бы рассмотреть возможные варианты ее решения. Нигде не нашел упоминаний о подходах решения такой задачи, хотя, думаю, многие работают в таком режиме.

 

 

 

 

 

 

 

 

 

 

 

 

 

Условия и ограничения

Предполагаем, что

  • Разработка ведется в конфигураторе (без использования EDT, что не позволяет использовать git)
  • Поток изменений относительно большой, и работает группа разработчиков (иначе можно точечно обновлять конфигурацию)
  • Изменения вносятся в конфигурацию (расширения сопровождаются проще)

Что бы хотелось получить

  • Организовать перенос изменений максимально безошибочно в рабочую базу
  • При этом максимально упростить для разработчика процедуру переноса, исключить человеческий фактор при переносе изменений. В том числе избежать порочной практики необходимости использования обрамления изменений (Вида "// +++ это начало // --- это окончание")
  • Получить историю изменений версий

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

 

Вариант решения

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

За основу берем "Технологию разветвленной разработки конфигураций". Можно сказать, что это максимум, который можно выжать из хранилищ. И это своего рода ветвление для хранилищ.

 

Описание

Будем использовать одно хранилище (основное в терминах технологии). Так как перенос между хранилищами становится уже непростым, и это не подпадает под наши требования.

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

Из измененной типовой конфигурации делаем конфигурацию со своим именем и своей нумерацией версий.

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

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

Существующую доработанную рабочую базу, стоящую на частичной поддержке можно перевести на такой режим. И, что немаловажно, вернуть обратно на частичную поддержку от типовой.

 

Разработка

Для разработки формируем разработческую базу на которой будем дорабатывать

  • копируем рабочую базу
  • последовательно файлами поставок обновляем ее до последнего состояния хранилища

У нас получается база, где все объекты на замке. Для разработки снимаем только те объекты с замков, которые необходимо изменить, меняем.

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

Когда разработка завершена и протестирована, переносим доработки в основное хранилище. Для этого

  1. в основном хранилище захватываем измененные объекты (которые без замков)
  2. формируем файл поставки
  3. обновляем базу разработчика из файла поставки. Решаем конфликты, если они возникли, аналогично процессу синхронизации описанному выше
  4. из базы разработчика выгружаем cf
  5. В хранилище добавляем сравнением/объединением полученный cf. На этом шаге не нужно ничего анализировать, т.к. все уже сделано в п.4. А захват объектов не дает другим что-то изменить.
  6. Снимаем захват объектов

Не нужно помнить (писать, выкрыживать) какие объекты были изменены, не нужны обрамления. Процесс переноса максимально упрощен.

Одно ограничение: одна доработка - одна база. Иначе процесс переноса несколько усложняется.

 

Выпуск релиза

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

Это можно делать автоматически или вручную. Обычно автоматические тесты не используются и проверка выполняется вручную.

Для получения базы для проверки действуем так же как получение базы для разработки. Копируем рабочую базу и файлами поставок доводим копию до нужной версии.
Полученную базу проверяем.

Если принято решение о выпуске релиза, рабочая база файлами поставок так же доводится до нужной версии.

Можно отметить, что релиз может быть не обязательно на последнее состояние хранилища. Любая версия по вашему усмотрению.

 

Если рабочая база большого размера

Размер рабочей базы может быть очень большим. Держать копию рабочей базы для каждой доработки может быть накладно. Тут можно пойти несколькими путями.

  • Использовать автотесты при разработке. Создать начальную базу и разработку вести в рабочей базе созданной от начальной базы. Размер будет небольшой. Бонусом является внедрение автотестов при выпуске релиза. Подробнее см. Тестер
  • Уменьшить размер базы копии с рабочей базы, каким либо образом обрезая информацию (через обработки, обмены и т.д.)
  • Разрабатывать несколько задач в одной базе. Тут уже в ручном режиме нужно отделять одну обработку от другой в процессах разработки и переноса.

 

Дополнительные возможности

  • Общие плюшки, которые можно использовать при наличии общего хранилища (или git репозитория)
  • Можно навешивать проверки АПК/SonarQube
  • Выгружать хранилище в репозиторий git, где видеть кто что поменял и по какой задаче (git blame).
  • Можно автоматизировать сборку файлов поставки и получать каждое утро готовые файлы релиза.
  • При наличии автотестов можно их прогонять каждую ночь и сразу видеть, если кто-то что-то сломал

 

Другие варианты

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

 

Использовать сразу репозиторий git

Используем "Загрузить конфигурацию из файлов"/"Выгрузить конфигурацию в файлы". Выгруженные файлы помещаем в репозиторий git.

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

 

Подключение рабочей базы к хранилищу

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

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

 

Прямая доработка конфигурации

Может использоваться, если количество доработок небольшое, а процесс сравнения/объединения на рабочей базе можно провести без раздумий, при подготовленном cf для объединения.

Для доработки делаем копию рабочей базы. Дорабатываем, тестируем. Переносим обратно в рабочую базу наши доработки. При этом параллельно другую доработку проводить не рекомендуется.

 

Заключение

Данная технология опробована мой на практике только частично. В частности, разрабатывал, получая и помещая изменения в центральное хранилище, как это описано в разделе Разработка. Показалось довольно удобным. Целиком использовать рабочую базу как описано не доводилось. Но кажется неплохой идеей ).

Статья больше предмет на подумать, чем руководство к действию. Но в то же время теория кажется стройной и законченной ).
Замечания приветствуются.

Регламенты разработка хранилище

См. также

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

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

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

4900 руб.

29.06.2022    9460    78    4    

112

Обновляемый список последних статей Инфостарт для профиля Github

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

Не знаете, чем бы таким заполнить свой профиль Github? Заполните его своими статьями на Инфостарт! Этот простой workflow сам соберет список ваших последних статей и будет периодически обновлять его для актуализации данных.

08.04.2024    946    bayselonarrend    2    

31

Процесс разработки с использованием GIT и расширений для 1С:ERP. Без EDT

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

Доработки 1С:ERP на крупных проектах можно организовать, не внося изменения в саму типовую конфигурацию, а используя только расширения и отдельные «микроконфигурации». Расскажем о том, как это сделать без EDT, используя процесс разработки GitHub Flow.

02.04.2024    5007    Begemoth80    24    

45

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

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

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

25.03.2024    1615    bayselonarrend    3    

38

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

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

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

05.03.2024    2127    user1989937    6    

16

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

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

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

05.02.2024    4081    bayselonarrend    15    

63

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

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

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

22.01.2024    8121    bayselonarrend    50    

87

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

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

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

17.01.2024    3062    kamisov    17    

60
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dhurricane 18.07.22 10:54 Сейчас в теме
Извините, не сложилась картинка в голове. Можете описать более подробно, какую в итоге проблему решает данный подход?
1. Разработчик "отпочковывается" от рабочей базы, но потом дообновляет конфигурацию до версии хранилища разработки. Зачем здесь рабочая база, почему сразу не начинать разработку от актуальной версии хранилища?
2. Как тестировать задачи? В базе разработчика? Если тестировать должен в т.ч. и другой специалист, аналитик, например, ему тоже работать в базе разработчика?
3. Какой смысл в "дообновлении" рабочей базы файлами поставок при выпуске релизов? Почему просто не загрузить конфигурацию, соответствующую релизу?
4. Сколько по-Вашему займет процесс подготовки и выпуска доработок по задаче? Перенос чужих доработок из соседней "ветки"? Создание файлов поставки, сравнение-объединение - процессы не быстрые. Работу с поставками можно еще как-то автоматизировать, привлекая разработчика только в случае, если обнаружены дважды-измененные. Но скриптами не запустишь процесс сравнения, дабы показать разработчику только результат, ему все равно придется сидеть и ждать. Получается, что описанный подход будет актуален только для крупных задач?
4. triviumfan 93 18.07.22 17:14 Сейчас в теме
(1)
3. Какой смысл в "дообновлении" рабочей базы файлами поставок при выпуске релизов? Почему просто не загрузить конфигурацию, соответствующую релизу?

Если я правильно понял вопрос, то обновление значительно быстрее пройдёт, ведь сама загрузка cf с текущими размерами не быстрое дело, плюс реструктуризации таблиц. А при сравнении/объединении можно что-то потерять.
Вроде он все расписал.
6. dhurricane 18.07.22 17:34 Сейчас в теме
(4) У меня скорее вопрос был в необходимости обновления последовательностью файлов cfu против обновления с помощью cf последней версии. Использовать загрузку cf или обновление им же в любом случае быстрее, чем обновление cfu. Сколько не обновлял конфигурации, всегда наблюдал что-то похожее на то, что платформа из cfu создает за кулисами полноценный cf.
2. partizand 130 18.07.22 15:28 Сейчас в теме
(1)
1.
Зачем здесь рабочая база, почему сразу не начинать разработку от актуальной версии хранилища?

Исходная точка - нужна чистая база для разработки. В модели одна база - одна доработка. Рабочая база нужна, что бы получить данные для тестирования, которые там есть. И необходимость пройти "культурно" обработчики обновления разных версий.
2. Да, тестирование в базе разработчика. Можно полностью использовать технологию разветвленной разработки и получить хранилище проекта в терминах технологии, которое отдать аналитику.Встречный вопрос, где еще можно тестировать?
3.
Почему просто не загрузить конфигурацию, соответствующую релизу?
. Неясно что имеется в виду. Какое действие в конфигураторе этому соответствует? Моя идея в том что, что есть обработчики обновлений соответствующих версий. И обновление может быть не на одну версию, а на несколько.
4. Не могу сказать сколько времени это займет, на мой взгляд не дольше обычного. Сравнение объединение процесс не быстрый, но от него никуда не денешься, других вариантов переноса доработок в конфигураторе нет. Возможно схема долгая, хотя не помню, что бы процесс переноса занимал много времени, может подзабыл. Я делал так и мелкие задачи.
Предполагается, что доработки не выпускаются в прод сразу, как вы их сделали. Накапливаются и потом готовится релиз.

Решаемые задачи и область, когда такой подход применим описал в начале статьи, не знаю как еще расписать. Возможно дополнительные вопросы помогут.
Возможно вы опишите вашу схему, так мне будет проще вас понять.
3. dhurricane 18.07.22 16:47 Сейчас в теме
(2)
1. Мне казалось, что намного практичнее держать базу со всеми наработками, которые выполнены другими разработчиками. Если Вам потребуется использовать наработки другого разработчика, коих еще нет в рабочей базе, то Вы получите код, но не его тестовые данные.

2. Еще можно тестировать в общей тестовой базе. Там у аналитика свои сквозные примеры, меньше приходится переключаться между базами разработчиков, если он курирует нескольких, заводить одни и те же тестовые данные.

3. "Загрузить конфигурацию из файла". Конфигурацию для загрузки получаем в виде файла поставки (cf) из релизного хранилища. А почему не должны сработать обработчики обновления? Если конечно их не удаляли в течение подготовки очередного релиза, что было бы странно. В течение разработки наращиваем номер версии конфигурации, добавляем все новые обработчики обновления. При выпуске релиза и запуске рабочей базы они все разом отработают.

4. Речь как раз про процесс накопления. Получается, мы не 1 раз сравниваем-объединяем конфигурации при подготовке релиза, а всякий раз это делает разработчик при переносе протестированных данных в ветку релиза. В моем представлении это жутко долгая операция на какой-нибудь ERP, в совокупности от всех разработчиков даст большую потерю времени. Процесс обновления поставкой тоже не скорый. Не уходит ли на эти переносы и обновления до пары часов на каждую задачу для ERP?

Как я понял конечную цель: мы не хотим скидывать непротестированные задачи в прод. Используй мы обычное хранилище разработки, мы неизбежно встаем перед проблемой вырезания непринятых задач при подготовке конфигурации релиза. С предложенным Вами подходом разработчик новой функциональности сам переносит свои наработки в релизное хранилище. Непротестированные (непринятые) задачи так и остаются в базах разработки, ожидая своего часа. Если так, то продолжу идею: мы отказываемся от идеи сваливать все задачи релиза в одно хранилище, разделяя их служебными комментариями вида "//+++", в пользу идеи раскидать задачи в работе по разным информационным базам. Механизм поставок здесь лишь для подпитки этой ИБ обновлениями готовящегося релиза.
5. partizand 130 18.07.22 17:21 Сейчас в теме
(3)
1. Не пойму, зачем вам тестовые данные других доработок? Как содержать эту базу?
2. Да, так удобнее. Но где взять такую базу, что бы по дороге не растерять ничего и не попасть на ошибки переноса

3. "Загрузить конфигурацию из файла" это же долго, и реструктуризация потом?
К тому же у вас типовые не с любой версии на любую могут обновится. Нужны промежуточные обновления. Вам нужно на проде это быстро проскочить, т.к. обычно это внеурочное время и лучше при этом не думать, как правильно объединить. Файлы поставки максимально упрощают этот процесс.

4. Доработку программист должен куда-то перенести. Это сравнение объединение каждой доработки в любом случае. У вас получается доработки накапливаются в базе программиста, а потом переносятся махом в хранилище и оттуда сразу в релиз? Откуда тогда берете общую тестовую базу из п.2?

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

Думаю суть вы уловили

мы не хотим скидывать непротестированные задачи в прод

однозначно )

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

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

С предложенным Вами подходом разработчик новой функциональности сам переносит свои наработки в релизное хранилище.

Необязательно. Это может делать "архитектор" по cf отданным разработчиком. Разработчик может вообще доступа к хранилищу не иметь.

Непротестированные (непринятые) задачи так и остаются в базах разработки, ожидая своего часа.

Да, можно сказать это ветки, не влитые в основную.

Механизм поставок здесь лишь для подпитки этой ИБ обновлениями готовящегося релиза.

Не только, еще для легкости обновления прода.

Вообще моя схема базируется на "технологии разветвленной разработки". Я выкинул только хранилище разработчика, и то его можно вернуть назад. Там под отдельной задачей понимается "проект", видимо содержащий несколько "задач". Т.к. процессы переноса могут быть долгими, да.
Можно подумать в сторону того, что на этот проект навесить хранилище и в нем несколько разработчиков. А потом одним махом перенести в релизное хранилище, как вы хотите.
7. dhurricane 18.07.22 17:55 Сейчас в теме
(5)
1. Не пойму, зачем вам тестовые данные других доработок? Как содержать эту базу?
Например, моя задача опирается на другую, выполненную в рамках текущего релиза. В рабочей базе подходящих данных еще нет, мне придется их наколачивать самостоятельно (или просить помощи).

3. "Загрузить конфигурацию из файла" это же долго, и реструктуризация потом?
Если честно, я не в курсе того, что после полной загрузки конфигурации всегда выполняется реструктуризация. Если так, то спасибо за инфу. Но в конце-концов можно не загружать, а обновлять поставкой, полученной в виде cf конечной версии.

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

Не только, еще для легкости обновления прода.
Не понял, как это? В общем, мне пока непонятен смысл последовательного обновления cfu-шками. Неужели после каждого обновления запускается база для выполнения обработчиков обновления? Почему не получается писать обработчики обновления так, чтобы они были актуальны до следующего релиза?

Ну и больше всего меня пока пугает потенциально длительное время всех сравнений-объединений и обновлений. В остальном вроде выигрыш понятен.
8. partizand 130 19.07.22 10:13 Сейчас в теме
(7)
Про последовательное обновление приведу пример с упоминавшейся вами ERP
Если у вас на рабочей базе стоит версия 2.5.8.207, а вам нужно перейти на 2.5.8.245, то вы не можете ее сразу поставить. Вам необходимо сначала установить промежуточную 2.5.8.232, дать обработчикам обновления отработать и только потом устанавливать 2.5.8.245.
Если версии типовых релизов позволяют прямое обновление, такое конечно делать не нужно. Обновлять ли через cfu или cf поставки при этом роли не играет.

Как вы решаете данную ситуацию?

Как вы переносите доработки из хранилища релиза на рабочую базу?

Не понял, как это?

В предложенной схеме у вас рабочая база - это типовая на полной поддержке со всеми замками. Ее можно обновлять легким движением руки из самой базы.
Вы представляете процесс обновления типовой на "поддержке без возможности изменения"?

все работают в одном хранилище разработки

Получается база разработчика подключена к хранилищу и он захватывает объект, что бы вносить правки?
Сам разработчик тестирует видимо в общей базе?
9. dhurricane 19.07.22 11:42 Сейчас в теме
(8)
Если у вас на рабочей базе стоит версия 2.5.8.207, а вам нужно перейти на 2.5.8.245, то вы не можете ее сразу поставить. Вам необходимо сначала установить промежуточную 2.5.8.232, дать обработчикам обновления отработать и только потом устанавливать 2.5.8.245.
В случае с обновлением типовой мы этим процессом управлять не можем. Но своими релизами же легко. Не удалять обработчики обновления, писать их с расчетом на то, что могут быть запущены несколько раз, всегда исходить из того, что запуститься обработчик обновления может на версии, равной последнему нашему релизу. И вуаля, цепочка обновлений уже не требуется.
Как вы решаете данную ситуацию?
В рамках одного нашего релиза не должно быть нескольких обновлений конфигураций поставщика. Вообще, в последнее время обновления типовой крайне редки на моих проектах, поэтому описанное ограничение получается само собой.
Как вы переносите доработки из хранилища релиза на рабочую базу?
Поставкой: создали поставку (cf-файл) из релизного хранилища, обновили им рабочую базу.
Сам разработчик тестирует видимо в общей базе?
Альфа-тестирование разработчик проводит в своей базе. Полноценное тестирование же проводит аналитик в общей базе.
10. partizand 130 19.07.22 14:25 Сейчас в теме
(9)
В рамках одного нашего релиза не должно быть нескольких обновлений конфигураций поставщика.

Примерно понятно. Жесткое требование.
Обычно базируются на типовой, а не пишут свою. И должны соблюдать порядок обновлений. И далеко не всегда рабочая обновляется строго по порядку.

создали поставку (cf-файл) из релизного хранилища, обновили им рабочую базу.

А рабочая база на полной поддержке? Иначе сравнение/объединение должно быть.
11. dhurricane 19.07.22 14:53 Сейчас в теме
(10)
Примерно понятно. Жесткое требование.
А у Вас выпуск внутреннего релиза какую периодичность имеет?
А рабочая база на полной поддержке? Иначе сравнение/объединение должно быть.
Рабочая база на полной поддержке. У нас 2 хранилища: для разработки и для релиза. Сравнение-объединения выполняется при переносе из первого во второе.
12. partizand 130 20.07.22 09:04 Сейчас в теме
(11)
Я несколько далек от решения о выпуске релиза, могу ошибиться.
Насколько я понимаю везде по разному, где-то по готовности релиза к проду, где-то каждую среду.
Не всегда есть возможность поставить на прод следующую типовую версию. Она может содержать ошибки, которые недопустимы. Ее пропускают. А следующее обновление рабочей уже будет включать несколько версий, хотя ваши внутренние релизы и будут укладываться в типовые.
У вас получается требование установки на рабочую базу каждой новой типовой версии одновременно с выходом оной. Не всегда такое возможно, это достаточно сильное требование. То что ваши релизы укладываются в типовые здесь значения не имеет.
13. partizand 130 20.07.22 13:48 Сейчас в теме
(7)

Для интереса сделал замеры по времени сравнения объединения на ERP 2.5. Все достаточно быстро, если не снимать замки с объектов.
Конфигурация сохраняется в файл около 2-3 мин, сравнение объединение шло 1 мин.
Интерфейс несколько задумчивый, но терпимо.

Подробно, что делал (все файловове)
Взял файловую ERP, снял с замка один общий модуль, добавил строку комментария, сохранил. Сохранение конфигурации 2-3 мин.
Создал хранилище из типовой ERP, снял с замка тот же общий модуль. Сравнил/объединил.

Когда измененных объектов будет больше, время видимо увеличится.
Оставьте свое сообщение