Качество кода в 1С — тема вечная и часто недооцененная. Кривой код сложнее поддерживать, в нем чаще возникают ошибки, а ввод нового разработчика в проект превращается в пытку (как и добавление новых фич в таком коде).
Чтобы систематизировать борьбу с техническим долгом, мы у себя в CI/CD давно используем статический анализатор SonarQube. Это мощный инструмент, который помогает отлавливать ошибки, уязвимости и просто неудачные решения в коде до того, как они нанесут реальный ущерб.

Но его настройка «с нуля» под 1С, мягко говоря, нетривиальна. Нужно найти и подобрать совместимые версии плагинов для поддержки синтаксиса BSL и анализа веток в бесплатной версии, правильно настроить параметры Java, разобраться с системными лимитами… В общем, можно легко потратить несколько часов.
Мы используем вот этот репозиторий на GitHub:
https://github.com/Daabramov/Sonarqube-for-1c-docker
Это готовый docker-compose файл, который разворачивает полностью настроенный и готовый к работе SonarQube для 1С.
Что внутри этой сборки? TL;DR
Для тех, у кого нет времени читать дальше, вот суть:
- 🚀 Старт за одну команду. Просто пишете docker-compose up -d в терминале, и через пару минут у вас работающий SonarQube. При условии, что у вас установлен docker.
- 🔌 Все нужные плагины включены. Уже установлены и настроены sonar-bsl-plugin-community для анализа 1С-кода и sonarqube-community-branch-plugin для анализа веток в Community-версии.
- 🇷🇺 Русский язык из коробки. Интерфейс сразу переведен, что удобно для команды.
- ⚙️ Оптимизация под 1С. Автор уже выставил адекватные параметры Java и системные настройки, чтобы Sonar не падал на анализе больших конфигураций.
Зачем это вообще нужно?
Представь, что мы строим дом и нам нужно срочно в него въехать.
Правильный путь: залить прочный фундамент, возвести ровные стены, грамотно проложить все коммуникации. Это долго и дорого, но дом будет стоять десятилетиями.
Быстрый путь: наспех залить фундамент, стены сделать из более дешевых материалов, а трубы кинуть по самому короткому маршруту, прямо поверх стен. Ты въедешь в дом гораздо быстрее! Но это решение имеет свою цену.
Технический долг — это и есть эта будущая цена за быстрое решение.
Через год у тебя просядет фундамент (программа начнет работать нестабильно). Дешевые стены начнут трескаться (появятся баги в самых неожиданных местах). А когда ты захочешь повесить новую полку, тебе придется штробить стену и аккуратно обходить ту самую трубу, проложенную наспех (добавление новых функций станет сложным и долгим).
Ценность этой Docker-сборки в сэкономленном времени. Вместо того чтобы вручную проходить все круги ада с настройкой, вы получаете готовый инструмент и можете сразу сосредоточиться на главном, на анализе своего кода.
Как мы это используем на практике
Мы встроили SonarQube в наши CI/CD пайплайны в GitLab. Каждый push в репозиторий запускает автоматическую проверку кода. Это позволяет отловить потенциальные проблемы еще на этапе разработки, а не после релиза.
Например, вот так выглядит шаг запуска анализатора в нашем open-source проекте actions, который мы используем для сборки 1С-конфигураций.
Ссылка на шаг SonarQube в configuration.yml
Как начать
Все, что вам нужно, это установленный Docker.
- Устанавливаем docker на свой компьютер или сервер.
- Клонируйте репозиторий: git clone https://github.com/Daabramov/Sonarqube-for-1c-docker.git
- Переходим в папку с проектом.
- Запустите команду: docker-compose up -d
Важный момент: для работы SonarQube нужно не меньше 6 ГБ свободной оперативной памяти. Если у вас Docker работает под WSL2 в Windows, возможно, придется поправить конфиг, как описано в README репозитория.
После запуска SonarQube будет доступен по адресу http://localhost:32772 с логином и паролем по умолчанию admin:admin.
А вы используете статические анализаторы в своих 1С-проектах? Какие инструменты помогают вам бороться с техническим долгом и поддерживать код в чистоте? Делитесь опытом в комментариях! 🤔