Для разработчиков
Информация для разработчиков, участвующих в развитии подсистемы интеграции.
Настройка окружения
Требования
| Компонент | Версия |
|---|---|
| Платформа 1С:Предприятие | 8.3.24.1548+ |
| OneScript | stable |
| vrunner | 2.6.0+ |
| precommit4onec | latest |
Первоначальная настройка
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С:Предприятия
- Параметр запуска:
RunUnitTests=<путь>\tests\uaxunit_config.json - Запустите 1С:Предприятие
Соглашения по коду
Регионы модуля
bsl
#Область ПрограммныйИнтерфейс
// Публичные методы — используются из других модулей
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
// Внутренние методы подсистемы
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Приватные методы модуля
#КонецОбластиПрефиксы объектов
| Префикс | Назначение |
|---|---|
инт_ | Объекты подсистемы интеграции |
пэм | Объекты мониторинга Prometheus |
ИТКВ_ | Консоль разработчика (вспомогательное) |
BSL Language Server
Используйте директивы для отключения проверок:
bsl
// BSLLS:Typo-off
// ... код с техническими терминами ...
// BSLLS:Typo-onCI/CD
Jenkins Pipeline
Файл Jenkinsfile определяет пайплайн:
- Checkout
- Подготовка базы
- Загрузка расширения
- Запуск тестов
- SonarQube анализ
- Сборка артефактов
SonarQube
Настройки в sonar-project.properties:
properties
sonar.projectKey=integration_subsystem
sonar.sources=src/cf
sonar.sourceEncoding=UTF-8Полезные ссылки
- CONTRIBUTING.md — правила участия
- YAXUNIT документация
- vrunner документация