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

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    7119    65    4    

87

Наш путь в Git – история одного внедрения CI/CD

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

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

02.10.2023    959    MrWonder    3    

3

Jenkins на службе 1С

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

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

19.07.2023    1244    yukon    4    

11

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

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

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

30.03.2023    6310    check2    10    

82

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

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

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

13.03.2023    1955    ardn    3    

27

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

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

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

27.02.2023    1695    glebushka    2    

13

Кровь, пот и GIT

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

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

17.01.2023    7717    karpik666    45    

65

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

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

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

08.12.2022    6502    kamisov    56    

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

Если я правильно понял вопрос, то обновление значительно быстрее пройдёт, ведь сама загрузка cf с текущими размерами не быстрое дело, плюс реструктуризации таблиц. А при сравнении/объединении можно что-то потерять.
Вроде он все расписал.
6. dhurricane 18.07.22 17:34 Сейчас в теме
(4) У меня скорее вопрос был в необходимости обновления последовательностью файлов cfu против обновления с помощью cf последней версии. Использовать загрузку cf или обновление им же в любом случае быстрее, чем обновление cfu. Сколько не обновлял конфигурации, всегда наблюдал что-то похожее на то, что платформа из cfu создает за кулисами полноценный cf.
2. partizand 111 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 111 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 111 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 111 19.07.22 14:25 Сейчас в теме
(9)
В рамках одного нашего релиза не должно быть нескольких обновлений конфигураций поставщика.

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

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

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

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

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

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