Skip to content

Commit

Permalink
Встроил универсальный обмен данными XML с фильтрами #139
Browse files Browse the repository at this point in the history
  • Loading branch information
LevkinSergey committed May 6, 2020
1 parent 60d68f3 commit 368b32c
Show file tree
Hide file tree
Showing 19 changed files with 34,530 additions and 65 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -917,6 +917,25 @@

КонецПроцедуры

Функция УстановитьЗначениеПараметраСКД(КомпоновщикНастроек, ИмяПараметра, ЗначениеПараметра, ИспользоватьНеЗаполненный = Истина) Экспорт

ПараметрУстановлен = Ложь;

ПараметрКомпоновкиДанных = Новый ПараметрКомпоновкиДанных(ИмяПараметра);
ЗначениеПараметраКомпоновкиДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновкиДанных);
Если ЗначениеПараметраКомпоновкиДанных <> Неопределено Тогда

ЗначениеПараметраКомпоновкиДанных.Значение = ЗначениеПараметра;
ЗначениеПараметраКомпоновкиДанных.Использование = ?(ИспользоватьНеЗаполненный, Истина, ЗначениеЗаполнено(ЗначениеПараметраКомпоновкиДанных.Значение));

ПараметрУстановлен = Истина;

КонецЕсли;

Возврат ПараметрУстановлен;

КонецФункции

Процедура НайтиРекурсивно(КоллекцияЭлементов, МассивЭлементов, СпособПоиска, ЗначениеПоиска)

Для Каждого ЭлементОтбора Из КоллекцияЭлементов Цикл
Expand Down Expand Up @@ -970,6 +989,92 @@
Возврат ВозвращаемоеЗначение
КонецФункции

Процедура СкопироватьЭлементы(ПриемникЗначения, ИсточникЗначения, ОчищатьПриемник = Истина) Экспорт

Если ТипЗнч(ИсточникЗначения) = Тип("УсловноеОформлениеКомпоновкиДанных")
ИЛИ ТипЗнч(ИсточникЗначения) = Тип("ВариантыПользовательскогоПоляВыборКомпоновкиДанных")
ИЛИ ТипЗнч(ИсточникЗначения) = Тип("ОформляемыеПоляКомпоновкиДанных")
ИЛИ ТипЗнч(ИсточникЗначения) = Тип("ЗначенияПараметровДанныхКомпоновкиДанных") Тогда
СоздаватьПоТипу = Ложь;
Иначе
СоздаватьПоТипу = Истина;
КонецЕсли;
ПриемникЭлементов = ПриемникЗначения.Элементы;
ИсточникЭлементов = ИсточникЗначения.Элементы;
Если ОчищатьПриемник Тогда
ПриемникЭлементов.Очистить();
КонецЕсли;

Для каждого ЭлементИсточник Из ИсточникЭлементов Цикл

Если ТипЗнч(ЭлементИсточник) = Тип("ЭлементПорядкаКомпоновкиДанных") Тогда
// Элементы порядка добавляем в начало
Индекс = ИсточникЭлементов.Индекс(ЭлементИсточник);
ЭлементПриемник = ПриемникЭлементов.Вставить(Индекс, ТипЗнч(ЭлементИсточник));
Иначе
Если СоздаватьПоТипу Тогда
ЭлементПриемник = ПриемникЭлементов.Добавить(ТипЗнч(ЭлементИсточник));
Иначе
ЭлементПриемник = ПриемникЭлементов.Добавить();
КонецЕсли;
КонецЕсли;

ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник);
// В некоторых коллекциях необходимо заполнить другие коллекции
Если ТипЗнч(ИсточникЭлементов) = Тип("КоллекцияЭлементовУсловногоОформленияКомпоновкиДанных") Тогда
СкопироватьЭлементы(ЭлементПриемник.Поля, ЭлементИсточник.Поля);
СкопироватьЭлементы(ЭлементПриемник.Отбор, ЭлементИсточник.Отбор);
ЗаполнитьЭлементы(ЭлементПриемник.Оформление, ЭлементИсточник.Оформление);
ИначеЕсли ТипЗнч(ИсточникЭлементов) = Тип("КоллекцияВариантовПользовательскогоПоляВыборКомпоновкиДанных") Тогда
СкопироватьЭлементы(ЭлементПриемник.Отбор, ЭлементИсточник.Отбор);
КонецЕсли;

// В некоторых элементах коллекции необходимо заполнить другие коллекции
Если ТипЗнч(ЭлементИсточник) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
СкопироватьЭлементы(ЭлементПриемник, ЭлементИсточник);
ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
СкопироватьЭлементы(ЭлементПриемник, ЭлементИсточник);
ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип("ПользовательскоеПолеВыборКомпоновкиДанных") Тогда
СкопироватьЭлементы(ЭлементПриемник.Варианты, ЭлементИсточник.Варианты);
ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных") Тогда
ЭлементПриемник.УстановитьВыражениеДетальныхЗаписей (ЭлементИсточник.ПолучитьВыражениеДетальныхЗаписей());
ЭлементПриемник.УстановитьВыражениеИтоговыхЗаписей(ЭлементИсточник.ПолучитьВыражениеИтоговыхЗаписей());
ЭлементПриемник.УстановитьПредставлениеВыраженияДетальныхЗаписей(ЭлементИсточник.ПолучитьПредставлениеВыраженияДетальныхЗаписей ());
ЭлементПриемник.УстановитьПредставлениеВыраженияИтоговыхЗаписей(ЭлементИсточник.ПолучитьПредставлениеВыраженияИтоговыхЗаписей ());
КонецЕсли;

КонецЦикла;

КонецПроцедуры


Процедура ЗаполнитьЭлементы(ПриемникЗначения, ИсточникЗначения, ПервыйУровень = Неопределено) Экспорт

Если ТипЗнч(ПриемникЗначения) = Тип("КоллекцияЗначенийПараметровКомпоновкиДанных") Тогда
КоллекцияЗначений = ИсточникЗначения;
Иначе
КоллекцияЗначений = ИсточникЗначения.Элементы;
КонецЕсли;

Для каждого ЭлементИсточник Из КоллекцияЗначений Цикл
Если ПервыйУровень = Неопределено Тогда
ЭлементПриемник = ПриемникЗначения.НайтиЗначениеПараметра(ЭлементИсточник.Параметр);
Иначе
ЭлементПриемник = ПервыйУровень.НайтиЗначениеПараметра(ЭлементИсточник.Параметр);
КонецЕсли;
Если ЭлементПриемник = Неопределено Тогда
Продолжить;
КонецЕсли;
ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник);
Если ТипЗнч(ЭлементИсточник) = Тип("ЗначениеПараметраКомпоновкиДанных") Тогда
Если ЭлементИсточник.ЗначенияВложенныхПараметров.Количество() <> 0 Тогда
ЗаполнитьЭлементы(ЭлементПриемник.ЗначенияВложенныхПараметров, ЭлементИсточник.ЗначенияВложенныхПараметров, ПриемникЗначения);
КонецЕсли;
КонецЕсли;
КонецЦикла;

КонецПроцедуры

#КонецОбласти

#Область Отладка
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonPicture xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="8824f91a-c829-449e-b125-6b9e250e043f">
<name>УИ_Информация</name>
<synonym>
<key>ru</key>
<value>Информация</value>
</synonym>
</mdclass:CommonPicture>
2 changes: 2 additions & 0 deletions Инструменты/src/Configuration/Configuration.mdo
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
<commonPictures>CommonPicture.УИ_КоллекцияПиктограммФайлов</commonPictures>
<commonPictures>CommonPicture.УИ_РедакторОбъектовБазыДанных</commonPictures>
<commonPictures>CommonPicture.УИ_JSON</commonPictures>
<commonPictures>CommonPicture.УИ_Информация</commonPictures>
<roles>Role.УИ_УниверсальныеИнструменты</roles>
<commonTemplates>CommonTemplate.УИ_КомпонентаРаботыСРегулярнымиВыражениямиRegExБраузеры</commonTemplates>
<commonTemplates>CommonTemplate.УИ_КомпонентаРаботыСРегулярнымиВыражениямиRegEx</commonTemplates>
Expand Down Expand Up @@ -115,4 +116,5 @@
<dataProcessors>DataProcessor.УИ_МенеджерХранилищНастроек</dataProcessors>
<dataProcessors>DataProcessor.УИ_РедакторJSON</dataProcessors>
<dataProcessors>DataProcessor.УИ_РедакторHTML</dataProcessors>
<dataProcessors>DataProcessor.УИ_УниверсальныйОбменДаннымиXML</dataProcessors>
</mdclass:Configuration>
Loading

0 comments on commit 368b32c

Please sign in to comment.