1
0
mirror of https://github.com/firstBitSportivnaya/PSSL.git synced 2024-11-21 17:56:47 +02:00

search for a match by ID (#62)

Изменен параметр получения соответствия на строковый идентификатор соответствия
This commit is contained in:
DenisUshakov 2024-05-02 12:20:47 +03:00 committed by GitHub
parent 19a90ad081
commit 99a7374d0a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 51 additions and 29 deletions

View File

@ -58,7 +58,7 @@
// Возвращает таблицу соответствий по отбору.
//
// Параметры:
// ТипСоответствия - Перечисление.__ТипСоответствияОбъектовИБ - Тип соответствия.
// ИдентификаторНастройки - Строка - Идентификатор элемента справочника "Тип соответствия объектов ИБ".
// Объект1 - ПроизвольныйТип - Объект1.
// Объект2 - ПроизвольныйТип - Объект2.
// Объект3 - ПроизвольныйТип - Объект3.
@ -66,16 +66,20 @@
// Возвращаемое значение:
// - ТаблицаЗначений - Таблица соответствий по отбору.
//
Функция ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1 = Неопределено, Объект2 = Неопределено, Объект3 = Неопределено) Экспорт
Функция ПолучитьСоответствиеОбъектовИБ(ИдентификаторНастройки, Объект1 = Неопределено, Объект2 = Неопределено, Объект3 = Неопределено) Экспорт
Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, Объект3);
Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьСоответствиеОбъектовИБ(
ИдентификаторНастройки,
Объект1,
Объект2,
Объект3);
КонецФункции
// Возвращает массив значений произвольного типа, объекта соответствия.
//
// Параметры:
// ТипСоответствия - СправочникСсылка.__ТипСоответствияОбъектовИБ - Тип соответствия.
// ИдентификаторНастройки - Строка - Идентификатор элемента справочника "Тип соответствия объектов ИБ".
// ИмяКлюча - Строка - поле регистра сведений __СоответствияОбъектовИБ, по которому устанавливается отбор.
// ЗначениеКлюча - ПроизвольныйТип - Значение ключа по которому установлен отбор.
// ИмяОбъекта - Строка - получаемое поле регистра сведений __СоответствияОбъектовИБ.
@ -84,10 +88,10 @@
// - Массив - Значения объекта из регистра сведений __СоответствияОбъектовИБ,
// если соответствие одно в массив будет один элемент
//
Функция ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта) Экспорт
Функция ПолучитьЗначенияОбъектаСоответствияПоКлючу(ИдентификаторНастройки, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта) Экспорт
Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьЗначенияОбъектаСоответствияПоКлючу(
ТипСоответствия,
ИдентификаторНастройки,
ИмяКлюча,
ЗначениеКлюча,
ИмяОбъекта);

View File

@ -98,7 +98,7 @@
// Возвращает массив структур соответствий по отбору
//
// Параметры:
// ТипСоответствия - СправочникСсылка.__ТипСоответствияОбъектовИБ - Тип соответствия.
// ИдентификаторНастройки - Строка - Идентификатор элемента справочника "Тип соответствия объектов ИБ".
// Объект1 - ПроизвольныйТип - Объект1.
// Объект2 - ПроизвольныйТип - Объект2.
// Объект3 - ПроизвольныйТип - Объект3.
@ -107,12 +107,16 @@
// Возвращаемое значение:
// - Массив - соответствие объектов ИБ в виде структур.
//
Функция ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1 = Неопределено, Объект2 = Неопределено, Объект3 = Неопределено, ИспользоватьКэш = Ложь) Экспорт
Функция ПолучитьСоответствиеОбъектовИБ(ИдентификаторНастройки, Объект1 = Неопределено, Объект2 = Неопределено, Объект3 = Неопределено, ИспользоватьКэш = Ложь) Экспорт
Если ИспользоватьКэш Тогда
Возврат __ОбщегоНазначенияПовтИсп.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, Объект3);
Возврат __ОбщегоНазначенияПовтИсп.ПолучитьСоответствиеОбъектовИБ(ИдентификаторНастройки, Объект1, Объект2, Объект3);
Иначе
Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, Объект3);
Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьСоответствиеОбъектовИБ(
ИдентификаторНастройки,
Объект1,
Объект2,
Объект3);
КонецЕсли;
КонецФункции
@ -779,7 +783,7 @@
// Возвращает массив значений произвольного типа, объекта соответствия.
//
// Параметры:
// ТипСоответствия - СправочникСсылка.__ТипСоответствияОбъектовИБ - Тип соответствия.
// ИдентификаторНастройки - Строка - Идентификатор элемента справочника "Тип соответствия объектов ИБ".
// ИмяКлюча - Строка - поле регистра сведений __СоответствияОбъектовИБ, по которому устанавливается отбор.
// ЗначениеКлюча - ПроизвольныйТип - Значение ключа по которому установлен отбор.
// ИмяОбъекта - Строка - получаемое поле регистра сведений __СоответствияОбъектовИБ.
@ -789,17 +793,17 @@
// - Массив - Значения объекта из регистра сведений __СоответствияОбъектовИБ,
// если соответствие одно в массив будет один элемент
//
Функция ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта, ИспользоватьКэш = Ложь) Экспорт
Функция ПолучитьЗначенияОбъектаСоответствияПоКлючу(ИдентификаторНастройки, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта, ИспользоватьКэш = Ложь) Экспорт
Если ИспользоватьКэш Тогда
Возврат __ОбщегоНазначенияПовтИсп.ПолучитьЗначенияОбъектаСоответствияПоКлючу(
ТипСоответствия,
ИдентификаторНастройки,
ИмяКлюча,
ЗначениеКлюча,
ИмяОбъекта);
Иначе
Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьЗначенияОбъектаСоответствияПоКлючу(
ТипСоответствия,
ИдентификаторНастройки,
ИмяКлюча,
ЗначениеКлюча,
ИмяОбъекта);

View File

@ -25,7 +25,7 @@
// Возвращает массив структур соответствий по отбору.
//
// Параметры:
// ТипСоответствия - СправочникСсылка.__ТипСоответствияОбъектовИБ - Тип соответствия.
// ИдентификаторНастройки - Строка - Идентификатор элемента справочника "Тип соответствия объектов ИБ".
// Объект1 - ПроизвольныйТип - Объект1.
// Объект2 - ПроизвольныйТип - Объект2.
// Объект3 - ПроизвольныйТип - Объект3.
@ -33,7 +33,7 @@
// Возвращаемое значение:
// - Массив - соответствие объектов ИБ в виде структур.
//
Функция ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1 = Неопределено, Объект2 = Неопределено, Объект3 = Неопределено) Экспорт
Функция ПолучитьСоответствиеОбъектовИБ(ИдентификаторНастройки, Объект1 = Неопределено, Объект2 = Неопределено, Объект3 = Неопределено) Экспорт
Запрос = Новый Запрос;
@ -43,9 +43,10 @@
| СоответствияОбъектовИБ.Объект2 КАК Объект2,
| СоответствияОбъектовИБ.Объект3 КАК Объект3
|ИЗ
| РегистрСведений.__СоответствияОбъектовИБ КАК СоответствияОбъектовИБ
|ГДЕ
| СоответствияОбъектовИБ.ТипСоответствия = &ТипСоответствия";
| Справочник.__ТипСоответствияОбъектовИБ КАК ТипСоответствияОбъектовИБ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.__СоответствияОбъектовИБ КАК СоответствияОбъектовИБ
| ПО (ТипСоответствияОбъектовИБ.ИдентификаторНастройки = &ИдентификаторНастройки)
| И ТипСоответствияОбъектовИБ.Ссылка = СоответствияОбъектовИБ.ТипСоответствия";
Схема = Новый СхемаЗапроса();
Схема.УстановитьТекстЗапроса(ТекстЗапроса);
@ -73,7 +74,7 @@
КонецЕсли;
Запрос.Текст = Схема.ПолучитьТекстЗапроса();
Запрос.УстановитьПараметр("ТипСоответствия", ТипСоответствия);
Запрос.УстановитьПараметр("ИдентификаторНастройки", ИдентификаторНастройки);
УстановитьПривилегированныйРежим(Истина);
Выборка = Запрос.Выполнить().Выбрать();
@ -95,7 +96,7 @@
// Возвращает массив значений произвольного типа, объекта соответствия.
//
// Параметры:
// ТипСоответствия - СправочникСсылка.__ТипСоответствияОбъектовИБ - Тип соответствия.
// ИдентификаторНастройки - Строка - Идентификатор элемента справочника "Тип соответствия объектов ИБ".
// ИмяКлюча - Строка - поле регистра сведений __СоответствияОбъектовИБ, по которому устанавливается отбор.
// ЗначениеКлюча - ПроизвольныйТип - Значение ключа по которому установлен отбор.
// ИмяОбъекта - Строка - получаемое поле регистра сведений __СоответствияОбъектовИБ.
@ -104,7 +105,7 @@
// - Массив - Значения объекта из регистра сведений __СоответствияОбъектовИБ,
// если соответствие одно в массив будет один элемент
//
Функция ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта) Экспорт
Функция ПолучитьЗначенияОбъектаСоответствияПоКлючу(ИдентификаторНастройки, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта) Экспорт
МетаданныеРегистра = Метаданные.РегистрыСведений.__СоответствияОбъектовИБ;
@ -131,18 +132,31 @@
Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ
| __СоответствияОбъектовИБ.%1 КАК Объект
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоответствияОбъектовИБ.Объект1 КАК Объект
|ИЗ
| РегистрСведений.__СоответствияОбъектовИБ КАК __СоответствияОбъектовИБ
| Справочник.__ТипСоответствияОбъектовИБ КАК ТипСоответствияОбъектовИБ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.__СоответствияОбъектовИБ КАК СоответствияОбъектовИБ
| ПО (ТипСоответствияОбъектовИБ.ИдентификаторНастройки = &ИдентификаторНастройки)
| И ТипСоответствияОбъектовИБ.Ссылка = СоответствияОбъектовИБ.ТипСоответствия
|ГДЕ
| __СоответствияОбъектовИБ.ТипСоответствия = &ТипСоответствия
| И __СоответствияОбъектовИБ.%2 = &Ключ";
| СоответствияОбъектовИБ.Объект2 = &Ключ";
Запрос.Текст = СтрШаблон(ТекстЗапроса, ИмяОбъекта, ИмяКлюча);
ВыражениеПоля = СтрШаблон("СоответствияОбъектовИБ.%1", ИмяОбъекта);
ТекстЗапроса = __СхемыЗапросов.ДобавитьПолеВыборкиВЗапрос(ТекстЗапроса, ВыражениеПоля, "Объект", , , Истина);
СхемаЗапроса = Новый СхемаЗапроса;
СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса);
Отбор = СхемаЗапроса.ПакетЗапросов[0].Операторы[0].Отбор;
ВыражениеОтбора = Новый ВыражениеСхемыЗапроса(СтрШаблон("СоответствияОбъектовИБ.%1 = &Ключ", ИмяКлюча));
Отбор.Установить(0, ВыражениеОтбора);
ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("Ключ", ЗначениеКлюча);
Запрос.УстановитьПараметр("ТипСоответствия", ТипСоответствия);
Запрос.УстановитьПараметр("ИдентификаторНастройки", ИдентификаторНастройки);
УстановитьПривилегированныйРежим(Истина);
ТаблицаОбъектов = Запрос.Выполнить().Выгрузить();