От ручного управления к автоматизации: внедрение практик DevOps в среде 1С

14.04.26

Разработка - DevOps и автоматизация разработки

Статья о том, как команда 1С смогла перейти от ручного управления к полноценной автоматизации, внедрив практики DevOps в среде 1С. Разбираем проблемы, которые мешали развиваться: медленный процесс командной разработки, отсутствие тестирования, длительные релизы, хаос с хотфиксами и ручные действия на каждом этапе. Объясняем, как внедренные решения – GitLab, Jenkins, автоматизированные пайплайны, тестовое окружение, стандарты разработки и тестирования – позволили масштабировать команду и повысить стабильность поставок.

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

 

 

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

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

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

 

 

Код-ревью тормозил процесс из-за большого количества ручных операций. Чтобы отдать задачу на проверку, нужно было создать cf-файл, поместить его в общую папку, где иногда не хватало места. Ревьюер забирал файл, сравнивал его с хранилищем и смотрел изменения. Они могли отличаться, и приходилось дополнительно разбирать с разработчиком, что было изменено. Финальным этапом становилось само ревью, при этом не было единой точки входа, где фиксировалось бы, что именно нужно доработать, и не было структуры выполнения доработок.

 

 

Процесса тестирования фактически не существовало. Отдельные фичи тестировались, но полного тестирования перед выкладкой в прод не было.

 

 

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

 

 

Последняя крупная проблема – работа с фиксами. Фиксы накатывались через расширения, при этом не было единой структуры работы: что считать фиксом, что доработкой. После обновления нужно было уточнять у разработчиков, какие расширения удалить. Если что-то не удалить, могла появиться ошибка.

 

 

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

 

Решение проблем

 

 

Мы знали, что есть метод выгрузки файлов, и однажды, исследуя конфигурацию, решили проверить, существует ли выгрузка с помощью скриптов. Оказалось, да, и это дало полет фантазии, как можно все автоматизировать.

 

 

Для решения проблем автоматизации мы выбрали два инструмента: GitLab для управления кодом, ветками и merge-request, и Jenkins как инструмент доставки кода в прод.

 

 

В команде приняли решение перейти на Git. Что это дало: забрать код из Git, обновить и загрузить в файловую базу теперь занимает около 10 минут – быстро и удобно.

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

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

 

 

С использованием merge-request мы убрали все ручные действия, оставили только самый важный процесс – ревью. В одном месте видны замечания и способы их исправления.

 

 

Пример того, как это может выглядеть.

 

 

Merge-request используют не только для код-ревью: в них подключены автоматизированные проверки. Прикрутили Sonar, который проверяет код на соответствие стандартам. Добавили сборку, проверяющую, что проект собирается корректно по структуре. Включили синтаксическую проверку – особенно важную на начале перехода на Git, когда конфигурация периодически ломалась из-за дублирования кода при разрешении конфликтов. Сборка проходила успешно, но при обращении к модулю база падала. Это удалось закрыть синтаксической проверкой: достаточно выбрать клиент-сервер и прогнать проверку.

Мы также подготовили решение для будущей задачи – внедрение юнит-тестов.

 

 

Следующий шаг – создание тестового окружения. Если все предыдущие проверки прошли успешно, у тестировщика, аналитика и других участников процесса появляется удобная кнопка «создать тестовое окружение» в GitLab. Создается новая серверная база, на нее разворачивается актуальная копия тестового стенда, загружаются изменения из ветки, конфигурация обновляется, генерируется файл для быстрого входа в базу без добавления ее в список. После слияния или отмены merge-request тестовая среда автоматически очищается.

 

 

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

 

 

Внедрение процесса тестирования. Первым шагом стали дымовые тесты, написанные на Vanessa-ADD, так как инструмент удобный и уже содержит большое количество готовых дымовых тестов.

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

Внедрили unit-тесты. Так как база бэковая и количество пользователей минимальное, основной объем тестов должен быть модульным.

Для немногочисленных пользователей написали сценарные тесты на Vanessa-Automation.

 

 

Полностью автоматизировали процесс сборки и доставки релизов в прод. Создание поставки занимает около шести минут. Автоматически в определенный день релиз-менеджер создает ветку «Релиз», и на ней запускаются все скрипты: создание поставки, набор автоматических проверок, разворачивание тестовой среды, приближенной к продовой, где тестировщики могут выполнять регресс-тесты. После успешного прохождения шагов запускается предварительная загрузка конфигурации. Теперь она проходит быстрее. В назначенное время происходит обновление базы – тоже быстро.

 

 

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

 

 

Последняя, но не менее важная проблема – структуризация хотфиксов. Мы утвердили и формализовали стандарты работы с ними. Появилось четкое разделение: что является хотфиксом, а что доработкой. В результате мы получили автоматическое удаление хотфиксов после обновления продовой базы.

 

Трудности, возникшие при внедрении автоматизации

 

 

Первой проблемой стал долгий импорт конфигурации. Большая конфигурация из Git может загружаться 30–60 минут. Для решения выбрали скрипты на ibcmd. Это стандартное коробочное решение для работы с базой данных с большим набором возможностей. Для нас его плюсы – прямая работа с базой данных и многопоточная обработка, которая ускоряет загрузку конфигурации в файловую базу.

 

 

Следующая проблема – кодировка. Так как мы пишем на русском языке, логи тоже на русском, и при выполнении пайплайнов мы часто получали искаженные символы. Решение простое: при запуске раннеров обязательно указывать кодировку. Для Java это обычно utf-8. В скриптах добавляли строку chcp 6500 в начале, и проблемы с кодировкой исчезали.

 

 

Переход на Git занял примерно год – долго, потому что любое новое и непривычное вызывает сопротивление. За это время мы написали инструкции: как получить ветку, как выгрузить, загрузить, отправить изменения, как создать merge-request и так далее.

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

 

Мем Долго ещё? №232694

 

Последняя проблема, которую мы пока не решили – долгая загрузка в прод для некоторых баз. Иногда кажется, что базы лежат на одном сервере и выглядят одинаково, но одна загружается полтора часа, а другая 20 минут. Причина неизвестна. Когда решим, возможно, сделаем отдельную статью о том, как это исправили.

 

Итоги внедрения автоматизации

 

Для бизнеса:

  • Быстрая и стабильная поставка,

  • Меньше трудозатрат,

  • Рост качества,

  • Появилась возможность масштабировать процессы на другие проекты без кратного увеличения трудозатрат на поддержку и запуск процессов,

  • Рост команды без потерь эффективности.

Для команды:

  • Работа с современным стеком и стандартами,

  • Развитие в технологиях вокруг 1С: мы не только пишем в конфигураторе, но и используем другие инструменты.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.

Инфостарт A&PM Event 2026

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Нейросети DevOps и автоматизация разработки Тестирование QA Разработчик 1С 8.3 Бесплатно (free)

Открытый набор правил и скриптов на GitHub для ИИ-агента (агента искусственного интеллекта: Claude Code, Codex и других). Агент сам снимает опись машины, предлагает путь проверки кода: плагин Unica или BSL Language Server со справкой платформы. С вашего «да» ставит недостающее, затем выгружает внешнюю обработку, заводит git и доводит её до зелёного теста YAxUnit. Оба пути проверены с нуля свежим агентом на копии демобазы «Управление торговлей» 11.5, платформа 8.3.27. Новая часть: для задач по данным базы агент выгружает конфигурацию в XML, строит карту объектов и пишет запросы только по именам, найденным в выгрузке. Внутри гайд «Unica на Windows» с известными ошибками и проверенными обходами.

10.11.2026    348    Iliaelagin    0    

1

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Системный администратор Разработчик 1С 8.3 1С 8.5 Бесплатно (free)

В прошлой статье у ERP оставалось 89 отказов загрузки, у ЗУП — 19. Теперь обе конфигурации совпали с эталонами, а собранные файлы прошли круг через платформу. Развертка выделена в открытый репозиторий cf-unwrapper: библиотека на Rust и консольная утилита. Показываю результаты, объясняю границы «100%» и приглашаю к проверкам и развитию проекта.

02.11.2026    315    oyti    1    

1

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С:Предприятие 8 Россия Бесплатно (free)

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

02.11.2026    610    vanya_gonchar    2    

6

Файловый обмен (TXT, XML, DBF), FTP DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Системный администратор Разработчик 1С 8.5 Бесплатно (free)

В прошлой статье я выгрузил Бухгалтерию в XML байт в байт и спросил, на чем проверить дальше. Вы ответили: ERP, старые релизы, зарплата. Прогнал пять конфигураций, от клиента ЭДО до ERP на 120 тысяч файлов. Рассказываю, что сломалось после Бухгалтерии, почему эталону платформы нельзя верить на слово, как выгрузить одну конфигурацию в формат трех версий платформы - и почему cf-конвертер становится отдельным продуктом, Разверткой.

02.11.2026    416    oyti    2    

3

Инструментарий разработчика DevOps и автоматизация разработки Разработчик 1С 8.3 Абонемент ($m)

Как отличить срочное исправление от обычного вечернего коммита? Проверила расчёт показателей поставок по отчёту хранилища 1С и истории двух открытых проектов. На стенде счётчики совпали со сценарием, а в выборке открытого проекта правило «те же объекты» ошиблось во всех шести случаях. Показываю границы такого замера и отличие от метрик DORA. Прилагаются инструмент и материалы опыта.

1 стартмани

29.10.2026    377    Ninel_S    0    

0

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С 8.5 Бесплатно (free)

Выгрузка типовой Бухгалтерии в XML через базу занимает больше четырёх минут. Я написал движок, который читает файл конфигурации напрямую и выгружает его за 35 секунд, совпадая с выгрузкой платформы байт в байт во всех 90 385 файлах. Загрузка обратно тоже работает: круг через платформу совпадает полностью. Рассказываю, как ускоряли, как проверяем и что при загрузке XML теряет сама платформа. А в конце спрашиваю, нужно ли это кому-то, кроме меня, и на какой конфигурации проверить следующей.

27.10.2026    972    oyti    20    

16

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С 8.3 Абонемент ($m)

Хук pre-commit проверяет полный снимок индекса Git в отдельной базе 1С. На «Нано-УТ» и платформе 8.3.27 повторила 12 попыток коммита: восемь прошли, четыре остановлены. Чистый коммит занял 31,8 с. Вызов несуществующего метода общего модуля хук останавливает только с ключом -ExtendedModulesCheck. В архиве версия 2, тесты, инструкция и журналы.

1 стартмани

26.10.2026    401    Ninel_S    2    

-1

Нейросети DevOps и автоматизация разработки Разработчик 1С 8.3 Абонемент ($m)

Я дала агенту Claude Code задачу словами: добавить в учебную конфигурацию документ «Внутреннее потребление товаров», который списывает товар по средней стоимости и не даёт уйти в минус. Три запуска с нуля, каждый принят проверкой на платформе 1С: 1 мин 49 с, 2 мин 33 с и 2 мин 56 с. Показываю, что агент поменял, где ошибался и почему на типовой УТ так быстро не будет.

1 стартмани

26.10.2026    710    Ninel_S    0    

-1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user-z99999 77 14.04.26 14:48 Сейчас в теме
Последняя проблема, которую мы пока не решили – долгая загрузка в прод для некоторых баз. Иногда кажется, что базы лежат на одном сервере и выглядят одинаково, но одна загружается полтора часа, а другая 20 минут. Причина неизвестна. Когда решим, возможно, сделаем отдельную статью о том, как это исправили.

Чем больше времени проходит (пол года, год), тем медленнее работает база. Верно?
2. Sicuro 3 16.04.26 05:57 Сейчас в теме
(1)
медленнее работает база. Ве

Тут именно проблематика с загрузкой поставки.
Вообще нет. как перешли на git некоторые базы стали долго загружаться и уже год-полтора не видим увеличения времени
3. user-z99999 77 16.04.26 09:36 Сейчас в теме
(2) Зайти в Администрирование хранилища конфигурации - закладка Прочие.
Только там может быть секрет скорости скрыт.
4. Sicuro 3 16.04.26 13:16 Сейчас в теме
(3) А причём тут хранилище? Мы им не пользуемся мы пользуемся GIT
Для отправки сообщения требуется регистрация/авторизация