Skip to content

Commit e391d1f

Browse files
authored
Merge pull request #34 from otymko/develop
Релиз 0.2.0
2 parents 39ff384 + 24791f9 commit e391d1f

23 files changed

Lines changed: 692 additions & 35 deletions

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.os eol=crlf filter=tabspace

.gitconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# filters to convert between tabs to spaces
2+
[filter "tabspace"]
3+
smudge = unexpand --tabs=4 --first-only
4+
clean = expand --tabs=4 --initial

.github/workflows/qa.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Контроль качества
2+
3+
on: [push, pull_request]
4+
jobs:
5+
build:
6+
runs-on: ${{ matrix.os }}
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
os: [ubuntu-latest]
11+
oscript_version: ['1.2.0']
12+
13+
steps:
14+
- uses: actions/checkout@v2
15+
# https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions
16+
- name: Extract branch name
17+
shell: bash
18+
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
19+
id: extract_branch
20+
- name: Установка OneScript
21+
uses: otymko/setup-onescript@v1.0
22+
with:
23+
version: ${{ matrix.oscript_version }}
24+
- name: Установка зависимостей
25+
run: |
26+
opm install opm
27+
opm install xml-parser@0.1.1 && opm install 1connector@2.1.3 && opm install 1bdd && opm install 1testrunner && opm install asserts && opm install fs && opm install coverage
28+
# - name: Авторизация в hub.docker
29+
# uses: azure/docker-login@v1
30+
# with:
31+
# username: ${{ secrets.DOCKER_HUB_USERNAME }}
32+
# password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
33+
- name: Запуск CRS
34+
run: docker run --name crs-host -d -p "5000:80" otymko/crs-apache:8.3.12.1855
35+
- name: Покрытие кода
36+
run: opm run coverage
37+
- name: Извлечение версии пакета
38+
shell: bash
39+
run: echo "##[set-output name=version;]`cat packagedef | grep ".Версия(" | sed 's|[^"]*"||' | sed -r 's/".+//'`"
40+
id: extract_version
41+
- name: Установка Sonar-scanner
42+
uses: warchant/setup-sonar-scanner@v1
43+
- name: Анализ в SonarQube (branch)
44+
if: github.event_name == 'push' && github.repository == 'otymko/crs-api'
45+
run: sonar-scanner
46+
-Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
47+
-Dsonar.host.url=${{ secrets.SONARQUBE_HOST }}
48+
-Dsonar.branch.name=${{ steps.extract_branch.outputs.branch }}
49+
-Dsonar.projectVersion=${{ steps.extract_version.outputs.version }}
50+
- name: Анализ в SonarQube (pull-request)
51+
if: github.event_name == 'pull_request' && github.repository == 'otymko/crs-api'
52+
run: sonar-scanner
53+
-Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
54+
-Dsonar.host.url=${{ secrets.SONARQUBE_HOST }}
55+
-Dsonar.branch.name=${{ steps.extract_branch.outputs.branch }}
56+
-Dsonar.pullrequest.key=${{ github.event.pull_request.number }}
57+
-Dsonar.pullrequest.branch=${{ github.event.pull_request.head.ref }}
58+
-Dsonar.pullrequest.base=${{ github.event.pull_request.base.ref }}
59+
-Dsonar.scm.revision=${{ github.event.pull_request.head.sha }}

.github/workflows/release.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Подготовка релиза и публикация в хабе
2+
3+
on:
4+
release:
5+
types: [published, edited]
6+
7+
jobs:
8+
build:
9+
runs-on: ${{ matrix.os }}
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
os: [ubuntu-latest]
14+
oscript_version: ['1.2.0']
15+
steps:
16+
- uses: actions/checkout@v2
17+
- name: Установка OneScript
18+
uses: otymko/setup-onescript@v1.0
19+
with:
20+
version: ${{ matrix.oscript_version }}
21+
- name: Установка зависимостей
22+
run: |
23+
opm install opm
24+
opm install xml-parser@0.1.1 && opm install 1connector@2.1.3
25+
- name: Сборка пакета
26+
run: opm build
27+
- name: Заливка артифактов
28+
uses: actions/upload-artifact@v2
29+
with:
30+
name: crs-api.zip
31+
path: ./crs-api-*.ospx
32+
- name: Заливка в релиз
33+
uses: AButler/upload-release-assets@v1.0
34+
with:
35+
files: ./crs-api-*.ospx
36+
repo-token: ${{ secrets.GITHUB_TOKEN }}
37+
- name: Публикация в hub.oscript.io
38+
shell: bash
39+
run: opm push -f ./crs-api-*.ospx --token ${{ env.TOKEN }} -c stable
40+
env:
41+
TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/testing.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Тестирование
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
- mail
8+
pull_request:
9+
10+
jobs:
11+
build:
12+
runs-on: ${{ matrix.os }}
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
os: [ubuntu-latest]
17+
oscript_version: ['1.2.0']
18+
19+
steps:
20+
- uses: actions/checkout@v2
21+
- name: Установка OneScript
22+
uses: otymko/setup-onescript@v1.0
23+
with:
24+
version: ${{ matrix.oscript_version }}
25+
- name: Установка зависимостей
26+
run: |
27+
opm install opm
28+
opm install xml-parser@0.1.1 && opm install 1connector@2.1.3 && opm install 1bdd && opm install 1testrunner && opm install asserts && opm install fs
29+
# - name: Авторизация в hub.docker
30+
# uses: azure/docker-login@v1
31+
# with:
32+
# username: ${{ secrets.DOCKER_HUB_USERNAME }}
33+
# password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
34+
- name: Запуск CRS
35+
run: docker run --name crs-host -d -p "5000:80" otymko/crs-apache:8.3.12.1855
36+
- name: Тестирование
37+
run: opm run test

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
build
22
out
33
oscript_modules
4-
*.ospx
4+
*.ospx
5+
coverage
6+
.vscode/launch.json

README.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# CRS API - библиотека взаимодействия c сервером хранилищ 1С по HTTP
22

3+
[![GitHub release](https://img.shields.io/github/release/otymko/crs-api.svg?style=flat-square)](https://github.com/otymko/crs-api/releases)
4+
[![Статус Порога Качества](https://open.checkbsl.org/api/project_badges/measure?project=crs-api&metric=alert_status)](https://open.checkbsl.org/dashboard?id=crs-api)
5+
[![Покрытие](https://open.checkbsl.org/api/project_badges/measure?project=crs-api&metric=coverage)](https://open.checkbsl.org/dashboard?id=crs-api)
6+
[![Технический долг](https://open.checkbsl.org/api/project_badges/measure?project=crs-api&metric=sqale_index)](https://open.checkbsl.org/dashboard?id=crs-api)
7+
[![GitHub license](https://img.shields.io/github/license/otymko/crs-api.svg?style=flat-square)](https://github.com/otymko/crs-api/blob/develop/LICENSE.md)
8+
39
## Краткое описание
410

511
Библиотека позволяет напрямую взаимодействовать с сервером хранилища 1С по протоколу HTTP.
@@ -30,6 +36,29 @@ opm install -f /path/to/crs-api.osxp
3036

3137
## Примеры
3238

39+
### Версия сервера хранилищ 1С
40+
41+
Для запроса версии сервера хранилищ 1С:
42+
```bsl
43+
АдресХранилища = "http://localhost/repo/repo.1cc";
44+
ВерсияСервераХранилища = МенеджерХранилищ.ВерсияСервераХранилища(АдресХранилища);
45+
```
46+
47+
После выполнения, `ВерсияСервераХранилища` содержит версию сервера хранилища. Например: `8.3.12.1855`.
48+
В случае возникновения будет вызвано исключение.
49+
50+
### Проверка существования хранилища 1С
51+
52+
Для проверки существования хранилища 1С:
53+
```bsl
54+
АдресХранилища = "http://localhost/repo/repo.1ccr";
55+
ИмяХранилища = "MyTrade";
56+
ВерсияПлатформы = "8.3.15.1855";
57+
ХранилищеСуществует = МенеджерХранилищ.ХранилищеСуществует(АдресХранилища, ИмяХранилища, ВерсияПлатформы);
58+
```
59+
60+
Если хранилище существует, то значение переменной `ХранилищеСуществует` будет `Истина`.
61+
3362
### Создание нового хранилища 1С
3463

3564
Для создания нового хранилища 1С требуется:
@@ -123,6 +152,18 @@ opm install -f /path/to/crs-api.osxp
123152

124153
При неуспешном удалении (деактивации) будет вызвано исключение с текстом ошибки.
125154

155+
### Восстановление пользователя хранилища
156+
157+
Для восстановления существующего пользователя в хранилище, нужно знать его идентификатор.
158+
```bsl
159+
// ...
160+
ИмяПользователя = "Иванов Иван";
161+
ПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);
162+
КлиентХранилища.ВосстановитьПользователя(ПользовательХранилища.Идентификатор);
163+
```
164+
165+
При неуспешном удалении (деактивации) будет вызвано исключение с текстом ошибки.
166+
126167
### Изменение пользователя хранилища
127168

128169
Изменение пользователя можно понадобиться для следующего:
@@ -175,6 +216,25 @@ opm install -f /path/to/crs-api.osxp
175216

176217
`СписокПользователей` будет содержать массив объектов `ПользовательХранилища`.
177218

219+
### Получение список версий в хранилище
220+
221+
Для получения списка версий в хранилище:
222+
```bsl
223+
// ...
224+
СписокВерсийВХранилище = КлиентХранилища.СписокВерсий();
225+
```
226+
227+
`СписокВерсийВХранилище` будет содержать массив объектов `ВерсияХранилища`. Из объекта `ВерсияХранилища` доступны следующие свойства:
228+
* `Идентификатор` - внутренний идентификатор версии (GUID)
229+
* `Номер` - порядковый номер версии
230+
* `Дата` - дата создания версии
231+
* `ВнутренняяВерсия` - внутренняя версия конфигурации
232+
* `Версия` - версия конфигурации
233+
* `Пользователь` - автор версии
234+
* `Версия1С` - номер версии платформы 1С, под которой была создана версия
235+
* `Комментарий` - комментарий к версии хранилища
236+
* `Данные` - данные конфигурации, пока закрытый пакет
237+
178238
## Как вести разработку
179239

180240
Используется:

lib.config

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<package-def>
2+
<class name="КлиентХранилища" file="src/Классы/КлиентХранилища.os"/>
3+
<class name="ОтветСервиса" file="src/Классы/ОтветСервиса.os"/>
4+
<class name="ПараметрыСозданияХранилища" file="src/Классы/ПараметрыСозданияХранилища.os"/>
5+
<class name="ПользовательХранилища" file="src/Классы/ПользовательХранилища.os"/>
6+
<module name="Вспомогательный" file="src/Модули/Вспомогательный.os"/>
7+
<module name="МенеджерЗапросов" file="src/Модули/МенеджерЗапросов.os"/>
8+
<module name="МенеджерХранилищ" file="src/Модули/МенеджерХранилищ.os"/>
9+
<module name="ОбработкаXML" file="src/Модули/ОбработкаXML.os"/>
10+
<module name="РолиХранилища" file="src/Модули/РолиХранилища.os"/>
11+
</package-def>

packagedef

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,17 @@
44
//
55

66
Описание.Имя("crs-api")
7-
.Версия("0.1.0")
7+
.Версия("0.2.0")
88
.Автор("Tymko Oleg")
99
.АдресАвтора("olegtymko@yandex.ru")
1010
.Описание("Взаимодействие с хранилищем 1С по HTTP API")
1111
.ВерсияСреды("1.0.21")
1212
.ВключитьФайл("src")
13+
.ВключитьФайл("lib.config")
1314
.ВключитьФайл("README.md")
14-
.ВключитьФайл("LICENSE.md")
15-
.ОпределяетКласс("КлиентХранилища", "src/Классы/КлиентХранилища.os")
16-
.ОпределяетКласс("ПараметрыСозданияХранилища", "src/Классы/ПараметрыСозданияХранилища.os")
17-
.ОпределяетКласс("ПользовательХранилища", "src/Классы/ПользовательХранилища.os")
18-
.ОпределяетМодуль("МенеджерХранилищ", "src/Модули/МенеджерХранилищ.os")
19-
.ОпределяетМодуль("РолиХранилища", "src/Модули/РолиХранилища.os")
15+
.ВключитьФайл("LICENSE")
2016
.ЗависитОт("xml-parser", "0.1.1")
2117
.ЗависитОт("1connector", "2.1.3")
22-
.ЗависитОт("xml-parser", "0.1.1")
2318
.РазработкаЗависитОт("1bdd")
2419
.РазработкаЗависитОт("1testrunner")
2520
.РазработкаЗависитОт("asserts")

sonar-project.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
sonar.projectKey=crs-api
2+
sonar.projectName=crs-api
3+
sonar.sources=./src
4+
sonar.sourceEncoding=UTF-8
5+
sonar.coverageReportPaths=coverage/genericCoverage.xml

0 commit comments

Comments
 (0)