|
Несколько веток кода в одной конфигурации или как организовать работу | ☑ | ||
---|---|---|---|---|
0
MaiorovYury
12.03.19
✎
13:06
|
Всем доброго дня!
Саб наверное совсем не в тему, но не знал как иначе это все описать) Имею самописную базу, которую дописываю для заказчика Я единственный разработчик Раньше просто делал обновление и накатывал на рабочую базу Теперь заказчик хочет сам тестировать новый функционал на тестовой базе, до переноса на рабочую Соответственно одновременно может быть несколько параллельных задач и хочется иметь возможность накатить на рабочую базу только одну из выполненных задач, не перенося то, что сделано по второй задаче, пока она не закончена Подскажите, как организовать работу в такой ситуации? Думал сделать 2 разработческие базы и связать с тестовой и рабочей через хранилище конфигурации. Но это какая-то ерунда, мне кажется) Как вообще организована работа в крупных компаниях, особенно когда две разные задачи могут менять модуль одного и того же объекта. |
|||
1
kauksi
12.03.19
✎
13:07
|
Функциональные опции спасут отца русской демократии
|
|||
2
Базис
naïve
12.03.19
✎
13:09
|
Хранилище, номер задачи в каждом коммите и каждой правке кода, соглашения об оформлении изменений в коде. Формы не менять, всё делать кодом.
|
|||
3
MaiorovYury
12.03.19
✎
13:15
|
(2) а в хранилище можно накатить второй коммит без первого
То есть я сделал первую задачу, закоммитил, отдал в тестирование Сделал вторую задачу, закоммитил, отдал в тест. Обе задачи меняют один документ Тут заказчик говорит - первая не нравится, а вторую переноси на рабочую Через хранилище ведь получится только накатить и первую и вторую задачу сразу, верно? |
|||
4
MaiorovYury
12.03.19
✎
13:16
|
(1) я правильно понимаю, что в коде прописывать - если опция подключена, то делать так. Если не подключена, то по старому?
вроде как вариант |
|||
5
MaiorovYury
12.03.19
✎
13:16
|
Но что-то слабо верится, что сама 1с так и делает
Или они git'ом каким-нибудь пользуются? |
|||
6
MaiorovYury
12.03.19
✎
13:18
|
(2) перечитал еще раз) комментарии в коде тоже рассматривал, но как-то велик риск своими кривыми руками что-то не то написать
|
|||
7
Timon1405
12.03.19
✎
13:20
|
(0) справочник ТочкиОтладки, там реквизит ВариантИспользования: для всех, для выбранных пользователей, ни для кого.
и ТЧ пользователи. по умолчанию выключен, можно отладить под определенным пользователем, потом включить в прод выставив "для всех" в пользовательском режиме Делаем предопределенный элемент ТочкаЗадача001 - на него условие в коде. функцию ТочкаАктивна, думаю, напишете сами. |
|||
8
MaiorovYury
12.03.19
✎
13:35
|
(7) красивый костыль)
|
|||
9
MaiorovYury
12.03.19
✎
13:37
|
Спасибо всем кто ответил!
Это действительно все рабочие варианты, но все же больше похожи на костыли, чем метод, как работают в крупных компаниях. Может у меня конечно что-то не то в голове и в крупных компаниях в принципе не допускают решение параллельных задач Но пока мне с трудом верится, что нет более оптимального решения |
|||
10
MaiorovYury
12.03.19
✎
13:37
|
Может задам вопрос так
Как пишут типовые конфигурации в фирме 1С?) |
|||
11
vi0
12.03.19
✎
13:41
|
варианты могут быт разные
один из - несколько хранилищ |
|||
12
MaiorovYury
12.03.19
✎
13:42
|
(11) несколько хранилищ или несколько разработческих баз подключенных к одному хранилищу?
Если первый вариант, можете описать как это может работать? |
|||
13
Timon1405
12.03.19
✎
13:44
|
(10) гит же. ветки, сборки мержди, вот это всё)
|
|||
14
Lama12
12.03.19
✎
13:51
|
(12) На ИТС есть документация к СППР. Но лучше (13)
|
|||
15
unregistered
12.03.19
✎
14:16
|
Есть только два варианта.
Либо классическая работа через Git с использованием EDT. Либо создание отдельного хранилища к каждому техническому проекту с отдельной базой для разработки и тестирования. Продуктив может быть подключен к своему отдельному хранилищу (для хранения истории изменений объектов). Подробнее на ИТС https://its.1c.ru/db/v8std#content:2149184358:hdoc А вся это бредятина с комментированием кода, функциональными опциями и техническими справочниками и ролями - это либо бантики (нормальные комменты, например, нужны вне зависимости от способа ведения разработки), либо чистой воды чушь, которую никто в продуктив не пихает. |
|||
16
SUA
12.03.19
✎
14:57
|
(15) в продуктив еще и не то пихают...
аналог ФО на справочниках видел (живет) константу "Тестовый функционал" видел (умерло) копия базы для тестирования пользователями, сроки переноса в боевую, сравнение/объединение - классика (живет) хранилище с выборочным обновлением (живет если разработчиков на базу немного) Git… ну там свои заморочки "особенно когда две разные задачи могут менять модуль одного и того же объекта." отдельный котел если они взаимозависимы если запускаются обе |
|||
17
vi0
24.03.19
✎
06:09
|
(0) вот посмотри "тематические ветки" https://git-scm.com/book/ru/v2/Ветвление-в-Git-Работа-с-ветками
|
|||
18
Garykom
гуру
24.03.19
✎
06:49
|
(0) В 8-ке это можно частично делать через расширения, отдельные под каждую задачу, затем переносить в основную конфу.
Другой слегка тупой вариант это копии метаданных с префиксами в одной базе. Например есть Справочник1, Справочник2 и Документ1. Допустим Справочник1 использует Справочник2 а Документ1 оба справочника. Тогда при двух параллельных задачах затрагивающих только Документ1 появятся, кроме документа текущей версии еще пз1_Документ1 и пз2_Документ1 в которых и ведем разработку. Но как все это дело автоматизировать для облегчения жизни, особенно слияния когда пз1_Документ1 закончили и переносим все из него в просто Документ1 а затем надо оттуда измененное перенести в пз2_Документ1 для дальнейшей доработки хз. В принципе задача решаема, просто в 1С придется "режим сравнения и объединения" делать не для двух конфигураций а для двух объектов внутри одной конфигурации. |
|||
19
Garykom
гуру
24.03.19
✎
06:54
|
(18)+ Будут некие проблемы если Документ1 используется еще где то, по идее надо для проверок функционала пз1_Документ1 еще и копии тех метаданных делать со ссылками на пз1_Документ1 вместо просто Документ1.
И это должно проверяться и делаться автоматом поиском по конфе и по метаданным и по коду. Ну или предусмотреть замену на лету везде где используется Документ1 на пз1_Документ1 для тестов а затем назад. |
|||
20
palsergeich
24.03.19
✎
11:06
|
В 1с сразу в рабочую не бахают, как устроено - описано в книге вопросы эксплуатации крупных систем
|
|||
21
fisher
25.03.19
✎
10:10
|
(9) А почему и кто, как ты думаешь, начал ваять интеграции 1С с git задолго до появления EDT и даже до появления штатной выгрузки конфы в файлы?
|
|||
22
unregistered
25.03.19
✎
10:41
|
(18) > слегка тупой вариант это копии метаданных с префиксами в одной базе.
Это не просто тупой вариант, а бред. Такое может работать только в том случае, когда твои модифицируемые объекты метаданных нигде более не используются. Что само по себе огромная редкость для современных конфигураций. Например, почти любой документ как минимум является регистратором нескольких регистров и типообразующим в определяемых типах. И это ещё если не вспомнить про БСП с её справочниками объектов метаданных и всеми прочими подсистемами, и различные другие библиотеки, куда может так или иначе входить документ. Эта ахинея могла работать на клюшках и древних снеговиках, где не было никаких библиотек, и многие объекты действительно были относительно изолированы. |
|||
23
Вафель
25.03.19
✎
11:17
|
если ты 1, то можно без веток.
тупо 1 хранилище под разработке, оттуда накатываешь на тестовую. с тестовой переносишь на рабочую |
|||
24
Вафель
25.03.19
✎
11:17
|
да на тестовой не будет истории.
А оно надо? |
|||
25
ptiz
25.03.19
✎
11:32
|
(0) ИМХО, голова распухнет поддерживать несколько веток одной конфигурации.
|
|||
26
Вафель
25.03.19
✎
11:33
|
(25) с нормальными механизмами - как раз не распухнет
|
|||
27
ptiz
25.03.19
✎
11:47
|
(26) Например, я сижу, дорабатываю конфигурацию. Приходит заказчик со словами: "у меня глюк, версия двухнедельной давности". Даже имея готовую конфигурацию нужной версии, вспомнить и уложить в голове работу алгоритмов двухнедельной давности - это надо заново "погрузиться" в ту версию, заново уложить в голове все старые метаданные и алгоритмы, что может занять не один час. А потом еще такое же время - чтобы мыслями вернуться в новую версию и продолжить разработку. Безумная трата времени.
|
|||
28
mikeA
25.03.19
✎
12:35
|
(27) Да куда там погружаться, отладчик в руки и вперёд, с песней.
Разница в том, что работая с Git, можно легко восстановить любую версию конфигурации в своей тестовой базе, внести изменения в эту версию, перенести их в рабочую базу и в текущую версию. https://proglib.io/p/git-github-gitflow/ |
|||
29
Сияющий в темноте
25.03.19
✎
14:26
|
и как всякие хранилища помогут,если есть несколько функционалов,которые,например,в обработке проведения должны работать.
система должна знать место,куда вставить вызов функции,и вставлять ее,если необходимо,а для этого должен быть парсер. |
|||
30
Garykom
гуру
25.03.19
✎
17:44
|
(22) Так кто/что принципиально мешает как я написал так же делать копии "и различные другие библиотеки, куда может так или иначе входить документ".
Или менять там ссылки/имена используемого на лету программно автоматически а не ручками. |
|||
31
Вафель
25.03.19
✎
17:50
|
(27) а ты как я понимаю сразу на рабочей ведешь разработку, чтоб не погружаться никуда?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |