PIVO (Pivot + Integration + Version + Operations) CLI - Консольное приложение для автоматизации разработки 1С
Консольное приложение на базе autumn-cli для автоматизации процессов разработки, сборки и деплоя конфигураций 1С:Предприятие. Приложение предоставляет набор команд для работы с Git-репозиториями, управления ветками, коммитами, сборки обработок и обновления баз данных. Работает совместно с 1с решением GitManager
- Управление Git-репозиториями: создание веток, коммиты, merge request
- Работа с конфигурациями 1С: декомпиляция, компиляция, обновление
- Управление обработками: сборка, обновление, перенос в базу
- Работа с расширениями: загрузка и выгрузка расширений конфигурации
- Управление кластером: блокировка/разблокировка баз данных
- Интеграция с GitLab: автоматическое создание merge request
- Интеграция с GitHub: автоматическое создание merge request
- OneScript (oscript) версии 1.8 или выше
- 1С:Предприятие версии 8.3.24 или выше
- Git для работы с репозиториями
- Доступ к кластеру 1С и базе данных
- Убедитесь, что OneScript установлен и доступен в PATH:
oscript --version
- Установите пакет:
opm install pivo-cli
- Для запуска:
pivo-cli [КОМАНДА] --опции
Клонирует Git-репозиторий переданный в опциях в папку указанную в опциях
Параметры:
PathRepository
- Путь к локальному репозиториюPathRemoteRepository
- URL удаленного репозиторияUserName
- Имя пользователя GitUserEmail
- Email пользователя Git
Пример:
pivo-cli init --PathRepository="C:\Projects\MyProject" --PathRemoteRepository="https://gitlab.com/company/myproject.git" --UserName="Developer" --UserEmail="[email protected]"
Выполняет декомпиляцию конфигурации, обработок и расширений, затем создает коммит в Git.
Параметры:
PathRepository
- Путь к репозиториюNameDB
- Имя информационной базыUsrLogin1c
- Имя пользователя 1СUsrPswd1c
- Пароль пользователя 1СPathServer1с
- Путь к серверу 1СNumberPlatform
- Номер версии платформы 1СTypeDB
- Тип СУБД (MSSQLServer, PostgreSQL, и т.д.)ServerDB
- Имя сервераPathServerDB
- Путь к серверу СУБДRunRas
- Запускать RAS (true/false)Extensions
- Имена расширений конфигурации (через запятую)TextCommit
- Текст коммитаUrlRemoteRepository
- URL удаленного репозитория !!!TokenConnectionGitLab
- Токен подключения к GitLab !!!IdProject
- ID проекта в GitLab !!!MethodLoadDB
- Метод загрузки (ibcmd/designer)LoadDB
- Обновлять базу из файлов (true/false)CommitAuthor
- Автор коммита
Для ibcmd
UsrLoginDB
- Имя пользователя СУБДUsrPswdDB
- Пароль пользователя СУБД
Пример:
pivo-cli commit --PathRepository="C:\Projects\MyProject" --NameDB="MyDatabase" --UsrLogin1c="admin" --UsrPswd1c="password" --PathServer1с="localhost" --NumberPlatform="8.3.11.1234" --TypeDB="MSSQLServer" --ServerDB="localhost" --UsrLoginDB="sa" --UsrPswdDB="password" --PathServerDB="localhost" --RunRas="true" --Extensions="Расширение1,Расширение2" --TextCommit="Обновление обработок" --UrlRemoteRepository="https://gitlab.com/company/myproject.git" --TokenConnectionGitLab="your-token" --IdProject="123" --MethodLoadDB="ibcmd" --LoadDB="true" --CommitAuthor="Developer"
Создает новую ветку из develop, обновляет конфигурацию и компилирует обработки.
Параметры:
PathRepository
- Путь к репозиториюNewBranch
- Имя новой веткиNameDB
- Имя информационной базыUsrLogin1c
- Имя пользователя 1СUsrPswd1c
- Пароль пользователя 1СPathServer1с
- Путь к серверу 1СNumberPlatform
- Номер версии платформы 1СTypeDB
- Тип СУБДServerDB
- Имя сервера SQLUsrLoginDB
- Имя пользователя СУБДUsrPswdDB
- Пароль пользователя СУБДPathServerDB
- Путь к серверу СУБДRunRas
- Запускать RASNamesDataProcessors
- Имена внешних обработок (через запятую)Extensions
- Имена расширений конфигурацииLoadDB
- Обновлять базу из файловMethodLoadDB
- Метод загрузки (ibcmd/designer)NameDBWeb
- Имя опубликованной базыServerDBWeb
- Сервер опубликованной базыNotUseCluster
- Не использовать кластерNotUseGit
- Не использовать Git
Пример:
pivo-cli Branch --PathRepository="C:\Projects\MyProject" --NewBranch="feature/new-processing" --NameDB="MyDatabase" --UsrLogin1c="admin" --UsrPswd1c="password" --PathServer1с="localhost" --NumberPlatform="8.3.11.1234" --TypeDB="MSSQLServer" --ServerDB="localhost" --UsrLoginDB="sa" --UsrPswdDB="password" --PathServerDB="localhost" --RunRas="true" --NamesDataProcessors="MyProcessing1,MyProcessing2" --Extensions="Расширение1,Расширение2" --LoadDB="true" --MethodLoadDB="ibcmd"
Возможно делать обновление обработок в базе, для этого у базы должен быть опубликован сервис, пример кода загрузки:
Тут будет пример кода.
Переключается на ветку develop и обновляет конфигурацию.
Создает новую ветку из develop с обновлением конфигурации.
Переходит на девелоп, блокирует базу, если нужно, обновляет базу из хранилища, а так же обновляет обработки и расширения
Создает релизную сборку конфигурации.
Создает новую ветку без дополнительных операций.
Создает merge request в GitLab.
Блокирует информационную базу.
Разблокирует информационную базу.
Создает новые внешние обработки. Обработка создается по подготовленному шаблону в папке "Шаблоны"
Обновляет существующие обработки.
Обновляет обработки из указанной папки.
Компилирует обработки в указаной базе
Обновляет обработки в базе данных.
Обновляет конфигурацию базы данных из файлов.
Перемещает тестовые данные.
Проверка работоспособности приложения
Для безопасности рекомендуется использовать переменные окружения для хранения паролей и токенов: //TODO
Структура будет меняться
pivo-cli/
├── main.os # Главный файл приложения
├── README.md # Документация
├── ФайлНастроек.xml # Настройки слияния конфигураций
├── packagedef # Описание пакета
├── src/
│ ├── Классы/ # Классы команд
│ │ ├── КомандаCommit.os
│ │ ├── КомандаBranch.os
│ │ ├── КомандаInit.os
│ │ └── ...
│ └── Модули/ # Вспомогательные модули
│ ├── ОбщегоНазначения.os
│ ├── РаботаСJSON.os
│ └── ...
- ОбщегоНазначения.os - Общие функции
- РаботаСJSON.os - Работа с JSON-данными
- РаботаСМодулями.os - Работа с модулями конфигурации
- ПубликацияОбработокВБазе.os - Публикация обработок
- ВариантИзмененийФайловGit.os - Отслеживание изменений в Git
- файловыеОперации.os - Файловые операции