От ручного управления к автоматизации: внедрение практик 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.

Инфостарт Tech Event 2026

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

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

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

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

См. также

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

Как связка редактора Cursor и протокола MCP через утилиту 1С: Platform Tools превращает ИИ-ассистента в полноценного участника разработки на 1С: видит структуру проекта, модули, формы и запросы, а также умеет выполнять действия прямо в конфигурации. Разбираем настройку MCP-сервера за 15 минут, роль файла packagedef и типичные ошибки подключения.

22.09.2026    7153    Ninel_S    15    

-2

Инструментарий разработчика DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С 8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление холдингом Бесплатно (free)

Практическое руководство по выстраиванию процессов версионирования в экосистеме «1С:Предприятие 8»: разбор физики сериализации метаданных, скрытые риски построчного слияния XML, сайзинг 1C:EDT vs gitsync/ibcmd и поэтапный конвейер миграции без остановки релизов.

22.09.2026    441    Ninel_S    0    

0

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Информационная безопасность Инструменты администратора БД Системный администратор Разработчик 1С 8.3 Беларусь Россия Казахстан Абонемент ($m)

Как реализовать безопасное маскирование данных в процессе CI/CD без создания промежуточных копий баз. Объясняем, как использовать инструмент pg_anon для автоматизации скрытия персональных данных при тестировании и развёртывании, сохраняя целостность и структуру информации. Материал объединяет практику Site Reliability Engineering (SRE) с задачами защиты данных, демонстрируя подход, при котором разработчики и DevOps;инженеры могут работать с реалистичными, но обезличенными данными, не нарушая требования безопасности и конфиденциальности.

1 стартмани

11.09.2026    1025    Ninel_S    0    

0

DevOps и автоматизация разработки Администрирование СУБД Групповая разработка (Git, хранилище) Системный администратор Разработчик Руководитель проекта Стажер 1С 8.3 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1C:ERP Беларусь Россия Казахстан Абонемент ($m)

В четвёртой части серии SRE-Suite-for-1C-platform мы переходим к практической автоматизации развёртывания отказоустойчивого кластера PostgreSQL для высоконагруженных систем 1С на Linux. В материале подробно разбирается инженерное решение без HAProxy — с использованием виртуального IP-адреса и vip-manager от CYBERTEC, обеспечивающего прямое подключение к активному мастеру без лишних задержек и точек отказа. Показана структура Ansible-модуля: подготовка ОС, развёртывание etcd, настройка Patroni с параметрами для больших нагрузок 1С. В конфигурационный шаблон Patroni автоматически закладываются параметры, критически важные для высоконагруженных баз данных, запуск vip-manager и полная автоматизация создания трёхнодового кластера. В конце — пошаговый Quick Start и планы развития модуля, включая резервное копирование, оптимизацию ОС Linux и rolling updates PostgreSQL.

1 стартмани

11.09.2026    887    Ninel_S    0    

0

DevOps и автоматизация разработки Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1C:ERP 1С:УТ Бесплатно (free)

Я автоматизировал доставку доработок в базы 1С, к которым можно подключиться только по RDP через шлюз. У меня не было ни SSH, ни WinRM, ни общих папок, ни права устанавливать на сервер свои программы. Каналом связи стал диск рабочей станции, проброшенный в RDP-сеанс, а исполнителем команд служит PowerShell-агент в этом сеансе. В статье расскажу о захвате объектов и помещении изменений в хранилище, динамическом обновлении боевой базы с автоматической остановкой, установке расширений и доступе к базе через MCP по COM без клиента 1С. Ещё разберу несколько неочевидных ограничений платформы и RDP, с которыми столкнулся по ходу работы. Часть из них описана на форумах, а упоминаний о других я не нашёл.

10.09.2026    840    BiLBelarus    0    

4

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

В корпоративных инсталляциях «1С:Предприятие 8.3» под управлением PostgreSQL всё чаще проявляются архитектурные пределы масштабирования: рост числа пользователей, обязательная маркировка, плотный поток API-интеграций и высокая стоимость простоя. Вводная часть цикла разбирает ключевые факторы современной эксплуатационной нагрузки и формирует инженерную методологию эволюционной модернизации без остановки продуктивного контура. Материал основан на практическом кейсе «Торговый контур» и показывает, как определить целевые метрики (p95, MTTR, APDEX), выстроить наблюдаемость, стабилизировать работу кластера и подготовить инфраструктуру к дальнейшему масштабированию. Публикация задаёт фундамент для последующих частей, посвящённых телеметрии, оптимизации PostgreSQL, CI/CD и архитектурному росту.

1 стартмани

10.09.2026    892    Ninel_S    0    

5

DevOps и автоматизация разработки Linux HighLoad оптимизация Групповая разработка (Git, хранилище) Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Беларусь Россия Казахстан Абонемент ($m)

Системный анализ архитектурных границ масштабирования учетных систем «1С:Предприятие 8.3» под управлением PostgreSQL в ОС Linux. Формулирование инженерной методологии сквозного проекта «Торговый контур», определение измеримых целевых показателей (p95, MTTR, APDEX) и стратегии поэтапной модернизации эксплуатационного контура без остановки промышленных учетных процессов.

1 стартмани

07.09.2026    1162    Ninel_S    10    

1

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

Четыре года в интеграторе я работал с git и EDT. Git после хранилища полюбил сразу: видно, кто и что менял. С EDT сложнее: тормозит, ошибки при обновлении ERP, автономный сервер внутри него работает только с файловой базой. На новой работе команда захотела перейти на git, я развернул EDT, и оно на второй день разрушило проект при загрузке расширения. Тогда я решил дать команде git с привычным Конфигуратором и инструмент, который за минуту доносит коммит до базы через ibcmd, вместо получасовой загрузки из файлов. На новой работе разрешили ИИ, и я написал это приложение с его помощью: от чтения документации и первого ТЗ до идей в электричке. Впервые за годы снова почувствовал себя творцом, а не закрывателем задач. По дороге приросли выгрузка, объединение и проверка конфигурации по коммитам, YAxUnit и режим MCP-сервера. В статье: схемы, скриншоты, грабли и честный список ограничений. Ссылки пока нет: хочу понять, нужно ли это кому-то, кроме меня.

03.09.2026    11200    KatanaDragon511    29    

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

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

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