Skip to content

Для разработчиков

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

Настройка окружения

Требования

КомпонентВерсия
Платформа 1С:Предприятие8.3.24.1548+
OneScriptstable
vrunner2.6.0+
precommit4oneclatest

Первоначальная настройка

batch
# 1. Клонируйте репозиторий
git clone https://github.com/your-org/integration_subsystem.git
cd integration_subsystem

# 2. Установите пакеты OneScript
opm install vrunner precommit4onec

# 3. Установите pre-commit hook
precommit4onec install .

# 4. Скопируйте конфигурацию
copy env.json.example env.json

# 5. Подготовьте базу данных
prepare.cmd

Автоматическая настройка

batch
# Альтернативно — запустите скрипт автонастройки
init-project.cmd

Рабочий процесс

Используем git-flow:

main ─────────────────────────────────────────────────────────
       ↑                                    ↑
develop ──┬─────────┬───────────────────────┼─────────────────
          │         ↑                       ↑
feature/xxx ────────┘      feature/yyy ─────┘

Типичный цикл разработки

batch
# 1. Создайте ветку от develop
git checkout -b feature/my-feature develop

# 2. Синхронизируйте БД с веткой (ОБЯЗАТЕЛЬНО!)
update.cmd

# 3. Напишите тесты (TDD)
# ... разработка тестов ...

# 4. Реализуйте функционал
# ... разработка в Конфигураторе ...

# 5. Убедитесь, что тесты проходят
# Запустите 1С:Предприятие с параметром RunUnitTests

# 6. Выгрузите изменения
decompile.bat

# 7. Зафиксируйте изменения
git add .
git commit -m "feat: описание изменений"

# 8. Создайте Merge Request в develop

Важно!

Всегда запускайте update.cmd после переключения ветки. Иначе возникнут фантомные изменения!

Структура проекта

integration_subsystem/
├── src/
│   ├── cf/                    # Основная конфигурация
│   │   ├── Catalogs/          # Справочники
│   │   ├── CommonModules/     # Общие модули
│   │   ├── InformationRegisters/  # Регистры сведений
│   │   └── ...
│   └── cfe/
│       └── YAXUnit/           # Расширение с тестами

├── tests/
│   ├── uaxunit_config.json    # Конфигурация тестов
│   └── fixtures/              # Тестовые данные

├── build/
│   ├── ib/                    # Рабочая БД
│   └── YAXUNIT.cfe            # Собранное расширение

├── tools/
│   └── JSON/                  # Конфиги vrunner, vanessa

├── prepare.cmd                # Подготовка БД
├── update.cmd                 # Обновление БД
├── decompile.bat              # Выгрузка конфигурации
├── build.cmd                  # Сборка CF
└── test.cmd                   # Запуск тестов

Тестирование

YAXUNIT

Тесты находятся в расширении src/cfe/YAXUnit/CommonModules/.

Соглашения по именованию:

  • ОМ_* — тесты общих модулей
  • РС_*_ММ — тесты регистров сведений
  • СПР_*_ММ — тесты справочников

Структура теста

bsl
// ОМ_инт_ВалидаторПакетов

Процедура ИсполняемыеСценарии() Экспорт
    ЮТТесты.УдалениеТестовыхДанных().ВТранзакции()
        .ДобавитьТестовыйНабор("Валидация")
            .ДобавитьТест("ВалидацияКорректногоСообщения")
            .ДобавитьТест("ВалидацияНекорректногоСообщения");
КонецПроцедуры

Процедура ВалидацияКорректногоСообщения() Экспорт
    // Arrange
    Сообщение = Новый Соответствие;
    Сообщение.Вставить("id", "123");
    Сообщение.Вставить("name", "Test");
    
    Схема = ПолучитьТестовуюСхему();
    
    // Act
    МассивОшибок = инт_ВалидаторПакетов.Валидировать(
        Сообщение, "TestSchema", Схема);
    
    // Assert
    ЮТест.ОжидаетЧто(МассивОшибок).ИмеетДлину(0);
КонецПроцедуры

Генератор тестовых данных

bsl
// Используйте модуль ГенераторТестовыхДанных
ПотокДанных = ГенераторТестовыхДанных.ПотокДанныхИсходящий();
Документ = ГенераторТестовыхДанных.демо_Документ();

Запуск тестов

  1. Откройте Конфигуратор
  2. Сервис → Параметры → Запуск 1С:Предприятия
  3. Параметр запуска: RunUnitTests=<путь>\tests\uaxunit_config.json
  4. Запустите 1С:Предприятие

Соглашения по коду

Регионы модуля

bsl
#Область ПрограммныйИнтерфейс
    // Публичные методы — используются из других модулей
#КонецОбласти

#Область СлужебныйПрограммныйИнтерфейс
    // Внутренние методы подсистемы
#КонецОбласти

#Область СлужебныеПроцедурыИФункции
    // Приватные методы модуля
#КонецОбласти

Префиксы объектов

ПрефиксНазначение
инт_Объекты подсистемы интеграции
пэмОбъекты мониторинга Prometheus
ИТКВ_Консоль разработчика (вспомогательное)

BSL Language Server

Используйте директивы для отключения проверок:

bsl
// BSLLS:Typo-off
// ... код с техническими терминами ...
// BSLLS:Typo-on

CI/CD

Jenkins Pipeline

Файл Jenkinsfile определяет пайплайн:

  1. Checkout
  2. Подготовка базы
  3. Загрузка расширения
  4. Запуск тестов
  5. SonarQube анализ
  6. Сборка артефактов

SonarQube

Настройки в sonar-project.properties:

properties
sonar.projectKey=integration_subsystem
sonar.sources=src/cf
sonar.sourceEncoding=UTF-8

Полезные ссылки

Обновлено:

Документация подсистемы интеграции