Код должен работать и поддерживаться.
SonarQube помогает с обоими.

Плохой код — дорогой код. Мы используем SonarQube в CI/CD, чтобы ловить ошибки, уязвимости и запахи кода ещё до релиза. Ниже — готовая сборка для 1С (BSL) в Docker, примеры интеграции и пошаговый старт.

1С:Предприятие · BSL SonarQube Community Static Analysis CI/CD · GitLab Docker Compose
TL;DR
🚀
Старт за одну команду

Запусти docker-compose up -d — и через пару минут SonarQube готов.

🔌
Плагины уже внутри

sonar-bsl-plugin-community + анализ веток в Community.

🇷🇺
Интерфейс на русском

Команде проще стартовать и настраивать правила.

⚙️
Оптимизация под 1С

Адекватные параметры Java и системные лимиты для крупных конфигураций.

Готовая сборка SonarQube для 1С в Docker

Как проверять качество кода в 1С? Готовая сборка в один шаг

Настройка «с нуля» — квест: совместимость плагинов BSL, анализ веток в Community, параметры JVM, системные лимиты. Проще взять готовое:

git clone https://github.com/Daabramov/Sonarqube-for-1c-docker.git
cd Sonarqube-for-1c-docker
docker-compose up -d

Репозиторий: Daabramov/Sonarqube-for-1c-docker. После запуска SonarQube доступен на http://localhost:32772 (логин/пароль — admin:admin).

Важно
  • Нужно ≥ 6 ГБ RAM для комфортной работы.
  • Под Windows/WSL2 проверь конфиг памяти, см. README.
  • Плагины BSL и анализ веток уже предустановлены.
Зачем это нужно?

Технический долг — цена «быстрых» решений. Как у дома с кривым фундаментом: сначала быстро, потом дорого. Анализатор помогает держать фундамент прочным: меньше багов, проще онбординг, быстрее фичи.

Практика

Интеграция с CI/CD (GitLab)

Каждый push запускает анализ: ловим проблемы на этапе разработки, а не после релиза.

Пример шага SonarQube в .gitlab-ci.yml

sonar:
  stage: test
  image: sonarsource/sonar-scanner-cli:latest
  script:
    - sonar-scanner -Dsonar.projectKey=my-1c -Dsonar.sources=src -Dsonar.host.url=http://sonar:9000 -Dsonar.login=$SONAR_TOKEN
  only:
    - merge_requests
    - main

В open-source проекте сборки 1С мы используем похожий шаг: запускается сканер, результаты видны в MR.

Конфигурация проекта sonar-project.properties

sonar.projectKey=my-1c
sonar.projectName=My 1C Project
sonar.sourceEncoding=UTF-8
sonar.sources=./src
sonar.inclusions=**/*.bsl,**/*.os
sonar.exclusions=**/vendor/**,**/build/**
sonar.host.url=http://localhost:32772
sonar.login=${SONAR_TOKEN}

Расширь правила под свой гайд: профиль качества, «блокирующие» проблемы, coverage и пороги допуска.

Пошаговая инструкция

Как начать

1
Установите Docker

Подойдёт рабочая станция или сервер. Проверьте выделенную память (особенно в WSL2).

2
Клонируйте репозиторий
git clone https://github.com/Daabramov/Sonarqube-for-1c-docker.git
3
Запустите сервисы
cd Sonarqube-for-1c-docker
docker-compose up -d
4
Откройте интерфейс

Перейдите на http://localhost:32772, войдите admin:admin, смените пароль.

5
Подключите проект 1С

Создайте проект, добавьте sonar-project.properties, запустите сканер в CI/CD.

Какие статические анализаторы вы используете в 1С-проектах?

Что помогает держать код в чистоте и снижать технический долг? Делитесь опытом 👇

Репозиторий К шагам