Skip to content

Commit 41dc878

Browse files
authored
Merge pull request #103 from nixel2007/feature/data-source
Указание источников данных в сущностях, расширение документации
2 parents 93476c3 + f27416b commit 41dc878

16 files changed

+201
-156
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
os: [ubuntu-latest, windows-latest]
17-
oscript_version: ['1.8.3', 'stable']
17+
oscript_version: ['1.9.2', 'stable']
1818
steps:
1919
- uses: actions/checkout@v4
2020

.github/workflows/qa.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Setup Onescript Action
1818
uses: otymko/setup-onescript@v1.4
1919
with:
20-
version: "1.8.3"
20+
version: "1.9.2"
2121

2222
- name: Install dependencies
2323
run: |

.github/workflows/release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
name: Подготовка релиза и публикация в хабе
66
# Только события создания и изменения релиза
77
on:
8-
release:
9-
types: [published, edited]
8+
release:
9+
types: [published]
1010

1111
env:
1212
PACKAGE_MASK: entity-*.ospx
@@ -18,7 +18,7 @@ jobs:
1818
fail-fast: false
1919
matrix:
2020
os: [ubuntu-latest]
21-
oscript_version: ['1.8.3']
21+
oscript_version: ['1.9.2']
2222

2323
steps:
2424
# Загрузка проекта

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,14 +409,15 @@
409409
Аннотация `Сущность` имеет следующие параметры:
410410

411411
* `ИмяТаблицы` - Строка - Имя таблицы, используемой коннектором к СУБД при работе с сущностью. Значение по умолчанию - строковое представление имени типа сценария. При подключении сценариев стандартным загрузчиком библиотек совпадает с именем файла.
412+
* `ИсточникДанных` - Строка - Повторяемый. Имя источника данных, используемого коннектором к СУБД при работе с сущностью. Если не задано, считается, что сущность может быть использована с любым источником данных.
412413

413414
<a id="annotation-id" />
414415

415416
### Идентификатор
416417

417418
> Применение: обязательно
418419
419-
Каждый класс, подключаемый к менеджеру сущностей должен иметь поле для хранения идентификатора объекта в СУБД - первичного ключа. Для формирования автоинкрементного первичного ключа можно воспользоваться дополнительной аннотацией `ГенерируемоеЗначение`.
420+
Каждый класс, подключаемый к менеджеру сущностей, должен иметь поле для хранения идентификатора объекта в СУБД - первичного ключа. Для формирования автоинкрементного первичного ключа можно воспользоваться дополнительной аннотацией `ГенерируемоеЗначение`.
420421

421422
Аннотация `Идентификатор` не имеет параметров.
422423

lib.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<package-def>
22
<class name="АбстрактныйКоннектор" file="src/Классы/АбстрактныйКоннектор.os"/>
33
<class name="АбстрактныйКоннекторSQL" file="src/Классы/АбстрактныйКоннекторSQL.os"/>
4+
<class name="ИсточникДанных" file="src/Классы/ИсточникДанных.os"/>
45
<class name="КоннекторSQLite" file="src/Классы/КоннекторSQLite.os"/>
56
<class name="КоннекторJSON" file="src/Классы/КоннекторJSON.os"/>
67
<class name="КоннекторPostgreSQL" file="src/Классы/КоннекторPostgreSQL.os"/>
@@ -12,6 +13,11 @@
1213
<class name="ЭлементПорядка" file="src/Классы/ЭлементПорядка.os"/>
1314
<class name="ХранилищеСущностей" file="src/Классы/ХранилищеСущностей.os"/>
1415
<class name="КоннекторInMemory" file="src/Классы/КоннекторInMemory.os"/>
16+
<class name="АннотацияГенерируемоеЗначение" file="src/Аннотации/Классы/АннотацияГенерируемоеЗначение.os"/>
17+
<class name="АннотацияИдентификатор" file="src/Аннотации/Классы/АннотацияИдентификатор.os"/>
18+
<class name="АннотацияКолонка" file="src/Аннотации/Классы/АннотацияКолонка.os"/>
19+
<class name="АннотацияПодчиненнаяТаблица" file="src/Аннотации/Классы/АннотацияПодчиненнаяТаблица.os"/>
20+
<class name="АннотацияСущность" file="src/Аннотации/Классы/АннотацияСущность.os"/>
1521
<module name="ТипыКолонок" file="src/Модули/ТипыКолонок.os"/>
1622
<module name="ТипыПодчиненныхТаблиц" file="src/Модули/ТипыПодчиненныхТаблиц.os"/>
1723
<module name="ВидСравнения" file="src/Модули/ВидСравнения.os"/>

packagedef

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@
44
//
55
// BSLLS:CodeOutOfRegion-off
66
Описание.Имя("entity")
7-
.Версия("3.4.2.0")
7+
.Версия("3.4.3.0")
88
.Автор("Nikita Gryzlov")
99
.АдресАвтора("nixel2007@gmail.com")
1010
.Описание("entity")
11-
.ВерсияСреды("1.8.3")
11+
.ВерсияСреды("1.9.2")
1212
.ВключитьФайл("src")
1313
.ВключитьФайл("tests")
1414
.ВключитьФайл("lib.config")
1515
.ВключитьФайл("README.md")
1616
.ВключитьФайл("docs")
1717
.ВключитьФайл("LICENSE.md")
18+
.ЗависитОт("annotations", "1.2.0")
1819
.ЗависитОт("asserts", "1.3.0")
1920
.ЗависитОт("fluent", "0.6.1")
2021
.ЗависитОт("fs", "1.0.0")
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Для части полей допустимо высчитывать значение колонки при вставке записи в таблицу.
2+
// Например, для первичных числовых ключей обычно не требуется явное управление назначаемыми идентификаторами.
3+
//
4+
// Референсная реализация коннекторов на базе SQL поддерживает единственный тип генератора значений - `AUTOINCREMENT`.
5+
//
6+
// Применяется на поле класса.
7+
//
8+
// Пример:
9+
//
10+
// &Идентификатор
11+
// &ГенерируемоеЗначение
12+
// Перем ИД;
13+
//
14+
&Аннотация("ГенерируемоеЗначение")
15+
Процедура ПриСозданииОбъекта()
16+
КонецПроцедуры
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Каждый класс, подключаемый к менеджеру сущностей, должен иметь поле для хранения
2+
// идентификатора объекта в СУБД - первичного ключа.
3+
//
4+
// Для формирования автоинкрементного первичного ключа можно воспользоваться
5+
// дополнительной аннотацией `&ГенерируемоеЗначение`.
6+
//
7+
// Применяется на поле класса.
8+
//
9+
// Пример:
10+
//
11+
// &Идентификатор
12+
// Перем ИД;
13+
//
14+
&Аннотация("Идентификатор")
15+
Процедура ПриСозданииОбъекта()
16+
КонецПроцедуры
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Все **экспортные** поля класса (за исключением полей, помеченных аннотаций `ПодчиненнаяТаблица`)
2+
// преобразуются в колонки таблицы в СУБД.
3+
//
4+
// Аннотация `Колонка` позволяет тонко настроить параметры колонки таблицы.
5+
//
6+
// Применяется на поле класса.
7+
//
8+
// Параметры:
9+
// Имя - Строка - Имя колонки, используемой коннектором к СУБД при работе с сущностью.
10+
// Значение по умолчанию - имя свойства.
11+
// Тип - Строка - Тип колонки, используемой для хранения идентификатора. Значение по умолчанию - `ТипыКолонок.Строка`.
12+
// Доступные типы колонок:
13+
// - "Целое"
14+
// - "Дробное"
15+
// - "Булево"
16+
// - "Строка"
17+
// - "Дата"
18+
// - "Время"
19+
// - "ДатаВремя"
20+
// - "Ссылка"
21+
// - "ДвоичныеДанные"
22+
// ТипСсылки - Строка - Имя зарегистрированного в модели типа, в который преобразуется значение из колонки.
23+
// Имеет смысл только в паре с параметром `Тип`, равным `Ссылка`.
24+
// Допустимо указывать примитивные типы из перечисления `ТипыКолонок`
25+
// и типы сущностей (например, `"ФизическоеЛицо"`)
26+
//
27+
// Пример:
28+
//
29+
// 1. &Колонка(Тип = Число)
30+
// Перем Возраст;
31+
//
32+
// 2. &Колонка(Имя = "ДУЛ", Тип = Ссылка, ТипСсылки = "Документ")
33+
// Перем ДокументУдостоверяющийЛичность;
34+
//
35+
&Аннотация("Колонка")
36+
Процедура ПриСозданииОбъекта(Имя = Неопределено, Тип = "Строка", ТипСсылки = Неопределено)
37+
КонецПроцедуры
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Аннотация `ПодчиненнаяТаблица` используется для хранения коллекций - массивов и структур.
2+
//
3+
// Параметры:
4+
// ИмяТаблицы - Строка - Имя таблицы, используемой коннектором к СУБД при работе с сущностью.
5+
// Значение по умолчанию - строка вида `ИмяТаблицыСущности_ИмяСвойства`.
6+
// Тип - Строка - Тип колонки, используемой для хранения идентификатора.
7+
// Доступные типы подчиненных таблиц:
8+
// - Массив
9+
// - Структура
10+
// ТипЭлемента - Строка - Имя зарегистрированного в модели типа, в который преобразуется значение из колонки.
11+
// Допустимо указывать примитивные типы из перечисления `ТипыКолонок`
12+
// и типы сущностей (например, `"ФизическоеЛицо"`).
13+
// КаскадноеЧтение - Булево - Флаг, отвечающий за инициализацию сущностей в подчиненной таблице
14+
// (если `ТипЭлемента` является ссылочным типом).
15+
//
16+
// Пример:
17+
// &ПодчиненнаяТаблица(Тип = "Массив", ТипЭлемента = "Документ", КаскадноеЧтение = Истина)
18+
// Перем Документы;
19+
&Аннотация("ПодчиненнаяТаблица")
20+
Процедура ПриСозданииОбъекта(ИмяТаблицы = Неопределено, Тип = Неопределено, ТипЭлемента = Неопределено, КаскадноеЧтение = Ложь)
21+
КонецПроцедуры

0 commit comments

Comments
 (0)