From ca713a4dd636c903543a02e65d0ccf688a24b462 Mon Sep 17 00:00:00 2001 From: nixel2007 Date: Sat, 5 Sep 2026 19:21:06 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D1=82=D0=BE=D1=87=D0=BD=D0=B8?= =?UTF-8?q?=D0=BA=D0=94=D0=B0=D0=BD=D0=BD=D1=8B=D1=85:=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D1=80=20=D0=BF=D1=83=D0=BB=D0=B0=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B5=D0=B4=D0=B8=D0=BD=D0=B5=D0=BD=D0=B8=D0=B9=20(4.4.0?= =?UTF-8?q?.1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ИсточникДанных описывает все параметры конструктора МенеджерСущностей одним объектом, но размер пула, появившийся в 4.4.0.0, в нем не хранился. Пятый параметр конструктора и функция РазмерПула, по умолчанию 10, как у менеджера. Страница класса в docs. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_017UYvrFghKi7WmhoF3vvpyp --- docs/README.md | 1 + ...20\260\320\275\320\275\321\213\321\205.md" | 91 +++++++++++++++++++ packagedef | 2 +- ...20\260\320\275\320\275\321\213\321\205.os" | 86 ++++++++++++++---- ...20\260\320\275\320\275\321\213\321\205.os" | 51 +++++++++++ 5 files changed, 214 insertions(+), 17 deletions(-) create mode 100644 "docs/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.md" create mode 100644 "tests/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.os" diff --git a/docs/README.md b/docs/README.md index 93170ff8..a6488ac3 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,6 +3,7 @@ ### Классы * [МенеджерСущностей](МенеджерСущностей.md) +* [ИсточникДанных](ИсточникДанных.md) * [ХранилищеСущностей](ХранилищеСущностей.md) * [ОпцииПоиска](ОпцииПоиска.md) * [АбстрактныйКоннектор](АбстрактныйКоннектор.md) diff --git "a/docs/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.md" "b/docs/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.md" new file mode 100644 index 00000000..08f8b2ee --- /dev/null +++ "b/docs/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.md" @@ -0,0 +1,91 @@ +## ИсточникДанных + +Описание источника данных: все параметры конструктора `МенеджерСущностей` одним объектом. + +Само соединений не открывает; менеджер создается по его полям: + +```bsl +Источник = Новый ИсточникДанных("Основной", Тип("КоннекторPostgreSQL"), СтрокаСоединения, , 20); + +МенеджерСущностей = Новый МенеджерСущностей( + Источник.ТипКоннектора(), + Источник.СтрокаСоединения(), + Источник.ПараметрыКоннектора(), + Источник.РазмерПула() +); +``` + +### ПриСозданииОбъекта + +```bsl +// Параметры: +// Имя - Строка - Имя источника данных. +// ТипКоннектора - Тип - Тип класса, реализующего интерфейс АбстрактныйКоннектор. +// СтрокаСоединения - Строка - Строка соединения с БД. +// ПараметрыКоннектора - Массив - Дополнительные параметры коннектора. +// РазмерПула - Число - Размер пула соединений менеджера; по умолчанию тот же, что у +// конструктора МенеджерСущностей. Ноль снимает предел и постоянно живущих соединений не держит. +// +Процедура ПриСозданииОбъекта( + Знач Имя, + Знач ТипКоннектора, + Знач СтрокаСоединения = "", + Знач ПараметрыКоннектора = Неопределено, + Знач РазмерПула = 10 +) +``` + +### Имя + +```bsl +// Имя источника данных. +// +// Возвращаемое значение: +// Строка - Имя. +// +Функция Имя() Экспорт +``` + +### ТипКоннектора + +```bsl +// Тип коннектора. +// +// Возвращаемое значение: +// Тип - Тип класса коннектора. +// +Функция ТипКоннектора() Экспорт +``` + +### СтрокаСоединения + +```bsl +// Строка соединения с БД. +// +// Возвращаемое значение: +// Строка - Строка соединения. +// +Функция СтрокаСоединения() Экспорт +``` + +### ПараметрыКоннектора + +```bsl +// Дополнительные параметры коннектора. +// +// Возвращаемое значение: +// ФиксированныйМассив - Параметры. +// +Функция ПараметрыКоннектора() Экспорт +``` + +### РазмерПула + +```bsl +// Размер пула соединений менеджера сущностей. +// +// Возвращаемое значение: +// Число - Предел одновременно живущих соединений; 0 - без предела. +// +Функция РазмерПула() Экспорт +``` diff --git a/packagedef b/packagedef index 31512cf8..34e53f4f 100644 --- a/packagedef +++ b/packagedef @@ -4,7 +4,7 @@ // // BSLLS:CodeOutOfRegion-off Описание.Имя("entity") - .Версия("4.4.0.0") + .Версия("4.4.0.1") .Автор("Nikita Fedkin") .АдресАвтора("nixel2007@gmail.com") .Описание("entity") diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.os" index 64c26bce..c9788d8c 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.os" @@ -1,37 +1,91 @@ +// Строка - Имя источника данных, по которому сущности выбирают источник в аннотации &Сущность. Перем пИмя; +// Тип - Тип класса коннектора. Перем пТипКоннектора; +// Строка - Строка соединения с БД. Перем пСтрокаСоединения; +// ФиксированныйМассив - Дополнительные параметры коннектора. Перем пПараметрыКоннектора; +// Число - Размер пула соединений менеджера сущностей. +Перем пРазмерПула; +// Описание источника данных: все параметры конструктора МенеджерСущностей одним объектом. +// +// Само соединений не открывает; менеджер создается по его полям: +// Новый МенеджерСущностей( +// Источник.ТипКоннектора(), Источник.СтрокаСоединения(), +// Источник.ПараметрыКоннектора(), Источник.РазмерПула() +// ) +// +// Параметры: +// Имя - Строка - Имя источника данных. +// ТипКоннектора - Тип - Тип класса, реализующего интерфейс АбстрактныйКоннектор. +// СтрокаСоединения - Строка - Строка соединения с БД. +// ПараметрыКоннектора - Массив - Дополнительные параметры коннектора. +// РазмерПула - Число - Размер пула соединений менеджера; по умолчанию тот же, что у +// конструктора МенеджерСущностей. Ноль снимает предел и постоянно живущих соединений не держит. +// +Процедура ПриСозданииОбъекта( + Знач Имя, + Знач ТипКоннектора, + Знач СтрокаСоединения = "", + Знач ПараметрыКоннектора = Неопределено, + Знач РазмерПула = 10 +) + + пИмя = Имя; + пТипКоннектора = ТипКоннектора; + пСтрокаСоединения = СтрокаСоединения; + пРазмерПула = РазмерПула; + + Если ПараметрыКоннектора = Неопределено Тогда + ПараметрыКоннектора = Новый Массив(); + КонецЕсли; + пПараметрыКоннектора = Новый ФиксированныйМассив(ПараметрыКоннектора); + +КонецПроцедуры + +// Имя источника данных. +// +// Возвращаемое значение: +// Строка - Имя. +// Функция Имя() Экспорт Возврат пИмя; КонецФункции +// Тип коннектора. +// +// Возвращаемое значение: +// Тип - Тип класса коннектора. +// Функция ТипКоннектора() Экспорт Возврат пТипКоннектора; КонецФункции +// Строка соединения с БД. +// +// Возвращаемое значение: +// Строка - Строка соединения. +// Функция СтрокаСоединения() Экспорт Возврат пСтрокаСоединения; КонецФункции +// Дополнительные параметры коннектора. +// +// Возвращаемое значение: +// ФиксированныйМассив - Параметры. +// Функция ПараметрыКоннектора() Экспорт Возврат пПараметрыКоннектора; КонецФункции -Процедура ПриСозданииОбъекта( - Знач Имя, - Знач ТипКоннектора, - Знач СтрокаСоединения = "", - Знач ПараметрыКоннектора = Неопределено -) - - пИмя = Имя; - пТипКоннектора = ТипКоннектора; - пСтрокаСоединения = СтрокаСоединения; - - Если ПараметрыКоннектора = Неопределено Тогда - ПараметрыКоннектора = Новый Массив(); - КонецЕсли; - пПараметрыКоннектора = Новый ФиксированныйМассив(ПараметрыКоннектора); -КонецПроцедуры +// Размер пула соединений менеджера сущностей. +// +// Возвращаемое значение: +// Число - Предел одновременно живущих соединений; 0 - без предела. +// +Функция РазмерПула() Экспорт + Возврат пРазмерПула; +КонецФункции diff --git "a/tests/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.os" "b/tests/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.os" new file mode 100644 index 00000000..a351c43a --- /dev/null +++ "b/tests/\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\205.os" @@ -0,0 +1,51 @@ +// Описание источника данных: параметры менеджера сущностей одним объектом. +// +// BSLLS:MagicNumber-off + +#Использовать ".." + +&Тест +Процедура РазмерПулаПоУмолчаниюСовпадаетСМенеджером() Экспорт + + Источник = Новый ИсточникДанных("Основной", Тип("КоннекторInMemory")); + + Ожидаем.Что(Источник.Имя()).Равно("Основной"); + Ожидаем.Что(Источник.ТипКоннектора()).Равно(Тип("КоннекторInMemory")); + Ожидаем.Что(Источник.СтрокаСоединения()).Равно(""); + Ожидаем.Что(Источник.ПараметрыКоннектора()).ИмеетДлину(0); + Ожидаем.Что(Источник.РазмерПула(), "Размер пула по умолчанию тот же, что у конструктора менеджера").Равно(10); + +КонецПроцедуры + +&Тест +Процедура РазмерПулаЗадаетсяПятымПараметром() Экспорт + + Параметры = Новый Массив; + Параметры.Добавить("параметр"); + + Источник = Новый ИсточникДанных("Основной", Тип("КоннекторSQLite"), "Data Source=:memory:", Параметры, 3); + + Ожидаем.Что(Источник.СтрокаСоединения()).Равно("Data Source=:memory:"); + Ожидаем.Что(Источник.ПараметрыКоннектора()).ИмеетДлину(1); + Ожидаем.Что(Источник.РазмерПула()).Равно(3); + +КонецПроцедуры + +&Тест +Процедура МенеджерСоздаетсяПоИсточникуДанных() Экспорт + + Источник = Новый ИсточникДанных("Основной", Тип("КоннекторInMemory"), "источник", , 0); + + МенеджерСущностей = Новый МенеджерСущностей( + Источник.ТипКоннектора(), + Источник.СтрокаСоединения(), + Источник.ПараметрыКоннектора(), + Источник.РазмерПула() + ); + МенеджерСущностей.Инициализировать(); + + Ожидаем.Что(МенеджерСущностей.ВычислитьСКоннектором("Коннектор -> ТипЗнч(Коннектор)")).Равно(Тип("КоннекторInMemory")); + + МенеджерСущностей.Закрыть(); + +КонецПроцедуры