История одного проекта обновления

28.02.20

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

История одного проекта обновления, хранилище, групповая разработка.
 
 Предисловие
 
 Соглашения и определения
 
 Подготовка
 
 План перехода (рисунок)
 
 Список дважды измененных
 
 Обновление модуля (рисунок)
 
 База 2Измененных
 
 База Кандидат
 
 Проверки обновления
 
 Возможные ошибки и проблемы
 
 Приложение 1. Длительность работ по дням и часам
 
 Приложение 2. План тестирования нового релиза УТ
 
 Благодарности

 

История одного проекта обновления хранилище групповая разработка

См. также

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

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

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

4900 руб.

29.06.2022    8994    78    4    

107

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

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

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

05.03.2024    1742    user1989937    6    

15

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

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

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

05.02.2024    3683    bayselonarrend    15    

59

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

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

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

22.01.2024    7710    bayselonarrend    50    

86

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

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

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

17.01.2024    2643    kamisov    17    

56

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

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

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

26.12.2023    1281    ardn    1    

24

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

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

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

1 стартмани

20.12.2023    3827    56    salexdv    26    

80

Захват в хранилище по составу подсистем

Групповая разработка (Git, хранилище) Управляемые формы 8.3.8 Конфигурации 1cv8 Абонемент ($m)

Обработка для захвата объектов в хранилище согласно составу подсистем.

1 стартмани

21.11.2023    1291    7    ImHunter    0    

17
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. muskul 06.11.19 10:05 Сейчас в теме
как у вас так быстро рег задания отрабатывают, обновление данных первичных документов помню покоя не давало. Бесконечно крутилось такое чувство
2. vasilev2015 2677 06.11.19 10:19 Сейчас в теме
(1) Здравствуйте !

Объем обновления данных при первом запуске изменяется от релиза к релизу.

За историю перехода от 11.4.1 до 11.4.9 два раза это время было больше 8 часов.

Обновление начиналось в 22-00 мск, Владивосток заметил.

Хорошо, что пользователи отнеслись с пониманием. Утро субботы.
14. Xershi 1473 21.03.20 10:05 Сейчас в теме
(1) а это уже зависит от их количества данных. И количества фоновых, которые поставили. Когда мне все надоело я поставил вместо 8 все 30 проц сразу 100, но зато эффект.
3. Stim213 415 08.11.19 10:58 Сейчас в теме
Почему нельзя было сразу на последний релиз обновиться? Зачем проделывать 80% одной и той же работы на каждом релизе?
4. vasilev2015 2677 08.11.19 12:56 Сейчас в теме
(3) Здравствуйте !

Если пользователей мало - можно установить новую базу и перенести данные, доработки.

У нас более 200 пользователей, поэтому все нужно делать аккуратно, возникающие ошибки приписывать производителю конфигурации УТ - фирме 1С.

При обновлении 1С производит обработку данных, по много часов. Пропустить несколько релизов, сделать свои обработки - затруднительно.
7. RustIG 1301 09.11.19 12:40 Сейчас в теме
(4) вопрос от (3) задают все пользователи, которые платят за обновления, и интересует многих внедренцев 1с...

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

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

Когда поставил последнюю версию, измененных объектов оказалось условно говоря 1000 штук, и стало сложно управлять обновлением.
После этого поставил ближайший релиз к рабочей базе - изменений стало в разы меньше, большинство из них собственные доработки, с которыми знаком... Управлять обновлением сало легко.
И так шаг за шагом, обновляя на ближайший промежуточный релиз - доработанная база приобрела в своем составе механизмы последнего релиза....
17. Xershi 1473 21.03.20 10:35 Сейчас в теме
(4) тут нужно анализировать технологическое окно. И скорость сервера.
Иначе как написали вы многократно выполняли работу, которую можно было бы избежать.
В прочем почитайте что написал ниже будет тоже интересно.
18. Xershi 1473 21.03.20 10:38 Сейчас в теме
(3) если пользователи работают только в пятницу с 12 до 13, то можно.
Автор про технологическое окно и производительность сервера ничего не написал.
Считаем по умолчанию, что возможно только обновление за раз на 1 релиз.
Тогда концепция более чем себя оправдывает.
19. vasilev2015 2677 21.03.20 10:43 Сейчас в теме
(18) технологическое окно с 19-00 мск по 02-00 мск (семь часов). Мы решили пойти длинным путем, через все релизы, поскольку очень боялись многочисленных изменений и неизбежных ошибок. Кстати, иногда обработка данных после обновления занимала все технологическое окно.
20. Xershi 1473 21.03.20 11:47 Сейчас в теме
(19) ну вот и ответ почему автор не мог за технологическое окно поставить все релизы.
В таком ключе тогда не понятно как партнёр вам мог установить обновление на последний релиз.
5. maXon777 128 09.11.19 07:16 Сейчас в теме
Спасибо за статью - интересные идеи
1) как вы оцениваете оценку обновления в миллион по сравнению с затраченными ресурсами? Завышена/занижена?
2) как вы успеваете перенести все доработки за 3 дня? Изменений / пересечений не так много?
3) насколько активно используются расширения? Какие изменения решили оставлять в основной конфигурации (хотя их можно было бы делать в расширениях)
4) в процессе обновления скорей всего находились ошибки разработчиков или появлялось желание все переделать - можете поделиться ключевыми? (Про форму отчета увидел)
5) почему решили обновиться на актуальный релиз? Будете ли проводить обновления дальше с выходами релизов или будете накапливать какую-то критическую массу изменений
6. vasilev2015 2677 09.11.19 10:12 Сейчас в теме
(5) Здравствуйте !

1. Оценка ИжТиСи завышена на 20-30%. Наши затраты составили стоимость труда программиста за 4 месяца + промышленная эксплуатация + тестирование со стороны заказчика + затраты на менеджмент (администрирование). Но последние два пункта не входят в смету ИжТиСи.
2. Тексты модулей обновляем внешней программой, используя слияние в общий предок. Модуль в 10 тысяч строк обновляется 10 секунд, если нет конфликтов (участков кода, которые поменяли 1С и мы). Общие модули и модули форм обновляем за 2 дня, потом добавляем реквизиты. Количество пересечений (2Измененных модулей) можно оценить по слайду
3. У нас слишком много кода вынесено в расширение - не было плана развития программы. Расширение приходилось менять (обновлять), если изменились наименования модулей (реквизитов). Как правило, в расширение выносят только неизмененные в конфигурации объекты. Исключения - реже. Например, наш локальный объект (без модуля и форм) можно включить в расширение, чтобы он попал в интерфейс.
4. Про доработку типовой конфигурации для большого числа пользователей планирую отдельный цикл статей, первая https://infostart.ru/public/1058730/
5. Будем обновляться раз в квартал, чтобы программа не превратилась в "болотце", соответствовала законодательству и могла взаимодействовать с современными программами.

Спасибо за вопросы.
8. starjevschik 09.11.19 12:59 Сейчас в теме
Удивительно бессмысленная трата ресурсов работодателем.
9. vasilev2015 2677 09.11.19 21:43 Сейчас в теме
(8) Здравствуйте ! Отвечу стихотворением И.Бродского

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

О, не выходи из комнаты, не вызывай мотора.
Потому что пространство сделано из коридора
и кончается счетчиком. А если войдет живая
милка, пасть разевая, выгони не раздевая.

Не выходи из комнаты; считай, что тебя продуло.
Что интересней на свете стены и стула?
Зачем выходить оттуда, куда вернешься вечером
таким же, каким ты был, тем более -- изувеченным?

О, не выходи из комнаты. Танцуй, поймав, боссанову
в пальто на голое тело, в туфлях на босу ногу.
В прихожей пахнет капустой и мазью лыжной.
Ты написал много букв; еще одна будет лишней.

Не выходи из комнаты. О, пускай только комната
догадывается, как ты выглядишь. И вообще инкогнито
эрго сум, как заметила форме в сердцах субстанция.
Не выходи из комнаты! На улице, чай, не Франция.

Не будь дураком! Будь тем, чем другие не были.
Не выходи из комнаты! То есть дай волю мебели,
слейся лицом с обоями. Запрись и забаррикадируйся
шкафом от хроноса, космоса, эроса, расы, вируса.
10. TerveRus 11.11.19 17:11 Сейчас в теме
Спасибо за статью, интересно.
Хорошо, конечно, что так мало операций у пользователей, и все они внутри базы, а как быть с тестированием в копии базы функционала обмена или интеграции с внешними системами? Ведь если запускаешь обмен данными, то он должен быть непременно в рабочей базе, потому что во внешнюю систему должны уйти нужные достоверные не тестовые данные, и вернутся тоже измененные объекты. Это, например, касается всяческих систем маркировки.
11. vasilev2015 2677 11.11.19 20:04 Сейчас в теме
(10) Здравствуйте !

Мне повезло участвовать в становлении ЕГАИС в крупнейшей алкогольной компании Северо-Запада (ФПК). Использовали тестовый контур, а в рабочем - делали на аффилированные фирмы тестовые накладные, которые можно было легко вернуть. Перед отправкой сообщения можно просматривать в xml. Если посылать продажи, которых нет на остатке - ФАС вернет отказ, ничего страшного.

В общем, с внешними программами есть свои сложности, но работать можно.
12. Irina_Krasilnikova 22.11.19 11:04 Сейчас в теме
Николай, добрый день!
Меня зовут Ирина Красильникова, я руководитель отдела сервиса в компании «1С-ИжТиСи». Вы с моими коллегами уже обсудили ситуацию с оценкой вашего проекта — спасибо, что скорректировали цифры в посте для других участников сообщества. С вашего разрешения, прокомментирую и дополню материал с точки зрения компании-аутсорсера и как непосредственный участник оценки вашего проекта.

Расскажу, как мы в компании «1С-ИжТиСи» оцениваем и проводим подобные непростые обновления конфигураций.

1. Для обновляемой конфигурации (а также всех связанных с ней расширений, внешних отчетов и обработок) мы формируем список всех объектов и проводим анализ всех изменений относительно типовой конфы. Это позволяет заранее найти наиболее сложные для обновления участки, которые потребуют ручной работы и особого внимания. Например, если раньше проводилось частичное обновление.
2. На основе анализа оцениваем трудоемкость работ по нашему плану обновления. Этапы плана такие:
• Непосредственно обновление самой конфигурации с созданием промежуточных конфигураций. Целиком и полностью поддерживаем, что переход сразу же на финальный релиз, минуя промежуточные, усложнит управление обновлением и может привести к потере данных.
• Отдельный этап по адаптации расширений.
• Обязательное тестирование обновленной конфигурации на стороне «1С-ИжТиСи» — основное количество возможных ошибок мы исправляем до передачи владельцу.
• Только после этого — тестирование обновленной конфигурации на стороне заказчика.
• Адаптация интеграции с внешними системами.
• Тестовая эксплуатация с ключевыми пользователями.
В идеале лучше развернуть две базы и работать сразу в обеих, выявляя отклонения. В этот же этап закладывается время наших консультантов на обработку и решение замечаний от пользователей.
• Промышленная эксплуатация.
• Отдельно выделю этап актуализации: если вы дорабатываете систему уже во время обновления, то к началу тестовой эксплуатации вы можете передать нам эти изменения для оценки и переноса в обновлённую конфигурацию. Как правило, этот этап укладывается в 40 часов.

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

Еще один экономический нюанс — зачастую при обновлении собственными силами стоимость проекта оценивают только с точки зрения рабочего времени специалистов, не включая накладные расходы компании — поэтому сравнивать цифры напрямую было бы несколько лукаво =)

Надеюсь, эта информация будет интересна тем, кто планирует такие обновления, а выбор — делать переход собственными силами или привлекать стороннюю компанию, — конечно же, всегда будет на стороне заказчика.
1С-ИжТиСи; acanta; +2 Ответить
13. vasilev2015 2677 22.11.19 11:24 Сейчас в теме
(12) Здравствуйте, Ирина !

Совместный проект у нас не получился,
но осталось обоюдное хорошее впечатление.

:-))
16. Xershi 1473 21.03.20 10:27 Сейчас в теме
(12) мы как-то обратились к партнёру.
Цифры были меньше.
Но сумма тоже приличная.
Я тогда делал как описал автор.
И тогда действительно это долго и было сопоставимо с тем что нам предоставили. В этот раз я все обновил за один вечер но последовательно и как результат экономия огромная.
Но если нет спеца в штате и боязно за результат, то конечно нужно обращаться к тем кто его будет гарантировать.
А на цену партнёр закладывает риски и я думаю от 500к 30%, а то и все 50% они и есть.
Поэтому все честно. Клиент получает проект под ключ. Партнёр сливки, если проект будет предсказуемый!
15. Xershi 1473 21.03.20 10:17 Сейчас в теме
У меня была похожая ситуация, только ещё хуже.
УТ для РБ плюс CRM спарка.
Делали допилы в конфе, что то через расширение.
Партнёр сказал, что спарку обновлять не будет. Обновляйте сами и теперь есть модуль CRM.
Ну и вот стояла задача обновлять УТ 11.4.1 до УТ 11.4.11.
Обновил до УТ 11.4.9 и понял что модуль CRM не тянет. Проблемы вы в статье озвучивал. Пришлось откатывать УТ до 11.4.7.
Куча косяков вылезло. Нашёл ошибки разработчиков CRM.
Но с горем пополам за 2 недели я сделал все обновления.
А на рабочей базе все релизы поставил за вечер. Именно для этого нужно хранилище.
Почему вы написали что 1 разработчику не нужно хранилище?
Рекомендую это исправить.
Ну потом конечно что то вылезло.
Где-то логика 1с менялась, но это не критично.
Тестили все пользователи на базе для разработки. В ваших терминах это 2изменения.
Лентяи конечно, но хоть что-то.
Кстати пришёл к мысли, что нужно писать автоматизированные тесты.
Т.к. сам ещё этим не занимался тема очень интересна.
Оставьте свое сообщение