1
0
mirror of https://github.com/firstBitSportivnaya/PSSL.git synced 2024-12-24 22:14:31 +02:00

refacted predefined functions and removed bugs (#173)

* Доработана подсистема предопределенных значений для работы с группами
This commit is contained in:
Denis Ushakov 2024-12-24 20:01:36 +03:00 committed by GitHub
parent 31532ec4a6
commit eeac183ec4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 87 additions and 35 deletions

View File

@ -72,9 +72,7 @@
Возврат;
КонецЕсли;
Если Не пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецЕсли;
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецПроцедуры

View File

@ -18,9 +18,7 @@
Возврат;
КонецЕсли;
Если Не пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецЕсли;
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецПроцедуры

View File

@ -55,8 +55,33 @@
Возврат;
КонецЕсли;
ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(ТипИнтеграции);
Если Не ЭтоГруппа Тогда
ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(ТипИнтеграции);
ЗаполнитьРеквизитыНаОснованииЭлементаНаследования(ЭлементНаследования);
КонецЕсли;
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти // ОбработчикиСобытий
#Область СлужебныеПроцедурыИФункции
Процедура ЗаполнитьРеквизитыНаОснованииЭлементаНаследования(ЭлементНаследования)
Если ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.Каталог Тогда
Порт = "";
ВнешняяКомпонента = Неопределено;
@ -114,23 +139,9 @@
ИмяОбъекта = Неопределено;
КонецЕсли;
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если Не пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти // ОбработчикиСобытий
#КонецОбласти
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");

View File

@ -19,9 +19,7 @@
Возврат;
КонецЕсли;
Если Не пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецЕсли;
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецПроцедуры

View File

@ -19,9 +19,7 @@
Возврат;
КонецЕсли;
Если Не пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецЕсли;
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
КонецПроцедуры

View File

@ -74,7 +74,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "ПроектнаяБиблиотекаПодсистем";
Описание.Версия = "1.0.4.17";
Описание.Версия = "1.0.4.18";
// Требуется библиотека стандартных подсистем.
Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");

View File

@ -882,6 +882,10 @@
//
Процедура ОбработатьСуществующийПредопределенныйЭлемент(Объект) Экспорт
Если пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(Объект.ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
Возврат;
КонецЕсли;
пбп_ПредопределенныеЗначения.ОбновитьХешПредопределенногоЭлемента(Объект);
КонецПроцедуры

View File

@ -298,6 +298,8 @@
Поля.Вставить("УровеньИерархии");
Поля.Вставить("ИдентификаторРодитель");
ДополнитьИсключаемыеПоляДляРасчетХешаНастройкиИнтеграции(Поля);
Возврат Поля;
КонецФункции
@ -313,8 +315,6 @@
Поля.Вставить("ХешСумма");
Поля.Вставить("УровеньИерархии");
Поля.Вставить("ИдентификаторРодитель");
Поля.Вставить("Пароль");
Поля.Вставить("СписокЗначений");
Возврат Поля;
@ -357,4 +357,15 @@
КонецФункции
Процедура ДополнитьИсключаемыеПоляДляРасчетХешаНастройкиИнтеграции(Поля)
Поля.Вставить("Порт");
Поля.Вставить("ВнешняяКомпонента");
Поля.Вставить("УчетнаяЗапись");
Поля.Вставить("ТипАвторизации");
Поля.Вставить("ИмяОбъекта");
Поля.Вставить("ИмяФайлаВнешнейКомпоненты");
КонецПроцедуры
#КонецОбласти

View File

@ -96,6 +96,9 @@
Параметры.Вставить("КлючиХешаЭлемент",
пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(мКолонки, Ложь));
мКолонки = ПолучитьПоляГруппы(МенеджерОбъекта, мКолонки);
Параметры.Вставить("КлючиХешаГруппа",
пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(мКолонки, Истина));
@ -254,7 +257,8 @@
Для Каждого Строка Из ТаблицаПредопределенных Цикл
ВыборкаДетальныеЗаписи.Сбросить();
Если ВыборкаДетальныеЗаписи.НайтиСледующий(Строка.ИдентификаторНастройки, "ИдентификаторНастройки") Тогда
Если ВыборкаДетальныеЗаписи.РучноеИзменение Или ВыборкаДетальныеЗаписи.ХешСумма = Строка.ХешСумма Тогда
Если ВыборкаДетальныеЗаписи.РучноеИзменение Или ВыборкаДетальныеЗаписи.ХешСумма = Строка.ХешСумма
И Не ВыборкаДетальныеЗаписи.ПометкаУдаления Тогда
СтрокиДляУдаления.Добавить(Строка);
Иначе
ОбработатьСтроку(Строка, ВыборкаДетальныеЗаписи, ТаблицаКонфликтныхЭлементов, СтрокиДляУдаления);
@ -326,6 +330,32 @@
КонецФункции
// Формирует массив полей группы объекта метаданных
//
// Параметры:
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта
// Поля - Массив - Поля предопределенного элемента.
//
// Возвращаемое значение:
// Массив - Строка
//
Функция ПолучитьПоляГруппы(МенеджерОбъекта, Поля) Экспорт
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта));
мПоляГруппы = Новый Массив;
Для Каждого Поле Из Поля Цикл
Реквизит = ОбъектМетаданных.Реквизиты.Найти(Поле);
Если Реквизит = Неопределено
Или Реквизит.Использование <> Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляЭлемента Тогда
мПоляГруппы.Добавить(Поле);
КонецЕсли;
КонецЦикла;
Возврат мПоляГруппы
КонецФункции
#Область РаботаСТаблицейПредопределенных
// Инициализирует предопределенные значения из таблицы.

View File

@ -211,7 +211,7 @@
// Удалим "мусор" схемы запроса
УдалитьНенужныеПоля(НовыйТекстЗапроса);
УстановитьНовыйТекстЗапроса(Запрос, ТекстЗапроса);
УстановитьНовыйТекстЗапроса(Запрос, НовыйТекстЗапроса);
Возврат Запрос;

View File

@ -57,7 +57,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</xr:Item>
</DefaultRoles>
<Vendor>Первый БИТ</Vendor>
<Version>1.0.4.17</Version>
<Version>1.0.4.18</Version>
<UpdateCatalogAddress/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UseManagedFormInOrdinaryApplication>false</UseManagedFormInOrdinaryApplication>

View File

@ -122,6 +122,10 @@
мПоля.Добавить(КлючЗначение.Ключ);
КонецЦикла;
Если ЭтоГруппа Тогда
мПоля = пбп_ПредопределенныеЗначенияСлужебный.ПолучитьПоляГруппы(МенеджерОбъекта, мПоля);
КонецЕсли;
Возврат пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(мПоля, ЭтоГруппа);
КонецФункции