|   |   | 
| 
 | Несколько веток кода в одной конфигурации или как организовать работу | ☑ | ||
|---|---|---|---|---|
| 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) а ты как я понимаю сразу на рабочей ведешь разработку, чтоб не погружаться никуда?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |