CI/CD для 1С — это автоматический конвейер выпуска изменений: каждая доработка собирается в общую версию конфигурации, проходит проверку кода и автотесты, а затем по единой процедуре попадает на тестовую и рабочую базы. Он убирает три главных источника боли в 1С-разработке — ручное слияние изменений, регрессионное тестирование «на глаз» и ночные обновления с откатами. Релиз становится предсказуемым: понятно, что в него вошло, что проверено и когда он будет готов.

Ниже — для руководителя разработки и ИТ-директора: какие проблемы закрывает CI/CD, из чего состоит конвейер в мире 1С, с чего начинать и как понять, что вашей команде он уже нужен.

Откуда берётся хаос в 1С-разработке

Пока в 1С работают десяток пользователей и один программист, всё держится на аккуратности. С ростом компании растёт поток изменений: доработки, отчёты, интеграции с сайтом, банком, маркетплейсами. Разработчиков становится несколько — и появляются знакомые симптомы:

  • разработчики блокируют друг другу объекты в хранилище;
  • доработки конфликтуют, слияние разбирают вручную часами;
  • изменения переносятся в рабочую базу руками, часто ночью;
  • тестирование — «по возможности», одну и ту же функциональность проверяют снова и снова;
  • кто и зачем изменил модуль, знает только тот, кто изменил.

Хаос появляется не из-за слабой команды, а из-за роста. Процесс доставки изменений никто не проектировал — он сложился сам.

Чем нестабильные релизы опасны для бизнеса

После неудачного обновления система формально работает, но формы открываются с ошибками, документы проводятся медленно, обмен с банком прерывается. Для ИТ это инцидент, для бизнеса — цепочка последствий:

Что происходит в 1СЧто происходит в бизнесе
Не проводятся заказыОтгрузки задерживаются, выручка смещается
Не загружаются выпискиПлатежи «висят», растёт риск кассового разрыва
Медленно работают формыСотрудники тратят часы вместо минут
Поддержка тонет в обращенияхРазвитие системы останавливается

Но главная потеря — предсказуемость. Если каждое обновление — риск, бизнес начинает откладывать новые направления «до после отчётного периода». ИТ из инструмента роста превращается в источник рисков.

CI/CD для 1С: ночные авралы против спокойного автоматического конвейера
CI/CD для 1С: ночные авралы против спокойного автоматического конвейера

Из чего состоит конвейер CI/CD в 1С

CI/CD для 1С: сборка, проверка кода, тестирование и доставка на сервер
CI/CD для 1С: сборка, проверка кода, тестирование и доставка на сервер
ЭтапЧто делаетИнструменты в мире 1С
Хранение версийЕдиный источник правды, история изменений, веткиGit; хранилище 1С с автоматической выгрузкой в Git; 1С:EDT
СборкаСобирает конфигурацию и расширения из исходников в тестовую базуСкрипты на OneScript, vanessa-runner, пакетный режим конфигуратора
Проверка кодаСинтаксис, стандарты, типичные ошибкиСинтаксический контроль, АПК, SonarQube с плагином для BSL
Дымовые тестыОткрываются ли формы, запускается ли системаVanessa Automation, xUnit-подобные фреймворки
Сценарные тестыКлючевые процессы: заказ, оплата, закрытие периодаVanessa Automation (сценарии на Gherkin)
ОтчётностьЧто прошло, что упало, где ошибкаAllure, отчёты системы CI
ДоставкаОбновление тестовых и рабочих баз по регламентуGitLab CI, Jenkins, скрипты обновления

Сборкой и запуском всего этого управляет система CI — чаще всего GitLab CI или Jenkins. Она стартует конвейер по событию: новый коммит, расписание, кнопка релиза.

Важно: инструменты для 1С давно зрелые. Миф «DevOps — это для Java, а не для 1С» устарел.

Какие проблемы снимает CI/CD

БылоСталоЭффект
Ручное слияние конфигурацийGit, автоматическая сборкаКонфликты видны сразу, а не в день релиза
Ручная регрессия после каждого исправленияАвтотесты после каждого изменения или ночьюТестировщики заняты сложными сценариями, а не повторами
Ночные ручные обновленияОбновление по скрипту и регламентуМеньше ошибок переноса, понятный откат
«Кто это поменял?»История в Git, связь с задачамиЗнания не уходят вместе с сотрудником
Растущий техдолгАвтоматическая проверка стандартовКод остаётся поддерживаемым через годы

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

Как внедрять: по шагам, без остановки разработки

Внедрение не обязательно делать сразу целиком. Порядок, который я рекомендую:

  1. Аудит процесса. Как сейчас хранится код, сколько баз, как делается релиз, где болит сильнее всего.
  2. Git как источник правды. Если команда в конфигураторе — настраиваем автоматическую выгрузку хранилища в Git. Работа разработчиков почти не меняется.
  3. Ночная сборка и синтаксический контроль. Каждую ночь конфигурация собирается в тестовую базу и проверяется. Утром команда знает, сломалось ли что-то вчера.
  4. Дымовые тесты. Открытие основных форм, запуск ключевых обработок.
  5. Анализ кода. SonarQube или АПК с правилами, согласованными с командой. Сначала — только на новый код, чтобы не утонуть в старых замечаниях.
  6. Сценарные тесты ключевых процессов. Пишутся постепенно, начиная с самых денежных: заказ, отгрузка, оплата, закрытие месяца.
  7. Автоматическая доставка. Сначала на тестовые базы, затем, когда всё стабильно, — на рабочую по регламенту.

Каждый шаг даёт пользу сам по себе. Ночная сборка с проверками — это уже меньше сюрпризов в день релиза.

Подробнее про сами автотесты — в статье о регрессионном тестировании и автотестах 1С.

Барьеры и как с ними работать

«Это слишком сложно». Начинайте с малого: ночная сборка настраивается быстро, а тесты добавляются по одному. Полный конвейер за месяц не нужен.

«Это дорого». Сравнивайте не с нулём, а со стоимостью сбоев: часы простоя склада, переработки, перегруженная поддержка. Один предотвращённый серьёзный инцидент часто покрывает настройку базового конвейера.

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

«Нет своих DevOps-специалистов». Не обязательно сразу нанимать. Часто конвейер настраивает внешний специалист, а команда параллельно осваивает практики и забирает поддержку себе.

Когда CI/CD уже нужен: чек-лист

Если отмечено три пункта и больше, пора:

  • в разработке больше двух программистов;
  • 1С поддерживает ключевые процессы, и простой стоит денег;
  • обновления делаются ночью или в выходные «чтобы никто не заметил»;
  • после релиза регулярно бывают срочные исправления;
  • регрессионное тестирование занимает дни;
  • никто не может быстро сказать, что вошло в текущий релиз;
  • есть интеграции, которые ломаются после обновлений.

Что меняется в работе команды

Конвейер меняет не только инструменты, но и привычки. Готовьтесь к этому заранее:

  • Небольшие изменения вместо больших пачек. Чем меньше изменение, тем быстрее оно проходит проверки и тем проще найти причину, если что-то упало.
  • Красная сборка — повод остановиться. Если ночная сборка не прошла, сначала чинят её, а потом пишут новый код. Иначе конвейер быстро превращается в шум.
  • Тест вместе с исправлением. Нашли ошибку в рабочей базе — добавьте сценарий, который её ловит. Так набор тестов растёт там, где действительно болит.
  • Релиз по календарю. Когда проверки автоматические, релизы можно выпускать по расписанию, а срочные исправления — по короткому, но тому же пути.
  • Метрики. Время от задачи до рабочей базы, число откатов, число срочных исправлений после релиза. Без них трудно показать бизнесу эффект.
CI/CD — это не про инструменты, а про управляемость: изменения проходят один и тот же проверенный путь, и бизнес может планировать, не опасаясь каждого обновления.

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

Коротко

  • CI/CD для 1С автоматизирует сборку, проверку кода, тестирование и доставку изменений.
  • Он убирает ручное слияние, регрессию «на глаз» и ночные релизы, а главное — возвращает предсказуемость.
  • Работать можно и в конфигураторе: хранилище выгружается в Git, конвейер запускает GitLab CI или Jenkins.
  • Внедряйте по шагам: Git, ночная сборка, дымовые тесты, анализ кода, сценарные тесты, доставка.
  • Окупаемость считают через стоимость сбоев, а не через стоимость инструментов.