diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl index 89cd91bd6..ebe34c0bd 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl +++ b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl @@ -16,7 +16,7 @@ Если Объект.Ссылка.Пустая() Тогда ИнициализироватьФорму(); КонецЕсли; - + ТекущийПользователь = Пользователи.ТекущийПользователь(); // СтандартныеПодсистемы.РаботаСФайлами @@ -28,12 +28,12 @@ МодульРаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки); КонецЕсли; // Конец СтандартныеПодсистемы.РаботаСФайлами - + КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) - + БизнесПроцессыИЗадачиКлиент.ОбновитьДоступностьКомандПринятияКИсполнению(ЭтотОбъект); // СтандартныеПодсистемы.РаботаСФайлами @@ -42,37 +42,36 @@ МодульРаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ); КонецЕсли; // Конец СтандартныеПодсистемы.РаботаСФайлами - + КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - + ВыполнитьЗадачу = Ложь; - Если НЕ (ПараметрыЗаписи.Свойство("ВыполнитьЗадачу", ВыполнитьЗадачу) И ВыполнитьЗадачу) Тогда + Если Не (ПараметрыЗаписи.Свойство("ВыполнитьЗадачу", ВыполнитьЗадачу) И ВыполнитьЗадачу) Тогда Возврат; КонецЕсли; - - Если НЕ ЗаданиеВыполнено И НЕ ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда + + Если Не ЗаданиеВыполнено И Не ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда ОбщегоНазначения.СообщитьПользователю( - НСтр("ru = 'Укажите причину, по которой задача отклоняется.'"),, - "Объект.РезультатВыполнения",, - Отказ); + НСтр("ru = 'Укажите причину, по которой задача отклоняется.'"),, + "Объект.РезультатВыполнения",, Отказ); Возврат; КонецЕсли; // Предварительная запись бизнес-процесса для корректной работы обработчика точки маршрута. ЗаписатьРеквизитыБизнесПроцесса(ТекущийОбъект); - + КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - + БизнесПроцессыИЗадачиКлиент.ФормаЗадачиОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник); Если ИмяСобытия = "Запись_Задание" Тогда - Если (Источник = Объект.БизнесПроцесс ИЛИ (ТипЗнч(Источник) = Тип("Массив") - И Источник.Найти(Объект.БизнесПроцесс) <> Неопределено)) Тогда + Если (Источник = Объект.БизнесПроцесс Или (ТипЗнч(Источник) = Тип("Массив") И Источник.Найти( + Объект.БизнесПроцесс) <> Неопределено)) Тогда Прочитать(); КонецЕсли; КонецЕсли; @@ -83,12 +82,12 @@ МодульРаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия); КонецЕсли; // Конец СтандартныеПодсистемы.РаботаСФайлами - + КонецПроцедуры &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - + ИнициализироватьФорму(); // СтандартныеПодсистемы.УправлениеДоступом @@ -118,68 +117,68 @@ &НаКлиенте Процедура СрокНачалаИсполненияПриИзменении(Элемент) - + Если Объект.ДатаНачала = НачалоДня(Объект.ДатаНачала) Тогда Объект.ДатаНачала = КонецДня(Объект.ДатаНачала); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ДатаИсполненияПриИзменении(Элемент) - + Если Объект.ДатаИсполнения = НачалоДня(Объект.ДатаИсполнения) Тогда Объект.ДатаИсполнения = КонецДня(Объект.ДатаИсполнения); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ЗаписатьИЗакрытьВыполнить() - + БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект); - + КонецПроцедуры &НаКлиенте Процедура ПредметНажатие(Элемент, СтандартнаяОбработка) - + СтандартнаяОбработка = Ложь; - ПоказатьЗначение(,Объект.Предмет); - + ПоказатьЗначение(, Объект.Предмет); + КонецПроцедуры // СтандартныеПодсистемы.РаботаСФайлами &НаКлиенте Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); МодульРаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); МодульРаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); - МодульРаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, - ПараметрыПеретаскивания, СтандартнаяОбработка); + МодульРаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, + СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры // Конец СтандартныеПодсистемы.РаботаСФайлами @@ -189,60 +188,60 @@ &НаКлиенте Процедура ВыполненоВыполнить(Команда) - + ЗаданиеВыполнено = Истина; БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина); - + КонецПроцедуры &НаКлиенте Процедура Отменено(Команда) - + ЗаданиеВыполнено = Ложь; БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина); - + КонецПроцедуры &НаКлиенте Процедура Дополнительно(Команда) - + БизнесПроцессыИЗадачиКлиент.ОткрытьДопИнформациюОЗадаче(Объект.Ссылка); - + КонецПроцедуры &НаКлиенте Процедура ПринятьКИсполнению(Команда) - + БизнесПроцессыИЗадачиКлиент.ПринятьЗадачуКИсполнению(ЭтотОбъект, ТекущийПользователь); - + КонецПроцедуры &НаКлиенте Процедура ОтменитьПринятиеКИсполнению(Команда) - + БизнесПроцессыИЗадачиКлиент.ОтменитьПринятиеЗадачиКИсполнению(ЭтотОбъект); - + КонецПроцедуры &НаКлиенте Процедура ИзменитьЗадание(Команда) - + Если Модифицированность Тогда Записать(); - КонецЕсли; - ПоказатьЗначение(,Объект.БизнесПроцесс); - + КонецЕсли; + ПоказатьЗначение(, Объект.БизнесПроцесс); + КонецПроцедуры // СтандартныеПодсистемы.РаботаСФайлами &НаКлиенте Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); МодульРаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда); КонецЕсли; - + КонецПроцедуры // Конец СтандартныеПодсистемы.РаботаСФайлами @@ -252,24 +251,24 @@ &НаСервере Процедура ИнициализироватьФорму() - + НачальныйПризнакВыполнения = Объект.Выполнена; ПрочитатьРеквизитыБизнесПроцесса(); УстановитьСостояниеЭлементов(); - + ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач"); Элементы.СрокНачалаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач; Элементы.ДатаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач; БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.СрокИсполнения); БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.Дата); - - БизнесПроцессыИЗадачиСервер.ФормаЗадачиПриСозданииНаСервере(ЭтотОбъект, Объект, - Элементы.ГруппаСостояние, Элементы.ДатаИсполнения); + + БизнесПроцессыИЗадачиСервер.ФормаЗадачиПриСозданииНаСервере(ЭтотОбъект, Объект, Элементы.ГруппаСостояние, + Элементы.ДатаИсполнения); Элементы.ОписаниеРезультата.ТолькоПросмотр = Объект.Выполнена; - + Элементы.ИзменитьЗадание.Видимость = (Объект.Автор = Пользователи.ТекущийПользователь()); Исполнитель = ?(ЗначениеЗаполнено(Объект.Исполнитель), Объект.Исполнитель, Объект.РольИсполнителя); - + Если ПравоДоступа("Изменение", Метаданные.БизнесПроцессы.Задание) Тогда Элементы.Выполнено.Доступность = Истина; Элементы.Отклонено.Доступность = Истина; @@ -277,33 +276,33 @@ Элементы.Выполнено.Доступность = Ложь; Элементы.Отклонено.Доступность = Ложь; КонецЕсли; - + КонецПроцедуры &НаСервере Процедура ПрочитатьРеквизитыБизнесПроцесса() - + ЗадачаОбъект = РеквизитФормыВЗначение("Объект"); - + УстановитьПривилегированныйРежим(Истина); ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект(); ЗаданиеВыполнено = ЗаданиеОбъект.Выполнено; ЗаданиеРезультатВыполнения = ЗаданиеОбъект.РезультатВыполнения; ЗаданиеСодержание = ЗаданиеОбъект.Содержание; - + КонецПроцедуры &НаСервере Процедура ЗаписатьРеквизитыБизнесПроцесса(ЗадачаОбъект) - + УстановитьПривилегированныйРежим(Истина); НачатьТранзакцию(); Попытка БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы(ЗадачаОбъект.БизнесПроцесс); - + БизнесПроцессОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект(); ЗаблокироватьДанныеДляРедактирования(БизнесПроцессОбъект.Ссылка); - + БизнесПроцессОбъект.Выполнено = ЗаданиеВыполнено; БизнесПроцессОбъект.Записать(); // АПК:1327 Блокировка установлена в БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы @@ -316,9 +315,9 @@ &НаСервере Процедура УстановитьСостояниеЭлементов() - - БизнесПроцессы.Задание.УстановитьСостояниеЭлементовФормыЗадачи(ЭтотОбъект); - -КонецПроцедуры -#КонецОбласти + БизнесПроцессы.Задание.УстановитьСостояниеЭлементовФормыЗадачи(ЭтотОбъект); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Module.bsl index ba76b54fa..dc64db55e 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Module.bsl +++ b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Module.bsl @@ -16,7 +16,7 @@ Если Объект.Ссылка.Пустая() Тогда ИнициализироватьФорму(); КонецЕсли; - + ТекущийПользователь = Пользователи.ТекущийПользователь(); // СтандартныеПодсистемы.РаботаСФайлами @@ -28,12 +28,12 @@ МодульРаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки); КонецЕсли; // Конец СтандартныеПодсистемы.РаботаСФайлами - + КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) - + БизнесПроцессыИЗадачиКлиент.ОбновитьДоступностьКомандПринятияКИсполнению(ЭтотОбъект); // СтандартныеПодсистемы.РаботаСФайлами @@ -42,41 +42,37 @@ МодульРаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ); КонецЕсли; // Конец СтандартныеПодсистемы.РаботаСФайлами - + КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - + ВыполнитьЗадачу = Ложь; - Если НЕ (ПараметрыЗаписи.Свойство("ВыполнитьЗадачу", ВыполнитьЗадачу) И ВыполнитьЗадачу) Тогда + Если Не (ПараметрыЗаписи.Свойство("ВыполнитьЗадачу", ВыполнитьЗадачу) И ВыполнитьЗадачу) Тогда Возврат; КонецЕсли; - - Если НЕ ЗаданиеВыполнено И НЕ ЗаданиеПодтверждено - И НЕ ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда + + Если Не ЗаданиеВыполнено И Не ЗаданиеПодтверждено И Не ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда ОбщегоНазначения.СообщитьПользователю( - НСтр("ru = 'Укажите причину, по которой задача возвращается на доработку.'"),, - "Объект.РезультатВыполнения",, - Отказ); + НСтр("ru = 'Укажите причину, по которой задача возвращается на доработку.'"),, + "Объект.РезультатВыполнения",, Отказ); Возврат; - ИначеЕсли НЕ ЗаданиеВыполнено И ЗаданиеПодтверждено - И НЕ ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда + ИначеЕсли Не ЗаданиеВыполнено И ЗаданиеПодтверждено И Не ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда ОбщегоНазначения.СообщитьПользователю( - НСтр("ru = 'Укажите причину, по которой задача отменяется.'"),, - "Объект.РезультатВыполнения",, - Отказ); + НСтр("ru = 'Укажите причину, по которой задача отменяется.'"),, + "Объект.РезультатВыполнения",, Отказ); Возврат; КонецЕсли; // Предварительная запись бизнес-процесса для корректной работы обработчика точки маршрута. ЗаписатьРеквизитыБизнесПроцесса(ТекущийОбъект); - + КонецПроцедуры &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - + ИнициализироватьФорму(); // СтандартныеПодсистемы.УправлениеДоступом @@ -90,11 +86,11 @@ &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - + БизнесПроцессыИЗадачиКлиент.ФормаЗадачиОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник); - + Если ИмяСобытия = "Запись_Задание" Тогда - Если (Источник = ЗаданиеСсылка ИЛИ (ТипЗнч(Источник) = Тип("Массив") + Если (Источник = ЗаданиеСсылка Или (ТипЗнч(Источник) = Тип("Массив") И Источник.Найти(ЗаданиеСсылка) <> Неопределено)) Тогда Прочитать(); КонецЕсли; @@ -106,7 +102,7 @@ МодульРаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия); КонецЕсли; // Конец СтандартныеПодсистемы.РаботаСФайлами - + КонецПроцедуры &НаСервере @@ -127,52 +123,52 @@ &НаКлиенте Процедура СрокНачалаИсполненияПриИзменении(Элемент) - + Если Объект.ДатаНачала = НачалоДня(Объект.ДатаНачала) Тогда Объект.ДатаНачала = КонецДня(Объект.ДатаНачала); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ПредметНажатие(Элемент, СтандартнаяОбработка) - + СтандартнаяОбработка = Ложь; - ПоказатьЗначение(,Объект.Предмет); - + ПоказатьЗначение(, Объект.Предмет); + КонецПроцедуры // СтандартныеПодсистемы.РаботаСФайлами &НаКлиенте Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); МодульРаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); МодульРаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); - МодульРаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, - ПараметрыПеретаскивания, СтандартнаяОбработка); + МодульРаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, + СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры // Конец СтандартныеПодсистемы.РаботаСФайлами @@ -182,78 +178,78 @@ &НаКлиенте Процедура ЗаписатьИЗакрытьВыполнить(Команда) - + БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект); - + КонецПроцедуры &НаКлиенте Процедура Выполнено(Команда) - + ЗаданиеПодтверждено = Истина; ЗаданиеВыполнено = Истина; БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина); - + КонецПроцедуры &НаКлиенте Процедура Возвращено(Команда) - + ЗаданиеПодтверждено = Ложь; ЗаданиеВыполнено = Ложь; БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина); - + КонецПроцедуры &НаКлиенте Процедура Отменено(Команда) - + ЗаданиеПодтверждено = Истина; ЗаданиеВыполнено = Ложь; БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина); - + КонецПроцедуры &НаКлиенте Процедура ИзменитьЗаданиеВыполнить(Команда) - + Если Модифицированность Тогда Записать(); - КонецЕсли; + КонецЕсли; ПоказатьЗначение(, ЗаданиеСсылка); - + КонецПроцедуры &НаКлиенте Процедура Дополнительно(Команда) - + БизнесПроцессыИЗадачиКлиент.ОткрытьДопИнформациюОЗадаче(Объект.Ссылка); - + КонецПроцедуры &НаКлиенте Процедура ПринятьКИсполнению(Команда) - - БизнесПроцессыИЗадачиКлиент.ПринятьЗадачуКИсполнению(ЭтотОбъект, ТекущийПользователь); - + + БизнесПроцессыИЗадачиКлиент.ПринятьЗадачуКИсполнению(ЭтотОбъект, ТекущийПользователь); + КонецПроцедуры &НаКлиенте Процедура ОтменитьПринятиеКИсполнению(Команда) - + БизнесПроцессыИЗадачиКлиент.ОтменитьПринятиеЗадачиКИсполнению(ЭтотОбъект); - + КонецПроцедуры // СтандартныеПодсистемы.РаботаСФайлами &НаКлиенте Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); МодульРаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда); КонецЕсли; - + КонецПроцедуры // Конец СтандартныеПодсистемы.РаботаСФайлами @@ -263,22 +259,22 @@ &НаСервере Процедура ИнициализироватьФорму() - + НачальныйПризнакВыполнения = Объект.Выполнена; ПрочитатьРеквизитыБизнесПроцесса(); УстановитьСостояниеЭлементов(); - + ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач"); Элементы.СрокНачалаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач; Элементы.ДатаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач; БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.СрокИсполнения); БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.Дата); - - БизнесПроцессыИЗадачиСервер.ФормаЗадачиПриСозданииНаСервере(ЭтотОбъект, Объект, - Элементы.ГруппаСостояние, Элементы.ДатаИсполнения); + + БизнесПроцессыИЗадачиСервер.ФормаЗадачиПриСозданииНаСервере(ЭтотОбъект, Объект, Элементы.ГруппаСостояние, + Элементы.ДатаИсполнения); Элементы.ОписаниеРезультата.ТолькоПросмотр = Объект.Выполнена; Исполнитель = ?(ЗначениеЗаполнено(Объект.Исполнитель), Объект.Исполнитель, Объект.РольИсполнителя); - + Если ПравоДоступа("Изменение", Метаданные.БизнесПроцессы.Задание) Тогда Элементы.Выполнено.Доступность = Истина; Элементы.Отменено.Доступность = Истина; @@ -288,14 +284,14 @@ Элементы.Отменено.Доступность = Ложь; Элементы.Возвращено.Доступность = Ложь; КонецЕсли; - + КонецПроцедуры &НаСервере Процедура ПрочитатьРеквизитыБизнесПроцесса() - + ЗадачаОбъект = РеквизитФормыВЗначение("Объект"); - + УстановитьПривилегированныйРежим(Истина); ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект(); // БизнесПроцессОбъект ЗаданиеВыполнено = ЗаданиеОбъект.Выполнено; @@ -303,36 +299,36 @@ ЗаданиеПодтверждено = ЗаданиеОбъект.Подтверждено; ЗаданиеРезультатВыполнения = ЗаданиеОбъект.РезультатВыполнения; ЗаданиеСодержание = ЗаданиеОбъект.Содержание; - -КонецПроцедуры + +КонецПроцедуры &НаСервере Процедура ЗаписатьРеквизитыБизнесПроцесса(ЗадачаОбъект) - + УстановитьПривилегированныйРежим(Истина); НачатьТранзакцию(); Попытка БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы(ЗадачаОбъект.БизнесПроцесс); - + ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект(); ЗаблокироватьДанныеДляРедактирования(ЗаданиеОбъект.Ссылка); - + ЗаданиеОбъект.Выполнено = ЗаданиеВыполнено; ЗаданиеОбъект.Подтверждено = ЗаданиеПодтверждено; ЗаданиеОбъект.Записать(); // АПК:1327 Блокировка установлена в БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы - + ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; - КонецПопытки; -КонецПроцедуры + КонецПопытки; +КонецПроцедуры &НаСервере Процедура УстановитьСостояниеЭлементов() - - БизнесПроцессы.Задание.УстановитьСостояниеЭлементовФормыЗадачи(ЭтотОбъект); - -КонецПроцедуры -#КонецОбласти + БизнесПроцессы.Задание.УстановитьСостояниеЭлементовФормыЗадачи(ЭтотОбъект); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl index 247554c0a..adb8eb081 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl +++ b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl @@ -21,7 +21,7 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + УстановитьУсловноеОформление(); // Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере. @@ -43,7 +43,7 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - + ОбновитьДоступностьКомандОстановки(); // СтандартныеПодсистемы.РаботаСФайлами @@ -57,7 +57,7 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - + ИнициализироватьФорму(); // СтандартныеПодсистемы.УправлениеДоступом @@ -71,34 +71,35 @@ &НаКлиенте Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) - + Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("ОбщаяФорма.ВыборРолиИсполнителя") Тогда - + Если КонтекстВыбора = "ИсполнительПриИзменении" Тогда - + Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда Объект.Исполнитель = ВыбранноеЗначение.РольИсполнителя; КонецЕсли; - + УстановитьДоступностьПроверяющего(ЭтотОбъект); - + ИначеЕсли КонтекстВыбора = "ПроверяющийПриИзменении" Тогда - + Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда Объект.Проверяющий = ВыбранноеЗначение.РольИсполнителя; КонецЕсли; - + КонецЕсли; - + КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - + Если ИмяСобытия = "ИзмененаНастройкаОтложенногоСтарта" Тогда - Отложен = (Параметр.Отложен И Параметр.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияПроцессовДляЗапуска.ГотовКСтарту")); + Отложен = (Параметр.Отложен + И Параметр.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияПроцессовДляЗапуска.ГотовКСтарту")); ДатаОтложенногоСтарта = Параметр.ДатаОтложенногоСтарта; УстановитьСвойстваЭлементовФормы(ЭтотОбъект); Если Элементы.ГруппаСостояние.Видимость Тогда @@ -123,10 +124,10 @@ &НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - + ИзменятьЗаданияЗаднимЧислом = ПолучитьФункциональнуюОпцию("ИзменятьЗаданияЗаднимЧислом"); Если НачальныйПризнакСтарта И ИзменятьЗаданияЗаднимЧислом Тогда - УстановитьПривилегированныйРежим(Истина); + УстановитьПривилегированныйРежим(Истина); ТекущийОбъект.ИзменитьРеквизитыНевыполненныхЗадач(); КонецЕсли; @@ -169,25 +170,25 @@ &НаКлиенте Процедура НаПроверкеПриИзменении(Элемент) - + УстановитьДоступностьПроверяющего(ЭтотОбъект); - + КонецПроцедуры &НаКлиенте Процедура ПредметНажатие(Элемент, СтандартнаяОбработка) - + СтандартнаяОбработка = Ложь; - ПоказатьЗначение(,Объект.Предмет); - + ПоказатьЗначение(, Объект.Предмет); + КонецПроцедуры &НаКлиенте Процедура ГлавнаяЗадачаНажатие(Элемент, СтандартнаяОбработка) - + СтандартнаяОбработка = Ложь; - ПоказатьЗначение(,Объект.ГлавнаяЗадача); - + ПоказатьЗначение(, Объект.ГлавнаяЗадача); + КонецПроцедуры &НаКлиенте @@ -198,48 +199,48 @@ &НаКлиенте Процедура ИсполнительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - + СтандартнаяОбработка = Ложь; БизнесПроцессыИЗадачиКлиент.ВыбратьИсполнителя(Элемент, Объект.Исполнитель); - + КонецПроцедуры &НаКлиенте Процедура ИсполнительПриИзменении(Элемент) - + Если ОткрытаФормаВыбораИсполнителя = Истина Тогда Возврат; КонецЕсли; - + ОсновнойОбъектАдресации = Неопределено; ДополнительныйОбъектАдресации = Неопределено; - - Если ТипЗнч(Объект.Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") И ЗначениеЗаполнено(Объект.Исполнитель) Тогда - - Если ИспользуетсяСОбъектамиАдресации(Объект.Исполнитель) Тогда - + + Если ТипЗнч(Объект.Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") И ЗначениеЗаполнено(Объект.Исполнитель) Тогда + + Если ИспользуетсяСОбъектамиАдресации(Объект.Исполнитель) Тогда + КонтекстВыбора = "ИсполнительПриИзменении"; - + ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("РольИсполнителя", Объект.Исполнитель); ПараметрыФормы.Вставить("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации); ПараметрыФормы.Вставить("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации); - + ОткрытьФорму("ОбщаяФорма.ВыборРолиИсполнителя", ПараметрыФормы, ЭтотОбъект); - + Возврат; - + КонецЕсли; - + КонецЕсли; - + УстановитьДоступностьПроверяющего(ЭтотОбъект); - + КонецПроцедуры &НаКлиенте Процедура ИсполнительОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) - + ОткрытаФормаВыбораИсполнителя = ТипЗнч(ВыбранноеЗначение) = Тип("Структура"); Если ОткрытаФормаВыбораИсполнителя Тогда СтандартнаяОбработка = Ложь; @@ -248,69 +249,69 @@ Объект.ДополнительныйОбъектАдресации = ВыбранноеЗначение.ДополнительныйОбъектАдресации; Модифицированность = Истина; КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ИсполнительАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) - - Если ЗначениеЗаполнено(Текст) Тогда + + Если ЗначениеЗаполнено(Текст) Тогда СтандартнаяОбработка = Ложь; ДанныеВыбора = БизнесПроцессыИЗадачиВызовСервера.СформироватьДанныеВыбораИсполнителя(Текст); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ИсполнительОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) - - Если ЗначениеЗаполнено(Текст) Тогда + + Если ЗначениеЗаполнено(Текст) Тогда СтандартнаяОбработка = Ложь; ДанныеВыбора = БизнесПроцессыИЗадачиВызовСервера.СформироватьДанныеВыбораИсполнителя(Текст); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ПроверяющийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - + СтандартнаяОбработка = Ложь; БизнесПроцессыИЗадачиКлиент.ВыбратьИсполнителя(Элемент, Объект.Проверяющий); - + КонецПроцедуры &НаКлиенте Процедура ПроверяющийПриИзменении(Элемент) - + Если ОткрытаФормаВыбораПроверяющего = Истина Тогда Возврат; КонецЕсли; - + ОсновнойОбъектАдресации = Неопределено; ДополнительныйОбъектАдресации = Неопределено; - + Если ТипЗнч(Объект.Проверяющий) = Тип("СправочникСсылка.РолиИсполнителей") И ЗначениеЗаполнено(Объект.Проверяющий) Тогда - + Если ИспользуетсяСОбъектамиАдресации(Объект.Проверяющий) Тогда - + КонтекстВыбора = "ПроверяющийПриИзменении"; - + ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("РольИсполнителя", Объект.Проверяющий); ПараметрыФормы.Вставить("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации); ПараметрыФормы.Вставить("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации); - + ОткрытьФорму("ОбщаяФорма.ВыборРолиИсполнителя", ПараметрыФормы, ЭтотОбъект); - + КонецЕсли; - + КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ПроверяющийОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) - + ОткрытаФормаВыбораПроверяющего = ТипЗнч(ВыбранноеЗначение) = Тип("Структура"); Если ОткрытаФормаВыбораПроверяющего Тогда СтандартнаяОбработка = Ложь; @@ -319,27 +320,27 @@ Объект.ДополнительныйОбъектАдресацииПроверяющий = ВыбранноеЗначение.ДополнительныйОбъектАдресации; Модифицированность = Истина; КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ПроверяющийАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) - - Если ЗначениеЗаполнено(Текст) Тогда + + Если ЗначениеЗаполнено(Текст) Тогда СтандартнаяОбработка = Ложь; ДанныеВыбора = БизнесПроцессыИЗадачиВызовСервера.СформироватьДанныеВыбораИсполнителя(Текст); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ПроверяющийОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) - - Если ЗначениеЗаполнено(Текст) Тогда + + Если ЗначениеЗаполнено(Текст) Тогда СтандартнаяОбработка = Ложь; ДанныеВыбора = БизнесПроцессыИЗадачиВызовСервера.СформироватьДанныеВыбораИсполнителя(Текст); КонецЕсли; - + КонецПроцедуры &НаКлиенте @@ -359,34 +360,34 @@ // СтандартныеПодсистемы.РаботаСФайлами &НаКлиенте Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); МодульРаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); МодульРаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); - МодульРаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, - ПараметрыПеретаскивания, СтандартнаяОбработка); + МодульРаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, + СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры // Конец СтандартныеПодсистемы.РаботаСФайлами @@ -396,31 +397,31 @@ &НаКлиенте Процедура ЗаписатьИЗакрыть(Команда) - + ОчиститьСообщения(); Если Не ПроверитьЗаполнение() Тогда - Возврат; + Возврат; КонецЕсли; - + Записать(); Закрыть(); - + КонецПроцедуры &НаКлиенте Процедура Остановить(Команда) - + БизнесПроцессыИЗадачиКлиент.ОстановитьБизнесПроцессИзФормыОбъекта(ЭтотОбъект); ОбновитьДоступностьКомандОстановки(); - + КонецПроцедуры &НаКлиенте Процедура ПродолжитьБизнесПроцесс(Команда) - + БизнесПроцессыИЗадачиКлиент.ПродолжитьБизнесПроцессИзФормыОбъекта(ЭтотОбъект); ОбновитьДоступностьКомандОстановки(); - + КонецПроцедуры &НаКлиенте @@ -431,12 +432,12 @@ // СтандартныеПодсистемы.РаботаСФайлами &НаКлиенте Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); МодульРаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда); КонецЕсли; - + КонецПроцедуры // Конец СтандартныеПодсистемы.РаботаСФайлами @@ -490,42 +491,42 @@ &НаСервере Процедура ИнициализироватьФорму() - + НачальныйПризнакСтарта = Объект.Стартован; - + УстановитьРеквизитыОтложенногоСтарта(); - + ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач"); ИзменятьЗаданияЗаднимЧислом = ПолучитьФункциональнуюОпцию("ИзменятьЗаданияЗаднимЧислом"); ИспользоватьПодчиненныеБизнесПроцессы = ПолучитьФункциональнуюОпцию("ИспользоватьПодчиненныеБизнесПроцессы"); - + ПредметСтрокой = ОбщегоНазначения.ПредметСтрокой(Объект.Предмет); - + Если Объект.ГлавнаяЗадача = Неопределено Или Объект.ГлавнаяЗадача.Пустая() Тогда ГлавнаяЗадачаСтрокой = НСтр("ru = 'не задана'"); - Иначе + Иначе ГлавнаяЗадачаСтрокой = Строка(Объект.ГлавнаяЗадача); КонецЕсли; - + УстановитьСвойстваЭлементовФормы(ЭтотОбъект); Если Элементы.ГруппаСостояние.Видимость Тогда ИнфоНадписьЗаголовок = СтроковыеФункции.ФорматированнаяСтрока(СообщениеОСтатусеЗадания(ЭтотОбъект)); Элементы.ИнфоНадписьЗаголовок.Высота = ?(СтрДлина(ИнфоНадписьЗаголовок) > 80, 2, 1); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ОбновитьДоступностьКомандОстановки() - + Если Объект.Завершен Тогда - + Элементы.ФормаОстановить.Видимость = Ложь; Элементы.ФормаПродолжить.Видимость = Ложь; Возврат; - + КонецЕсли; - + Если Объект.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияБизнесПроцессов.Остановлен") Тогда Элементы.ФормаОстановить.Видимость = Ложь; Элементы.ФормаПродолжить.Видимость = Истина; @@ -533,27 +534,27 @@ Элементы.ФормаОстановить.Видимость = Объект.Стартован; Элементы.ФормаПродолжить.Видимость = Ложь; КонецЕсли; - + КонецПроцедуры &НаКлиентеНаСервереБезКонтекста Процедура УстановитьДоступностьПроверяющего(Форма) - + ДоступностьПоля = Форма.Объект.НаПроверке; Форма.Элементы.ГруппаПроверяющий.Доступность = ДоступностьПоля; - + КонецПроцедуры &НаСервереБезКонтекста Функция ИспользуетсяСОбъектамиАдресации(ПроверяемыйОбъект) - + Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПроверяемыйОбъект, "ИспользуетсяСОбъектамиАдресации"); - + КонецФункции &НаКлиентеНаСервереБезКонтекста Процедура УстановитьСвойстваЭлементовФормы(Форма) - + Если Форма.ТолькоПросмотр Тогда Форма.Элементы.ФормаОстановить.Видимость = Ложь; Форма.Элементы.ФормаЗаписатьИЗакрыть.Видимость = Ложь; @@ -562,67 +563,69 @@ Форма.Элементы.ФормаПродолжить.Видимость = Ложь; Иначе ОбъектСтартован = ОбъектСтартован(Форма); - + Форма.Элементы.СрокИсполненияВремя.Видимость = Форма.ИспользоватьДатуИВремяВСрокахЗадач; Форма.Элементы.СрокПроверкиВремя.Видимость = Форма.ИспользоватьДатуИВремяВСрокахЗадач; Форма.Элементы.Дата.Формат = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач, "ДЛФ=DT", "ДЛФ=D"); - Форма.Элементы.Предмет.Гиперссылка = Форма.Объект.Предмет <> Неопределено И НЕ Форма.Объект.Предмет.Пустая(); + Форма.Элементы.Предмет.Гиперссылка = Форма.Объект.Предмет <> Неопределено + И Не Форма.Объект.Предмет.Пустая(); Форма.Элементы.ФормаСтартИЗакрыть.Видимость = Не ОбъектСтартован; Форма.Элементы.ФормаСтартИЗакрыть.КнопкаПоУмолчанию = Не ОбъектСтартован; Форма.Элементы.ФормаСтарт.Видимость = Не ОбъектСтартован; Форма.Элементы.ФормаНастроитьОтложенныйСтарт.Видимость = Не ОбъектСтартован; Форма.Элементы.ФормаЗаписатьИЗакрыть.Видимость = ?(Форма.Объект.Завершен, Ложь, ОбъектСтартован); - Форма.Элементы.ФормаЗаписать.Видимость = НЕ Форма.Объект.Завершен; + Форма.Элементы.ФормаЗаписать.Видимость = Не Форма.Объект.Завершен; Форма.Элементы.ФормаЗаписатьИЗакрыть.КнопкаПоУмолчанию = ОбъектСтартован; Форма.Элементы.ФормаНастроитьОтложенныйСтарт.Доступность = Не Форма.Объект.Стартован; - + Если Форма.Объект.ГлавнаяЗадача = Неопределено Или Форма.Объект.ГлавнаяЗадача.Пустая() Тогда Форма.Элементы.ГлавнаяЗадача.Гиперссылка = Ложь; КонецЕсли; - + Если Не Форма.ИспользоватьПодчиненныеБизнесПроцессы Тогда Форма.Элементы.ГлавнаяЗадача.Видимость = Ложь; КонецЕсли; КонецЕсли; - + Форма.Элементы.ГруппаСостояние.Видимость = Форма.Объект.Завершен Или ОбъектСтартован(Форма); УстановитьДоступностьПроверяющего(Форма); - + КонецПроцедуры &НаКлиентеНаСервереБезКонтекста Функция СообщениеОСтатусеЗадания(Форма) - + ТекстСостояния = ""; - + Если Форма.Объект.Завершен Тогда ДатаЗавершенияСтрокой = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач, - Формат(Форма.Объект.ДатаЗавершения, "ДЛФ=DT"), Формат(Форма.Объект.ДатаЗавершения, "ДЛФ=D")); + Формат(Форма.Объект.ДатаЗавершения, "ДЛФ=DT"), + Формат(Форма.Объект.ДатаЗавершения, "ДЛФ=D")); СтрокаТекста = ?(Форма.Объект.Выполнено, - НСтр("ru = 'Задание выполнено %1.'"), - НСтр("ru = 'Задание отменено %1.'")); + НСтр("ru = 'Задание выполнено %1.'"), НСтр("ru = 'Задание отменено %1.'")); ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаТекста, ДатаЗавершенияСтрокой); - - Для каждого Элемент Из Форма.Элементы Цикл + + Для Каждого Элемент Из Форма.Элементы Цикл Если ТипЗнч(Элемент) <> Тип("ПолеФормы") И ТипЗнч(Элемент) <> Тип("ГруппаФормы") Тогда Продолжить; КонецЕсли; Элемент.ТолькоПросмотр = Истина; КонецЦикла; - + ИначеЕсли Форма.Объект.Стартован Тогда ТекстСостояния = ?(Форма.ИзменятьЗаданияЗаднимЧислом, НСтр("ru = 'Изменения формулировки, важности, автора, а также перенос сроков исполнения и проверки задания вступят в силу немедленно для ранее выданной задачи.'"), НСтр("ru = 'Изменения формулировки, важности, автора, а также перенос сроков исполнения и проверки задания не будут отражены в ранее выданной задаче.'")); ИначеЕсли Форма.Отложен Тогда - ДатаОтложенногоСтартаСтрокой = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач, - Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=DT"), Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=D")); - ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Задание будет запущено %2'"), - "ОткрытьНастройкуОтложенногоСтарта", ДатаОтложенногоСтартаСтрокой); + ДатаОтложенногоСтартаСтрокой = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач, Формат(Форма.ДатаОтложенногоСтарта, + "ДЛФ=DT"), Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=D")); + ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Задание будет запущено %2'"), "ОткрытьНастройкуОтложенногоСтарта", + ДатаОтложенногоСтартаСтрокой); КонецЕсли; - + Возврат ТекстСостояния; - + КонецФункции &НаСервере @@ -631,15 +634,15 @@ Если Не ЗначениеЗаполнено(ПроверяемыйОбъект.СрокИсполнения) Тогда Возврат; КонецЕсли; - + ДатаОтложенногоСтарта = БизнесПроцессыИЗадачиСервер.ДатаОтложенногоСтартаПроцесса(ПроверяемыйОбъект.Ссылка); - + Если ПроверяемыйОбъект.СрокИсполнения < ДатаОтложенногоСтарта Тогда ОбщегоНазначения.СообщитьПользователю( - НСтр("ru = 'Срок исполнения задания не может быть меньше даты отложенного старта.'"),, + НСтр("ru = 'Срок исполнения задания не может быть меньше даты отложенного старта.'"),, "СрокИсполнения", "Объект.СрокИсполнения"); КонецЕсли; - + КонецПроцедуры &НаКлиенте @@ -657,33 +660,33 @@ Если Объект.Стартован Тогда Возврат Истина; КонецЕсли; - + ОчиститьСообщения(); - + РеквизитыФормыЗаполнены = Истина; - Если НЕ ЗначениеЗаполнено(Объект.Исполнитель) Тогда - ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Исполнитель"" не заполнено.'"),, + Если Не ЗначениеЗаполнено(Объект.Исполнитель) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Исполнитель"" не заполнено.'"),, "Исполнитель", "Объект.Исполнитель"); РеквизитыФормыЗаполнены = Ложь; КонецЕсли; - Если НЕ ЗначениеЗаполнено(Объект.Наименование) Тогда - ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Задание"" не заполнено.'"),, + Если Не ЗначениеЗаполнено(Объект.Наименование) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Задание"" не заполнено.'"),, "Исполнитель", "Объект.Наименование"); РеквизитыФормыЗаполнены = Ложь; КонецЕсли; - Если НЕ ЗначениеЗаполнено(Объект.СрокИсполнения) Тогда + Если Не ЗначениеЗаполнено(Объект.СрокИсполнения) Тогда ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Срок"" исполнения не заполнено.'"),, "СрокИсполнения", "Объект.СрокИсполнения"); РеквизитыФормыЗаполнены = Ложь; КонецЕсли; - + Возврат РеквизитыФормыЗаполнены; - + КонецФункции &НаКлиентеНаСервереБезКонтекста Функция ОбъектСтартован(Форма) - Возврат Форма.Объект.Стартован ИЛИ Форма.Отложен; + Возврат Форма.Объект.Стартован Или Форма.Отложен; КонецФункции &НаСервере @@ -691,7 +694,7 @@ ДатаОтложенногоСтарта = БизнесПроцессыИЗадачиСервер.ДатаОтложенногоСтартаПроцесса(Объект.Ссылка); Отложен = (ДатаОтложенногоСтарта <> '00010101'); - + КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ФормаСписка/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ФормаСписка/Module.bsl index e65a586d4..de2f1e3aa 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/BusinessProcesses/Задание/Forms/ФормаСписка/Module.bsl @@ -10,24 +10,24 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + ПоАвтору = Пользователи.ТекущийПользователь(); - + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( Список, "ЗадачаИсточник", Задачи.ЗадачаИсполнителя.ПустаяСсылка()); - + УстановитьОтбор(); ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач"); Элементы.СрокИсполнения.Формат = ?(ИспользоватьДатуИВремяВСрокахЗадач, "ДЛФ=DT", "ДЛФ=D"); Элементы.СрокПроверки.Формат = ?(ИспользоватьДатуИВремяВСрокахЗадач, "ДЛФ=DT", "ДЛФ=D"); БизнесПроцессыИЗадачиСервер.УстановитьОформлениеБизнесПроцессов(Список.УсловноеОформление); Элементы.ФормаОстановить.Видимость = ПравоДоступа("Изменение", Метаданные.БизнесПроцессы.Задание); - + КонецПроцедуры &НаСервере Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) - УстановитьОтборСписка(Настройки); + УстановитьОтборСписка(Настройки); КонецПроцедуры #КонецОбласти @@ -51,18 +51,18 @@ &НаКлиенте Процедура ПоказыватьЗавершенныеЗаданияПриИзменении(Элемент) - + УстановитьОтбор(); Элементы.Список.Обновить(); - + КонецПроцедуры &НаКлиенте Процедура ПоказыватьОстановленныеПриИзменении(Элемент) - + УстановитьОтбор(); Элементы.Список.Обновить(); - + КонецПроцедуры #КонецОбласти @@ -71,16 +71,16 @@ &НаКлиенте Процедура Остановить(Команда) - + БизнесПроцессыИЗадачиКлиент.Остановить(Элементы.Список.ВыделенныеСтроки); - + КонецПроцедуры &НаКлиенте Процедура ПродолжитьБизнесПроцесс(Команда) - + БизнесПроцессыИЗадачиКлиент.СделатьАктивным(Элементы.Список.ВыделенныеСтроки); - + КонецПроцедуры #КонецОбласти @@ -89,7 +89,7 @@ &НаСервере Процедура УстановитьОтбор() - ПараметрыОтбора = Новый Соответствие(); + ПараметрыОтбора = Новый Соответствие; ПараметрыОтбора.Вставить("ПоказыватьЗавершенныеЗадания", ПоказыватьЗавершенныеЗадания); ПараметрыОтбора.Вставить("ПоказыватьОстановленные", ПоказыватьОстановленные); ПараметрыОтбора.Вставить("ПоАвтору", ПоАвтору); @@ -100,18 +100,18 @@ &НаСервере Процедура УстановитьОтборСписка(ПараметрыОтбора) - + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Завершен", Ложь,,, Не ПараметрыОтбора["ПоказыватьЗавершенныеЗадания"]); ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Остановлен", Ложь,,, Не ПараметрыОтбора["ПоказыватьОстановленные"]); - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Автор", ПараметрыОтбора["ПоАвтору"],,, - Не ПараметрыОтбора["ПоАвтору"].Пустая()); - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Исполнитель", ПараметрыОтбора["ПоИсполнителю"],,, - Не ПараметрыОтбора["ПоИсполнителю"].Пустая()); - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Проверяющий", ПараметрыОтбора["ПоПроверяющему"],,, - Не ПараметрыОтбора["ПоПроверяющему"].Пустая()); - + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Автор", + ПараметрыОтбора["ПоАвтору"],,, Не ПараметрыОтбора["ПоАвтору"].Пустая()); + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Исполнитель", + ПараметрыОтбора["ПоИсполнителю"],,, Не ПараметрыОтбора["ПоИсполнителю"].Пустая()); + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Проверяющий", + ПараметрыОтбора["ПоПроверяющему"],,, Не ПараметрыОтбора["ПоПроверяющему"].Пустая()); + КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl index 20c89ac9d..f40ea89b8 100644 --- a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl +++ b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl @@ -21,7 +21,7 @@ // Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт - + Результат = Новый Массив; Результат.Добавить("Автор"); Результат.Добавить("Важность"); @@ -31,7 +31,7 @@ Результат.Добавить("СрокИсполнения"); Результат.Добавить("СрокПроверки"); Возврат Результат; - + КонецФункции // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов @@ -52,18 +52,18 @@ // * ИмяФормы - Строка - имя формы, передаваемое в метод контекста ОткрытьФорму() // Функция ФормаВыполненияЗадачи(ЗадачаСсылка, ТочкаМаршрутаБизнесПроцесса) Экспорт - + Результат = Новый Структура; Результат.Вставить("ПараметрыФормы", Новый Структура("Ключ", ЗадачаСсылка)); - + ИмяФормы = ?(ТочкаМаршрутаБизнесПроцесса.Имя = "Проверить", Метаданные.БизнесПроцессы.Задание.Формы.ДействиеПроверить.ПолноеИмя(), Метаданные.БизнесПроцессы.Задание.Формы.ДействиеВыполнить.ПолноеИмя()); Результат.Вставить("ИмяФормы", ИмяФормы); - + Возврат Результат; - + КонецФункции // Вызывается при перенаправлении задачи. @@ -78,12 +78,12 @@ // в вызывающей функции БизнесПроцессыИЗадачиВызовСервера.ПеренаправитьЗадачи. БизнесПроцессОбъект = ЗадачаСсылка.БизнесПроцесс.ПолучитьОбъект(); ЗаблокироватьДанныеДляРедактирования(БизнесПроцессОбъект.Ссылка); - БизнесПроцессОбъект.РезультатВыполнения = РезультатВыполненияПриПеренаправлении(ЗадачаСсылка) + БизнесПроцессОбъект.РезультатВыполнения = РезультатВыполненияПриПеренаправлении(ЗадачаСсылка) + БизнесПроцессОбъект.РезультатВыполнения; УстановитьПривилегированныйРежим(Истина); БизнесПроцессОбъект.Записать(); // АПК:1327-вкл - + КонецПроцедуры // Вызывается при выполнении задачи из формы списка. @@ -94,7 +94,7 @@ // ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка - точка маршрута. // Процедура ОбработкаВыполненияПоУмолчанию(ЗадачаСсылка, БизнесПроцессСсылка, ТочкаМаршрутаБизнесПроцесса) Экспорт - + ЭтоТочкаМаршрутаВыполнить = (ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить); ЭтоТочкаМаршрутаПроверить = (ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.Задание.ТочкиМаршрута.Проверить); Если Не ЭтоТочкаМаршрутаВыполнить И Не ЭтоТочкаМаршрутаПроверить Тогда @@ -105,25 +105,25 @@ НачатьТранзакцию(); Попытка БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы(БизнесПроцессСсылка); - + УстановитьПривилегированныйРежим(Истина); ЗаданиеОбъект = БизнесПроцессСсылка.ПолучитьОбъект(); ЗаблокироватьДанныеДляРедактирования(ЗаданиеОбъект.Ссылка); - + Если ЭтоТочкаМаршрутаВыполнить Тогда - ЗаданиеОбъект.Выполнено = Истина; + ЗаданиеОбъект.Выполнено = Истина; ИначеЕсли ЭтоТочкаМаршрутаПроверить Тогда ЗаданиеОбъект.Выполнено = Истина; ЗаданиеОбъект.Подтверждено = Истина; КонецЕсли; ЗаданиеОбъект.Записать(); // АПК:1327 Блокировка в БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы. - + ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; - КонецПопытки; - + КонецПопытки; + КонецПроцедуры // Конец СтандартныеПодсистемы.БизнесПроцессыИЗадачи @@ -134,7 +134,7 @@ // Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. // Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт - + Ограничение.Текст = "ПрисоединитьДополнительныеТаблицы |ЭтотСписок КАК Задание @@ -162,7 +162,7 @@ |РазрешитьИзменениеЕслиРазрешеноЧтение |ГДЕ | ЗначениеРазрешено(Автор)"; - + КонецПроцедуры // Конец СтандартныеПодсистемы.УправлениеДоступом @@ -176,7 +176,7 @@ // Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры // Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт - + КонецПроцедуры // Для использования в процедуре ДобавитьКомандыСозданияНаОсновании других модулей менеджеров объектов. @@ -189,18 +189,19 @@ // СтрокаТаблицыЗначений, Неопределено - описание добавленной команды. // Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда МодульСозданиеНаОсновании = ОбщегоНазначения.ОбщийМодуль("СозданиеНаОсновании"); - Команда = МодульСозданиеНаОсновании.ДобавитьКомандуСозданияНаОсновании(КомандыСозданияНаОсновании, Метаданные.БизнесПроцессы.Задание); + Команда = МодульСозданиеНаОсновании.ДобавитьКомандуСозданияНаОсновании(КомандыСозданияНаОсновании, + Метаданные.БизнесПроцессы.Задание); Если Команда <> Неопределено Тогда Команда.ФункциональныеОпции = "ИспользоватьБизнесПроцессыИЗадачи"; КонецЕсли; Возврат Команда; КонецЕсли; - + Возврат Неопределено; - + КонецФункции // Конец СтандартныеПодсистемы.ПодключаемыеКоманды @@ -226,26 +227,28 @@ // ** Предмет - РасширениеПоляФормыДляПоляНадписи // Процедура УстановитьСостояниеЭлементовФормыЗадачи(Форма) Экспорт - + Если Форма.Элементы.Найти("РезультатВыполнения") <> Неопределено И Форма.Элементы.Найти("ИсторияВыполнения") <> Неопределено Тогда - Форма.Элементы.ИсторияВыполнения.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Форма.ЗаданиеРезультатВыполнения); + Форма.Элементы.ИсторияВыполнения.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария( + Форма.ЗаданиеРезультатВыполнения); КонецЕсли; - - Форма.Элементы.Предмет.Гиперссылка = Форма.Объект.Предмет <> Неопределено И НЕ Форма.Объект.Предмет.Пустая(); - Форма.ПредметСтрокой = ОбщегоНазначения.ПредметСтрокой(Форма.Объект.Предмет); - + + Форма.Элементы.Предмет.Гиперссылка = Форма.Объект.Предмет <> Неопределено И Не Форма.Объект.Предмет.Пустая(); + Форма.ПредметСтрокой = ОбщегоНазначения.ПредметСтрокой(Форма.Объект.Предмет); + КонецПроцедуры Функция РезультатВыполненияПриПеренаправлении(Знач ЗадачаСсылка) - + СтрокаФормат = "%1, %2 " + НСтр("ru = 'перенаправил(а) задачу'") + ": - |%3 - |"; - + |%3 + |"; + Комментарий = СокрЛП(ЗадачаСсылка.РезультатВыполнения); Комментарий = ?(ПустаяСтрока(Комментарий), "", Комментарий + Символы.ПС); - Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, ЗадачаСсылка.ДатаИсполнения, ЗадачаСсылка.Исполнитель, Комментарий); + Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, ЗадачаСсылка.ДатаИсполнения, + ЗадачаСсылка.Исполнитель, Комментарий); Возврат Результат; КонецФункции diff --git a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl index aa436b38b..ec023759c 100644 --- a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl +++ b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl @@ -18,15 +18,15 @@ // Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа // Процедура ЗаполнитьНаборыЗначенийДоступа(Таблица) Экспорт - + БизнесПроцессыИЗадачиПереопределяемый.ПриЗаполненииНаборовЗначенийДоступа(ЭтотОбъект, Таблица); - + Если Таблица.Количество() > 0 Тогда Возврат; КонецЕсли; - + ЗаполнитьНаборыЗначенийДоступаПоУмолчанию(Таблица); - + КонецПроцедуры // Конец СтандартныеПодсистемы.УправлениеДоступом @@ -41,41 +41,41 @@ // Обработчики событий бизнес-процесса. Процедура ПередЗаписью(Отказ) - + Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; - + Если Автор <> Неопределено И Не Автор.Пустая() Тогда АвторСтрокой = Строка(Автор); КонецЕсли; - + БизнесПроцессыИЗадачиСервер.ПроверитьПраваНаИзменениеСостоянияБизнесПроцесса(ЭтотОбъект); - - Если ЗначениеЗаполнено(ГлавнаяЗадача) + + Если ЗначениеЗаполнено(ГлавнаяЗадача) И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ГлавнаяЗадача, "БизнесПроцесс") = Ссылка Тогда - + ВызватьИсключение НСтр("ru = 'Собственная задача бизнес-процесса не может быть указана как главная задача.'"); - + КонецЕсли; - + УстановитьПривилегированныйРежим(Истина); ГруппаИсполнителейЗадач = ?(ТипЗнч(Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей"), - БизнесПроцессыИЗадачиСервер.ГруппаИсполнителейЗадач(Исполнитель, ОсновнойОбъектАдресации, ДополнительныйОбъектАдресации), - Исполнитель); + БизнесПроцессыИЗадачиСервер.ГруппаИсполнителейЗадач(Исполнитель, ОсновнойОбъектАдресации, + ДополнительныйОбъектАдресации), Исполнитель); ГруппаИсполнителейЗадачПроверяющий = ?(ТипЗнч(Проверяющий) = Тип("СправочникСсылка.РолиИсполнителей"), - БизнесПроцессыИЗадачиСервер.ГруппаИсполнителейЗадач(Проверяющий, ОсновнойОбъектАдресацииПроверяющий, ДополнительныйОбъектАдресацииПроверяющий), - Проверяющий); + БизнесПроцессыИЗадачиСервер.ГруппаИсполнителейЗадач(Проверяющий, ОсновнойОбъектАдресацииПроверяющий, + ДополнительныйОбъектАдресацииПроверяющий), Проверяющий); УстановитьПривилегированныйРежим(Ложь); - - Если НЕ ЭтоНовый() И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Предмет") <> Предмет Тогда + + Если Не ЭтоНовый() И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Предмет") <> Предмет Тогда ИзменитьПредметЗадач(); КонецЕсли; - + КонецПроцедуры Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) - + Если ЭтоНовый() Тогда Автор = Пользователи.АвторизованныйПользователь(); Проверяющий = Пользователи.АвторизованныйПользователь(); @@ -86,24 +86,24 @@ Исполнитель = Справочники.Пользователи.ПустаяСсылка(); КонецЕсли; КонецЕсли; - + Если ДанныеЗаполнения <> Неопределено И ТипЗнч(ДанныеЗаполнения) <> Тип("Структура") И ДанныеЗаполнения <> Задачи.ЗадачаИсполнителя.ПустаяСсылка() Тогда - + Если ТипЗнч(ДанныеЗаполнения) <> Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда Предмет = ДанныеЗаполнения; Иначе Предмет = ДанныеЗаполнения.Предмет; КонецЕсли; - - КонецЕсли; - + + КонецЕсли; + БизнесПроцессыИЗадачиСервер.ЗаполнитьГлавнуюЗадачу(ЭтотОбъект, ДанныеЗаполнения); КонецПроцедуры Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) - МассивНепроверяемыхРеквизитов = Новый Массив(); + МассивНепроверяемыхРеквизитов = Новый Массив; Если Не НаПроверке Тогда МассивНепроверяемыхРеквизитов.Добавить("Проверяющий"); КонецЕсли; @@ -111,14 +111,14 @@ КонецПроцедуры Процедура ПриКопировании(ОбъектКопирования) - + НомерИтерации = 0; Выполнено = Ложь; Подтверждено = Ложь; РезультатВыполнения = ""; ДатаЗавершения = '00010101000000'; Состояние = Перечисления.СостоянияБизнесПроцессов.Активен; - + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -130,13 +130,13 @@ // Отказ - Булево // Процедура ВыполнитьПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ) - + НомерИтерации = НомерИтерации + 1; Записать(); // Устанавливаем реквизиты адресации и доп. реквизиты для каждой задачи. - Для каждого Задача Из ФормируемыеЗадачи Цикл - + Для Каждого Задача Из ФормируемыеЗадачи Цикл + Задача.Автор = Автор; Задача.АвторСтрокой = Строка(Автор); Если ТипЗнч(Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") Тогда @@ -144,31 +144,31 @@ Задача.ОсновнойОбъектАдресации = ОсновнойОбъектАдресации; Задача.ДополнительныйОбъектАдресации = ДополнительныйОбъектАдресации; Задача.Исполнитель = Неопределено; - Иначе + Иначе Задача.Исполнитель = Исполнитель; КонецЕсли; Задача.Наименование = НаименованиеЗадачиДляВыполнения(); Задача.СрокИсполнения = СрокИсполненияЗадачиДляВыполнения(); Задача.Важность = Важность; Задача.Предмет = Предмет; - + КонецЦикла; - + КонецПроцедуры Процедура ВыполнитьПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка) - + Если Предмет = Неопределено Или Предмет.Пустая() Тогда Возврат; КонецЕсли; - + КонецПроцедуры Процедура ВыполнитьПриВыполнении(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ) - + РезультатВыполнения = РезультатВыполненияТочкиВыполнить(Задача) + РезультатВыполнения; Записать(); - + КонецПроцедуры // Параметры: // ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание @@ -176,57 +176,57 @@ // Отказ - Булево // Процедура ПроверитьПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ) - + Если Проверяющий.Пустая() Тогда Отказ = Истина; Возврат; КонецЕсли; // Устанавливаем реквизиты адресации и доп. реквизиты для каждой задачи. - Для каждого Задача Из ФормируемыеЗадачи Цикл - + Для Каждого Задача Из ФормируемыеЗадачи Цикл + Задача.Автор = Автор; Если ТипЗнч(Проверяющий) = Тип("СправочникСсылка.РолиИсполнителей") Тогда Задача.РольИсполнителя = Проверяющий; Задача.ОсновнойОбъектАдресации = ОсновнойОбъектАдресацииПроверяющий; Задача.ДополнительныйОбъектАдресации = ДополнительныйОбъектАдресацииПроверяющий; - Иначе + Иначе Задача.Исполнитель = Проверяющий; КонецЕсли; - + Задача.Наименование = НаименованиеЗадачиДляПроверки(); Задача.СрокИсполнения = СрокИсполненияЗадачиДляПроверки(); Задача.Важность = Важность; Задача.Предмет = Предмет; - + КонецЦикла; - + КонецПроцедуры Процедура ПроверитьПриВыполнении(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ) РезультатВыполнения = РезультатВыполненияТочкиПроверить(Задача) + РезультатВыполнения; Записать(); - + КонецПроцедуры Процедура НужнаПроверкаПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат) - + Результат = НаПроверке; КонецПроцедуры Процедура ВернутьИсполнителюПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат) - - Результат = НЕ Подтверждено; - + + Результат = Не Подтверждено; + КонецПроцедуры Процедура ЗавершениеПриЗавершении(ТочкаМаршрутаБизнесПроцесса, Отказ) - + ДатаЗавершения = БизнесПроцессыИЗадачиСервер.ДатаЗавершенияБизнесПроцесса(Ссылка); Записать(); - + КонецПроцедуры #КонецОбласти @@ -245,41 +245,38 @@ ЭлементБлокировки = Блокировка.Добавить("Задача.ЗадачаИсполнителя"); ЭлементБлокировки.УстановитьЗначение("БизнесПроцесс", Ссылка); Блокировка.Заблокировать(); - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | Задачи.Ссылка КАК Ссылка - |ИЗ - | Задача.ЗадачаИсполнителя КАК Задачи - |ГДЕ - | Задачи.БизнесПроцесс = &БизнесПроцесс - | И Задачи.ПометкаУдаления = ЛОЖЬ - | И Задачи.Выполнена = ЛОЖЬ"); + + Запрос = Новый Запрос("ВЫБРАТЬ + | Задачи.Ссылка КАК Ссылка + |ИЗ + | Задача.ЗадачаИсполнителя КАК Задачи + |ГДЕ + | Задачи.БизнесПроцесс = &БизнесПроцесс + | И Задачи.ПометкаУдаления = ЛОЖЬ + | И Задачи.Выполнена = ЛОЖЬ"); Запрос.УстановитьПараметр("БизнесПроцесс", Ссылка); ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать(); - + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЗадачаОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); // ЗадачаОбъект ЗадачаОбъект.Важность = Важность; - ЗадачаОбъект.СрокИсполнения = - ?(ЗадачаОбъект.ТочкаМаршрута = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить, + ЗадачаОбъект.СрокИсполнения = ?(ЗадачаОбъект.ТочкаМаршрута = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить, СрокИсполненияЗадачиДляВыполнения(), СрокИсполненияЗадачиДляПроверки()); - ЗадачаОбъект.Наименование = - ?(ЗадачаОбъект.ТочкаМаршрута = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить, + ЗадачаОбъект.Наименование = ?(ЗадачаОбъект.ТочкаМаршрута = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить, НаименованиеЗадачиДляВыполнения(), НаименованиеЗадачиДляПроверки()); ЗадачаОбъект.Автор = Автор; // Не выполняем предварительную блокировку данных для редактирования, т.к. // Это изменение имеет более высокий приоритет над открытыми формами задач. ЗадачаОбъект.Записать(); КонецЦикла; - + ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; -КонецПроцедуры +КонецПроцедуры Процедура ИзменитьПредметЗадач() @@ -290,18 +287,17 @@ ЭлементБлокировки = Блокировка.Добавить("Задача.ЗадачаИсполнителя"); ЭлементБлокировки.УстановитьЗначение("БизнесПроцесс", Ссылка); Блокировка.Заблокировать(); - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | Задачи.Ссылка КАК Ссылка - |ИЗ - | Задача.ЗадачаИсполнителя КАК Задачи - |ГДЕ - | Задачи.БизнесПроцесс = &БизнесПроцесс"); + + Запрос = Новый Запрос("ВЫБРАТЬ + | Задачи.Ссылка КАК Ссылка + |ИЗ + | Задача.ЗадачаИсполнителя КАК Задачи + |ГДЕ + | Задачи.БизнесПроцесс = &БизнесПроцесс"); Запрос.УстановитьПараметр("БизнесПроцесс", Ссылка); ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать(); - + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЗадачаОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); // ЗадачаОбъект ЗадачаОбъект.Предмет = Предмет; @@ -315,71 +311,73 @@ ВызватьИсключение; КонецПопытки; -КонецПроцедуры +КонецПроцедуры Функция НаименованиеЗадачиДляВыполнения() - - Возврат Наименование; - + + Возврат Наименование; + КонецФункции Функция СрокИсполненияЗадачиДляВыполнения() - - Возврат СрокИсполнения; - + + Возврат СрокИсполнения; + КонецФункции Функция НаименованиеЗадачиДляПроверки() - + НаименованиеЗадачи = НСтр("ru='Проверить'"); - Возврат ?(ПустаяСтрока(НаименованиеЗадачи), "", НаименованиеЗадачи + ": ") + Наименование; - + Возврат ?(ПустаяСтрока(НаименованиеЗадачи), "", НаименованиеЗадачи + ": ") + Наименование; + КонецФункции Функция СрокИсполненияЗадачиДляПроверки() - - Возврат СрокПроверки; - + + Возврат СрокПроверки; + КонецФункции Функция РезультатВыполненияТочкиВыполнить(Знач ЗадачаСсылка) - + ЗадачаДанные = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗадачаСсылка, "РезультатВыполнения,ДатаИсполнения,Исполнитель,Выполнена"); - - СтрокаФормат = ?(ЗадачаДанные.Выполнена, + + СтрокаФормат = ?(ЗадачаДанные.Выполнена, НСтр("ru = '%1, %2 выполнил(а) задачу: - |%3'") + Символы.ПС, + |%3'") + Символы.ПС, НСтр("ru = '%1, %2 отклонил(а) задачу: - |%3'") + Символы.ПС); - + |%3'") + Символы.ПС); + Комментарий = СокрЛП(ЗадачаДанные.РезультатВыполнения); Комментарий = ?(ПустаяСтрока(Комментарий), "", Комментарий + Символы.ПС); - - Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, ЗадачаДанные.ДатаИсполнения, ЗадачаДанные.Исполнитель, Комментарий); + + Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, ЗадачаДанные.ДатаИсполнения, + ЗадачаДанные.Исполнитель, Комментарий); Возврат Результат; - + КонецФункции Функция РезультатВыполненияТочкиПроверить(Знач ЗадачаСсылка) - - Если НЕ Подтверждено Тогда + + Если Не Подтверждено Тогда СтрокаФормат = НСтр("ru = '%1, %2 вернул(а) задачу на доработку: - |%3'") + Символы.ПС; - + |%3'") + Символы.ПС; + Иначе - СтрокаФормат = ?(Выполнено, + СтрокаФормат = ?(Выполнено, НСтр("ru = '%1, %2 подтвердил(а) выполнение задачи: - |%3'") + Символы.ПС, + |%3'") + Символы.ПС, НСтр("ru = '%1, %2 подтвердил(а) отмену задачи: - |%3'") + Символы.ПС); + |%3'") + Символы.ПС); КонецЕсли; - - ЗадачаДанные = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗадачаСсылка, + + ЗадачаДанные = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗадачаСсылка, "РезультатВыполнения,ДатаИсполнения,Исполнитель"); Комментарий = СокрЛП(ЗадачаДанные.РезультатВыполнения); Комментарий = ?(ПустаяСтрока(Комментарий), "", Комментарий + Символы.ПС); - Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, ЗадачаДанные.ДатаИсполнения, ЗадачаДанные.Исполнитель, Комментарий); + Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, ЗадачаДанные.ДатаИсполнения, + ЗадачаДанные.Исполнитель, Комментарий); Возврат Результат; КонецФункции @@ -410,11 +408,11 @@ Строка.НомерНабора = 3; Строка.Чтение = Истина; Строка.ЗначениеДоступа = ГруппаИсполнителейЗадачПроверяющий; - + КонецПроцедуры #КонецОбласти #Иначе -ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); + ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); #КонецЕсли \ No newline at end of file diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl index e91ab60dd..d0240721a 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl @@ -84,7 +84,7 @@ ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьМножественноеЧисло); ПараметрыПрописи.Добавить(Форма.ДлинаДробнойЧасти); - Возврат СтрСоединить(ПараметрыПрописи, ", ");; + Возврат СтрСоединить(ПараметрыПрописи, ", "); КонецФункции diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl index f8eb40593..11c0631d5 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl @@ -10,29 +10,29 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + НаборЯзыков = Новый ТаблицаЗначений; - НаборЯзыков.Колонки.Добавить("КодЯзыка", ОбщегоНазначения.ОписаниеТипаСтрока(10)); + НаборЯзыков.Колонки.Добавить("КодЯзыка", ОбщегоНазначения.ОписаниеТипаСтрока(10)); НаборЯзыков.Колонки.Добавить("Представление", ОбщегоНазначения.ОписаниеТипаСтрока(150)); - + ДоступныеЯзыки = Новый Массив; Для Каждого Язык Из Метаданные.Языки Цикл ДоступныеЯзыки.Добавить(Язык.КодЯзыка); КонецЦикла; - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); ДоступныеЯзыки = МодульУправлениеПечатьюМультиязычность.ДоступныеЯзыки(); КонецЕсли; - + Для Каждого КодЯзыка Из ДоступныеЯзыки Цикл НовыйЯзык = НаборЯзыков.Добавить(); НовыйЯзык.КодЯзыка = КодЯзыка; НовыйЯзык.Представление = РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка); КонецЦикла; - + ИмеющиесяЯзыкиВводаПрописей = ИмеющиесяЯзыкиВводаПрописей(); - + Для Каждого ЯзыкКонфигурации Из НаборЯзыков Цикл Если ИмеющиесяЯзыкиВводаПрописей.Найти(ЯзыкКонфигурации.КодЯзыка) <> Неопределено Тогда Продолжить; @@ -41,37 +41,38 @@ ЗаполнитьЗначенияСвойств(НоваяСтрока, ЯзыкКонфигурации); НоваяСтрока.Имя = "_" + СтрЗаменить(Новый УникальныйИдентификатор, "-", ""); КонецЦикла; - + СформироватьПоляВводаНаРазныхЯзыках(Ложь, Параметры.ТолькоПросмотр); - + ОписаниеЯзыка = ОписаниеЯзыка(ТекущийЯзык().КодЯзыка); Если ОписаниеЯзыка <> Неопределено Тогда ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущееЗначение; КонецЕсли; - + ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка(); - - Для каждого Представление Из Параметры.Представления Цикл - + + Для Каждого Представление Из Параметры.Представления Цикл + ОписаниеЯзыка = ОписаниеЯзыка(Представление.КодЯзыка); Если ОписаниеЯзыка <> Неопределено Тогда Если СтрСравнить(ОписаниеЯзыка.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0 Тогда - ЭтотОбъект[ОписаниеЯзыка.Имя] = ?(ЗначениеЗаполнено(Параметры.ТекущееЗначение), Параметры.ТекущееЗначение, Представление[Параметры.ИмяРеквизита]); + ЭтотОбъект[ОписаниеЯзыка.Имя] = ?(ЗначениеЗаполнено(Параметры.ТекущееЗначение), + Параметры.ТекущееЗначение, Представление[Параметры.ИмяРеквизита]); Иначе ЭтотОбъект[ОписаниеЯзыка.Имя] = Представление[Параметры.ИмяРеквизита]; КонецЕсли; КонецЕсли; - + КонецЦикла; - + КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) - + СуммаЧисло = 123.45; УстановитьСуммуПрописью(); - + КонецПроцедуры #КонецОбласти @@ -80,32 +81,32 @@ &НаКлиенте Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница) - + УстановитьСуммуПрописью(); - + КонецПроцедуры &НаКлиенте Процедура СуммаЧислоПриИзменении(Элемент) - + УстановитьСуммуПрописью(); - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПолеВводаПриИзменении(Элемент) - + Модифицированность = Истина; УстановитьСуммуПрописью(); ОповеститьВладельца(); - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПолеВводаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) - + Модифицированность = Истина; - + КонецПроцедуры #КонецОбласти @@ -114,17 +115,17 @@ &НаКлиенте Процедура ЗаписатьИЗакрыть(Команда) - + ОповеститьВладельца(Истина, Истина); - + КонецПроцедуры &НаКлиенте Процедура Записать(Команда) - + ОповеститьВладельца(Истина); Модифицированность = ВладелецФормы.Модифицированность; - + КонецПроцедуры #КонецОбласти @@ -133,35 +134,37 @@ &НаСервере Процедура СформироватьПоляВводаНаРазныхЯзыках(МногострочныйРежим, ТолькоПросмотр) - + Добавлять = Новый Массив; ТипСтрока = Новый ОписаниеТипов("Строка"); Для Каждого ЯзыкКонфигурации Из Языки Цикл - Добавлять.Добавить(Новый РеквизитФормы(ЯзыкКонфигурации.Имя, ТипСтрока,, ЯзыкКонфигурации.Представление)); - Добавлять.Добавить(Новый РеквизитФормы("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, ТипСтрока,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подсказка ввода для языка %1'"), ЯзыкКонфигурации.Представление))); + Добавлять.Добавить(Новый РеквизитФормы(ЯзыкКонфигурации.Имя, ТипСтрока, , ЯзыкКонфигурации.Представление)); + Добавлять.Добавить(Новый РеквизитФормы("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, ТипСтрока, , + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подсказка ввода для языка %1'"), + ЯзыкКонфигурации.Представление))); КонецЦикла; - + ИзменитьРеквизиты(Добавлять); РодительЭлементов = Элементы.Страницы; - + Для Каждого ЯзыкКонфигурации Из Языки Цикл - - Если СтрСравнить(ЯзыкКонфигурации.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0 И РодительЭлементов.ПодчиненныеЭлементы.Количество() > 0 Тогда + + Если СтрСравнить(ЯзыкКонфигурации.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0 + И РодительЭлементов.ПодчиненныеЭлементы.Количество() > 0 Тогда Страница = Элементы.Вставить("Страница" + ЯзыкКонфигурации.Имя, Тип("ГруппаФормы"), РодительЭлементов, РодительЭлементов.ПодчиненныеЭлементы.Получить(0)); Иначе Страница = Элементы.Добавить("Страница" + ЯзыкКонфигурации.Имя, Тип("ГруппаФормы"), РодительЭлементов); КонецЕсли; - + ЯзыкКонфигурации.Страница = Страница.Имя; - + Страница.Вид = ВидГруппыФормы.Страница; Страница.Заголовок = ЯзыкКонфигурации.Представление; - + ПолеВвода = Элементы.Добавить(ЯзыкКонфигурации.Имя, Тип("ПолеФормы"), Страница); ПолеВвода.ПутьКДанным = ЯзыкКонфигурации.Имя; - + Если ЗначениеЗаполнено(ЯзыкКонфигурации.ФормаРедактирования) Тогда ПолеВвода.Вид = ВидПоляФормы.ПолеНадписи; ПолеВвода.Гиперссылка = Истина; @@ -173,11 +176,12 @@ ПолеВвода.ТолькоПросмотр = ТолькоПросмотр; ПолеВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; ПолеВвода.УстановитьДействие("ПриИзменении", "Подключаемый_ПолеВводаПриИзменении"); - ПолеВвода.УстановитьДействие("ИзменениеТекстаРедактирования", "Подключаемый_ПолеВводаИзменениеТекстаРедактирования"); - + ПолеВвода.УстановитьДействие("ИзменениеТекстаРедактирования", + "Подключаемый_ПолеВводаИзменениеТекстаРедактирования"); + Подсказка = ПодсказкаЗаполненияПараметровПрописей(ЯзыкКонфигурации.КодЯзыка); ПолеВвода.ПодсказкаВвода = Подсказка.ПодсказкаВвода; - + ПодсказкаВвода = Элементы.Добавить("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, Тип("ПолеФормы"), Страница); ПодсказкаВвода.ПутьКДанным = "ПодсказкаВвода" + ЯзыкКонфигурации.Имя; ПодсказкаВвода.Вид = ВидПоляФормы.ПолеВвода; @@ -188,92 +192,93 @@ ПодсказкаВвода.МногострочныйРежим = Истина; ПодсказкаВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; ПодсказкаВвода.ЦветРамки = ЦветаСтиля.ЦветФонаФормы; - + Если Не ЗначениеЗаполнено(Подсказка.Инструкция) Тогда - Подсказка.Инструкция = НСтр("ru = 'Для данного языка настройка прописи не предусмотрена.'") + Подсказка.Инструкция = НСтр("ru = 'Для данного языка настройка прописи не предусмотрена.'"); КонецЕсли; + ЭтотОбъект["ПодсказкаВвода" + ЯзыкКонфигурации.Имя] = Подсказка.Инструкция; КонецЕсли; - + КонецЦикла; - + КонецПроцедуры &НаСервере Функция ОписаниеЯзыка(КодЯзыка) - + Отбор = Новый Структура("КодЯзыка", КодЯзыка); НайденныеЭлементы = Языки.НайтиСтроки(Отбор); Если НайденныеЭлементы.Количество() > 0 Тогда Возврат НайденныеЭлементы[0]; КонецЕсли; - + Возврат Неопределено; - + КонецФункции &НаКлиенте Процедура УстановитьСуммуПрописью() - + ТекущийЯзык = ОписаниеТекущегоЯзыка(); Если ТекущийЯзык = Неопределено Тогда Возврат; КонецЕсли; - + ПараметрыПрописи = ЭтотОбъект[ТекущийЯзык.Имя]; СуммаПрописью = ЧислоПрописью(СуммаЧисло, "L=" + ТекущийЯзык.КодЯзыка + ";ДП=Ложь", ПараметрыПрописи); // АПК:1357 - + КонецПроцедуры &НаКлиенте Функция ОписаниеТекущегоЯзыка() - + ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница; Если ТекущаяСтраница = Неопределено Тогда Возврат Неопределено; КонецЕсли; - + Возврат Языки.НайтиСтроки(Новый Структура("Страница", ТекущаяСтраница.Имя))[0]; - + КонецФункции &НаКлиенте -Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь) - +Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь) + ТекущийЯзык = ОписаниеТекущегоЯзыка(); - + ПараметрыПрописи = Новый Структура; ПараметрыПрописи.Вставить("КодЯзыка", ТекущийЯзык.КодЯзыка); ПараметрыПрописи.Вставить("ПараметрыПрописи", ЭтотОбъект[ТекущийЯзык.Имя]); ПараметрыПрописи.Вставить("Записать", Записать); ПараметрыПрописи.Вставить("Закрыть", Закрыть); - + Оповестить("ПараметрыПрописиВалюты", ПараметрыПрописи, ВладелецФормы); - + КонецПроцедуры &НаСервере Функция ИмеющиесяЯзыкиВводаПрописей() - + Возврат РаботаСКурсамиВалютСлужебный.ФормыВводаПрописей().ВыгрузитьЗначения(); - + КонецФункции &НаСервере Функция ПодсказкаЗаполненияПараметровПрописей(Знач КодЯзыка) - + Результат = Новый Структура; Результат.Вставить("Инструкция", ""); Результат.Вставить("ПодсказкаВвода", ""); - + Если Не ЗначениеЗаполнено(КодЯзыка) Тогда Возврат Результат; КонецЕсли; - + КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0]; - + Если КодЯзыка = "ru" Или КодЯзыка = "be" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для русского и белорусского языков (ru_RU, be_BY): @@ -287,11 +292,11 @@ |м – мужской род (ж – женский род, с - средний род); |""копейка, копейки, копеек, ж"" – дробная часть, аналогично предмету исчисления (может отсутствовать); |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2'"); - + ИначеЕсли КодЯзыка = "uk" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для украинского языка (uk_UA): @@ -305,11 +310,11 @@ |м – мужской род (ж – женский род, с - средний род); |""копейка, копейки, копеек, ж"" – дробная часть, аналогично предмету исчисления (может отсутствовать); |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2'"); - + ИначеЕсли КодЯзыка = "pl" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для польского языка (pl_PL): @@ -323,11 +328,11 @@ |m - мужской род (ż - женский род, ń - средний род, mo – личностный мужской род); |""grosz, grosze, groszy, m "" - дробная часть (может отсутствовать) (аналогично целой части); |2 - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'złoty, złote, złotych, m, grosz, grosze, groszy, m, 2'"); - + ИначеЕсли КодЯзыка = "en" Или КодЯзыка = "fr" Или КодЯзыка = "fi" Или КодЯзыка = "kk" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для английского, французского, финского и казахского языков (en_US, fr_CA,fi_FI, kk_KZ): @@ -337,11 +342,11 @@ |""dollar, dollars"" – предмет исчисления в единственном и множественном числе; |""cent, cents"" – дробная часть в единственном и множественном числе (может отсутствовать); |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'dollar, dollars, cent, cents, 2'"); - + ИначеЕсли КодЯзыка = "de" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для немецкого языка (de_DE): @@ -353,11 +358,11 @@ |М – мужской род (F – женский род, N - средний род); |""Cent, Cent, M"" – дробная часть, аналогично предмету исчисления (может отсутствовать); |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'EURO, EURO, М, Cent, Cent, M, 2'"); - + ИначеЕсли КодЯзыка = "lv" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для латышского языка (lv_LV): @@ -375,11 +380,11 @@ |может отсутствовать, по умолчанию равно ""J""; |""J"" - число 100 выводится как ""Одна сотня"" для дробной части (N - как ""Сто""); |может отсутствовать, по умолчанию равно ""J"".'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'lats, lati, latu, V, santīms, santīmi, santīmu, V, 2, J, J'"); - + ИначеЕсли КодЯзыка = "lt" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для литовского языка (lt_LT): @@ -393,11 +398,11 @@ |m - род целой части (f - женский род), |""centas, centai, centų, М"" – дробная часть, аналогично предмету исчисления (может отсутствовать); |""2"" - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'litas, litai, litų, М, centas, centai, centų, М, 2'"); - + ИначеЕсли КодЯзыка = "et" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для эстонского языка (et_EE): @@ -407,11 +412,11 @@ |""kroon, krooni"" – – предмет исчисления в единственном и множественном числе; |""sent, senti"" – дробная часть в единственном и множественном числе (может отсутствовать); |2 – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'kroon, krooni, sent, senti, 2'"); - + ИначеЕсли КодЯзыка = "bg" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для болгарского языка (bg_BG): @@ -427,11 +432,11 @@ |стотинки - множественное число дробной части; |ж - род дробной части, |""2"" - количество разрядов дробной части.'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'лев, лева, м, стотинка, стотинки, ж, 2'"); - + ИначеЕсли КодЯзыка = "ro" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для румынского языка (ro_RO): @@ -447,11 +452,11 @@ |bani - множественное число дробной части; |W - род дробной части; |""2"" - количество разрядов дробной части.'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'leu, lei, M, ban, bani, W, 2'"); - + ИначеЕсли КодЯзыка = "ka" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для грузинского языка (ka_GE): @@ -461,11 +466,11 @@ |ლარი - целая часть; |თეთრი - дробная часть; |""2"" - количество разрядов дробной части.'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'ლარი, თეთრი, 2'"); - + ИначеЕсли КодЯзыка = "az" Или КодЯзыка = "tk" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для азербайджанского(az) и туркменского языков(tk): @@ -475,11 +480,11 @@ |""TL"" - предмет исчисления; |""Kr"" - дробная часть (может отсутствовать); |2 - количество разрядов дробной части (может отсутствовать, по умолчанию - 2)'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'TL,Kr,2'"); - + ИначеЕсли КодЯзыка = "vi" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для вьетнамского языка (vi_VN): @@ -489,11 +494,11 @@ |dong, - целая часть; |xu, - дробная часть; |2 - количество разрядов дробной части.'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'dong, xu, 2'"); - + ИначеЕсли КодЯзыка = "tr" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для турецкого языка (tr_TR): @@ -504,11 +509,11 @@ |Kr - дробная часть (может отсутствовать); |2 - количество разрядов дробной части (может отсутствовать, значение по умолчанию - 2); |""Separate"" - признак написания прописи раздельно, ""Solid"" - слитно (может отсутствовать, по умолчанию слитно).'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'TL,Kr,2,Separate'"); - + ИначеЕсли КодЯзыка = "hu" Тогда - + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( "ru = 'Перечислите параметры прописи через запятую. |Образец заполнения для венгерского языка (hu): @@ -518,13 +523,13 @@ |Forint - целая часть; |fillér - дробная часть; |""2"" - количество разрядов дробной части.'")); - + Результат.ПодсказкаВвода = НСтр("ru = 'Forint, fillér, 2'"); - + КонецЕсли; - + Возврат Результат; - + КонецФункции #КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ФормаСписка/Module.bsl index 3314cd9ac..49cdc9406 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ФормаСписка/Module.bsl @@ -10,22 +10,22 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + Элементы.Валюты.РежимВыбора = Параметры.РежимВыбора; - + ДатаКурса = НачалоДня(ТекущаяДатаСеанса()); Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ДатаКурса", ДатаКурса); - + ИзменяемыеПоля = Новый Массив; ИзменяемыеПоля.Добавить("Курс"); ИзменяемыеПоля.Добавить("Кратность"); Список.УстановитьОграниченияИспользованияВГруппировке(ИзменяемыеПоля); Список.УстановитьОграниченияИспользованияВПорядке(ИзменяемыеПоля); Список.УстановитьОграниченияИспользованияВОтборе(ИзменяемыеПоля); - + ДоступноИзменениеВалют = ПравоДоступа("Изменение", Метаданные.РегистрыСведений.КурсыВалют); ДоступнаЗагрузкаКурсов = Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено И ДоступноИзменениеВалют; - + Элементы.ФормаПодборИзКлассификатора.Видимость = ДоступнаЗагрузкаКурсов; Элементы.ФормаЗагрузитьКурсыВалют.Видимость = ДоступнаЗагрузкаКурсов; Если Не ДоступнаЗагрузкаКурсов Тогда @@ -34,25 +34,24 @@ КонецЕсли; Элементы.Создать.Вид = ВидГруппыФормы.ГруппаКнопок; КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ОбработкаВыбора(РезультатВыбора, ИсточникВыбора) - + Элементы.Валюты.Обновить(); Элементы.Валюты.ТекущаяСтрока = РезультатВыбора; - + КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - - Если ИмяСобытия = "Запись_КурсыВалют" - Или ИмяСобытия = "Запись_ЗагрузкаКурсовВалют" Тогда + + Если ИмяСобытия = "Запись_КурсыВалют" Или ИмяСобытия = "Запись_ЗагрузкаКурсовВалют" Тогда Элементы.Валюты.Обновить(); КонецЕсли; - + КонецПроцедуры #КонецОбласти @@ -61,35 +60,35 @@ &НаСервереБезКонтекста Процедура ВалютыПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) - + Перем ДатаКурса; - + Если Не Настройки.ДополнительныеСвойства.Свойство("ДатаКурса", ДатаКурса) Тогда Возврат; КонецЕсли; - + Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ - | КурсыВалют.Валюта КАК Валюта, - | КурсыВалют.Курс КАК Курс, - | КурсыВалют.Кратность КАК Кратность - |ИЗ - | РегистрСведений.КурсыВалют.СрезПоследних(&КонецПериода, Валюта В (&Валюты)) КАК КурсыВалют"; + "ВЫБРАТЬ + | КурсыВалют.Валюта КАК Валюта, + | КурсыВалют.Курс КАК Курс, + | КурсыВалют.Кратность КАК Кратность + |ИЗ + | РегистрСведений.КурсыВалют.СрезПоследних(&КонецПериода, Валюта В (&Валюты)) КАК КурсыВалют"; Запрос.УстановитьПараметр("Валюты", Строки.ПолучитьКлючи()); Запрос.УстановитьПараметр("КонецПериода", ДатаКурса); - + Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл СтрокаСписка = Строки[Выборка.Валюта]; СтрокаСписка.Данные["Курс"] = Выборка.Курс; - Если Выборка.Кратность <> 1 Тогда - Пояснение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'за %1 %2'"), + Если Выборка.Кратность <> 1 Тогда + Пояснение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'за %1 %2'"), Выборка.Кратность, СтрокаСписка.Данные["Наименование"]); СтрокаСписка.Данные["Кратность"] = Пояснение; КонецЕсли; КонецЦикла; - + КонецПроцедуры #КонецОбласти @@ -98,19 +97,19 @@ &НаКлиенте Процедура ПодборИзКлассификатора(Команда) - + ИмяФормыПодбора = "Обработка.ЗагрузкаКурсовВалют.Форма.ПодборВалютИзКлассификатора"; - ОткрытьФорму(ИмяФормыПодбора, , ЭтотОбъект); - + ОткрытьФорму(ИмяФормыПодбора,, ЭтотОбъект); + КонецПроцедуры &НаКлиенте Процедура ЗагрузитьКурсыВалют(Команда) - + ПараметрыФормы = Новый Структура("ОткрытиеИзСписка"); - + РаботаСКурсамиВалютКлиент.ПоказатьЗагрузкуКурсовВалют(ПараметрыФормы); - + КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl index 21e35e441..05f56a5e8 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl @@ -10,56 +10,56 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + Если Объект.Ссылка.Пустая() Тогда - + Если Параметры.Свойство("КодВалюты") Тогда Объект.Код = Параметры.КодВалюты; КонецЕсли; - + Если Параметры.Свойство("НаименованиеКраткое") Тогда Объект.Наименование = Параметры.НаименованиеКраткое; КонецЕсли; - + Если Параметры.Свойство("НаименованиеПолное") Тогда Объект.НаименованиеПолное = Параметры.НаименованиеПолное; КонецЕсли; - + Если Параметры.Свойство("Загружается") И Параметры.Загружается Тогда Объект.СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета; - Иначе + Иначе Объект.СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РучнойВвод; КонецЕсли; - + Если Параметры.Свойство("ПараметрыПрописи") Тогда Объект.ПараметрыПрописи = Параметры.ПараметрыПрописи; КонецЕсли; - + КонецЕсли; - + ОбработкаЗагрузкаКурсовВалют = Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют"); Элементы.КурсВалютыЗагружаетсяИзИнтернета.Видимость = ОбработкаЗагрузкаКурсовВалют <> Неопределено; УстановитьДоступностьЭлементов(ЭтотОбъект); - + ЗаполнитьПодменюПараметрыПрописиВалюты(); Элементы.ГиперссылкаПараметрыПрописиВалюты.Видимость = ФормыВводаПрописей.Количество() = 1; Элементы.ГруппаПараметрыПрописиВалюты.Видимость = ФормыВводаПрописей.Количество() > 1; - + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Элементы.ФормулаРасчетаКурса.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСнизу; Элементы.ОсновнаяВалюта.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто; - Элементы.ГруппаШапка.ВыравниваниеЭлементовИЗаголовков = - ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево; + Элементы.ГруппаШапка.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево; КонецЕсли; - + Если Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено Тогда - КодыВалютЗагружаемыхИзИнтернета.ЗагрузитьЗначения(Обработки["ЗагрузкаКурсовВалют"].КодыВалютЗагружаемыхИзИнтернета()); + КодыВалютЗагружаемыхИзИнтернета.ЗагрузитьЗначения( + Обработки["ЗагрузкаКурсовВалют"].КодыВалютЗагружаемыхИзИнтернета()); КонецЕсли; - + ДоступнаЗагрузкаИзИнтернета = ЗначениеЗаполнено(Объект.Код) И ЗначениеЗаполнено(КодыВалютЗагружаемыхИзИнтернета) И КодыВалютЗагружаемыхИзИнтернета.НайтиПоЗначению(Объект.Код) <> Неопределено; Элементы.КурсВалютыЗагружаетсяИзИнтернета.Доступность = ДоступнаЗагрузкаИзИнтернета; - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул"); ПредставлениеФормулы = МодульКонструкторФормул.ПредставлениеФормулы(ПараметрыФормулы( @@ -67,12 +67,12 @@ Иначе Элементы.ФормулаРасчетаКурса.КнопкаВыбора = Ложь; КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - + Если Источник = ЭтотОбъект И ИмяСобытия = "ПараметрыПрописиВалюты" Тогда УстановитьПрописиНаЯзыке(Параметр.ПараметрыПрописи, Параметр.КодЯзыка); Если Параметр.Записать Тогда @@ -84,7 +84,7 @@ Закрыть(); КонецЕсли; КонецЕсли; - + КонецПроцедуры #КонецОбласти @@ -96,10 +96,10 @@ &НаКлиенте Процедура ОсновнаяВалютаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - + СтандартнаяОбработка = Ложь; ПодготовитьДанныеВыбораПодчиненнойВалюты(ДанныеВыбора, Объект.Ссылка); - + КонецПроцедуры &НаКлиенте @@ -109,14 +109,14 @@ &НаКлиенте Процедура ПараметрыПрописиВалютыНажатие(Элемент) - + ОткрытьПараметрыПрописиВалюты(0); - + КонецПроцедуры &НаКлиенте Процедура КодПриИзменении(Элемент) - + ДоступнаЗагрузкаИзИнтернета = ЗначениеЗаполнено(Объект.Код) И ЗначениеЗаполнено(КодыВалютЗагружаемыхИзИнтернета) И КодыВалютЗагружаемыхИзИнтернета.НайтиПоЗначению(Объект.Код) <> Неопределено; Элементы.КурсВалютыЗагружаетсяИзИнтернета.Доступность = ДоступнаЗагрузкаИзИнтернета; @@ -127,7 +127,7 @@ Объект.СпособУстановкиКурса = ПредопределенноеЗначение("Перечисление.СпособыУстановкиКурсаВалюты.РучнойВвод"); КонецЕсли; КонецЕсли; - + КонецПроцедуры #КонецОбласти @@ -139,12 +139,12 @@ // Подготавливает список выбора для подчиненной валюты таким образом, // чтобы в список не попала сама подчиненная валюта. - + ДанныеВыбора = Новый СписокЗначений; - + Запрос = Новый Запрос; - - Запрос.Текст = + + Запрос.Текст = "ВЫБРАТЬ | Валюты.Ссылка КАК Ссылка, | Валюты.НаименованиеПолное КАК НаименованиеПолное, @@ -157,33 +157,35 @@ | |УПОРЯДОЧИТЬ ПО | Валюты.НаименованиеПолное"; - + Запрос.Параметры.Вставить("Ссылка", Ссылка); - + Выборка = Запрос.Выполнить().Выбрать(); - + Пока Выборка.Следующий() Цикл ДанныеВыбора.Добавить(Выборка.Ссылка, Выборка.НаименованиеПолное + " (" + Выборка.Наименование + ")"); КонецЦикла; - + КонецПроцедуры &НаКлиентеНаСервереБезКонтекста Процедура УстановитьДоступностьЭлементов(Форма) Элементы = Форма.Элементы; Объект = Форма.Объект; - Элементы.ГруппаНаценкаНаКурсДругойВалюты.Доступность = Объект.СпособУстановкиКурса = ПредопределенноеЗначение("Перечисление.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты"); - Элементы.ФормулаРасчетаКурса.Доступность = Объект.СпособУстановкиКурса = ПредопределенноеЗначение("Перечисление.СпособыУстановкиКурсаВалюты.РасчетПоФормуле"); + Элементы.ГруппаНаценкаНаКурсДругойВалюты.Доступность = Объект.СпособУстановкиКурса = ПредопределенноеЗначение( + "Перечисление.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты"); + Элементы.ФормулаРасчетаКурса.Доступность = Объект.СпособУстановкиКурса = ПредопределенноеЗначение( + "Перечисление.СпособыУстановкиКурсаВалюты.РасчетПоФормуле"); КонецПроцедуры &НаКлиенте Процедура УстановитьПрописиНаЯзыке(ПараметрыПрописи, КодЯзыка) - + Если КодЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка() Тогда Объект.ПараметрыПрописи = ПараметрыПрописи; Возврат; КонецЕсли; - + НайденнаяСтрока = Неопределено; Для Каждого СтрокаТаблицы Из Объект.Представления Цикл Если СтрокаТаблицы.КодЯзыка = КодЯзыка Тогда @@ -191,63 +193,62 @@ Прервать; КонецЕсли; КонецЦикла; - - Если НайденнаяСтрока = Неопределено Тогда + + Если НайденнаяСтрока = Неопределено Тогда НайденнаяСтрока = Объект.Представления.Добавить(); НайденнаяСтрока.КодЯзыка = КодЯзыка; КонецЕсли; - + НайденнаяСтрока.ПараметрыПрописи = ПараметрыПрописи; - + КонецПроцедуры &НаКлиенте Функция ПараметрыПрописиВалютыНаЯзыке(КодЯзыка) - + Если КодЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка() Тогда Возврат Объект.ПараметрыПрописи; КонецЕсли; - + НайденнаяСтрока = Неопределено; Для Каждого СтрокаТаблицы Из Объект.Представления Цикл Если СтрокаТаблицы.КодЯзыка = КодЯзыка Тогда НайденнаяСтрока = СтрокаТаблицы; КонецЕсли; КонецЦикла; - + Если НайденнаяСтрока = Неопределено Тогда Возврат ""; КонецЕсли; - + Возврат НайденнаяСтрока.ПараметрыПрописи; - + КонецФункции &НаСервере Процедура ЗаполнитьПодменюПараметрыПрописиВалюты() - + Кнопка = Неопределено; ФормыВводаПрописей = РаботаСКурсамиВалютСлужебный.ФормыВводаПрописей(); Для Индекс = 0 По ФормыВводаПрописей.Количество() - 1 Цикл ИмяКоманды = "ПараметрыПрописиВалюты_" + XMLСтрока(Индекс); - + КодЯзыка = ФормыВводаПрописей[Индекс].Значение; Команда = Команды.Добавить(ИмяКоманды); Если ЗначениеЗаполнено(КодЯзыка) Тогда - Команда.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1...'"), - РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка));; + Команда.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1...", + РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка)); Иначе Команда.Заголовок = НСтр("ru = 'На других языках...'"); КонецЕсли; - + Команда.Действие = "Подключаемый_ОткрытьФормуПараметрыПрописиВалюты"; - + Кнопка = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Элементы.ГруппаПараметрыПрописиВалюты); Кнопка.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; Кнопка.ИмяКоманды = ИмяКоманды; КонецЦикла; - + КонецПроцедуры // Параметры: @@ -255,50 +256,51 @@ // &НаКлиенте Процедура Подключаемый_ОткрытьФормуПараметрыПрописиВалюты(Команда) - + Индекс = Число(Сред(Команда.Имя, СтрДлина("ПараметрыПрописиВалюты_") + 1)); ОткрытьПараметрыПрописиВалюты(Индекс); - + КонецПроцедуры &НаКлиенте Процедура ОткрытьПараметрыПрописиВалюты(Индекс) - + ИмяФормыПрописей = ФормыВводаПрописей[Индекс].Представление; КодЯзыка = ФормыВводаПрописей[Индекс].Значение; - + Если ИмяФормыПрописей = "ПараметрыПрописиВалютыНаДругихЯзыках" Тогда ПараметрыПрописиВалютыНаДругихЯзыках(); Иначе ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ПараметрыПрописи", ПараметрыПрописиВалютыНаЯзыке(КодЯзыка)); ПараметрыФормы.Вставить("КодЯзыка", КодЯзыка); - - ОткрытьФорму(ИмяФормыПрописей, ПараметрыФормы, ЭтотОбъект, , , НавигационнаяСсылка); + + ОткрытьФорму(ИмяФормыПрописей, ПараметрыФормы, ЭтотОбъект,,, НавигационнаяСсылка); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПараметрыПрописиВалютыНаДругихЯзыках(Команда) - + ПараметрыПрописиВалютыНаДругихЯзыках(); - + КонецПроцедуры &НаКлиенте Процедура ПараметрыПрописиВалютыНаДругихЯзыках() - + ИмяРеквизита = "ПараметрыПрописи"; - + ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ИмяРеквизита", ИмяРеквизита); ПараметрыФормы.Вставить("ТекущееЗначение", Объект.ПараметрыПрописи); ПараметрыФормы.Вставить("ТолькоПросмотр", ТолькоПросмотр); ПараметрыФормы.Вставить("Представления", Объект.Представления); - - ОткрытьФорму("Справочник.Валюты.Форма.ПараметрыПрописиВалютыНаДругихЯзыках", ПараметрыФормы, ЭтотОбъект, , , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); - + + ОткрытьФорму("Справочник.Валюты.Форма.ПараметрыПрописиВалютыНаДругихЯзыках", ПараметрыФормы, ЭтотОбъект,,,,, + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + КонецПроцедуры &НаКлиенте @@ -308,54 +310,55 @@ МодульКонструкторФормулКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КонструкторФормулКлиент"); СтандартнаяОбработка = Ложь; ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииРедактированияФормулы", ЭтотОбъект); - МодульКонструкторФормулКлиент.НачатьРедактированиеФормулы(ПараметрыФормулы(Объект.ФормулаРасчетаКурса, УникальныйИдентификатор), ОписаниеОповещения); + МодульКонструкторФормулКлиент.НачатьРедактированиеФормулы(ПараметрыФормулы(Объект.ФормулаРасчетаКурса, УникальныйИдентификатор), + ОписаниеОповещения); КонецЕсли; - + КонецПроцедуры &НаСервереБезКонтекста Функция ПараметрыФормулы(ФормулаРасчетаКурса, УникальныйИдентификатор) - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул"); - + ПараметрыФормулы = МодульКонструкторФормул.ПараметрыРедактированияФормулы(); ПараметрыФормулы.Формула = ФормулаРасчетаКурса; ПараметрыФормулы.СкобкиОперандов = Ложь; ПараметрыФормулы.Операнды = ОперандыФормулыРасчетаКурса(УникальныйИдентификатор); ПараметрыФормулы.Операторы = ОператорыФормулыРасчетаКурса(УникальныйИдентификатор); - + Возврат ПараметрыФормулы; КонецЕсли; - + КонецФункции &НаСервереБезКонтекста Функция ОперандыФормулыРасчетаКурса(УникальныйИдентификатор) - + Возврат ПоместитьВоВременноеХранилище(ТаблицаОперандов(), УникальныйИдентификатор); - + КонецФункции &НаСервереБезКонтекста Функция ОператорыФормулыРасчетаКурса(УникальныйИдентификатор) - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул"); СписокОператоров = МодульКонструкторФормул.СписокОператоров("Операторы, ЧисловыеФункции"); Возврат ПоместитьВоВременноеХранилище(СписокОператоров, УникальныйИдентификатор); КонецЕсли; - + КонецФункции &НаСервереБезКонтекста Функция ТаблицаОперандов() - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул"); - + ТаблицаОперандов = МодульКонструкторФормул.ТаблицаПолей(); - + Для Каждого ОписаниеВалюты Из Справочники.Валюты.КодыВалют() Цикл Если ЗначениеЗаполнено(СтрСоединить(СтрРазделить(ОписаниеВалюты.СимвольныйКод, "0123456789", Ложь), "")) Тогда Операнд = ТаблицаОперандов.Добавить(); @@ -364,24 +367,24 @@ Операнд.ТипЗначения = Новый ОписаниеТипов("Число"); КонецЕсли; КонецЦикла; - + Возврат ТаблицаОперандов; - + КонецЕсли; - + КонецФункции &НаКлиенте Процедура ПриЗавершенииРедактированияФормулы(ОписаниеФормулы, ДополнительныеПараметры) Экспорт - + Если ОписаниеФормулы = Неопределено Тогда Возврат; КонецЕсли; - + Объект.ФормулаРасчетаКурса = ОписаниеФормулы.Формула; ПредставлениеФормулы = ОписаниеФормулы.ПредставлениеФормулы; Модифицированность = Истина; - + КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/Валюты/ObjectModule.bsl b/SSL/src/Catalogs/Валюты/ObjectModule.bsl index 29812952d..3e0e2794c 100644 --- a/SSL/src/Catalogs/Валюты/ObjectModule.bsl +++ b/SSL/src/Catalogs/Валюты/ObjectModule.bsl @@ -11,7 +11,7 @@ #Область ОбработчикиСобытий Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) - + Если СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда ТекстЗапроса = "ВЫБРАТЬ @@ -29,59 +29,58 @@ | Справочник.Валюты КАК Валюты |ГДЕ | Валюты.СпособУстановкиКурса = ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.РасчетПоФормуле)"; - + Запрос = Новый Запрос(ТекстЗапроса); ЗависимыеВалюты = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("СимвольныйКод"); - + Для Каждого Валюта Из ЗависимыеВалюты Цикл Если СтрНайти(ФормулаРасчетаКурса, Валюта) > 0 Тогда Отказ = Истина; КонецЕсли; КонецЦикла; КонецЕсли; - + Если ЗначениеЗаполнено(ОсновнаяВалюта.ОсновнаяВалюта) Тогда Отказ = Истина; КонецЕсли; - + Если Отказ Тогда ОбщегоНазначения.СообщитьПользователю( НСтр("ru = 'Курс валюты можно связать только с курсом независимой валюты.'")); КонецЕсли; - + Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты Тогда ИсключаемыеРеквизиты = Новый Массив; ИсключаемыеРеквизиты.Добавить("ОсновнаяВалюта"); ИсключаемыеРеквизиты.Добавить("Наценка"); ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, ИсключаемыеРеквизиты); КонецЕсли; - + Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда ИсключаемыеРеквизиты = Новый Массив; ИсключаемыеРеквизиты.Добавить("ФормулаРасчетаКурса"); ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, ИсключаемыеРеквизиты); КонецЕсли; - - Если Не ЭтоНовый() - И СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты + + Если Не ЭтоНовый() И СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты И РаботаСКурсамиВалют.СписокЗависимыхВалют(Ссылка).Количество() > 0 Тогда ОбщегоНазначения.СообщитьПользователю( НСтр("ru = 'Валюта не может быть подчиненной, так как она является основной для других валют.'")); Отказ = Истина; КонецЕсли; - + КонецПроцедуры Процедура ПередЗаписью(Отказ) - + Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; - + КурсЗагружаетсяИзИнтернета = СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета; КурсЗависитОтДругойВалюты = СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты; КурсРассчитываетсяПоФормуле = СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле; - + Если ЭтоНовый() Тогда Если КурсЗависитОтДругойВалюты Или КурсРассчитываетсяПоФормуле Тогда ДополнительныеСвойства.Вставить("ОбновитьКурсы"); @@ -89,56 +88,57 @@ ДополнительныеСвойства.Вставить("ЭтоНовый"); ДополнительныеСвойства.Вставить("ЗапланироватьКопированиеКурсовВалюты"); Иначе - ПредыдущиеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "Код,СпособУстановкиКурса,ОсновнаяВалюта,Наценка,ФормулаРасчетаКурса"); - + ПредыдущиеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, + "Код,СпособУстановкиКурса,ОсновнаяВалюта,Наценка,ФормулаРасчетаКурса"); + ПоменялсяСпособУстановкиКурса = ПредыдущиеЗначения.СпособУстановкиКурса <> СпособУстановкиКурса; ПоменялсяКодВалюты = ПредыдущиеЗначения.Код <> Код; ПоменяласьОсновнаяВалюта = ПредыдущиеЗначения.ОсновнаяВалюта <> ОсновнаяВалюта; ПоменяласьНаценка = ПредыдущиеЗначения.Наценка <> Наценка; ПоменяласьФормула = ПредыдущиеЗначения.ФормулаРасчетаКурса <> ФормулаРасчетаКурса; - - Если (КурсЗависитОтДругойВалюты И (ПоменяласьОсновнаяВалюта Или ПоменяласьНаценка Или ПоменялсяСпособУстановкиКурса)) + + Если (КурсЗависитОтДругойВалюты И (ПоменяласьОсновнаяВалюта Или ПоменяласьНаценка Или ПоменялсяСпособУстановкиКурса)) Или (КурсРассчитываетсяПоФормуле И (ПоменяласьФормула Или ПоменялсяСпособУстановкиКурса)) Тогда ДополнительныеСвойства.Вставить("ОбновитьКурсы"); КонецЕсли; - + Если КурсЗагружаетсяИзИнтернета И (ПоменялсяСпособУстановкиКурса Или ПоменялсяКодВалюты) Тогда ДополнительныеСвойства.Вставить("ЗапланироватьКопированиеКурсовВалюты"); КонецЕсли; КонецЕсли; - + Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты Тогда ОсновнаяВалюта = Справочники.Валюты.ПустаяСсылка(); Наценка = 0; КонецЕсли; - + Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда ФормулаРасчетаКурса = ""; КонецЕсли; - + КонецПроцедуры Процедура ПриЗаписи(Отказ) - + Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; - + Если ДополнительныеСвойства.Свойство("ОбновитьКурсы") И ВыполняетсяФоновыйПересчетКурсов() Тогда ВызватьИсключение НСтр("ru = 'Не удалось записать валюту, так как еще не завершился фоновый пересчет курсов. - |Попробуйте записать валюту позже.'"); + |Попробуйте записать валюту позже.'"); КонецЕсли; - + Если ДополнительныеСвойства.Свойство("ОбновитьКурсы") Тогда НачатьФоновоеОбновлениеКурсовВалюты(); Иначе РаботаСКурсамиВалют.ПроверитьКорректностьКурсаНа01_01_1980(Ссылка); КонецЕсли; - + Если ДополнительныеСвойства.Свойство("ЗапланироватьКопированиеКурсовВалюты") Тогда ЗапланироватьКопированиеКурсовВалюты(); КонецЕсли; - + КонецПроцедуры #КонецОбласти @@ -146,18 +146,18 @@ #Область СлужебныеПроцедурыИФункции Функция ВыполняетсяФоновыйПересчетКурсов() - + ПараметрыЗадания = Новый Структура; ПараметрыЗадания.Вставить("Наименование", "РаботаСКурсамиВалют.ОбновитьКурсВалюты"); ПараметрыЗадания.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); - + Возврат ОбщегоНазначения.ИнформационнаяБазаФайловая() И ФоновыеЗадания.ПолучитьФоновыеЗадания(ПараметрыЗадания).Количество() > 0; - + КонецФункции Процедура НачатьФоновоеОбновлениеКурсовВалюты() - + ПараметрыВалюты = Новый Структура; ПараметрыВалюты.Вставить("ОсновнаяВалюта"); ПараметрыВалюты.Вставить("Ссылка"); @@ -167,16 +167,17 @@ ПараметрыВалюты.Вставить("СпособУстановкиКурса"); ПараметрыВалюты.Вставить("ИспользуемыеВалютыПриРасчетеКурса", ИспользуемыеВалютыПриРасчетеКурса()); ЗаполнитьЗначенияСвойств(ПараметрыВалюты, ЭтотОбъект); - + ПараметрыЗадания = Новый Структура; ПараметрыЗадания.Вставить("Валюта", ПараметрыВалюты); ПараметрыЗадания.Вставить("КодыВалют", Справочники.Валюты.КодыВалют()); - - ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор()); + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор); ПараметрыВыполнения.ОжидатьЗавершение = 0; ПараметрыВыполнения.ЗапуститьНеВФоне = ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы(); - - Результат = ДлительныеОперации.ВыполнитьВФоне("РаботаСКурсамиВалют.ОбновитьКурсВалюты", ПараметрыЗадания, ПараметрыВыполнения); + + Результат = ДлительныеОперации.ВыполнитьВФоне("РаботаСКурсамиВалют.ОбновитьКурсВалюты", ПараметрыЗадания, + ПараметрыВыполнения); Если Результат.Статус = "Ошибка" Тогда ВызватьИсключение Результат.КраткоеПредставлениеОшибки; КонецЕсли; @@ -184,9 +185,8 @@ КонецПроцедуры Процедура ЗапланироватьКопированиеКурсовВалюты() - - Если ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда + + Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда МодульРаботаСКурсамиВалютСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалютСлужебный"); МодульРаботаСКурсамиВалютСлужебный.ЗапланироватьКопированиеКурсовВалюты(ЭтотОбъект); КонецЕсли; @@ -194,15 +194,15 @@ КонецПроцедуры Функция ИспользуемыеВалютыПриРасчетеКурса() - + Если СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты Тогда Возврат ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОсновнаяВалюта); КонецЕсли; - + Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда Возврат Новый Массив; КонецЕсли; - + ТекстЗапроса = "ВЫБРАТЬ | Валюты.Ссылка КАК Ссылка @@ -211,23 +211,23 @@ |ГДЕ | &ФормулаРасчетаКурса ПОДОБНО ""%"" + Валюты.Наименование + ""%"" СПЕЦСИМВОЛ ""~"" | И Валюты.Наименование <> """""; - + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("ФормулаРасчетаКурса", ФормулаРасчетаКурса); РезультатЗапроса = Запрос.Выполнить(); - + Если РезультатЗапроса.Пустой() Тогда ТекстОшибки = НСтр("ru = 'В формуле должна быть использована хотя бы одна основная валюта.'"); - ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "Объект.ФормулаРасчетаКурса"); + ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, "Объект.ФормулаРасчетаКурса"); ВызватьИсключение ТекстОшибки; КонецЕсли; - + Возврат РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка"); - + КонецФункции #КонецОбласти #Иначе -ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); + ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); #КонецЕсли \ No newline at end of file diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Form.form index a513cc69a..17222e7bc 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Form.form @@ -112,6 +112,49 @@ Auto + + Подсказка + 12 + true + true + + true + + + Объект.Подсказка + + Left + + ПодсказкаРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + + ПодсказкаКонтекстноеМеню + 13 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + ТребуетОткрытогоОтвета 5 diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl index fbb8237d3..d4f8d0d6a 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl @@ -10,32 +10,32 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + Если Параметры.Свойство("Владелец") И ТипЗнч(Параметры.Владелец) = Тип("ПланВидовХарактеристикСсылка.ВопросыДляАнкетирования") И НЕ Параметры.Владелец.Пустая() Тогда - - Объект.Владелец = Параметры.Владелец; - + + Объект.Владелец = Параметры.Владелец; + Иначе - + ТекстСообщения = НСтр("ru = 'Данная форма предназначена для открытия только из формы элемента плана вида характеристик ""Вопросы для анкетирования""'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения); Отказ = Истина; Возврат; - + КонецЕсли; - + Если Параметры.Свойство("ТипОтвета") Тогда Элементы.ТребуетОткрытогоОтвета.Видимость = (Параметры.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз); Иначе Элементы.ТребуетОткрытогоОтвета.Видимость = (Объект.Владелец.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз); КонецЕсли; - + Если Параметры.Свойство("Наименование") Тогда Объект.Наименование = Параметры.Наименование; КонецЕсли; - + КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/ВариантыОтветовАнкет.mdo b/SSL/src/Catalogs/ВариантыОтветовАнкет/ВариантыОтветовАнкет.mdo index ed6cd36d2..c3d36712f 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/ВариантыОтветовАнкет.mdo +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/ВариантыОтветовАнкет.mdo @@ -181,6 +181,24 @@ IndexWithAdditionalOrder Use + + Подсказка + + ru + Подсказка + + + String + + 250 + + + + + + Use + Use + ФормаЭлемента diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl index 3abc06778..42a239673 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl @@ -10,16 +10,16 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + УстановитьУсловноеОформление(); - + СмешаннаяВажность = НСтр("ru = 'Различная'"); // Контроль количества вариантов осуществляется до открытия формы. ИзменяемыеВарианты.ЗагрузитьЗначения(Параметры.Варианты); КоличествоВариантов = ИзменяемыеВарианты.Количество(); ЗаполнитьРазделы(); - + КонецПроцедуры &НаКлиенте @@ -27,10 +27,11 @@ Если СообщенияОбОшибках <> Неопределено Тогда Отказ = Истина; ОчиститьСообщения(); - СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 |Подробности: - |%2'"), СообщенияОбОшибках.Текст, СообщенияОбОшибках.Подробно), РежимДиалогаВопрос.ОК); + |%2'"), + СообщенияОбОшибках.Текст, СообщенияОбОшибках.Подробно), РежимДиалогаВопрос.ОК); КонецЕсли; КонецПроцедуры @@ -56,8 +57,9 @@ Процедура Разместить(Команда) ЗаписатьНаСервере(); ТекстОповещения = НСтр("ru = 'Изменены настройки вариантов отчетов (%1 шт.).'"); - ТекстОповещения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОповещения, Формат(ИзменяемыеВарианты.Количество(), "ЧН=0; ЧГ=0")); - ПоказатьОповещениеПользователя(, , ТекстОповещения); + ТекстОповещения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОповещения, Формат( + ИзменяемыеВарианты.Количество(), "ЧН=0; ЧГ=0")); + ПоказатьОповещениеПользователя(,, ТекстОповещения); ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы(); Закрыть(); КонецПроцедуры @@ -74,53 +76,53 @@ &НаСервере Процедура УстановитьУсловноеОформление() - + УсловноеОформление.Элементы.Очистить(); - + Элемент = УсловноеОформление.Элементы.Добавить(); - + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДеревоПодсистемВажность.Имя); - + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоПодсистем.Важность"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("СмешаннаяВажность"); - + ЦветЗаблокированногоРеквизита = Метаданные.ЭлементыСтиля.ЗаблокированныйРеквизитЦвет; Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветЗаблокированногоРеквизита.Значение); - + ВариантыОтчетов.УстановитьУсловноеОформлениеДереваПодсистем(ЭтотОбъект); - + КонецПроцедуры &НаСервере Процедура СнятьФлажкиРазделов() - + ДеревоПриемник = РеквизитФормыВЗначение("ДеревоПодсистем", Тип("ДеревоЗначений")); Найденные = ДеревоПриемник.Строки.НайтиСтроки(Новый Структура("Использование", 1), Истина); Для Каждого СтрокаДерева Из Найденные Цикл СтрокаДерева.Использование = 0; СтрокаДерева.Модифицированность = Истина; КонецЦикла; - + Найденные = ДеревоПриемник.Строки.НайтиСтроки(Новый Структура("Использование", 2), Истина); Для Каждого СтрокаДерева Из Найденные Цикл СтрокаДерева.Использование = 0; СтрокаДерева.Модифицированность = Истина; КонецЦикла; - + ЗначениеВРеквизитФормы(ДеревоПриемник, "ДеревоПодсистем"); КонецПроцедуры - + &НаСервере Процедура ЗаполнитьРазделы() - + ДанныеЗаполнения = ДанныеЗаполненияРазделов(); ОтфильтрованныеВарианты = ДанныеЗаполнения.ОтфильтрованныеВарианты; - + КоличествоОшибок = ОтфильтрованныеВарианты.Количество(); - + Если КоличествоОшибок > 0 Тогда СообщенияОбОшибках = Новый Структура("Текст, Подробно"); ТекущаяПричина = 0; @@ -139,13 +141,14 @@ СообщенияОбОшибках.Подробно = СообщенияОбОшибках.Подробно + НСтр("ru = 'Вариант отчета отключен по функциональной опции:'"); КонецЕсли; КонецЕсли; - - СообщенияОбОшибках.Подробно = СокрЛ(СообщенияОбОшибках.Подробно) + Символы.ПС + " - " + Строка(СтрокаТаблицы.Ссылка); + + СообщенияОбОшибках.Подробно = СокрЛ(СообщенияОбОшибках.Подробно) + Символы.ПС + " - " + Строка( + СтрокаТаблицы.Ссылка); ИзменяемыеВарианты.Удалить(ИзменяемыеВарианты.НайтиПоЗначению(СтрокаТаблицы.Ссылка)); КонецЦикла; - + КоличествоВариантов = ИзменяемыеВарианты.Количество(); - + Если КоличествоВариантов = 0 Тогда СообщенияОбОшибках.Текст = НСтр("ru = 'Недостаточно прав для размещения в разделах выбранных вариантов отчетов.'"); Иначе @@ -153,19 +156,19 @@ НСтр("ru = 'Недостаточно прав для размещения в разделах некоторых вариантов отчетов (%1).'"), Формат(КоличествоОшибок, "ЧГ=")); КонецЕсли; - + СообщенияОбОшибках = Новый ФиксированнаяСтруктура(СообщенияОбОшибках); КонецЕсли; - + ВхожденияПодсистем = ДанныеЗаполнения.ВхожденияПодсистем; - + ДеревоИсточник = ВариантыОтчетовПовтИсп.ПодсистемыТекущегоПользователя().Дерево; - + ДеревоПриемник = РеквизитФормыВЗначение("ДеревоПодсистем", Тип("ДеревоЗначений")); ДеревоПриемник.Строки.Очистить(); - + ДобавитьПодсистемыВДерево(ДеревоПриемник, ДеревоИсточник, ВхожденияПодсистем); - + ЗначениеВРеквизитФормы(ДеревоПриемник, "ДеревоПодсистем"); КонецПроцедуры @@ -183,145 +186,145 @@ // &НаСервере Функция ДанныеЗаполненияРазделов() - + Запрос = Новый Запрос(ТекстЗапросаЗаполненияРазделов()); - Запрос.УстановитьПараметр("ПолныеПраваНаВарианты", ВариантыОтчетов.ПолныеПраваНаВарианты()); - Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь()); - Запрос.УстановитьПараметр("Ссылки", ИзменяемыеВарианты.ВыгрузитьЗначения()); - Запрос.УстановитьПараметр("ОтчетыПользователя", ВариантыОтчетов.ОтчетыТекущегоПользователя()); + Запрос.УстановитьПараметр("ПолныеПраваНаВарианты", ВариантыОтчетов.ПолныеПраваНаВарианты()); + Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь()); + Запрос.УстановитьПараметр("Ссылки", ИзменяемыеВарианты.ВыгрузитьЗначения()); + Запрос.УстановитьПараметр("ОтчетыПользователя", ВариантыОтчетов.ОтчетыТекущегоПользователя()); Запрос.УстановитьПараметр("ОтключенныеВариантыПрограммы", ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы()); - Запрос.УстановитьПараметр("ПредставлениеВажный", ВариантыОтчетов.ПредставлениеВажный()); - Запрос.УстановитьПараметр("ПредставлениеСмТакже", ВариантыОтчетов.ПредставлениеСмТакже()); - + Запрос.УстановитьПараметр("ПредставлениеВажный", ВариантыОтчетов.ПредставлениеВажный()); + Запрос.УстановитьПараметр("ПредставлениеСмТакже", ВариантыОтчетов.ПредставлениеСмТакже()); + Пакет = Запрос.ВыполнитьПакет(); Граница = Пакет.ВГраница(); - + ДанныеЗаполнения = Новый Структура; ДанныеЗаполнения.Вставить("ОтфильтрованныеВарианты", Пакет[Граница - 1].Выгрузить()); ДанныеЗаполнения.Вставить("ВхожденияПодсистем", Пакет[Граница].Выгрузить()); - + Возврат ДанныеЗаполнения; - + КонецФункции &НаСервере Функция ТекстЗапросаЗаполненияРазделов() - + Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ - | ВариантыОтчетов.Ссылка, - | ВариантыОтчетов.ПредопределенныйВариант, - | ВЫБОР - | КОГДА ВариантыОтчетов.ПометкаУдаления - | ТОГДА 1 - | КОГДА &ПолныеПраваНаВарианты = ЛОЖЬ - | И ВариантыОтчетов.Автор <> &ТекущийПользователь - | ТОГДА 2 - | КОГДА НЕ ВариантыОтчетов.Отчет В (&ОтчетыПользователя) - | ТОГДА 3 - | КОГДА ВариантыОтчетов.Ссылка В (&ОтключенныеВариантыПрограммы) - | ТОГДА 4 - | ИНАЧЕ 0 - | КОНЕЦ КАК Причина - |ПОМЕСТИТЬ ВариантыОтчетов - |ИЗ - | Справочник.ВариантыОтчетов КАК ВариантыОтчетов - |ГДЕ - | ВариантыОтчетов.Ссылка В(&Ссылки) - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ВариантыОтчетов.Ссылка КАК Ссылка, - | РазмещениеКонфигурации.Подсистема КАК Подсистема, - | РазмещениеКонфигурации.Важный КАК Важный, - | РазмещениеКонфигурации.СмТакже КАК СмТакже - |ПОМЕСТИТЬ НастройкиОбщих - |ИЗ - | ВариантыОтчетов КАК ВариантыОтчетов - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Размещение КАК РазмещениеКонфигурации - | ПО ВариантыОтчетов.Причина = 0 - | И ВариантыОтчетов.ПредопределенныйВариант = РазмещениеКонфигурации.Ссылка - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ВариантыОтчетов.Ссылка, - | РазмещениеРасширений.Подсистема, - | РазмещениеРасширений.Важный, - | РазмещениеРасширений.СмТакже - |ИЗ - | ВариантыОтчетов КАК ВариантыОтчетов - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Размещение КАК РазмещениеРасширений - | ПО ВариантыОтчетов.Причина = 0 - | И ВариантыОтчетов.ПредопределенныйВариант = РазмещениеРасширений.Ссылка - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ВариантыОтчетовРазмещение.Ссылка КАК Ссылка, - | ВариантыОтчетовРазмещение.Использование КАК Использование, - | ВариантыОтчетовРазмещение.Подсистема КАК Подсистема, - | ВариантыОтчетовРазмещение.Важный КАК Важный, - | ВариантыОтчетовРазмещение.СмТакже КАК СмТакже - |ПОМЕСТИТЬ НастройкиРазделенных - |ИЗ - | ВариантыОтчетов КАК ВариантыОтчетов - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Размещение КАК ВариантыОтчетовРазмещение - | ПО ВариантыОтчетов.Причина = 0 - | И ВариантыОтчетов.Ссылка = ВариантыОтчетовРазмещение.Ссылка - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ВариантыОтчетов.Ссылка, - | ВариантыОтчетов.Причина КАК Причина - |ИЗ - | ВариантыОтчетов КАК ВариантыОтчетов - |ГДЕ - | ВариантыОтчетов.Причина <> 0 - | - |УПОРЯДОЧИТЬ ПО - | Причина - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ЕСТЬNULL(НастройкиРазделенных.Подсистема, НастройкиОбщих.Подсистема) КАК Ссылка, - | КОЛИЧЕСТВО(1) КАК Количество, - | ВЫБОР - | КОГДА ЕСТЬNULL(НастройкиРазделенных.Важный, НастройкиОбщих.Важный) = ИСТИНА - | ТОГДА &ПредставлениеВажный - | КОГДА ЕСТЬNULL(НастройкиРазделенных.СмТакже, НастройкиОбщих.СмТакже) = ИСТИНА - | ТОГДА &ПредставлениеСмТакже - | ИНАЧЕ """" - | КОНЕЦ КАК Важность - |ИЗ - | НастройкиОбщих КАК НастройкиОбщих - | ПОЛНОЕ СОЕДИНЕНИЕ НастройкиРазделенных КАК НастройкиРазделенных // АПК:70 - существенно не замедляет запрос, так как в соединяемых таблицах малое количество записей. - | ПО НастройкиОбщих.Ссылка = НастройкиРазделенных.Ссылка - | И НастройкиОбщих.Подсистема = НастройкиРазделенных.Подсистема - |ГДЕ - | НастройкиРазделенных.Использование = ИСТИНА - | ИЛИ НастройкиРазделенных.Использование ЕСТЬ NULL - | - |СГРУППИРОВАТЬ ПО - | ЕСТЬNULL(НастройкиРазделенных.Подсистема, НастройкиОбщих.Подсистема), - | ВЫБОР - | КОГДА ЕСТЬNULL(НастройкиРазделенных.Важный, НастройкиОбщих.Важный) = ИСТИНА - | ТОГДА &ПредставлениеВажный - | КОГДА ЕСТЬNULL(НастройкиРазделенных.СмТакже, НастройкиОбщих.СмТакже) = ИСТИНА - | ТОГДА &ПредставлениеСмТакже - | ИНАЧЕ """" - | КОНЕЦ"; - + | ВариантыОтчетов.Ссылка, + | ВариантыОтчетов.ПредопределенныйВариант, + | ВЫБОР + | КОГДА ВариантыОтчетов.ПометкаУдаления + | ТОГДА 1 + | КОГДА &ПолныеПраваНаВарианты = ЛОЖЬ + | И ВариантыОтчетов.Автор <> &ТекущийПользователь + | ТОГДА 2 + | КОГДА НЕ ВариантыОтчетов.Отчет В (&ОтчетыПользователя) + | ТОГДА 3 + | КОГДА ВариантыОтчетов.Ссылка В (&ОтключенныеВариантыПрограммы) + | ТОГДА 4 + | ИНАЧЕ 0 + | КОНЕЦ КАК Причина + |ПОМЕСТИТЬ ВариантыОтчетов + |ИЗ + | Справочник.ВариантыОтчетов КАК ВариантыОтчетов + |ГДЕ + | ВариантыОтчетов.Ссылка В(&Ссылки) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВариантыОтчетов.Ссылка КАК Ссылка, + | РазмещениеКонфигурации.Подсистема КАК Подсистема, + | РазмещениеКонфигурации.Важный КАК Важный, + | РазмещениеКонфигурации.СмТакже КАК СмТакже + |ПОМЕСТИТЬ НастройкиОбщих + |ИЗ + | ВариантыОтчетов КАК ВариантыОтчетов + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Размещение КАК РазмещениеКонфигурации + | ПО ВариантыОтчетов.Причина = 0 + | И ВариантыОтчетов.ПредопределенныйВариант = РазмещениеКонфигурации.Ссылка + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | ВариантыОтчетов.Ссылка, + | РазмещениеРасширений.Подсистема, + | РазмещениеРасширений.Важный, + | РазмещениеРасширений.СмТакже + |ИЗ + | ВариантыОтчетов КАК ВариантыОтчетов + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Размещение КАК РазмещениеРасширений + | ПО ВариантыОтчетов.Причина = 0 + | И ВариантыОтчетов.ПредопределенныйВариант = РазмещениеРасширений.Ссылка + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВариантыОтчетовРазмещение.Ссылка КАК Ссылка, + | ВариантыОтчетовРазмещение.Использование КАК Использование, + | ВариантыОтчетовРазмещение.Подсистема КАК Подсистема, + | ВариантыОтчетовРазмещение.Важный КАК Важный, + | ВариантыОтчетовРазмещение.СмТакже КАК СмТакже + |ПОМЕСТИТЬ НастройкиРазделенных + |ИЗ + | ВариантыОтчетов КАК ВариантыОтчетов + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Размещение КАК ВариантыОтчетовРазмещение + | ПО ВариантыОтчетов.Причина = 0 + | И ВариантыОтчетов.Ссылка = ВариантыОтчетовРазмещение.Ссылка + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ВариантыОтчетов.Ссылка, + | ВариантыОтчетов.Причина КАК Причина + |ИЗ + | ВариантыОтчетов КАК ВариантыОтчетов + |ГДЕ + | ВариантыОтчетов.Причина <> 0 + | + |УПОРЯДОЧИТЬ ПО + | Причина + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ЕСТЬNULL(НастройкиРазделенных.Подсистема, НастройкиОбщих.Подсистема) КАК Ссылка, + | КОЛИЧЕСТВО(1) КАК Количество, + | ВЫБОР + | КОГДА ЕСТЬNULL(НастройкиРазделенных.Важный, НастройкиОбщих.Важный) = ИСТИНА + | ТОГДА &ПредставлениеВажный + | КОГДА ЕСТЬNULL(НастройкиРазделенных.СмТакже, НастройкиОбщих.СмТакже) = ИСТИНА + | ТОГДА &ПредставлениеСмТакже + | ИНАЧЕ """" + | КОНЕЦ КАК Важность + |ИЗ + | НастройкиОбщих КАК НастройкиОбщих + | ПОЛНОЕ СОЕДИНЕНИЕ НастройкиРазделенных КАК НастройкиРазделенных // АПК:70 - существенно не замедляет запрос, так как в соединяемых таблицах малое количество записей. + | ПО НастройкиОбщих.Ссылка = НастройкиРазделенных.Ссылка + | И НастройкиОбщих.Подсистема = НастройкиРазделенных.Подсистема + |ГДЕ + | НастройкиРазделенных.Использование = ИСТИНА + | ИЛИ НастройкиРазделенных.Использование ЕСТЬ NULL + | + |СГРУППИРОВАТЬ ПО + | ЕСТЬNULL(НастройкиРазделенных.Подсистема, НастройкиОбщих.Подсистема), + | ВЫБОР + | КОГДА ЕСТЬNULL(НастройкиРазделенных.Важный, НастройкиОбщих.Важный) = ИСТИНА + | ТОГДА &ПредставлениеВажный + | КОГДА ЕСТЬNULL(НастройкиРазделенных.СмТакже, НастройкиОбщих.СмТакже) = ИСТИНА + | ТОГДА &ПредставлениеСмТакже + | ИНАЧЕ """" + | КОНЕЦ"; + КонецФункции &НаСервере Процедура ЗаписатьНаСервере() - + ДеревоПриемник = РеквизитФормыВЗначение("ДеревоПодсистем", Тип("ДеревоЗначений")); ИзмененныеРазделы = ДеревоПриемник.Строки.НайтиСтроки(Новый Структура("Модифицированность", Истина), Истина); - + НачатьТранзакцию(); Попытка Блокировка = Новый БлокировкаДанных; @@ -330,7 +333,7 @@ ЭлементБлокировки.УстановитьЗначение("Ссылка", ВариантОтчета.Значение); КонецЦикла; Блокировка.Заблокировать(); - + Для Каждого ВариантОтчета Из ИзменяемыеВарианты Цикл ВариантОбъект = ВариантОтчета.Значение.ПолучитьОбъект(); // СправочникОбъект.ВариантыОтчетов ВариантыОтчетов.ДеревоПодсистемЗаписать(ВариантОбъект, ИзмененныеРазделы); @@ -341,7 +344,7 @@ ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; - + КонецПроцедуры // Добавляет рекурсивно строку в дерево подсистем. @@ -382,10 +385,10 @@ &НаСервере Процедура ДобавитьПодсистемыВДерево(ПриемникРодитель, ИсточникРодитель, ВхожденияПодсистем) Для Каждого Источник Из ИсточникРодитель.Строки Цикл - + Приемник = ПриемникРодитель.Строки.Добавить(); ЗаполнитьЗначенияСвойств(Приемник, Источник); - + ВхожденияЭтойПодсистемы = ВхожденияПодсистем.Скопировать(Новый Структура("Ссылка", Приемник.Ссылка)); Если ВхожденияЭтойПодсистемы.Количество() = 1 Тогда Приемник.Важность = ВхожденияЭтойПодсистемы[0].Важность; @@ -394,7 +397,7 @@ Иначе Приемник.Важность = СмешаннаяВажность; // Так же используется для условного оформления. КонецЕсли; - + ВхожденияВариантов = ВхожденияЭтойПодсистемы.Итог("Количество"); Если ВхожденияВариантов = КоличествоВариантов Тогда Приемник.Использование = 1; @@ -403,7 +406,7 @@ Иначе Приемник.Использование = 2; КонецЕсли; - + ДобавитьПодсистемыВДерево(Приемник, Источник, ВхожденияПодсистем); КонецЦикла; КонецПроцедуры diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl index 60b0892f0..90cf1bc17 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl @@ -15,7 +15,7 @@ ТекстОшибки = НСтр("ru = 'Не указаны варианты отчетов.'"); Возврат; КонецЕсли; - + ОпределитьПоведениеВМобильномКлиенте(); ИзменяемыеВарианты.ЗагрузитьЗначения(Варианты); Отфильтровать(); @@ -40,7 +40,7 @@ ПоказатьПредупреждение(, НСтр("ru = 'Не указаны варианты отчетов.'")); Возврат; КонецЕсли; - + КоличествоВариантов = СброситьНастройкиРазмещенияСервер(ИзменяемыеВарианты); Если КоличествоВариантов = 1 И КоличествоВыбранныхВариантов = 1 Тогда СсылкаВарианта = ИзменяемыеВарианты[0].Значение; @@ -50,9 +50,10 @@ ПоказатьОповещениеПользователя(ОповещениеЗаголовок, ОповещениеСсылка, ОповещениеТекст); Иначе ОповещениеТекст = НСтр("ru = 'Сброшены настройки размещения - |вариантов отчетов (%1 шт.).'"); - ОповещениеТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОповещениеТекст, Формат(КоличествоВариантов, "ЧН=0; ЧГ=0")); - ПоказатьОповещениеПользователя(, , ОповещениеТекст); + |вариантов отчетов (%1 шт.).'"); + ОповещениеТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОповещениеТекст, Формат( + КоличествоВариантов, "ЧН=0; ЧГ=0")); + ПоказатьОповещениеПользователя(,, ОповещениеТекст); КонецЕсли; ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы(); Закрыть(); @@ -76,7 +77,7 @@ ЭлементБлокировки.УстановитьЗначение("Ссылка", ЭлементСписка.Значение); КонецЦикла; Блокировка.Заблокировать(); - + Для Каждого ЭлементСписка Из ИзменяемыеВарианты Цикл ВариантОбъект = ЭлементСписка.Значение.ПолучитьОбъект(); // СправочникОбъект.ВариантыОтчетов Если ВариантыОтчетов.СброситьНастройкиВариантаОтчета(ВариантОбъект) Тогда @@ -97,18 +98,18 @@ &НаСервере Процедура ОпределитьПоведениеВМобильномКлиенте() - Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Возврат; КонецЕсли; - + ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто; КонецПроцедуры &НаСервере Процедура Отфильтровать() - + КоличествоДоФильтрации = ИзменяемыеВарианты.Количество(); - + Запрос = Новый Запрос; Запрос.УстановитьПараметр("МассивВариантов", ИзменяемыеВарианты.ВыгрузитьЗначения()); Запрос.УстановитьПараметр("ТипВнутренний", Перечисления.ТипыОтчетов.Внутренний); @@ -123,21 +124,21 @@ | И ВариантыОтчетовРазмещение.Пользовательский = ЛОЖЬ | И ВариантыОтчетовРазмещение.ТипОтчета В (&ТипВнутренний, &ТипРасширение) | И ВариантыОтчетовРазмещение.ПометкаУдаления = ЛОЖЬ"; - + МассивВариантов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); ИзменяемыеВарианты.ЗагрузитьЗначения(МассивВариантов); - + КоличествоПослеФильтрации = ИзменяемыеВарианты.Количество(); Если КоличествоДоФильтрации <> КоличествоПослеФильтрации Тогда Если КоличествоПослеФильтрации = 0 Тогда ТекстОшибки = НСтр("ru = 'Сброс настроек размещения выбранных вариантов отчетов не требуется по одной или нескольким причинам: - |- Выбраны пользовательские варианты отчетов. - |- Выбраны помеченные на удаление варианты отчетов. - |- Выбраны варианты дополнительных или внешних отчетов.'"); + |- Выбраны пользовательские варианты отчетов. + |- Выбраны помеченные на удаление варианты отчетов. + |- Выбраны варианты дополнительных или внешних отчетов.'"); Возврат; КонецЕсли; КонецЕсли; - + КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl index c02fca1eb..dc9299f34 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl @@ -15,13 +15,13 @@ ТекстОшибки = НСтр("ru = 'Не указаны варианты отчетов.'"); Возврат; КонецЕсли; - + Если Не ЕстьПользовательскиеНастройки(Варианты) Тогда ТекстОшибки = НСтр("ru = 'Пользовательские настройки выбранных вариантов отчетов (%1 шт) не заданы или уже сброшены.'"); ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, Формат(Варианты.Количество(), "ЧН=0; ЧГ=0")); Возврат; КонецЕсли; - + ОпределитьПоведениеВМобильномКлиенте(); ИзменяемыеВарианты.ЗагрузитьЗначения(Варианты); КонецПроцедуры @@ -45,7 +45,7 @@ ПоказатьПредупреждение(, НСтр("ru = 'Не указаны варианты отчетов.'")); Возврат; КонецЕсли; - + СброситьНастройкиПользователейСервер(ИзменяемыеВарианты); Если КоличествоВариантов = 1 Тогда СсылкаВарианта = ИзменяемыеВарианты[0].Значение; @@ -55,9 +55,10 @@ ПоказатьОповещениеПользователя(ОповещениеЗаголовок, ОповещениеСсылка, ОповещениеТекст); Иначе ОповещениеТекст = НСтр("ru = 'Сброшены пользовательские настройки - |вариантов отчетов (%1 шт.).'"); - ОповещениеТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОповещениеТекст, Формат(КоличествоВариантов, "ЧН=0; ЧГ=0")); - ПоказатьОповещениеПользователя(, , ОповещениеТекст); + |вариантов отчетов (%1 шт.).'"); + ОповещениеТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОповещениеТекст, + Формат(КоличествоВариантов, "ЧН=0; ЧГ=0")); + ПоказатьОповещениеПользователя(,, ОповещениеТекст); КонецЕсли; Закрыть(); КонецПроцедуры @@ -79,9 +80,9 @@ ЭлементБлокировки.УстановитьЗначение("Ссылка", ЭлементСписка.Значение); КонецЦикла; Блокировка.Заблокировать(); - + РегистрыСведений.НастройкиВариантовОтчетов.СброситьНастройки(ИзменяемыеВарианты.ВыгрузитьЗначения()); - + ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); @@ -94,10 +95,10 @@ &НаСервере Процедура ОпределитьПоведениеВМобильномКлиенте() - Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Возврат; КонецЕсли; - + ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто; КонецПроцедуры @@ -112,9 +113,9 @@ | РегистрСведений.НастройкиВариантовОтчетов КАК Настройки |ГДЕ | Настройки.Вариант В(&МассивВариантов)"; - - ЕстьПользовательскиеНастройки = НЕ Запрос.Выполнить().Пустой(); + + ЕстьПользовательскиеНастройки = Не Запрос.Выполнить().Пустой(); Возврат ЕстьПользовательскиеНастройки; КонецФункции -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Form.form index 510a3ef30..990157e13 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Form.form @@ -1081,6 +1081,42 @@ true + + Назначение + 202 + true + true + + true + + + Список.Назначение + + + НазначениеРасширеннаяПодсказка + 204 + Label + true + true + + Left + + + + НазначениеКонтекстноеМеню + 203 + true + + LabelField + Enter + true + Left + true + + true + true + + ДоступенВсемПользователям 96 @@ -1947,6 +1983,7 @@ ВариантыОтчетовПереопределяемый.КлючВарианта, ВариантыОтчетовПереопределяемый.ТипОтчета, ВариантыОтчетовПереопределяемый.Автор, + ВариантыОтчетовПереопределяемый.Назначение, ВЫБОР КОГДА ПОДСТРОКА(ВариантыОтчетовПереопределяемый.Описание, 1, 1) <> "" ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Описание КАК СТРОКА(1000)) diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl index a46ba27c4..9cdbaff5c 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl @@ -10,17 +10,24 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + УстановитьУсловноеОформление(); - + ОпределитьПоведениеВМобильномКлиенте(); ПараметрыКлиента = ВариантыОтчетов.ПараметрыКлиента(); ВключаяПодчиненные = Истина; - + ДеревоЗначений = ВариантыОтчетовПовтИсп.ПодсистемыТекущегоПользователя().Дерево.Скопировать(); ДеревоПодсистемЗаполнитьПолноеПредставление(ДеревоЗначений.Строки); + + СтрокаДерева = ДеревоЗначений.Строки.Добавить(); + СтрокаДерева.Имя = "НеВключенныеВРазделы"; + СтрокаДерева.ПолноеИмя = "НеВключенныеВРазделы"; + СтрокаДерева.Представление = НСтр("ru = 'Не включенные в разделы'"); + СтрокаДерева.Ссылка = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + ЗначениеВРеквизитФормы(ДеревоЗначений, "ДеревоПодсистем"); - + ДеревоПодсистемТекущаяСтрока = -1; Элементы.ДеревоПодсистем.ТекущаяСтрока = 0; Если Параметры.РежимВыбора = Истина Тогда @@ -31,89 +38,90 @@ РежимРаботыФормы = "ВсеОтчетыРаздела"; РодительскиеЭлементы = Новый Массив; // Массив из ДанныеФормыЭлементДерева РодительскиеЭлементы.Добавить(ДеревоПодсистем.ПолучитьЭлементы()[0]); - + Пока РодительскиеЭлементы.Количество() > 0 Цикл РодительскийЭлемент = ЭлементДереваПодсистем(РодительскиеЭлементы); ДочерниеЭлементы = РодительскийЭлемент.ПолучитьЭлементы(); РодительскиеЭлементы.Удалить(0); - + Для Каждого ДочернийЭлемент Из ДочерниеЭлементы Цикл Если ДочернийЭлемент.Ссылка = Параметры.РазделСсылка Тогда Элементы.ДеревоПодсистем.ТекущаяСтрока = ДочернийЭлемент.ПолучитьИдентификатор(); РодительскиеЭлементы.Очистить(); Прервать; КонецЕсли; - + РодительскиеЭлементы.Добавить(ДочернийЭлемент); КонецЦикла; КонецЦикла; Иначе РежимРаботыФормы = "Список"; - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "Изменить", "Отображение", ОтображениеКнопки.КартинкаИТекст); - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "РазместитьВРазделах", "ТолькоВоВсехДействиях", Ложь); + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "Изменить", "Отображение", + ОтображениеКнопки.КартинкаИТекст); + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "РазместитьВРазделах", + "ТолькоВоВсехДействиях", Ложь); КонецЕсли; - + ГлобальныеНастройки = ВариантыОтчетов.ГлобальныеНастройки(); Элементы.СтрокаПоиска.ПодсказкаВвода = ГлобальныеНастройки.Поиск.ПодсказкаВвода; - + КлючСохраненияПоложенияОкна = РежимРаботыФормы; КлючНазначенияИспользования = РежимРаботыФормы; - + УстановитьСвойствоСпискаПоПараметруФормы("РежимВыбора"); УстановитьСвойствоСпискаПоПараметруФормы("ВыборГруппИЭлементов"); УстановитьСвойствоСпискаПоПараметруФормы("МножественныйВыбор"); УстановитьСвойствоСпискаПоПараметруФормы("ТекущаяСтрока"); - + Элементы.Выбрать.КнопкаПоУмолчанию = Параметры.РежимВыбора; Элементы.Выбрать.Видимость = Параметры.РежимВыбора; Элементы.ОтборТипОтчета.Видимость = ВариантыОтчетов.ПолныеПраваНаВарианты(); - + СписокВыбора = Элементы.ОтборТипОтчета.СписокВыбора; СписокВыбора.Добавить(1, НСтр("ru = 'Все, кроме внешних'")); - СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Внутренний, НСтр("ru = 'Внутренние'")); - СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Расширение, НСтр("ru = 'Расширения'")); + СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Внутренний, НСтр("ru = 'Внутренние'")); + СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Расширение, НСтр("ru = 'Расширения'")); СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Дополнительный, НСтр("ru = 'Дополнительные'")); - СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Внешний, НСтр("ru = 'Внешние'")); - + СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Внешний, НСтр("ru = 'Внешние'")); + СтрокаПоиска = Параметры.СтрокаПоиска; Если Параметры.Отбор.Свойство("ТипОтчета", ОтборТипОтчета) Тогда Параметры.Отбор.Удалить("ТипОтчета"); КонецЕсли; Если Параметры.ТолькоВарианты Тогда - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, - "КлючВарианта", "", ВидСравненияКомпоновкиДанных.НеРавно,,, - РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный); + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "КлючВарианта", "", + ВидСравненияКомпоновкиДанных.НеРавно,,, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный); КонецЕсли; - + ПерсональныеНастройкиСписка = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), - "Справочник.ВариантыОтчетов.ФормаСписка"); + ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), "Справочник.ВариантыОтчетов.ФормаСписка"); Если ПерсональныеНастройкиСписка <> Неопределено Тогда Элементы.СтрокаПоиска.СписокВыбора.ЗагрузитьЗначения(ПерсональныеНастройкиСписка.СтрокаПоискаСписокВыбора); КонецЕсли; - - - СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); - + Если СуффиксТекущегоЯзыка <> Неопределено Тогда - + Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) Тогда - - СвойстваСписка.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "ВариантыОтчетов.Наименование", "ВариантыОтчетов.Наименование" + СуффиксТекущегоЯзыка); - СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыОтчетов.Описание", "ВариантыОтчетов.Описание" + СуффиксТекущегоЯзыка); - - СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыКонфигурации.Наименование", "ВариантыКонфигурации.Наименование" + СуффиксТекущегоЯзыка); - СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыКонфигурации.Описание", "ВариантыКонфигурации.Описание" + СуффиксТекущегоЯзыка); - + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "ВариантыОтчетов.Наименование", + "ВариантыОтчетов.Наименование" + СуффиксТекущегоЯзыка); + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыОтчетов.Описание", + "ВариантыОтчетов.Описание" + СуффиксТекущегоЯзыка); + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыКонфигурации.Наименование", + "ВариантыКонфигурации.Наименование" + СуффиксТекущегоЯзыка); + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыКонфигурации.Описание", + "ВариантыКонфигурации.Описание" + СуффиксТекущегоЯзыка); + КонецЕсли; - + Иначе СвойстваСписка.ТекстЗапроса = ТекстЗапросаПредставленияНаДругихЯзыкахВТабличнойЧасти(); КонецЕсли; - - ОписаниеПоляИмяОтчета = + + ОписаниеПоляИмяОтчета = "ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных) | ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя @@ -121,12 +129,11 @@ | ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК Справочник.ИдентификаторыОбъектовРасширений).Имя | ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК СТРОКА(150)), 14, 137) |КОНЕЦ"; - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки"); ИмяТаблицыДополнительныеОтчеты = МодульДополнительныеОтчетыИОбработки.ИмяТаблицыДополнительныеОтчеты(); - ОписаниеПоляИмяОтчета = - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ВЫБОР + ОписаниеПоляИмяОтчета = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных) | ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя | КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений) @@ -136,47 +143,47 @@ | ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК СТРОКА(150)), 14, 137) |КОНЕЦ", ИмяТаблицыДополнительныеОтчеты); КонецЕсли; - + Если Не ЗначениеЗаполнено(СвойстваСписка.ТекстЗапроса) Тогда СвойстваСписка.ТекстЗапроса = Список.ТекстЗапроса; КонецЕсли; - - СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "&ИмяОтчета", ОписаниеПоляИмяОтчета); - + + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "&ИмяОтчета", ОписаниеПоляИмяОтчета); + ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка); - + Если СуффиксТекущегоЯзыка = Неопределено Тогда Список.Параметры.УстановитьЗначениеПараметра("КодЯзыка", ТекущийЯзык().КодЯзыка); КонецЕсли; - + Список.Параметры.УстановитьЗначениеПараметра("ДоступныеОтчеты", ВариантыОтчетов.ОтчетыТекущегоПользователя()); - Список.Параметры.УстановитьЗначениеПараметра("ОтключенныеВариантыПрограммы", Новый Массив(ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы())); + Список.Параметры.УстановитьЗначениеПараметра("ОтключенныеВариантыПрограммы", + Новый Массив(ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы())); Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык()); Список.Параметры.УстановитьЗначениеПараметра("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений); - + ТекущийЭлемент = Элементы.Список; - + ВариантыОтчетов.ДополнитьОтборыИзСтруктуры(Список.КомпоновщикНастроек.Настройки.Отбор, Параметры.Отбор); Параметры.Отбор.Очистить(); - + ОбновитьСодержимоеСписка("ПриСозданииНаСервере"); КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) - Если РежимРаботыФормы = "ВсеОтчетыРаздела" ИЛИ РежимРаботыФормы = "Выбор" Тогда + Если РежимРаботыФормы = "ВсеОтчетыРаздела" Или РежимРаботыФормы = "Выбор" Тогда Элементы.ДеревоПодсистем.Развернуть(ДеревоПодсистемТекущаяСтрока, Истина); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - Если ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияИзменениеВарианта() - Или ИмяСобытия = "Запись_НаборКонстант" Тогда - + Если ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияИзменениеВарианта() Или ИмяСобытия = "Запись_НаборКонстант" Тогда + ДеревоПодсистемТекущаяСтрока = -1; ПодключитьОбработчикОжидания("ДеревоПодсистемОбработчикАктивизацииСтроки", 0.1, Истина); - + ИначеЕсли ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияОбновленияВариантовОтчетовИзФайлов() Тогда УстановитьОтборПоОбновленнымИзФайловОтчетов(Параметр); КонецЕсли; @@ -231,7 +238,7 @@ &НаКлиенте Процедура ДеревоПодсистемПриАктивизацииСтроки(Элемент) ПодключитьОбработчикОжидания("ДеревоПодсистемОбработчикАктивизацииСтроки", 0.1, Истина); - + #Если МобильныйКлиент Тогда ПодключитьОбработчикОжидания("УстановитьЗаголовокДереваПодсистем", 0.1, Истина); ТекущийЭлемент = Элементы.Список; @@ -241,16 +248,16 @@ &НаКлиенте Процедура ДеревоПодсистемПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) СтандартнаяОбработка = Ложь; - + Если Строка = Неопределено Тогда Возврат; КонецЕсли; - + ПараметрыРазмещения = ПараметрыРазмещения(ПараметрыПеретаскивания, Строка); Если ПараметрыРазмещения = Неопределено Тогда Возврат; КонецЕсли; - + Если ПараметрыРазмещения.Варианты.Всего = 1 Тогда Если ПараметрыРазмещения.Действие = "Копирование" Тогда ШаблонВопроса = НСтр("ru = 'Разместить ""%1"" в ""%4""?'"); @@ -264,17 +271,14 @@ ШаблонВопроса = НСтр("ru = 'Переместить варианты отчетов ""%1"" (%2 шт.) из ""%3"" в ""%4""?'"); КонецЕсли; КонецЕсли; - - ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ШаблонВопроса, - ПараметрыРазмещения.Варианты.Представление, - Формат(ПараметрыРазмещения.Варианты.Всего, "ЧГ=0"), - ПараметрыРазмещения.Источник.ПолноеПредставление, - ПараметрыРазмещения.Приемник.ПолноеПредставление); - + + ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонВопроса, + ПараметрыРазмещения.Варианты.Представление, Формат(ПараметрыРазмещения.Варианты.Всего, "ЧГ=0"), + ПараметрыРазмещения.Источник.ПолноеПредставление, ПараметрыРазмещения.Приемник.ПолноеПредставление); + Обработчик = Новый ОписаниеОповещения("ДеревоПодсистемПеретаскиваниеЗавершение", ЭтотОбъект, ПараметрыРазмещения); ПоказатьВопрос(Обработчик, ТекстВопроса, РежимДиалогаВопрос.ДаНет, 60, КодВозвратаДиалога.Да); - + КонецПроцедуры #КонецОбласти @@ -315,24 +319,23 @@ &НаКлиенте Процедура СохранитьВариантОтчетаВФайл(Команда) ВыбранныеВариантыОтчетов = Элементы.Список.ВыделенныеСтроки; - - Если ВыбранныеВариантыОтчетов.Количество() = 0 Тогда + + Если ВыбранныеВариантыОтчетов.Количество() = 0 Тогда Возврат; КонецЕсли; - + ОткрытьФорму("ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.СохранениеВариантаОтчетаВФайл", - Новый Структура("ВыбранныеВариантыОтчетов", ВыбранныеВариантыОтчетов), - ЭтотОбъект); + Новый Структура("ВыбранныеВариантыОтчетов", ВыбранныеВариантыОтчетов), ЭтотОбъект); КонецПроцедуры &НаКлиенте Процедура ОбновитьВариантОтчетаИзФайла(Команда) ВыбранныеВариантыОтчетов = Элементы.Список.ВыделенныеСтроки; - Если ВыбранныеВариантыОтчетов.Количество() = 0 Тогда + Если ВыбранныеВариантыОтчетов.Количество() = 0 Тогда Возврат; КонецЕсли; - + СвойстваВариантаОтчета = ВариантыОтчетовКлиент.СвойстваВариантаОтчетаОснования(); СвойстваВариантаОтчета.Ссылка = ВыбранныеВариантыОтчетов[0]; СвойстваВариантаОтчета.ПредставлениеВарианта = Строка(ВыбранныеВариантыОтчетов[0]); @@ -346,10 +349,10 @@ &НаСервере Процедура ОпределитьПоведениеВМобильномКлиенте() - Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Возврат; КонецЕсли; - + Элементы.СтрокаПоиска.Ширина = 0; Элементы.СтрокаПоиска.РастягиватьПоГоризонтали = Неопределено; Элементы.СтрокаПоиска.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; @@ -373,21 +376,21 @@ &НаСервере Процедура УстановитьУсловноеОформление() - + УсловноеОформление.Элементы.Очистить(); - + Элемент = УсловноеОформление.Элементы.Добавить(); - + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Описание.Имя); - + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Описание"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; - + ЦветПоясняющегоТекста = Метаданные.ЭлементыСтиля.ПоясняющийТекст; Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветПоясняющегоТекста.Значение); - + КонецПроцедуры // Возвращает параметры перетаскивания. @@ -409,31 +412,31 @@ // &НаКлиенте Функция ПараметрыРазмещения(ПараметрыПеретаскивания, Строка) - + КоличествоСтрок = ПараметрыПеретаскивания.Значение.Количество(); Если КоличествоСтрок = 0 Тогда Возврат Неопределено; КонецЕсли; - + СтрокаПриемник = ДеревоПодсистем.НайтиПоИдентификатору(Строка); - Если СтрокаПриемник = Неопределено ИЛИ СтрокаПриемник.Приоритет = "" Тогда + Если СтрокаПриемник = Неопределено Или СтрокаПриемник.Приоритет = "" Тогда Возврат Неопределено; КонецЕсли; - + ПараметрыРазмещения = Новый Структура("Варианты, Действие, Приемник, Источник"); ПараметрыРазмещения.Варианты = Новый Структура("Массив, Всего, Представление"); ПараметрыРазмещения.Варианты.Массив = ПараметрыПеретаскивания.Значение; ПараметрыРазмещения.Варианты.Всего = КоличествоСтрок; - + Приемник = СвойстваДанныхСтроки(); ЗаполнитьЗначенияСвойств(Приемник, СтрокаПриемник); Приемник.Идентификатор = СтрокаПриемник.ПолучитьИдентификатор(); - + ПараметрыРазмещения.Приемник = Приемник; - + СтрокаИсточник = Элементы.ДеревоПодсистем.ТекущиеДанные; Источник = СвойстваДанныхСтроки(); - Если СтрокаИсточник = Неопределено ИЛИ СтрокаИсточник.Приоритет = "" Тогда + Если СтрокаИсточник = Неопределено Или СтрокаИсточник.Приоритет = "" Тогда ПараметрыРазмещения.Действие = "Копирование"; Иначе ЗаполнитьЗначенияСвойств(Источник, СтрокаИсточник); @@ -444,32 +447,31 @@ ПараметрыРазмещения.Действие = "Перемещение"; КонецЕсли; КонецЕсли; - + ПараметрыРазмещения.Источник = Источник; - + Если Источник.Ссылка = Приемник.Ссылка Тогда ПоказатьПредупреждение(, НСтр("ru = 'Выбранные варианты отчетов уже в данном разделе.'")); Возврат Неопределено; КонецЕсли; - + Если ПараметрыРазмещения.Варианты.Всего = 1 Тогда ПараметрыРазмещения.Варианты.Представление = Строка(ПараметрыРазмещения.Варианты.Массив[0]); Иначе ПараметрыРазмещения.Варианты.Представление = ""; Для Каждого ВариантСсылка Из ПараметрыРазмещения.Варианты.Массив Цикл - ПараметрыРазмещения.Варианты.Представление = ПараметрыРазмещения.Варианты.Представление - + ?(ПараметрыРазмещения.Варианты.Представление = "", "", ", ") - + Строка(ВариантСсылка); - + ПараметрыРазмещения.Варианты.Представление = ПараметрыРазмещения.Варианты.Представление + + ?(ПараметрыРазмещения.Варианты.Представление = "", "", ", ") + Строка(ВариантСсылка); + Если СтрДлина(ПараметрыРазмещения.Варианты.Представление) > 23 Тогда ПараметрыРазмещения.Варианты.Представление = Лев(ПараметрыРазмещения.Варианты.Представление, 20) + "..."; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; - + Возврат ПараметрыРазмещения; - + КонецФункции // Конструктор свойств данных строки. @@ -484,14 +486,14 @@ // &НаКлиенте Функция СвойстваДанныхСтроки() - + Свойства = Новый Структура; Свойства.Вставить("Ссылка", Неопределено); Свойства.Вставить("ПолноеПредставление", ""); Свойства.Вставить("Идентификатор", 0); - + Возврат Свойства; - + КонецФункции // Обработчик завершения перетаскивания. @@ -505,10 +507,10 @@ Если Ответ <> КодВозвратаДиалога.Да Тогда Возврат; КонецЕсли; - + РезультатВыполнения = РазместитьВариантыВПодсистеме(ПараметрыРазмещения); ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы(); - + Если ПараметрыРазмещения.Варианты.Всего = РезультатВыполнения.Размещено Тогда Если ПараметрыРазмещения.Варианты.Всего = 1 Тогда Если ПараметрыРазмещения.Действие = "Перемещение" Тогда @@ -524,50 +526,49 @@ Иначе Шаблон = НСтр("ru = 'Успешно размещены в ""%1"".'"); КонецЕсли; - Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Варианты отчетов (%1).'"), Формат(ПараметрыРазмещения.Варианты.Всего, "ЧН=0; ЧГ=0")); + Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Варианты отчетов (%1).'"), + Формат(ПараметрыРазмещения.Варианты.Всего, "ЧН=0; ЧГ=0")); Ссылка = Неопределено; КонецЕсли; - Шаблон = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, ПараметрыРазмещения.Приемник.ПолноеПредставление); + Шаблон = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, + ПараметрыРазмещения.Приемник.ПолноеПредставление); ПоказатьОповещениеПользователя(Шаблон, Ссылка, Текст); Иначе ТекстОшибок = ""; Если Не ПустаяСтрока(РезультатВыполнения.НеМогутРазмещаться) Тогда - ТекстОшибок = ?(ТекстОшибок = "", "", ТекстОшибок + Символы.ПС + Символы.ПС) - + НСтр("ru = 'Не могут размещаться в командном интерфейсе:'") - + Символы.ПС + ТекстОшибок = ?(ТекстОшибок = "", "", ТекстОшибок + Символы.ПС + Символы.ПС) + + НСтр("ru = 'Не могут размещаться в командном интерфейсе:'") + Символы.ПС + РезультатВыполнения.НеМогутРазмещаться; КонецЕсли; Если Не ПустаяСтрока(РезультатВыполнения.УжеРазмещены) Тогда - ТекстОшибок = ?(ТекстОшибок = "", "", ТекстОшибок + Символы.ПС + Символы.ПС) - + НСтр("ru = 'Уже размещены в этом разделе:'") - + Символы.ПС - + РезультатВыполнения.УжеРазмещены; + ТекстОшибок = ?(ТекстОшибок = "", "", ТекстОшибок + Символы.ПС + Символы.ПС) + + НСтр("ru = 'Уже размещены в этом разделе:'") + Символы.ПС + РезультатВыполнения.УжеРазмещены; КонецЕсли; - + Если ПараметрыРазмещения.Действие = "Перемещение" Тогда Шаблон = НСтр("ru = 'Перемещено вариантов отчетов: %1 из %2. - |Подробности: - |%3'"); + |Подробности: + |%3'"); Иначе Шаблон = НСтр("ru = 'Размещено вариантов отчетов: %1 из %2. - |Подробности: - |%3'"); + |Подробности: + |%3'"); КонецЕсли; - - СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, РезультатВыполнения.Размещено, - ПараметрыРазмещения.Варианты.Всего, ТекстОшибок), РежимДиалогаВопрос.ОК); + + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, РезультатВыполнения.Размещено, + ПараметрыРазмещения.Варианты.Всего, ТекстОшибок), РежимДиалогаВопрос.ОК); КонецЕсли; - + КонецПроцедуры &НаСервере Процедура УстановитьСвойствоСпискаПоПараметруФормы(Ключ) - + Если Параметры.Свойство(Ключ) И ЗначениеЗаполнено(Параметры[Ключ]) Тогда Элементы.Список[Ключ] = Параметры[Ключ]; КонецЕсли; - + КонецПроцедуры &НаСервере @@ -591,25 +592,24 @@ КонецЕсли; ТекущийЭлемент = Элементы.СтрокаПоиска; КонецЕсли; - + Если Событие = "СтрокаПоискаПриИзменении" И ИзменилисьПерсональныеНастройки Тогда ПерсональныеНастройкиСписка = Новый Структура("СтрокаПоискаСписокВыбора"); ПерсональныеНастройкиСписка.СтрокаПоискаСписокВыбора = Элементы.СтрокаПоиска.СписокВыбора.ВыгрузитьЗначения(); ОбщегоНазначения.ХранилищеОбщихНастроекСохранить( - ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), - "Справочник.ВариантыОтчетов.ФормаСписка", + ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), "Справочник.ВариантыОтчетов.ФормаСписка", ПерсональныеНастройкиСписка); КонецЕсли; - + ДеревоПодсистемТекущаяСтрока = Элементы.ДеревоПодсистем.ТекущаяСтрока; - + СтрокаДерева = ДеревоПодсистем.НайтиПоИдентификатору(ДеревоПодсистемТекущаяСтрока); Если СтрокаДерева = Неопределено Тогда Возврат; КонецЕсли; - + ВсеПодсистемы = Не ЗначениеЗаполнено(СтрокаДерева.ПолноеИмя); - + ПараметрыПоиска = Новый Структура; Если ЗначениеЗаполнено(СтрокаПоиска) Тогда ПараметрыПоиска.Вставить("СтрокаПоиска", СтрокаПоиска); @@ -638,15 +638,15 @@ КонецЕсли; ПараметрыПоиска.Вставить("ТипыОтчетов", ТипыОтчетов); КонецЕсли; - + ЕстьОтборПоВариантам = ПараметрыПоиска.Количество() > 0; ПараметрыПоиска.Вставить("ПометкаУдаления", Ложь); ПараметрыПоиска.Вставить("ЖесткийОтборПоПодсистемам", Не ВсеПодсистемы); - + РезультатПоиска = ВариантыОтчетов.НайтиВариантыОтчетов(ПараметрыПоиска); Список.Параметры.УстановитьЗначениеПараметра("ЕстьОтборПоВариантам", ЕстьОтборПоВариантам); Список.Параметры.УстановитьЗначениеПараметра("ВариантыПользователя", РезультатПоиска.Ссылки); - + КонецПроцедуры &НаКлиенте @@ -658,7 +658,7 @@ &НаКлиенте Процедура УстановитьЗаголовокДереваПодсистем() - Элементы.ГруппаРазделы.Заголовок = ?(Элементы.ДеревоПодсистем.ТекущиеДанные = Неопределено, + Элементы.ГруппаРазделы.Заголовок = ?(Элементы.ДеревоПодсистем.ТекущиеДанные = Неопределено, НСтр("ru = 'Все разделы'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()), Элементы.ДеревоПодсистем.ТекущиеДанные.Представление); КонецПроцедуры @@ -699,39 +699,31 @@ ИсключаемыеПодсистемы.Добавить(СтрокаИсточник.Ссылка); ДеревоПодсистемЗаписатьСвойствоВМассив(СтрокаИсточник.ПолучитьЭлементы(), "Ссылка", ИсключаемыеПодсистемы); КонецЕсли; - + Размещено = 0; УжеРазмещены = ""; НеМогутРазмещаться = ""; - + НачатьТранзакцию(); Попытка Блокировка = Новый БлокировкаДанных; ЗаблокироватьВариантыОтчетовПередРазмещением(Блокировка, ПараметрыРазмещения.Варианты.Массив); Блокировка.Заблокировать(); - + Для Каждого ВариантСсылка Из ПараметрыРазмещения.Варианты.Массив Цикл Если ВариантСсылка.ТипОтчета = Перечисления.ТипыОтчетов.Внешний Тогда - НеМогутРазмещаться = ?(НеМогутРазмещаться = "", "", НеМогутРазмещаться + Символы.ПС) - + " " - + Строка(ВариантСсылка) - + " (" - + НСтр("ru = 'внешний'") - + ")"; + НеМогутРазмещаться = ?(НеМогутРазмещаться = "", "", НеМогутРазмещаться + Символы.ПС) + " " + + Строка(ВариантСсылка) + " (" + НСтр("ru = 'внешний'") + ")"; Продолжить; ИначеЕсли ВариантСсылка.ПометкаУдаления Тогда - НеМогутРазмещаться = ?(НеМогутРазмещаться = "", "", НеМогутРазмещаться + Символы.ПС) - + " " - + Строка(ВариантСсылка) - + " (" - + НСтр("ru = 'помечен на удаление'") - + ")"; + НеМогутРазмещаться = ?(НеМогутРазмещаться = "", "", НеМогутРазмещаться + Символы.ПС) + " " + + Строка(ВариантСсылка) + " (" + НСтр("ru = 'помечен на удаление'") + ")"; Продолжить; КонецЕсли; - + ЕстьИзменения = Ложь; ВариантОбъект = ВариантСсылка.ПолучитьОбъект(); // СправочникОбъект.ВариантыОтчетов - - + Приемник = ПараметрыРазмещения.Приемник; // см. СвойстваДанныхСтроки СтрокаПриемник = ВариантОбъект.Размещение.Найти(Приемник.Ссылка, "Подсистема"); Если СтрокаПриемник = Неопределено Тогда @@ -768,46 +760,44 @@ ЕстьИзменения = Истина; СтрокаПриемник.Использование = Истина; КонецЕсли; - + Если ЕстьИзменения Тогда Размещено = Размещено + 1; ВариантОбъект.Записать(); Иначе - УжеРазмещены = ?(УжеРазмещены = "", "", УжеРазмещены + Символы.ПС) - + " " - + Строка(ВариантСсылка); + УжеРазмещены = ?(УжеРазмещены = "", "", УжеРазмещены + Символы.ПС) + " " + Строка(ВариантСсылка); КонецЕсли; КонецЦикла; - + ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; - + Если ПараметрыРазмещения.Действие = "Перемещение" И Размещено > 0 Тогда Элементы.ДеревоПодсистем.ТекущаяСтрока = Приемник.Идентификатор; ОбновитьСодержимоеСписка(); КонецЕсли; - + Возврат Новый Структура("Размещено, УжеРазмещены, НеМогутРазмещаться", Размещено, УжеРазмещены, НеМогутРазмещаться); КонецФункции &НаСервере Процедура ЗаблокироватьВариантыОтчетовПередРазмещением(Блокировка, ВариантыОтчетов) - + ИсточникДанных = Новый ТаблицаЗначений; ИсточникДанных.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("СправочникСсылка.ВариантыОтчетов")); - - Для Каждого ВариантОтчета Из ВариантыОтчетов Цикл + + Для Каждого ВариантОтчета Из ВариантыОтчетов Цикл Строка = ИсточникДанных.Добавить(); Строка.Ссылка = ВариантОтчета; КонецЦикла; - + ЭлементБлокировки = Блокировка.Добавить("Справочник.ВариантыОтчетов"); ЭлементБлокировки.ИсточникДанных = ИсточникДанных; ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Ссылка", "Ссылка"); - + КонецПроцедуры &НаКлиенте @@ -822,13 +812,13 @@ Если Не ПараметрыКлиента.ВыполнятьЗамеры Тогда Возврат Неопределено; КонецЕсли; - + Если ЗначениеЗаполнено(СтрокаПоиска) И (Событие = "СтрокаПоискаПриИзменении" Или Событие = "ВыполнитьПоиск") Тогда Имя = "СписокОтчетов.Поиск"; Иначе Возврат Неопределено; КонецЕсли; - + Комментарий = Новый Соответствие; Если ЗначениеЗаполнено(СтрокаПоиска) Тогда Комментарий.Вставить("Поиск", Истина); @@ -837,7 +827,7 @@ Иначе Комментарий.Вставить("Поиск", Ложь); КонецЕсли; - + Замер = Новый Структура("МодульОценкаПроизводительностиКлиент, Идентификатор"); Замер.МодульОценкаПроизводительностиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОценкаПроизводительностиКлиент"); Замер.Идентификатор = Замер.МодульОценкаПроизводительностиКлиент.ЗамерВремени(Имя, Ложь, Ложь); @@ -874,9 +864,9 @@ // &НаСервере Функция ЭлементДереваПодсистем(ЭлементыДерева) - + Возврат ЭлементыДерева[0]; - + КонецФункции // Параметры: @@ -884,125 +874,122 @@ // &НаКлиенте Процедура УстановитьОтборПоОбновленнымИзФайловОтчетов(ОписаниеВариантовОтчетов) - + ОбновленныеВариантыОтчетов = Новый СписокЗначений; - + Для Каждого ОписаниеВариантаОтчета Из ОписаниеВариантовОтчетов Цикл ОбновленныеВариантыОтчетов.Добавить(ОписаниеВариантаОтчета.Ссылка); КонецЦикла; - + ДочерниеПодсистемы = ДеревоПодсистем.ПолучитьЭлементы(); - - Если ДочерниеПодсистемы.Количество() > 0 Тогда + + Если ДочерниеПодсистемы.Количество() > 0 Тогда Элементы.ДеревоПодсистем.ТекущаяСтрока = ДочерниеПодсистемы[0].ПолучитьИдентификатор(); КонецЕсли; - + ОбновитьСодержимоеСписка(); - - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( - Список, - "Ссылка", - ОбновленныеВариантыОтчетов, - ВидСравненияКомпоновкиДанных.ВСписке,,, + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Ссылка", + ОбновленныеВариантыОтчетов, ВидСравненияКомпоновкиДанных.ВСписке,,, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный); - + КонецПроцедуры &НаСервере Функция ТекстЗапросаПредставленияНаДругихЯзыкахВТабличнойЧасти() - + ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ - | ВариантыОтчетовПереопределяемый.Ссылка, - | ВариантыОтчетовПереопределяемый.ПометкаУдаления, - | ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.КлючЗамеров, ВариантыРасширенийПереопределяемый.КлючЗамеров) КАК - | КлючЗамеров, - | ВариантыОтчетовПереопределяемый.Пользовательский, - | НЕ ВариантыОтчетовПереопределяемый.Пользовательский КАК Предопределенный, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | И (ВариантыОтчетовПереопределяемый.Пользовательский - | ИЛИ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО, - | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), - | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка))) - | ТОГДА ВариантыОтчетовПереопределяемый.Наименование - | КОГДА НЕ &ЭтоОсновнойЯзык - | И (ВариантыОтчетовПереопределяемый.Пользовательский - | ИЛИ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО, - | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), - | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка))) - | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Наименование, ВариантыОтчетовПереопределяемый.Наименование) КАК - | СТРОКА(150)) - | КОГДА &ЭтоОсновнойЯзык - | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.Наименование, - | ВариантыРасширенийПереопределяемый.Наименование), ВариантыОтчетовПереопределяемый.Наименование) КАК СТРОКА(150)) - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Наименование, ПредставленияИзРасширений.Наименование), - | ВариантыОтчетовПереопределяемый.Наименование) КАК СТРОКА(150)) - | КОНЕЦ КАК Наименование, - | НЕ ВариантыОтчетовПереопределяемый.ТолькоДляАвтора КАК ДоступенВсемПользователям, - | ВариантыОтчетовПереопределяемый.Отчет, - | ВариантыОтчетовПереопределяемый.КлючВарианта, - | ВариантыОтчетовПереопределяемый.ТипОтчета, - | ВариантыОтчетовПереопределяемый.Автор, - | ВЫБОР - | КОГДА &ЭтоОсновнойЯзык - | И ПОДСТРОКА(ВариантыОтчетовПереопределяемый.Описание, 1, 1) <> """" - | ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Описание КАК СТРОКА(1000)) - | КОГДА &ЭтоОсновнойЯзык - | И ПОДСТРОКА(ВариантыОтчетовПереопределяемый.Описание, 1, 1) = """" - | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.Описание, ВариантыРасширенийПереопределяемый.Описание) - | КАК СТРОКА(1000)) - | КОГДА НЕ &ЭтоОсновнойЯзык - | И ПОДСТРОКА(ПредставленияВариантов.Описание, 1, 1) <> """" - | ТОГДА ВЫРАЗИТЬ(ПредставленияВариантов.Описание КАК СТРОКА(1000)) - | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Описание, ПредставленияИзРасширений.Описание), - | ВариантыОтчетовПереопределяемый.Описание) КАК СТРОКА(1000)) - | КОНЕЦ КАК Описание, - | &ИмяОтчета КАК ИмяОтчета, - | СведенияОРасширениях.ПолноеИмяОбъекта КАК ПолноеИмяОтчета, - | ВЫБОР - | КОГДА ВариантыОтчетовПереопределяемый.ПометкаУдаления = ИСТИНА - | ТОГДА 4 - | КОГДА ВариантыОтчетовПереопределяемый.Пользовательский = ЛОЖЬ - | ТОГДА 5 - | ИНАЧЕ 3 - | КОНЕЦ КАК ИндексКартинки - |ИЗ - | Справочник.ВариантыОтчетов КАК ВариантыОтчетовПереопределяемый - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ВариантыКонфигурацииПереопределяемый - | ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ВариантыКонфигурацииПереопределяемый.Ссылка - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ВариантыРасширенийПереопределяемый - | ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ВариантыРасширенийПереопределяемый.Ссылка - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Представления КАК ПредставленияВариантов - | ПО ВариантыОтчетовПереопределяемый.Ссылка = ПредставленияВариантов.Ссылка - | И (ПредставленияВариантов.КодЯзыка = &КодЯзыка) - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Представления КАК ПредставленияИзКонфигурации - | ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ПредставленияИзКонфигурации.Ссылка - | И (ПредставленияИзКонфигурации.КодЯзыка = &КодЯзыка) - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Представления КАК ПредставленияИзРасширений - | ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ПредставленияИзРасширений.Ссылка - | И (ПредставленияИзРасширений.КодЯзыка = &КодЯзыка) - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК СведенияОРасширениях - | ПО СведенияОРасширениях.ВерсияРасширений = &ВерсияРасширений - | И СведенияОРасширениях.Идентификатор = ВариантыОтчетовПереопределяемый.Отчет - |ГДЕ - | ВариантыОтчетовПереопределяемый.Отчет В (&ДоступныеОтчеты) - | И ВЫБОР - | КОГДА &ЕстьОтборПоВариантам - | ТОГДА ВариантыОтчетовПереопределяемый.Ссылка В (&ВариантыПользователя) - | КОГДА НЕ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (&ОтключенныеВариантыПрограммы) - | ТОГДА ИСТИНА - | ИНАЧЕ ВариантыОтчетовПереопределяемый.Ссылка В - | (ВЫБРАТЬ - | РодителиПереопределяемый.Родитель - | ИЗ - | Справочник.ВариантыОтчетов КАК РодителиПереопределяемый - | ГДЕ - | РодителиПереопределяемый.Отчет В (&ДоступныеОтчеты) - | И НЕ РодителиПереопределяемый.Ссылка В (&ВариантыПользователя)) - | КОНЕЦ"; - + | ВариантыОтчетовПереопределяемый.Ссылка, + | ВариантыОтчетовПереопределяемый.ПометкаУдаления, + | ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.КлючЗамеров, ВариантыРасширенийПереопределяемый.КлючЗамеров) КАК + | КлючЗамеров, + | ВариантыОтчетовПереопределяемый.Пользовательский, + | НЕ ВариантыОтчетовПереопределяемый.Пользовательский КАК Предопределенный, + | ВЫБОР + | КОГДА &ЭтоОсновнойЯзык + | И (ВариантыОтчетовПереопределяемый.Пользовательский + | ИЛИ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО, + | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), + | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка))) + | ТОГДА ВариантыОтчетовПереопределяемый.Наименование + | КОГДА НЕ &ЭтоОсновнойЯзык + | И (ВариантыОтчетовПереопределяемый.Пользовательский + | ИЛИ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО, + | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), + | ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка))) + | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Наименование, ВариантыОтчетовПереопределяемый.Наименование) КАК + | СТРОКА(150)) + | КОГДА &ЭтоОсновнойЯзык + | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.Наименование, + | ВариантыРасширенийПереопределяемый.Наименование), ВариантыОтчетовПереопределяемый.Наименование) КАК СТРОКА(150)) + | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Наименование, ПредставленияИзРасширений.Наименование), + | ВариантыОтчетовПереопределяемый.Наименование) КАК СТРОКА(150)) + | КОНЕЦ КАК Наименование, + | НЕ ВариантыОтчетовПереопределяемый.ТолькоДляАвтора КАК ДоступенВсемПользователям, + | ВариантыОтчетовПереопределяемый.Отчет, + | ВариантыОтчетовПереопределяемый.КлючВарианта, + | ВариантыОтчетовПереопределяемый.ТипОтчета, + | ВариантыОтчетовПереопределяемый.Автор, + | ВЫБОР + | КОГДА &ЭтоОсновнойЯзык + | И ПОДСТРОКА(ВариантыОтчетовПереопределяемый.Описание, 1, 1) <> """" + | ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Описание КАК СТРОКА(1000)) + | КОГДА &ЭтоОсновнойЯзык + | И ПОДСТРОКА(ВариантыОтчетовПереопределяемый.Описание, 1, 1) = """" + | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.Описание, ВариантыРасширенийПереопределяемый.Описание) + | КАК СТРОКА(1000)) + | КОГДА НЕ &ЭтоОсновнойЯзык + | И ПОДСТРОКА(ПредставленияВариантов.Описание, 1, 1) <> """" + | ТОГДА ВЫРАЗИТЬ(ПредставленияВариантов.Описание КАК СТРОКА(1000)) + | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Описание, ПредставленияИзРасширений.Описание), + | ВариантыОтчетовПереопределяемый.Описание) КАК СТРОКА(1000)) + | КОНЕЦ КАК Описание, + | &ИмяОтчета КАК ИмяОтчета, + | СведенияОРасширениях.ПолноеИмяОбъекта КАК ПолноеИмяОтчета, + | ВЫБОР + | КОГДА ВариантыОтчетовПереопределяемый.ПометкаУдаления = ИСТИНА + | ТОГДА 4 + | КОГДА ВариантыОтчетовПереопределяемый.Пользовательский = ЛОЖЬ + | ТОГДА 5 + | ИНАЧЕ 3 + | КОНЕЦ КАК ИндексКартинки + |ИЗ + | Справочник.ВариантыОтчетов КАК ВариантыОтчетовПереопределяемый + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ВариантыКонфигурацииПереопределяемый + | ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ВариантыКонфигурацииПереопределяемый.Ссылка + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ВариантыРасширенийПереопределяемый + | ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ВариантыРасширенийПереопределяемый.Ссылка + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Представления КАК ПредставленияВариантов + | ПО ВариантыОтчетовПереопределяемый.Ссылка = ПредставленияВариантов.Ссылка + | И (ПредставленияВариантов.КодЯзыка = &КодЯзыка) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Представления КАК ПредставленияИзКонфигурации + | ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ПредставленияИзКонфигурации.Ссылка + | И (ПредставленияИзКонфигурации.КодЯзыка = &КодЯзыка) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Представления КАК ПредставленияИзРасширений + | ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ПредставленияИзРасширений.Ссылка + | И (ПредставленияИзРасширений.КодЯзыка = &КодЯзыка) + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК СведенияОРасширениях + | ПО СведенияОРасширениях.ВерсияРасширений = &ВерсияРасширений + | И СведенияОРасширениях.Идентификатор = ВариантыОтчетовПереопределяемый.Отчет + |ГДЕ + | ВариантыОтчетовПереопределяемый.Отчет В (&ДоступныеОтчеты) + | И ВЫБОР + | КОГДА &ЕстьОтборПоВариантам + | ТОГДА ВариантыОтчетовПереопределяемый.Ссылка В (&ВариантыПользователя) + | КОГДА НЕ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (&ОтключенныеВариантыПрограммы) + | ТОГДА ИСТИНА + | ИНАЧЕ ВариантыОтчетовПереопределяемый.Ссылка В + | (ВЫБРАТЬ + | РодителиПереопределяемый.Родитель + | ИЗ + | Справочник.ВариантыОтчетов КАК РодителиПереопределяемый + | ГДЕ + | РодителиПереопределяемый.Отчет В (&ДоступныеОтчеты) + | И НЕ РодителиПереопределяемый.Ссылка В (&ВариантыПользователя)) + | КОНЕЦ"; + Возврат ТекстЗапроса; - + КонецФункции #КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Form.form index dc2ab58b6..ffdfdee46 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Form.form @@ -137,6 +137,47 @@ Normal + + Назначение + 315 + true + true + + true + + + Объект.Назначение + + + НазначениеРасширеннаяПодсказка + 317 + Label + true + true + + Left + + + + НазначениеКонтекстноеМеню + 316 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + Страницы 269 diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Help/ru.html index ee70e7b58..1a4655325 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Help/ru.html @@ -3,14 +3,13 @@

Сведения о варианте отчета

Доступность

-
На вкладке Пользователи с помощью переключателя Доступен можно указать, кому будет виден данный вариант отчета:
-
-
-
С помощью кнопки Подобрать можно выбрать из списка пользователей, которым будет доступен отчет. 
+
На вкладке Пользователи с помощью кнопки Подобрать можно выбрать из списка пользователей, которым будет доступен отчет. 
Для указанных пользователей отчет будет отображаться в панели отчетов, подменю и окне выбора варианта отчета. Остальным пользователям, имеющим права на отчет, он будет доступен из списка Все отчеты, а также в режиме настройки панели отчетов.

diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl index 7eda3dc6b..87fb6c1cc 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl @@ -10,38 +10,38 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + УстановитьУсловноеОформление(); Если Параметры.Свойство("ПараметрыОткрытияФормыОтчета", ПараметрыОткрытияФормыОтчета) Тогда Возврат; КонецЕсли; - + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); - + Доступен = ?(Объект.ТолькоДляАвтора, "Автору", "Всем"); - + ПолныеПраваНаВарианты = ВариантыОтчетов.ПолныеПраваНаВарианты(); ПравоНаЭтотВариант = ПолныеПраваНаВарианты Или Объект.Автор = Пользователи.АвторизованныйПользователь(); Если Не ПравоНаЭтотВариант Тогда ТолькоПросмотр = Истина; Элементы.ДеревоПодсистем.ТолькоПросмотр = Истина; КонецЕсли; - + Если Объект.ПометкаУдаления Тогда Элементы.ДеревоПодсистем.ТолькоПросмотр = Истина; КонецЕсли; - + Если Не Объект.Пользовательский Тогда Элементы.Наименование.ТолькоПросмотр = Истина; Элементы.Автор.АвтоОтметкаНезаполненного = Ложь; Элементы.Доступен.Видимость = Ложь; КонецЕсли; - + ЭтоВнешний = (Объект.ТипОтчета = Перечисления.ТипыОтчетов.Внешний); Если ЭтоВнешний Тогда Элементы.ДеревоПодсистем.ТолькоПросмотр = Истина; КонецЕсли; - + Элементы.Доступен.ТолькоПросмотр = Не ПолныеПраваНаВарианты; Элементы.УведомитьПользователей.Видимость = ПолныеПраваНаВарианты; Элементы.Пользователи.Видимость = ПолныеПраваНаВарианты Или Доступен = "Всем"; @@ -57,36 +57,35 @@ Иначе ИмяОтчета = Объект.Отчет; КонецЕсли; - + ПерезаполнитьДерево(Ложь); - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); КонецЕсли; - + ВариантыОтчетов.ОпределитьПоведениеСпискаПользователейВариантаОтчета(ЭтотОбъект); ВариантыОтчетов.ВывестиПризнакУведомленияПользователейВариантаОтчета(Элементы.УведомитьПользователей); - + КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) - + Если ПараметрыОткрытияФормыОтчета <> Неопределено Тогда Отказ = Истина; ВариантыОтчетовКлиент.ОткрытьФормуОтчета(Неопределено, ПараметрыОткрытияФормыОтчета); КонецЕсли; - + ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект, Ложь); - + КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - Если Источник <> ЭтотОбъект - И (ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияИзменениеВарианта() - Или ИмяСобытия = "Запись_НаборКонстант") Тогда + Если Источник <> ЭтотОбъект И (ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияИзменениеВарианта() Или ИмяСобытия + = "Запись_НаборКонстант") Тогда ПерезаполнитьДерево(Истина); Элементы.ДеревоПодсистем.Развернуть(ДеревоПодсистем.ПолучитьЭлементы()[0].ПолучитьИдентификатор(), Истина); КонецЕсли; @@ -94,9 +93,9 @@ &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) - + СпроситьОУведомленииПользователей(Отказ); - + КонецПроцедуры &НаСервере @@ -105,20 +104,21 @@ // Запись свойств, связанных с предопределенным вариантом отчета. ОписаниеИзменено = Ложь; Если ЭтоПредопределенный Тогда - + ПредопределенныйВариант = ТекущийОбъект.ПредопределенныйВариант.ПолучитьОбъект(); - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ПредопределенныйВариант); КонецЕсли; - - ОписаниеИзменено = Не ПустаяСтрока(Объект.Описание) И НРег(СокрЛП(Объект.Описание)) <> НРег(СокрЛП(ПредопределенныйВариант.Описание)); + + ОписаниеИзменено = Не ПустаяСтрока(Объект.Описание) + И НРег(СокрЛП(Объект.Описание)) <> НРег(СокрЛП(ПредопределенныйВариант.Описание)); Если Не ОписаниеИзменено Тогда ТекущийОбъект.Описание = ""; - Для каждого ПредставлениеВарианта Из ТекущийОбъект.Представления Цикл + Для Каждого ПредставлениеВарианта Из ТекущийОбъект.Представления Цикл ПредставлениеВарианта.Описание = ""; - КонецЦикла; + КонецЦикла; КонецЕсли; КонецЕсли; @@ -130,19 +130,19 @@ ИзмененныеРазделы = ДеревоПриемник.Строки.НайтиСтроки(Новый Структура("Модифицированность", Истина), Истина); КонецЕсли; ВариантыОтчетов.ДеревоПодсистемЗаписать(ТекущийОбъект, ИзмененныеРазделы); - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); КонецЕсли; - + Если ЭтоПредопределенный И Не ОписаниеИзменено Тогда ТекущийОбъект.Представления.Очистить(); КонецЕсли; - + ТекущийОбъект.ДополнительныеСвойства.Вставить("ПользователиВарианта", ПользователиВарианта); ТекущийОбъект.ДополнительныеСвойства.Вставить("УведомитьПользователей", УведомитьПользователей); - + КонецПроцедуры &НаСервере @@ -154,15 +154,15 @@ МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом - + ПерезаполнитьДерево(Ложь); ЗаполнитьИзПредопределенного(ТекущийОбъект); - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); КонецЕсли; - + КонецПроцедуры &НаКлиенте @@ -180,14 +180,14 @@ МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом - + ЗаполнитьИзПредопределенного(ТекущийОбъект); - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); КонецЕсли; - + РегистрыСведений.НастройкиВариантовОтчетов.ПрочитатьНастройкиДоступностиВариантаОтчета( ТекущийОбъект.Ссылка, ПользователиВарианта, ИспользоватьГруппыПользователей, ИспользоватьВнешнихПользователей); @@ -200,27 +200,28 @@ &НаКлиенте Процедура ОписаниеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; - ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(Элемент.ТекстРедактирования, ЭтотОбъект, "Описание", НСтр("ru = 'Описание'")); + ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(Элемент.ТекстРедактирования, ЭтотОбъект, "Описание", + НСтр("ru = 'Описание'")); КонецПроцедуры &НаКлиенте Процедура ДоступенПриИзменении(Элемент) - + Объект.ТолькоДляАвтора = (Доступен = "Автору"); - + ВариантыОтчетовКлиент.ПроверитьПользователейВариантаОтчета(ЭтотОбъект); ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект, Ложь); - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры #КонецОбласти @@ -229,42 +230,41 @@ &НаКлиенте Процедура ПользователиВариантаПриИзменении(Элемент) - + ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект); - + КонецПроцедуры &НаКлиенте Процедура ПользователиВариантаПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) - + Отказ = Истина; - + КонецПроцедуры &НаКлиенте Процедура ПользователиВариантаПередУдалением(Элемент, Отказ) - - Если Не ИспользоватьГруппыПользователей - И Не ИспользоватьВнешнихПользователей Тогда - + + Если Не ИспользоватьГруппыПользователей И Не ИспользоватьВнешнихПользователей Тогда + Отказ = Истина; - + КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ПользователиВариантаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) - + ВариантыОтчетовКлиент.ПользователиВариантаОтчетаОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, СтандартнаяОбработка); - + КонецПроцедуры &НаКлиенте Процедура ПользователиВариантаПометкаПриИзменении(Элемент) - + ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект); - + КонецПроцедуры #КонецОбласти @@ -287,17 +287,17 @@ &НаКлиенте Процедура ПодобратьПользователей(Команда) - + ВариантыОтчетовКлиент.ПодобратьПользователейВариантаОтчета(ЭтотОбъект, ИспользоватьГруппыПользователей); - + КонецПроцедуры &НаКлиенте Процедура ПодобратьГруппыВнешнихПользователей(Команда) - + ВариантыОтчетовКлиент.ПодобратьПользователейВариантаОтчета( ЭтотОбъект, Элементы.ПользователиВариантаГруппаПодобрать.Видимость, Истина); - + КонецПроцедуры #КонецОбласти @@ -306,12 +306,12 @@ &НаСервере Процедура УстановитьУсловноеОформление() - + УсловноеОформление.Элементы.Очистить(); - + ВариантыОтчетов.УстановитьУсловноеОформлениеСпискаПользователейВариантаОтчета(ЭтотОбъект); ВариантыОтчетов.УстановитьУсловноеОформлениеДереваПодсистем(ЭтотОбъект); - + КонецПроцедуры &НаСервере @@ -328,15 +328,15 @@ &НаСервере Процедура ЗаполнитьИзПредопределенного(ВариантОбъект) - + ЭтоПредопределенный = ВариантыОтчетов.ЭтоПредопределенныйВариантОтчета(ВариантОбъект); - + Если Не ЭтоПредопределенный Тогда Возврат; КонецЕсли; - + ПредопределенныйВариант = ВариантОбъект.ПредопределенныйВариант.ПолучитьОбъект(); - + ВариантОбъект.Наименование = ПредопределенныйВариант.Наименование; ВариантОбъект.Описание = ПредопределенныйВариант.Описание; @@ -344,45 +344,42 @@ &НаКлиенте Процедура СпроситьОУведомленииПользователей(Отказ) - - Если Не УведомитьПользователей - Или ВопросОУведомленииПользователейЗадан Тогда - + + Если Не УведомитьПользователей Или ВопросОУведомленииПользователейЗадан Тогда + Возврат; КонецЕсли; - + КоличествоПользователей = КоличествоПользователейВариантОтчета(ПользователиВарианта); - + Если КоличествоПользователей < 10 Тогда Возврат; КонецЕсли; - + Отказ = Истина; ВопросОУведомленииПользователейЗадан = Истина; Обработчик = Новый ОписаниеОповещения("ПослеВопросаОУведомленииПользователей", ЭтотОбъект); ВариантыОтчетовСлужебныйКлиент.СпроситьОУведомленииПользователей(Обработчик, КоличествоПользователей); - + КонецПроцедуры &НаКлиенте -Процедура ПослеВопросаОУведомленииПользователей(Ответ, ДополнительныеПараметры) Экспорт - - Если Ответ = КодВозвратаДиалога.Нет Тогда +Процедура ПослеВопросаОУведомленииПользователей(Ответ, ДополнительныеПараметры) Экспорт + + Если Ответ = КодВозвратаДиалога.Нет Тогда УведомитьПользователей = Ложь; КонецЕсли; - + Записать(); - + КонецПроцедуры &НаСервереБезКонтекста Функция КоличествоПользователейВариантОтчета(ПользователиВарианта) - + Возврат РегистрыСведений.НастройкиВариантовОтчетов.КоличествоПользователейВариантОтчета(ПользователиВарианта); - + КонецФункции -#КонецОбласти - - +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Help/ru.html b/SSL/src/Catalogs/ВариантыОтчетов/Help/ru.html index 856d09dc7..6c1ac5c9a 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Help/ru.html +++ b/SSL/src/Catalogs/ВариантыОтчетов/Help/ru.html @@ -17,7 +17,10 @@
  • Автор - полное имя пользователя, который является автором варианта отчета.
  • -
  • Описание - подробная информация о варианте отчета.
  • Для того чтобы добавить колонки в список, нажмите Еще - Изменить форму (настройки сохраняются):

    +
  • Назначение:
  • +
  • Описание - подробная информация о варианте отчета.
  • Для того чтобы добавить колонки в список, нажмите Еще - Изменить форму (настройки сохраняются):

  • Например, в профиль Аудитор помимо основной роли Чтение физических лиц, разрешающей просмотр сведений о физических лицах, необходимо включить также ряд вспомогательных ролей, обеспечивающих базовые возможности для работы в программе (например, группа ролей Базовые права, Запуск тонкого клиента и т.п.).
  • Ввод профиля групп доступа

    Ввод папки профилей групп доступа

    См. также:

    \ No newline at end of file diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/SMSРассылкаПаролей/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/SMSРассылкаПаролей/Module.bsl index 95d01237c..1c91a163b 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/SMSРассылкаПаролей/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/SMSРассылкаПаролей/Module.bsl @@ -25,12 +25,12 @@ Возврат; КонецЕсли; - Получатели.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресПолучателей)); + Получатели.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресПолучателей)); УдалитьИзВременногоХранилища(Параметры.АдресПолучателей); УстановитьВидТелефонаПолучателей(); - ЗаполнитьТелефоны(); + ЗаполнитьТелефоны(); Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Верх; @@ -56,7 +56,6 @@ УстановитьОтборыВРезультатеРассылкиSMS(); КонецПроцедуры - #КонецОбласти #Область ОбработчикиСобытийЭлементовТаблицыФормыПолучатели diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl index f131a702f..1c9495c7f 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl @@ -33,11 +33,11 @@ КонецЕсли; ТаблицаПолучатели = РеквизитФормыВЗначение("Получатели"); - ЗначениеВРеквизитФормы(ТаблицаПолучатели, "ПолучателиБезОтборов"); + ЗначениеВРеквизитФормы(ТаблицаПолучатели, "ПолучателиБезОтборов"); Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Верх; - Элементы.ЗаписатьИЗакрыть.Отображение = ОтображениеКнопки.Картинка; + Элементы.ЗаписатьИЗакрыть.Отображение = ОтображениеКнопки.Картинка; КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПовторнаяРассылкаОтчетов/Form.form b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПовторнаяРассылкаОтчетов/Form.form new file mode 100644 index 000000000..a47aed0ee --- /dev/null +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПовторнаяРассылкаОтчетов/Form.form @@ -0,0 +1,585 @@ + + + + ЗаголовокДекорация + 26 + true + true + + true + + + ЗаголовокДекорацияРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + + ЗаголовокДекорацияКонтекстноеМеню + 27 + true + + Label + true + true + + Left + + + + ГруппаКоманднаяПанельПолучатели + 29 + + СортироватьСписокПоВозрастанию + 38 + true + true + + true + + + СортироватьСписокПоВозрастаниюРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + Form.Item.Получатели.StandardCommand.SortListAsc + Normal + Auto + true + true + UserCmds + Auto + + + СортироватьСписокПоУбыванию + 40 + true + true + + true + + + СортироватьСписокПоУбываниюРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + Form.Item.Получатели.StandardCommand.SortListDesc + Normal + Auto + true + true + UserCmds + Auto + + + ПоискПоТекущемуЗначению + 31 + true + true + + true + + + ПоискПоТекущемуЗначениюРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + Form.Item.Получатели.StandardCommand.FindByCurrentValue + Normal + Auto + true + true + UserCmds + Auto + + + ВывестиСписок + 36 + true + true + + true + + + ВывестиСписокРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + Form.Item.Получатели.StandardCommand.OutputList + Normal + Auto + true + true + UserCmds + Auto + + + + <key>ru</key> + <value>Поиск</value> + + true + true + + true + + СтрокаПоискаПолучатели + 33 + + СтрокаПоискаПолучателиРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + + СтрокаПоискаПолучателиКонтекстноеМеню + 34 + true + + Получатели + + true + + + true + true + + true + + + <key>ru</key> + <value>Получатели</value> + + + ГруппаКоманднаяПанельПолучателиРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + CommandBar + + Left + + + + Получатели + 1 + true + true + + true + + + Получатели + + None + + ПолучателиПолучатель + 14 + true + true + + true + + + Получатели.Получатель + + + ПолучателиПолучательРасширеннаяПодсказка + 16 + Label + true + true + + Left + + + + ПолучателиПолучательКонтекстноеМеню + 15 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ПолучателиАдресЭлектроннойПочты + 17 + true + true + + true + + + Получатели.АдресЭлектроннойПочты + + + ПолучателиАдресЭлектроннойПочтыРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + + ПолучателиАдресЭлектроннойПочтыКонтекстноеМеню + 18 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ПолучателиКоманднаяПанель + 3 + Left + + + ПолучателиСтрокаПоиска + 5 + + ПолучателиСтрокаПоискаРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + + ПолучателиСтрокаПоискаКонтекстноеМеню + 6 + true + + Получатели + + true + + + + ПолучателиСостояниеПросмотра + 8 + + ПолучателиСостояниеПросмотраРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + + ПолучателиСостояниеПросмотраКонтекстноеМеню + 9 + true + + ViewStatusAddition + Получатели + + true + + + + ПолучателиУправлениеПоиском + 11 + + ПолучателиУправлениеПоискомРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + + ПолучателиУправлениеПоискомКонтекстноеМеню + 12 + true + + SearchControlAddition + Получатели + + true + + + + ПолучателиРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + + ПолучателиКонтекстноеМеню + 2 + true + + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + AsFileRef + true + +
    + Bottom + true + + ФормаКоманднаяПанель + -1 + + ВыполнитьСейчас + 20 + true + true + + true + + + ВыполнитьСейчасРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + Form.Command.ПовторитьРассылку + PictureAndText + true + true + true + UserCmds + Auto + + + Отмена + 22 + + <key>ru</key> + <value>Отмена</value> + + true + true + + true + + + ОтменаРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + Form.StandardCommand.Close + Normal + Auto + true + true + UserCmds + Auto + + Right + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + true + Vertical + true + true + true + auto + true + + Получатели + + <key>ru</key> + <value>Получатели</value> + + 1 + + ValueTable + + + true + + + true + + + Получатель + + <key>ru</key> + <value>Получатель</value> + + 1 + + DefinedType.ПолучательРассылки + + + true + + + true + + + + АдресЭлектроннойПочты + + <key>ru</key> + <value>Адрес электронной почты</value> + + 2 + + String + + + + true + + + true + + + + + РассылкаСсылка + 2 + + CatalogRef.РассылкиОтчетов + + + true + + + true + + + + ПовторитьРассылку + + <key>ru</key> + <value>Повторить рассылку</value> + + 1 + + ru + Повторить рассылку + + + true + + + StdPicture.BusinessProcessStart + + + + ПовторитьРассылку + + + Auto + Auto + + + Ссылка + + CatalogRef.РассылкиОтчетов + + + + + + +
    diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПовторнаяРассылкаОтчетов/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПовторнаяРассылкаОтчетов/Module.bsl new file mode 100644 index 000000000..bf640ea94 --- /dev/null +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПовторнаяРассылкаОтчетов/Module.bsl @@ -0,0 +1,77 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + РассылкаСсылка = Параметры.Ссылка; + СостояниеРассылки = РассылкаОтчетов.ПолучитьСостояниеРассылкиОтчетов(РассылкаСсылка); + + Если СостояниеРассылки.СОшибками Тогда + Элементы.ЗаголовокДекорация.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Рассылка отчетов (%1) была отправлена не всем получателям. Повторить рассылку для получателей:'"), + СостояниеРассылки.ПоследнийЗапускНачало); + Иначе + Элементы.ЗаголовокДекорация.Заголовок = НСтр("ru = 'Повторная рассылка не требуется.'"); + КонецЕсли; + + ЗаполнитьПолучателейПовторнойРассылки(РассылкаСсылка, СостояниеРассылки); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ПовторитьРассылку(Команда) + + Если Получатели.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + МассивРассылок = Новый Массив; + МассивРассылок.Добавить(РассылкаСсылка); + + ПараметрыЗапуска = Новый Структура("МассивРассылок, Форма, ЭтоФормаЭлемента"); + ПараметрыЗапуска.МассивРассылок = МассивРассылок; + ПараметрыЗапуска.Форма = ЭтотОбъект.ВладелецФормы; + ПараметрыЗапуска.ЭтоФормаЭлемента = (ЭтотОбъект.ВладелецФормы = "Справочник.РассылкиОтчетов.Форма.ФормаЭлемента"); + + СписокПолучателей = Новый Соответствие; + Для Каждого СтрокаПолучатель Из Получатели Цикл + СписокПолучателей.Вставить(СтрокаПолучатель.Получатель, СтрокаПолучатель.АдресЭлектроннойПочты); + КонецЦикла; + + РассылкаОтчетовКлиент.ВыполнитьСейчасВФоне(СписокПолучателей, ПараметрыЗапуска); + + ЭтотОбъект.Закрыть(); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ЗаполнитьПолучателейПовторнойРассылки(РассылкаСсылка, СостояниеРассылки) + + ПолучателиПовторнойРассылки = РассылкаОтчетов.ПолучателиПовторнойРассылкиОтчетов(РассылкаСсылка, + СостояниеРассылки.ПоследнийЗапускНачало, СостояниеРассылки.НомерСеанса); + + Для Каждого Получатель Из ПолучателиПовторнойРассылки Цикл + СтрокаПолучатели = Получатели.Добавить(); + СтрокаПолучатели.Получатель = Получатель.Ключ; + СтрокаПолучатели.АдресЭлектроннойПочты = Получатель.Значение; + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl index 9f3c76f61..adce2f7d0 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl @@ -268,7 +268,7 @@ ПараметрыПолучателей.ТипПолучателейРассылки = ИдентификаторОбъектаМетаданных; ПараметрыПолучателей.Получатели = Получатели; - ПолучателиРассылки = РассылкаОтчетов.СформироватьСписокПолучателейРассылки(ПараметрыПолучателей);; + ПолучателиРассылки = РассылкаОтчетов.СформироватьСписокПолучателейРассылки(ПараметрыПолучателей); Для каждого ПолучательРассылки Из Получатели Цикл Если ПолучателиРассылки.Количество() = 0 Тогда Если ПолучательРассылки.Получатель = Неопределено Тогда diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПредварительныйПросмотрПисьма/Form.form b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПредварительныйПросмотрПисьма/Form.form new file mode 100644 index 000000000..0a1e4753e --- /dev/null +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПредварительныйПросмотрПисьма/Form.form @@ -0,0 +1,239 @@ + + + + СтраницыТекстПисьма + 7 + + СтраницаТекстПисьмаHTML + 9 + + HTMLТекст + 1 + true + true + + true + + + Текст + + None + + HTMLТекстРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + HTMLТекстКонтекстноеМеню + 2 + true + + HTMLDocumentField + Enter + true + Left + true + + 50 + true + 10 + true + true + true + + + true + true + + true + + + <key>ru</key> + <value>Страница текст письма HTML</value> + + + СтраницаТекстПисьмаHTMLРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + Page + + Vertical + false + + + + СтраницаТекстПисьмаОбычныйТекст + 11 + + ОбычныйТекст + 4 + true + true + + true + + + Текст + + None + + ОбычныйТекстРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + ОбычныйТекстКонтекстноеМеню + 5 + true + + TextDocumentField + Enter + true + Left + true + + 50 + true + 10 + true + true + true + + + true + true + + true + + + <key>ru</key> + <value>Страница текст письма обычный текст</value> + + + СтраницаТекстПисьмаОбычныйТекстРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + Page + + Vertical + false + + + true + true + + true + + + <key>ru</key> + <value>Страницы текст письма</value> + + None + true + + СтраницыТекстПисьмаРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + Pages + + Auto + + + None + false + + ФормаКоманднаяПанель + -1 + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + auto + true + + Текст + + <key>ru</key> + <value>Текст</value> + + 1 + + String + + + + true + + + true + + + + ТипТекста + + EnumRef.ТипыТекстовЭлектронныхПисем + + + + Текст + + String + + + + + АдресКартинокДляHTML + + String + + + + + НаименованиеРассылки + + String + + + + + + + + diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПредварительныйПросмотрПисьма/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПредварительныйПросмотрПисьма/Module.bsl new file mode 100644 index 000000000..6b37f1a18 --- /dev/null +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПредварительныйПросмотрПисьма/Module.bsl @@ -0,0 +1,140 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Предварительный просмотр: %1'"), Параметры.НаименованиеРассылки); + + Если Параметры.ТипТекста = Перечисления.ТипыТекстовЭлектронныхПисем.HTML Тогда + Элементы.СтраницыТекстПисьма.ТекущаяСтраница = Элементы.СтраницаТекстПисьмаHTML; + Иначе + Элементы.СтраницыТекстПисьма.ТекущаяСтраница = Элементы.СтраницаТекстПисьмаОбычныйТекст; + КонецЕсли; + + Текст = Параметры.Текст; + + Если ЭтоАдресВременногоХранилища(Параметры.АдресКартинокДляHTML) + И Параметры.ТипТекста = Перечисления.ТипыТекстовЭлектронныхПисем.HTML Тогда + КартинкиДляHTML = ПолучитьИзВременногоХранилища(Параметры.АдресКартинокДляHTML); + Текст = ЗаменитьИдентификаторыКартинокНаПутьКФайлам(Текст, КартинкиДляHTML); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Заменяет в тексте HTML ИД картинок вложений на путь к файлам и создает объект документ HTML. +// +// Параметры: +// ТекстHTML - Строка - обрабатываемый текст HTML. +// ТаблицаФайлов - ТаблицаЗначений +// +// Возвращаемое значение: +// ДокументHTML - созданный документ HTML. +// +&НаСервереБезКонтекста +Функция ЗаменитьИдентификаторыКартинокНаПутьКФайлам(ТекстHTML, ТаблицаФайлов) + + ДокументHTML = ОбъектДокументHTMLИзТекстаHTML(ТекстHTML); + + Для каждого ПрисоединенныйФайл Из ТаблицаФайлов Цикл + + Для каждого Картинка Из ДокументHTML.Картинки Цикл + + АтрибутИсточникКартинки = Картинка.Атрибуты.ПолучитьИменованныйЭлемент("src"); + Если АтрибутИсточникКартинки = Неопределено Тогда + Продолжить; + КонецЕсли; + + Если СтрЧислоВхождений(АтрибутИсточникКартинки.Значение, ПрисоединенныйФайл.Идентификатор) > 0 Тогда + + НовыйАтрибутКартинки = АтрибутИсточникКартинки.КлонироватьУзел(Ложь); + Если ЭтоАдресВременногоХранилища(ПрисоединенныйФайл.АдресВоВременномХранилище) Тогда + ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПрисоединенныйФайл.АдресВоВременномХранилище); + ТекстовоеСодержимое = Base64Строка(ДвоичныеДанные); + ТекстовоеСодержимое = "data:image/" + Сред(ПрисоединенныйФайл.Расширение, 2) + ";base64," + + Символы.ПС + ТекстовоеСодержимое; + Иначе + ТекстовоеСодержимое = ""; + КонецЕсли; + + НовыйАтрибутКартинки.ТекстовоеСодержимое = ТекстовоеСодержимое; + Картинка.Атрибуты.УстановитьИменованныйЭлемент(НовыйАтрибутКартинки); + + Прервать; + + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + Возврат ТекстHTMLИзОбъектаДокументHTML(ДокументHTML); + +КонецФункции + +// Получает объект ДокументHTML из текста HTML. +// +// Параметры: +// ТекстHTML - Строка +// +// Возвращаемое значение: +// ДокументHTML - созданный документ HTML. +// +&НаСервереБезКонтекста +Функция ОбъектДокументHTMLИзТекстаHTML(ТекстHTML) + + Построитель = Новый ПостроительDOM; + ЧтениеHTML = Новый ЧтениеHTML; + + НовыйТекстHTML = ТекстHTML; + ПозицияОткрытиеXML = СтрНайти(НовыйТекстHTML," 0 Тогда + + ПозицияЗакрытиеXML = СтрНайти(НовыйТекстHTML,"?>"); + Если ПозицияЗакрытиеXML > 0 Тогда + + НовыйТекстHTML = ЛЕВ(НовыйТекстHTML,ПозицияОткрытиеXML - 1) + ПРАВ(НовыйТекстHTML,СтрДлина(НовыйТекстHTML) - ПозицияЗакрытиеXML -1); + + КонецЕсли; + + КонецЕсли; + + ЧтениеHTML.УстановитьСтроку(ТекстHTML); + + Возврат Построитель.Прочитать(ЧтениеHTML); + +КонецФункции + +// Получает текст HTML из объекта ДокументHTML. +// +// Параметры: +// ДокументHTML - ДокументHTML - документ, из которого будет извлекаться текст. +// +// Возвращаемое значение: +// Строка - текст HTML +// +&НаСервереБезКонтекста +Функция ТекстHTMLИзОбъектаДокументHTML(ДокументHTML) + + ЗаписьDOM = Новый ЗаписьDOM; + ЗаписьHTML = Новый ЗаписьHTML; + ЗаписьHTML.УстановитьСтроку(); + ЗаписьDOM.Записать(ДокументHTML,ЗаписьHTML); + Возврат ЗаписьHTML.Закрыть(); + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl index d2d232307..491b0f78b 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl @@ -88,14 +88,14 @@ Если ЗначениеЗаполнено(Ссылка) Тогда - ШаблонСтроки = НСтр("ru = 'Перейдите к настройкам учетной записи электронной почты для корректировки логина, пароля.'"); + ШаблонСтроки = НСтр("ru = 'Перейдите к настройкам электронной почты для корректировки логина, пароля.'"); НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Ссылка); Строка = СтроковыеФункции.ФорматированнаяСтрока(ШаблонСтроки, НавигационнаяСсылка); Иначе - Строка = НСтр("ru = 'Перейдите к настройкам учетной записи электронной почты для корректировки логина, пароля.'"); + Строка = НСтр("ru = 'Перейдите к настройкам электронной почты для корректировки логина, пароля.'"); КонецЕсли; diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Form.form b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Form.form index 5c65141b5..a12cf3245 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Form.form +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Form.form @@ -82,6 +82,47 @@ Normal + + Автор + 9 + true + true + + true + + + Объект.Автор + + + АвторРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + + АвторКонтекстноеМеню + 10 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ФормаКоманднаяПанель -1 diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl index 635e7a673..5c04f529d 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl @@ -11,12 +11,12 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Объект.Ссылка.Пустая() Тогда - Если Объект.Родитель = Справочники.РассылкиОтчетов.ЛичныеРассылки Тогда - Объект.Родитель = Справочники.РассылкиОтчетов.ПустаяСсылка(); - КонецЕсли; - КонецЕсли; + Элементы.Автор.Доступность = Пользователи.ЭтоПолноправныйПользователь(); + Если Объект.Ссылка.Пустая() Тогда + Объект.Автор = Пользователи.ТекущийПользователь(); + КонецЕсли; + // СтандартныеПодсистемы.ВерсионированиеОбъектов Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов"); @@ -50,4 +50,4 @@ КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Form.form index e01638815..be90ef188 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Form.form @@ -1786,6 +1786,10 @@ OnActivateRow СписокПриАктивизацииСтроки + + Drag + СписокПеретаскивание + СписокСтрокаПоиска 139 diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl index 7ffa2b8d9..033c5ff73 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl @@ -117,6 +117,13 @@ #Область ОбработчикиСобытийЭлементовТаблицыФормыСписок +&НаКлиенте +Процедура СписокПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + Если Строка = ПредопределенноеЗначение("Справочник.РассылкиОтчетов.ЛичныеРассылки") Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; +КонецПроцедуры + &НаКлиенте Процедура СписокПриАктивизацииСтроки(Элемент) @@ -232,6 +239,7 @@ МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список); КонецЕсли; КонецПроцедуры + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды #КонецОбласти diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Form.form index c44327c47..20667dbb0 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Form.form @@ -1,22 +1,257 @@ - ГруппаРассылкаПодготовлена - 339 + ГруппаШапка + 1288 + + ГруппаПовторнаяРассылка + 1290 + + КартинкаПредупреждение + 1292 + + <key>ru</key> + <value>Картинка предупреждение</value> + + true + true + + true + + + КартинкаПредупреждениеРасширеннаяПодсказка + 1294 + Label + true + true + + Left + + + + КартинкаПредупреждениеКонтекстноеМеню + 1293 + true + + true + true + + + CommonPicture.Предупреждение + + AsFileRef + + + + ЗаголовокПовторнойРассылки + 1295 + true + true + + true + + + ЗаголовокПовторнойРассылкиРасширеннаяПодсказка + 1297 + Label + true + true + + Left + + + + ЗаголовокПовторнойРассылкиКонтекстноеМеню + 1296 + true + + Label + + Left + 1 + + + + ПовторнаяРассылка + 1298 + true + true + + true + + + ПовторнаяРассылкаРасширеннаяПодсказка + 1299 + Label + true + true + + Left + + + Hyperlink + Form.Command.ПовторнаяРассылка + Normal + Auto + true + true + UserCmds + Auto + + true + + true + + + <key>ru</key> + <value>Группа повторная рассылка</value> + + + ГруппаПовторнаяРассылкаРасширеннаяПодсказка + 1291 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ГруппаРассылкаПодготовлена + 339 + + Наименование + 1 + true + true + + true + + + Объект.Description + + + НаименованиеExtendedTooltip + 701 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + true + Auto + true + Left + true + + 55 + true + true + true + true + true + true + Normal + + + + Подготовлена + 337 + true + true + + true + + + Объект.Подготовлена + + Right + + OnChange + ПодготовленаПриИзменении + + + ПодготовленаExtendedTooltip + 702 + Label + true + true + + Left + + + + ПодготовленаКонтекстноеМеню + 338 + true + + CheckBoxField + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Рассылка подготовлена</value> + + + ГруппаРассылкаПодготовленаExtendedTooltip + 700 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + true + true + Auto + Auto + + - Наименование - 1 + Родитель + 382 true true true - Объект.Description + Объект.Parent - НаименованиеExtendedTooltip - 701 + РодительExtendedTooltip + 940 Label true true @@ -25,246 +260,52 @@ - НаименованиеКонтекстноеМеню - 2 + РодительКонтекстноеМеню + 383 true InputField - true - Auto + Enter true Left true + 10 55 true true - true + false true true true Normal - - Подготовлена - 337 - true - true - - true - - - Объект.Подготовлена - - Right - - OnChange - ПодготовленаПриИзменении - - - ПодготовленаExtendedTooltip - 702 - Label - true - true - - Left - - - - ПодготовленаКонтекстноеМеню - 338 - true - - CheckBoxField - Enter - true - Left - true - - - true - true - - true - - - <key>ru</key> - <value>Рассылка подготовлена</value> - - - ГруппаРассылкаПодготовленаExtendedTooltip - 700 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - - - ГруппаВидРассылки - 538 - - ВидРассылки - 536 - - <key>ru</key> - <value>Отправлять</value> - - true - true - - true - - - ВидРассылки - - - OnChange - ВидРассылкиПриИзменении - - - ВидРассылкиExtendedTooltip - 704 - Label - true - true - - Left - - - - ВидРассылкиКонтекстноеМеню - 537 - true - - InputField - Enter - true - Left - true - - 25 - true - true - false - false - false - true - OnActivate - true - true - - - ru - Отчеты указанным получателям - - - Общая - - - - - ru - Свой отчет для каждого получателя - - - Персонализирована - - - - - ru - Только мне (личная рассылка автора) - - - Личная - - - - Style.ФонУправляющегоПоля - - Normal - - - ВидыРассылки - 597 - - ВидыРассылкиЛичная - 600 - - ВидПочтовогоАдресаАвтора - 574 - true - true - - true - - - Объект.ВидПочтовогоАдресаПолучателей - - - ВидПочтовогоАдресаАвтораExtendedTooltip - 707 - Label - true - true - - Left - - - - ВидПочтовогоАдресаАвтораКонтекстноеМеню - 575 - true - - InputField - true - Enter - true - Left - true - - - Opening - ВидПочтовогоАдресаАвтораОткрытие - - 25 - true - true - false - false - true - true - true - true - Normal - - + ГруппаВидРассылки + 538 + + ВидРассылки + 536 + + <key>ru</key> + <value>Отправлять</value> + true true true - - <key>ru</key> - <value>Виды рассылки личная</value> - + + ВидРассылки + + + OnChange + ВидРассылкиПриИзменении + - ВидыРассылкиЛичнаяExtendedTooltip - 706 + ВидРассылкиExtendedTooltip + 704 Label true true @@ -272,34 +313,127 @@ Left - Page - - Vertical - auto - false + + ВидРассылкиКонтекстноеМеню + 537 + true + + InputField + Enter + true + Left + true + + 25 + true + true + false + false + false + true + OnActivate + true + true + + + ru + Отчеты указанным получателям + + + Общая + + + + + ru + Свой отчет для каждого получателя + + + Персонализирована + + + + + ru + Только мне (личная рассылка автора) + + + Личная + + + + Style.ФонУправляющегоПоля + + Normal - ВидыРассылкиДляПолучателей - 598 - - ТипПолучателейРассылки - 132 + ВидыРассылки + 597 + + ВидыРассылкиЛичная + 600 + + ВидПочтовогоАдресаАвтора + 574 + true + true + + true + + + Объект.ВидПочтовогоАдресаПолучателей + + + ВидПочтовогоАдресаАвтораExtendedTooltip + 707 + Label + true + true + + Left + + + + ВидПочтовогоАдресаАвтораКонтекстноеМеню + 575 + true + + InputField + true + Enter + true + Left + true + + + Opening + ВидПочтовогоАдресаАвтораОткрытие + + 25 + true + true + false + false + true + true + true + true + Normal + + true true true - - ТипПолучателейРассылки - - - OnChange - ТипПолучателейРассылкиПриИзменении - + + <key>ru</key> + <value>Виды рассылки личная</value> + - ТипПолучателейРассылкиExtendedTooltip - 709 + ВидыРассылкиЛичнаяExtendedTooltip + 706 Label true true @@ -307,34 +441,95 @@ Left - - ТипПолучателейРассылкиКонтекстноеМеню - 133 - true - - InputField - true - Enter - true - Left - true - + Page + + Vertical + auto + false + + + + ВидыРассылкиДляПолучателей + 598 + + ТипПолучателейРассылки + 132 + true + true + + true + + + ТипПолучателейРассылки + - Clearing - ТипПолучателейРассылкиОчистка + OnChange + ТипПолучателейРассылкиПриИзменении - - ChoiceProcessing - ТипПолучателейРассылкиОбработкаВыбора - - 25 + + ТипПолучателейРассылкиExtendedTooltip + 709 + Label + true + true + + Left + + + + ТипПолучателейРассылкиКонтекстноеМеню + 133 + true + + InputField + true + Enter + true + Left + true + + + Clearing + ТипПолучателейРассылкиОчистка + + + ChoiceProcessing + ТипПолучателейРассылкиОбработкаВыбора + + 25 + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Виды рассылки для получателей</value> + + + ВидыРассылкиДляПолучателейExtendedTooltip + 708 + Label + true true - true - true - true - true - true - Normal + + Left + + + Page + + Vertical + auto + false true @@ -344,11 +539,11 @@ <key>ru</key> - <value>Виды рассылки для получателей</value> + <value>Виды рассылки</value> - ВидыРассылкиДляПолучателейExtendedTooltip - 708 + ВидыРассылкиExtendedTooltip + 705 Label true true @@ -356,11 +551,9 @@ Left - Page - - Vertical - auto - false + Pages + + Auto true @@ -370,11 +563,11 @@ <key>ru</key> - <value>Виды рассылки</value> + <value>Вид рассылки</value> - ВидыРассылкиExtendedTooltip - 705 + ГруппаВидРассылкиExtendedTooltip + 703 Label true true @@ -382,8 +575,12 @@ Left - Pages - + UsualGroup + + HorizontalIfPossible + true + true + Auto Auto @@ -394,11 +591,11 @@ <key>ru</key> - <value>Вид рассылки</value> + <value>Шапка</value> - ГруппаВидРассылкиExtendedTooltip - 703 + ГруппаШапкаРасширеннаяПодсказка + 1289 Label true true @@ -408,7 +605,9 @@ UsualGroup - HorizontalIfPossible + Vertical + Auto + NormalSeparation true true Auto @@ -4169,6 +4368,7 @@ true InputField + true Auto true Left @@ -4177,6 +4377,7 @@ true true true + true true true true @@ -4216,563 +4417,30 @@ СтраницаДоставка 79 - ДругиеСпособыДоставки - 630 - - Публиковать - 631 - true - true - - true - - - Публиковать - - Right - - OnChange - ПубликоватьПриИзменении - - - ПубликоватьExtendedTooltip - 810 - Label - true - true - - Left - - - - ПубликоватьКонтекстноеМеню - 632 - true - - CheckBoxField - Enter - true - Left - true - - - - ДругойСпособДоставки - 615 - true - true - - true - - - ДругойСпособДоставки - - None - - OnChange - ДругойСпособДоставкиПриИзменении - - - ДругойСпособДоставкиExtendedTooltip - 811 - Label - true - true - - Left - - - - ДругойСпособДоставкиКонтекстноеМеню - 616 - true - - InputField - Enter - true - Left - true - - - TextEditEnd - ДругойСпособДоставкиОкончаниеВводаТекста - - 13 - true - true - false - true - false - false - false - true - OnActivate - true - true - - - ru - В папку - - - ИспользоватьПапку - - - - - ru - В сетевой каталог - - - ИспользоватьСетевойКаталог - - - - - ru - На FTP ресурс - - - ИспользоватьFTPРесурс - - - Normal - - + ДоставкаЛево + 1263 - ПараметрыДоставки - 617 - - ИспользоватьПапку - 288 - - Папка - 214 - true - true - - true - - - Объект.Папка - - None - - ПапкаExtendedTooltip - 814 - Label - true - true - - Left - - - - ПапкаКонтекстноеМеню - 215 - true - - InputField - true - Enter - true - Left - true - - - Opening - ПапкаОткрытие - - - ChoiceProcessing - ПапкаОбработкаВыбора - - true - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Использовать папку</value> - - - ИспользоватьПапкуExtendedTooltip - 813 - Label - true - true - - Left - - - Page - - AlwaysHorizontal - auto - false - - - - ИспользоватьСетевойКаталог - 289 - - СетевойКаталогWindows - 216 - - <key>ru</key> - <value>Windows</value> - - true - true - - true - - - Объект.СетевойКаталогWindows - - - OnChange - СетевойКаталогWindowsПриИзменении - - - СетевойКаталогWindowsExtendedTooltip - 816 - Label - true - true - - Left - - - - СетевойКаталогWindowsКонтекстноеМеню - 217 - true - - InputField - true - Enter - true - Left - true - - true - true - true - false - false - false - false - false - true - true - true - true - Normal - - - - СетевойКаталогLinux - 692 - - <key>ru</key> - <value>Linux</value> - - true - true - - true - - - Объект.СетевойКаталогLinux - - - OnChange - СетевойКаталогLinuxПриИзменении - - - СетевойКаталогLinuxExtendedTooltip - 817 - Label - true - true - - Left - - - - СетевойКаталогLinuxКонтекстноеМеню - 693 - true - - InputField - true - Enter - true - Left - true - - true - true - true - false - false - false - false - false - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Использовать сетевой каталог</value> - - - ИспользоватьСетевойКаталогExtendedTooltip - 815 - Label - true - true - - Left - - - Page - - AlwaysHorizontal - auto - false - - - - ИспользоватьFTPРесурс - 291 - - FTPСерверИКаталог - 388 - true - true - - true - - - FTPСерверИКаталог - - None - - OnChange - FTPСерверИКаталогПриИзменении - - - FTPСерверИКаталогExtendedTooltip - 819 - Label - true - true - - Left - - - - FTPСерверИКаталогКонтекстноеМеню - 389 - true - - InputField - true - Enter - true - Left - true - - - StartChoice - FTPСерверИКаталогНачалоВыбора - - - Opening - FTPСерверИКаталогОткрытие - - - Clearing - FTPСерверИКаталогОчистка - - - ChoiceProcessing - FTPСерверИКаталогОбработкаВыбора - - true - true - false - true - true - true - true - true - Normal - - ru - ftp://сервер/каталог/ - - - - true - true - - true - - - <key>ru</key> - <value>Использовать FTP ресурс</value> - - - ИспользоватьFTPРесурсExtendedTooltip - 818 - Label - true - true - - Left - - - Page - - HorizontalIfPossible - auto - false - - - true - true - - true - - - <key>ru</key> - <value>Параметры доставки</value> - - - ПараметрыДоставкиExtendedTooltip - 812 - Label - true - true - - Left - - - Pages - - Auto - - - - ВключатьДатуВИмяФайла - 1187 - true - true - - true - - - Объект.ВключатьДатуВИмяФайла - - Right - - ВключатьДатуВИмяФайлаРасширеннаяПодсказка - 1189 - Label - true - true - - Left - - - - ВключатьДатуВИмяФайлаКонтекстноеМеню - 1188 - true - - CheckBoxField - Enter - true - Left - true - - - true - true - - true - - - <key>ru</key> - <value>Другие способы доставки</value> - - - ДругиеСпособыДоставкиExtendedTooltip - 809 - Label - true - true - - Left - - - UsualGroup - - AlwaysHorizontal - true - true - Auto - Auto - - - - ДоставкаПоЭлектроннойПочте - 668 - - ГруппаДоставкаПоЭлектроннойПочте - 985 + ДругиеСпособыДоставки + 630 - ИспользоватьЭлектроннуюПочту - 559 + Публиковать + 631 true true true - Объект.ИспользоватьЭлектроннуюПочту + Публиковать Right OnChange - ИспользоватьЭлектроннуюПочтуПриИзменении + ПубликоватьПриИзменении - ИспользоватьЭлектроннуюПочтуExtendedTooltip - 823 + ПубликоватьExtendedTooltip + 810 Label true true @@ -4781,8 +4449,8 @@ - ИспользоватьЭлектроннуюПочтуКонтекстноеМеню - 560 + ПубликоватьКонтекстноеМеню + 632 true CheckBoxField @@ -4793,25 +4461,24 @@ - ПолучателиРассылки - 982 + ДругойСпособДоставки + 615 true true true - ПолучателиРассылки + ДругойСпособДоставки None - - ru - Указать список получателей рассылки - - Balloon + + OnChange + ДругойСпособДоставкиПриИзменении + - ПолучателиРассылкиРасширеннаяПодсказка - 984 + ДругойСпособДоставкиExtendedTooltip + 811 Label true true @@ -4820,122 +4487,397 @@ - ПолучателиРассылкиКонтекстноеМеню - 983 - true - - LabelField - Enter - true - Left - true - - - Click - ПолучателиРассылкиНажатие - - true - true - - - true - true - - true - - - <key>ru</key> - <value>Доставка по электронной почте</value> - - - ГруппаДоставкаПоЭлектроннойПочтеРасширеннаяПодсказка - 986 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - - - ГруппаУчетнаяЗапись - 645 - - УчетнаяЗапись - 31 - true - true - - true - - - Объект.УчетнаяЗапись - - - УчетнаяЗаписьExtendedTooltip - 830 - Label - true - true - - Left - - - - УчетнаяЗаписьКонтекстноеМеню - 32 + ДругойСпособДоставкиКонтекстноеМеню + 616 true InputField - true - Auto + Enter true Left true + + TextEditEnd + ДругойСпособДоставкиОкончаниеВводаТекста + + 13 true true + false true - true - true + false + false + false + true + OnActivate true true + + + ru + В папку + + + ИспользоватьПапку + + + + + ru + В сетевой каталог + + + ИспользоватьСетевойКаталог + + + + + ru + На FTP ресурс + + + ИспользоватьFTPРесурс + + Normal - - ТолькоУведомить - 413 - - <key>ru</key> - <value>Отправлять только уведомления</value> - + + ПараметрыДоставки + 617 + + ИспользоватьПапку + 288 + + Папка + 214 + true + true + + true + + + Объект.Папка + + None + + ПапкаExtendedTooltip + 814 + Label + true + true + + Left + + + + ПапкаКонтекстноеМеню + 215 + true + + InputField + true + Enter + true + Left + true + + + Opening + ПапкаОткрытие + + + ChoiceProcessing + ПапкаОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Использовать папку</value> + + + ИспользоватьПапкуExtendedTooltip + 813 + Label + true + true + + Left + + + Page + + AlwaysHorizontal + auto + false + + + + ИспользоватьСетевойКаталог + 289 + + СетевойКаталогWindows + 216 + + <key>ru</key> + <value>Windows</value> + + true + true + + true + + + Объект.СетевойКаталогWindows + + + OnChange + СетевойКаталогWindowsПриИзменении + + + СетевойКаталогWindowsExtendedTooltip + 816 + Label + true + true + + Left + + + + СетевойКаталогWindowsКонтекстноеМеню + 217 + true + + InputField + true + Enter + true + Left + true + + true + true + true + false + false + false + false + false + true + true + true + true + Normal + + + + СетевойКаталогLinux + 692 + + <key>ru</key> + <value>Linux</value> + + true + true + + true + + + Объект.СетевойКаталогLinux + + + OnChange + СетевойКаталогLinuxПриИзменении + + + СетевойКаталогLinuxExtendedTooltip + 817 + Label + true + true + + Left + + + + СетевойКаталогLinuxКонтекстноеМеню + 693 + true + + InputField + true + Enter + true + Left + true + + true + true + true + false + false + false + false + false + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Использовать сетевой каталог</value> + + + ИспользоватьСетевойКаталогExtendedTooltip + 815 + Label + true + true + + Left + + + Page + + AlwaysHorizontal + auto + false + + + + ИспользоватьFTPРесурс + 291 + + FTPСерверИКаталог + 388 + true + true + + true + + + FTPСерверИКаталог + + None + + OnChange + FTPСерверИКаталогПриИзменении + + + FTPСерверИКаталогExtendedTooltip + 819 + Label + true + true + + Left + + + + FTPСерверИКаталогКонтекстноеМеню + 389 + true + + InputField + true + Enter + true + Left + true + + + StartChoice + FTPСерверИКаталогНачалоВыбора + + + Opening + FTPСерверИКаталогОткрытие + + + Clearing + FTPСерверИКаталогОчистка + + + ChoiceProcessing + FTPСерверИКаталогОбработкаВыбора + + true + true + false + true + true + true + true + true + Normal + + ru + ftp://сервер/каталог/ + + + + true + true + + true + + + <key>ru</key> + <value>Использовать FTP ресурс</value> + + + ИспользоватьFTPРесурсExtendedTooltip + 818 + Label + true + true + + Left + + + Page + + HorizontalIfPossible + auto + false + + true true true - - Объект.ТолькоУведомить - - Right - Button - - OnChange - ТолькоУведомитьПриИзменении - + + <key>ru</key> + <value>Параметры доставки</value> + - ТолькоУведомитьExtendedTooltip - 826 + ПараметрыДоставкиExtendedTooltip + 812 Label true true @@ -4943,18 +4885,10 @@ Left - - ТолькоУведомитьКонтекстноеМеню - 414 - true - - CheckBoxField - Center - Enter - true - Left - true - + Pages + + Auto + true true @@ -4963,11 +4897,11 @@ <key>ru</key> - <value>Учетная запись</value> + <value>Другие способы доставки</value> - ГруппаУчетнаяЗаписьExtendedTooltip - 829 + ДругиеСпособыДоставкиExtendedTooltip + 809 Label true true @@ -4977,7 +4911,7 @@ UsualGroup - HorizontalIfPossible + AlwaysHorizontal true true Auto @@ -4985,25 +4919,31 @@ - ПараметрыПисьма - 330 + ДоставкаПоЭлектроннойПочте + 668 - ТемаИТекстПисьма - 609 + ГруппаДоставкаПоЭлектроннойПочте + 985 - ТемаПисьма - 27 + ИспользоватьЭлектроннуюПочту + 559 true true true - Объект.ТемаПисьма + Объект.ИспользоватьЭлектроннуюПочту + Right + 2 + + OnChange + ИспользоватьЭлектроннуюПочтуПриИзменении + - ТемаПисьмаExtendedTooltip - 842 + ИспользоватьЭлектроннуюПочтуExtendedTooltip + 823 Label true true @@ -5012,22 +4952,568 @@ - ТемаПисьмаКонтекстноеМеню - 28 + ИспользоватьЭлектроннуюПочтуКонтекстноеМеню + 560 + true + + CheckBoxField + Enter + true + Left + true + + + + ПолучателиРассылки + 982 + true + true + + true + + + ПолучателиРассылки + + None + + ru + Указать список получателей рассылки + + Balloon + + ПолучателиРассылкиРасширеннаяПодсказка + 984 + Label + true + true + + Left + + + + ПолучателиРассылкиКонтекстноеМеню + 983 + true + + LabelField + Enter + true + Left + true + + + Click + ПолучателиРассылкиНажатие + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Доставка по электронной почте</value> + + + ГруппаДоставкаПоЭлектроннойПочтеРасширеннаяПодсказка + 986 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + true + true + Auto + Auto + + + + ГруппаУчетнаяЗапись + 645 + + УчетнаяЗапись + 31 + true + true + + true + + + Объект.УчетнаяЗапись + + + УчетнаяЗаписьExtendedTooltip + 830 + Label + true + true + + Left + + + + УчетнаяЗаписьКонтекстноеМеню + 32 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ТолькоУведомить + 413 + + <key>ru</key> + <value>Отправлять только уведомления</value> + + true + true + + true + + + Объект.ТолькоУведомить + + Right + Button + + OnChange + ТолькоУведомитьПриИзменении + + + ТолькоУведомитьExtendedTooltip + 826 + Label + true + true + + Left + + + + ТолькоУведомитьКонтекстноеМеню + 414 + true + + CheckBoxField + Center + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Почта</value> + + + ГруппаУчетнаяЗаписьExtendedTooltip + 829 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + true + true + Auto + Auto + + + + ПараметрыПисьма + 330 + + ТемаИТекстПисьма + 609 + + ГруппаТемаПисьма + 1251 + + ТемаПисьма + 27 + true + true + + true + + + Объект.ТемаПисьма + + + ТемаПисьмаExtendedTooltip + 842 + Label + true + true + + Left + + + + ТемаПисьмаКонтекстноеМеню + 28 + + ТемаПисьмаКонтекстноеМенюПодменюПараметр + 694 + + ТемаПисьмаКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылки + 172 + true + true + + true + + + ТемаПисьмаКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылкиExtendedTooltip + 835 + Label + true + true + + Left + + + Form.Command.ДобавитьИзменитьШаблонДатыРассылки + Normal + Auto + true + true + UserCmds + Auto + + + ТемаПисьмаКонтекстноеМенюДобавитьШаблонАвтора + 267 + true + true + + true + + + ТемаПисьмаКонтекстноеМенюДобавитьШаблонАвтораExtendedTooltip + 836 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонАвтора + Normal + Auto + true + true + UserCmds + Auto + + + ТемаПисьмаКонтекстноеМенюДобавитьШаблонПолучателя + 173 + true + true + + true + + + ТемаПисьмаКонтекстноеМенюДобавитьШаблонПолучателяExtendedTooltip + 837 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонПолучателя + Normal + Auto + true + true + UserCmds + Auto + + + ТемаПисьмаКонтекстноеМенюДобавитьШаблонРассылки + 268 + true + true + + true + + + ТемаПисьмаКонтекстноеМенюДобавитьШаблонРассылкиExtendedTooltip + 838 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонНаименованияРассылки + Normal + Auto + true + true + UserCmds + Auto + + + ТемаПисьмаКонтекстноеМенюДобавитьШаблонСистемы + 402 + true + true + + true + + + ТемаПисьмаКонтекстноеМенюДобавитьШаблонСистемыExtendedTooltip + 839 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонСистемы + Normal + Auto + true + true + UserCmds + Auto + + + ТемаПисьмаКонтекстноеМенюДобавитьШаблонПоУмолчанию + 671 + true + true + + true + + + ТемаПисьмаКонтекстноеМенюДобавитьШаблонПоУмолчаниюРасширеннаяПодсказка + 840 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонПоУмолчанию + Normal + Auto + true + true + UserCmds + Auto + + + ТемаПисьмаКонтекстноеМенюПредпросмотрШаблона + 277 + true + true + + true + + + ТемаПисьмаКонтекстноеМенюПредпросмотрШаблонаExtendedTooltip + 841 + Label + true + true + + Left + + + Form.Command.ПредпросмотрШаблона + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Параметр</value> + + + ТемаПисьмаКонтекстноеМенюПодменюПараметрExtendedTooltip + 834 + Label + true + true + + Left + + + Popup + + + StdPicture.DataCompositionConditionalAppearance + + Auto + Normal + + + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + Normal + + - ТемаПисьмаКонтекстноеМенюПодменюПараметр - 694 - - ТемаПисьмаКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылки - 172 + КоманднаяПанельТемаПисьма + 1253 + + ГруппаВажность + 1255 + + ВажностьВысокая + 1257 + true + true + + true + + + ВажностьВысокаяРасширеннаяПодсказка + 1258 + Label + true + true + + Left + + + Form.Command.ВажностьВысокая + Normal + Auto + true + true + UserCmds + Auto + + + ВажностьОбычная + 1259 + true + true + + true + + + ВажностьОбычнаяРасширеннаяПодсказка + 1260 + Label + true + true + + Left + + + Form.Command.ВажностьОбычная + Normal + Auto + true + true + UserCmds + Auto + + + ВажностьНизкая + 1261 + true + true + + true + + + ВажностьНизкаяРасширеннаяПодсказка + 1262 + Label + true + true + + Left + + + Form.Command.ВажностьНизкая + Normal + Auto + true + true + UserCmds + Auto + true true true + + <key>ru</key> + <value>Важность</value> + + true - ТемаПисьмаКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылкиExtendedTooltip - 835 + ГруппаВажностьРасширеннаяПодсказка + 1256 Label true true @@ -5035,169 +5521,14 @@ Left - Form.Command.ДобавитьИзменитьШаблонДатыРассылки - Normal - Auto - true - true - UserCmds - Auto - - - ТемаПисьмаКонтекстноеМенюДобавитьШаблонАвтора - 267 - true - true - - true - - - ТемаПисьмаКонтекстноеМенюДобавитьШаблонАвтораExtendedTooltip - 836 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонАвтора - Normal - Auto - true - true - UserCmds - Auto - - - ТемаПисьмаКонтекстноеМенюДобавитьШаблонПолучателя - 173 - true - true - - true - - - ТемаПисьмаКонтекстноеМенюДобавитьШаблонПолучателяExtendedTooltip - 837 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонПолучателя - Normal - Auto - true - true - UserCmds - Auto - - - ТемаПисьмаКонтекстноеМенюДобавитьШаблонРассылки - 268 - true - true - - true - - - ТемаПисьмаКонтекстноеМенюДобавитьШаблонРассылкиExtendedTooltip - 838 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонНаименованияРассылки - Normal - Auto - true - true - UserCmds - Auto - - - ТемаПисьмаКонтекстноеМенюДобавитьШаблонСистемы - 402 - true - true - - true - - - ТемаПисьмаКонтекстноеМенюДобавитьШаблонСистемыExtendedTooltip - 839 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонСистемы - Normal - Auto - true - true - UserCmds - Auto - - - ТемаПисьмаКонтекстноеМенюДобавитьШаблонПоУмолчанию - 671 - true - true - - true - - - ТемаПисьмаКонтекстноеМенюДобавитьШаблонПоУмолчаниюРасширеннаяПодсказка - 840 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонПоУмолчанию - Normal - Auto - true - true - UserCmds - Auto - - - ТемаПисьмаКонтекстноеМенюПредпросмотрШаблона - 277 - true - true - - true - - - ТемаПисьмаКонтекстноеМенюПредпросмотрШаблонаExtendedTooltip - 841 - Label - true - true - - Left - - - Form.Command.ПредпросмотрШаблона - Normal - Auto - true - true - UserCmds - Auto + Popup + + + CommonPicture.ВажностьНеЗадана + + Picture + Normal + true true @@ -5206,11 +5537,17 @@ <key>ru</key> - <value>Параметр</value> + <value>Командная панель тема письма</value> + + ru + Командная панель тема + + 5 + false - ТемаПисьмаКонтекстноеМенюПодменюПараметрExtendedTooltip - 834 + КоманднаяПанельТемаПисьмаРасширеннаяПодсказка + 1254 Label true true @@ -5218,54 +5555,276 @@ Left - Popup - - - StdPicture.DataCompositionConditionalAppearance - - Auto - Normal + CommandBar + + Left - true - - InputField - Auto - true - Left - true - - true - true - true - true - true - Normal - - - - СтраницыТекстПисьма - 127 + true + true + + true + + + <key>ru</key> + <value>Группа тема письма</value> + + + ГруппаТемаПисьмаРасширеннаяПодсказка + 1252 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + - СтраницыТекстПисьмаHTML - 128 + СтраницыТекстПисьма + 127 - КоманднаяПанельТекстПисьмаФорматированныйДокумент - 131 + СтраницыТекстПисьмаHTML + 128 - ТекстПисьмаФорматированныйДокументДобавитьПараметрШаблона - 301 - - ТекстПисьмаФорматированныйДокументДобавитьИлиИзменитьШаблонДатыРассылки - 303 + КоманднаяПанельТекстПисьмаФорматированныйДокумент + 131 + + ТекстПисьмаФорматированныйДокументДобавитьПараметрШаблона + 301 + + ТекстПисьмаФорматированныйДокументДобавитьИлиИзменитьШаблонДатыРассылки + 303 + true + true + + true + + + ТекстПисьмаФорматированныйДокументДобавитьИлиИзменитьШаблонДатыРассылкиExtendedTooltip + 847 + Label + true + true + + Left + + + Form.Command.ДобавитьИзменитьШаблонДатыРассылки + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонАвтора + 304 + true + true + + true + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонАвтораExtendedTooltip + 848 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонАвтора + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонПолучателя + 305 + true + true + + true + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонПолучателяExtendedTooltip + 849 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонПолучателя + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонРассылки + 306 + true + true + + true + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонРассылкиExtendedTooltip + 850 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонНаименованияРассылки + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонСформированныхОтчетов + 307 + true + true + + true + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонСформированныхОтчетовExtendedTooltip + 851 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонСформированныхОтчетов + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонСистемы + 406 + true + true + + true + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонСистемыExtendedTooltip + 852 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонСистемы + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонСпособаДоставки + 419 + true + true + + true + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонСпособаДоставкиExtendedTooltip + 853 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонСпособаДоставки + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонПоУмолчанию + 698 + true + true + + true + + + ТекстПисьмаФорматированныйДокументДобавитьШаблонПоУмолчаниюExtendedTooltip + 854 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонПоУмолчанию + Normal + Auto + true + true + UserCmds + Auto + true true true + + <key>ru</key> + <value>Параметр</value> + + + ru + Добавить параметр в текст письма + - ТекстПисьмаФорматированныйДокументДобавитьИлиИзменитьШаблонДатыРассылкиExtendedTooltip - 847 + ТекстПисьмаФорматированныйДокументДобавитьПараметрШаблонаExtendedTooltip + 846 Label true true @@ -5273,25 +5832,84 @@ Left - Form.Command.ДобавитьИзменитьШаблонДатыРассылки - Normal - Auto - true - true - UserCmds - Auto + Popup + + Auto + Normal + - - ТекстПисьмаФорматированныйДокументДобавитьШаблонАвтора - 304 + + HTML + 605 + + ИзменитьТипТекстаНаHTMLПометка + 628 + true + true + + true + + + ИзменитьТипТекстаНаHTMLПометкаExtendedTooltip + 857 + Label + true + true + + Left + + + Form.Command.ИзменитьТипТекстаНаHTML + Normal + Auto + true + true + UserCmds + true + Auto + + + ИзменитьТипТекстаНаОбычный + 606 + true + true + + true + + + ИзменитьТипТекстаНаОбычныйExtendedTooltip + 858 + Label + true + true + + Left + + + Form.Command.ИзменитьТипТекстаНаОбычный + Normal + Auto + true + true + UserCmds + Auto + true true true + + <key>ru</key> + <value>HTML</value> + + + ru + Сменить формат письма + - ТекстПисьмаФорматированныйДокументДобавитьШаблонАвтораExtendedTooltip - 848 + HTMLExtendedTooltip + 856 Label true true @@ -5299,169 +5917,11 @@ Left - Form.Command.ДобавитьШаблонАвтора - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонПолучателя - 305 - true - true - - true - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонПолучателяExtendedTooltip - 849 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонПолучателя - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонРассылки - 306 - true - true - - true - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонРассылкиExtendedTooltip - 850 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонНаименованияРассылки - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонСформированныхОтчетов - 307 - true - true - - true - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонСформированныхОтчетовExtendedTooltip - 851 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонСформированныхОтчетов - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонСистемы - 406 - true - true - - true - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонСистемыExtendedTooltip - 852 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонСистемы - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонСпособаДоставки - 419 - true - true - - true - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонСпособаДоставкиExtendedTooltip - 853 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонСпособаДоставки - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонПоУмолчанию - 698 - true - true - - true - - - ТекстПисьмаФорматированныйДокументДобавитьШаблонПоУмолчаниюExtendedTooltip - 854 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонПоУмолчанию - Normal - Auto - true - true - UserCmds - Auto + Popup + + Auto + Normal + ТекстПисьмаФорматированныйДокументПредпросмотрШаблона @@ -5483,11 +5943,226 @@ Form.Command.ПредпросмотрШаблона Normal + Picture + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументКартинка + 174 + true + true + + true + + + ТекстПисьмаФорматированныйДокументКартинкаExtendedTooltip + 859 + Label + true + true + + Left + + + Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.Picture + Normal Auto true true UserCmds Auto + InCommandBarAndInAdditionalSubmenu + + + СтандартныеДействия + 363 + + ТекстПисьмаФорматированныйДокументВыровнятьВлево + 633 + true + true + + true + + + ТекстПисьмаФорматированныйДокументВыровнятьВлевоExtendedTooltip + 861 + Label + true + true + + Left + + + Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.AlignLeft + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ТекстПисьмаФорматированныйДокументВыровнятьПоЦентру + 634 + true + true + + true + + + ТекстПисьмаФорматированныйДокументВыровнятьПоЦентруExtendedTooltip + 862 + Label + true + true + + Left + + + Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.AlignCenter + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ТекстПисьмаФорматированныйДокументВыровнятьВправо + 636 + true + true + + true + + + ТекстПисьмаФорматированныйДокументВыровнятьВправоExtendedTooltip + 863 + Label + true + true + + Left + + + Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.AlignRight + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ТекстПисьмаФорматированныйДокументВыровнятьПоШирине + 637 + true + true + + true + + + ТекстПисьмаФорматированныйДокументВыровнятьПоШиринеExtendedTooltip + 864 + Label + true + true + + Left + + + Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.AlignJustify + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ТекстПисьмаФорматированныйДокументУвеличитьОтступ + 638 + true + true + + true + + + ТекстПисьмаФорматированныйДокументУвеличитьОтступExtendedTooltip + 865 + Label + true + true + + Left + + + Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.IncreaseIndent + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ТекстПисьмаФорматированныйДокументУменьшитьОтступ + 639 + true + true + + true + + + ТекстПисьмаФорматированныйДокументУменьшитьОтступExtendedTooltip + 866 + Label + true + true + + Left + + + Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.DecreaseIndent + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Стандартные действия</value> + + + СтандартныеДействияExtendedTooltip + 860 + Label + true + true + + Left + + + + Item.ТекстПисьмаФорматированныйДокумент + true true @@ -5496,15 +6171,11 @@ <key>ru</key> - <value>Параметр</value> + <value>Командная панель текст письма форматированный документ</value> - - ru - Добавить параметр в текст письма - - ТекстПисьмаФорматированныйДокументДобавитьПараметрШаблонаExtendedTooltip - 846 + КоманднаяПанельТекстПисьмаФорматированныйДокументExtendedTooltip + 845 Label true true @@ -5512,84 +6183,26 @@ Left - Popup - - Auto - Normal + CommandBar + + Left - - HTML - 605 - - ИзменитьТипТекстаНаHTMLПометка - 628 - true - true - - true - - - ИзменитьТипТекстаНаHTMLПометкаExtendedTooltip - 857 - Label - true - true - - Left - - - Form.Command.ИзменитьТипТекстаНаHTML - Normal - Auto - true - true - UserCmds - true - Auto - - - ИзменитьТипТекстаНаОбычный - 606 - true - true - - true - - - ИзменитьТипТекстаНаОбычныйExtendedTooltip - 858 - Label - true - true - - Left - - - Form.Command.ИзменитьТипТекстаНаОбычный - Normal - Auto - true - true - UserCmds - Auto - + + ТекстПисьмаФорматированныйДокумент + 129 true true true - - <key>ru</key> - <value>HTML</value> - - - ru - Сменить формат письма - + + ТекстПисьмаФорматированныйДокумент + + None - HTMLExtendedTooltip - 856 + ТекстПисьмаФорматированныйДокументExtendedTooltip + 877 Label true true @@ -5597,225 +6210,288 @@ Left - Popup - - Auto - Normal - - - - ТекстПисьмаФорматированныйДокументКартинка - 174 - true - true - - true - - - ТекстПисьмаФорматированныйДокументКартинкаExtendedTooltip - 859 - Label - true - true - - Left - - - Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.Picture - Normal - Auto - true - true - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu - - - СтандартныеДействия - 363 - - ТекстПисьмаФорматированныйДокументВыровнятьВлево - 633 - true - true - - true - - - ТекстПисьмаФорматированныйДокументВыровнятьВлевоExtendedTooltip - 861 - Label - true - true - - Left + + ТекстПисьмаФорматированныйДокументКонтекстноеМеню + 130 + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюПодменюПараметр + 695 + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылки + 312 + true + true + + true + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылкиExtendedTooltip + 868 + Label + true + true + + Left + + + Form.Command.ДобавитьИзменитьШаблонДатыРассылки + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонАвтора + 308 + true + true + + true + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонАвтораExtendedTooltip + 869 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонАвтора + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонПолучателя + 309 + true + true + + true + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонПолучателяExtendedTooltip + 870 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонПолучателя + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонРассылки + 310 + true + true + + true + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонРассылкиExtendedTooltip + 871 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонНаименованияРассылки + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСформированныхОтчетов + 311 + true + true + + true + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСформированныхОтчетовExtendedTooltip + 872 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонСформированныхОтчетов + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСистемы + 403 + true + true + + true + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСистемыExtendedTooltip + 873 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонСистемы + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСпособаДоставки + 420 + true + true + + true + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСпособаДоставкиExtendedTooltip + 874 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонСпособаДоставки + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонПоУмолчанию + 673 + true + true + + true + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонПоУмолчаниюExtendedTooltip + 875 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонПоУмолчанию + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюПредпросмотрШаблона + 394 + true + true + + true + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюПредпросмотрШаблонаExtendedTooltip + 876 + Label + true + true + + Left + + + Form.Command.ПредпросмотрШаблона + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Параметр</value> + + + ТекстПисьмаФорматированныйДокументКонтекстноеМенюПодменюПараметрExtendedTooltip + 867 + Label + true + true + + Left + + + Popup + + + StdPicture.DataCompositionConditionalAppearance + + Auto + Normal - - Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.AlignLeft - Normal - Auto + + true + + FormattedDocumentField + Enter + true + Left + true + + 1 true + 1 true - UserCmds - Auto - InAdditionalSubmenu - - - ТекстПисьмаФорматированныйДокументВыровнятьПоЦентру - 634 - true - true - - true - - - ТекстПисьмаФорматированныйДокументВыровнятьПоЦентруExtendedTooltip - 862 - Label - true - true - - Left - - - Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.AlignCenter - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ТекстПисьмаФорматированныйДокументВыровнятьВправо - 636 - true - true - - true - - - ТекстПисьмаФорматированныйДокументВыровнятьВправоExtendedTooltip - 863 - Label - true - true - - Left - - - Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.AlignRight - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ТекстПисьмаФорматированныйДокументВыровнятьПоШирине - 637 - true - true - - true - - - ТекстПисьмаФорматированныйДокументВыровнятьПоШиринеExtendedTooltip - 864 - Label - true - true - - Left - - - Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.AlignJustify - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ТекстПисьмаФорматированныйДокументУвеличитьОтступ - 638 - true - true - - true - - - ТекстПисьмаФорматированныйДокументУвеличитьОтступExtendedTooltip - 865 - Label - true - true - - Left - - - Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.IncreaseIndent - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ТекстПисьмаФорматированныйДокументУменьшитьОтступ - 639 - true - true - - true - - - ТекстПисьмаФорматированныйДокументУменьшитьОтступExtendedTooltip - 866 - Label - true - true - - Left - - - Form.Item.ТекстПисьмаФорматированныйДокумент.StandardCommand.DecreaseIndent - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Стандартные действия</value> - - - СтандартныеДействияExtendedTooltip - 860 - Label - true - true - - Left - - - - Item.ТекстПисьмаФорматированныйДокумент + true + true true @@ -5825,11 +6501,11 @@ <key>ru</key> - <value>Командная панель текст письма форматированный документ</value> + <value>Страницы текст письма HTML</value> - КоманднаяПанельТекстПисьмаФорматированныйДокументExtendedTooltip - 845 + СтраницыТекстПисьмаHTMLExtendedTooltip + 844 Label true true @@ -5837,50 +6513,33 @@ Left - CommandBar - - Left + Page + + Vertical + auto + false - - ТекстПисьмаФорматированныйДокумент - 129 - true - true - - true - - - ТекстПисьмаФорматированныйДокумент - - None - - ТекстПисьмаФорматированныйДокументExtendedTooltip - 877 - Label - true - true - - Left - - - - ТекстПисьмаФорматированныйДокументКонтекстноеМеню - 130 + + СтраницыТекстПисьмаОбычныйТекст + 125 + + КоманднаяПанельТекстПисьма + 157 - ТекстПисьмаФорматированныйДокументКонтекстноеМенюПодменюПараметр - 695 + ТекстПисьмаДобавитьПараметрШаблона + 323 - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылки - 312 + ДобавитьИлиИзменитьШаблонДатыРассылки + 328 true true true - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылкиExtendedTooltip - 868 + ДобавитьИлиИзменитьШаблонДатыРассылкиExtendedTooltip + 881 Label true true @@ -5897,16 +6556,16 @@ Auto - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонАвтора - 308 + ДобавитьШаблонАвтора + 324 true true true - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонАвтораExtendedTooltip - 869 + ДобавитьШаблонАвтораExtendedTooltip + 882 Label true true @@ -5923,16 +6582,16 @@ Auto - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонПолучателя - 309 + ДобавитьШаблонПолучателя + 325 true true true - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонПолучателяExtendedTooltip - 870 + ДобавитьШаблонПолучателяExtendedTooltip + 883 Label true true @@ -5949,16 +6608,16 @@ Auto - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонРассылки - 310 + ДобавитьШаблонРассылки + 326 true true true - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонРассылкиExtendedTooltip - 871 + ДобавитьШаблонРассылкиExtendedTooltip + 884 Label true true @@ -5975,16 +6634,16 @@ Auto - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСформированныхОтчетов - 311 + ДобавитьШаблонСформированныхОтчетов + 327 true true true - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСформированныхОтчетовExtendedTooltip - 872 + ДобавитьШаблонСформированныхОтчетовExtendedTooltip + 885 Label true true @@ -6001,16 +6660,16 @@ Auto - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСистемы - 403 + ДобавитьШаблонСистемы + 404 true true true - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСистемыExtendedTooltip - 873 + ДобавитьШаблонСистемыExtendedTooltip + 886 Label true true @@ -6027,16 +6686,16 @@ Auto - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСпособаДоставки - 420 + ДобавитьШаблонСпособаДоставки + 421 true true true - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонСпособаДоставкиExtendedTooltip - 874 + ДобавитьШаблонСпособаДоставкиExtendedTooltip + 887 Label true true @@ -6053,16 +6712,16 @@ Auto - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонПоУмолчанию - 673 + ДобавитьШаблонПоУмолчанию + 699 true true true - ТекстПисьмаФорматированныйДокументКонтекстноеМенюДобавитьШаблонПоУмолчаниюExtendedTooltip - 875 + ДобавитьШаблонПоУмолчаниюExtendedTooltip + 888 Label true true @@ -6078,32 +6737,6 @@ UserCmds Auto - - ТекстПисьмаФорматированныйДокументКонтекстноеМенюПредпросмотрШаблона - 394 - true - true - - true - - - ТекстПисьмаФорматированныйДокументКонтекстноеМенюПредпросмотрШаблонаExtendedTooltip - 876 - Label - true - true - - Left - - - Form.Command.ПредпросмотрШаблона - Normal - Auto - true - true - UserCmds - Auto - true true @@ -6113,9 +6746,13 @@ ru Параметр + + ru + Добавить параметр шаблона + - ТекстПисьмаФорматированныйДокументКонтекстноеМенюПодменюПараметрExtendedTooltip - 867 + ТекстПисьмаДобавитьПараметрШаблонаExtendedTooltip + 880 Label true true @@ -6125,75 +6762,82 @@ Popup - - StdPicture.DataCompositionConditionalAppearance - Auto Normal - true - - FormattedDocumentField - Enter - true - Left - true - - 1 - true - 1 - true - true - true - - - true - true - - true - - - <key>ru</key> - <value>Страницы текст письма HTML</value> - - - СтраницыТекстПисьмаHTMLExtendedTooltip - 844 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - - СтраницыТекстПисьмаОбычныйТекст - 125 - - КоманднаяПанельТекстПисьма - 157 - - ТекстПисьмаДобавитьПараметрШаблона - 323 - - ДобавитьИлиИзменитьШаблонДатыРассылки - 328 + + ОбычныйТекст + 607 + + ИзменитьТипТекстаНаHTML + 608 + true + true + + true + + + ИзменитьТипТекстаНаHTMLExtendedTooltip + 891 + Label + true + true + + Left + + + Form.Command.ИзменитьТипТекстаНаHTML + Normal + Auto + true + true + UserCmds + Auto + + + ИзменитьТипТекстаНаОбычныйПометка + 629 + true + true + + true + + + ИзменитьТипТекстаНаОбычныйПометкаExtendedTooltip + 892 + Label + true + true + + Left + + + Form.Command.ИзменитьТипТекстаНаОбычный + Normal + Auto + true + true + UserCmds + true + Auto + true true true + + <key>ru</key> + <value>Обычный текст</value> + + + ru + Сменить формат письма + - ДобавитьИлиИзменитьШаблонДатыРассылкиExtendedTooltip - 881 + ОбычныйТекстExtendedTooltip + 890 Label true true @@ -6201,195 +6845,11 @@ Left - Form.Command.ДобавитьИзменитьШаблонДатыРассылки - Normal - Auto - true - true - UserCmds - Auto - - - ДобавитьШаблонАвтора - 324 - true - true - - true - - - ДобавитьШаблонАвтораExtendedTooltip - 882 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонАвтора - Normal - Auto - true - true - UserCmds - Auto - - - ДобавитьШаблонПолучателя - 325 - true - true - - true - - - ДобавитьШаблонПолучателяExtendedTooltip - 883 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонПолучателя - Normal - Auto - true - true - UserCmds - Auto - - - ДобавитьШаблонРассылки - 326 - true - true - - true - - - ДобавитьШаблонРассылкиExtendedTooltip - 884 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонНаименованияРассылки - Normal - Auto - true - true - UserCmds - Auto - - - ДобавитьШаблонСформированныхОтчетов - 327 - true - true - - true - - - ДобавитьШаблонСформированныхОтчетовExtendedTooltip - 885 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонСформированныхОтчетов - Normal - Auto - true - true - UserCmds - Auto - - - ДобавитьШаблонСистемы - 404 - true - true - - true - - - ДобавитьШаблонСистемыExtendedTooltip - 886 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонСистемы - Normal - Auto - true - true - UserCmds - Auto - - - ДобавитьШаблонСпособаДоставки - 421 - true - true - - true - - - ДобавитьШаблонСпособаДоставкиExtendedTooltip - 887 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонСпособаДоставки - Normal - Auto - true - true - UserCmds - Auto - - - ДобавитьШаблонПоУмолчанию - 699 - true - true - - true - - - ДобавитьШаблонПоУмолчаниюExtendedTooltip - 888 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонПоУмолчанию - Normal - Auto - true - true - UserCmds - Auto + Popup + + Auto + Normal + ПредпросмотрШаблона @@ -6411,7 +6871,7 @@ Form.Command.ПредпросмотрШаблона Normal - Auto + Picture true true UserCmds @@ -6424,15 +6884,11 @@ <key>ru</key> - <value>Параметр</value> + <value>Командная панель текст письма</value> - - ru - Добавить параметр шаблона - - ТекстПисьмаДобавитьПараметрШаблонаExtendedTooltip - 880 + КоманднаяПанельТекстПисьмаExtendedTooltip + 879 Label true true @@ -6440,84 +6896,26 @@ Left - Popup - - Auto - Normal + CommandBar + + Left - - ОбычныйТекст - 607 - - ИзменитьТипТекстаНаHTML - 608 - true - true - - true - - - ИзменитьТипТекстаНаHTMLExtendedTooltip - 891 - Label - true - true - - Left - - - Form.Command.ИзменитьТипТекстаНаHTML - Normal - Auto - true - true - UserCmds - Auto - - - ИзменитьТипТекстаНаОбычныйПометка - 629 - true - true - - true - - - ИзменитьТипТекстаНаОбычныйПометкаExtendedTooltip - 892 - Label - true - true - - Left - - - Form.Command.ИзменитьТипТекстаНаОбычный - Normal - Auto - true - true - UserCmds - true - Auto - + + ТекстПисьма + 21 true true true - - <key>ru</key> - <value>Обычный текст</value> - - - ru - Сменить формат письма - + + Объект.ТекстПисьма + + None - ОбычныйТекстExtendedTooltip - 890 + ТекстПисьмаExtendedTooltip + 903 Label true true @@ -6525,10 +6923,288 @@ Left - Popup - - Auto - Normal + + ТекстПисьмаКонтекстноеМеню + 22 + + ТекстПисьмаКонтекстноеМенюПодменюПараметр + 696 + + ТекстПисьмаКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылки + 322 + true + true + + true + + + ТекстПисьмаКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылкиExtendedTooltip + 894 + Label + true + true + + Left + + + Form.Command.ДобавитьИзменитьШаблонДатыРассылки + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонАвтора + 318 + true + true + + true + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонАвтораExtendedTooltip + 895 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонАвтора + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонПолучателя + 319 + true + true + + true + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонПолучателяExtendedTooltip + 896 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонПолучателя + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонРассылки + 320 + true + true + + true + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонРассылкиExtendedTooltip + 897 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонНаименованияРассылки + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонСформированныхОтчетов + 321 + true + true + + true + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонСформированныхОтчетовExtendedTooltip + 898 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонСформированныхОтчетов + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонСистемы + 405 + true + true + + true + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонСистемыExtendedTooltip + 899 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонСистемы + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонСпособаДоставки + 422 + true + true + + true + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонСпособаДоставкиExtendedTooltip + 900 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонСпособаДоставки + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонПоУмолчанию + 672 + true + true + + true + + + ТекстПисьмаКонтекстноеМенюДобавитьШаблонПоУмолчаниюExtendedTooltip + 901 + Label + true + true + + Left + + + Form.Command.ДобавитьШаблонПоУмолчанию + Normal + Auto + true + true + UserCmds + Auto + + + ТекстПисьмаКонтекстноеМенюПредпросмотрШаблона + 392 + true + true + + true + + + ТекстПисьмаКонтекстноеМенюПредпросмотрШаблонаExtendedTooltip + 902 + Label + true + true + + Left + + + Form.Command.ПредпросмотрШаблона + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Параметр</value> + + + ТекстПисьмаКонтекстноеМенюПодменюПараметрExtendedTooltip + 893 + Label + true + true + + Left + + + Popup + + + StdPicture.DataCompositionConditionalAppearance + + Auto + Normal + + + true + + TextDocumentField + Auto + true + Left + true + + 1 + true + 1 + true + true + true true @@ -6538,11 +7214,11 @@ <key>ru</key> - <value>Командная панель текст письма</value> + <value>Страницы текст письма обычный текст</value> - КоманднаяПанельТекстПисьмаExtendedTooltip - 879 + СтраницыТекстПисьмаОбычныйТекстExtendedTooltip + 878 Label true true @@ -6550,315 +7226,11 @@ Left - CommandBar - - Left - - - - ТекстПисьма - 21 - true - true - - true - - - Объект.ТекстПисьма - - None - - ТекстПисьмаExtendedTooltip - 903 - Label - true - true - - Left - - - - ТекстПисьмаКонтекстноеМеню - 22 - - ТекстПисьмаКонтекстноеМенюПодменюПараметр - 696 - - ТекстПисьмаКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылки - 322 - true - true - - true - - - ТекстПисьмаКонтекстноеМенюДобавитьИлиИзменитьШаблонДатыРассылкиExtendedTooltip - 894 - Label - true - true - - Left - - - Form.Command.ДобавитьИзменитьШаблонДатыРассылки - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонАвтора - 318 - true - true - - true - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонАвтораExtendedTooltip - 895 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонАвтора - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонПолучателя - 319 - true - true - - true - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонПолучателяExtendedTooltip - 896 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонПолучателя - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонРассылки - 320 - true - true - - true - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонРассылкиExtendedTooltip - 897 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонНаименованияРассылки - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонСформированныхОтчетов - 321 - true - true - - true - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонСформированныхОтчетовExtendedTooltip - 898 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонСформированныхОтчетов - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонСистемы - 405 - true - true - - true - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонСистемыExtendedTooltip - 899 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонСистемы - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонСпособаДоставки - 422 - true - true - - true - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонСпособаДоставкиExtendedTooltip - 900 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонСпособаДоставки - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонПоУмолчанию - 672 - true - true - - true - - - ТекстПисьмаКонтекстноеМенюДобавитьШаблонПоУмолчаниюExtendedTooltip - 901 - Label - true - true - - Left - - - Form.Command.ДобавитьШаблонПоУмолчанию - Normal - Auto - true - true - UserCmds - Auto - - - ТекстПисьмаКонтекстноеМенюПредпросмотрШаблона - 392 - true - true - - true - - - ТекстПисьмаКонтекстноеМенюПредпросмотрШаблонаExtendedTooltip - 902 - Label - true - true - - Left - - - Form.Command.ПредпросмотрШаблона - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Параметр</value> - - - ТекстПисьмаКонтекстноеМенюПодменюПараметрExtendedTooltip - 893 - Label - true - true - - Left - - - Popup - - - StdPicture.DataCompositionConditionalAppearance - - Auto - Normal - - - true - - TextDocumentField - Auto - true - Left - true - - 1 - true - 1 - true - true - true + Page + + Vertical + auto + false true @@ -6868,11 +7240,11 @@ <key>ru</key> - <value>Страницы текст письма обычный текст</value> + <value>Страницы текст письма</value> - СтраницыТекстПисьмаОбычныйТекстExtendedTooltip - 878 + СтраницыТекстПисьмаExtendedTooltip + 843 Label true true @@ -6880,11 +7252,9 @@ Left - Page - - Vertical - auto - false + Pages + + Auto true @@ -6894,11 +7264,11 @@ <key>ru</key> - <value>Страницы текст письма</value> + <value>Тема и текст письма</value> - СтраницыТекстПисьмаExtendedTooltip - 843 + ТемаИТекстПисьмаExtendedTooltip + 833 Label true true @@ -6906,8 +7276,12 @@ Left - Pages - + UsualGroup + + Vertical + true + true + Auto Auto @@ -6918,11 +7292,1248 @@ <key>ru</key> - <value>Тема и текст письма</value> + <value>Параметры письма</value> - ТемаИТекстПисьмаExtendedTooltip - 833 + ПараметрыПисьмаExtendedTooltip + 832 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Доставка по электронной почте</value> + + + ДоставкаПоЭлектроннойПочтеExtendedTooltip + 821 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + + + + ДополнительныеПараметрыРассылкиПоЭлектроннойПочте + 200 + + ВставлятьОтчетыВТекстПисьма + 1271 + true + true + + true + + + Объект.ВставлятьОтчетыВТекстПисьма + + Right + + OnChange + ВставлятьОтчетыВТекстПисьмаПриИзменении + + + ВставлятьОтчетыВТекстПисьмаРасширеннаяПодсказка + 1273 + Label + true + true + + Left + + + + ВставлятьОтчетыВТекстПисьмаКонтекстноеМеню + 1272 + true + + CheckBoxField + Enter + true + Left + true + + + + АдресОтветаСкрытыеКопии + 1279 + + ИспользоватьСкрытыеКопии + 35 + true + true + + true + + + Объект.СкрытыеКопии + + Right + Button + + ИспользоватьСкрытыеКопииExtendedTooltip + 938 + Label + true + true + + Left + + + + ИспользоватьСкрытыеКопииКонтекстноеМеню + 36 + true + + CheckBoxField + Auto + true + Left + true + + + + АдресОтвета + 33 + true + true + + true + + + Объект.АдресОтвета + + + АдресОтветаExtendedTooltip + 937 + Label + true + true + + Left + + + + АдресОтветаКонтекстноеМеню + 34 + true + + InputField + Auto + true + Left + true + + 10 + true + 35 + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Адрес ответа скрытые копии</value> + + + АдресОтветаСкрытыеКопииРасширеннаяПодсказка + 1280 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Параметры доставки по электронной почте</value> + + + ДополнительныеПараметрыРассылкиПоЭлектроннойПочтеExtendedTooltip + 936 + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Доставка лево</value> + + + ДоставкаЛевоРасширеннаяПодсказка + 1264 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ДоставкаПраво + 1265 + + ПрикреплятьОтчетыВоВложения + 1274 + true + true + + true + + + Объект.ПрикреплятьОтчетыВоВложения + + Right + + OnChange + ПрикреплятьОтчетыВоВложенияПриИзменении + + + ПрикреплятьОтчетыВоВложенияРасширеннаяПодсказка + 1276 + Label + true + true + + Left + + + + ПрикреплятьОтчетыВоВложенияКонтекстноеМеню + 1275 + true + + CheckBoxField + Enter + true + Left + true + + + + НастройкиФайловОтчетов + 1286 + + ФорматыОтчетовИКнопки + 686 + + ГруппаШапкаФорматыОтчетов + 1216 + + ФорматыПоУмолчанию + 335 + true + true + + true + + + ФорматыПоУмолчанию + + + ФорматыПоУмолчаниюExtendedTooltip + 916 + Label + true + true + + Left + + + + ФорматыПоУмолчаниюКонтекстноеМеню + 336 + + СброситьФорматПоУмолчанию + 1198 + true + true + + true + + + СброситьФорматПоУмолчаниюРасширеннаяПодсказка + 1199 + Label + true + true + + Left + + + Form.Command.СброситьФорматПоУмолчанию + Normal + Auto + true + true + UserCmds + Auto + + true + + LabelField + Enter + true + Left + true + + + Click + ФорматыПоУмолчаниюНажатие + + 70 + true + true + + + + КоманднаяПанельФорматыОтчетов + 1212 + + ГруппаШаблоныНаименований + 1235 + + УстановитьШаблонНаименование + 1237 + true + true + + true + + + УстановитьШаблонНаименованиеРасширеннаяПодсказка + 1238 + Label + true + true + + Left + + + Form.Command.УстановитьШаблонНаименование + Normal + Auto + true + true + UserCmds + Auto + + + УстановитьШаблонНаименованиеФормат + 1239 + true + true + + true + + + УстановитьШаблонНаименованиеФорматРасширеннаяПодсказка + 1240 + Label + true + true + + Left + + + Form.Command.УстановитьШаблонНаименованиеФормат + Normal + Auto + true + true + UserCmds + Auto + + + УстановитьШаблонНаименованиеПериод + 1241 + true + true + + true + + + УстановитьШаблонНаименованиеПериодРасширеннаяПодсказка + 1242 + Label + true + true + + Left + + + Form.Command.УстановитьШаблонНаименованиеПериод + Normal + Auto + true + true + UserCmds + Auto + + + УстановитьШаблонНаименованиеПериодФормат + 1243 + true + true + + true + + + УстановитьШаблонНаименованиеПериодФорматРасширеннаяПодсказка + 1244 + Label + true + true + + Left + + + Form.Command.УстановитьШаблонНаименованиеПериодФормат + Normal + Auto + true + true + UserCmds + Auto + + + УстановитьШаблонНаименованиеДатаРассылки + 1245 + true + true + + true + + + УстановитьШаблонНаименованиеДатаРассылкиРасширеннаяПодсказка + 1246 + Label + true + true + + Left + + + Form.Command.УстановитьШаблонНаименованиеДатаРассылки + Normal + Auto + true + true + UserCmds + Auto + + + УстановитьШаблонНаименованиеДатаРассылкиФормат + 1247 + true + true + + true + + + УстановитьШаблонНаименованиеДатаРассылкиФорматРасширеннаяПодсказка + 1248 + Label + true + true + + Left + + + Form.Command.УстановитьШаблонНаименованиеДатаРассылкиФормат + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Шаблоны наименований</value> + + + ГруппаШаблоныНаименованийРасширеннаяПодсказка + 1236 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + ФорматыОтчетовВывестиСписок + 1223 + true + true + + true + + + ФорматыОтчетовВывестиСписокРасширеннаяПодсказка + 1224 + Label + true + true + + Left + + + Form.Item.ФорматыОтчетов.StandardCommand.OutputList + Normal + Auto + true + true + UserCmds + Auto + + + + <key>ru</key> + <value>Поиск</value> + + true + true + + true + + СтрокаПоискаФорматыОтчетов + 1220 + + СтрокаПоискаФорматыОтчетовРасширеннаяПодсказка + 1222 + Label + true + true + + Left + + + + СтрокаПоискаФорматыОтчетовКонтекстноеМеню + 1221 + true + + ФорматыОтчетов + Right + + true + + + + ГруппаСнятьУстановитьПометкиЕслиПустой + 1218 + + СнятьПометкиОтправлятьЕслиПустой + 689 + true + true + + true + + + СнятьПометкиОтправлятьЕслиПустойExtendedTooltip + 928 + Label + true + true + + Left + + + Form.Command.СнятьПометкиОтправлятьЕслиПустой + Normal + Picture + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + + УстановитьПометкиОтправлятьЕслиПустой + 688 + true + true + + true + + + УстановитьПометкиОтправлятьЕслиПустойExtendedTooltip + 927 + Label + true + true + + Left + + + Form.Command.УстановитьПометкиОтправлятьЕслиПустой + Normal + Picture + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Снять установить пометки если пустой</value> + + true + Right + + ГруппаСнятьУстановитьПометкиЕслиПустойРасширеннаяПодсказка + 1219 + Label + true + true + + Left + + + + Compact + + + true + true + + true + + + <key>ru</key> + <value>Командная панель форматы отчетов</value> + + Right + + КоманднаяПанельФорматыОтчетовРасширеннаяПодсказка + 1213 + Label + true + true + + Left + + + CommandBar + + Left + + + true + true + + true + + + <key>ru</key> + <value>Форматы отчетов</value> + + + ГруппаШапкаФорматыОтчетовРасширеннаяПодсказка + 1217 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ФорматыОтчетов + 100 + + <key>ru</key> + <value>Форматы отчетов</value> + + true + true + + true + + + Объект.Отчеты + + None + Add + + ФорматыОтчетовОсновноеШаблон + 1269 + + ФорматыОтчетовОсновное + 1267 + + ФорматыОтчетовПредставление + 230 + true + true + + true + + + Объект.Отчеты.Представление + + + ФорматыОтчетовПредставлениеРасширеннаяПодсказка + 923 + Label + true + true + + Left + + + + ФорматыОтчетовПредставлениеКонтекстноеМеню + 231 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ФорматыОтчетовФорматы + 232 + true + true + + true + + + Объект.Отчеты.Форматы + + + ФорматыОтчетовФорматыExtendedTooltip + 924 + Label + true + true + + Left + + + + ФорматыОтчетовФорматыКонтекстноеМеню + 233 + true + + InputField + true + true + Left + true + + + StartChoice + ФорматыОтчетовФорматыНачалоВыбора + + + Clearing + ФорматыОтчетовФорматыОчистка + + true + true + true + false + true + true + true + Normal + + + + ФорматыОтчетовОтправлятьЕслиПустой + 534 + true + true + + true + + + Объект.Отчеты.ОтправлятьЕслиПустой + + 2 + + OnChange + ФорматыОтчетовОтправлятьЕслиПустойПриИзменении + + + ФорматыОтчетовОтправлятьЕслиПустойExtendedTooltip + 925 + Label + true + true + + Left + + + + ФорматыОтчетовОтправлятьЕслиПустойКонтекстноеМеню + 535 + true + + CheckBoxField + Auto + true + Left + true + + + + ФорматыОтчетовНеОтправлятьПустой + 989 + true + + true + + + Объект.Отчеты.НеОтправлятьПустой + + 2 + + ru + Не отправлять отчет если он не содержит данных. + + + OnChange + ФорматыОтчетовНеОтправлятьПустойПриИзменении + + + ФорматыОтчетовНеОтправлятьПустойРасширеннаяПодсказка + 991 + Label + true + true + + Left + + + + ФорматыОтчетовНеОтправлятьПустойКонтекстноеМеню + 990 + true + + CheckBoxField + Auto + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Форматы отчетов основное</value> + + + ФорматыОтчетовОсновноеРасширеннаяПодсказка + 1268 + Label + true + true + + Left + + + ColumnGroup + + auto + true + + + + ФорматыОтчетовШаблонНаименования + 1230 + true + true + + true + + + Объект.Отчеты.ШаблонНаименования + + + ФорматыОтчетовШаблонНаименованияРасширеннаяПодсказка + 1232 + Label + true + true + + Left + + + + ФорматыОтчетовШаблонНаименованияКонтекстноеМеню + 1231 + true + + InputField + Enter + true + Left + true + + + ChoiceProcessing + ФорматыОтчетовШаблонНаименованияОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + ru + [НаименованиеОтчета] [ФорматОтчета] + + + + true + true + + true + + + <key>ru</key> + <value>Форматы отчетов основное, шаблон</value> + + + ФорматыОтчетовОсновноеШаблонРасширеннаяПодсказка + 1270 + Label + true + true + + Left + + + ColumnGroup + + Vertical + auto + true + + + + ФорматыОтчетовКоманднаяПанель + 102 + Right + + + BeforeAddRow + ФорматыОтчетовПередНачаломДобавления + + + BeforeDeleteRow + ФорматыОтчетовПередУдалением + + + OnActivateRow + ФорматыОтчетовПриАктивизацииСтроки + + + ФорматыОтчетовСтрокаПоиска + 1042 + + ФорматыОтчетовСтрокаПоискаРасширеннаяПодсказка + 1044 + Label + true + true + + Left + + + + ФорматыОтчетовСтрокаПоискаКонтекстноеМеню + 1043 + true + + ФорматыОтчетов + + true + + + + ФорматыОтчетовСостояниеПросмотра + 1045 + + ФорматыОтчетовСостояниеПросмотраРасширеннаяПодсказка + 1047 + Label + true + true + + Left + + + + ФорматыОтчетовСостояниеПросмотраКонтекстноеМеню + 1046 + true + + ViewStatusAddition + ФорматыОтчетов + + true + + + + ФорматыОтчетовУправлениеПоиском + 1048 + + ФорматыОтчетовУправлениеПоискомРасширеннаяПодсказка + 1050 + Label + true + true + + Left + + + + ФорматыОтчетовУправлениеПоискомКонтекстноеМеню + 1049 + true + + SearchControlAddition + ФорматыОтчетов + + true + + + + ФорматыОтчетовExtendedTooltip + 922 + Label + true + true + + Left + + + + ФорматыОтчетовКонтекстноеМеню + 101 + + ФорматыОтчетовКонтекстноеМенюУстановитьПометкиОтправлятьЕслиПустой + 684 + true + true + + true + + + ФорматыОтчетовКонтекстноеМенюУстановитьПометкиОтправлятьЕслиПустойExtendedTooltip + 918 + Label + true + true + + Left + + + Form.Command.УстановитьПометкиОтправлятьЕслиПустой + Normal + Auto + true + true + UserCmds + Auto + + + ФорматыОтчетовКонтекстноеМенюСнятьПометкиОтправлятьЕслиПустой + 685 + true + true + + true + + + ФорматыОтчетовКонтекстноеМенюСнятьПометкиОтправлятьЕслиПустойExtendedTooltip + 919 + Label + true + true + + Left + + + Form.Command.СнятьПометкиОтправлятьЕслиПустой + Normal + Auto + true + true + UserCmds + Auto + + true + + true + true + true + 5 + true + true +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + +
    + true + true + + true + + + <key>ru</key> + <value>Форматы отчетов и кнопки</value> + + + ФорматыОтчетовИКнопкиExtendedTooltip + 917 Label true true @@ -6939,6 +8550,404 @@ Auto
    + + ТранслитерироватьИменаФайлов + 1180 + true + true + + true + + + Объект.ТранслитерироватьИменаФайлов + + Right + Button + + ТранслитерироватьИменаФайловРасширеннаяПодсказка + 1182 + Label + true + true + + Left + + + + ТранслитерироватьИменаФайловКонтекстноеМеню + 1181 + true + + CheckBoxField + Enter + true + Left + true + + + + ГруппаПараметрыАрхивацииВZIP + 98 + + Архивировать + 13 + + <key>ru</key> + <value>Архивировать в ZIP:</value> + + true + true + + true + + + Объект.Архивировать + + Right + + OnChange + АрхивироватьПриИзменении + + + АрхивироватьExtendedTooltip + 930 + Label + true + true + + Left + + + + АрхивироватьКонтекстноеМеню + 14 + true + + CheckBoxField + Auto + true + Left + true + + + + ИмяАрхива + 15 + true + true + + true + + + Объект.ИмяАрхива + + None + + ИмяАрхиваExtendedTooltip + 934 + Label + true + true + + Left + + + + ИмяАрхиваКонтекстноеМеню + 16 + true + + InputField + Auto + true + Left + true + + + ChoiceProcessing + ИмяАрхиваОбработкаВыбора + + 50 + true + 45 + true + true + true + true + true + true + + + ru + Наименование рассылки + + + [НаименованиеРассылки] + + + + + ru + Наименование и дата расылки + + + НаименованиеДатаРассылки + + + Normal + + ru + Имя файла архива + + + + + ГруппаПарольАрхива + 1192 + + ПарольАрхива + 17 + + <key>ru</key> + <value>Пароль</value> + + true + true + + true + + + ПарольАрхива + + + OnChange + ПарольАрхиваПриИзменении + + + ПарольАрхиваExtendedTooltip + 935 + Label + true + true + + Left + + + + ПарольАрхиваКонтекстноеМеню + 18 + true + + InputField + Auto + true + Left + true + + + StartChoice + ПарольАрхиваНачалоВыбора + + 20 + true + true + true + true + + CommonPicture.ВводимыеСимволыВидны + + true + true + true + Normal + + ru + Пароль архива + + + + + СоздатьПарольАрхива + 1190 + true + true + + true + + + СоздатьПарольАрхиваРасширеннаяПодсказка + 1191 + Label + true + true + + Left + + + UsualButton + Form.Command.СоздатьПарольАрхива + Normal + Picture + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Пароль архива</value> + + true + + ГруппаПарольАрхиваРасширеннаяПодсказка + 1193 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + true + true + Auto + Auto + + + + ГруппаПаролиШифрование + 1281 + + УстановитьПаролиЗашифровать + 1283 + true + true + + true + + + Объект.УстановитьПаролиЗашифровать + + None + + OnChange + УстановитьПаролиЗашифроватьПриИзменении + + + УстановитьПаролиЗашифроватьРасширеннаяПодсказка + 1285 + Label + true + true + + Left + + + + УстановитьПаролиЗашифроватьКонтекстноеМеню + 1284 + true + + CheckBoxField + Enter + true + Left + true + + + + ПаролиШифрование + 1194 + true + true + + true + + + ПаролиШифрованиеРасширеннаяПодсказка + 1195 + Label + true + true + + Left + + + Hyperlink + Form.Command.ПаролиШифрование + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Пароли и шифрование</value> + + true + + ГруппаПаролиШифрованиеРасширеннаяПодсказка + 1282 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Параметры архивации в ZIP</value> + + + ГруппаПараметрыАрхивацииВZIPExtendedTooltip + 929 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + true + true + Auto + Auto + + true true @@ -6946,11 +8955,11 @@ <key>ru</key> - <value>Параметры письма</value> + <value>Настройки файлов отчетов</value> - ПараметрыПисьмаExtendedTooltip - 832 + НастройкиФайловОтчетовРасширеннаяПодсказка + 1287 Label true true @@ -6961,6 +8970,7 @@ UsualGroup HorizontalIfPossible + Auto true true Auto @@ -6974,11 +8984,12 @@ <key>ru</key> - <value>Доставка по электронной почте</value> + <value>Доставка право</value> + 50 - ДоставкаПоЭлектроннойПочтеExtendedTooltip - 821 + ДоставкаПравоРасширеннаяПодсказка + 1266 Label true true @@ -6989,116 +9000,7 @@ UsualGroup Vertical - true - true - Auto - Auto - -
    - - ДополнительныеПараметрыРассылкиПоЭлектроннойПочте - 200 - - АдресОтвета - 33 - true - true - - true - - - Объект.АдресОтвета - - - АдресОтветаExtendedTooltip - 937 - Label - true - true - - Left - - - - АдресОтветаКонтекстноеМеню - 34 - true - - InputField - Auto - true - Left - true - - 10 - true - 35 - true - true - true - true - true - Normal - - - - ИспользоватьСкрытыеКопии - 35 - true - true - - true - - - Объект.СкрытыеКопии - - Right - Button - - ИспользоватьСкрытыеКопииExtendedTooltip - 938 - Label - true - true - - Left - - - - ИспользоватьСкрытыеКопииКонтекстноеМеню - 36 - true - - CheckBoxField - Auto - true - Left - true - - - true - true - - true - - - <key>ru</key> - <value>Параметры доставки по электронной почте</value> - - - ДополнительныеПараметрыРассылкиПоЭлектроннойПочтеExtendedTooltip - 936 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - WeakSeparation + Auto true true Auto @@ -7133,7 +9035,7 @@ StdPicture.ExecuteTask - Vertical + AlwaysHorizontal auto false @@ -7141,1098 +9043,6 @@ СтраницаДополнительно 199 - - ФорматыОтчетовИКнопки - 686 - - ГруппаФорматыОтчетов - 1214 - - ГруппаШапкаФорматыОтчетов - 1216 - - ФорматыПоУмолчанию - 335 - true - true - - true - - - ФорматыПоУмолчанию - - - ФорматыПоУмолчаниюExtendedTooltip - 916 - Label - true - true - - Left - - - - ФорматыПоУмолчаниюКонтекстноеМеню - 336 - - СброситьФорматПоУмолчанию - 1198 - true - true - - true - - - СброситьФорматПоУмолчаниюРасширеннаяПодсказка - 1199 - Label - true - true - - Left - - - Form.Command.СброситьФорматПоУмолчанию - Normal - Auto - true - true - UserCmds - Auto - - true - - LabelField - Enter - true - Left - true - - - Click - ФорматыПоУмолчаниюНажатие - - 70 - true - true - - - - КоманднаяПанельФорматыОтчетов - 1212 - - ФорматыОтчетовВывестиСписок - 1223 - true - true - - true - - - ФорматыОтчетовВывестиСписокРасширеннаяПодсказка - 1224 - Label - true - true - - Left - - - Form.Item.ФорматыОтчетов.StandardCommand.OutputList - Normal - Auto - true - true - UserCmds - Auto - - - - <key>ru</key> - <value>Поиск</value> - - true - true - - true - - СтрокаПоискаФорматыОтчетов - 1220 - - СтрокаПоискаФорматыОтчетовРасширеннаяПодсказка - 1222 - Label - true - true - - Left - - - - СтрокаПоискаФорматыОтчетовКонтекстноеМеню - 1221 - true - - ФорматыОтчетов - Right - - true - - - - ГруппаСнятьУстановитьПометкиЕслиПустой - 1218 - - СнятьПометкиОтправлятьЕслиПустой - 689 - true - true - - true - - - СнятьПометкиОтправлятьЕслиПустойExtendedTooltip - 928 - Label - true - true - - Left - - - Form.Command.СнятьПометкиОтправлятьЕслиПустой - Normal - Picture - true - true - UserCmds - Auto - - - УстановитьПометкиОтправлятьЕслиПустой - 688 - true - true - - true - - - УстановитьПометкиОтправлятьЕслиПустойExtendedTooltip - 927 - Label - true - true - - Left - - - Form.Command.УстановитьПометкиОтправлятьЕслиПустой - Normal - Picture - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Снять установить пометки если пустой</value> - - true - Right - - ГруппаСнятьУстановитьПометкиЕслиПустойРасширеннаяПодсказка - 1219 - Label - true - true - - Left - - - - Compact - - - true - true - - true - - - <key>ru</key> - <value>Командная панель форматы отчетов</value> - - Right - - КоманднаяПанельФорматыОтчетовРасширеннаяПодсказка - 1213 - Label - true - true - - Left - - - CommandBar - - Left - - - true - true - - true - - - <key>ru</key> - <value>Группа шапка форматы отчетов</value> - - - ГруппаШапкаФорматыОтчетовРасширеннаяПодсказка - 1217 - Label - true - true - - Left - - - UsualGroup - - AlwaysHorizontal - Auto - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Форматы отчетов</value> - - - ГруппаФорматыОтчетовРасширеннаяПодсказка - 1215 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - true - true - Auto - Auto - - - - ФорматыОтчетов - 100 - - <key>ru</key> - <value>Форматы отчетов</value> - - true - true - - true - - - Объект.Отчеты - - None - Add - - ФорматыОтчетовПредставление - 230 - true - true - - true - - - Объект.Отчеты.Представление - - - ФорматыОтчетовПредставлениеРасширеннаяПодсказка - 923 - Label - true - true - - Left - - - - ФорматыОтчетовПредставлениеКонтекстноеМеню - 231 - true - - InputField - true - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ФорматыОтчетовФорматы - 232 - true - true - - true - - - Объект.Отчеты.Форматы - - - ФорматыОтчетовФорматыExtendedTooltip - 924 - Label - true - true - - Left - - - - ФорматыОтчетовФорматыКонтекстноеМеню - 233 - true - - InputField - true - true - Left - true - - - StartChoice - ФорматыОтчетовФорматыНачалоВыбора - - - Clearing - ФорматыОтчетовФорматыОчистка - - true - true - true - false - true - true - true - Normal - - - - ФорматыОтчетовОтправлятьЕслиПустой - 534 - true - true - - true - - - Объект.Отчеты.ОтправлятьЕслиПустой - - - OnChange - ФорматыОтчетовОтправлятьЕслиПустойПриИзменении - - - ФорматыОтчетовОтправлятьЕслиПустойExtendedTooltip - 925 - Label - true - true - - Left - - - - ФорматыОтчетовОтправлятьЕслиПустойКонтекстноеМеню - 535 - true - - CheckBoxField - Auto - true - Left - true - - - - ФорматыОтчетовНеОтправлятьПустой - 989 - true - - true - - - Объект.Отчеты.НеОтправлятьПустой - - - ru - Не отправлять отчет если он не содержит данных. - - - OnChange - ФорматыОтчетовНеОтправлятьПустойПриИзменении - - - ФорматыОтчетовНеОтправлятьПустойРасширеннаяПодсказка - 991 - Label - true - true - - Left - - - - ФорматыОтчетовНеОтправлятьПустойКонтекстноеМеню - 990 - true - - CheckBoxField - Auto - true - Left - true - - - - ФорматыОтчетовКоманднаяПанель - 102 - Right - - - BeforeAddRow - ФорматыОтчетовПередНачаломДобавления - - - BeforeDeleteRow - ФорматыОтчетовПередУдалением - - - ФорматыОтчетовСтрокаПоиска - 1042 - - ФорматыОтчетовСтрокаПоискаРасширеннаяПодсказка - 1044 - Label - true - true - - Left - - - - ФорматыОтчетовСтрокаПоискаКонтекстноеМеню - 1043 - true - - ФорматыОтчетов - - true - - - - ФорматыОтчетовСостояниеПросмотра - 1045 - - ФорматыОтчетовСостояниеПросмотраРасширеннаяПодсказка - 1047 - Label - true - true - - Left - - - - ФорматыОтчетовСостояниеПросмотраКонтекстноеМеню - 1046 - true - - ViewStatusAddition - ФорматыОтчетов - - true - - - - ФорматыОтчетовУправлениеПоиском - 1048 - - ФорматыОтчетовУправлениеПоискомРасширеннаяПодсказка - 1050 - Label - true - true - - Left - - - - ФорматыОтчетовУправлениеПоискомКонтекстноеМеню - 1049 - true - - SearchControlAddition - ФорматыОтчетов - - true - - - - ФорматыОтчетовExtendedTooltip - 922 - Label - true - true - - Left - - - - ФорматыОтчетовКонтекстноеМеню - 101 - - ФорматыОтчетовКонтекстноеМенюУстановитьПометкиОтправлятьЕслиПустой - 684 - true - true - - true - - - ФорматыОтчетовКонтекстноеМенюУстановитьПометкиОтправлятьЕслиПустойExtendedTooltip - 918 - Label - true - true - - Left - - - Form.Command.УстановитьПометкиОтправлятьЕслиПустой - Normal - Auto - true - true - UserCmds - Auto - - - ФорматыОтчетовКонтекстноеМенюСнятьПометкиОтправлятьЕслиПустой - 685 - true - true - - true - - - ФорматыОтчетовКонтекстноеМенюСнятьПометкиОтправлятьЕслиПустойExtendedTooltip - 919 - Label - true - true - - Left - - - Form.Command.СнятьПометкиОтправлятьЕслиПустой - Normal - Auto - true - true - UserCmds - Auto - - true - - true - true - true - 5 - true - true -
    true
    - 1 - 1 - AutoUse - AutoUse - true - true - false - true - Auto - Auto - true - true - true - -
    - true - true - - true - - - <key>ru</key> - <value>Форматы отчетов и кнопки</value> - - - ФорматыОтчетовИКнопкиExtendedTooltip - 917 - Label - true - true - - Left - - - UsualGroup - - Vertical - true - true - Auto - Auto - -
    - - ТранслитерироватьИменаФайлов - 1180 - true - true - - true - - - Объект.ТранслитерироватьИменаФайлов - - Right - Button - - ТранслитерироватьИменаФайловРасширеннаяПодсказка - 1182 - Label - true - true - - Left - - - - ТранслитерироватьИменаФайловКонтекстноеМеню - 1181 - true - - CheckBoxField - Enter - true - Left - true - - - - ГруппаПараметрыАрхивацииВZIP - 98 - - Архивировать - 13 - - <key>ru</key> - <value>Архивировать в ZIP:</value> - - true - true - - true - - - Объект.Архивировать - - Right - - OnChange - АрхивироватьПриИзменении - - - АрхивироватьExtendedTooltip - 930 - Label - true - true - - Left - - - - АрхивироватьКонтекстноеМеню - 14 - true - - CheckBoxField - Auto - true - Left - true - - - - ИмяАрхива - 15 - true - true - - true - - - Объект.ИмяАрхива - - None - - ИмяАрхиваExtendedTooltip - 934 - Label - true - true - - Left - - - - ИмяАрхиваКонтекстноеМеню - 16 - true - - InputField - Auto - true - Left - true - - - ChoiceProcessing - ИмяАрхиваОбработкаВыбора - - 50 - true - 45 - true - true - true - true - true - true - - - ru - Наименование рассылки - - - [НаименованиеРассылки] - - - - - ru - Наименование и дата расылки - - - НаименованиеДатаРассылки - - - Normal - - ru - Имя файла архива - - - - - ГруппаПарольАрхива - 1192 - - ПарольАрхива - 17 - - <key>ru</key> - <value>Пароль</value> - - true - true - - true - - - ПарольАрхива - - - OnChange - ПарольАрхиваПриИзменении - - - ПарольАрхиваExtendedTooltip - 935 - Label - true - true - - Left - - - - ПарольАрхиваКонтекстноеМеню - 18 - true - - InputField - Auto - true - Left - true - - - StartChoice - ПарольАрхиваНачалоВыбора - - 20 - true - true - true - true - - CommonPicture.ВводимыеСимволыВидны - - true - true - true - Normal - - ru - Пароль архива - - - - - СоздатьПарольАрхива - 1190 - true - true - - true - - - СоздатьПарольАрхиваРасширеннаяПодсказка - 1191 - Label - true - true - - Left - - - UsualButton - Form.Command.СоздатьПарольАрхива - Normal - Picture - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Пароль архива</value> - - - ГруппаПарольАрхиваРасширеннаяПодсказка - 1193 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - - - ПаролиШифрование - 1194 - true - - true - - - ПаролиШифрованиеРасширеннаяПодсказка - 1195 - Label - true - true - - Left - - - Hyperlink - Form.Command.ПаролиШифрование - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Параметры архивации в ZIP</value> - - - ГруппаПараметрыАрхивацииВZIPExtendedTooltip - 929 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - - - ДополнительныеПараметры - 355 - - Родитель - 382 - true - true - - true - - - Объект.Parent - - - РодительExtendedTooltip - 940 - Label - true - true - - Left - - - - РодительКонтекстноеМеню - 383 - true - - InputField - Enter - true - Left - true - - - ChoiceProcessing - РодительОбработкаВыбора - - 10 - true - true - true - false - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Дополнительные параметры</value> - - - ДополнительныеПараметрыExtendedTooltip - 939 - Label - true - true - - Left - - - UsualGroup - - Vertical - NormalSeparation - true - true - Auto - Auto - - true true @@ -8822,6 +9632,23 @@ true + + ЕстьПериод + + <key>ru</key> + <value>Есть период</value> + + 67 + + Boolean + + + true + + + true + + @@ -9125,7 +9952,7 @@ ФорматыПоУмолчанию <key>ru</key> - <value>Сохранять отчеты (по умолчанию)</value> + <value>Форматы сохранения</value> 20 @@ -9939,7 +10766,7 @@ ПолучателиРассылки <key>ru</key> - <value>Получатели рассылки</value> + <value>Получатели</value> 57 @@ -10075,9 +10902,20 @@ true + + ДополнительныеПараметрыТекстаПисьма + 66 + + + true + + + true + + ДоступноШифрованиеВложений - 54 + 69 Boolean @@ -10270,7 +11108,7 @@ true - StdPicture.Find + StdPicture.ShowData @@ -10657,7 +11495,7 @@ 1 ru - Команда выполнить сейчас + Выполнить рассылку отчетов в режиме реального времени. true @@ -10773,9 +11611,13 @@ ПаролиШифрование <key>ru</key> - <value>Пароли шифрование</value> + <value>Установить пароли и зашифровать</value> 31 + + ru + Пароли и шифрование + true @@ -10805,6 +11647,211 @@ Auto Auto + + УстановитьШаблонНаименование + + <key>ru</key> + <value>Наименование отчета</value> + + 34 + + true + + + + УстановитьШаблонНаименование + + + Auto + Auto + + + УстановитьШаблонНаименованиеФормат + + <key>ru</key> + <value>Наименование отчета, формат</value> + + 35 + + true + + + + УстановитьШаблонНаименованиеФормат + + + Auto + Auto + + + УстановитьШаблонНаименованиеПериод + + <key>ru</key> + <value>Наименование отчета, период</value> + + 37 + + true + + + + УстановитьШаблонНаименованиеПериод + + + Auto + Auto + + + УстановитьШаблонНаименованиеПериодФормат + + <key>ru</key> + <value>Наименование отчета, период, формат</value> + + 38 + + true + + + + УстановитьШаблонНаименованиеПериодФормат + + + Auto + Auto + + + УстановитьШаблонНаименованиеДатаРассылкиФормат + + <key>ru</key> + <value>Наименование отчета, дата рассылки, формат</value> + + 40 + + true + + + + УстановитьШаблонНаименованиеДатаРассылкиФормат + + + Auto + Auto + + + УстановитьШаблонНаименованиеДатаРассылки + + <key>ru</key> + <value>Наименование отчета, дата рассылки</value> + + 41 + + true + + + + УстановитьШаблонНаименованиеДатаРассылки + + + Auto + Auto + + + ВажностьВысокая + + <key>ru</key> + <value>Высокая важность</value> + + 42 + + ru + Важность высокая + + + true + + + CommonPicture.ВажностьВысокая + + + + ВажностьВысокая + + + DontUse + Auto + + + ВажностьНизкая + + <key>ru</key> + <value>Низкая важность</value> + + 43 + + ru + Важность низкая + + + true + + + CommonPicture.ВажностьНизкая + + + + ВажностьНизкая + + + DontUse + Auto + + + ВажностьОбычная + + <key>ru</key> + <value>Обычная важность</value> + + 44 + + ru + Важность обычная + + + true + + + CommonPicture.ВажностьНеЗадана + + + + ВажностьОбычная + + + DontUse + Auto + + + ПовторнаяРассылка + + <key>ru</key> + <value>Повторная рассылка</value> + + 7 + + ru + Повторная рассылка отчетов, получателям кому не было доставлено. + + + true + + + + ПовторнаяРассылка + + + Auto + Auto + diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Help/ru.html index 84ff880a6..e61461bff 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Help/ru.html @@ -1,13 +1,13 @@

    Предназначена для автоматического формирования отчетов и доставки сформированных отчетов получателям.

    Рассылки отчетов позволяют автоматизировать процесс получения отчетов так, что, не открывая программу, можно получить в нужное время готовый отчет на свою электронную почту или в определенный каталог в виде файла.

    -

    Основные сведения

    +

    Основные сведения

    +
    +
    • Наименование - представление рассылки в списках, может быть указано как шаблон.
    • +
    • Подготовлена - флажок, который обозначает готовность рассылки к выполнению. Включение флажка активизирует дополнительные проверки заполнения реквизитов.
    • -
      Наименование - представление рассылки в списках, может быть указано как шаблон.
      -
    • -
    • Подготовлена - флажок, который обозначает готовность рассылки к выполнению. Включение флажка активизирует дополнительные проверки заполнения реквизитов. -
    • -
    • Отправлять - вид рассылки, определяющий цель: +
      Входит в группу - рассылки можно сгруппировать по различным признакам. Для того чтобы поместить рассылку в группу, выберите ее из списка. 
    • +
    • Отправлять - вид рассылки, определяющий цель:
      • Отчеты указанным получателям - одинаковые отчеты отправляются одновременно всем получателям. Для этого вида рассылки отчетов предусмотрена не только отправка по электронной почте, но и возможность публикации сформированных отчетов в папке файлов программы, в сетевом каталоге или на сайте FTP.
        • в поле Получатели выберите тип получателей - один из списков программы (например, Пользователи).
      • Свой отчет для каждого получателя - используется, если нужно персонализировать содержимое отправляемых отчетов по каждому получателю. В настройках отборов отчетов появляется возможность указать получателя рассылки. Таким образом, для каждого получателя будет сформирован собственный отчет с отбором по этому получателю. @@ -35,20 +35,20 @@
      •  Кроме этого, в программе предусмотрена возможность самостоятельно выбрать периодичность расписания (определяет частотность срабатывания рассылки, переключение данного параметра влияет на все настройки расписания):
        -
        • Ежедневно - рассылка будет выполняться с заданной частотой в днях. +
          • Ежедневно - рассылка будет выполняться с заданной частотой в днях.
            • выберите Период повтора;
          • -
          • Еженедельно - по выбранным дням недели. +
          • Еженедельно - по выбранным дням недели.
            • Выберите дни недели с помощью флажков.
          • -
          • Ежемесячно - по выбранным месяцам в требуемый день месяца. +
          • Ежемесячно - по выбранным месяцам в требуемый день месяца.
            • Выберите месяцы с помощью флажков, укажите номер дня с начала или с конца месяца, в который будет производиться рассылка.
          • -
          • Произвольное - позволяет детально настроить каждый параметр расписания. Открывается окно Расписание для детальной разработки своего расписания. При этом необязательно заполнять его сразу, после закрытия окна становится доступной кнопка Изменить, по которой можно вернуться к настройке расписания в любое время. В этом случае Время начала настраивается также в окне Расписание.
        • +
        • Произвольное - позволяет детально настроить каждый параметр расписания. Открывается окно Расписание для детальной разработки своего расписания. При этом необязательно заполнять его сразу, после закрытия окна становится доступной кнопка Изменить, по которой можно вернуться к настройке расписания в любое время. В этом случае Время начала настраивается также в окне Расписание.
      •  Напишите Время начала запуска рассылки.
      • В поле Автор выберите пользователя из списка. По умолчанию программа выбирает в качестве автора текущего пользователя, который создает рассылку.
        • При запуске по расписанию рассылка выполняется от имени автора.

      Доставка

      • На вкладке описываются все возможные способы доставки настраиваемой рассылки. Содержимое вкладки может меняться, в зависимости от вида рассылки.
      • -
      • Если выбрана личная рассылка автора, то доставка выполняется только по электронной почте по единственному адресу, который указывается в поле Почтовый адрес. +
      • Если выбрана Личная рассылка автора, то доставка выполняется только по электронной почте по единственному адресу, который указывается в поле Почтовый адрес.
      • Если выбран Свой отчет для каждого получателя, то доставка также выполняется только по электронной почте, но уже не одному, а нескольким получателям.
      • @@ -57,18 +57,15 @@
        • В папку - отчеты будут сохранены в указанную папку подсистемы "Работа с файлами". С помощью этого способа доставки можно организовать регулярную архивацию отчетов в папку файлов (при этом отключив отправку по электронной почте);
        • В сетевой каталог - отчеты будут сохранены в выбранный сетевой каталог. Запись производится с сервера, поэтому рекомендуется указывать сетевой путь в формате UNC, например: \\server\folder\. Укажите адрес этого каталога в поле Windows (если вы работаете на компьютере под управлением этой операционной системы) или в поле Linux (если вы работаете на компьютере под управлением Linux). Внимание! Данный способ доставки отчетов недоступен в приложении в Интернете;
        • На FTP ресурс - отчеты будут сохранены на ftp-сервере. Заполните необходимые параметры.
        • -
        • Включать дату в имя файла - Если при публикации рассылки включить флажок, то каждый файл получает уникальное наименование и после сохранения в папке не будет затерт при следующей рассылке. По умолчанию флажок выключен.
    • Проверить - проверка публикации путем записи и удаления тестового файла. Тест считается успешным, если ошибок не возникло. -
    • -
    • Отправлять по электронной почте - признак использования электронной почты для отправки отчетов (или уведомлений). +
    • Включать дату в имя файла - Если при публикации рассылки включить флажок, то каждый файл получает уникальное наименование и после сохранения в папке не будет затерт при следующей рассылке. По умолчанию флажок выключен.
  • Проверить - проверка настроек электронной почты путем отправки тестового сообщения. Тест считается успешным, если ошибок не возникло.
  • +
  • Отправлять по электронной почте - признак использования электронной почты для отправки отчетов (или уведомлений).
  • Укажите получателей - перейдите по ссылке, для того чтобы заполнить список получателей и исключений из получателей рассылки. Можно выбирать элементы или группы получателей. После заполнения ссылка принимает вид списка получателей: указывается первый получатель списка.
  • -
  • В поле От из выпадающего списка выберите учетную запись для отправки. Поле является обязательным для заполнения. Выпадающий список для выбора содержит только элементы списка учетных записей, ввести учетную запись в поле вручную невозможно. -
  • -
  • Проверить - проверка учетной записи электронной почты путем отправки тестового сообщения. Тест считается успешным, если ошибок не возникло. -
  • -
  • Если используются оба способа доставки (и публикация, и отправка по почте), то можно указать, что по почте нужно Отправлять только уведомление о том, что отчет сформирован. Сами отчеты не будут присоединяться к письму, а будут помещаться в каталог публикации. В этом случае письмо-уведомление будет содержать адрес, по которому находится сформированный отчет. +
  • В поле От из выпадающего списка выберите учетную запись для отправки. Поле является обязательным для заполнения. Выпадающий список для выбора содержит только элементы списка учетных записей, ввести учетную запись в поле вручную невозможно.
  • +
  • Если используются оба способа доставки (и публикация, и отправка по почте), то можно указать, что по почте нужно Отправлять только уведомление о том, что отчет сформирован. Сами отчеты не будут присоединяться к письму, а будут помещаться в каталог публикации. В этом случае письмо-уведомление будет содержать адрес, по которому находится сформированный отчет.
  • +
  • Для того чтобы опубликованный или отправленный отчет получил уникальное наименование, можно выбрать из выпадающего списка Шаблон наименований. Выберите шаблон, включающий в себя параметры формата, периода или даты. Можно выбрать шаблон с нужным форматом даты рассылки, а в Конструкторе форматной строки задать Формат даты, например, dd.MM.yyyy (12.06.2023). Если в рассылке вложено несколько отчетов, Шаблоном наименований можно воспользоваться для каждого отчета по отдельности.
  • После установки флажка Отправлять по электронной почте становятся доступными Тема и текст письма. Могут содержать шаблоны параметров рассылки. По умолчанию шаблон письма уже сформирован автоматически. Для добавления параметров в письмо нажмите Параметр, выберите нужное значение:
    • [ДатаВыполнения] - дата рассылки. Параметр может быть указан в имени архива.
    • @@ -89,40 +86,42 @@
    • [СпособДоставки] - представление ресурса, на котором был опубликован отчет.
  • +
  • Если включить флажок Прикреплять отчеты во вложения, то письмо будет отправлено с вложенным файлом отчета. 
  • По умолчанию установлен формат письма HTML, можно изменить его на Обычный. В формате HTML доступны стандартные команды форматирования текста (часть из них размещена в виде кнопок, остальные можно найти в меню Еще).
  • -
    • В поле Адрес ответа укажите E-mail адрес, на который будут высылаться ответы на рассылку. Можно указать обратный адрес, для того чтобы получателям рассылки можно было отправить на него предложения и замечания по поводу присылаемых в рассылке отчетов (с помощью кнопки Ответить в полученном письме с отчетами. Этот адрес невозможно использовать для анализа результатов рассылки, т.к. он предназначен для ответов реальных пользователей и письма с этого адреса не придут автоматически. Адрес ответа может отличаться от адреса системной учетной записи, с которой обычно осуществляется рассылка.
    • -
    • Включите флажок Отправлять письма через скрытые копии, для того чтобы получатели не знали, кто еще получает отчеты из данной рассылки.
    -

    -

    Дополнительно

    -

    -
    • Форматы сохранения отчетов (по умолчанию) - определяет форматы, в которых будут по умолчанию сохранены отчеты.  Выберите общие форматы для всех отчетов с помощью флажков. Можно выбрать несколько форматов. -
    • -
    • В таблице ниже для каждого отчета можно задать свой набор форматов в колонке Форматы. -
    • -
    • В колонке Отправлять пустой установите флажок для отправки сформированного отчета, даже если он пустой. По умолчанию флажок снят. Отчеты с графикой всегда считаются не пустыми. -
    • +
      • В поле Адрес ответа укажите E-mail адрес, на который будут высылаться ответы на рассылку. Можно указать обратный адрес, для того чтобы получателям рассылки можно было отправить на него предложения и замечания по поводу присылаемых в рассылке отчетов (с помощью кнопки Ответить в полученном письме с отчетами. Этот адрес невозможно использовать для анализа результатов рассылки, т.к. он предназначен для ответов реальных пользователей и письма с этого адреса не придут автоматически. Адрес ответа может отличаться от адреса системной почты, с которой обычно осуществляется рассылка.
      • +
      • Включите флажок Отправлять письма через скрытые копии, для того чтобы получатели не знали, кто еще получает отчеты из данной рассылки.
      • +
      • По умолчанию рассылка отправляется со статусом важности Обычная, если необходимо обратить особое внимание на отправляемую рассылку, то можно установить Высокую важность. Если рассылка отправлена, например,  только для вас, то можно установить Низкую важность. 
      • +
      • Если пользователь просматривает почту на мобильном устройстве, то для удобства можно отобразить отчет в теле письма. Для этого включите флажок Вставлять отчеты в текст письма.
      • +
      • Для того чтобы посмотреть, как будет выглядеть письмо в рассылке отчетов нажмите на кнопку  Предпросмотр шаблона.
    +

    Выбор формата отчета

    +

    Пароли и шифрование 

    +

    Выполнение рассылки

    +
    +

    Просмотр событий рассылки

    Анализ результатов рассылки

    +
    Если электронное письмо с рассылкой отчетов отправилось не всем получателям, то при открытии рассылки отчетов в программе отобразится предупреждение  с возможностью повторить данную рассылку по тем получателям, кому не было отправлено электронное письмо.
    +

    -

    Для контроля результатов рассылки можно использовать:

    +

    Для контроля результатов рассылки также можно использовать:

    Работа в клиент-серверном режиме

    diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl index 606ceb076..ebb80deaf 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl @@ -32,6 +32,8 @@ Если ПовторноеЧтение Тогда ЗаполнитьСведенияТаблицыОтчеты(); ПрочитатьРасписаниеРегламентногоЗадания(); + ОтобразитьВажность(); + ДобавитьКомандыДобавленияДополнительныхПараметровТекста(); КонецЕсли; Для Каждого Строка Из Объект.Отчеты Цикл @@ -41,6 +43,18 @@ СоздатьРеквизитЭлементСертификатДляШифрования(); ВидимостьДоступностьПаролейСертификатов(ЭтотОбъект); + Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") И НЕ Объект.Личная И Объект.ИспользоватьЭлектроннуюПочту Тогда + СостояниеРассылки = РассылкаОтчетов.ПолучитьСостояниеРассылкиОтчетов(Объект.Ссылка); + Если СостояниеРассылки.СОшибками Тогда + Элементы.ЗаголовокПовторнойРассылки.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Рассылка отчетов (%1) была отправлена не всем получателям.'"), + СостояниеРассылки.ПоследнийЗапускНачало); + Элементы.ГруппаПовторнаяРассылка.Видимость = Истина; + Иначе + Элементы.ГруппаПовторнаяРассылка.Видимость = Ложь; + КонецЕсли; + КонецЕсли; + // СтандартныеПодсистемы.УправлениеДоступом Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); @@ -58,7 +72,7 @@ Если ЗначениеЗаполнено(ТекстОшибкиПриОткрытии) Тогда Возврат; КонецЕсли; - + // СтандартныеПодсистемы.ПодключаемыеКоманды Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); @@ -92,7 +106,7 @@ Элементы.КомандаСобытияРассылки.Видимость = Ложь; Элементы.СобытияРассылки.Видимость = Ложь; КонецЕсли; - + РассылкаОснование = Параметры.ЗначениеКопирования; // Используется при загрузке и записи настроек выбранного отчета. @@ -100,10 +114,11 @@ // Кэш проверки ЭтоНовый = Объект.Ссылка.Пустая(); - СозданКопированием = Не РассылкаОснование.Пустая(); + СозданКопированием = Не РассылкаОснование.Пустая(); Если ЭтоНовый Тогда СоздатьРеквизитЭлементСертификатДляШифрования(); + ОтобразитьВажность(); КонецЕсли; // Добавление отчетов в табличную часть. @@ -123,6 +138,7 @@ ЗаполнитьПустыеШаблоныСтандартными(Объект); Если ЭтоНовый И Не СозданКопированием Тогда + УстановитьВидРассылки(); ВариантРасписания = Неопределено; Параметры.Свойство("ВариантРасписания", ВариантРасписания); ЗаполнитьРасписаниеПоВарианту(ВариантРасписания); @@ -135,6 +151,8 @@ // Автор рассылки ТекущийПользователь = Пользователи.ТекущийПользователь(); Объект.Автор = ТекущийПользователь; + Объект.ВажностьПисьма = "Обычная"; + Объект.ПрикреплятьОтчетыВоВложения = Истина; Если Не ЗначениеЗаполнено(Объект.Автор) Тогда Отказ = Истина; @@ -268,6 +286,7 @@ КонецЕсли; ВидимостьДоступностьКорректность(ЭтотОбъект); + ДобавитьКомандыДобавленияДополнительныхПараметровТекста(); ЗафиксироватьЗначенияРеквизитовДоИзменения(); @@ -279,14 +298,18 @@ Элементы.ПарольАрхива.КнопкаВыбора = Истина; Иначе Элементы.ПарольАрхива.КнопкаВыбора = Ложь; - КонецЕсли; + КонецЕсли; + + ПроверитьНаличиеПериодовВОтчетах(); Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Элементы.КомандаЗаписатьИЗакрыть.Отображение = ОтображениеКнопки.Картинка; Элементы.ДругиеСпособыДоставки.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно; Элементы.ИспользоватьСетевойКаталог.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно; Элементы.ИспользоватьПапку.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно; - Элементы.Переместить(Элементы.ФорматыПоУмолчанию, Элементы.ГруппаФорматыОтчетов, Элементы.ГруппаШапкаФорматыОтчетов); + Элементы.АдресОтветаСкрытыеКопии.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно; + Элементы.Переместить(Элементы.ДоставкаПраво, Элементы.СтраницаДополнительно); + Элементы.Переместить(Элементы.ГруппаПаролиШифрование, Элементы.СтраницаДополнительно); Элементы.ФорматыПоУмолчанию.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; Элементы.ПолучателиРассылки.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; КонецЕсли; @@ -321,13 +344,13 @@ // Проверка данных, которые выведены через реквизиты самой формы. Если Не ЗначениеЗаполнено(Объект.Наименование) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не введено наименование'"); + ТекстСообщения = НСтр("ru = 'Не введено наименование.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.Наименование"); КонецЕсли; Если Объект.ИспользоватьЭлектроннуюПочту И Не Объект.Личная Тогда Если Не ЗначениеЗаполнено(ТипПолучателейРассылки) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не выбран тип получателей'"); + ТекстСообщения = НСтр("ru = 'Не выбран тип получателей.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "ТипПолучателейРассылки"); КонецЕсли; КонецЕсли; @@ -335,13 +358,13 @@ Если Объект.Подготовлена Тогда Если Объект.Отчеты.Количество() = 0 Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не выбрано ни одного отчета'"); + ТекстСообщения = НСтр("ru = 'Не выбрано ни одного отчета.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.Отчеты"); КонецЕсли; Если Не ЗначениеЗаполнено(Объект.ПериодичностьРасписания) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не выбрана периодичность запуска'"); + ТекстСообщения = НСтр("ru = 'Не выбрана периодичность запуска.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.ПериодичностьРасписания"); КонецЕсли; @@ -350,7 +373,7 @@ Или Не ЗначениеЗаполнено(Объект.FTPПорт) Или Не ЗначениеЗаполнено(Объект.FTPКаталог) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не введен FTP адрес'"); + ТекстСообщения = НСтр("ru = 'Не введен FTP адрес.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "FTPСерверИКаталог"); КонецЕсли; КонецЕсли; @@ -358,12 +381,12 @@ Если Объект.ИспользоватьСетевойКаталог Тогда Если Не ЗначениеЗаполнено(Объект.СетевойКаталогWindows) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не введен сетевой каталог Windows'"); + ТекстСообщения = НСтр("ru = 'Не введен сетевой каталог Windows.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.СетевойКаталогWindows"); КонецЕсли; Если Не ЗначениеЗаполнено(Объект.СетевойКаталогLinux) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не введен сетевой каталог Linux'"); + ТекстСообщения = НСтр("ru = 'Не введен сетевой каталог Linux.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.СетевойКаталогLinux"); КонецЕсли; КонецЕсли; @@ -371,7 +394,7 @@ Если Объект.ИспользоватьПапку Тогда Если Не ЗначениеЗаполнено(Объект.Папка) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не выбрана папка'"); + ТекстСообщения = НСтр("ru = 'Не выбрана папка.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.Папка"); КонецЕсли; КонецЕсли; @@ -380,7 +403,7 @@ Если Объект.Личная Тогда Если Не ЗначениеЗаполнено(Объект.ВидПочтовогоАдресаПолучателей) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не выбран почтовый адрес'"); + ТекстСообщения = НСтр("ru = 'Не выбран почтовый адрес.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.ВидПочтовогоАдресаПолучателей"); КонецЕсли; Иначе @@ -389,13 +412,13 @@ КонецЕсли; Если Не ЗначениеЗаполнено(Объект.ВидПочтовогоАдресаПолучателей) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не выбран тип почтового адреса получателей'"); + ТекстСообщения = НСтр("ru = 'Не выбран тип почтового адреса получателей.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "ПолучателиРассылки"); КонецЕсли; КонецЕсли; Если Не ЗначениеЗаполнено(Объект.УчетнаяЗапись) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не выбрана учетная запись для отправки'"); + ТекстСообщения = НСтр("ru = 'Не выбрана учетная запись для отправки.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.УчетнаяЗапись"); КонецЕсли; КонецЕсли; @@ -646,6 +669,8 @@ Строка.НеОтправлятьПустой = Не Строка.ОтправлятьЕслиПустой; КонецЦикла; + ПроверитьНаличиеПериодовВОтчетах(); + КонецПроцедуры #КонецОбласти @@ -774,6 +799,7 @@ СтрокаПолучатель = Найденные[0]; Объект.ТипПолучателейРассылки = СтрокаПолучатель.ИдентификаторОбъектаМетаданных; Объект.ВидПочтовогоАдресаПолучателей = СтрокаПолучатель.ОсновнойВидКИ; + ДобавитьКомандыДобавленияДополнительныхПараметровТекста(); КонецЕсли; КонецПроцедуры @@ -847,7 +873,13 @@ Объект.Личная = (ВидРассылки = "Личная"); Объект.Персонализирована = (ВидРассылки = "Персонализирована"); + Если Не Объект.ВставлятьОтчетыВТекстПисьма И НЕ Объект.ТолькоУведомить Тогда + Объект.ПрикреплятьОтчетыВоВложения = Истина; + КонецЕсли; + ВидимостьДоступностьКорректность(ЭтотОбъект, "ВидРассылки"); + ДобавитьКомандыДобавленияДополнительныхПараметровТекста(); + КонецПроцедуры &НаКлиенте @@ -858,11 +890,22 @@ Публиковать = Истина; ВычислитьФлажкиДополнительныхСпособовДоставки(); ВидимостьДоступностьКорректность(ЭтотОбъект, "Публиковать"); + ИначеЕсли Объект.ИспользоватьЭлектроннуюПочту И НЕ Объект.ВставлятьОтчетыВТекстПисьма И НЕ Объект.ТолькоУведомить Тогда + Объект.ПрикреплятьОтчетыВоВложения = Истина; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ТолькоУведомитьПриИзменении(Элемент) + + Если Объект.ТолькоУведомить Тогда + Объект.ВставлятьОтчетыВТекстПисьма = Ложь; + Объект.ПрикреплятьОтчетыВоВложения = Ложь; + Иначе + Объект.ВставлятьОтчетыВТекстПисьма = Ложь; + Объект.ПрикреплятьОтчетыВоВложения = Истина; + КонецЕсли; + ВидимостьДоступностьКорректность(ЭтотОбъект, "ТолькоУведомить"); КонецПроцедуры @@ -886,7 +929,10 @@ Если Не Публиковать И Не Объект.ИспользоватьЭлектроннуюПочту Тогда Объект.ИспользоватьЭлектроннуюПочту = Истина; + Объект.ПрикреплятьОтчетыВоВложения = Истина; ВидимостьДоступностьКорректность(ЭтотОбъект, "ИспользоватьЭлектроннуюПочту"); + ИначеЕсли Объект.ИспользоватьЭлектроннуюПочту И НЕ Объект.ВставлятьОтчетыВТекстПисьма И НЕ Объект.ТолькоУведомить Тогда + Объект.ПрикреплятьОтчетыВоВложения = Истина; КонецЕсли; КонецПроцедуры @@ -937,6 +983,7 @@ &НаКлиенте Процедура АрхивироватьПриИзменении(Элемент) ВидимостьДоступностьКорректность(ЭтотОбъект, "Архивировать"); + ПроверкаПриУстановкеПароляАрхиваВставлятьОтчетыВТекстПисьма(); КонецПроцедуры &НаКлиенте @@ -953,20 +1000,11 @@ КонецЕсли; КонецПроцедуры -&НаКлиенте -Процедура РодительОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) - Если ВыбранноеЗначение = Кэш.ГруппаЛичныхРассылок Тогда - СтандартнаяОбработка = Ложь; - ПоказатьПредупреждение(, НСтр("ru = 'Выбранная группа используется только для личных рассылок по электронной почте'")); - КонецЕсли; -КонецПроцедуры - &НаКлиенте Процедура ИмяАрхиваОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) - Если ВыбранноеЗначение = "НаименованиеДатаРассылки" Тогда + Если ВыбранноеЗначение = "НаименованиеДатаРассылки" Тогда ДобавитьШаблон(); - СтандартнаяОбработка = Ложь; ТекущийЭлемент.ВыделенныйТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = '%1 от %2'"), "[НаименованиеРассылки]", "[ДатаВыполнения()]"); @@ -993,6 +1031,9 @@ &НаКлиенте Процедура ПарольАрхиваПриИзменении(Элемент) ПарольАрхиваИзменен = Истина; + + ПроверкаПриУстановкеПароляАрхиваВставлятьОтчетыВТекстПисьма(); + КонецПроцедуры &НаКлиенте @@ -1005,6 +1046,64 @@ &НаКлиенте Процедура Подключаемый_СертификатДляШифрованияПриИзменении(Элемент) СертификатДляШифрованияИзменен = Истина; + + Если ЗначениеЗаполнено(ЭтотОбъект["СертификатДляШифрования"]) И Объект.ВставлятьОтчетыВТекстПисьма + И Объект.ПрикреплятьОтчетыВоВложения Тогда + + ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю(); + ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь; + + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("УстановитьСертификатДляШифрования", НСтр("ru = 'Установить сертификат для шифрования'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр( + "ru = 'Для того чтобы установить сертификат для шифрования, необходимо убрать отчеты из текста письма.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "УстановитьСертификатДляШифрования"; + + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( + Новый ОписаниеОповещения("ПослеОтветаНаВопросПарольШифрованиеОтчетыВТекстеПисьма", ЭтотОбъект), ТекстВопроса, + КнопкиВопроса, ПараметрыВопроса); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьПаролиЗашифроватьПриИзменении(Элемент) + + ВидимостьДоступностьПаролейСертификатов(ЭтотОбъект); + + Если НЕ Объект.ВставлятьОтчетыВТекстПисьма И Объект.УстановитьПаролиЗашифровать Тогда + ОткрытьФормуПаролиШифрование(); + ИначеЕсли Объект.ВставлятьОтчетыВТекстПисьма И Объект.УстановитьПаролиЗашифровать Тогда + ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю(); + ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь; + + Если ДоступноШифрованиеВложений Тогда + Если Объект.Архивировать Тогда + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("УстановитьПаролиЗашифровать", НСтр("ru = 'Установить пароли и зашифровать'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр("ru = 'Для того чтобы установить пароли и зашифровать, необходимо убрать отчеты из текста письма.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "УстановитьПаролиЗашифровать"; + Иначе + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("УстановитьПаролиЗашифровать", НСтр("ru = 'Зашифровать'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр("ru = 'Для того чтобы зашифровать отчеты, необходимо убрать отчеты из текста письма.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "Зашифровать"; + КонецЕсли; + ИначеЕсли Объект.Архивировать Тогда + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("УстановитьПаролиЗашифровать", НСтр("ru = 'Установить пароли'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр("ru = 'Для того чтобы установить пароли, необходимо убрать отчеты из текста письма.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "УстановитьПароли"; + КонецЕсли; + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( + Новый ОписаниеОповещения("ПослеОтветаНаВопросУстановитьПаролиОтчетыВТекстеПисьма", ЭтотОбъект), ТекстВопроса, + КнопкиВопроса, ПараметрыВопроса); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -1016,10 +1115,11 @@ СтандартнаяОбработка = Ложь; СтруктураЗаполнения = Новый Структура; - СтруктураЗаполнения.Вставить("Форматы", ПредставлениеФорматовПоУмолчанию()); + СтруктураЗаполнения.Вставить("Форматы", ""); СтруктураЗаполнения.Вставить("ОтправлятьЕслиПустой", Ложь); СтруктураЗаполнения.Вставить("НеОтправлятьПустой", Истина); - СтруктураЗаполнения.Вставить("Доступность", Истина); + СтруктураЗаполнения.Вставить("Доступность", Истина); + СтруктураЗаполнения.Вставить("ШаблонНаименования", "[НаименованиеОтчета] [ФорматОтчета]"); МассивНовыхСтрок = ВыборПодборПеретаскиваниеВТабличнуюЧасть( ВыбранноеЗначение, @@ -1065,7 +1165,7 @@ Если СтруктураВыбора.Успешно.Количество = 0 Тогда ЗаголовокОповещения = Неопределено; - ТекстОповещения = НСтр("ru = 'Все выбранные отчеты уже включены в рассылку'"); + ТекстОповещения = НСтр("ru = 'Все выбранные отчеты уже включены в рассылку.'"); Иначе Если СтруктураВыбора.Выбрано.Количество = 1 Тогда ЗаголовокОповещения = НСтр("ru = 'Отчет включен в рассылку'"); @@ -1082,7 +1182,7 @@ БиблиотекаКартинок.Успешно32); КонецЕсли; - + ПроверитьНаличиеПериодовВОтчетах(СтруктураВыбора.Успешно.МассивСтрок); ВидимостьДоступностьКорректность(ЭтотОбъект, "Отчеты"); КонецПроцедуры @@ -1242,7 +1342,7 @@ КонецЕсли; ОчиститьФормат(СтрокаОтчеты.Отчет); - СтрокаОтчеты.Форматы = ПредставлениеФорматовПоУмолчанию(); + СтрокаОтчеты.Форматы = ""; КонецПроцедуры &НаКлиенте @@ -1263,6 +1363,34 @@ ТекущиеДанные.ОтправлятьЕслиПустой = Не ТекущиеДанные.НеОтправлятьПустой; КонецПроцедуры +&НаКлиенте +Процедура ФорматыОтчетовПриАктивизацииСтроки(Элемент) + + СтрокаФорматыОтчетов = Элемент.ТекущиеДанные; + Если СтрокаФорматыОтчетов = Неопределено Тогда + Возврат; + КонецЕсли; + + Элементы.ФорматыОтчетовШаблонНаименования.СписокВыбора.Очистить(); + Элементы.ФорматыОтчетовШаблонНаименования.СписокВыбора.Добавить("НаименованиеОтчета", НСтр("ru = 'Наименование отчета'")); + Элементы.ФорматыОтчетовШаблонНаименования.СписокВыбора.Добавить("НаименованиеОтчетаФормат", НСтр("ru = 'Наименование отчета, формат'")); + Если СтрокаФорматыОтчетов.ЕстьПериод Тогда + Элементы.ФорматыОтчетовШаблонНаименования.СписокВыбора.Добавить("НаименованиеПериод", НСтр("ru = 'Наименование отчета, период'")); + Элементы.ФорматыОтчетовШаблонНаименования.СписокВыбора.Добавить("НаименованиеПериодФормат", НСтр("ru = 'Наименование отчета, период, формат'")); + КонецЕсли; + Элементы.ФорматыОтчетовШаблонНаименования.СписокВыбора.Добавить("НаименованиеДатаРассылки", НСтр("ru = 'Наименование отчета, дата рассылки'")); + Элементы.ФорматыОтчетовШаблонНаименования.СписокВыбора.Добавить("НаименованиеДатаРассылкиФормат", НСтр("ru = 'Наименование отчета, дата рассылки, формат'")); + +КонецПроцедуры + +&НаКлиенте +Процедура ФорматыОтчетовШаблонНаименованияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + УстановитьШаблоныНаименований(ВыбранноеЗначение); + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -1282,7 +1410,7 @@ СтандартнаяОбработка = Ложь; Если Не ЗначениеЗаполнено(Объект.ТипПолучателейРассылки) Тогда - ТекстОшибки = НСтр("ru = 'Для ввода получателей выберите их тип'"); + ТекстОшибки = НСтр("ru = 'Для ввода получателей выберите их тип.'"); ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки, , "ТипПолучателейРассылки"); Возврат; КонецЕсли; @@ -1308,7 +1436,7 @@ &НаКлиенте Процедура КомандаВыполнитьСейчас(Команда) Если Не Объект.Подготовлена Тогда - ПоказатьПредупреждение(, НСтр("ru = 'Рассылка не подготовлена'")); + ПоказатьПредупреждение(, НСтр("ru = 'Рассылка не подготовлена.'")); Возврат; КонецЕсли; ПараметрыЗаписи = Новый Структура; @@ -1323,6 +1451,17 @@ ЗаписатьНаКлиенте(Неопределено, ПараметрыЗаписи); КонецПроцедуры +&НаКлиенте +Процедура ПовторнаяРассылка(Команда) + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Ссылка", Объект.Ссылка); + ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияПовторнойРассылки", ЭтотОбъект); + ОткрытьФорму("Справочник.РассылкиОтчетов.Форма.ПовторнаяРассылкаОтчетов", ПараметрыФормы, ЭтотОбъект, , , , ОписаниеОповещения, + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Страница "Отчеты" @@ -1448,7 +1587,7 @@ // Проверка - включена ли возможность персонализации рассылки. Если Не Объект.Персонализирована Тогда ПредставлениеВида = Элементы.ВидРассылки.СписокВыбора.НайтиПоЗначению("Персонализирована").Представление; - СообщениеТекст = НСтр("ru = 'Использовать получателя в параметрах возможно только для вида рассылки ""%1""'"); + СообщениеТекст = НСтр("ru = 'Использовать получателя в параметрах возможно только для вида рассылки ""%1"".'"); СообщениеТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеТекст, ПредставлениеВида); ОбщегоНазначенияКлиент.СообщитьПользователю(СообщениеТекст, , "ВидРассылки"); Возврат; @@ -1457,7 +1596,7 @@ // Получение основного типа получателей. КоличествоТипов = ТипПолучателейРассылки.Типы().Количество(); Если КоличествоТипов <> 1 И КоличествоТипов <> 2 Тогда - ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Получатели"" не заполнено'"), , "ТипПолучателейРассылки"); + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Получатели"" не заполнено.'"), , "ТипПолучателейРассылки"); Возврат; КонецЕсли; @@ -1693,7 +1832,7 @@ Обработчик = Новый ОписаниеОповещения("ЗаполнитьРасписаниеПоШаблонуЗавершение", ЭтотОбъект); СписокВариантов = РассылкаОтчетовКлиент.СписокВариантовЗаполненияРасписаний(); - СписокВариантов.ПоказатьВыборЭлемента(Обработчик, НСтр("ru = 'Выберите шаблон расписания'")); + СписокВариантов.ПоказатьВыборЭлемента(Обработчик, НСтр("ru = 'Выберите шаблон расписания.'")); КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -1736,7 +1875,7 @@ // Если НЕ Объект.Персонализирована Тогда СообщениеТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Использование получателя в тексте шаблона возможно только для вида рассылки ""%1""'"), + НСтр("ru = 'Использование получателя в тексте шаблона возможно только для вида рассылки ""%1"".'"), Элементы.ВидРассылки.СписокВыбора.НайтиПоЗначению("Персонализирована").Представление); ОбщегоНазначенияКлиент.СообщитьПользователю(СообщениеТекст, , "ВидРассылки"); Возврат; @@ -1834,22 +1973,38 @@ ДобавитьШаблон(); - Если ТекущийЭлемент = Элементы.ТекстПисьмаФорматированныйДокумент Тогда - Шаблон = ТекстПисьмаФорматированныйДокумент.ПолучитьТекст(); - ИначеЕсли ТекущийЭлемент = Элементы.ТекстПисьма Тогда - Шаблон = Объект.ТекстПисьма; - КонецЕсли; - Шаблон = Объект.ТемаПисьма + Символы.ПС + Символы.ПС + Шаблон; + КартинкиДляHTML = Новый Структура; + Шаблон = Объект.ТекстПисьма; + Если Объект.ПисьмоВФорматеHTML Тогда + ТипТекста = ПредопределенноеЗначение("Перечисление.ТипыТекстовЭлектронныхПисем.HTML"); + ТекстПисьмаФорматированныйДокумент.ПолучитьHTML(Шаблон, КартинкиДляHTML); + Шаблон = Объект.ТемаПисьма + "
    " + "
    " + Шаблон; + Иначе + ТипТекста = ПредопределенноеЗначение("Перечисление.ТипыТекстовЭлектронныхПисем.ПростойТекст"); + Шаблон = Объект.ТемаПисьма + Символы.ПС + Символы.ПС + Шаблон; + КонецЕсли; + СформированныеОтчеты = ""; Для Каждого СтрокаОтчет Из Объект.Отчеты Цикл - СформированныеОтчеты = СформированныеОтчеты + Символы.ПС - + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 (%2)", - СтрокаОтчет.Представление, - ?(СтрокаОтчет.Форматы = ПредставлениеФорматовПоУмолчанию(), ФорматыПоУмолчанию, СтрокаОтчет.Форматы)); + ПредставлениеОтчета = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1. %2", + СтрокаОтчет.НомерСтроки, СтрокаОтчет.Представление); + СформированныеОтчеты = СформированныеОтчеты + Символы.ПС + ПредставлениеОтчета; КонецЦикла; - СформированныеОтчеты = СокрЛ(СформированныеОтчеты); - + СформированныеОтчеты = СокрЛП(СформированныеОтчеты); + Если Объект.Архивировать Тогда + СформированныеОтчеты = СформированныеОтчеты + Символы.ПС + Символы.ПС + НСтр( + "ru = 'Файлы отчетов запакованы в архив'") + " "; + + СтруктураИмениАрхива = Новый Структура("НаименованиеРассылки, ДатаВыполнения", Объект.Наименование, + ОбщегоНазначенияКлиент.ДатаСеанса()); + ИмяАрхива = РассылкаОтчетовКлиентСервер.ЗаполнитьШаблон(Объект.ИмяАрхива, СтруктураИмениАрхива); + ИмяАрхива = ИмяАрхива + ".zip"; + + СформированныеОтчеты = СокрЛП( + СформированныеОтчеты + """" + ИмяАрхива + """"); + КонецЕсли; + ПараметрыДоставки = РассылкаОтчетовКлиентСервер.ПараметрыДоставки(); ЗаполнитьЗначенияСвойств(ПараметрыДоставки, Объект); ПараметрыДоставки.ВыполненаВПапку = Объект.ИспользоватьПапку; @@ -1865,9 +2020,75 @@ ПараметрыШаблона.Вставить("СформированныеОтчеты", СформированныеОтчеты); ПараметрыШаблона.Вставить("СпособДоставки", СпособДоставки); - ТекстовыйДокумент = Новый ТекстовыйДокумент; - ТекстовыйДокумент.УстановитьТекст(РассылкаОтчетовКлиентСервер.ЗаполнитьШаблон(Шаблон, ПараметрыШаблона)); - ТекстовыйДокумент.Показать(); + Если ВидРассылки = "Персонализирована" Тогда + ПервыйПолучатель = ПолучитьПервогоПолучателя(); + ПараметрыШаблона.Вставить("Получатель", ПервыйПолучатель.Наименование); + ПервыйПолучательСсылка = ПервыйПолучатель.Ссылка; + Иначе + ПервыйПолучательСсылка = Неопределено; + КонецЕсли; + ДобавитьДополнительныеПараметрыШаблона(ПараметрыШаблона, ПервыйПолучательСсылка); + + // Схематичное отображение отчетов в тексте письма + Если Объект.ВставлятьОтчетыВТекстПисьма Тогда + ОтчетыВТекстеПисьма = ""; + Для Каждого СтрокаОтчет Из Объект.Отчеты Цикл + ОтчетыВТекстеПисьма = ОтчетыВТекстеПисьма + Символы.ПС + + "------------------------------------------" + Символы.ПС + + СтрокаОтчет.Представление; + КонецЦикла; + Если Объект.ПисьмоВФорматеHTML Тогда + ОтчетыВТекстеПисьма = СтрЗаменить(ОтчетыВТекстеПисьма, Символы.ПС, Символы.ПС + "
    "); + КонецЕсли; + Шаблон = Шаблон + Символы.ПС + Символы.ПС + ОтчетыВТекстеПисьма; + КонецЕсли; + + // Вывод списка вложений + Если Объект.ПрикреплятьОтчетыВоВложения Тогда + ПлановыйСписокОтчетов = ПлановыйСписокОтчетовВоВложениях(); + Если ПлановыйСписокОтчетов.Количество() > 0 Тогда + СписокОтчетов = СтрСоединить(ПлановыйСписокОтчетов, Символы.ПС); + + ТекстВложения = Символы.ПС + Символы.ПС + НСтр("ru = 'Вложения письма:'"); + Если Объект.Архивировать Тогда + СтруктураИмениАрхива = Новый Структура("НаименованиеРассылки, ДатаВыполнения", Объект.Наименование, + ОбщегоНазначенияКлиент.ДатаСеанса()); + ИмяАрхива = РассылкаОтчетовКлиентСервер.ЗаполнитьШаблон(Объект.ИмяАрхива, СтруктураИмениАрхива); + ИмяАрхива = ИмяАрхива + ".zip"; + ТекстВложения = ТекстВложения + Символы.ПС + Символы.ПС + ИмяАрхива; + Иначе + ТекстВложения = ТекстВложения + Символы.ПС; + КонецЕсли; + НомерФайла = 1; + Для Каждого ПолноеИмяФайла Из ПлановыйСписокОтчетов Цикл + ИмяФайлаСПорядком = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1. %2", + НомерФайла, ПолноеИмяФайла); + Если Объект.ПисьмоВФорматеHTML Тогда + ТекстВложения = ТекстВложения + "

    " + ИмяФайлаСПорядком + "

    "; + Иначе + ТекстВложения = ТекстВложения + Символы.ПС + Символы.Таб + ИмяФайлаСПорядком; + КонецЕсли; + НомерФайла = НомерФайла + 1; + КонецЦикла; + + Если Объект.ПисьмоВФорматеHTML Тогда + ТекстВложения = СтрЗаменить(ТекстВложения, Символы.ПС, Символы.ПС + "
    "); + КонецЕсли; + Шаблон = Шаблон + Символы.ПС + ТекстВложения; + КонецЕсли; + КонецЕсли; + + Текст = РассылкаОтчетовКлиентСервер.ЗаполнитьШаблон(Шаблон, ПараметрыШаблона); + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("НаименованиеРассылки", Объект.Наименование); + ПараметрыФормы.Вставить("ТипТекста", ТипТекста); + ПараметрыФормы.Вставить("Текст", Текст); + Если КартинкиДляHTML.Количество() > 0 Тогда + ПараметрыФормы.Вставить("АдресКартинокДляHTML", ПоместитьКартинкиВоВременноеХранилище(КартинкиДляHTML)); + КонецЕсли; + ОткрытьФорму("Справочник.РассылкиОтчетов.Форма.ПредварительныйПросмотрПисьма", ПараметрыФормы, ЭтотОбъект, , , , , + РежимОткрытияОкнаФормы.Независимый); КонецПроцедуры @@ -1911,6 +2132,78 @@ ВидимостьДоступностьКорректность(ЭтотОбъект, "ПисьмоВФорматеHTML"); КонецПроцедуры +&НаКлиенте +Процедура ВажностьВысокая(Команда) + Объект.ВажностьПисьма = "Высокая"; + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьВысокая; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Высокая важность'"); + Модифицированность = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОбычная(Команда) + Объект.ВажностьПисьма = "Обычная"; + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНеЗадана; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Обычная важность'"); + Модифицированность = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьНизкая(Команда) + Объект.ВажностьПисьма = "Низкая"; + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНизкая; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Низкая важность'"); + Модифицированность = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ДобавитьДополнительныйПараметрТекстаПисьма(Команда) + + Если ДополнительныеПараметрыТекстаПисьма = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Не ДополнительныеПараметрыТекстаПисьма.Свойство(Команда.Имя) Тогда + Возврат; + КонецЕсли; + + ИмяПараметра = "[" + ДополнительныеПараметрыТекстаПисьма[Команда.Имя].Имя + "]"; + ДобавитьШаблон(ИмяПараметра); + +КонецПроцедуры + +&НаКлиенте +Процедура ВставлятьОтчетыВТекстПисьмаПриИзменении(Элемент) + + Если Объект.ВставлятьОтчетыВТекстПисьма Тогда + Объект.ТолькоУведомить = Ложь; + Если Объект.ПрикреплятьОтчетыВоВложения Тогда + ПроверкаШифрованияПередВключениемОтчетовВТелеПисьма(); + КонецЕсли; + Иначе + Объект.ПрикреплятьОтчетыВоВложения = Истина; + ВидимостьДоступностьКорректность(ЭтотОбъект, "ПрикреплятьОтчетыВоВложения"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПрикреплятьОтчетыВоВложенияПриИзменении(Элемент) + + Если Объект.ПрикреплятьОтчетыВоВложения Тогда + Объект.ТолькоУведомить = Ложь; + Если Объект.ПрикреплятьОтчетыВоВложения Тогда + ПроверкаШифрованияПередВключениемОтчетовВТелеПисьма(); + КонецЕсли; + Иначе + Объект.ВставлятьОтчетыВТекстПисьма = Истина; + КонецЕсли; + + ВидимостьДоступностьКорректность(ЭтотОбъект, "ПрикреплятьОтчетыВоВложения"); + + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Страница "Дополнительно" @@ -1946,35 +2239,70 @@ &НаКлиенте Процедура СоздатьПарольАрхива(Команда) - Если ЗначениеЗаполнено(ПарольАрхива) Тогда - + Если ЗначениеЗаполнено(ПарольАрхива) Тогда ПоказатьВопрос( Новый ОписаниеОповещения("ПриСозданииПароляАрхива", ЭтотОбъект), НСтр("ru = 'Пароль для архива уже установлен. Установить новый пароль?'"), - РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет); - + РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет); Возврат; - КонецЕсли; - ПарольАрхива = СоздатьПароль(); - ПарольАрхиваИзменен = Истина; + Если Объект.ВставлятьОтчетыВТекстПисьма И Объект.ПрикреплятьОтчетыВоВложения Тогда + ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю(); + ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь; + + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("УстановитьПарольАвтоматически", НСтр("ru = 'Установить пароль'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр( + "ru = 'Для того чтобы установить пароль, необходимо убрать отчеты из текста письма.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "УстановитьПароль"; + + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( + Новый ОписаниеОповещения("ПослеОтветаНаВопросПарольШифрованиеОтчетыВТекстеПисьма", ЭтотОбъект), ТекстВопроса, + КнопкиВопроса, ПараметрыВопроса); + Иначе + ПарольАрхива = СоздатьПароль(); + ПарольАрхиваИзменен = Истина; + КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПаролиШифрование(Команда) - - ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("АдресПолучателей", ПоместитьПолучателейВХранилище()); - ПараметрыФормы.Вставить("Архивировать", Объект.Архивировать); - ПараметрыФормы.Вставить("ТипПолучателейРассылки", ТипПолучателейРассылки); - ПараметрыФормы.Вставить("ВидПочтовогоАдресаПолучателей", Объект.ВидПочтовогоАдресаПолучателей); - ПараметрыФормы.Вставить("Ссылка", Объект.Ссылка); - ПараметрыФормы.Вставить("НаименованиеРассылки", Объект.Наименование); - ОткрытьФорму("Справочник.РассылкиОтчетов.Форма.ПаролиШифрование", ПараметрыФормы, ЭтотОбъект, , , , , - РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); - + + ОткрытьФормуПаролиШифрование(); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьШаблонНаименование(Команда) + УстановитьШаблоныНаименований("НаименованиеОтчета", Истина); +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьШаблонНаименованиеФормат(Команда) + УстановитьШаблоныНаименований("НаименованиеОтчетаФормат", Истина); +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьШаблонНаименованиеПериод(Команда) + УстановитьШаблоныНаименований("НаименованиеПериод", Истина); +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьШаблонНаименованиеПериодФормат(Команда) + УстановитьШаблоныНаименований("НаименованиеПериодФормат", Истина); +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьШаблонНаименованиеДатаРассылки(Команда) + УстановитьШаблоныНаименований("НаименованиеДатаРассылки", Истина); +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьШаблонНаименованиеДатаРассылкиФормат(Команда) + УстановитьШаблоныНаименований("НаименованиеДатаРассылкиФормат", Истина); КонецПроцедуры #КонецОбласти @@ -2183,7 +2511,24 @@ НовыйФрагмент = Переменные.Префикс + СтрокаРезультат + Переменные.Постфикс; СтарыйФрагмент = Переменные.Префикс + Переменные.ТекстФормата + Переменные.Постфикс; - Если Переменные.Элемент = Элементы.ТекстПисьмаФорматированныйДокумент Тогда + Если Переменные.Свойство("ИзменятьШаблонНаименованияОтчетаМножественно") + И Переменные.ИзменятьШаблонНаименованияОтчетаМножественно Тогда + Если Переменные.СтарыйФрагментНайден Тогда + ШаблонНаименования = СтрЗаменить(Переменные.СтарыйТекст, СтарыйФрагмент, НовыйФрагмент); + Иначе + ШаблонНаименования = Переменные.СтарыйТекст + НовыйФрагмент; + КонецЕсли; + УстановитьШаблоныНаименованийДляВсехОтчетов(Переменные.ИмяШаблона, ШаблонНаименования); + ИначеЕсли Переменные.Свойство("ИзменятьШаблонНаименованияОтчета") И Переменные.ИзменятьШаблонНаименованияОтчета Тогда + Если Переменные.СтарыйФрагментНайден Тогда + Если СтрокаРезультат = Переменные.ТекстФормата Тогда + Возврат; + КонецЕсли; + Элементы.ФорматыОтчетов.ТекущиеДанные.ШаблонНаименования = СтрЗаменить(Переменные.СтарыйТекст, СтарыйФрагмент, НовыйФрагмент); + Иначе + Элементы.ФорматыОтчетов.ТекущиеДанные.ШаблонНаименования = Переменные.СтарыйТекст + НовыйФрагмент; + КонецЕсли; + ИначеЕсли Переменные.Элемент = Элементы.ТекстПисьмаФорматированныйДокумент Тогда ЗаменаВыполнена = Ложь; Если Переменные.СтарыйФрагментНайден Тогда РезультатПоиска = ТекстПисьмаФорматированныйДокумент.НайтиТекст(СтарыйФрагмент); @@ -2482,6 +2827,327 @@ КонецПроцедуры +&НаКлиенте +Процедура УстановитьШаблоныНаименований(ИмяШаблона, МножественноеИзменение = Ложь) + + Если МножественноеИзменение Тогда + УстановитьШаблоныНаименованийДляВсехОтчетов(ИмяШаблона); + Иначе + Шаблоны = ШаблоныНаименований(); + Элементы.ФорматыОтчетов.ТекущиеДанные.ШаблонНаименования = Шаблоны.Получить(ИмяШаблона); + КонецЕсли; + + Модифицированность = Истина; + + Если ИмяШаблона = "НаименованиеОтчета" Или ИмяШаблона = "НаименованиеОтчетаФормат" Тогда + Возврат; + КонецЕсли; + + Переменные = ПеременныеВыбораШаблонаНаименованияОтчета(ИмяШаблона, МножественноеИзменение); + Обработчик = Новый ОписаниеОповещения("ДобавитьИзменитьШаблонДатыРассылкиЗавершение", ЭтотОбъект, Переменные); + + Диалог = Новый КонструкторФорматнойСтроки; + Диалог.ДоступныеТипы = Новый ОписаниеТипов("Дата"); + Диалог.Текст = Переменные.ТекстФормата; + Диалог.Показать(Обработчик); + +КонецПроцедуры + +&НаКлиенте +Функция ПеременныеВыбораШаблонаНаименованияОтчета(ИмяШаблона, МножественноеИзменение) + + Переменные = Новый Структура; + Переменные.Вставить("Элемент", Неопределено); + Переменные.Вставить("СтарыйТекст", ""); + Переменные.Вставить("Постфикс", ")]"); + Переменные.Вставить("ТекстФормата", ""); + Переменные.Вставить("СтарыйФрагментНайден", Ложь); + Переменные.Вставить("ИзменятьШаблонНаименованияОтчета", Истина); + Переменные.Вставить("ИзменятьШаблонНаименованияОтчетаМножественно", МножественноеИзменение); + Переменные.Вставить("ИмяШаблона", ИмяШаблона); + + Если ИмяШаблона = "НаименованиеДатаРассылки" Тогда + + Переменные.Вставить("Префикс", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 от %2'"), "[НаименованиеОтчета]", "[ДатаРассылки(")); + + ИначеЕсли ИмяШаблона = "НаименованиеДатаРассылкиФормат" Тогда + + Переменные.Вставить("Префикс", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 от %2'"), "[НаименованиеОтчета]", "[ДатаРассылки(")); + + Переменные.Вставить("Постфикс", ")] [ФорматОтчета]"); + + ИначеЕсли ИмяШаблона = "НаименованиеПериод" Тогда + + Переменные.Вставить("Префикс", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 за %2'"), "[НаименованиеОтчета]", "[Период(")); + + ИначеЕсли ИмяШаблона = "НаименованиеПериодФормат" Тогда + + Переменные.Вставить("Префикс", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 за %2'"), "[НаименованиеОтчета]", "[Период(")); + + Переменные.Вставить("Постфикс", ")] [ФорматОтчета]"); + КонецЕсли; + + Возврат Переменные; + +КонецФункции + +&НаКлиенте +Процедура ПроверкаШифрованияПередВключениемОтчетовВТелеПисьма() + + ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю(); + ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь; + + Если Объект.Персонализирована И Объект.УстановитьПаролиЗашифровать Тогда + + Если ДоступноШифрованиеВложений Тогда + Если Объект.Архивировать Тогда + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("ОтключитьПаролиШифрование", НСтр("ru = 'Вставлять отчеты в текст письма'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр("ru = 'Для того чтобы вставлять отчеты в текст письма, нужно отключить пароли и шифрование.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "ОтключитьПаролиШифрование"; + Иначе + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("ОтключитьПаролиШифрование", НСтр("ru = 'Вставлять отчеты в текст письма'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр("ru = 'Для того чтобы вставлять отчеты в текст письма, нужно отключить шифрование.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "ОтключитьШифрование"; + КонецЕсли; + ИначеЕсли Объект.Архивировать Тогда + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("ОтключитьПаролиШифрование", НСтр("ru = 'Вставлять отчеты в текст письма'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр("ru = 'Для того чтобы вставлять отчеты в текст письма, нужно отключить пароли.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "ОтключитьПароли"; + КонецЕсли; + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( + Новый ОписаниеОповещения("ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование", ЭтотОбъект), ТекстВопроса, + КнопкиВопроса, ПараметрыВопроса); + + ИначеЕсли Объект.Личная Тогда + + Если ДоступноШифрованиеВложений Тогда + + Если Объект.Архивировать И ЗначениеЗаполнено(ПарольАрхива) И ЗначениеЗаполнено(ЭтотОбъект["СертификатДляШифрования"]) Тогда + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("ОтключитьПарольШифрование", НСтр("ru = 'Вставлять отчеты в текст письма'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр("ru = 'Для того чтобы вставлять отчеты в текст письма, нужно отключить пароль и шифрование.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "ОтключитьПарольШифрование"; + + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( + Новый ОписаниеОповещения("ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование", ЭтотОбъект), + ТекстВопроса, КнопкиВопроса, ПараметрыВопроса); + + ИначеЕсли Объект.Архивировать И ЗначениеЗаполнено(ПарольАрхива) Тогда + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("ОчиститьПароль", НСтр("ru = 'Вставлять отчеты в текст письма'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр( + "ru = 'Для того чтобы вставлять отчеты в текст письма, нужно очистить пароль архива.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "ОчиститьПароль"; + + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( + Новый ОписаниеОповещения("ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование", ЭтотОбъект), + ТекстВопроса, КнопкиВопроса, ПараметрыВопроса); + + ИначеЕсли ЗначениеЗаполнено(ЭтотОбъект["СертификатДляШифрования"]) Тогда + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("ОчиститьСертификат", НСтр("ru = 'Вставлять отчеты в текст письма'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр("ru = 'Для того чтобы вставлять отчеты в текст письма, нужно очистить поле сертификата для шифрования.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "ОчиститьСертификат"; + + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( + Новый ОписаниеОповещения("ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование", ЭтотОбъект), + ТекстВопроса, КнопкиВопроса, ПараметрыВопроса); + КонецЕсли; + ИначеЕсли Объект.Архивировать И ЗначениеЗаполнено(ПарольАрхива) Тогда + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("ОчиститьПароль", НСтр("ru = 'Вставлять отчеты в текст письма'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр( + "ru = 'Для того чтобы вставлять отчеты в текст письма, нужно очистить пароль архива.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "ОчиститьПароль"; + + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( + Новый ОписаниеОповещения("ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование", ЭтотОбъект), ТекстВопроса, + КнопкиВопроса, ПараметрыВопроса); + КонецЕсли; + + ИначеЕсли Не Объект.Персонализирована И Не Объект.Личная И Объект.Архивировать И ЗначениеЗаполнено(ПарольАрхива) Тогда + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("ОчиститьПароль", НСтр("ru = 'Вставлять отчеты в текст письма'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр( + "ru = 'Для того чтобы вставлять отчеты в текст письма, нужно очистить пароль архива.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "ОчиститьПароль"; + + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( + Новый ОписаниеОповещения("ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование", ЭтотОбъект), ТекстВопроса, + КнопкиВопроса, ПараметрыВопроса); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование(Результат, Параметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Результат.Значение = "ОтключитьПаролиШифрование" Тогда + Объект.УстановитьПаролиЗашифровать = Ложь; + Элементы.ПаролиШифрование.Доступность = Ложь; + ИначеЕсли Результат.Значение = "ОтключитьПарольШифрование" Тогда + ПарольАрхива = ""; + ЭтотОбъект["СертификатДляШифрования"] = ""; + ПарольАрхиваИзменен = Истина; + СертификатДляШифрованияИзменен = Истина; + ИначеЕсли Результат.Значение = "ОчиститьПароль" Тогда + ПарольАрхива = ""; + ПарольАрхиваИзменен = Истина; + ИначеЕсли Результат.Значение = "ОчиститьСертификат" Тогда + ЭтотОбъект["СертификатДляШифрования"] = ""; + СертификатДляШифрованияИзменен = Истина; + ИначеЕсли Результат.Значение = КодВозвратаДиалога.Отмена Тогда + Объект.ВставлятьОтчетыВТекстПисьма = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверкаПриУстановкеПароляАрхиваВставлятьОтчетыВТекстПисьма() + + Если ЗначениеЗаполнено(ПарольАрхива) И Объект.Архивировать И Объект.ВставлятьОтчетыВТекстПисьма + И Объект.ПрикреплятьОтчетыВоВложения Тогда + ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю(); + ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь; + + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить("УстановитьПароль", НСтр("ru = 'Установить пароль'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + ТекстВопроса = НСтр( + "ru = 'Для того чтобы установить пароль, необходимо убрать отчеты из текста письма.'"); + ПараметрыВопроса.КнопкаПоУмолчанию = "УстановитьПароль"; + + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( + Новый ОписаниеОповещения("ПослеОтветаНаВопросПарольШифрованиеОтчетыВТекстеПисьма", ЭтотОбъект), ТекстВопроса, + КнопкиВопроса, ПараметрыВопроса); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеОтветаНаВопросПарольШифрованиеОтчетыВТекстеПисьма(Результат, Параметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Результат.Значение = "УстановитьПароль" Тогда + Объект.ВставлятьОтчетыВТекстПисьма = Ложь; + ИначеЕсли Результат.Значение = "УстановитьПарольАвтоматически" Тогда + Объект.ВставлятьОтчетыВТекстПисьма = Ложь; + ПарольАрхива = СоздатьПароль(); + ПарольАрхиваИзменен = Истина; + ИначеЕсли Результат.Значение = "УстановитьСертификатДляШифрования" Тогда + Объект.ВставлятьОтчетыВТекстПисьма = Ложь; + ИначеЕсли Результат.Значение = КодВозвратаДиалога.Отмена Тогда + ПарольАрхива = ""; + ПарольАрхиваИзменен = Истина; + ЭтотОбъект["СертификатДляШифрования"] = ""; + СертификатДляШифрованияИзменен = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеОтветаНаВопросУстановитьПаролиОтчетыВТекстеПисьма(Результат, Параметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Результат.Значение = "УстановитьПаролиЗашифровать" Тогда + Объект.ВставлятьОтчетыВТекстПисьма = Ложь; + ОткрытьФормуПаролиШифрование(); + ИначеЕсли Результат.Значение = КодВозвратаДиалога.Отмена Тогда + Объект.УстановитьПаролиЗашифровать = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьФормуПаролиШифрование() + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("АдресПолучателей", ПоместитьПолучателейВХранилище()); + ПараметрыФормы.Вставить("Архивировать", Объект.Архивировать); + ПараметрыФормы.Вставить("ТипПолучателейРассылки", ТипПолучателейРассылки); + ПараметрыФормы.Вставить("ВидПочтовогоАдресаПолучателей", Объект.ВидПочтовогоАдресаПолучателей); + ПараметрыФормы.Вставить("Ссылка", Объект.Ссылка); + ПараметрыФормы.Вставить("НаименованиеРассылки", Объект.Наименование); + ОткрытьФорму("Справочник.РассылкиОтчетов.Форма.ПаролиШифрование", ПараметрыФормы, ЭтотОбъект, , , , , + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + + +&НаКлиенте +Процедура УстановитьШаблоныНаименованийДляВсехОтчетов(ИмяШаблона, ШаблонНаименования = "") + + Шаблоны = ШаблоныНаименований(); + + ИспользуетсяПериод = ИмяШаблона = "НаименованиеПериод" Или ИмяШаблона = "НаименованиеПериодФормат"; + Для Каждого СтрокаОтчет Из Объект.Отчеты Цикл + Если ИспользуетсяПериод Тогда + ИдентификаторСтроки = СтрокаОтчет.ПолучитьИдентификатор(); + Если Не СтрокаОтчет.ЕстьПериод Тогда + СтрокаОтчет.ШаблонНаименования = Шаблоны.Получить("НаименованиеОтчетаФормат"); + Продолжить; + КонецЕсли; + КонецЕсли; + Если ЗначениеЗаполнено(ШаблонНаименования) Тогда + СтрокаОтчет.ШаблонНаименования = ШаблонНаименования; + Иначе + СтрокаОтчет.ШаблонНаименования = Шаблоны.Получить(ИмяШаблона); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Функция ШаблоныНаименований() + + Шаблоны = Новый Соответствие; + Шаблоны.Вставить("НаименованиеОтчета", "[НаименованиеОтчета]"); + Шаблоны.Вставить("НаименованиеОтчетаФормат", "[НаименованиеОтчета] [ФорматОтчета]"); + Шаблоны.Вставить("НаименованиеПериод", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 за %2'"), "[НаименованиеОтчета]", "[Период()]")); + Шаблоны.Вставить("НаименованиеПериодФормат", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 за %2 %3'"), "[НаименованиеОтчета]", "[Период()]", "[ФорматОтчета]")); + Шаблоны.Вставить("НаименованиеДатаРассылки", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 от %2'"), "[НаименованиеОтчета]", "[ДатаРассылки()]")); + Шаблоны.Вставить("НаименованиеДатаРассылкиФормат", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 от %2 %3'"), "[НаименованиеОтчета]", "[ДатаРассылки()]", "[ФорматОтчета]")); + + Возврат Шаблоны; + +КонецФункции + +&НаКлиенте +Процедура ПослеЗакрытияПовторнойРассылки(Результат, Параметры) Экспорт + + ЭтотОбъект.Прочитать(); + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Клиент, Сервер @@ -2528,17 +3194,17 @@ Элементы.УчетнаяЗапись.АвтоОтметкаНезаполненного = Объект.Подготовлена И Объект.ИспользоватьЭлектроннуюПочту; КонецЕсли; - + Если Изменения = "" Или Изменения = "ВидРассылки" Тогда // Корректность Если Объект.Личная И Объект.Персонализирована Тогда Объект.Личная = Ложь; КонецЕсли; - ИспользуетсяГруппаЛичныхРассылок = (Объект.Родитель = Форма.Кэш.ГруппаЛичныхРассылок); - Если Объект.Личная <> ИспользуетсяГруппаЛичныхРассылок Тогда + ГруппаВходитВИерархиюЛичныхРассылок = ПринадлежитГруппеЛичныхРассылок(Объект.Родитель); + Если Объект.Личная <> ГруппаВходитВИерархиюЛичныхРассылок Тогда УстановитьМодифицированностьФормы(Форма, "Родитель", , - НСтр("ru = 'Группа установлена в соответствии с видом рассылки'")); + НСтр("ru = 'Группа установлена в соответствии с видом рассылки.'")); Объект.Родитель = ?(Объект.Личная, Форма.Кэш.ГруппаЛичныхРассылок, Неопределено); КонецЕсли; @@ -2561,7 +3227,6 @@ КонецЕсли; // Видимость & Доступность - Элементы.Родитель.Доступность = Не Объект.Личная; Элементы.ВидыРассылки.ТекущаяСтраница = ?(Объект.Личная, Элементы.ВидыРассылкиЛичная, Элементы.ВидыРассылкиДляПолучателей); Элементы.ДругиеСпособыДоставки.Видимость = РассылкаОбщая; @@ -2615,7 +3280,6 @@ Если Изменения = "" Или Изменения = "ДругойСпособДоставки" Или Изменения = "Публиковать" Или Изменения = "ВидРассылки" Тогда Элементы.ДругойСпособДоставки.Доступность = Форма.Публиковать; Элементы.ПараметрыДоставки.Доступность = Форма.Публиковать; - Элементы.ВключатьДатуВИмяФайла.Доступность = Форма.Публиковать; Элементы.ПараметрыДоставки.ТекущаяСтраница = Элементы[Форма.ДругойСпособДоставки]; Элементы.Папка.Видимость = (Элементы.ПараметрыДоставки.ТекущаяСтраница = Элементы.ИспользоватьПапку); @@ -2629,6 +3293,12 @@ Элементы.ПараметрыПисьма.Доступность = Объект.ИспользоватьЭлектроннуюПочту; Элементы.ДополнительныеПараметрыРассылкиПоЭлектроннойПочте.Доступность = Объект.ИспользоватьЭлектроннуюПочту; Элементы.ПолучателиРассылки.Доступность = Объект.ИспользоватьЭлектроннуюПочту; + Элементы.ПрикреплятьОтчетыВоВложения.Доступность = Объект.ИспользоватьЭлектроннуюПочту; + КонецЕсли; + + Если Изменения = "" Или Изменения = "ИспользоватьЭлектроннуюПочту" Или Изменения = "ВидРассылки" + Или Изменения = "ПрикреплятьОтчетыВоВложения" Или Изменения = "Публиковать" Или Изменения = "ТолькоУведомить" Тогда + Элементы.НастройкиФайловОтчетов.Доступность = Объект.ПрикреплятьОтчетыВоВложения Или Форма.Публиковать; КонецЕсли; Если Изменения = "" Или Изменения = "ПолучателиРассылки" Тогда @@ -2804,32 +3474,35 @@ Если Объект.Персонализирована Тогда Элементы["ГруппаСертификатДляШифрования"].Видимость = Ложь; Если Объект.Архивировать Тогда - Элементы.ПаролиШифрование.Заголовок = НСтр("ru = 'Пароли и шифрование'"); + Элементы.ПаролиШифрование.Заголовок = НСтр("ru = 'Установить пароли и зашифровать'"); Иначе - Элементы.ПаролиШифрование.Заголовок = НСтр("ru = 'Шифрование'"); + Элементы.ПаролиШифрование.Заголовок = НСтр("ru = 'Зашифровать'"); КонецЕсли; - Элементы.ПаролиШифрование.Видимость = Истина; + Элементы.ГруппаПаролиШифрование.Видимость = Истина; Элементы.ГруппаПарольАрхива.Видимость = Ложь; + Элементы.ПаролиШифрование.Доступность = Объект.УстановитьПаролиЗашифровать; Элементы.ПаролиШифрование.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка; Элементы.ПаролиШифрование.РасширеннаяПодсказка.Заголовок = НСтр("ru = 'Установка и настройка паролей и шифрования. |При рассылке отчетов по электронной почте необходимо учитывать, |что некоторые почтовые сервера могут не принимать зашифрованные файлы.'"); + Элементы.УстановитьПаролиЗашифровать.Доступность = Истина; Иначе Элементы["ГруппаСертификатДляШифрования"].Видимость = ?(Форма.Объект.Личная, Истина, Ложь); Элементы.ГруппаПарольАрхива.Видимость = Истина; - Элементы.ПаролиШифрование.Видимость = Ложь; + Элементы.ГруппаПаролиШифрование.Видимость = Ложь; КонецЕсли; Иначе Если Объект.Персонализирована Тогда - Элементы.ПаролиШифрование.Заголовок = НСтр("ru = 'Пароли'"); - Элементы.ПаролиШифрование.Видимость = Истина; + Элементы.ПаролиШифрование.Заголовок = НСтр("ru = 'Установить пароли'"); + Элементы.ГруппаПаролиШифрование.Видимость = Истина; Элементы.ГруппаПарольАрхива.Видимость = Ложь; - Элементы.ПаролиШифрование.Доступность = Объект.Архивировать; + Элементы.ПаролиШифрование.Доступность = Объект.Архивировать И Объект.УстановитьПаролиЗашифровать; Элементы.ПаролиШифрование.ОтображениеПодсказки = ОтображениеПодсказки.Авто; Элементы.ПаролиШифрование.РасширеннаяПодсказка.Заголовок = НСтр("ru = 'Установка и настройка паролей.'"); + Элементы.УстановитьПаролиЗашифровать.Доступность = Объект.Архивировать; Иначе Элементы.ГруппаПарольАрхива.Видимость = Истина; - Элементы.ПаролиШифрование.Видимость = Ложь; + Элементы.ГруппаПаролиШифрование.Видимость = Ложь; Если Элементы.Найти("ГруппаСертификатДляШифрования") <> Неопределено Тогда Элементы["ГруппаСертификатДляШифрования"].Видимость = Ложь; КонецЕсли; @@ -2944,7 +3617,7 @@ КонецЕсли; КонецЦикла; - ТекстСообщения = НСтр("ru = 'Не выбрано ни одного получателя'"); + ТекстСообщения = НСтр("ru = 'Не выбрано ни одного получателя.'"); Сообщение = Новый СообщениеПользователю; Сообщение.Текст = ТекстСообщения; @@ -3162,8 +3835,9 @@ КонецЦикла; Расписание.Месяцы = ВсеМесяцы; - Объект.ПериодичностьРасписания = Перечисления.ПериодичностиРасписанийРассылокОтчетов.Ежедневно; // "Каждый день" + Объект.ПериодичностьРасписания = Перечисления.ПериодичностиРасписанийРассылокОтчетов.Ежедневно; Если Вариант = 2 Тогда // "Каждый второй день" + Объект.ПериодичностьРасписания = Перечисления.ПериодичностиРасписанийРассылокОтчетов.Ежедневно; Расписание.ПериодПовтораДней = 2; ИначеЕсли Вариант = 3 Тогда // "Каждый четвертый день" @@ -3350,6 +4024,275 @@ Возврат ПоместитьВоВременноеХранилище(Объект.Получатели.Выгрузить(), УникальныйИдентификатор); КонецФункции +&НаСервере +Функция НаличиеПериодаВНастройках(ИдентификаторСтроки) + + СтрокаОтчеты = Объект.Отчеты.НайтиПоИдентификатору(ИдентификаторСтроки); + Если СтрокаОтчеты = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Если ЭтоАдресВременногоХранилища(СтрокаОтчеты.АдресНастроек) Тогда + ПользовательскиеНастройки = ПолучитьИзВременногоХранилища(СтрокаОтчеты.АдресНастроек); + Иначе + ИндексСтроки = Объект.Отчеты.Индекс(СтрокаОтчеты); + ОбъектСтрокаОтчеты = РеквизитФормыВЗначение("Объект").Отчеты.Получить(ИндексСтроки); + ПользовательскиеНастройки = ?(ОбъектСтрокаОтчеты = Неопределено, Неопределено, ОбъектСтрокаОтчеты.Настройки.Получить()); + КонецЕсли; + + Если ПользовательскиеНастройки = Неопределено Тогда + ПараметрыОтчета = Новый Структура("Отчет, Настройки", СтрокаОтчеты.Отчет, Неопределено); + ПараметрыЖурнала = Новый Структура; + ПараметрыЖурнала.Вставить("ИмяСобытия", НСтр("ru = 'Рассылка отчетов. Инициализация отчета'", ОбщегоНазначения.КодОсновногоЯзыка())); + ПараметрыЖурнала.Вставить("Данные", ?(ЗначениеЗаполнено(Объект.Ссылка), Объект.Ссылка, СтрокаОтчеты.Отчет)); + ПараметрыЖурнала.Вставить("Метаданные", Метаданные.Справочники.РассылкиОтчетов); + ПараметрыЖурнала.Вставить("МассивОшибок", Новый Массив); + + РассылкаОтчетов.ИнициализироватьОтчет( + ПараметрыЖурнала, + ПараметрыОтчета, + Объект.Персонализирована, + ЭтотОбъект.УникальныйИдентификатор); + Если ПараметрыОтчета.НастройкиКД <> Неопределено Тогда + ПользовательскиеНастройки = ПараметрыОтчета.НастройкиКД.ПараметрыДанных; + КонецЕсли; + КонецЕсли; + + Период = РассылкаОтчетов.ПолучитьПериодИзПользовательскихНастроек(ПользовательскиеНастройки); + Если Период <> Неопределено Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +&НаСервере +Процедура ДобавитьДополнительныеПараметрыШаблона(ПараметрыШаблона, Получатель) + + Если ДополнительныеПараметрыТекстаПисьма = Неопределено Тогда + Возврат; + КонецЕсли; + + ДополнительныеПараметрыШаблона = Новый Структура; + Для Каждого Параметр Из ДополнительныеПараметрыТекстаПисьма Цикл + ДополнительныеПараметрыШаблона.Вставить(Параметр.Значение.Имя, ""); + КонецЦикла; + + РассылкаОтчетовПереопределяемый.ПриПолученииПараметровТекстаПисьма(ВидРассылки, ТипПолучателейРассылки, Получатель, ДополнительныеПараметрыШаблона); + + Для Каждого Параметр Из ДополнительныеПараметрыШаблона Цикл + ПараметрыШаблона.Вставить(Параметр.Ключ, Параметр.Значение); + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Функция ПолучитьПервогоПолучателя() + + ПолучателиМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Объект.ТипПолучателейРассылки, Ложь); + ТипПолучателей = Объект.ТипПолучателейРассылки.КлючОбъектаМетаданных.Получить(); + + Запрос = Новый Запрос; + + Если ТипПолучателей = Тип("СправочникСсылка.Пользователи") Тогда + + ТекстЗапроса = + "ВЫБРАТЬ + | ТаблицаПолучателей.Получатель, + | ТаблицаПолучателей.Исключен + |ПОМЕСТИТЬ ТаблицаПолучателей + |ИЗ + | &ТаблицаПолучателей КАК ТаблицаПолучателей + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ + | Пользователь.Ссылка КАК Получатель, + | МАКСИМУМ(ТаблицаПолучателей.Исключен) КАК Исключен, + | Пользователи.Наименование + |ПОМЕСТИТЬ Получатели + |ИЗ + | ТаблицаПолучателей КАК ТаблицаПолучателей + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + | ПО СоставыГруппПользователей.ГруппаПользователей = ТаблицаПолучателей.Получатель + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи + | ПО Пользователи.Ссылка = СоставыГруппПользователей.Пользователь + |ГДЕ + | НЕ Пользователи.ПометкаУдаления + | И НЕ Пользователи.Недействителен + | И НЕ Пользователи.Служебный + |СГРУППИРОВАТЬ ПО + | Пользователь.Ссылка, + | Пользователи.Наименование + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 1 + | Получатели.Получатель КАК Получатель, + | Получатели.Наименование КАК Наименование + |ИЗ + | Получатели КАК Получатели + |ГДЕ + | НЕ Получатели.Исключен + | + |УПОРЯДОЧИТЬ ПО + | Наименование"; + + Иначе + + ТекстЗапроса = + "ВЫБРАТЬ + | ТаблицаПолучателей.Получатель, + | ТаблицаПолучателей.Исключен + |ПОМЕСТИТЬ ТаблицаПолучателей + |ИЗ + | &ТаблицаПолучателей КАК ТаблицаПолучателей + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 1 + | Получатели.Ссылка КАК Получатель, + | Получатели.Наименование КАК Наименование + |ИЗ + | Справочник.Пользователи КАК Получатели + |ГДЕ + | Получатели.Ссылка В ИЕРАРХИИ + | (ВЫБРАТЬ + | Получатель + | ИЗ + | ТаблицаПолучателей + | ГДЕ + | НЕ Исключен) + | И НЕ Получатели.ПометкаУдаления + | И &ЭтоНеГруппа + | + |УПОРЯДОЧИТЬ ПО + | Наименование"; + + Если Не ПолучателиМетаданные.Иерархический Тогда + // Не иерархический + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "В ИЕРАРХИИ", "В"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", ""); + ИначеЕсли ПолучателиМетаданные.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияЭлементов Тогда + // Иерархия элементов + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", ""); + Иначе + // Иерархия групп + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", "И НЕ Получатели.ЭтоГруппа"); + КонецЕсли; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Справочник.Пользователи", ПолучателиМетаданные.ПолноеИмя()); + + КонецЕсли; + + Запрос.УстановитьПараметр("ТаблицаПолучателей", Объект.Получатели.Выгрузить()); + Запрос.Текст = ТекстЗапроса; + + ПервыйПолучатель = Новый Структура ("Наименование, Ссылка", "", Новый (ТипПолучателей)); + + РезультатЗапроса = Запрос.Выполнить(); + Выборка = РезультатЗапроса.Выбрать(); + + Если Выборка.Следующий() Тогда + ПервыйПолучатель.Наименование = Выборка.Наименование; + ПервыйПолучатель.Ссылка = Выборка.Получатель; + КонецЕсли; + + Возврат ПервыйПолучатель; + +КонецФункции + +&НаСервере +Функция ПлановыйСписокОтчетовВоВложениях() + + СписокИменФайлов = Новый Массив; + ПараметрыДоставки = Новый Структура("ТранслитерироватьИменаФайлов", Объект.ТранслитерироватьИменаФайлов); + + // Параметры форматов. + ПараметрыФорматов = Новый Соответствие; + Для Каждого ФорматМД Из Метаданные.Перечисления.ФорматыСохраненияОтчетов.ЗначенияПеречисления Цикл + Формат = Перечисления.ФорматыСохраненияОтчетов[ФорматМД.Имя]; + ПараметрыФормата = РассылкаОтчетов.ПараметрыЗаписиТабличногоДокументаВФормат(Формат); + ПараметрыФормата.Вставить("Имя", ФорматМД.Имя); + ПараметрыФорматов.Вставить(Формат, ПараметрыФормата); + КонецЦикла; + + Для каждого СтрокаОтчет Из Объект.Отчеты Цикл + ФорматыОтчета = Новый Массив; + Найденные = Объект.ФорматыОтчетов.НайтиСтроки(Новый Структура("Отчет", СтрокаОтчет.Отчет)); + + Если Найденные.Количество() = 0 Тогда + Для Каждого СтрокаФормат Из СписокФорматовПоУмолчанию Цикл + Если НЕ СтрокаФормат.Пометка Тогда + Продолжить; + КонецЕсли; + ФорматыОтчета.Добавить(СтрокаФормат.Значение); + КонецЦикла; + Иначе + Для Каждого СтрокаФормат Из Найденные Цикл + ФорматыОтчета.Добавить(СтрокаФормат.Формат); + КонецЦикла; + КонецЕсли; + Если ЭтоАдресВременногоХранилища(СтрокаОтчет.АдресНастроек) Тогда + ПользовательскиеНастройки = ПолучитьИзВременногоХранилища(СтрокаОтчет.АдресНастроек); + Иначе + ИндексСтроки = Объект.Отчеты.Индекс(СтрокаОтчет); + ОбъектСтрокаОтчеты = РеквизитФормыВЗначение("Объект").Отчеты.Получить(ИндексСтроки); + ПользовательскиеНастройки = ?(ОбъектСтрокаОтчеты = Неопределено, Неопределено, ОбъектСтрокаОтчеты.Настройки.Получить()); + КонецЕсли; + Период = РассылкаОтчетов.ПолучитьПериодИзПользовательскихНастроек(ПользовательскиеНастройки); + + Для Каждого Формат Из ФорматыОтчета Цикл + ПараметрыФормата = ПараметрыФорматов.Получить(Формат); + ПолноеИмяФайла = РассылкаОтчетов.ПолноеИмяФайлаПоШаблону( + "", СтрокаОтчет.Представление, ПараметрыФормата, ПараметрыДоставки, СтрокаОтчет.ШаблонНаименования, Период); + + // Механизм расширения + РассылкаОтчетовПереопределяемый.ПередСохранениемТабличногоДокументаВФормат( + Истина, + Новый ТабличныйДокумент, + Формат, + ПолноеИмяФайла); + + СписокИменФайлов.Добавить(ПолноеИмяФайла); + КонецЦикла; + + КонецЦикла; + + Возврат СписокИменФайлов; + +КонецФункции + +&НаСервереБезКонтекста +Функция ПоместитьКартинкиВоВременноеХранилище(КартинкиДляHTML) + + ТипСтрока = Новый ОписаниеТипов("Строка"); + + Вложения = Новый ТаблицаЗначений; + Вложения.Колонки.Добавить("АдресВоВременномХранилище", ТипСтрока); + Вложения.Колонки.Добавить("Идентификатор", ТипСтрока); + Вложения.Колонки.Добавить("Расширение", ТипСтрока); + + Для Каждого КартинкаДляHTML Из КартинкиДляHTML Цикл + СтрокаВложение = Вложения.Добавить(); + ФайлВложение = КартинкаДляHTML.Значение.ПолучитьДвоичныеДанные(); + СтрокаВложение.АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ФайлВложение); + СтрокаВложение.Идентификатор = КартинкаДляHTML.Ключ; + СтрокаВложение.Расширение = Строка(КартинкаДляHTML.Значение.Формат()); + КонецЦикла; + + Возврат ПоместитьВоВременноеХранилище(Вложения); + +КонецФункции + +&НаСервереБезКонтекста +Функция ПринадлежитГруппеЛичныхРассылок(Группа) + + Возврат РассылкаОтчетов.ПринадлежитГруппеЛичныхРассылок(Группа); + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Сервер @@ -3392,6 +4335,36 @@ Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветТекстаЗапрещеннойЯчейки); Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ФорматыОтчетовШаблонНаименования.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Отчеты.ШаблонНаименования"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = ""; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветТекстаЗапрещеннойЯчейки); + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", "[НаименованиеОтчета] [ФорматОтчета]"); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ФорматыОтчетовФорматы.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Отчеты.Форматы"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = ""; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветТекстаЗапрещеннойЯчейки); + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", ПредставлениеФорматовПоУмолчанию()); + // ОформитьНастройкиПерсонализации(); @@ -3503,9 +4476,6 @@ Для Каждого СтрокаФормат Из Найденные Цикл СтрокаОтчеты.Форматы = СтрокаОтчеты.Форматы + ?(СтрокаОтчеты.Форматы = "", "", ", ") + Строка(СтрокаФормат.Формат); КонецЦикла; - Если СтрокаОтчеты.Форматы = "" Тогда - СтрокаОтчеты.Форматы = ПредставлениеФорматовПоУмолчанию(); - КонецЕсли; КонецЦикла; КонецПроцедуры @@ -3778,28 +4748,81 @@ ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); - Группа = Элементы.Добавить("ГруппаСертификатДляШифрования", Тип("ГруппаФормы"), Элементы.СтраницаДополнительно); + Группа = Элементы.Добавить("ГруппаСертификатДляШифрования", Тип("ГруппаФормы"), Элементы.НастройкиФайловОтчетов); Группа.Вид = ВидГруппыФормы.ОбычнаяГруппа; - Группа.Заголовок = НСтр("ru = 'Группа сертификат для шифрования'"); + Группа.Заголовок = НСтр("ru = 'Сертификат для шифрования'"); Группа.ОтображатьЗаголовок = Ложь; Группа.РазрешитьИзменениеСостава = Ложь; Группа.Отображение = ОтображениеОбычнойГруппы.Нет; Группа.Объединенная = Истина; + Группа.Поведение = ПоведениеОбычнойГруппы.Обычное; Группа.СквозноеВыравнивание = СквозноеВыравнивание.НеИспользовать; - Элементы.Переместить(Группа, Элементы.СтраницаДополнительно, Элементы.ДополнительныеПараметры); Элемент = Элементы.Добавить("СертификатДляШифрования", Тип("ПолеФормы"), Группа); Элемент.Заголовок = НСтр("ru = 'Сертификат для шифрования'"); Элемент.ПутьКДанным = "СертификатДляШифрования"; Элемент.Ширина = 70; Элемент.Вид = ВидПоляФормы.ПолеВвода; - Элемент.УстановитьДействие("ПриИзменении", "Подключаемый_СертификатДляШифрованияПриИзменении"); + Элемент.УстановитьДействие("ПриИзменении", "Подключаемый_СертификатДляШифрованияПриИзменении"); Элемент.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка; Элемент.РасширеннаяПодсказка.Заголовок = НСтр("ru = 'При рассылке отчетов по электронной почте необходимо учитывать, |что некоторые почтовые сервера могут не принимать зашифрованные файлы.'"); КонецПроцедуры +&НаСервере +Процедура ОтобразитьВажность() + + Если Объект.ВажностьПисьма = "Высокая" Тогда + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьВысокая; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Высокая важность'"); + ИначеЕсли Объект.ВажностьПисьма = "Низкая" Тогда + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНизкая; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Низкая важность'"); + Иначе + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНеЗадана; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Обычная важность'"); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ДобавитьКомандыДобавленияДополнительныхПараметровТекста() + РассылкаОтчетов.ДобавитьКомандыДобавленияДополнительныхПараметровТекста(ЭтотОбъект); +КонецПроцедуры + +&НаСервере +Процедура ПроверитьНаличиеПериодовВОтчетах(МассивНовыхСтрок = Неопределено) + + Если МассивНовыхСтрок <> Неопределено Тогда + Для Каждого ИдентификаторСтроки Из МассивНовыхСтрок Цикл + Если НаличиеПериодаВНастройках(ИдентификаторСтроки) Тогда + СтрокаОтчет = Объект.Отчеты.НайтиПоИдентификатору(ИдентификаторСтроки); + СтрокаОтчет.ЕстьПериод = Истина; + КонецЕсли; + КонецЦикла; + Возврат; + КонецЕсли; + + Для Каждого СтрокаОтчет Из Объект.Отчеты Цикл + ИдентификаторСтроки = СтрокаОтчет.ПолучитьИдентификатор(); + Если НаличиеПериодаВНастройках(ИдентификаторСтроки) Тогда + СтрокаОтчет.ЕстьПериод = Истина; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьВидРассылки() + + Если РассылкаОтчетов.ПринадлежитГруппеЛичныхРассылок(Объект.Родитель)Тогда + ВидРассылки = "Личная"; + Объект.Личная = Истина; + КонецЕсли; + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Запись объекта @@ -4019,4 +5042,4 @@ Возврат РассылкаОтчетов.ПараметрыЖурналаРегистрации(Рассылка); КонецФункции -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl index fe6ce25d8..82e265271 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl @@ -39,14 +39,14 @@ // Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. // Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт - + Ограничение.Текст = "РазрешитьЧтениеИзменение |ГДЕ | ЭтоАвторизованныйПользователь(Автор) | ИЛИ Личная = ЛОЖЬ - | ИЛИ ЭтоГруппа = ИСТИНА"; - + | ИЛИ Предопределенный = ИСТИНА"; + КонецПроцедуры // Конец СтандартныеПодсистемы.УправлениеДоступом @@ -131,15 +131,14 @@ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ - | РассылкиОтчетовФорматыОтчетов.Ссылка КАК Ссылка + | РассылкиОтчетов.Ссылка |ИЗ - | Справочник.РассылкиОтчетов.ФорматыОтчетов КАК РассылкиОтчетовФорматыОтчетов + | Справочник.РассылкиОтчетов КАК РассылкиОтчетов |ГДЕ - | РассылкиОтчетовФорматыОтчетов.Формат = &Формат - |СГРУППИРОВАТЬ ПО - | РассылкиОтчетовФорматыОтчетов.Ссылка"; + | НЕ РассылкиОтчетов.ЭтоГруппа + | И НЕ РассылкиОтчетов.ВставлятьОтчетыВТекстПисьма + | И НЕ РассылкиОтчетов.ПрикреплятьОтчетыВоВложения"; - Запрос.УстановитьПараметр("Формат", Перечисления.ФорматыСохраненияОтчетов.HTML4); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, @@ -154,6 +153,8 @@ ПроблемныхОбъектов = 0; ОбъектовОбработано = 0; + УстановитьШаблоныНаименованияОтчетов = УстановитьШаблоныНаименованияОтчетов(); + Пока РассылкаОтчетовСсылка.Следующий() Цикл Блокировка = Новый БлокировкаДанных; @@ -176,6 +177,31 @@ Строка.Формат = Перечисления.ФорматыСохраненияОтчетов.HTML; КонецЦикла; + Если УстановитьШаблоныНаименованияОтчетов Тогда + + ПараметрыОтбора = Новый Структура("ШаблонНаименования", ""); + СтрокиБезШаблоновНаименований = РассылкаОтчетовОбъект.Отчеты.НайтиСтроки(ПараметрыОтбора); + + Если РассылкаОтчетовОбъект.УдалитьВключатьДатуВИмяФайла Тогда + ШаблонПоУмолчанию = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 от %2 %3'"), "[НаименованиеОтчета]", "[ДатаРассылки()]", "[ФорматОтчета]"); + Иначе + ШаблонПоУмолчанию = "[НаименованиеОтчета] [ФорматОтчета]"; + КонецЕсли; + + Для Каждого Строка Из СтрокиБезШаблоновНаименований Цикл + Строка.ШаблонНаименования = ШаблонПоУмолчанию; + КонецЦикла; + КонецЕсли; + + Если НЕ РассылкаОтчетовОбъект.ВставлятьОтчетыВТекстПисьма И НЕ РассылкаОтчетовОбъект.ПрикреплятьОтчетыВоВложения Тогда + Если РассылкаОтчетовОбъект.Персонализирована ИЛИ РассылкаОтчетовОбъект.Личная Тогда + РассылкаОтчетовОбъект.ПрикреплятьОтчетыВоВложения = Истина; + ИначеЕсли РассылкаОтчетовОбъект.ИспользоватьЭлектроннуюПочту И НЕ РассылкаОтчетовОбъект.ТолькоУведомить Тогда + РассылкаОтчетовОбъект.ПрикреплятьОтчетыВоВложения = Истина; + КонецЕсли; + КонецЕсли; + ОбновлениеИнформационнойБазы.ЗаписатьДанные(РассылкаОтчетовОбъект); ОбъектовОбработано = ОбъектовОбработано + 1; @@ -212,6 +238,23 @@ КонецПроцедуры +Функция УстановитьШаблоныНаименованияОтчетов() + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | РассылкиОтчетовОтчеты.Ссылка + |ИЗ + | Справочник.РассылкиОтчетов.Отчеты КАК РассылкиОтчетовОтчеты + |ГДЕ + | РассылкиОтчетовОтчеты.ШаблонНаименования <> """""; + + РезультатЗапроса = Запрос.Выполнить(); + + Возврат РезультатЗапроса.Пустой(); + +КонецФункции + // Смотри также ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов // // Параметры: diff --git a/SSL/src/Catalogs/РассылкиОтчетов/ObjectModule.bsl b/SSL/src/Catalogs/РассылкиОтчетов/ObjectModule.bsl index 59b253f1a..4ae34b4bc 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/ObjectModule.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/ObjectModule.bsl @@ -11,7 +11,10 @@ #Область ОбработчикиСобытий Процедура ПередЗаписью(Отказ) - Если ОбменДанными.Загрузка Или ЭтоГруппа Тогда + Если ОбменДанными.Загрузка Тогда + Возврат; + ИначеЕсли ЭтоГруппа Тогда + Личная = РассылкаОтчетов.ПринадлежитГруппеЛичныхРассылок(Родитель); Возврат; КонецЕсли; @@ -45,8 +48,8 @@ // Соответствие группы признаку личной рассылки по электронной почте. // Пользовательские проверки расположены в форме элемента. // Эти проверки обеспечивают жесткие привязки. - ВыбранаГруппаЛичныхРассылок = (Родитель = Справочники.РассылкиОтчетов.ЛичныеРассылки); - Если Личная <> ВыбранаГруппаЛичныхРассылок Тогда + ГруппаВходитВИерархиюЛичныхРассылок = РассылкаОтчетов.ПринадлежитГруппеЛичныхРассылок(Родитель); + Если Личная <> ГруппаВходитВИерархиюЛичныхРассылок Тогда Родитель = ?(Личная, Справочники.РассылкиОтчетов.ЛичныеРассылки, Справочники.РассылкиОтчетов.ПустаяСсылка()); КонецЕсли; КонецПроцедуры @@ -131,6 +134,36 @@ КонецПроцедуры +Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) + + Если ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Автор) Тогда + Отказ = Истина; + ОбщегоНазначения.СообщитьПользователю( + НСтр("ru = 'Поле ""Ответственный"" не заполнено.'"), ЭтотОбъект, "Автор",, Отказ); + КонецЕсли; + + ГруппаВходитВИерархиюЛичныхРассылок = РассылкаОтчетов.ПринадлежитГруппеЛичныхРассылок(Родитель); + + Если НЕ Личная И НЕ Персонализирована И ГруппаВходитВИерархиюЛичныхРассылок Тогда + Отказ = Истина; + ОбщегоНазначения.СообщитьПользователю( + НСтр("ru = 'Для рассылок отчетов ""Отчеты указанным получателям"" нельзя указывать группу, входящую в ""Личные рассылки"".'"), ЭтотОбъект, "Родитель",, Отказ); + ИначеЕсли НЕ Личная И Персонализирована И ГруппаВходитВИерархиюЛичныхРассылок Тогда + Отказ = Истина; + ОбщегоНазначения.СообщитьПользователю( + НСтр("ru = 'Для рассылок отчетов ""Свой отчет для каждого получателя"" нельзя указывать группу, входящую в ""Личные рассылки"".'"), ЭтотОбъект, "Родитель",, Отказ); + ИначеЕсли Личная И НЕ ГруппаВходитВИерархиюЛичныхРассылок Тогда + Отказ = Истина; + ОбщегоНазначения.СообщитьПользователю( + НСтр("ru = 'Для личных рассылок отчетов укажите группу ""Личные рассылки"" или ее подгруппу.'"), ЭтотОбъект, "Родитель",, Отказ); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo b/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo index 6a400a020..d5c8798bb 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo +++ b/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo @@ -70,12 +70,13 @@ Parent ru - Группа + Входит в группу ru Родитель рассылки отчетов или группы рассылок отчетов + true Catalog.РассылкиОтчетов.EmptyRef @@ -275,10 +276,10 @@ - ShowError Index Use + ForFolderAndItem Use @@ -500,6 +501,7 @@ Index + ForFolderAndItem Use @@ -809,7 +811,7 @@ ru - Учетная запись отправителя + Почта отправителя @@ -823,10 +825,10 @@ Use - ВключатьДатуВИмяФайла + УдалитьВключатьДатуВИмяФайла ru - Включать дату в имя файла + (не используется) Включать дату в имя файла Boolean @@ -841,6 +843,69 @@ Use Use + + ВажностьПисьма + + ru + Важность письма + + + String + + 10 + + + + + + Use + Use + + + ВставлятьОтчетыВТекстПисьма + + ru + Вставлять отчеты в текст письма + + + Boolean + + + + + Use + Use + + + ПрикреплятьОтчетыВоВложения + + ru + Прикреплять отчеты во вложения + + + Boolean + + + + + Use + Use + + + УстановитьПаролиЗашифровать + + ru + Установить пароли и зашифровать + + + Boolean + + + + + Use + Use + @@ -917,6 +982,23 @@ Use Use + + ШаблонНаименования + + ru + Шаблон наименования + + + String + + 150 + + + + + Use + Use + @@ -1153,6 +1235,24 @@ PersonalComputer MobileDevice + + ПредварительныйПросмотрПисьма + + ru + Предварительный просмотр + + PersonalComputer + MobileDevice + + + ПовторнаяРассылкаОтчетов + + ru + Повторная рассылка отчетов + + PersonalComputer + MobileDevice + ПФ_MXL_ПаролиРассылкиОтчетов diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Form.form b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Form.form index 144d823c0..e0363b976 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Form.form +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Form.form @@ -421,6 +421,12 @@ true + + ТолькоПростыеРоли + + Boolean + + diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl index b5d7a6cdd..ef1e62abf 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl @@ -5,46 +5,38 @@ // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// - #Область ОбработчикиСобытийФормы &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + УстановитьУсловноеОформление(); - - ТолькоПростыеРоли = Ложь; - - Если Параметры.Свойство("ТолькоПростыеРоли", ТолькоПростыеРоли) И ТолькоПростыеРоли = Истина Тогда - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( - Список, "ВнешняяРоль", Истина, , , Истина); + + Если Параметры.ТолькоПростыеРоли Тогда + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "ВнешняяРоль", Истина,,, Истина); КонецЕсли; - + ЭтоВнешнийПользователь = Пользователи.ЭтоСеансВнешнегоПользователя(); - Если ЭтоВнешнийПользователь Тогда - - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы.КоманднаяПанель.ПодчиненныеЭлементы, "ФормаИзменить", - "Видимость", Ложь); + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы.КоманднаяПанель.ПодчиненныеЭлементы, + "ФормаИзменить", "Видимость", Ложь); СтрокаОтбораВТекстеЗапроса = ОпределитьОтборДляВнешнегоПользователя(); - Иначе - - СтрокаОтбораВТекстеЗапроса = " ГДЕ РолиИсполнителейНазначениеПереопределяемый.ТипПользователей = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)"; - + СтрокаОтбораВТекстеЗапроса = + "ГДЕ РолиИсполнителейНазначениеПереопределяемый.ТипПользователей = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)"; // @query-part КонецЕсли; - + СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); СвойстваСписка.ОсновнаяТаблица = "Справочник.РолиИсполнителей"; СвойстваСписка.ДинамическоеСчитываниеДанных = Истина; - СвойстваСписка.ТекстЗапроса = Список.ТекстЗапроса + СтрокаОтбораВТекстеЗапроса; + СвойстваСписка.ТекстЗапроса = Список.ТекстЗапроса + " " + СтрокаОтбораВТекстеЗапроса; ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка); - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); МодульМультиязычностьСервер.ИзменениеТекстаЗапросаСпискаДляТекущегоЯзыка(ЭтотОбъект); КонецЕсли; - + КонецПроцедуры #КонецОбласти @@ -53,11 +45,11 @@ &НаКлиенте Процедура СписокПередНачаломИзменения(Элемент, Отказ) - + Если ЭтоВнешнийПользователь Тогда Отказ = Истина; КонецЕсли; - + КонецПроцедуры #КонецОбласти @@ -66,37 +58,36 @@ &НаСервере Функция ОпределитьОтборДляВнешнегоПользователя() - + ТекущийВнешнийПользователь = ВнешниеПользователи.ТекущийВнешнийПользователь(); - - СтрокаОтбораВТекстеЗапроса = СтрЗаменить(" ГДЕ РолиИсполнителейНазначениеПереопределяемый.ТипПользователей = ЗНАЧЕНИЕ(Справочник.%Имя%.ПустаяСсылка)", + СтрокаОтбораВТекстеЗапроса = СтрЗаменить( + "ГДЕ РолиИсполнителейНазначениеПереопределяемый.ТипПользователей = ЗНАЧЕНИЕ(Справочник.%Имя%.ПустаяСсылка)", // @query-part "%Имя%", ТекущийВнешнийПользователь.ОбъектАвторизации.Метаданные().Имя); - Возврат СтрокаОтбораВТекстеЗапроса; - + КонецФункции &НаСервере Процедура УстановитьУсловноеОформление() - + Список.УсловноеОформление.Элементы.Очистить(); Элемент = Список.УсловноеОформление.Элементы.Добавить(); - + ГруппаЭлементовОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); - ГруппаЭлементовОтбора .ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; - + ГруппаЭлементовОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; + ОтборЭлемента = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЕстьИсполнители"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = Ложь; - + ОтборЭлемента = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВнешняяРоль"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = Ложь; - + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.РольБезИсполнителей); - + КонецПроцедуры #КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/Commands/СеансыОбменовДанными/CommandModule.bsl b/SSL/src/Catalogs/СеансыОбменовДанными/Commands/СеансыОбменовДанными/CommandModule.bsl new file mode 100644 index 000000000..b2b565549 --- /dev/null +++ b/SSL/src/Catalogs/СеансыОбменовДанными/Commands/СеансыОбменовДанными/CommandModule.bsl @@ -0,0 +1,23 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытий + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + ПараметрыФормы = Новый Структура("", ); + ОткрытьФорму("Справочник.СеансыОбменовДанными.ФормаСписка", + ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно, + ПараметрыВыполненияКоманды.НавигационнаяСсылка); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss new file mode 100644 index 000000000..2d626392e --- /dev/null +++ b/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss @@ -0,0 +1,21 @@ + + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + + Начало + Asc + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаСписка/Form.form new file mode 100644 index 000000000..f787a6b6d --- /dev/null +++ b/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаСписка/Form.form @@ -0,0 +1,483 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 1 + true + true + + true + + + <key>ru</key> + <value>Группа пользовательских настроек</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + Auto + + + + Список + 3 + + <key>ru</key> + <value>Список</value> + + true + true + + true + + + Список + + true + None + + Наименование + 16 + true + true + + true + + + Список.Description + + true + + НаименованиеРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 17 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Начало + 19 + true + true + + true + + + Список.Начало + + + НачалоРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + НачалоКонтекстноеМеню + 20 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Окончание + 22 + true + true + + true + + + Список.Окончание + + + ОкончаниеРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ОкончаниеКонтекстноеМеню + 23 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Отправка + 25 + true + true + + true + + + Список.Отправка + + + ОтправкаРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + ОтправкаКонтекстноеМеню + 26 + true + + CheckBoxField + Enter + true + Left + true + + + + Получение + 28 + true + true + + true + + + Список.Получение + + + ПолучениеРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + ПолучениеКонтекстноеМеню + 29 + true + + CheckBoxField + Enter + true + Left + true + + + + ВремяВыполнения + 31 + true + true + + true + + + Список.ВремяВыполнения + + + ВремяВыполненияРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + ВремяВыполненияКонтекстноеМеню + 32 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Ссылка + 36 + true + true + + + Список.Ref + + + СсылкаРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + + СсылкаКонтекстноеМеню + 37 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + None + + СписокКоманднаяПанель + 5 + Left + + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + + Список + + true + + + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + + ViewStatusAddition + Список + + true + + + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + + SearchControlAddition + Список + + true + + + + СписокРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandTopLevel + true + true + true + AsFileRef + + Список.DefaultPicture + + true + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
    + + ФормаКоманднаяПанель + -1 + Left + true + + Change + Copy + Create + DontBlock + true + true + true + Vertical + true + true + true + auto + true + + Список + + <key>ru</key> + <value>Список</value> + + 1 + + DynamicList + + + true + + + true + + + Список.Ref + +
    true
    + + Catalog.СеансыОбменовДанными + true + true + true + true + +
    + + + + + +
    diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаЭлемента/Form.form new file mode 100644 index 000000000..3e89f3e7e --- /dev/null +++ b/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаЭлемента/Form.form @@ -0,0 +1,386 @@ + + + + Наименование + 1 + true + true + + true + + + Объект.Description + + + НаименованиеРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 2 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + Узел + 4 + true + true + + true + + + Объект.УзелИнформационнойБазы + + + УзелРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + УзелКонтекстноеМеню + 5 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ГруппаНачалоОкончание + 24 + + Начало + 7 + true + true + + true + + + Объект.Начало + + + НачалоРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + НачалоКонтекстноеМеню + 8 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + Окончание + 10 + true + true + + true + + + Объект.Окончание + + + ОкончаниеРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + ОкончаниеКонтекстноеМеню + 11 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Начало окончание</value> + + + ГруппаНачалоОкончаниеРасширеннаяПодсказка + 25 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + true + true + Auto + Auto + + + + ВремяВыполнения + 19 + true + true + + true + + + Объект.ВремяВыполнения + + + ВремяВыполненияРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + ВремяВыполненияКонтекстноеМеню + 20 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + Отправка + 13 + true + true + + true + + + Объект.Отправка + + + ОтправкаРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + ОтправкаКонтекстноеМеню + 14 + true + + CheckBoxField + Auto + true + Left + true + + + + Получение + 16 + true + true + + true + + + Объект.Получение + + + ПолучениеРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + ПолучениеКонтекстноеМеню + 17 + true + + CheckBoxField + Auto + true + Left + true + + + + ЗамерыПроизводительности + 26 + true + true + + true + + + ЗамерыПроизводительностиРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + UsualButton + Form.Command.ЗамерыПроизводительности + Normal + Auto + true + true + UserCmds + Auto + + + ФормаКоманднаяПанель + -1 + Left + true + + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + CatalogObject.СеансыОбменовДанными + + + true + + + true + +
    true
    + true +
    + + ЗамерыПроизводительности + + <key>ru</key> + <value>Замеры производительности</value> + + 2 + + true + + + + ЗамерыПроизводительности + + + Auto + Auto + + + + + + +
    diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаЭлемента/Module.bsl new file mode 100644 index 000000000..1b530a25d --- /dev/null +++ b/SSL/src/Catalogs/СеансыОбменовДанными/Forms/ФормаЭлемента/Module.bsl @@ -0,0 +1,34 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ЗамерыПроизводительности(Команда) + + АдресФайла = ПолучитьАдресФайлаНаСервере(); + Заголовок = НСтр("ru = 'Сохранение файла'"); + + ИмяФайла = НСтр("ru = 'Замеры производительности.zip'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()); + + ПараметрыДиалога = Новый ПараметрыДиалогаПолученияФайлов(Заголовок, Истина); + НачатьПолучениеФайлаССервера(АдресФайла, ИмяФайла, ПараметрыДиалога); + +КонецПроцедуры + +&НаСервере +Функция ПолучитьАдресФайлаНаСервере() + + ДвоичныеДанные = РеквизитФормыВЗначение("Объект").ЗамерыПроизводительности.Получить(); + Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные); + + Возврат Адрес; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/Help/ru.html b/SSL/src/Catalogs/СеансыОбменовДанными/Help/ru.html new file mode 100644 index 000000000..882e8388d --- /dev/null +++ b/SSL/src/Catalogs/СеансыОбменовДанными/Help/ru.html @@ -0,0 +1,44 @@ + + +

    Предназначен для фиксации информации о выполненной операции +обмена (отправке или получении данных) через универсальный EnterpriseData.

    + +

     

    + +

    В справочнике фиксируется время начала, время окончании, +продолжительность операции.

    + +

     

    + +

    Нажав кнопку Замеры производительности можно получить доступ +к архиву, который содержит замеры производительности синхронизации по ключевым +операциям.

    + +

     

    + +

    Замеры производятся для следующих процедур и обработчиков:

    + +
    • ОтложенноеПроведениеДокументов
    • +
    • ДанныеXDTOИзДанныхИБ
    • +
    • ОбъектXDTOИзДанныхXDTO
    • +
    • ОбъектXDTOВСтруктуру
    • +
    • ЗаписатьОбъектВИБ
    • +
    • ОтменитьПроведениеОбъектаВИБ
    • +
    • РегистрацияОбъектов, + ПакетнаяРегистрацияОбъектов (Перед выгрузкой данных)
    • +
    • Обработчики + КД3: ПередКонвертацией, ПослеКонвертации, ПриОбработке и т.д.
    • +
    • ОтложенноеЗаполнениеОбъектов
    • +
    • ПоискСсылок + (в регистре сведений ПубличныеИдентификаторыСинхронизируемыхОбъектов)
    • +
    • ОчисткаДвиженийДокумента
    • +

     

    + +

    В архиве находятся два файла:

    + +
    • log.txt – список + всех замеряемых операций в хронологическом порядке;
    • +
    • total.txt + – итоговые данные по операциям, отсортированные по убыванию времени + выполнения
    • +
    \ No newline at end of file diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/ObjectModule.bsl b/SSL/src/Catalogs/СеансыОбменовДанными/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/SSL/src/Catalogs/СеансыОбменовДанными/СеансыОбменовДанными.mdo b/SSL/src/Catalogs/СеансыОбменовДанными/СеансыОбменовДанными.mdo new file mode 100644 index 000000000..d0857d73f --- /dev/null +++ b/SSL/src/Catalogs/СеансыОбменовДанными/СеансыОбменовДанными.mdo @@ -0,0 +1,254 @@ + + + + + + + + + + СеансыОбменовДанными + + ru + Сеансы обменов данными + + true + Catalog.СеансыОбменовДанными.StandardAttribute.Description + DontUse + + Use + PredefinedDataName + + Use + + + + + Use + Predefined + + Use + + + + + Use + Ref + + Use + + + + + Use + DeletionMark + + Use + + + + + Use + IsFolder + + Use + + + + + Use + Owner + true + + ShowError + Use + + + + + Use + Parent + true + + Use + + + + + Use + Description + + ShowError + Use + + + + + Use + Code + + Use + + + + Use + + + ru + + + Catalog.СеансыОбменовДанными.Attribute.УзелИнформационнойБазы + Managed + Use + + ru + Сеанс обмена данными + + 2 + true + 100 + String + Variable + AsDescription + InDialog + BothWays + Catalog.СеансыОбменовДанными.Form.ФормаЭлемента + Catalog.СеансыОбменовДанными.Form.ФормаСписка + + УзелИнформационнойБазы + + ru + Узел информационной базы + + + ExchangePlanRef + + + + + Use + Use + + + Начало + + ru + Начало + + + Date + + + + + + Use + Use + + + Окончание + + ru + Окончание + + + Date + + + + + + Use + Use + + + Отправка + + ru + Отправка + + + Boolean + + + + + Use + Use + + + Получение + + ru + Получение + + + Boolean + + + + + Use + Use + + + ВремяВыполнения + + ru + Время выполнения (сек.) + + + Number + + 10 + + + + + + Use + Use + + + ЗамерыПроизводительности + + ru + Замеры производительности + + + ValueStorage + + + + + Use + Use + + + ФормаЭлемента + + ru + Форма элемента + + PersonalComputer + MobileDevice + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + + СеансыОбменовДанными + + ru + Сеансы обменов данными + + FormCommandBarImportant + Auto + + diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl index 29e385874..7a12cdcc1 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl @@ -189,6 +189,25 @@ КонецПроцедуры +&НаКлиенте +Функция ПарольСертификатаУстановлен(СертификатСсылка) Экспорт // АПК:78 - исключение для безопасного хранения паролей. + + УстановленныеПароли = ОбщиеВнутренниеДанные.Получить("УстановленныеПароли"); + + Если УстановленныеПароли <> Неопределено И УстановленныеПароли.Получить(СертификатСсылка) <> Неопределено Тогда + Возврат Истина; + КонецЕсли; + + ХранилищеПаролей = ОбщиеВнутренниеДанные.Получить("ХранилищеПаролей"); + + Если ХранилищеПаролей <> Неопределено И ХранилищеПаролей.Получить(СертификатСсылка) <> Неопределено Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + &НаКлиенте Процедура СброситьПарольСертификата(СертификатСсылка) Экспорт // АПК:78 - исключение для безопасного хранения паролей. diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl index cc3d81493..923fb1aa3 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl @@ -488,11 +488,13 @@ Элементы.ГруппаОтозван.Видимость = СертификатОтозван; - Если Не СертификатОтозван И ЗначениеЗаполнено(РезультатПроверкиУдостоверяющегоЦентра) Тогда - Элементы.ГруппаДополнительныеСведения.Видимость = ЗначениеЗаполнено( + Если ЗначениеЗаполнено(РезультатПроверкиУдостоверяющегоЦентра) Тогда + Элементы.ГруппаДополнительныеСведения.Видимость = Не СертификатОтозван И ЗначениеЗаполнено( РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения); Элементы.ДекорацияДополнительныеСведения.Заголовок = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения; + Иначе + Элементы.ГруппаДополнительныеСведения.Видимость = Ложь; КонецЕсли; КонецПроцедуры @@ -718,7 +720,8 @@ ДополнительныеПараметрыПроверок = ЭлектроннаяПодписьСлужебныйКлиент.ДополнительныеПараметрыПроверкиСертификата(); ДополнительныеПараметрыПроверок.ПоказатьОшибку = Ложь; - + ДополнительныеПараметрыПроверок.ДляПроверкиПодписи = Истина; + ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьСертификат(Новый ОписаниеОповещения( "ПодписатьДанныеПослеПроверкиСертификата", ЭтотОбъект, Контекст), СертификатАдрес,,, ДополнительныеПараметрыПроверок); @@ -738,9 +741,27 @@ ПараметрыВыполнения.Вставить("Форма", ЭтотОбъект); ПараметрыВыполнения.Вставить("ИдентификаторФормы", Контекст.ИдентификаторФормы); ПараметрыВыполнения.Вставить("ЗначениеПароля", СвойстваПароля.Значение); - ПараметрыВыполнения.Вставить("СертификатВерен", ?(Результат = Неопределено, Результат, Результат = Истина)); ПараметрыВыполнения.Вставить("СертификатАдрес", СертификатАдрес); + Если ТипЗнч(Результат) = Тип("Структура") Тогда // Ошибка при проверке сертификата. + ПараметрыВыполнения.Вставить("СертификатВерен", Ложь); + ПараметрыВыполнения.Вставить("ТребуетсяПроверка", Результат.ТребуетсяПроверка); + + Если Результат.СертификатОтозван Тогда + Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки", НСтр("ru = 'Сертификат отозван. + |Выберите другой сертификат.'")); + ДополнительныеДанныеОшибки = Новый Структура("ДополнительныеДанныеПроверокНаКлиенте", + ОшибкаСертификатПомеченКакОтозванный()); + ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере, , + ДополнительныеДанныеОшибки); + Возврат; + КонецЕсли; + + Иначе + ПараметрыВыполнения.Вставить("СертификатВерен", Истина); + ПараметрыВыполнения.Вставить("ТребуетсяПроверка", Ложь); + КонецЕсли; + ПараметрыВыполнения.Вставить("ПолноеПредставлениеДанных", ЭлектроннаяПодписьСлужебныйКлиент.ПолноеПредставлениеДанных(ЭтотОбъект)); @@ -810,6 +831,10 @@ Если Результат.Свойство("Ошибка") Тогда + Если ОписаниеДанных.Свойство("КонтекстОперации") Тогда + ОписаниеДанных.КонтекстОперации = ЭтотОбъект; + КонецЕсли; + Контекст.ОшибкаНаКлиенте = Результат.Ошибка; НеподписанныеДанные = ЭлектроннаяПодписьСлужебныйКлиент.СвойстваТекущегоЭлементаДанных( Контекст.ПараметрыВыполнения); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl index 5ddca5b62..42cdf822f 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl @@ -660,12 +660,18 @@ РасшифроватьДанныеПослеВыполнения(Результат); Если Результат.Свойство("Ошибка") Тогда + Если ОписаниеДанных.Свойство("КонтекстОперации") Тогда + ОписаниеДанных.КонтекстОперации = ЭтотОбъект; + КонецЕсли; Контекст.ОшибкаНаКлиенте = Результат.Ошибка; ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере); Возврат; КонецЕсли; Если Не ЗаписатьСертификатыШифрования(Контекст.ИдентификаторФормы, Контекст.ОшибкаНаКлиенте) Тогда + Если ОписаниеДанных.Свойство("КонтекстОперации") Тогда + ОписаниеДанных.КонтекстОперации = ЭтотОбъект; + КонецЕсли; ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере); Возврат; КонецЕсли; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl index b8096e167..08050669a 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl @@ -117,9 +117,12 @@ КонецЕсли; Если ИмяСобытия = "Запись_СертификатыКлючейЭлектроннойПодписиИШифрования" И Источник = Объект.Ссылка Тогда - Если Параметр.Количество() = 0 Тогда + Если Не ЗначениеЗаполнено(Параметр) Тогда Возврат; КонецЕсли; + Если Параметр.Отозван Тогда + ОбновитьВидимостьПредупреждения(); + КонецЕсли; Если Параметр.Установлен Тогда ПодключитьОбработчикОжидания("ОбработчикОжиданияПоказатьСостояниеСертификата", 0.1, Истина); КонецЕсли; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl index 868b22122..e4646ef18 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl @@ -419,7 +419,7 @@ Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Данные сертификата ""%1"" в справочнике не корректны по причине: + НСтр("ru = 'Данные сертификата ""%1"" в справочнике некорректны по причине: |%2'"), Выборка.Представление, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); @@ -1100,7 +1100,7 @@ Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Данные сертификата ""%1"" в справочнике не корректны по причине: + НСтр("ru = 'Данные сертификата ""%1"" в справочнике некорректны по причине: |%2'"), Выборка.Наименование, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/КомпонентаExtraCryptoAPI_3_0_2_24/Template.addin b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/КомпонентаExtraCryptoAPI_3_0_2_27/Template.addin similarity index 69% rename from SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/КомпонентаExtraCryptoAPI_3_0_2_24/Template.addin rename to SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/КомпонентаExtraCryptoAPI_3_0_2_27/Template.addin index 3eafc61f8..cc4f04674 100644 Binary files a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/КомпонентаExtraCryptoAPI_3_0_2_24/Template.addin and b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/КомпонентаExtraCryptoAPI_3_0_2_27/Template.addin differ diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo index 0e6c14370..b42e257bc 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/СертификатыКлючейЭлектроннойПодписиИШифрования.mdo @@ -837,7 +837,7 @@ MobileDevice - КомпонентаExtraCryptoAPI_3_0_2_24 + КомпонентаExtraCryptoAPI_3_0_2_27 ru Компонента ExtraCryptoAPI diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl index 33ff66645..4ebc789f6 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl @@ -212,7 +212,8 @@ Исключение СтрокаСообщения = НСтр("ru = 'Произошла ошибка при сохранении расписания выполнения обменов. Подробное описание ошибки: %1'"); - СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); ОбменДаннымиСервер.СообщитьОбОшибке(СтрокаСообщения, Отказ); КонецПопытки; diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl index 71e3c5824..f02cf7e3e 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/ObjectModule.bsl @@ -93,7 +93,8 @@ КонецЕсли; Исключение СтрокаСообщения = НСтр("ru = 'Ошибка при удалении регламентного задания: %1'"); - СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); ОбменДаннымиСервер.СообщитьОбОшибке(СтрокаСообщения, Отказ); КонецПопытки; diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form index 72ee32ebe..28f8782e8 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form @@ -155,8 +155,8 @@ 10 <key>ru</key> - <value>Если в файлах, которые есть на диске, но сведения о них в базе отсутствуют, может содержаться полезная информация, -то рекомендуется скопировать их в другую папку.</value> + <value>Если в файлах в томе, о которых в программе нет сведений, может содержаться полезная информация, +то рекомендуется скопировать их в другой каталог.</value> true true @@ -558,6 +558,12 @@ DontUse Auto + + ТомХраненияФайлов + + CatalogRef.ТомаХраненияФайлов + + diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl index 329b65b94..edca3ba21 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl @@ -11,7 +11,7 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Параметры.Свойство("ТомХраненияФайлов", ТомХраненияФайлов); + ТомХраненияФайлов = Параметры.ТомХраненияФайлов; ЗаполнитьТаблицуЛишнихФайлов(); КоличествоЛишнихФайлов = ЛишниеФайлы.Количество(); @@ -110,7 +110,7 @@ Процедура УдалитьЛишниеФайлы(Команда) Если КоличествоЛишнихФайлов = 0 Тогда - ПоказатьПредупреждение(, НСтр("ru = 'Нет ни одного лишнего файла на диске'")); + ПоказатьПредупреждение(, НСтр("ru = 'Нет ни одного лишнего файла в сетевом каталоге'")); Возврат; КонецЕсли; @@ -353,7 +353,7 @@ ОбработатьСообщениеОбОшибке(ТекущийФайл.ПолноеИмя, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); Иначе ТекстПояснения = НСтр("ru='Подробное описание ошибки - |см. в ранее произошедшем событии ""Файлы.Удаление файлов в томе""'"); + |см. в ранее произошедшем событии ""Файлы.Удаление файлов в томе""'"); ОбработатьСообщениеОбОшибке(ТекущийФайл.ПолноеИмя, ИнформацияОбОшибке + Символы.ПС + ТекстПояснения); КонецЕсли; @@ -435,7 +435,7 @@ НоваяСтрока.ПолноеИмя = Файл.ПолноеИмя; НоваяСтрока.Путь = Файл.Путь; НоваяСтрока.Расширение = Файл.Расширение; - НоваяСтрока.СтатусПроверки = НСтр("ru = 'Лишние файлы (есть на диске, но сведения о них отсутствуют)'"); + НоваяСтрока.СтатусПроверки = НСтр("ru = 'Лишние файлы (есть в томе, но сведения о них отсутствуют)'"); НоваяСтрока.Количество = 1; НоваяСтрока.Том = ТомХраненияФайлов; @@ -444,7 +444,7 @@ РаботаСФайламиВТомахСлужебный.ЗаполнитьЛишниеФайлы(ТаблицаФайловНаДиске, ТомХраненияФайлов); ТаблицаФайловНаДиске.Индексы.Добавить("СтатусПроверки"); МассивЛишнихФайлов = ТаблицаФайловНаДиске.НайтиСтроки( - Новый Структура("СтатусПроверки", НСтр("ru = 'Лишние файлы (есть на диске, но сведения о них отсутствуют)'"))); + Новый Структура("СтатусПроверки", НСтр("ru = 'Лишние файлы (есть в томе, но сведения о них отсутствуют)'"))); Для Каждого Файл Из МассивЛишнихФайлов Цикл НоваяСтрока = ЛишниеФайлы.Добавить(); @@ -521,10 +521,10 @@ ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Ошибка удаления лишних файлов'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Информация,,, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'При удалении файла с диска + НСтр("ru = 'Невозможно удалить файл |""%1"" - |возникла ошибка: - |""%2"".'"), + |по причине: + |%2.'"), ИмяФайла, ИнформацияОбОшибке)); diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/ТомаХраненияФайлов.mdo b/SSL/src/Catalogs/ТомаХраненияФайлов/ТомаХраненияФайлов.mdo index 698d7102a..8f7235e95 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/ТомаХраненияФайлов.mdo +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/ТомаХраненияФайлов.mdo @@ -12,7 +12,7 @@ ru Тома хранения файлов - Каталоги на диске для хранения файлов + Сетевые каталоги для хранения файлов true Catalog.ТомаХраненияФайлов.StandardAttribute.Description Catalog.ТомаХраненияФайлов.StandardAttribute.Code diff --git a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Form.form index a3510fe45..fae4f0ae9 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Form.form @@ -88,18 +88,55 @@ true - StartChoice - СервисНачалоВыбора + ChoiceProcessing + СервисОбработкаВыбора true true true - false - true - true + true true true + + + ru + Яндекс.Диск + + + https://webdav.yandex.com + + + + + ru + Box + + + https://dav.box.com/dav + + + + + ru + Dropbox (через dropdav.com) + + + https://dav.dropdav.com + + + + + ru + Ввести свой адрес сервиса + + + Normal + DontUse + + ru + Введите адрес сервиса или выберите из списка +
    @@ -664,8 +701,8 @@ true - АвтоНаименование - 7 + ПарольИзменен + 2 Boolean @@ -677,8 +714,8 @@ - ПарольИзменен - 2 + АвтоНаименование + 6 Boolean diff --git a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl index 53f39df66..ada24215e 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl @@ -19,7 +19,7 @@ Элементы.АвторФайлов.Доступность = Ложь; КонецЕсли; - АвтоНаименование = ПустаяСтрока(Объект.Наименование); + АвтоНаименование = ПустаяСтрока(Объект.Наименование); Если Не ПустаяСтрока(Объект.Наименование) Тогда Элементы.ВКачествеАвтораФайлов.СписокВыбора[0].Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Элементы.ВКачествеАвтораФайлов.Заголовок, "(" + Объект.Наименование + ")"); @@ -40,7 +40,7 @@ Пароль = ?(ЗначениеЗаполнено(ПараметрыУчетнойЗаписи.Пароль), ЭтотОбъект.УникальныйИдентификатор, ""); КонецЕсли; - + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Элементы.Наименование.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; КонецЕсли @@ -50,19 +50,17 @@ &НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - Если Не Отказ Тогда - - УстановитьПривилегированныйРежим(Истина); - - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Логин, "Логин"); - Если ПарольИзменен Тогда - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Пароль); - КонецЕсли; - - УстановитьПривилегированныйРежим(Ложь); - + Если Отказ Тогда + Возврат; КонецЕсли; + УстановитьПривилегированныйРежим(Истина); + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Логин, "Логин"); + Если ПарольИзменен Тогда + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Пароль); + КонецЕсли; + УстановитьПривилегированныйРежим(Ложь); + КонецПроцедуры #КонецОбласти @@ -71,7 +69,23 @@ &НаКлиенте Процедура НаименованиеПриИзменении(Элемент) - АвтоНаименование = ПустаяСтрока(Объект.Наименование); + АвтоНаименование = ПустаяСтрока(Объект.Наименование); +КонецПроцедуры + +&НаКлиенте +Процедура СервисОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + Если Не АвтоНаименование Тогда + Возврат; + КонецЕсли; + + ВыбранныйСервис = Элементы.Сервис.СписокВыбора.НайтиПоЗначению(ВыбранноеЗначение); + Если Не ПустаяСтрока(ВыбранноеЗначение) И ВыбранныйСервис <> Неопределено Тогда + Объект.Наименование = ВыбранныйСервис.Представление; + Иначе + Объект.Наименование = НСтр("ru = 'Облачный сервис файлов'"); + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -89,16 +103,6 @@ КонецПроцедуры -&НаКлиенте -Процедура СервисНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - ДанныеВыбора = Новый СписокЗначений(); - ДанныеВыбора.Добавить("https://webdav.yandex.com", НСтр("ru = 'Яндекс.Диск'")); - ДанныеВыбора.Добавить("https://dav.box.com/dav", НСтр("ru = 'Box'")); - ДанныеВыбора.Добавить("https://dav.dropdav.com", НСтр("ru = 'DropBox (через dropdav.com)'")); - СтандартнаяОбработка = Ложь; -КонецПроцедуры - - #КонецОбласти #Область ОбработчикиКомандФормы diff --git a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/УчетныеЗаписиСинхронизацииФайлов.mdo b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/УчетныеЗаписиСинхронизацииФайлов.mdo index 06f3b4563..2941f4090 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/УчетныеЗаписиСинхронизацииФайлов.mdo +++ b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/УчетныеЗаписиСинхронизацииФайлов.mdo @@ -130,7 +130,7 @@ ru - Адрес сервера Webdav + Адрес сервиса WebDAV diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form index f775416b7..e93134db6 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form @@ -243,28 +243,115 @@ Аутентификация 200 - - АдресЭлектроннойПочты - 44 - - <key>ru</key> - <value>Адрес почты</value> - + + ГруппаАдресПочты + 426 + + ДекорацияАдресПочты + 428 + + <key>ru</key> + <value>Адрес почты:</value> + + true + true + + true + + + ДекорацияАдресПочтыРасширеннаяПодсказка + 430 + Label + true + + Left + + + + ДекорацияАдресПочтыКонтекстноеМеню + 429 + true + + Label + 11 + true + true + + Left + + + + АдресЭлектроннойПочты + 44 + + <key>ru</key> + <value>Адрес почты</value> + + true + true + + true + + + АдресЭлектроннойПочты + + None + ShowBottom + + OnChange + АдресЭлектроннойПочтыПриИзменении + + + АдресЭлектроннойПочтыРасширеннаяПодсказка + 46 + + <key>ru</key> + <value>Электронная почта для рассылки уведомлений из программы.</value> + + Label + 30 + true + + Left + + + + АдресЭлектроннойПочтыКонтекстноеМеню + 45 + true + + InputField + true + Enter + true + Left + true + + 25 + true + true + false + true + true + true + true + true + OnValueChange + Normal + + true true true - - АдресЭлектроннойПочты - - - OnChange - АдресЭлектроннойПочтыПриИзменении - + + <key>ru</key> + <value>Адрес почты</value> + - АдресЭлектроннойПочтыРасширеннаяПодсказка - 46 + ГруппаАдресПочтыРасширеннаяПодсказка + 427 Label true true @@ -272,29 +359,14 @@ Left - - АдресЭлектроннойПочтыКонтекстноеМеню - 45 - true - - InputField - true - Enter - true - Left - true - - 25 - true - true - false - true - true - true - true - true - OnValueChange - Normal + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto @@ -396,7 +468,7 @@ ru - Ввести пароль: + Пароль почты: Пароль @@ -579,6 +651,7 @@ NormalSeparation true true + DontUse Auto @@ -909,7 +982,7 @@ <key>ru</key> - <value>Настройка учетной записи</value> + <value>Настройка почты</value> НастройкаУчетнойЗаписиРасширеннаяПодсказка @@ -936,7 +1009,7 @@ 116 <key>ru</key> - <value>Тип учетной записи</value> + <value>Тип почты</value> true true @@ -2266,7 +2339,7 @@ <key>ru</key> - <value>Проверка настроек учетной записи картинка и надпись</value> + <value>Проверка настроек почты.</value> ПроверкаНастроекУчетнойЗаписиКартинкаИНадписьРасширеннаяПодсказка @@ -2294,7 +2367,7 @@ <key>ru</key> - <value>Проверка настроек учетной записи</value> + <value>Проверка настроек почты</value> ПроверкаНастроекУчетнойЗаписиРасширеннаяПодсказка @@ -2589,8 +2662,7 @@ 69 <key>ru</key> - <value>Настройка параметров почты -vasyapupkin@example.com завершена.</value> + <value>Настройка параметров почты завершена.</value> true true @@ -2627,7 +2699,7 @@ vasyapupkin@example.com завершена. <key>ru</key> - <value>Учетная запись успешно настроена картинка и надпись</value> + <value>Почта успешно настроена.</value> УчетнаяЗаписьУспешноНастроенаКартинкаИНадписьРасширеннаяПодсказка @@ -2655,7 +2727,7 @@ vasyapupkin@example.com завершена. <key>ru</key> - <value>Учетная запись успешно настроена</value> + <value>Почта успешно настроена</value> УчетнаяЗаписьУспешноНастроенаРасширеннаяПодсказка @@ -3143,6 +3215,10 @@ vasyapupkin@example.com завершена. КнопкаДалее 22 + + <key>ru</key> + <value>Создать</value> + true true @@ -3848,7 +3924,7 @@ vasyapupkin@example.com завершена. ВидУчетнойЗаписи <key>ru</key> - <value>Вид учетной записи</value> + <value>Вид почты</value> 39 diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl index 85cf45691..a62c4d798 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl @@ -50,51 +50,7 @@ Если Параметры.Свойство("Ключ") Тогда УчетнаяЗаписьСсылка = Параметры.Ключ; - ТекстЗапроса = - "ВЫБРАТЬ - | УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты КАК АдресЭлектроннойПочты, - | УчетныеЗаписиЭлектроннойПочты.ИмяПользователя КАК ИмяОтправителяПисем, - | УчетныеЗаписиЭлектроннойПочты.Наименование КАК НазваниеУчетнойЗаписи, - | УчетныеЗаписиЭлектроннойПочты.АвторизацияСПомощьюПочтовогоСервиса - |ИЗ - | Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты - |ГДЕ - | УчетныеЗаписиЭлектроннойПочты.Ссылка = &Ссылка"; - Запрос = Новый Запрос(ТекстЗапроса); - Запрос.УстановитьПараметр("Ссылка", Параметры.Ключ); - Выборка = Запрос.Выполнить().Выбрать(); - Если Выборка.Следующий() Тогда - ЗаполнитьЗначенияСвойств(ЭтотОбъект, Выборка); - ТолькоАвторизация = Параметры.ТолькоАвторизация; - Если Выборка.АвторизацияСПомощьюПочтовогоСервиса Или ТолькоАвторизация Тогда - СпособАутентификации = "OAuth"; - Элементы.Пароль.Доступность = Ложь; - Если ТолькоАвторизация Тогда - НастройкиАвторизацииНаПочтовомСервере = НастройкиАвторизацииНаПочтовомСервере(); - НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере - - Если ЗначениеЗаполнено(НастройкиАвторизации) И ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторПриложения) Тогда - ИдентификаторПриложения = НастройкиАвторизации.ИдентификаторПриложения; - АдресПеренаправления = НастройкиАвторизации.АдресПеренаправления; - Если ЭтоВебКлиент() Тогда - АдресПеренаправления = НастройкиАвторизации.АдресПеренаправленияВебКлиент; - КонецЕсли; - - ПарольПриложения = НастройкиАвторизации.ПарольПриложения; - Элементы.Страницы.ТекущаяСтраница = Элементы.Авторизация; - - Если ЭтоВебКлиент() Тогда - Элементы.ВариантыАвторизации.ТекущаяСтраница = Элементы.БраузерОперационнойСистемы; - ТекущийЭлемент = Элементы.ВебСтраница; - Иначе - Элементы.ВариантыАвторизации.ТекущаяСтраница = Элементы.ВстроенныйБраузер; - КонецЕсли; - Иначе - Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкиАвторизацииПриложения; - КонецЕсли; - КонецЕсли; - КонецЕсли; - КонецЕсли; + ЗаполнитьСвойстваУчетнойЗаписи(); Иначе СсылкаНовойУчетнойЗаписи = Справочники.УчетныеЗаписиЭлектроннойПочты.ПолучитьСсылку(); @@ -114,6 +70,9 @@ КонецЕсли; КонецЕсли; + Элементы.НеУдалосьПодключитьсяКартинкаИНадпись.Видимость = Ложь; + Элементы.КнопкаНазад.Видимость = Ложь; + ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь(); Элементы.ДляКогоУчетнаяЗапись.Видимость = ЭтоПолноправныйПользователь И Не КонтекстныйРежим; ВидУчетнойЗаписи = ?(ЭтоПолноправныйПользователь, "Общая", "Персональная"); @@ -278,6 +237,62 @@ #Область СлужебныеПроцедурыИФункции +&НаСервере +Процедура ЗаполнитьСвойстваУчетнойЗаписи() + ТекстЗапроса = + "ВЫБРАТЬ + | УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты КАК АдресЭлектроннойПочты, + | УчетныеЗаписиЭлектроннойПочты.ИмяПользователя КАК ИмяОтправителяПисем, + | УчетныеЗаписиЭлектроннойПочты.Наименование КАК НазваниеУчетнойЗаписи, + | УчетныеЗаписиЭлектроннойПочты.АвторизацияСПомощьюПочтовогоСервиса + |ИЗ + | Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты + |ГДЕ + | УчетныеЗаписиЭлектроннойПочты.Ссылка = &Ссылка"; + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Ссылка", УчетнаяЗаписьСсылка); + Выборка = Запрос.Выполнить().Выбрать(); + Если Не Выборка.Следующий() Тогда + Возврат; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(ЭтотОбъект, Выборка); + ТолькоАвторизация = Параметры.ТолькоАвторизация; + Если Выборка.АвторизацияСПомощьюПочтовогоСервиса Или ТолькоАвторизация Тогда + СпособАутентификации = "OAuth"; + Элементы.Пароль.Доступность = Ложь; + Если ТолькоАвторизация Тогда + НастройкиАвторизацииНаПочтовомСервере = НастройкиАвторизацииНаПочтовомСервере(); + НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере; // см. НастройкиАвторизацииНаПочтовомСервере + + Если ЗначениеЗаполнено(НастройкиАвторизации) И ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторПриложения) Тогда + ИдентификаторПриложения = НастройкиАвторизации.ИдентификаторПриложения; + АдресПеренаправления = НастройкиАвторизации.АдресПеренаправления; + Если ЭтоВебКлиент() Тогда + АдресПеренаправления = НастройкиАвторизации.АдресПеренаправленияВебКлиент; + КонецЕсли; + + ПарольПриложения = НастройкиАвторизации.ПарольПриложения; + Элементы.Страницы.ТекущаяСтраница = Элементы.Авторизация; + + Если ЭтоВебКлиент() Тогда + Элементы.ВариантыАвторизации.ТекущаяСтраница = Элементы.БраузерОперационнойСистемы; + ТекущийЭлемент = Элементы.ВебСтраница; + Иначе + Элементы.ВариантыАвторизации.ТекущаяСтраница = Элементы.ВстроенныйБраузер; + КонецЕсли; + Иначе + Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкиАвторизацииПриложения; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Элементы.АдресЭлектроннойПочты.ОтображениеПодсказки = + ?(УчетнаяЗаписьСсылка = РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись(), + ОтображениеПодсказки.ОтображатьСнизу, ОтображениеПодсказки.Нет); + +КонецПроцедуры + &НаКлиенте Процедура ПоказатьВопросПередЗакрытиемФормы() ТекстВопроса = НСтр("ru = 'Введенные данные не записаны. Закрыть форму?'"); @@ -516,7 +531,7 @@ ПроверитьНастройкиУчетнойЗаписи(); Если ЗначениеЗаполнено(УчетнаяЗаписьСсылка) Тогда - ОповеститьОбИзменении(ТипЗнч(УчетнаяЗаписьСсылка)); + ОбщегоНазначенияКлиент.ОповеститьОбИзмененииОбъекта(УчетнаяЗаписьСсылка); КонецЕсли; ПерейтиНаСледующуюСтраницу(); КонецПроцедуры @@ -604,7 +619,7 @@ КонецЕсли; Элементы.КнопкаДалее.Заголовок = ЗаголовокКнопкиДалее; - Элементы.КнопкаДалее.КнопкаПоУмолчанию =ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи; + Элементы.КнопкаДалее.КнопкаПоУмолчанию = ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи; Элементы.КнопкаДалее.Доступность = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И ПроверкаПропущена); Элементы.КнопкаДалее.Видимость = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И СпособНастройки = "Вручную") И Не (ТекущаяСтраница = Элементы.Авторизация И Не ЭтоВебКлиент()) @@ -964,7 +979,9 @@ ПроверкаЗавершиласьСОшибками = Истина; СообщенияОбОшибках = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; - ОповеститьОбИзменении(СсылкаНовойУчетнойЗаписи); + Если Не ПроверкаЗавершиласьСОшибками Тогда + ОбщегоНазначенияКлиент.ОповеститьОбИзмененииОбъекта(СсылкаНовойУчетнойЗаписи); + КонецЕсли; КонецЕсли; ПерейтиНаСледующуюСтраницу(); @@ -1164,7 +1181,7 @@ Процедура ПриПолученииОтветаПочтовогоСервера(СтрокаПараметров, АдресПолученияКлюча) Если СтрНачинаетсяС(СтрокаПараметров, "{") Тогда - Ответ = РаботаСПочтовымиСообщениямиСлужебный.JSONВЗначение(СтрокаПараметров); + Ответ = ОбщегоНазначения.JSONВЗначение(СтрокаПараметров); Иначе Ответ = ПараметрыИзСтрокиURI(СтрокаПараметров); КонецЕсли; @@ -1231,7 +1248,7 @@ РезультатЗапроса = РаботаСПочтовымиСообщениямиСлужебный.ВыполнитьЗапрос(АдресСервера, АдресРесурса, ПараметрыЗапроса); Попытка - ПараметрыОтвета = РаботаСПочтовымиСообщениямиСлужебный.JSONВЗначение(РезультатЗапроса.ОтветСервера); + ПараметрыОтвета = ОбщегоНазначения.JSONВЗначение(РезультатЗапроса.ОтветСервера); Исключение ПараметрыОтвета = Новый Соответствие; КонецПопытки; @@ -1366,7 +1383,7 @@ РезультатЗапроса = РаботаСПочтовымиСообщениямиСлужебный.ВыполнитьЗапрос(АдресСервера, АдресРесурса, ПараметрыЗапроса); Попытка - ПараметрыОтвета = РаботаСПочтовымиСообщениямиСлужебный.JSONВЗначение(РезультатЗапроса.ОтветСервера); + ПараметрыОтвета = ОбщегоНазначения.JSONВЗначение(РезультатЗапроса.ОтветСервера); Исключение ПараметрыОтвета = Новый Соответствие; КонецПопытки; @@ -1454,7 +1471,7 @@ РезультатЗапроса = РаботаСПочтовымиСообщениямиСлужебный.ВыполнитьЗапрос(АдресСервера, АдресРесурса, ПараметрыЗапроса); Попытка - ПараметрыОтвета = РаботаСПочтовымиСообщениямиСлужебный.JSONВЗначение(РезультатЗапроса.ОтветСервера); + ПараметрыОтвета = ОбщегоНазначения.JSONВЗначение(РезультатЗапроса.ОтветСервера); Исключение ПараметрыОтвета = Новый Соответствие; КонецПопытки; diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Form.form index 30abdb209..d3b063613 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Form.form @@ -2,7 +2,7 @@ <key>ru</key> - <value>Введите пароль учетной записи</value> + <value>Введите пароль почты</value> Пароль diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Help/ru.html b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Help/ru.html index a89868dca..4a3d3f28e 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Help/ru.html +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Help/ru.html @@ -1 +1 @@ -При изменении настроек уже введенной персональной учетной записи программа просит ввести пароль. Это сделано для того, чтобы никто (даже администратор) не мог получить доступ к персональной почте. \ No newline at end of file +При изменении настроек уже введенной персональной почты программа просит ввести пароль. Это сделано для того, чтобы никто (даже администратор) не мог получить доступ к персональной почте. \ No newline at end of file diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form index 180b3da77..c5b8f5d2e 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form @@ -656,7 +656,7 @@ <key>ru</key> - <value>Учетная запись успешно настроена картинка и надпись</value> + <value>Почта успешно настроена.</value> УчетнаяЗаписьУспешноНастроенаКартинкаИНадписьРасширеннаяПодсказка diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form index 8ad7e2728..18a716347 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form @@ -22,7 +22,7 @@ Left ru - Наименование учетной записи + Наименование почты НаименованиеРасширеннаяПодсказка @@ -370,7 +370,7 @@ 227 <key>ru</key> - <value>Владелец учетной записи</value> + <value>Владелец почты</value> true true @@ -456,7 +456,7 @@ VeryHigh <key>ru</key> - <value>Тип учетной записи</value> + <value>Тип почты</value> true true @@ -1976,7 +1976,7 @@ ВидУчетнойЗаписи <key>ru</key> - <value>Вид учетной записи</value> + <value>Вид почты</value> 7 diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html index 4de2f945d..ca9201880 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html @@ -1,16 +1,16 @@ -

    Описание свойств учетной записи электронной почты.

    -

    При вводе учетной записи большинство параметров проставляется программой по умолчанию в зависимости от настроек почтовых серверов учетной записи электронной почты.

    -

    Для системных учетных записей рекомендуется запомнить пароль, для того чтобы программа могла рассылать сообщения от такой учетной записи без участия пользователя. Тем не менее, решение о хранении паролей в информационной базе принимается в каждом случае индивидуально.

    +

    Настройка электронной почты.

    +

    При настройке большинство параметров заполняются программой автоматически в зависимости от настроек почтовых серверов.

    +

    Для основной электронной почты рекомендуется запомнить пароль, для того чтобы программа могла рассылать сообщения от ее имени без участия пользователя. Тем не менее, решение о хранении паролей в информационной базе принимается в каждом случае индивидуально.

    Основные сведения

    • -
      Введите Наименование учетной записи. Необходимо сформулировать наименование так, чтобы оно кратко характеризовало учетную запись, отражало назначение данной учетной записи или ее владельца, например, "Служба техподдержки". Именно наименование будет появляться в различных списках.
      +
      Введите Наименование почты. Необходимо сформулировать наименование так, чтобы оно кратко характеризовало почту, отражало ее назначение или ее владельца, например, "Служба техподдержки". Именно наименование будет появляться в различных списках.
    • -
      Введите Адрес электронной почты учетной записи в формате User@Server.net.
      +
      Введите Адрес электронной почты в формате User@Server.net.
    • -
      Укажите Имя отправителя писем - имя владельца учетной записи, которое будет указываться в корреспонденции, при этом оно может отличаться от имени пользователя в программе, например, пользователь "Администратор", а имя его "Иван Иванович".

    Использование учетной записи

    +
    Укажите Имя отправителя писем - имя владельца почты, которое будет указываться в корреспонденции, при этом оно может отличаться от имени пользователя в программе, например, пользователь "Администратор", а имя его "Иван Иванович".

    Использование почты

    • Укажите, как использовать учетную запись:

    Настройки подключения

    Зависят от настроек почтового сервера.

    -

    Выберите Тип учетной записи:

    +

    Выберите Тип почты:

    В зависимости от выбранного типа учетной записи заполните остальные поля.

    +
  • POP.
  • В зависимости от выбранного типа почты заполните остальные поля.

    Настройки сервера IMAP

    -
    • Введите Логин учетной записи в формате User@Server.net. и Пароль учетной записи. +
      • Введите Логин почты в формате User@Server.net. и Пароль почты.
      • Укажите Сервер IMAP, например, imap.Server.net, Порт, например, 993.
        • С помощью переключателя укажите, когда будет производиться Шифрование: @@ -44,7 +44,7 @@
        • Всегда (SSL).
    • При необходимости включите флажок При отправке писем требуется авторизация на сервере исходящей почты (SMTP).

    Настройки сервера POP

    -
    • Укажите Логин учетной записи в формате User@Server.net, введите Пароль учетной записи. +
      • Укажите Логин почты в формате User@Server.net, введите Пароль почты.
      • Включите флажок Оставлять копии писем на сервере, для того чтобы программа не удалила письма в папке "Входящие" почтового ящика электронной почты. По умолчанию флажок отключен, в этом случае все письма после получения будут удалены с почтового сервера. После этого становится доступным флажок:
        • Определите срок хранения писем на почтовом сервере с помощью флажка Удалять письма с сервера через - например, через "10 дней".
      • @@ -70,13 +70,13 @@
      • на сервере входящей почты (POP).

    Проверка настроек

    • -

      Нажмите Проверить настройки для проверки введенных параметров учетной записи.

      +

      Нажмите Проверить настройки для проверки введенных параметров.

    • -

      Программа отправляет стандартное почтовое сообщение и проверяет возможность соединения с сервером входящих почтовых сообщений (если учетная запись используется для получения почты). Также можно воспользоваться одноименной командой меню Еще.

    Изменение персональной учетной записи

    +

    Программа отправляет стандартное почтовое сообщение и проверяет возможность соединения с сервером входящих почтовых сообщений (если учетная запись используется для получения почты). Также можно воспользоваться одноименной командой меню Еще.

    Изменение персональной почты

    • В программе предусмотрена возможность вводить общие и персональные учетные записи электронной почты.
    • -
    • При изменении настроек уже введенной персональной учетной записи электронной почты программа просит ввести пароль. Это сделано для того, чтобы никто (даже администратор) не мог получить доступ к персональной почте.

    +
  • При изменении настроек уже введенной персональной электронной почты программа просит ввести пароль. Это сделано для того, чтобы никто (даже администратор) не мог получить доступ к персональной почте.
  • См. также:

    \ No newline at end of file diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl index acd04dd30..69789c177 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl @@ -73,7 +73,7 @@ Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) Если ВидУчетнойЗаписи = "Персональная" И Не ЗначениеЗаполнено(Объект.ВладелецУчетнойЗаписи) Тогда Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Не выбран владелец учетной записи.'"); + ТекстСообщения = НСтр("ru = 'Не выбран владелец почты.'"); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.ВладелецУчетнойЗаписи"); КонецЕсли; КонецПроцедуры @@ -108,7 +108,7 @@ &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) - Оповестить("Запись_УчетнаяЗаписьЭлектроннойПочты",,Объект.Ссылка); + ОбщегоНазначенияКлиент.ОповеститьОбИзмененииОбъекта(Объект.Ссылка); Если ПараметрыЗаписи.Свойство("ЗаписатьИЗакрыть") Тогда Закрыть(); diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html index 3ac9e4124..d9c052e44 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html @@ -2,22 +2,22 @@

    Предназначен для ведения учетных записей электронной почты, которые используются для получения и отправки электронных сообщений.

    Список можно открыть соответствующей командой в разделе Администрирование - Органайзер. 

    В списке выводится:

    -
    • Наименование учетной записи; +
      • Наименование почты;
      • Имя пользователя - указывается имя отправителя писем, оно может отличаться от имени пользователя в программе;
      • -
      • Адрес электронной почты учетной записи в формате name@server.net. 

      Для учетных записей, получение и отправка с которых выполняется автоматически без участия пользователя, должен быть обязательно введен пароль. Также для корректной работы программы обязательно должна быть настроена системная учетная запись электронной почты.

      +
    • Адрес электронной почты в формате name@server.net. 

    Для учетных записей, получение и отправка с которых выполняется автоматически без участия пользователя, должен быть обязательно введен пароль. Также для корректной работы программы обязательно должна быть настроена системная учетная запись электронной почты.

    Системная учетная запись электронной почты

    -
    • Программа поставляется с предопределенной учетной записью - системной учетной записью электронной почты. Она используется по умолчанию для рассылки различных уведомлений из программы, например, для автоматической отправки сообщений администратору по завершению обновления программы. Перед использованием этих возможностей необходимо настроить системную учетную запись. +
      • Программа поставляется с предопределенной настройкой электронной почты, которая предназначена для рассылки различных уведомлений из программы. Например, для автоматической отправки сообщений администратору по завершению обновления программы. Для этого предварительное необходимо настроить ее.
      • -
      • Настройка системной учетной записи производится по соответствующей команде в разделе Администрирование - Органайзер. Также можно Изменить ее в списке.

      Ввод учетной записи электронной почты

      +
    • Настройка основной почты для рассылок уведомлений производится по соответствующей команде в разделе Администрирование - Органайзер. Также можно Изменить ее в списке.

    Настройка электронной почты

    • При попытке сохранения программа проверяет введенные учетные записи электронной почты (пытается отослать пробное сообщение). Учетные записи, не прошедшие проверку, не сохраняются.
    • Нажмите Создать, введите необходимые поля: -
      • Укажите Адрес почты учетной записи в формате name@server.net; +
        • Укажите Адрес почты в формате name@server.net;
        • С помощью переключателя выберите способ авторизации:
        • -
          • Ввести пароль, в этом случае укажите в поле справа Пароль учетной записи; +
            • Ввести пароль, в этом случае укажите в поле справа Пароль почты;
            • Авторизоваться на почтовом сервисе, в этом случае программа выводит инструкцию авторизации, которая зависит от почтового сервиса. Следуйте инструкции программы.
              • На почтовом сервисе потребуется указать данные о приложении, например, callback URL, который программа формирует автоматически.
              • @@ -32,14 +32,14 @@
              • Только мной.
            • Укажите Имя отправителя (Ваше имя или название организации);
          • -
          • Нажмите Создать. Программа предпримет попытку автоматической настройки и проверки учетной записи. Следуйте указаниям программы. При этом если при автоматической настройке произошел сбой, можно попытаться настроить параметры вручную. 
          • +
          • Нажмите Создать. Будет предпринята попытка автоматической настройки и проверки почты. Следуйте указаниям программы. При этом если при автоматической настройке произошел сбой, можно попытаться настроить параметры вручную. 
          • Если автоматически настроить почту не удалось, нажмите Настроить вручную.
            • -

              Нажмите Далее для заполнения остальных параметров, при этом программа проставляет рекомендуемые параметры для большинства почтовых серверов. Их требуется только проверить и попытаться сохранить учетную запись заново.

          Настройка учетной записи электронной почты

          -
          • Нажмите  Изменить, с помощью программы произведите необходимые настройки.

          Проверка учетной записи электронной почты

          +

          Нажмите Далее для заполнения остальных параметров, при этом программа проставляет рекомендуемые параметры для большинства почтовых серверов. Их требуется только проверить и попытаться сохранить учетную запись заново.

      Настройка электронной почты

      +
      • Нажмите  Изменить, с помощью программы произведите необходимые настройки.

      Проверка настроек электронной почты

      • -
        Выделите учетную запись в списке, нажмите Еще - Проверить учетную запись для проверки введенных параметров учетной записи. При этом отправляется стандартное почтовое отправление и проверяется возможность соединения с сервером входящих почтовых сообщений (если учетная запись используется для получения почты).
        +
        Выделите учетную запись в списке, нажмите Еще - Проверить почту для проверки введенных параметров. При этом отправляется стандартное почтовое отправление и проверяется возможность соединения с сервером входящих почтовых сообщений (если учетная запись используется для получения почты).
      • -
        Если в учетной записи не прописан пароль, программа его запрашивает. При необходимости введите пароль.

      См. также: 

      +
      Если в почте не указан пароль, он будет запрошен.

    См. также: 

    \ No newline at end of file diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl index 78801c769..4114f5703 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl @@ -74,7 +74,7 @@ Если ТребуетсяПроверкаПароля Тогда ПроверкаПароля = Неопределено; Если Не ДополнительныеСвойства.Свойство("Пароль", ПроверкаПароля) Или Не ПарольВведенВерно(ПроверкаПароля) Тогда - ТекстСообщенияОбОшибке = НСтр("ru = 'Не подтвержден пароль для изменения настроек учетной записи.'"); + ТекстСообщенияОбОшибке = НСтр("ru = 'Не подтвержден пароль для изменения настроек почты.'"); ВызватьИсключение ТекстСообщенияОбОшибке; КонецЕсли; КонецЕсли; diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo index 64bf0325b..f78016a37 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo @@ -80,7 +80,7 @@ Description ru - Наименование учетной записи + Наименование почты ShowError @@ -535,7 +535,7 @@ ru - Владелец персональной учетной записи электронной почты + Владелец персональной электронной почты @@ -627,7 +627,7 @@ ПомощникНастройкиУчетнойЗаписи ru - Помощник настройки учетной записи + Помощник настройки почты PersonalComputer MobileDevice @@ -636,7 +636,7 @@ ПроверкаДоступаКУчетнойЗаписи ru - Проверка доступа к учетной записи + Проверка доступа к почте diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form b/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form index f67cb6602..9f72677f9 100644 --- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form +++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form @@ -2665,7 +2665,7 @@ 87 <key>ru</key> - <value>Файл с диска...</value> + <value>Файл с компьютера...</value> true true @@ -4466,19 +4466,6 @@ true
    - - ПапкаПриОткрытии - 4 - - CatalogRef.ПапкиФайлов - - - true - - - true - - ИспользоватьИерархию 5 @@ -4736,12 +4723,12 @@ ДобавитьФайл <key>ru</key> - <value>Из файла на диске ...</value> + <value>Из файла на компьютере ...</value> 3 ru - Создать файл из файла на диске + Загрузить файл из компьютера или другого устройства true @@ -4982,7 +4969,7 @@ 13 ru - Сохранить файл на диск или другое устройство + Сохранить файл на компьютер или другое устройство true @@ -5051,12 +5038,12 @@ ОбновитьИзФайлаНаДиске <key>ru</key> - <value>Обновить из файла на диске...</value> + <value>Обновить из файла на компьютере...</value> 16 ru - Обновить из файла на диске + Обновить из файла на компьютере или другого устройства true @@ -5487,6 +5474,16 @@ Auto + + Папка + + CatalogRef.ПапкиФайлов + + + + ПараметрыОтправки + + diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Help/ru.html b/SSL/src/Catalogs/Файлы/Forms/Файлы/Help/ru.html index e1fb534d9..e0ac27698 100644 --- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Help/ru.html +++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Help/ru.html @@ -24,7 +24,7 @@
    • Файл с диска
      • -
        Для того чтобы прикрепить к объекту или поместить в папку уже имеющийся на компьютере файл, укажите путь к файлу на диске, нажмите кнопку Открыть.
        +
        Для того чтобы прикрепить к объекту или поместить в папку уже имеющийся на компьютере файл, укажите путь к файлу на компьютере, нажмите кнопку Открыть.
      • После этого программа сохранит файл, автоматически создаст и откроет Карточку файла.
    • По шаблону
      @@ -42,7 +42,7 @@
    • После того как документ отсканирован, выполните команду Принять, после этого файлу автоматически присваивается код и создается карточка файла, которая выводится на экран. В поле Наименование также автоматически проставляется код. Отредактируйте нужные поля, нажмите Записать и закрыть, для того чтобы сохранить карточку файла.

    Шаблоны файлов

    • Программа поставляется с предопределенной папкой Шаблоны файлов. В папке можно разместить файлы, которые будут использоваться при создании новых файлов в качестве шаблона. Например, в эту папку можно поместить файл-заготовку с текстом договора и в дальнейшем использовать его при создании договоров для конкретных контрагентов. -
    • Для того чтобы поместить в папку новый шаблон, откройте папку Шаблоны файлов, нажмите Добавить, с помощью переключателя выберите Файл с диска. Затем выберите нужный файл. +
    • Для того чтобы поместить в папку новый шаблон, откройте папку Шаблоны файлов, нажмите Добавить, с помощью переключателя выберите Файл с компьютера. Затем выберите нужный файл.
    • Программа автоматически создает и выводит на просмотр карточку файла. Заполните описание шаблона, поле Папка по умолчанию заполнено - Шаблоны файлов.

    Размещение файлов в папках

    • В списке можно  Создать необходимое количество папок и хранить в них файлы, непривязанные к конкретным объектам программы.
      • Создать папку можно также с помощью соответствующей команды меню Еще или контекстного меню по правой кнопке мыши. @@ -51,7 +51,7 @@
        • Папкам можно назначать различные права доступа.
          • Права доступа к папкам файлов настраиваются администратором программы или пользователем, имеющим право на управление правами той или иной папки.
          • Для настройки прав доступа воспользуйтесь соответствующей командой панели навигации папки.

        Загрузка файлов

        -
        • С помощью команды меню Еще или контекстного меню по правой кнопке мыши Загрузить файлы можно разместить в одной из папок списка файлы с жесткого или сетевого диска. +
          • С помощью команды меню Еще или контекстного меню по правой кнопке мыши Загрузить файлы можно разместить в одной из папок файлы с компьютера.
          • В открывшемся Проводнике Windows укажите путь к файлу, нажмите Открыть.
          • Заполните необходимые для загрузки сведения.

          Загрузка папок

          • diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl index 4a236786e..ed1009fce 100644 --- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl @@ -18,7 +18,7 @@ Элементы.ПоказыватьСлужебныеФайлы.Видимость = Пользователи.ЭтоПолноправныйПользователь(); - Если Параметры.Свойство("Папка") И Параметры.Папка <> Неопределено Тогда + Если Не Параметры.Папка.Пустая() Тогда ПапкаПриОткрытии = Параметры.Папка; Иначе ПапкаПриОткрытии = ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить("Файлы", "ТекущаяПапка"); @@ -31,11 +31,8 @@ ПапкаПриОткрытии = Справочники.ПапкиФайлов.Шаблоны; КонецЕсли; - Если Параметры.Свойство("ПараметрыОтправки") Тогда - ПараметрыОтправки = Параметры.ПараметрыОтправки; - Иначе - ПараметрыОтправки = РаботаСФайламиСлужебный.ПодготовитьСтруктуруПараметровОтправки(); - КонецЕсли; + ПараметрыОтправки = ?(Параметры.ПараметрыОтправки <> Неопределено, Параметры.ПараметрыОтправки, + РаботаСФайламиСлужебный.ПодготовитьСтруктуруПараметровОтправки()); Элементы.Папки.ТекущаяСтрока = ПапкаПриОткрытии; @@ -44,18 +41,15 @@ РаботаСФайламиСлужебный.ИзменитьФормуДляВнешнегоПользователя(ЭтотОбъект, Истина); КонецЕсли; - Список.Параметры.УстановитьЗначениеПараметра( - "Владелец", ПапкаПриОткрытии); - Список.Параметры.УстановитьЗначениеПараметра( - "ТекущийПользователь", ТекущийПользователь); + Список.Параметры.УстановитьЗначениеПараметра( "Владелец", ПапкаПриОткрытии); + Список.Параметры.УстановитьЗначениеПараметра( "ТекущийПользователь", ТекущийПользователь); ПустыеПользователи = Новый Массив; ПустыеПользователи.Добавить(Неопределено); ПустыеПользователи.Добавить(Справочники.Пользователи.ПустаяСсылка()); ПустыеПользователи.Добавить(Справочники.ВнешниеПользователи.ПустаяСсылка()); ПустыеПользователи.Добавить(Справочники.УчетныеЗаписиСинхронизацииФайлов.ПустаяСсылка()); - Список.Параметры.УстановитьЗначениеПараметра( - "ПустыеПользователи", ПустыеПользователи); + Список.Параметры.УстановитьЗначениеПараметра( "ПустыеПользователи", ПустыеПользователи); ПоказыватьКолонкуРазмер = РаботаСФайламиСлужебный.ПолучитьПоказыватьКолонкуРазмер(); Если ПоказыватьКолонкуРазмер = Ложь Тогда @@ -106,7 +100,7 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - Элементы.ФормаСоздатьСоСканера.Видимость = РаботаСФайламиСлужебныйКлиент.ДоступнаКомандаСканировать(); + Элементы.ФормаСоздатьСоСканера.Видимость = РаботаСФайламиСлужебныйКлиент.ДоступноСканирование(); УстановитьДоступностьФайловыхКоманд(); @@ -380,13 +374,10 @@ &НаКлиенте Процедура ДобавитьФайлСоСканера(Команда) - ПараметрыДобавления = Новый Структура; - ПараметрыДобавления.Вставить("ОбработчикРезультата", Неопределено); - ПараметрыДобавления.Вставить("ВладелецФайла", Элементы.Папки.ТекущаяСтрока); - ПараметрыДобавления.Вставить("ФормаВладелец", ЭтотОбъект); - ПараметрыДобавления.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", Истина); - ПараметрыДобавления.Вставить("ЭтоФайл", Истина); - РаботаСФайламиСлужебныйКлиент.ДобавитьСоСканера(ПараметрыДобавления); + ПараметрыДобавления = РаботаСФайламиКлиент.ПараметрыДобавленияСоСканера(); + ПараметрыДобавления.ВладелецФайла = Элементы.Папки.ТекущаяСтрока; + ПараметрыДобавления.ФормаВладелец = ЭтотОбъект; + РаботаСФайламиКлиент.ДобавитьСоСканера(ПараметрыДобавления); КонецПроцедуры @@ -403,14 +394,10 @@ ИспользоватьИерархию = Не ИспользоватьИерархию; Если ИспользоватьИерархию И (Элементы.Список.ТекущиеДанные <> Неопределено) Тогда - - Если Элементы.Список.ТекущиеДанные.Свойство("ВладелецФайла") Тогда - Элементы.Папки.ТекущаяСтрока = Элементы.Список.ТекущиеДанные.ВладелецФайла; - Иначе - Элементы.Папки.ТекущаяСтрока = Неопределено; - КонецЕсли; - - Список.Параметры.УстановитьЗначениеПараметра("Владелец", Элементы.Папки.ТекущаяСтрока); + ТекущаяСтрока = Неопределено; + Элементы.Список.ТекущиеДанные.Свойство("ВладелецФайла", ТекущаяСтрока); + Элементы.Папки.ТекущаяСтрока = ТекущаяСтрока; + Список.Параметры.УстановитьЗначениеПараметра("Владелец", ТекущаяСтрока); КонецЕсли; УстановитьИерархию(ИспользоватьИерархию); diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Form.form b/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Form.form index 2465f8bee..17354b7f4 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Form.form +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Form.form @@ -46,7 +46,7 @@ ru - Файл с диска + Файл с компьютера 2 diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form index 134d8253a..a64de6cd9 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form @@ -2866,6 +2866,39 @@ Normal + + ЭлектронныеПодписиТребуетсяПроверка + 306 + true + true + + true + + + ЭлектронныеПодписи.ТребуетсяПроверка + + + ЭлектронныеПодписиТребуетсяПроверкаРасширеннаяПодсказка + 308 + Label + true + true + + Left + + + + ЭлектронныеПодписиТребуетсяПроверкаКонтекстноеМеню + 307 + true + + CheckBoxField + Enter + true + Left + true + + ЭлектронныеПодписиКоманднаяПанель 34 @@ -3970,6 +4003,23 @@ true + + ТребуетсяПроверка + + <key>ru</key> + <value>Требуется проверка</value> + + 19 + + Boolean + + + true + + + true + + СертификатыШифрования @@ -4319,7 +4369,7 @@ 10 ru - Сохранить файл на диск или другое устройство + Сохранить файл на компьютер или другое устройство true @@ -4515,7 +4565,7 @@ 16 ru - Сохранить файл на диск или другое устройство вместе с электронной подписью + Сохранить файл на компьютер или другое устройство вместе с электронной подписью true @@ -4532,12 +4582,12 @@ ОбновитьИзФайлаНаДиске <key>ru</key> - <value>Обновить из файла на диске...</value> + <value>Обновить из файла на компьютере...</value> 17 ru - Обновить из файла на диске + Обновить из файла на компьютере или другого устройства true diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Form.form b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Form.form index dd3c61cd7..341cb8b99 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Form.form +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Form.form @@ -1,5 +1,5 @@ - + <key>ru</key> <value>Вопрос шаблона анкеты</value> @@ -54,103 +54,24 @@ <choiceHistoryOnInput>DontUse</choiceHistoryOnInput> </extInfo> </items> - <items xsi:type="form:FormField"> - <name>Формулировка</name> - <id>1</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible> - <common>true</common> - </userVisible> - <dataPath xsi:type="form:DataPath"> - <segments>Формулировка</segments> - </dataPath> - <titleLocation>Left</titleLocation> - <extendedTooltip> - <name>ФормулировкаExtendedTooltip</name> - <id>16</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>ФормулировкаКонтекстноеМеню</name> - <id>2</id> - <autoFill>true</autoFill> - </contextMenu> - <type>InputField</type> - <markRequiredComplete>true</markRequiredComplete> - <editMode>Enter</editMode> - <showInHeader>true</showInHeader> - <headerHorizontalAlign>Left</headerHorizontalAlign> - <showInFooter>true</showInFooter> - <extInfo xsi:type="form:InputFieldExtInfo"> - <width>40</width> - <autoMaxHeight>true</autoMaxHeight> - <wrap>true</wrap> - <multiLine>true</multiLine> - <extendedEdit>true</extendedEdit> - <autoMarkIncomplete>true</autoMarkIncomplete> - <chooseType>true</chooseType> - <typeDomainEnabled>true</typeDomainEnabled> - <textEdit>true</textEdit> - <textSize>Normal</textSize> - </extInfo> - </items> - <items xsi:type="form:FormField"> - <name>Обязательный</name> - <id>6</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible> - <common>true</common> - </userVisible> - <dataPath xsi:type="form:DataPath"> - <segments>Обязательный</segments> - </dataPath> - <titleLocation>Right</titleLocation> - <extendedTooltip> - <name>ОбязательныйExtendedTooltip</name> - <id>18</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>ОбязательныйКонтекстноеМеню</name> - <id>7</id> - <autoFill>true</autoFill> - </contextMenu> - <type>CheckBoxField</type> - <editMode>Enter</editMode> - <showInHeader>true</showInHeader> - <headerHorizontalAlign>Left</headerHorizontalAlign> - <showInFooter>true</showInFooter> - <extInfo xsi:type="form:CheckBoxFieldExtInfo"/> - </items> <items xsi:type="form:FormGroup"> - <name>ГруппаПодсказка</name> - <id>27</id> + <name>ГруппаФормулировка</name> + <id>49</id> <items xsi:type="form:FormField"> - <name>СпособОтображенияПодсказки</name> - <id>29</id> + <name>Формулировка</name> + <id>1</id> <visible>true</visible> <enabled>true</enabled> <userVisible> <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>СпособОтображенияПодсказки</segments> + <segments>Формулировка</segments> </dataPath> + <titleLocation>None</titleLocation> <extendedTooltip> - <name>СпособОтображенияПодсказкиРасширеннаяПодсказка</name> - <id>31</id> + <name>ФормулировкаExtendedTooltip</name> + <id>16</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -159,8 +80,162 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>СпособОтображенияПодсказкиКонтекстноеМеню</name> - <id>30</id> + <name>ФормулировкаКонтекстноеМеню</name> + <id>2</id> + <autoFill>true</autoFill> + </contextMenu> + <type>InputField</type> + <markRequiredComplete>true</markRequiredComplete> + <editMode>Enter</editMode> + <showInHeader>true</showInHeader> + <headerHorizontalAlign>Left</headerHorizontalAlign> + <showInFooter>true</showInFooter> + <extInfo xsi:type="form:InputFieldExtInfo"> + <width>40</width> + <autoMaxHeight>true</autoMaxHeight> + <wrap>true</wrap> + <multiLine>true</multiLine> + <extendedEdit>true</extendedEdit> + <autoMarkIncomplete>true</autoMarkIncomplete> + <chooseType>true</chooseType> + <typeDomainEnabled>true</typeDomainEnabled> + <textEdit>true</textEdit> + <textSize>Normal</textSize> + </extInfo> + </items> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <title> + <key>ru</key> + <value>Формулировка</value> + + + ГруппаФормулировкаРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + NormalSeparation + true + true + auto + Auto + Auto + + + + ГруппаОбязательный + 35 + + ПризнакОбязательный + 51 + + <key>ru</key> + <value>На этот вопрос</value> + + true + true + + true + + + ПризнакОбязательный + + + OnChange + ПризнакОбязательныйПриИзменении + + + ПризнакОбязательныйРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + + ПризнакОбязательныйКонтекстноеМеню + 52 + true + + RadioButtonField + Enter + true + Left + true + + 1 + + + ru + Необязательно отвечать + + + 0 + + + + + ru + Обязательно ответить + + + 1 + + + + + ru + Обязательно ответить или отказаться + + + 2 + + + Vertical + + + + ФормулировкаОтказаОтОтвета + 42 + + <key>ru</key> + <value>Формулировка отказа</value> + + true + true + + true + + + ФормулировкаОтказаОтОтвета + + Left + + ФормулировкаОтказаОтОтветаРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + + ФормулировкаОтказаОтОтветаКонтекстноеМеню + 43 true InputField @@ -169,15 +244,54 @@ Left true + 20 true true + false true true true true Normal + + ru + Затрудняюсь ответить + + true + true + + true + + + <key>ru</key> + <value>Группа обязательный</value> + + + ГруппаОбязательныйРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ГруппаПодсказка + 27 Подсказка 32 @@ -189,7 +303,7 @@ Подсказка - Left + None ПодсказкаРасширеннаяПодсказка 34 @@ -223,6 +337,61 @@ Normal + + СпособОтображенияПодсказки + 29 + true + true + + true + + + СпособОтображенияПодсказки + + None + + СпособОтображенияПодсказкиРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + + СпособОтображенияПодсказкиКонтекстноеМеню + 30 + true + + RadioButtonField + Enter + true + Left + true + + 1 + + + ru + Контекстная подсказка + + + Enum.СпособыОтображенияПодсказок.EnumValue.КонтекстнаяПодсказка + + + + + ru + Знак вопроса справа + + + Enum.СпособыОтображенияПодсказок.EnumValue.ЗнакВопросаСправа + + + Vertical + + true true @@ -244,28 +413,78 @@ UsualGroup - Vertical + AlwaysHorizontal + NormalSeparation true true + auto Auto Auto - - Заметки - 24 + + ГруппаЗаметки + 45 + + Заметки + 24 + true + true + + true + + + Заметки + + None + + ЗаметкиРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + ЗаметкиКонтекстноеМеню + 25 + true + + InputField + Enter + true + Left + true + + + StartChoice + ЗаметкиНачалоВыбора + + true + false + true + true + true + true + true + true + Normal + + true true true - - Заметки - - Left + + <key>ru</key> + <value>Заметки</value> + - ЗаметкиРасширеннаяПодсказка - 26 + ГруппаЗаметкиРасширеннаяПодсказка + 46 Label true true @@ -273,36 +492,22 @@ Left - - ЗаметкиКонтекстноеМеню - 25 - true - - InputField - Enter - true - Left - true - - - StartChoice - ЗаметкиНачалоВыбора - - true - true - false - true - true - true - true - true - true - Normal + UsualGroup + + AlwaysHorizontal + NormalSeparation + true + true + auto + Auto + Auto - - ГруппаКнопки - 8 + Bottom + true + + ФормаКоманднаяПанель + -1 КнопкаГотово 11 @@ -326,7 +531,6 @@ Left - UsualButton Form.Command.ПеренестиВШаблон Auto true @@ -354,7 +558,6 @@ Left - UsualButton Form.StandardCommand.Close Normal Auto @@ -363,44 +566,12 @@ UserCmds Auto - true - true - - true - - - <key>ru</key> - <value>Кнопки</value> - - true - - ГруппаКнопкиExtendedTooltip - 20 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Right - true - true - Auto - Auto - - - None - false - - ФормаКоманднаяПанель - -1 - Left - true + Right + + OnOpen + ПриОткрытии + OnCreateAtServer ПриСозданииНаСервере @@ -455,10 +626,6 @@ Обязательный - - <key>ru</key> - <value>Обязательный</value> - 3 Boolean @@ -593,6 +760,60 @@ true + + ИспользоватьОтказОтОтвета + 12 + + Boolean + + + true + + + true + + + + ФормулировкаОтказаОтОтвета + + <key>ru</key> + <value>Формулировка отказа от ответа</value> + + 13 + + String + + 50 + + + + true + + + true + + + + ПризнакОбязательный + + <key>ru</key> + <value>Признак обязательный</value> + + 14 + + Number + + 1 + true + + + + true + + + true + + ПеренестиВШаблон diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl index 3ad50a4a1..13901ccd2 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl @@ -14,7 +14,7 @@ ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры); Если ТипСтрокиДерева = "Раздел" Тогда - Элементы.Обязательный.Видимость = Ложь; + Элементы.ГруппаОбязательный.Видимость = Ложь; Элементы.ЭлементарныйВопрос.Видимость = Ложь; Элементы.ГруппаПодсказка.Видимость = Ложь; Элементы.Формулировка.Заголовок = НСтр("ru = 'Имя раздела'"); @@ -32,6 +32,21 @@ Элементы.ЭлементарныйВопрос.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбора); КонецЕсли; + Если ИспользоватьОтказОтОтвета Тогда + ПризнакОбязательный = 2; + ИначеЕсли Обязательный Тогда + ПризнакОбязательный = 1; + Иначе + ПризнакОбязательный = 0; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + УстановитьДоступностьПризнакаФормулировкаОтказаОтОтвета(); + КонецПроцедуры &НаКлиенте @@ -69,6 +84,24 @@ КонецПроцедуры +&НаКлиенте +Процедура ПризнакОбязательныйПриИзменении(Элемент) + + Если ПризнакОбязательный = 0 Тогда + Обязательный = Ложь; + ИспользоватьОтказОтОтвета = Ложь; + ИначеЕсли ПризнакОбязательный = 1 Тогда + Обязательный = Истина; + ИспользоватьОтказОтОтвета = Ложь; + ИначеЕсли ПризнакОбязательный = 2 Тогда + Обязательный = Истина; + ИспользоватьОтказОтОтвета = Истина; + КонецЕсли; + + УстановитьДоступностьПризнакаФормулировкаОтказаОтОтвета(); + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -88,6 +121,11 @@ ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Не указан элементарный вопрос'"),,"ЭлементарныйВопрос"); КонецЕсли; + Если ИспользоватьОтказОтОтвета И Не ЗначениеЗаполнено(ФормулировкаОтказаОтОтвета) Тогда + Отказ = Истина; + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Не заполнена формулировка'"),,"ФормулировкаОтказаОтОтвета"); + КонецЕсли; + Если Отказ Тогда Возврат; КонецЕсли; @@ -114,6 +152,9 @@ СтруктураВозврата.Вставить("ЭтоНоваяСтрока", Ложь); СтруктураВозврата.Вставить("Подсказка", Подсказка); СтруктураВозврата.Вставить("СпособОтображенияПодсказки", СпособОтображенияПодсказки); + СтруктураВозврата.Вставить("ИспользоватьОтказОтОтвета", ИспользоватьОтказОтОтвета); + СтруктураВозврата.Вставить("ФормулировкаОтказаОтОтвета", ?(ИспользоватьОтказОтОтвета, + ФормулировкаОтказаОтОтвета, "")); Возврат СтруктураВозврата; @@ -136,4 +177,11 @@ КонецПроцедуры +&НаКлиенте +Процедура УстановитьДоступностьПризнакаФормулировкаОтказаОтОтвета() + + Элементы.ФормулировкаОтказаОтОтвета.Доступность = ИспользоватьОтказОтОтвета; + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Form.form index 8d7feadb7..9145b4998 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Form.form @@ -2056,6 +2056,74 @@ <common>true</common> </edit> </columns> + <columns> + <name>ИспользоватьМинимальноеЗначение</name> + <id>28</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> + <columns> + <name>ИспользоватьМаксимальноеЗначение</name> + <id>29</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> + <columns> + <name>ИспользоватьОтказОтОтвета</name> + <id>30</id> + <valueType> + <types>Boolean</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> + <columns> + <name>ФормулировкаОтказаОтОтвета</name> + <id>31</id> + <valueType> + <types>String</types> + <stringQualifiers> + <length>50</length> + </stringQualifiers> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> + <columns> + <name>ДиапазонПодсказокЧисловогоВопроса</name> + <id>32</id> + <valueType> + <types>ValueTable</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> <additionalColumns> <tablePath xsi:type="form:DataPath"> <segments>ДеревоАнкеты.СоставТабличногоВопроса</segments> @@ -2199,6 +2267,52 @@ </edit> </columns> </additionalColumns> + <additionalColumns> + <tablePath xsi:type="form:DataPath"> + <segments>ДеревоАнкеты.ДиапазонПодсказокЧисловогоВопроса</segments> + </tablePath> + <columns> + <name>ЗначениеДо</name> + <title> + <key>ru</key> + <value>Значение до</value> + + 1 + + Number + + 15 + 2 + + + + true + + + true + + + + Подсказка + + <key>ru</key> + <value>Подсказка</value> + + 2 + + String + + 250 + + + + true + + + true + + + ИнформацияДерево diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl index 8ab4c610a..f1cbd6ed6 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl @@ -676,6 +676,8 @@ СпрОбъект.Обязательный = СтрокаДерева.Обязательный; СпрОбъект.Подсказка = СтрокаДерева.Подсказка; СпрОбъект.СпособОтображенияПодсказки = СтрокаДерева.СпособОтображенияПодсказки; + СпрОбъект.ИспользоватьОтказОтОтвета = СтрокаДерева.ИспользоватьОтказОтОтвета; + СпрОбъект.ФормулировкаОтказаОтОтвета = СтрокаДерева.ФормулировкаОтказаОтОтвета; СпрОбъект.РодительВопрос = ?(ВопросРодитель = Неопределено, Справочники.ВопросыШаблонаАнкеты.ПустаяСсылка(),ВопросРодитель); ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(СтрокаДерева.СоставТабличногоВопроса,СпрОбъект.СоставТабличногоВопроса); ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(СтрокаДерева.ПредопределенныеОтветы,СпрОбъект.ПредопределенныеОтветы); @@ -928,6 +930,8 @@ ПростойВопрос.Вставить("ЭтоНоваяСтрока", ТекущиеДанные.ЭтоНоваяСтрока); ПростойВопрос.Вставить("Подсказка", ТекущиеДанные.Подсказка); ПростойВопрос.Вставить("СпособОтображенияПодсказки", ТекущиеДанные.СпособОтображенияПодсказки); + ПростойВопрос.Вставить("ИспользоватьОтказОтОтвета", ТекущиеДанные.ИспользоватьОтказОтОтвета); + ПростойВопрос.Вставить("ФормулировкаОтказаОтОтвета", ТекущиеДанные.ФормулировкаОтказаОтОтвета); ОткрытьФорму("Справочник.ШаблоныАнкет.Форма.ФормаПростыхВопросов", ПростойВопрос, ЭтотОбъект); @@ -972,7 +976,8 @@ НоваяСтрока = СтрокаНазначение.ПолучитьЭлементы().Добавить(); КонецЕсли; - ЗаполнитьЗначенияСвойств(НоваяСтрока,СтрокаПеретаскивание,,"СоставТабличногоВопроса,ПредопределенныеОтветы, СоставКомплексногоВопроса"); + ЗаполнитьЗначенияСвойств(НоваяСтрока,СтрокаПеретаскивание,, + "СоставТабличногоВопроса,ПредопределенныеОтветы, СоставКомплексногоВопроса, ДиапазонПодсказокЧисловогоВопроса"); Если СтрокаПеретаскивание.ТипВопроса = ПредопределенноеЗначение("Перечисление.ТипыВопросовШаблонаАнкеты.Табличный") Тогда ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(СтрокаПеретаскивание.СоставТабличногоВопроса,НоваяСтрока.СоставТабличногоВопроса); ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(СтрокаПеретаскивание.ПредопределенныеОтветы,НоваяСтрока.ПредопределенныеОтветы); diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl index 5e19c9807..96aaf97d5 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl @@ -192,6 +192,8 @@ &НаСервере Процедура ИнициализироватьОтборы() + ПоказыватьКонтекстныеШаблоны = Элементы.ФормаПоказыватьКонтекстныеШаблоны.Пометка; + Элементы.НазначениеФильтр.СписокВыбора.Очистить(); Элементы.ШаблонДляФильтр.СписокВыбора.Очистить(); @@ -202,7 +204,7 @@ Список.Параметры.УстановитьЗначениеПараметра("СообщениеSMS", ВидыШаблонов.НайтиПоЗначению("SMS").Представление); Список.Параметры.УстановитьЗначениеПараметра("ЭлектроннаяПочта", ВидыШаблонов.НайтиПоЗначению("Email").Представление); - Список.Параметры.УстановитьЗначениеПараметра("ПоказыватьКонтекстныеШаблоны", Ложь); + Список.Параметры.УстановитьЗначениеПараметра("ПоказыватьКонтекстныеШаблоны", ПоказыватьКонтекстныеШаблоны); Для каждого ВидШаблона Из ВидыШаблонов Цикл Элементы.ШаблонДляФильтр.СписокВыбора.Добавить(ВидШаблона.Значение, ВидШаблона.Представление); diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form index 02c4a2801..36afb4c04 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form @@ -4164,6 +4164,10 @@ Boolean + + ВладелецШаблона + + diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl index 365eb3328..ef266d4f6 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl @@ -13,9 +13,7 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("ПараметрыСообщения") Тогда - ПараметрыСообщения = Параметры.ПараметрыСообщения; - КонецЕсли; + ПараметрыСообщения = Параметры.ПараметрыСообщения; Элементы.ПолноеИмяТипаПараметраВводаНаОсновании.СписокВыбора.Добавить(ШаблоныСообщенийКлиентСервер.ИдентификаторОбщий(), ШаблоныСообщенийКлиентСервер.ОбщийПредставление()); @@ -31,9 +29,7 @@ Если ЭтоНовыйШаблон Тогда Если Параметры.ЗначениеКопирования = Справочники.ШаблоныСообщений.ПустаяСсылка() Тогда - ИнициализироватьНовыйШаблонСообщений(НастройкиШаблоновСообщений); - Иначе Для каждого ПараметрыЗначениеКопирования Из Параметры.ЗначениеКопирования.Параметры Цикл @@ -62,7 +58,7 @@ Элементы.РеквизитыКонтекстноеМенюУдалить.Видимость = Ложь; КонецЕсли; - Если Параметры.Свойство("ВладелецШаблона") Тогда + Если ЗначениеЗаполнено(Параметры.ВладелецШаблона) Тогда Элементы.ГруппаНазначение.Видимость = Ложь; Элементы.ФормаГруппаСообщениеФормируется.Видимость = Ложь; Элементы.Назначение.Видимость = Ложь; @@ -1032,7 +1028,9 @@ КонецЕсли; - Параметры.Свойство("ВладелецШаблона", Объект.ВладелецШаблона); + Если ЗначениеЗаполнено(Параметры.ВладелецШаблона) Тогда + Объект.ВладелецШаблона = Параметры.ВладелецШаблона; + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Form.form b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Form.form index 45a4607dc..23813890f 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Form.form @@ -707,6 +707,7 @@ true false true + true true true true @@ -753,26 +754,258 @@ true true true + true true true true Normal - - МинимальноеЗначение - 24 + + НастройкиГраницЗначений + 177 + + НастройкаМинимальногоЗначения + 167 + + ИспользоватьМинимальноеЗначение + 171 + true + true + + true + + + Объект.ИспользоватьМинимальноеЗначение + + None + + OnChange + ИспользоватьМинимальноеЗначениеПриИзменении + + + ИспользоватьМинимальноеЗначениеРасширеннаяПодсказка + 173 + Label + true + true + + Left + + + + ИспользоватьМинимальноеЗначениеКонтекстноеМеню + 172 + true + + CheckBoxField + Enter + true + Left + true + + + + МинимальноеЗначение + 24 + true + true + + true + + + Объект.МинимальноеЗначение + + + OnChange + МинимальноеЗначениеПриИзменении + + + МинимальноеЗначениеExtendedTooltip + 109 + Label + true + true + + Left + + + + МинимальноеЗначениеКонтекстноеМеню + 25 + true + + InputField + Enter + true + Left + true + + true + true + true + false + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Настройка минимального значения</value> + + + НастройкаМинимальногоЗначенияРасширеннаяПодсказка + 168 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + true + Auto + Auto + + + + НастройкаМаксимальногоЗначения + 169 + + ИспользоватьМаксимальноеЗначение + 174 + true + true + + true + + + Объект.ИспользоватьМаксимальноеЗначение + + None + + OnChange + ИспользоватьМаксимальноеЗначениеПриИзменении + + + ИспользоватьМаксимальноеЗначениеРасширеннаяПодсказка + 176 + Label + true + true + + Left + + + + ИспользоватьМаксимальноеЗначениеКонтекстноеМеню + 175 + true + + CheckBoxField + Enter + true + Left + true + + + + МаксимальноеЗначение + 26 + true + true + + true + + + Объект.МаксимальноеЗначение + + + OnChange + МаксимальноеЗначениеПриИзменении + + + МаксимальноеЗначениеExtendedTooltip + 110 + Label + true + true + + Left + + + + МаксимальноеЗначениеКонтекстноеМеню + 27 + true + + InputField + Enter + true + Left + true + + true + true + true + false + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Настройка максимального значения</value> + + + НастройкаМаксимальногоЗначенияРасширеннаяПодсказка + 170 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + true + Auto + Auto + + true true true - - Объект.МинимальноеЗначение - + + <key>ru</key> + <value>Настройки границ значений</value> + - МинимальноеЗначениеExtendedTooltip - 109 + НастройкиГраницЗначенийРасширеннаяПодсказка + 178 Label true true @@ -780,67 +1013,13 @@ Left - - МинимальноеЗначениеКонтекстноеМеню - 25 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal - - - - МаксимальноеЗначение - 26 - true - true - - true - - - Объект.МаксимальноеЗначение - - - МаксимальноеЗначениеExtendedTooltip - 110 - Label - true - true - - Left - - - - МаксимальноеЗначениеКонтекстноеМеню - 27 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal + UsualGroup + + Vertical + true + true + Auto + Auto true @@ -864,7 +1043,133 @@ UsualGroup - HorizontalIfPossible + Vertical + true + true + Auto + Auto + + + + ГруппаПолосаРегулирования + 185 + + ПоказыватьПолосуРегулирования + 179 + + <key>ru</key> + <value>Показывать полосу регулирования с шагом:</value> + + true + true + + true + + + Объект.ПоказыватьПолосуРегулирования + + Right + + OnChange + ПоказыватьПолосуРегулированияПриИзменении + + + ПоказыватьПолосуРегулированияРасширеннаяПодсказка + 181 + Label + true + true + + Left + + + + ПоказыватьПолосуРегулированияКонтекстноеМеню + 180 + true + + CheckBoxField + Enter + true + Left + true + + + + ШагПолосыРегулирования + 187 + + <key>ru</key> + <value>Шаг</value> + + true + true + + true + + + Объект.ШагПолосыРегулирования + + None + + OnChange + ШагПриращенияПолосыРегулированияПриИзменении + + + ШагПолосыРегулированияРасширеннаяПодсказка + 189 + Label + true + true + + Left + + + + ШагПолосыРегулированияКонтекстноеМеню + 188 + true + + InputField + Enter + true + Left + true + + true + true + true + false + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Группа полоса регулирования</value> + + + ГруппаПолосаРегулированияРасширеннаяПодсказка + 186 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto true true Auto @@ -905,6 +1210,307 @@ true + + ГруппаДиапазонПодсказок + 212 + + ВыводитьПодсказкуУЧисловыхВопросов + 214 + + <key>ru</key> + <value>Выводить подсказку</value> + + true + true + + true + + + Объект.ВыводитьПодсказкуУЧисловыхВопросов + + Right + + OnChange + ВыводитьПодсказкуУЧисловыхВопросовПриИзменении + + + ВыводитьПодсказкуУЧисловыхВопросовРасширеннаяПодсказка + 216 + Label + true + true + + Left + + + + ВыводитьПодсказкуУЧисловыхВопросовКонтекстноеМеню + 215 + true + + CheckBoxField + Enter + true + Left + true + + + + ДиапазонПодсказок + 190 + true + true + + true + + + Объект.ДиапазонПодсказокЧисловогоВопроса + + None + MoveDown + MoveUp + SortListAsc + SortListDesc + + ДиапазонПодсказокЗначениеДо + 206 + true + true + + true + + + Объект.ДиапазонПодсказокЧисловогоВопроса.ЗначениеДо + + + ДиапазонПодсказокЗначениеДоРасширеннаяПодсказка + 208 + Label + true + true + + Left + + + + ДиапазонПодсказокЗначениеДоКонтекстноеМеню + 207 + true + + InputField + Auto + true + Left + true + + 10 + true + true + true + true + true + true + Normal + + + + ДиапазонПодсказокПодсказка + 209 + true + true + + true + + + Объект.ДиапазонПодсказокЧисловогоВопроса.Подсказка + + + ДиапазонПодсказокПодсказкаРасширеннаяПодсказка + 211 + Label + true + true + + Left + + + + ДиапазонПодсказокПодсказкаКонтекстноеМеню + 210 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ДиапазонПодсказокКоманднаяПанель + 192 + Left + true + + + BeforeDeleteRow + ДиапазонПодсказокПередУдалением + + + BeforeEditEnd + ДиапазонПодсказокПередОкончаниемРедактирования + + + OnStartEdit + ДиапазонПодсказокПриНачалеРедактирования + + + AfterDeleteRow + ДиапазонПодсказокПослеУдаления + + + ДиапазонПодсказокСтрокаПоиска + 194 + + ДиапазонПодсказокСтрокаПоискаРасширеннаяПодсказка + 196 + Label + true + true + + Left + + + + ДиапазонПодсказокСтрокаПоискаКонтекстноеМеню + 195 + true + + ДиапазонПодсказок + + true + + + + ДиапазонПодсказокСостояниеПросмотра + 197 + + ДиапазонПодсказокСостояниеПросмотраРасширеннаяПодсказка + 199 + Label + true + true + + Left + + + + ДиапазонПодсказокСостояниеПросмотраКонтекстноеМеню + 198 + true + + ViewStatusAddition + ДиапазонПодсказок + + true + + + + ДиапазонПодсказокУправлениеПоиском + 200 + + ДиапазонПодсказокУправлениеПоискомРасширеннаяПодсказка + 202 + Label + true + true + + Left + + + + ДиапазонПодсказокУправлениеПоискомКонтекстноеМеню + 201 + true + + SearchControlAddition + ДиапазонПодсказок + + true + + + + ДиапазонПодсказокРасширеннаяПодсказка + 193 + Label + true + true + + Left + + + + ДиапазонПодсказокКонтекстноеМеню + 191 + true + + true + true + 60 + 7 + true + MultiRow +
            true
            + 1 + 1 + AutoUse + AutoUse + true + true + false + Auto + Auto + AsFileRef + true + +
            + true + true + + true + + + <key>ru</key> + <value>Группа диапазон подсказок</value> + + + ГруппаДиапазонПодсказокРасширеннаяПодсказка + 213 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + +
            true true @@ -1571,6 +2177,46 @@
            true
            true + + + Объект.ДиапазонПодсказокЧисловогоВопроса + + + ЗначениеПредставление + + <key>ru</key> + <value>Значение представление</value> + + 8 + + String + + + + true + + + true + + + + ОтключитьУсловноеОформление + + <key>ru</key> + <value>Отключить условное оформление</value> + + 10 + + Boolean + + + true + + + true + + +
            ВариантыОтветов @@ -1679,6 +2325,36 @@ true + + ДиапазонПодсказокПрежнееЗначение + 9 + + Number + + 15 + 2 + + + + true + + + true + + + + ВернутьЗначениеДиапазону + 11 + + Boolean + + + true + + + true + + diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl index 9cb03e78a..efa4c9896 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl @@ -15,7 +15,6 @@ ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); - // Установим отбор по владельцу на динамическом списке справочника "Варианты ответов анкет". ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(ВариантыОтветов,"Владелец", Объект.Ссылка, ВидСравненияКомпоновкиДанных.Равно, ,Истина); УстановитьТипОтвета(); @@ -68,6 +67,24 @@ Отказ = Истина; КонецЕсли; + Если Объект.ИспользоватьМинимальноеЗначение И Объект.ИспользоватьМаксимальноеЗначение Тогда + Если Объект.МинимальноеЗначение = Объект.МаксимальноеЗначение Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю( + НСтр("ru = 'Минимально допустимое значение не может быть равно максимальному.'"),, + "Объект.МинимальноеЗначение"); + Отказ = Истина; + КонецЕсли; + КонецЕсли; + + Если Объект.ПоказыватьПолосуРегулирования Тогда + Если Объект.ШагПолосыРегулирования > Объект.МаксимальноеЗначение - Объект.МинимальноеЗначение Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю( + НСтр("ru = 'Шаг полосы не может быть больше разницы максимального и минимального значений.'"),, + "Объект.ШагПолосыРегулирования"); + Отказ = Истина; + КонецЕсли; + КонецЕсли; + ИначеЕсли Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.Строка") Тогда Объект.Длина = ДлинаСтроки; @@ -95,6 +112,8 @@ , Истина); + УстановитьПредставлениеДиапазонаПодсказокЧисловогоВопроса(); + КонецПроцедуры &НаКлиенте @@ -186,6 +205,148 @@ КонецПроцедуры +&НаКлиенте +Процедура ИспользоватьМинимальноеЗначениеПриИзменении(Элемент) + + Элементы.МинимальноеЗначение.Доступность = Объект.ИспользоватьМинимальноеЗначение; + + УстановитьДоступностьНастройкиПолосыРегулирования(); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьМаксимальноеЗначениеПриИзменении(Элемент) + + Элементы.МаксимальноеЗначение.Доступность = Объект.ИспользоватьМаксимальноеЗначение; + + УстановитьДоступностьНастройкиПолосыРегулирования(); + УстановитьШагПолосыРегулированияПоУмолчанию(); + +КонецПроцедуры + +&НаКлиенте +Процедура МинимальноеЗначениеПриИзменении(Элемент) + + УстановитьШагПолосыРегулированияПоУмолчанию(); + +КонецПроцедуры + +&НаКлиенте +Процедура МаксимальноеЗначениеПриИзменении(Элемент) + + УстановитьШагПолосыРегулированияПоУмолчанию(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПоказыватьПолосуРегулированияПриИзменении(Элемент) + + Элементы.ШагПолосыРегулирования.Доступность = Объект.ПоказыватьПолосуРегулирования; + +КонецПроцедуры + +&НаКлиенте +Процедура ШагПриращенияПолосыРегулированияПриИзменении(Элемент) + + УстановитьШагПолосыРегулированияПоУмолчанию(); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыводитьПодсказкуУЧисловыхВопросовПриИзменении(Элемент) + + УстановитьДоступностьДиапазонаПодсказок(); + + Если Объект.ВыводитьПодсказкуУЧисловыхВопросов И Объект.ДиапазонПодсказокЧисловогоВопроса.Количество() = 0 Тогда + НоваяСтрока = Объект.ДиапазонПодсказокЧисловогоВопроса.Добавить(); + НоваяСтрока.ЗначениеДо = ЗначениеПорогаДиапазонаПодсказокЧисловогоВопроса(); + КонецЕсли; + + УстановитьПредставлениеДиапазонаПодсказокЧисловогоВопроса(); + +КонецПроцедуры + +&НаКлиенте +Процедура ДиапазонПодсказокПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) + + ДиапазонПодсказокПрежнееЗначение = Элемент.ТекущиеДанные.ЗначениеДо; + + Если Элемент.ТекущийЭлемент = Элементы.ДиапазонПодсказокЗначениеДо Тогда + Элемент.ТекущиеДанные.ОтключитьУсловноеОформление = Истина + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДиапазонПодсказокПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ) + + ТекущиеДанные = Элемент.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ТекущиеДанные.ОтключитьУсловноеОформление = Ложь; + + Если ОтменаРедактирования Тогда + Если ВернутьЗначениеДиапазону Тогда + ТекущиеДанные.ЗначениеДо = ДиапазонПодсказокПрежнееЗначение; + ВернутьЗначениеДиапазону = Ложь; + КонецЕсли; + Возврат; + КонецЕсли; + + Если Не НоваяСтрока И ДиапазонПодсказокПрежнееЗначение = ТекущиеДанные.ЗначениеДо Тогда + Возврат; + КонецЕсли; + + ТаблицаДиапазонов = Объект.ДиапазонПодсказокЧисловогоВопроса; + + Если Не НоваяСтрока И ДиапазонПодсказокПрежнееЗначение = ТекущиеДанные.ЗначениеДо Тогда + Возврат; + КонецЕсли; + + ПроверитьЗаполнениеДиапазонаПодсказок(ТаблицаДиапазонов, Отказ); + + Если Не Отказ Тогда + УстановитьПозициюДиапазонаПодсказок(ТаблицаДиапазонов, ТекущиеДанные, ТекущиеДанные.ЗначениеДо); + УстановитьПредставлениеДиапазонаПодсказокЧисловогоВопроса(); + Иначе + ВернутьЗначениеДиапазону = Истина; + + ОчиститьСообщения(); + Если НоваяСтрока Тогда + ИмяПоляФормы = СтрШаблон("Объект.ДиапазонПодсказокЧисловогоВопроса[%1]", + ТаблицаДиапазонов.Индекс(ТекущиеДанные)); + Иначе + ИмяПоляФормы = СтрШаблон("Объект.ДиапазонПодсказокЧисловогоВопроса[%1].ЗначениеДо", + ТаблицаДиапазонов.Индекс(ТекущиеДанные)); + КонецЕсли; + ОбщегоНазначенияКлиент.СообщитьПользователю( + НСтр("ru = 'Такое значение уже присутствует в диапазоне подсказок.'"),, ИмяПоляФормы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДиапазонПодсказокПередУдалением(Элемент, Отказ) + + ТекущиеДанные = Элемент.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ТекущиеДанные.ЗначениеДо = ЗначениеПорогаДиапазонаПодсказокЧисловогоВопроса() Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДиапазонПодсказокПослеУдаления(Элемент) + УстановитьПредставлениеДиапазонаПодсказокЧисловогоВопроса(); +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -274,6 +435,47 @@ Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина); + // Текст диапазона подсказки. + + ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); + + СвойствоЭлементОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("Текст"); + СвойствоЭлементОформления.Значение = Новый ПолеКомпоновкиДанных("Объект.ДиапазонПодсказокЧисловогоВопроса.ЗначениеПредставление"); + СвойствоЭлементОформления.Использование = Истина; + + ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ДиапазонПодсказокЧисловогоВопроса.ЗначениеПредставление"); + ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; + ЭлементОтбораДанных.Использование = Истина; + + ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ДиапазонПодсказокЧисловогоВопроса.ОтключитьУсловноеОформление"); + ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбораДанных.ПравоеЗначение = Ложь ; + ЭлементОтбораДанных.Использование = Истина; + + ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ДиапазонПодсказокЗначениеДо"); + ОформляемоеПоле.Использование = Истина; + + // Доступность верхнего диапазона подсказок. + + ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); + + СвойствоЭлементОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("ТолькоПросмотр"); + СвойствоЭлементОформления.Значение = Истина; + СвойствоЭлементОформления.Использование = Истина; + + ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ДиапазонПодсказокЧисловогоВопроса.ЗначениеДо"); + ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбораДанных.ПравоеЗначение = ЗначениеПорогаДиапазонаПодсказокЧисловогоВопроса(); + ЭлементОтбораДанных.Использование = Истина; + + ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); + ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ДиапазонПодсказокЗначениеДо"); + ОформляемоеПоле.Использование = Истина; + КонецПроцедуры &НаКлиенте @@ -293,6 +495,13 @@ Элементы.ЗависимыеПараметры.ТекущаяСтраница = Элементы.СтраницаСтрока; ИначеЕсли Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.Число") Тогда Элементы.ЗависимыеПараметры.ТекущаяСтраница = Элементы.СтраницаЧисло; + Элементы.МинимальноеЗначение.Доступность = Объект.ИспользоватьМинимальноеЗначение; + Элементы.МаксимальноеЗначение.Доступность = Объект.ИспользоватьМаксимальноеЗначение; + + УстановитьДоступностьНастройкиПолосыРегулирования(); + УстановитьДоступностьДиапазонаПодсказок(); + УстановитьПредставлениеДиапазонаПодсказокЧисловогоВопроса(); + ИначеЕсли Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ЗначениеИнформационнойБазы") Тогда Элементы.ЗависимыеПараметры.ТекущаяСтраница = Элементы.Пустая; ИначеЕсли Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ОдинВариантИз") @@ -370,7 +579,6 @@ СтруктураПараметров = Новый Структура; СтруктураПараметров.Вставить("Владелец",Объект.Ссылка); СтруктураПараметров.Вставить("ТипОтвета",Объект.ТипОтвета); - СтруктураПараметров.Вставить("Наименование",Объект.ТипОтвета); Если Не РежимДобавления Тогда ТекущиеДанные = Элементы.ТаблицаВариантыОтветов.ТекущиеДанные; @@ -378,11 +586,7 @@ Возврат; КонецЕсли; СтруктураПараметров.Вставить("Ключ",ТекущиеДанные.Ссылка); - Иначе - ТекущиеДанные = Элементы.ТаблицаВариантыОтветов.ТекущиеДанные; - Если ТекущиеДанные <> Неопределено Тогда - СтруктураПараметров.Вставить("Наименование",ТекущиеДанные.Наименование); - КонецЕсли; + СтруктураПараметров.Вставить("Наименование",ТекущиеДанные.Наименование); КонецЕсли; ОткрытьФорму("Справочник.ВариантыОтветовАнкет.ФормаОбъекта", СтруктураПараметров,Элемент); @@ -465,4 +669,135 @@ КонецПроцедуры +&НаКлиенте +Процедура УстановитьДоступностьНастройкиПолосыРегулирования() + + Элементы.ПоказыватьПолосуРегулирования.Доступность = Объект.ИспользоватьМинимальноеЗначение + И Объект.ИспользоватьМаксимальноеЗначение; + Элементы.ШагПолосыРегулирования.Доступность = Объект.ПоказыватьПолосуРегулирования; + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьШагПолосыРегулированияПоУмолчанию() + + Если Не Объект.ПоказыватьПолосуРегулирования Тогда + Возврат; + КонецЕсли; + + // Если шаг полосы не кратен разницы максимального и минимальных значений, то устанавливаем шаг = 1 + ДлинаПолосы = (Объект.МаксимальноеЗначение - Объект.МинимальноеЗначение) / Объект.ШагПолосыРегулирования; + Если ДлинаПолосы <> Цел(ДлинаПолосы) Тогда + Объект.ШагПолосыРегулирования = 1; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьДиапазонаПодсказок() + + Элементы.ДиапазонПодсказок.Доступность = Объект.ВыводитьПодсказкуУЧисловыхВопросов; + +КонецПроцедуры + +&НаСервере +Функция ЗначениеПорогаДиапазонаПодсказокЧисловогоВопроса() + Возврат 9999999999999.99; +КонецФункции + +&НаСервере +Процедура УстановитьПредставлениеДиапазонаПодсказокЧисловогоВопроса() + + ТаблицаДиапазонов = Объект.ДиапазонПодсказокЧисловогоВопроса; + + Для Каждого ТекущаяСтрока Из ТаблицаДиапазонов Цикл + ТекущийИндекс = Объект.ДиапазонПодсказокЧисловогоВопроса.Индекс(ТекущаяСтрока); + Если ТекущаяСтрока.ЗначениеДо = ЗначениеПорогаДиапазонаПодсказокЧисловогоВопроса() Тогда + Если ТекущийИндекс = 0 Тогда + ЗначениеПредставление = НСтр("ru = 'любое значение'"); + ТекущаяСтрока.ЗначениеПредставление = ЗначениеПредставление; + Иначе + ПредыдущаяСтрока = ТаблицаДиапазонов[ТекущийИндекс - 1]; + Если ПредыдущаяСтрока.ЗначениеДо = ЗначениеПорогаДиапазонаПодсказокЧисловогоВопроса() Тогда + ТекущаяСтрока.ЗначениеПредставление = ПредыдущаяСтрока.ЗначениеПредставление; + Иначе + ШаблонСтроки = НСтр("ru = 'более %1'"); + ТекущаяСтрока.ЗначениеПредставление = СтрШаблон(ШаблонСтроки, Строка(ПредыдущаяСтрока.ЗначениеДо)); + КонецЕсли; + КонецЕсли; + Иначе + Если ТекущийИндекс = 0 Тогда + ШаблонСтроки = НСтр("ru = '%1 и менее'"); + ТекущаяСтрока.ЗначениеПредставление = СтрШаблон(ШаблонСтроки, Строка(ТекущаяСтрока.ЗначениеДо)); + Иначе + ПредыдущаяСтрока = ТаблицаДиапазонов[ТекущийИндекс - 1]; + Если ПредыдущаяСтрока.ЗначениеДо = ТекущаяСтрока.ЗначениеДо Тогда + ТекущаяСтрока.ЗначениеПредставление = ПредыдущаяСтрока.ЗначениеПредставление; + Иначе + ТекущаяСтрока.ЗначениеПредставление = СтрШаблон(НСтр("ru = 'от %1 до %2'"), + Строка(ПредыдущаяСтрока.ЗначениеДо), + Строка(ТекущаяСтрока.ЗначениеДо)); + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьЗаполнениеДиапазонаПодсказок(ТаблицаДиапазонов, Отказ) + + МассивЗначений = Новый Массив; + + Для Каждого ТекущаяСтрока Из ТаблицаДиапазонов Цикл + Если МассивЗначений.Найти(ТекущаяСтрока.ЗначениеДо) <> Неопределено Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + МассивЗначений.Добавить(ТекущаяСтрока.ЗначениеДо); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьПозициюДиапазонаПодсказок(ТаблицаДиапазонов, ТекущиеДанные, ЗначениеЭлемента) + + КоличествоЭлементов = ТаблицаДиапазонов.Количество(); + + Если КоличествоЭлементов <= 1 Тогда + Возврат; + КонецЕсли; + + ТекущаяПозиция = ТаблицаДиапазонов.Индекс(ТекущиеДанные); + + МестоПозицииНайдено = Ложь; + Для Каждого ЭлементКоллекции Из ТаблицаДиапазонов Цикл + + ТекущийИндекс = ТаблицаДиапазонов.Индекс(ЭлементКоллекции); + ЭтоПоследнийЭлемент = ?(КоличествоЭлементов = ТекущийИндекс + 1, Истина, Ложь); + + Если Не ЭтоПоследнийЭлемент Тогда + НоваяПозиция = ТекущийИндекс; + КонецЕсли; + + НайденЭлементСБольшимЗначением = ?(ЭлементКоллекции.ЗначениеДо > ЗначениеЭлемента, Истина, Ложь); + + Если НайденЭлементСБольшимЗначением Тогда + МестоПозицииНайдено = Истина; + КонецЕсли; + + Если МестоПозицииНайдено Тогда + Если НоваяПозиция > ТекущаяПозиция Тогда + НоваяПозиция = НоваяПозиция - 1; + КонецЕсли; + Прервать; + КонецЕсли + + КонецЦикла; + + Сдвиг = НоваяПозиция - ТекущаяПозиция; + ТаблицаДиапазонов.Сдвинуть(ТекущаяПозиция, Сдвиг); + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl index 106a38fd8..80fb53f33 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl @@ -46,12 +46,18 @@ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ - | ВопросыДляАнкетирования.Ссылка + | ВопросыДляАнкетирования.Ссылка КАК Ссылка |ИЗ | ПланВидовХарактеристик.ВопросыДляАнкетирования КАК ВопросыДляАнкетирования |ГДЕ | (ВопросыДляАнкетирования.ВидПереключателя = ЗНАЧЕНИЕ(Перечисление.ВидыПереключателяВАнкетах.ПустаяСсылка) - | ИЛИ ВопросыДляАнкетирования.ВидФлажка = ЗНАЧЕНИЕ(Перечисление.ВидыФлажкаВАнкетах.ПустаяСсылка))"; + | ИЛИ ВопросыДляАнкетирования.ВидФлажка = ЗНАЧЕНИЕ(Перечисление.ВидыФлажкаВАнкетах.ПустаяСсылка) + | ИЛИ ВопросыДляАнкетирования.МинимальноеЗначение <> 0 + | И НЕ ВопросыДляАнкетирования.ИспользоватьМинимальноеЗначение + | ИЛИ ВопросыДляАнкетирования.МаксимальноеЗначение <> 0 + | И НЕ ВопросыДляАнкетирования.ИспользоватьМаксимальноеЗначение) + | И НЕ ВопросыДляАнкетирования.ЭтоГруппа"; + Результат = Запрос.Выполнить().Выгрузить(); МассивСсылок = Результат.ВыгрузитьКолонку("Ссылка"); @@ -64,15 +70,18 @@ Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "ПланВидовХарактеристик.ВопросыДляАнкетирования"); + ПроблемныхОбъектов = 0; + ОбъектовОбработано = 0; Пока Выборка.Следующий() Цикл Попытка ЗаполнитьНовыеРеквизиты(Выборка.Ссылка); - + ОбъектовОбработано = ОбъектовОбработано + 1; + Исключение - // Если не удалось обработать объект, повторяем попытку снова. + ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось обработать вопрос для анкетирования %1 по причине: |%2'"), @@ -84,6 +93,19 @@ КонецЦикла; Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "ПланВидовХарактеристик.ВопросыДляАнкетирования"); + + Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось обработать некоторые вопросы для анкетирования (пропущены): %1'"), + ПроблемныхОбъектов); + ВызватьИсключение ТекстСообщения; + Иначе + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, + Метаданные.ПланыВидовХарактеристик.ВопросыДляАнкетирования,, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция вопросов для анкетирования: %1'"), + ОбъектовОбработано)); + КонецЕсли; КонецПроцедуры @@ -92,13 +114,15 @@ #Область СлужебныеПроцедурыИФункции // Заполняет значения новых реквизитов ВидПереключателя и ВидФлажка у переданного объекта. +// +// Параметры: +// ВопросДляАнкетирования - ПланВидовХарактеристикСсылка.ВопросыДляАнкетирования // Процедура ЗаполнитьНовыеРеквизиты(ВопросДляАнкетирования) НачатьТранзакцию(); Попытка - // Блокируем объект от изменения другими сеансами. Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("ПланВидовХарактеристик.ВопросыДляАнкетирования"); ЭлементБлокировки.УстановитьЗначение("Ссылка", ВопросДляАнкетирования); @@ -106,26 +130,22 @@ Объект = ВопросДляАнкетирования.ПолучитьОбъект(); - // Если объект ранее был удален или обработан другими сеансами, пропускаем его. - Если Объект = Неопределено Тогда - ОтменитьТранзакцию(); - Возврат; - КонецЕсли; - Если Объект.ВидПереключателя <> Перечисления.ВидыПереключателяВАнкетах.ПустаяСсылка() И Объект.ВидФлажка <> Перечисления.ВидыФлажкаВАнкетах.ПустаяСсылка() Тогда - ОтменитьТранзакцию(); - Возврат; - КонецЕсли; - - // Обработка объекта. Если Объект.ВидПереключателя = Перечисления.ВидыПереключателяВАнкетах.ПустаяСсылка() Тогда Объект.ВидПереключателя = Перечисления.ВидыПереключателяВАнкетах.Переключатель; КонецЕсли; Если Объект.ВидФлажка = Перечисления.ВидыФлажкаВАнкетах.ПустаяСсылка() Тогда Объект.ВидФлажка = Перечисления.ВидыФлажкаВАнкетах.Флажок; + КонецЕсли; + + Если ЗначениеЗаполнено(Объект.МинимальноеЗначение) Тогда + Объект.ИспользоватьМинимальноеЗначение = Истина; + КонецЕсли; + + Если ЗначениеЗаполнено(Объект.МаксимальноеЗначение) Тогда + Объект.ИспользоватьМаксимальноеЗначение = Истина; КонецЕсли; - // Запись обработанного объекта. ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); ЗафиксироватьТранзакцию(); @@ -135,7 +155,7 @@ КонецПопытки; КонецПроцедуры - + #КонецОбласти #КонецЕсли \ No newline at end of file diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl index 1b488779b..914efa268 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl @@ -70,6 +70,8 @@ МинимальноеЗначение = 0; МаксимальноеЗначение = 0; АгрегироватьСуммуВОтчетах = Ложь; + ПоказыватьПолосуРегулирования = Ложь; + ШагПолосыРегулирования = 0; КонецЕсли; @@ -77,7 +79,11 @@ ТребуетсяКомментарий = Ложь; ПояснениеКомментария = ""; КонецЕсли; - + + Если Не ВыводитьПодсказкуУЧисловыхВопросов Тогда + ДиапазонПодсказокЧисловогоВопроса.Очистить(); + КонецЕсли; + КонецПроцедуры // Устанавливает тип значения ПВХ в зависимости от типа ответа. diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ВопросыДляАнкетирования.mdo b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ВопросыДляАнкетирования.mdo index cfa92c673..9f950fc1c 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ВопросыДляАнкетирования.mdo +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ВопросыДляАнкетирования.mdo @@ -418,6 +418,160 @@ Use Use + + ИспользоватьМинимальноеЗначение + + ru + Использовать минимальное значение + + + Boolean + + + ru + Использовать минимально возможное значение ответа + + + + + Use + Use + + + ИспользоватьМаксимальноеЗначение + + ru + Использовать максимальное значение + + + Boolean + + + ru + Использовать максимально возможное значение ответа + + + + + Use + Use + + + ПоказыватьПолосуРегулирования + + ru + Показывать полосу регулирования + + + Boolean + + + ru + Возможность задавать значения для числовых вопросов с помощью полосы регулирования + + + + + Use + Use + + + ШагПолосыРегулирования + + ru + Шаг полосы регулирования + + + Number + + 15 + 2 + true + + + + ru + Шаг полосы регулирования у числовых вопросов. Должен быть кратным разнице максимального и минимального значений. + + + 0,01 + + + + 1 + + Use + Use + + + ВыводитьПодсказкуУЧисловыхВопросов + + ru + Выводить подсказку у числовых вопросов + + + Boolean + + + + + Use + Use + + + + + + + ДиапазонПодсказокЧисловогоВопроса + + ru + Диапазон подсказок числового вопроса + + + Use + LineNumber + + Use + + + + + ЗначениеДо + + ru + Значение + + + Number + + 15 + 2 + + + + + Use + Use + + + Подсказка + + ru + Подсказка + + + String + + 250 + + + + + Use + Use + + ФормаЭлемента diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form index 9eb5a5918..2e2acacba 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form @@ -1,5 +1,5 @@ - + СтраницыПомощникКарточка 200 @@ -910,7 +910,7 @@ Свойства.НомерКартинки - CommonPicture.ПиктограммыЭлементов + CommonPicture.ПиктограммыСвойств true @@ -1361,22 +1361,22 @@ - ЭтоДополнительноеСведение + ВидСвойств 20 true true - ЭтоДополнительноеСведение + ВидСвойств None OnChange - ЭтоДополнительноеСведениеПриИзменении + ВидСвойствПриИзменении - ЭтоДополнительноеСведениеExtendedTooltip + ВидСвойствРасширеннаяПодсказка 119 Label true @@ -1386,7 +1386,7 @@ - ЭтоДополнительноеСведениеКонтекстноеМеню + ВидСвойствКонтекстноеМеню 21 true @@ -1396,25 +1396,7 @@ Left true - 2 - - - ru - Дополнительный реквизит - - - 0 - - - - - ru - Дополнительное сведение - - - 1 - - + 1 Vertical @@ -1979,6 +1961,392 @@ ГлавнаяСтраница 169 + + ГруппаЦветаСвойств + 498 + + ДекорацияЦветСвойств + 500 + + <key>ru</key> + <value>Цвет:</value> + + true + true + + true + + ShowLeft + + ДекорацияЦветСвойствРасширеннаяПодсказка + 502 + Label + true + true + + Left + + + + ДекорацияЦветСвойствКонтекстноеМеню + 501 + true + + Label + true + true + + Style.ButtonTextColor + + + Left + + + + КоманднаяПанельЦветаСвойств + 503 + + ГруппаЦвета + 505 + + СвойствоСерое + 507 + true + true + + true + + + СвойствоСероеРасширеннаяПодсказка + 508 + Label + true + true + + Left + + + Form.Command.СвойствоСерое + Normal + Auto + true + true + UserCmds + Auto + + + СвойствоЗеленое + 517 + true + true + + true + + + СвойствоЗеленоеРасширеннаяПодсказка + 518 + Label + true + true + + Left + + + Form.Command.СвойствоЗеленое + Normal + Auto + true + true + UserCmds + Auto + + + СвойствоЖелтое + 515 + true + true + + true + + + СвойствоЖелтоеРасширеннаяПодсказка + 516 + Label + true + true + + Left + + + Form.Command.СвойствоЖелтое + Normal + Auto + true + true + UserCmds + Auto + + + СвойствоОранжевое + 513 + true + true + + true + + + СвойствоОранжевоеРасширеннаяПодсказка + 514 + Label + true + true + + Left + + + Form.Command.СвойствоОранжевое + Normal + Auto + true + true + UserCmds + Auto + + + СвойствоКрасное + 511 + true + true + + true + + + СвойствоКрасноеРасширеннаяПодсказка + 512 + Label + true + true + + Left + + + Form.Command.СвойствоКрасное + Normal + Auto + true + true + UserCmds + Auto + + + СвойствоФиолетовое + 523 + true + true + + true + + + СвойствоФиолетовоеРасширеннаяПодсказка + 524 + Label + true + true + + Left + + + Form.Command.СвойствоФиолетовое + Normal + Auto + true + true + UserCmds + Auto + + + СвойствоСинее + 519 + true + true + + true + + + СвойствоСинееРасширеннаяПодсказка + 520 + Label + true + true + + Left + + + Form.Command.СвойствоСинее + Normal + Auto + true + true + UserCmds + Auto + + + СвойствоЛаймовое + 509 + true + true + + true + + + СвойствоЛаймовоеРасширеннаяПодсказка + 510 + Label + true + true + + Left + + + Form.Command.СвойствоЛаймовое + Normal + Auto + true + true + UserCmds + Auto + + + СвойствоРозовое + 525 + true + true + + true + + + СвойствоРозовоеРасширеннаяПодсказка + 526 + Label + true + true + + Left + + + Form.Command.СвойствоРозовое + Normal + Auto + true + true + UserCmds + Auto + + + СвойствоГолубое + 521 + true + true + + true + + + СвойствоГолубоеРасширеннаяПодсказка + 522 + Label + true + true + + Left + + + Form.Command.СвойствоГолубое + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Группа цвета</value> + + + ГруппаЦветаРасширеннаяПодсказка + 506 + Label + true + true + + Left + + + + Compact + + + true + true + + true + + + <key>ru</key> + <value>Командная панель цвета свойств</value> + + + КоманднаяПанельЦветаСвойствРасширеннаяПодсказка + 504 + Label + true + true + + Left + + + CommandBar + + Left + + + true + + true + + + <key>ru</key> + <value>Цвета свойств</value> + + + ru + Цвет + + + ГруппаЦветаСвойствРасширеннаяПодсказка + 499 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + WeakSeparation + true + true + Auto + Auto + + ГруппаСвойстваИЗависимости 324 @@ -2916,7 +3284,7 @@ true - Значения.Ref + Значения.Ссылка ЗначенияСсылкаРасширеннаяПодсказка @@ -4596,17 +4964,14 @@ true - ЭтоДополнительноеСведение + ВидСвойств <key>ru</key> - <value>Это дополнительное сведение</value> + <value>Вид свойств</value> 3 - Number - - 1 - + EnumRef.ВидыСвойств true @@ -4688,7 +5053,7 @@ true - Значения.Ref + Значения.Ссылка ВЫБРАТЬ @@ -4709,6 +5074,62 @@ true true true + + ПолноеНаименование + ПолноеНаименование + + + НаименованиеЯзык1 + НаименованиеЯзык1 + + + НаименованиеЯзык2 + НаименованиеЯзык2 + + + Представления + Представления + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + Ссылка + Ссылка + + + ВерсияДанных + ВерсияДанных + + + ПометкаУдаления + ПометкаУдаления + + + Предопределенный + Предопределенный + + + Владелец + Владелец + + + Родитель + Родитель + + + ЭтоГруппа + ЭтоГруппа + + + Наименование + Наименование + + + Вес + Вес + @@ -4957,17 +5378,24 @@ ВЫБОР КОГДА Наборы.ЭтоГруппа ТОГДА Наборы.Наименование - КОГДА &ЭтоДополнительноеСведение + КОГДА &ВидСвойств = ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.ДополнительныеСведения) ТОГДА ВЫБОР КОГДА Наборы.КоличествоСведений = "" ТОГДА Наборы.Наименование ИНАЧЕ Наборы.Наименование + " (" + Наборы.КоличествоСведений + ")" КОНЕЦ - ИНАЧЕ ВЫБОР + КОГДА &ВидСвойств = ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.ДополнительныеРеквизиты) + ТОГДА ВЫБОР КОГДА Наборы.КоличествоРеквизитов = "" ТОГДА Наборы.Наименование ИНАЧЕ Наборы.Наименование + " (" + Наборы.КоличествоРеквизитов + ")" КОНЕЦ + КОГДА &ВидСвойств = ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.Метки) + ТОГДА ВЫБОР + КОГДА Наборы.КоличествоМеток = "" + ТОГДА Наборы.Наименование + ИНАЧЕ Наборы.Наименование + " (" + Наборы.КоличествоМеток + ")" + КОНЕЦ КОНЕЦ КАК Представление, ВЫБОР КОГДА Наборы.ПометкаУдаления @@ -4994,6 +5422,148 @@ true true true + + Ссылка + Ссылка + + + ВерсияДанных + ВерсияДанных + + + ПометкаУдаления + ПометкаУдаления + + + Предопределенный + Предопределенный + + + Родитель + Родитель + + + ЭтоГруппа + ЭтоГруппа + + + Наименование + Наименование + + + Используется + Используется + + + НомерКартинки + НомерКартинки + + <localValue> + <content> + <key>ru</key> + <value>Номер картинки</value> + </content> + </localValue> + + + + КоличествоРеквизитов + КоличествоРеквизитов + + + КоличествоСведений + КоличествоСведений + + + КоличествоМеток + КоличествоМеток + + + ИмяПредопределенногоНабора + ИмяПредопределенногоНабора + + + НаименованиеЯзык1 + НаименованиеЯзык1 + + + НаименованиеЯзык2 + НаименованиеЯзык2 + + + ДополнительныеРеквизиты + ДополнительныеРеквизиты + + + ДополнительныеСведения + ДополнительныеСведения + + + Метки + Метки + + + Представления + Представления + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + Представление + Представление + + <localValue> + <content> + <key>ru</key> + <value>Представление</value> + </content> + </localValue> + + + + ИсключаемыеНаборы + + <localValue> + <content> + <key>ru</key> + <value>Исключаемые наборы</value> + </content> + </localValue> + + true + true + + + Наборы + + <localValue> + <content> + <key>ru</key> + <value>Наборы</value> + </content> + </localValue> + + true + true + + + ВидСвойств + + <localValue> + <content> + <key>ru</key> + <value>Вид свойств</value> + </content> + </localValue> + + + EnumRef.ВидыСвойств + + + true + @@ -5092,7 +5662,7 @@ Number - 1 + 2 true @@ -5219,17 +5789,50 @@ true - ВЫБРАТЬ - ВЫБОР - КОГДА &ЭтоДополнительноеСведение - ТОГДА &ОбщиеДополнительныеСведения - ИНАЧЕ &ОбщиеДополнительныеРеквизиты - КОНЕЦ КАК Представление, + Выбрать + &ПредставлениеСписка КАК Представление, 0 КАК НомерКартинки true true true true + + Представление + Представление + + <localValue> + <content> + <key>ru</key> + <value>Представление</value> + </content> + </localValue> + + + + НомерКартинки + НомерКартинки + + <localValue> + <content> + <key>ru</key> + <value>Номер картинки</value> + </content> + </localValue> + + + + ПредставлениеСписка + + <localValue> + <content> + <key>ru</key> + <value>Представление списка</value> + </content> + </localValue> + + + true + @@ -5542,6 +6145,216 @@ Auto Auto
            + + СвойствоГолубое + + <key>ru</key> + <value>Свойство голубое</value> + + 12 + + true + + + CommonPicture.МеткаГолубая + + + + СвойствоГолубое + + + Auto + Auto + + + СвойствоЖелтое + + <key>ru</key> + <value>Свойство желтое</value> + + 13 + + true + + + CommonPicture.МеткаЖелтая + + + + СвойствоЖелтое + + + Auto + Auto + + + СвойствоЗеленое + + <key>ru</key> + <value>Свойство зеленое</value> + + 14 + + true + + + CommonPicture.МеткаЗеленая + + + + СвойствоЗеленое + + + Auto + Auto + + + СвойствоЛаймовое + + <key>ru</key> + <value>Свойство лаймовое</value> + + 15 + + true + + + CommonPicture.МеткаЛаймовая + + + + СвойствоКоричневое + + + Auto + Auto + + + СвойствоКрасное + + <key>ru</key> + <value>Свойство красное</value> + + 16 + + true + + + CommonPicture.МеткаКрасная + + + + СвойствоКрасное + + + Auto + Auto + + + СвойствоОранжевое + + <key>ru</key> + <value>Свойство оранжевое</value> + + 17 + + true + + + CommonPicture.МеткаОранжевая + + + + СвойствоОранжевое + + + Auto + Auto + + + СвойствоРозовое + + <key>ru</key> + <value>Свойство розовое</value> + + 18 + + true + + + CommonPicture.МеткаРозовая + + + + СвойствоРозовое + + + Auto + Auto + + + СвойствоСерое + + <key>ru</key> + <value>Свойство серое</value> + + 19 + + true + + + CommonPicture.МеткаСерая + + + + СвойствоСерое + + + Auto + Auto + + + СвойствоСинее + + <key>ru</key> + <value>Свойство синее</value> + + 20 + + true + + + CommonPicture.МеткаСиняя + + + + СвойствоСинее + + + Auto + Auto + + + СвойствоФиолетовое + + <key>ru</key> + <value>Свойство фиолетовое</value> + + 21 + + true + + + CommonPicture.МеткаФиолетовая + + + + СвойствоФиолетовое + + + Auto + Auto + ЭтоДополнительноеСведение diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl index d45bd38c0..09a4cd8a6 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl @@ -39,7 +39,7 @@ Элементы.КарточкаРеквизита.Видимость = Ложь; КонецЕсли; Иначе - ЗаполнитьКарточкуРеквизитаИлиСведения(); + ЗаполнитьКарточкуСвойства(); // Обработчик подсистемы запрета редактирования реквизитов объектов. ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект); КонецЕсли; @@ -425,9 +425,12 @@ #Область ОбработчикиСобытийЭлементовШапкиФормы &НаКлиенте -Процедура ЭтоДополнительноеСведениеПриИзменении(Элемент) +Процедура ВидСвойствПриИзменении(Элемент) - Объект.ЭтоДополнительноеСведение = ЭтоДополнительноеСведение; + Объект.ВидСвойств = ВидСвойств; + Если Объект.ВидСвойств = ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеСведения") Тогда + Объект.ЭтоДополнительноеСведение = Истина; + КонецЕсли; ОбновитьСоставЭлементовФормы(); @@ -746,6 +749,7 @@ ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Ссылка", Объект.Ссылка); ПараметрыФормы.Вставить("ЭтоДополнительныйРеквизит", Не Объект.ЭтоДополнительноеСведение); + ПараметрыФормы.Вставить("ВидСвойств", Объект.ВидСвойств); Оповещение = Новый ОписаниеОповещения("ПослеВыбораРеквизитовДляРазблокирования", ЭтотОбъект); ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Форма.РазблокированиеРеквизитов", @@ -804,6 +808,86 @@ ЗаполнитьИдентификаторДляФормулНаСервере(); КонецПроцедуры +&НаКлиенте +Процедура СвойствоСерое(Команда) + + Объект.ЦветСвойств = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Серый"); + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + +КонецПроцедуры + +&НаКлиенте +Процедура СвойствоГолубое(Команда) + + Объект.ЦветСвойств = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Голубой"); + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + +КонецПроцедуры + +&НаКлиенте +Процедура СвойствоЖелтое(Команда) + + Объект.ЦветСвойств = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Желтый"); + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + +КонецПроцедуры + +&НаКлиенте +Процедура СвойствоЗеленое(Команда) + + Объект.ЦветСвойств = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Зеленый"); + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + +КонецПроцедуры + +&НаКлиенте +Процедура СвойствоКоричневое(Команда) + + Объект.ЦветСвойств = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Лаймовый"); + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + +КонецПроцедуры + +&НаКлиенте +Процедура СвойствоКрасное(Команда) + + Объект.ЦветСвойств = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Красный"); + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + +КонецПроцедуры + +&НаКлиенте +Процедура СвойствоОранжевое(Команда) + + Объект.ЦветСвойств = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Оранжевый"); + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + +КонецПроцедуры + +&НаКлиенте +Процедура СвойствоРозовое(Команда) + + Объект.ЦветСвойств = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Розовый"); + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + +КонецПроцедуры + +&НаКлиенте +Процедура СвойствоСинее(Команда) + + Объект.ЦветСвойств = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Синий"); + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + +КонецПроцедуры + +&НаКлиенте +Процедура СвойствоФиолетовое(Команда) + + Объект.ЦветСвойств = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Фиолетовый"); + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -887,8 +971,8 @@ &НаСервере Процедура ЗаполнитьСтраницуВыбора() - Если ПереданныеПараметрыФормы.ЭтоДополнительноеСведение <> Неопределено Тогда - ЭтоДополнительноеСведение = ПереданныеПараметрыФормы.ЭтоДополнительноеСведение; + Если ПереданныеПараметрыФормы.ВидСвойств <> Неопределено Тогда + ВидСвойств = ПереданныеПараметрыФормы.ВидСвойств; КонецЕсли; Запрос = Новый Запрос; @@ -906,11 +990,9 @@ Для Каждого Ссылка Из Наборы Цикл ВидыСвойствНабора = УправлениеСвойствамиСлужебный.ВидыСвойствНабора(Ссылка, Ложь); - Если ЭтоДополнительноеСведение = 1 - И ВидыСвойствНабора.ДополнительныеСведения - ИЛИ ЭтоДополнительноеСведение = 0 - И ВидыСвойствНабора.ДополнительныеРеквизиты Тогда - + Если ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения И ВидыСвойствНабора.ДополнительныеСведения + ИЛИ ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеРеквизиты И ВидыСвойствНабора.ДополнительныеРеквизиты + ИЛИ ВидСвойств = Перечисления.ВидыСвойств.Метки И ВидыСвойствНабора.Метки Тогда ДоступныеНаборы.Добавить(Ссылка); КонецЕсли; КонецЦикла; @@ -961,8 +1043,10 @@ КонецЦикла; КонецЕсли; - Если ЭтоДополнительноеСведение = 1 Тогда + Если ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения Тогда Элементы.НеиспользуемыеРеквизиты.Заголовок = НСтр("ru = 'Неиспользуемые дополнительные сведения'"); + ИначеЕсли ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + Элементы.НеиспользуемыеРеквизиты.Заголовок = НСтр("ru = 'Неиспользуемые метки'"); Иначе Элементы.НеиспользуемыеРеквизиты.Заголовок = НСтр("ru = 'Неиспользуемые дополнительные реквизиты'"); КонецЕсли; @@ -974,7 +1058,7 @@ НаборыСвойств, "ИсключаемыеНаборы", ИсключаемыеНаборы, Истина); ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( - НаборыСвойств, "ЭтоДополнительноеСведение", (ЭтоДополнительноеСведение = 1), Истина); + НаборыСвойств, "ВидСвойств", ВидСвойств, Истина); ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( НаборыСвойств, "ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык(), Истина); @@ -983,13 +1067,19 @@ НаборыСвойств, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина); ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( - ОбщиеНаборыСвойств, "ЭтоДополнительноеСведение", (ЭтоДополнительноеСведение = 1), Истина); + ОбщиеНаборыСвойств, "ВидСвойств", ВидСвойств, Истина); + + ПредставлениеСписка = ""; + Если ВидСвойств = ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеСведения") Тогда + ПредставлениеСписка = НСтр("ru = 'Неиспользуемые дополнительные сведения'"); + ИначеЕсли ВидСвойств = ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеРеквизиты") Тогда + ПредставлениеСписка = НСтр("ru = 'Неиспользуемые дополнительные реквизиты'"); + ИначеЕсли ВидСвойств = ПредопределенноеЗначение("Перечисление.ВидыСвойств.Метки") Тогда + ПредставлениеСписка = НСтр("ru = 'Неиспользуемые метки'"); + КонецЕсли; ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( - ОбщиеНаборыСвойств, "ОбщиеДополнительныеСведения", НСтр("ru = 'Неиспользуемые дополнительные сведения'"), Истина); - - ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( - ОбщиеНаборыСвойств, "ОбщиеДополнительныеРеквизиты", НСтр("ru = 'Неиспользуемые дополнительные реквизиты'"), Истина); + ОбщиеНаборыСвойств, "ПредставлениеСписка", ПредставлениеСписка, Истина); УстановитьУсловноеОформлениеСписка(ДоступныеНаборы); @@ -1066,7 +1156,7 @@ КонецПроцедуры &НаСервере -Процедура ЗаполнитьКарточкуРеквизитаИлиСведения() +Процедура ЗаполнитьКарточкуСвойства() Если ЗначениеЗаполнено(ПереданныеПараметрыФормы.ЗначениеКопирования) Тогда РежимДобавленияРеквизита = "СоздатьКопированием"; @@ -1077,7 +1167,7 @@ ТекущийНаборСвойств = ПереданныеПараметрыФормы.ТекущийНаборСвойств; Если ЗначениеЗаполнено(Объект.Ссылка) Тогда - Элементы.ЭтоДополнительноеСведение.Доступность = Ложь; + Элементы.ВидСвойств.Доступность = Ложь; ПоказатьУточнениеНабора = ПереданныеПараметрыФормы.ПоказатьУточнениеНабора; Иначе Объект.Доступен = Истина; @@ -1094,11 +1184,13 @@ Объект.ВладелецДополнительныхЗначений = ПереданныеПараметрыФормы.ВладелецДополнительныхЗначений; КонецЕсли; - Если ПереданныеПараметрыФормы.ЭтоДополнительноеСведение <> Неопределено Тогда - Объект.ЭтоДополнительноеСведение = ПереданныеПараметрыФормы.ЭтоДополнительноеСведение; - + Если ПереданныеПараметрыФормы.ВидСвойств <> Неопределено Тогда + Объект.ВидСвойств = ПереданныеПараметрыФормы.ВидСвойств; + Если Объект.ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения Тогда + Объект.ЭтоДополнительноеСведение = Истина; + КонецЕсли; ИначеЕсли НЕ ЗначениеЗаполнено(ПереданныеПараметрыФормы.ЗначениеКопирования) Тогда - Элементы.ЭтоДополнительноеСведение.Видимость = Истина; + Элементы.ВидСвойств.Видимость = Истина; КонецЕсли; КонецЕсли; @@ -1106,7 +1198,7 @@ Объект.Заголовок = Объект.Наименование; КонецЕсли; - ЭтоДополнительноеСведение = ?(Объект.ЭтоДополнительноеСведение, 1, 0); + ВидСвойств = Объект.ВидСвойств; Если СозданиеРеквизитаКопированием Тогда // Для случаев, когда копирование выполняется из карточки реквизита по команде "Скопировать". @@ -1341,7 +1433,7 @@ ЗначениеВыбора = Новый Структура; ЗначениеВыбора.Вставить("Набор", ВыбранныйНабор); ЗначениеВыбора.Вставить("Свойство", Объект.Ссылка); - ЗначениеВыбора.Вставить("ЭтоДополнительноеСведение", Объект.ЭтоДополнительноеСведение); + ЗначениеВыбора.Вставить("ВидСвойств", Объект.ВидСвойств); ОповеститьОВыборе(ЗначениеВыбора); КонецЕсли; @@ -1425,6 +1517,7 @@ ПараметрыФормы.Вставить("Свойство", Объект.Ссылка); ПараметрыФормы.Вставить("ВладелецДополнительныхЗначений", Объект.ВладелецДополнительныхЗначений); ПараметрыФормы.Вставить("ЭтоДополнительноеСведение", Объект.ЭтоДополнительноеСведение); + ПараметрыФормы.Вставить("ВидСвойств", Объект.ВидСвойств); ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Форма.ИзменениеНастройкиСвойства", ПараметрыФормы, ЭтотОбъект); @@ -1443,6 +1536,7 @@ ПараметрыФормы.Вставить("Свойство", Объект.Ссылка); ПараметрыФормы.Вставить("ВладелецДополнительныхЗначений", Объект.ВладелецДополнительныхЗначений); ПараметрыФормы.Вставить("ЭтоДополнительноеСведение", Объект.ЭтоДополнительноеСведение); + ПараметрыФормы.Вставить("ВидСвойств", Объект.ВидСвойств); ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Форма.ИзменениеНастройкиСвойства", ПараметрыФормы, ЭтотОбъект); @@ -1610,23 +1704,36 @@ ТекущаяСтраница = Элементы.СтраницыПомощникКарточка.ТекущаяСтраница; КонецЕсли; - ШаблонЗаголовкаСписка = НСтр("ru = 'Выберите %1 для включения в набор ""%2""'"); - ШаблонЗаголовкаПереключателя = НСтр("ru = 'Выберите вариант добавления дополнительного %1 ""%2"" в набор ""%3""'"); - Если ТекущаяСтраница = Элементы.ВыборРеквизита Тогда - Если ПереданныеПараметрыФормы.ЭтоДополнительноеСведение Тогда + Если ПереданныеПараметрыФормы.ВидСвойств = + ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеСведения") Тогда Заголовок = НСтр("ru = 'Добавление дополнительного сведения'"); + ШаблонЗаголовкаСписка = + НСтр("ru = 'Выберите дополнительное сведение для включения в набор ""%1""'"); + ШаблонЗаголовкаПереключателя = + НСтр("ru = 'Выберите вариант добавления дополнительного сведения ""%1"" в набор ""%2""'"); + ИначеЕсли ПереданныеПараметрыФормы.ВидСвойств = + ПредопределенноеЗначение("Перечисление.ВидыСвойств.Метки") Тогда + Заголовок = НСтр("ru = 'Добавление метки'"); + ШаблонЗаголовкаСписка = + НСтр("ru = 'Выберите метку для включения в набор ""%1""'"); + ШаблонЗаголовкаПереключателя = + НСтр("ru = 'Выберите вариант добавления метки ""%1"" в набор ""%2""'"); Иначе Заголовок = НСтр("ru = 'Добавление дополнительного реквизита'"); + ШаблонЗаголовкаСписка = + НСтр("ru = 'Выберите дополнительный реквизит для включения в набор ""%1""'"); + ШаблонЗаголовкаПереключателя = + НСтр("ru = 'Выберите вариант добавления дополнительного реквизита ""%1"" в набор ""%2""'"); КонецЕсли; Элементы.КоманднаяПанельЛево.Доступность = Ложь; Элементы.КомандаДалее.Заголовок = НСтр("ru = 'Далее >'"); + Элементы.ДекорацияЗаголовок.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ШаблонЗаголовкаСписка, - ?(ПереданныеПараметрыФормы.ЭтоДополнительноеСведение, НСтр("ru = 'дополнительное сведение'"), НСтр("ru = 'дополнительный реквизит'")), Строка(ПереданныеПараметрыФормы.ТекущийНаборСвойств)); ИначеЕсли ТекущаяСтраница = Элементы.ВыборДействия Тогда @@ -1647,12 +1754,15 @@ Элементы.РежимДобавленияРеквизита.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ШаблонЗаголовкаПереключателя, - ?(ПереданныеПараметрыФормы.ЭтоДополнительноеСведение, НСтр("ru = 'сведения'"), НСтр("ru = 'реквизита'")), Строка(ВладелецДополнительныхЗначений), Строка(ПереданныеПараметрыФормы.ТекущийНаборСвойств)); - Если ПереданныеПараметрыФормы.ЭтоДополнительноеСведение Тогда + Если ПереданныеПараметрыФормы.ВидСвойств = + ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеСведения") Тогда Заголовок = НСтр("ru = 'Добавление дополнительного сведения'"); + ИначеЕсли ПереданныеПараметрыФормы.ВидСвойств = + ПредопределенноеЗначение("Перечисление.ВидыСвойств.Метки") Тогда + Заголовок = НСтр("ru = 'Добавление метки'"); Иначе Заголовок = НСтр("ru = 'Добавление дополнительного реквизита'"); КонецЕсли; @@ -1710,6 +1820,21 @@ Элементы.ГруппаМногострочность.Видимость = Ложь; КонецЕсли; + Если Объект.ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + Объект.ТипЗначения = Новый ОписаниеТипов("Булево"); + Элементы.ГруппаТипЗначения.Видимость = Ложь; + Элементы.ГруппаЦветаСвойств.Видимость = Истина; + Элементы.ВыводитьВВидеГиперссылки.Видимость = Ложь; + Элементы.ГруппаВиден.Видимость = Ложь; + Элементы.ГруппаДоступен.Видимость = Ложь; + Элементы.СвойствоСерое.Пометка = Истина; + Элементы.Заголовок.ОграничениеТипа = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(15)); + Если Не ЗначениеЗаполнено(Объект.ЦветСвойств) Тогда + Объект.ЦветСвойств = Перечисления.ЦветаСвойств.Серый; + КонецЕсли; + УстановитьЦветМетки(ЭтотОбъект, Объект.ЦветСвойств); + КонецЕсли; + Если ЗначениеЗаполнено(Объект.Ссылка) Тогда СтарыйТипЗначения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "ТипЗначения"); Иначе @@ -1963,12 +2088,14 @@ Элементы.УточнениеСпискаЗначенийИзменить.Доступность = ЗначениеЗаполнено(Объект.Ссылка); СвойстваВладельца = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( - Объект.ВладелецДополнительныхЗначений, "Заголовок, ЭтоДополнительноеСведение"); + Объект.ВладелецДополнительныхЗначений, "Заголовок, ВидСвойств"); - Если СвойстваВладельца.ЭтоДополнительноеСведение <> Истина Тогда - ШаблонУточнения = НСтр("ru = 'Список значений общий с реквизитом ""%1""'"); - Иначе + Если СвойстваВладельца.ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения Тогда ШаблонУточнения = НСтр("ru = 'Список значений общий со сведением ""%1""'"); + ИначеЕсли СвойстваВладельца.ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + ШаблонУточнения = НСтр("ru = 'Список значений общий с меткой ""%1""'"); + Иначе + ШаблонУточнения = НСтр("ru = 'Список значений общий с реквизитом ""%1""'"); КонецЕсли; Элементы.УточнениеСпискаЗначенийКомментарий.Заголовок = @@ -1985,27 +2112,45 @@ Элементы.УточнениеНаборовКомментарий.Гиперссылка = Истина; Элементы.УточнениеНаборовИзменить.Доступность = ЗначениеЗаполнено(Объект.Ссылка); - Элементы.УточнениеНаборовИзменить.Видимость = СписокНаборов.Количество() >= 2 И ЗначениеЗаполнено(ТекущийНаборСвойств); - + + Если СписокНаборов.Количество() < 2 Тогда + + Элементы.УточнениеНаборовИзменить.Видимость = Ложь; + + ИначеЕсли ЗначениеЗаполнено(ТекущийНаборСвойств) Тогда + Элементы.УточнениеНаборовИзменить.Видимость = Истина; + Иначе + Элементы.УточнениеНаборовИзменить.Видимость = Ложь; + КонецЕсли; + Если СписокНаборов.Количество() = 0 Тогда Элементы.УточнениеНаборовКомментарий.Гиперссылка = Ложь; Элементы.УточнениеНаборовИзменить.Видимость = Ложь; - Если Объект.ЭтоДополнительноеСведение Тогда + Если Объект.ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения + Или Объект.ЭтоДополнительноеСведение Тогда ТекстКомментария = НСтр("ru = 'Сведение не входит в наборы'"); + ИначеЕсли Объект.ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + ТекстКомментария = НСтр("ru = 'Метка не входит в наборы'"); Иначе ТекстКомментария = НСтр("ru = 'Реквизит не входит в наборы'"); КонецЕсли; ИначеЕсли СписокНаборов.Количество() < 2 Тогда - Если Объект.ЭтоДополнительноеСведение Тогда + Если Объект.ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения + Или Объект.ЭтоДополнительноеСведение Тогда ШаблонУточнения = НСтр("ru = 'Сведение входит в набор: %1'"); + ИначеЕсли Объект.ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + ШаблонУточнения = НСтр("ru = 'Метка входит в набор: %1'"); Иначе ШаблонУточнения = НСтр("ru = 'Реквизит входит в набор: %1'"); КонецЕсли; ТекстКомментария = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонУточнения, СокрЛП(СписокНаборов[0].Представление)); Иначе - Если Объект.ЭтоДополнительноеСведение Тогда + Если Объект.ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения + Или Объект.ЭтоДополнительноеСведение Тогда ШаблонУточнения = НСтр("ru = 'Сведение входит в %1 %2'"); + ИначеЕсли Объект.ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + ШаблонУточнения = НСтр("ru = 'Метка входит в %1 %2'"); Иначе ШаблонУточнения = НСтр("ru = 'Реквизит входит в %1 %2'"); КонецЕсли; @@ -2143,7 +2288,7 @@ ЗаполнитьСписокДействийПриДобавленииРеквизита(); КонецЕсли; ИначеЕсли ТекущаяСтраница = Элементы.КарточкаРеквизита Тогда - ЗаполнитьКарточкуРеквизитаИлиСведения(); + ЗаполнитьКарточкуСвойства(); КонецЕсли; КонецПроцедуры @@ -2167,7 +2312,7 @@ РеквизитСоСпискомДополнительныхЗначений = РеквизитСоСпискомДополнительныхЗначений(); - Если ПереданныеПараметрыФормы.ЭтоДополнительноеСведение Тогда + Если ПереданныеПараметрыФормы.ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения Тогда ДобавитьОбщий = НСтр("ru = 'Добавить сведение как есть (рекомендуется) | |В этом случае будет возможно отбирать по нему данные разных типов в списках и отчетах.'"); @@ -2185,6 +2330,13 @@ | |Будет создана копия сведения.'"); КонецЕсли; + ИначеЕсли ПереданныеПараметрыФормы.ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + ДобавитьОбщий = НСтр("ru = 'Добавить метку как есть (рекомендуется) + | + |В этом случае будет возможно отбирать по ней данные разных типов в списках и отчетах.'"); + СоздатьКопированием = НСтр("ru = 'Сделать копию метки + | + |Будет создана копия метки'"); Иначе ДобавитьОбщий = НСтр("ru = 'Добавить реквизит как есть (рекомендуется) | @@ -2305,14 +2457,20 @@ Процедура УстановитьЗаголовокФормы() Если ЗначениеЗаполнено(Объект.Ссылка) Тогда - Если Объект.ЭтоДополнительноеСведение Тогда + Если Объект.ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения + Или Объект.ЭтоДополнительноеСведение Тогда Заголовок = Строка(Объект.Заголовок) + " " + НСтр("ru = '(Дополнительное сведение)'"); + ИначеЕсли Объект.ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + Заголовок = Строка(Объект.Заголовок) + " " + НСтр("ru = '(Метка)'"); Иначе Заголовок = Строка(Объект.Заголовок) + " " + НСтр("ru = '(Дополнительный реквизит)'"); КонецЕсли; Иначе - Если Объект.ЭтоДополнительноеСведение Тогда + Если Объект.ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения + Или Объект.ЭтоДополнительноеСведение Тогда Заголовок = НСтр("ru = 'Дополнительное сведение (создание)'"); + ИначеЕсли Объект.ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + Заголовок = НСтр("ru = 'Метка (создание)'"); Иначе Заголовок = НСтр("ru = 'Дополнительный реквизит (создание)'"); КонецЕсли; @@ -2354,7 +2512,7 @@ УправлениеСвойствамиСлужебный.ОбновитьСписокСвойствТекущегоНабора(ЭтотОбъект, ВыбранныйНаборСвойств, - ЭтоДополнительноеСведение = 1); + ВидСвойств); КонецПроцедуры @@ -2364,7 +2522,7 @@ ПереданныеПараметрыФормы.Вставить("ВладелецДополнительныхЗначений"); ПереданныеПараметрыФормы.Вставить("ПоказатьУточнениеНабора", Истина); ПереданныеПараметрыФормы.Вставить("ТекущийНаборСвойств"); - ПереданныеПараметрыФормы.Вставить("ЭтоДополнительноеСведение"); + ПереданныеПараметрыФормы.Вставить("ВидСвойств"); ПереданныеПараметрыФормы.Вставить("ВыборОбщегоСвойства"); ПереданныеПараметрыФормы.Вставить("ВыбранныеЗначения"); ПереданныеПараметрыФормы.Вставить("ВыборВладельцаДополнительныхЗначений"); @@ -2437,4 +2595,22 @@ КонецПроцедуры +&НаКлиентеНаСервереБезКонтекста +Процедура УстановитьЦветМетки(Форма, ЦветМетки) + + Элементы = Форма.Элементы; + Элементы.СвойствоСерое.Пометка = (ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.ПустаяСсылка") + ИЛИ ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Серый")); + Элементы.СвойствоГолубое.Пометка = (ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Голубой")); + Элементы.СвойствоЖелтое.Пометка = (ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Желтый")); + Элементы.СвойствоЗеленое.Пометка = (ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Зеленый")); + Элементы.СвойствоЛаймовое.Пометка = (ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Лаймовый")); + Элементы.СвойствоКрасное.Пометка = (ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Красный")); + Элементы.СвойствоОранжевое.Пометка = (ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Оранжевый")); + Элементы.СвойствоРозовое.Пометка = (ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Розовый")); + Элементы.СвойствоСинее.Пометка = (ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Синий")); + Элементы.СвойствоФиолетовое.Пометка = (ЦветМетки = ПредопределенноеЗначение("Перечисление.ЦветаСвойств.Фиолетовый")); + +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl index 6994f0bdc..ba11c5ffd 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl @@ -528,7 +528,7 @@ ВладелецСДополнительнымиРеквизитами = Ложь; - Если УправлениеСвойствамиСлужебный.ЭтоОбъектМетаданныхСДополнительнымиРеквизитами(МетаданныеВладельца) Тогда + Если УправлениеСвойствамиСлужебный.ЭтоОбъектМетаданныхСоСвойствами(МетаданныеВладельца, "ДополнительныеРеквизиты") Тогда ВладелецСДополнительнымиРеквизитами = Истина; ЭлементБлокировки = Блокировка.Добавить(ПолноеИмяВладельца); КонецЕсли; diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl index 9e45e34f0..4b737f2d2 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl @@ -123,7 +123,7 @@ |ГДЕ | Свойства.Свойство = &Свойство | И Свойства.ПометкаУдаления <> &ПометкаУдаления"; - Если ЭтоДополнительноеСведение Тогда + Если ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения Тогда ИмяТаблицы = "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения"; Иначе ИмяТаблицы = "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты"; @@ -136,7 +136,7 @@ Для Каждого СтрокаРезультата Из Результат Цикл НаборСвойствОбъект = СтрокаРезультата.Ссылка.ПолучитьОбъект();// СправочникОбъект.НаборыДополнительныхРеквизитовИСведений, - Если ЭтоДополнительноеСведение Тогда + Если ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения Тогда ЗаполнитьЗначенияСвойств(НаборСвойствОбъект.ДополнительныеСведения.Найти(Ссылка, "Свойство"), СвойстваОбъекта); Иначе ЗаполнитьЗначенияСвойств(НаборСвойствОбъект.ДополнительныеРеквизиты.Найти(Ссылка, "Свойство"), СвойстваОбъекта); diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo index 83c4e7025..f03fd5fb2 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo @@ -678,6 +678,36 @@ Use Use + + ВидСвойств + + ru + Вид свойств + + + EnumRef.ВидыСвойств + + + + + Use + Use + + + ЦветСвойств + + ru + Цвет свойств + + + EnumRef.ЦветаСвойств + + + + + Use + Use + diff --git a/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo b/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo index 24ef4d0b9..0bcbc6195 100644 --- a/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo +++ b/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo @@ -206,10 +206,18 @@ InformationRegister.ОбластиПерсональныхДанных DontUse + + ScheduledJob.УдалениеНеиспользуемыхВнешнихКомпонент + DontUse + InformationRegister.ДанныеПроизводственногоКалендаря DontUse + + Catalog.СеансыОбменовДанными + DontUse + InformationRegister.ПричиныИзмененияАдресныхСведений DontUse @@ -474,6 +482,10 @@ Constant.СведенияОБлокируемыхОбъектах DontUse + + Constant.ИспользоватьОценкуПроизводительностиСинхронизацииДанных + DontUse + Catalog.ПредопределенныеВариантыОтчетов DontUse diff --git a/SSL/src/CommonCommands/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты.mdo b/SSL/src/CommonCommands/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты.mdo index 8b4e1208d..b68bb1206 100644 --- a/SSL/src/CommonCommands/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты.mdo +++ b/SSL/src/CommonCommands/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты/НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты.mdo @@ -3,12 +3,12 @@ НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты ru - Настройка системной учетной записи + Настройка почты для рассылок уведомлений ActionsPanelTools Auto ru - Открыть форму настройки системной учетной записи электронной почты + Открыть настройку электронной почты для рассылок уведомлений из программы diff --git a/SSL/src/CommonCommands/ПоказатьРезультатРезервногоКопирования/CommandModule.bsl b/SSL/src/CommonCommands/ПоказатьРезультатРезервногоКопирования/CommandModule.bsl index d723db7e8..b4384e592 100644 --- a/SSL/src/CommonCommands/ПоказатьРезультатРезервногоКопирования/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПоказатьРезультатРезервногоКопирования/CommandModule.bsl @@ -11,7 +11,7 @@ &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) - ПараметрыРаботы = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); + ПараметрыРаботы = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(); ПараметрыРезервногоКопирования = ПараметрыРаботы.РезервноеКопированиеИБ; ПараметрыФормы = Новый Структура(); diff --git a/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl b/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl index f00588ce5..0aa6ea9d2 100644 --- a/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl @@ -11,7 +11,7 @@ &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) - Параметры = СтандартныеПодсистемыКлиент.ПараметрыДействийПередЗавершениемРаботыСистемы(); + Параметры = СтандартныеПодсистемыКлиент.ПараметрыДействийПередЗавершениемРаботыСистемы(Истина); СтандартныеПодсистемыКлиент.ДействияПередЗавершениемРаботыСистемы(Параметры); КонецПроцедуры diff --git a/SSL/src/CommonCommands/СнимкиОтчетовДляАвтономногоРежима/CommandModule.bsl b/SSL/src/CommonCommands/СнимкиОтчетовДляАвтономногоРежима/CommandModule.bsl new file mode 100644 index 000000000..7d9d9b839 --- /dev/null +++ b/SSL/src/CommonCommands/СнимкиОтчетовДляАвтономногоРежима/CommandModule.bsl @@ -0,0 +1,23 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытий + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + +#Если МобильныйКлиент Тогда + ОткрытьФорму("РегистрСведений.СнимкиОтчетов.Форма.ФормаПросмотраОтчетов"); +#Иначе + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр( + "ru='Данная команда используется при работе с мобильного клиента.'")); +#КонецЕсли + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonCommands/СнимкиОтчетовДляАвтономногоРежима/СнимкиОтчетовДляАвтономногоРежима.mdo b/SSL/src/CommonCommands/СнимкиОтчетовДляАвтономногоРежима/СнимкиОтчетовДляАвтономногоРежима.mdo new file mode 100644 index 000000000..1a6e437e8 --- /dev/null +++ b/SSL/src/CommonCommands/СнимкиОтчетовДляАвтономногоРежима/СнимкиОтчетовДляАвтономногоРежима.mdo @@ -0,0 +1,10 @@ + + + СнимкиОтчетовДляАвтономногоРежима + + ru + Снимки отчетов + + NavigationPanelOrdinary + Auto + diff --git a/SSL/src/CommonForms/АвтономнаяРабота/Form.form b/SSL/src/CommonForms/АвтономнаяРабота/Form.form index 9f5e7db2a..45a42c8ba 100644 --- a/SSL/src/CommonForms/АвтономнаяРабота/Form.form +++ b/SSL/src/CommonForms/АвтономнаяРабота/Form.form @@ -1139,6 +1139,246 @@ false + + ПолученыРасширения + 116 + + Группа8 + 118 + + Декорация6 + 120 + true + true + + true + + + Декорация6РасширеннаяПодсказка + 122 + Label + true + true + + Left + + + + Декорация6КонтекстноеМеню + 121 + true + + 5 + true + 2 + true + + + CommonPicture.Предупреждение32 + + + + + ПоясняющаяНадписьПолученыРасширения + 123 + + <key>ru</key> + <value>Изменены расширения конфигурации. +Чтобы продолжить работу с учетом сделанных изменений, необходимо перезапустить программу.</value> + + true + true + + true + + + ПоясняющаяНадписьПолученыРасширенияРасширеннаяПодсказка + 125 + Label + true + true + + Left + + + + ПоясняющаяНадписьПолученыРасширенияКонтекстноеМеню + 124 + true + + Label + true + + Left + Center + + + true + true + + true + + + Группа8РасширеннаяПодсказка + 119 + Label + true + true + + Left + + + UsualGroup + + true + true + Auto + Auto + + + + ПерезапуститьПрограмму + 135 + true + true + + true + + + ПерезапуститьПрограммуРасширеннаяПодсказка + 136 + Label + true + true + + Left + + + UsualButton + Form.Command.ПерезапуститьПрограмму + Normal + Auto + true + true + UserCmds + Auto + + + Группа12 + 128 + + ИнформацияОПоследнейСинхронизации2 + 130 + + <key>ru</key> + <value>Последняя синхронизация: <Дата>.</value> + + true + true + + true + + + ИнформацияОПоследнейСинхронизации2РасширеннаяПодсказка + 132 + Label + true + true + + Left + + + + ИнформацияОПоследнейСинхронизации2КонтекстноеМеню + 131 + true + + Label + true + true + + Style.ПоясняющийТекст + + + Left + + + + ПерейтиККонфликтам2 + 133 + true + true + + true + + + ПерейтиККонфликтам2РасширеннаяПодсказка + 134 + Label + true + true + + Left + + + Hyperlink + Form.Command.ПерейтиККонфликтам + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + Группа12РасширеннаяПодсказка + 129 + Label + true + true + + Left + + + UsualGroup + + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Получены расширения</value> + + + ПолученыРасширенияРасширеннаяПодсказка + 117 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + true true @@ -1472,6 +1712,28 @@ Auto Auto + + ПерезапуститьПрограмму + + <key>ru</key> + <value>Перезапустить программу</value> + + 7 + + ru + Перезапустить программу + + + true + + + + ПерезапуститьПрограмму + + + Auto + Auto + diff --git a/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl b/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl index d7972725d..f818d9d5a 100644 --- a/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl +++ b/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl @@ -115,6 +115,14 @@ КонецПроцедуры +&НаКлиенте +Процедура ПерезапуститьПрограмму(Команда) + + ЗавершитьРаботуСистемы(Ложь, Истина); + +КонецПроцедуры + + &НаКлиенте Процедура СинхронизироватьДанныеПоРасписаниюПриИзменении(Элемент) @@ -217,15 +225,30 @@ ТребуетсяУстановкаОбновления = ОбменДаннымиСервер.ТребуетсяУстановкаОбновления(); - Элементы.АвтономнаяРабота.ТекущаяСтраница = ?(ТребуетсяУстановкаОбновления, - Элементы.ПолученоОбновлениеКонфигурации, - Элементы.СинхронизацияДанных); + ТребуетсяПерезагрузка = Справочники.ВерсииРасширений.РасширенияИзмененыДинамически(); - Элементы.ВыполнитьСинхронизациюДанных.КнопкаПоУмолчанию = Не ТребуетсяУстановкаОбновления; - Элементы.ВыполнитьСинхронизациюДанных.АктивизироватьПоУмолчанию = Не ТребуетсяУстановкаОбновления; - - Элементы.УстановитьОбновление.КнопкаПоУмолчанию = ТребуетсяУстановкаОбновления; - Элементы.УстановитьОбновление.АктивизироватьПоУмолчанию = ТребуетсяУстановкаОбновления; + Если ТребуетсяУстановкаОбновления Тогда + + Элементы.АвтономнаяРабота.ТекущаяСтраница = Элементы.ПолученоОбновлениеКонфигурации; + + Элементы.УстановитьОбновление.КнопкаПоУмолчанию = Истина; + Элементы.УстановитьОбновление.АктивизироватьПоУмолчанию = Истина; + + ИначеЕсли ТребуетсяПерезагрузка Тогда + + Элементы.АвтономнаяРабота.ТекущаяСтраница = Элементы.ПолученыРасширения; + + Элементы.ПерезапуститьПрограмму.КнопкаПоУмолчанию = Истина; + Элементы.ПерезапуститьПрограмму.АктивизироватьПоУмолчанию = Истина; + + Иначе + + Элементы.АвтономнаяРабота.ТекущаяСтраница = Элементы.СинхронизацияДанных; + + Элементы.ВыполнитьСинхронизациюДанных.КнопкаПоУмолчанию = Истина; + Элементы.ВыполнитьСинхронизациюДанных.АктивизироватьПоУмолчанию = Истина; + + КонецЕсли; НастройкиТранспортаWS = РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспортаWS(ПриложениеВСервисе); diff --git a/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl b/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl index a35644929..62c7928d8 100644 --- a/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl +++ b/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl @@ -85,11 +85,11 @@ Список.ТипЗначения = ИнформацияОТипах.ОписаниеТиповДляФормы; Если ТипЗнч(ЗначенияДляВыбора) = Тип("СписокЗначений") Тогда ЗначенияДляВыбора.ЗаполнитьПометки(Ложь); - ОтчетыКлиентСервер.ДополнитьСписок(Список, ЗначенияДляВыбора, Истина, Истина); + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(Список, ЗначенияДляВыбора, Истина, Истина); КонецЕсли; Если ТипЗнч(Отмеченные) = Тип("СписокЗначений") Тогда Отмеченные.ЗаполнитьПометки(Истина); - ОтчетыКлиентСервер.ДополнитьСписок(Список, Отмеченные, Истина, Не ОграничиватьВыборУказаннымиЗначениями); + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(Список, Отмеченные, Истина, Не ОграничиватьВыборУказаннымиЗначениями); КонецЕсли; Если Список.Количество() = 0 Тогда @@ -220,7 +220,7 @@ Выбранные = ОтчетыКлиентСервер.ЗначенияСписком(РезультатВыбора); Выбранные.ЗаполнитьПометки(Истина); - Дополнение = ОтчетыКлиентСервер.ДополнитьСписок(Список, Выбранные, Истина, Истина); + Дополнение = ОбщегоНазначенияКлиентСервер.ДополнитьСписок(Список, Выбранные, Истина, Истина); Если Дополнение.Всего = 0 Тогда Возврат; КонецЕсли; diff --git a/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form b/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form index 29665e8e0..626c45451 100644 --- a/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form +++ b/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form @@ -2006,7 +2006,7 @@ УчетнаяЗаписьПочты <key>ru</key> - <value>Учетная запись почты</value> + <value>Почта</value> 8 diff --git a/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl b/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl index 46a0cb6ad..8d126bcf1 100644 --- a/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl +++ b/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl @@ -278,9 +278,9 @@ Если ТипЗнч(МенеджерКриптографии) <> Тип("МенеджерКриптографии") Тогда ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии(); ПараметрыСоздания.ПоказатьОшибку = Неопределено; - ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Новый ОписаниеОповещения( - "ВыбратьФайлПослеСозданияЛюбогоМенеджераКриптографии", ЭтотОбъект, Контекст), - "", ПараметрыСоздания); + ЭлектроннаяПодписьСлужебныйКлиент.ПрочитатьСвойстваПодписи(Новый ОписаниеОповещения( + "ВыбратьФайлПослеЧтенияСвойствПодписи", ЭтотОбъект, Контекст), + Контекст.ДанныеПодписи, Истина, Ложь); Возврат; КонецЕсли; @@ -302,18 +302,36 @@ // Продолжение процедуры ВыбратьФайл. &НаКлиенте -Процедура ВыбратьФайлПослеСозданияЛюбогоМенеджераКриптографии(МенеджерКриптографии, Контекст) Экспорт +Процедура ВыбратьФайлПослеЧтенияСвойствПодписи(Результат, Контекст) Экспорт - Если ТипЗнч(МенеджерКриптографии) <> Тип("МенеджерКриптографии") Тогда - ПоказатьОшибку(МенеджерКриптографии, Контекст.ОшибкаНаСервере); + Если Результат.Успех = Ложь Тогда + ПоказатьОшибку(Результат.ТекстОшибки, Контекст.ОшибкаНаСервере); Возврат; КонецЕсли; - Контекст.Вставить("МенеджерКриптографии", МенеджерКриптографии); - Контекст.Вставить("ПараметрыПодписи", Неопределено); - МенеджерКриптографии.НачатьПолучениеСертификатовИзПодписи(Новый ОписаниеОповещения( - "ВыбратьФайлПослеПолученияСертификатовИзПодписи", ЭтотОбъект, Контекст, - "ВыбратьФайлПослеОшибкиПолученияСертификатовИзПодписи", ЭтотОбъект), Контекст.ДанныеПодписи); + Контекст.Вставить("МенеджерКриптографии", Неопределено); + Контекст.Вставить("ПараметрыПодписи", Результат); + + Если Результат.Сертификат <> Неопределено Тогда + + СвойстваСертификата = Новый Структура; + СвойстваСертификата.Вставить("ДвоичныеДанные", Результат.Сертификат); + СвойстваСертификата.Вставить("Отпечаток", Результат.Отпечаток); + СвойстваСертификата.Вставить("КомуВыдан", Результат.КомуВыданСертификат); + + СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписи(Контекст.ДанныеПодписи, + СвойстваСертификата, "", ПользователиКлиент.АвторизованныйПользователь(), Контекст.ИмяФайла, + Контекст.ПараметрыПодписи, Истина); + + ДобавитьСтроку(ЭтотОбъект, Контекст.ДобавитьНовуюСтроку, СвойстваПодписи, Контекст.ИмяФайла, + Контекст.АдресСвойствПодписи); + + ВыбратьФайлПослеДобавленияСтроки(Контекст); + Иначе + ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", НСтр("ru = 'В файле подписи нет ни одного сертификата.'")); + + ПоказатьОшибку(ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/CommonForms/МастерАнкетыПоРазделам/Form.form b/SSL/src/CommonForms/МастерАнкетыПоРазделам/Form.form index 36d5068b8..d84149296 100644 --- a/SSL/src/CommonForms/МастерАнкетыПоРазделам/Form.form +++ b/SSL/src/CommonForms/МастерАнкетыПоРазделам/Form.form @@ -1,280 +1,5 @@ - - ГруппаШапка - 135 - - ГруппаШапкаЛево - 141 - - Закрыть - 77 - - <key>ru</key> - <value>Закрыть</value> - - true - true - - true - - false - - ЗакрытьExtendedTooltip - 96 - Label - true - true - - Left - - - Form.StandardCommand.Close - Auto - true - true - Left - UserCmds - Auto - - - СкрытьПоказатьДеревоРазделов - 68 - - <key>ru</key> - <value>Скрыть разделы</value> - - true - true - - true - - false - - СкрытьПоказатьДеревоРазделовExtendedTooltip - 99 - Label - true - true - - Left - - - Form.Command.СкрытьПоказатьДеревоРазделов - Normal - Auto - true - true - Left - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Шапка лево</value> - - - ГруппаШапкаЛевоРасширеннаяПодсказка - 142 - Label - true - true - - Left - - - CommandBar - - Left - - - - ГруппаШапкаПраво - 133 - - ПредыдущийРаздел - 72 - - <key>ru</key> - <value>< Назад</value> - - true - true - - true - - false - - ПредыдущийРазделExtendedTooltip - 101 - Label - true - true - - Left - - - Form.Command.ПредыдущийРаздел - Normal - Auto - 10 - true - true - Right - UserCmds - Auto - - - СледующийРаздел - 73 - - <key>ru</key> - <value>Далее ></value> - - true - true - - true - - false - - СледующийРазделExtendedTooltip - 102 - Label - true - true - - Left - - - Form.Command.СледующийРаздел - Normal - Auto - 10 - true - Right - UserCmds - Auto - - - ФормаСправка - 95 - true - true - - true - - - ФормаСправкаExtendedTooltip - 97 - Label - true - true - - Left - - - Form.StandardCommand.Help - Normal - Picture - 3 - true - true - Right - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Шапка право</value> - - - ГруппаШапкаПравоРасширеннаяПодсказка - 134 - Label - true - true - - Left - - - CommandBar - - Right - - - true - true - - true - - - <key>ru</key> - <value>Шапка</value> - - true - - ГруппаШапкаРасширеннаяПодсказка - 136 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - WeakSeparation - true - true - Auto - Auto - - - - ГруппаКнопкиШапка - 69 - true - true - - true - - - <key>ru</key> - <value>Кнопки шапка</value> - - - ГруппаКнопкиШапкаExtendedTooltip - 98 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - ДеревоФормаЗаполнения 48 @@ -908,15 +633,170 @@ CommandBar - - Right - + Top true ФормаКоманднаяПанель -1 + + СкрытьРазделы + 68 + + <key>ru</key> + <value>Скрыть разделы</value> + + true + true + + true + + false + + СкрытьРазделыРасширеннаяПодсказка + 99 + Label + true + true + + Left + + + Form.Command.СкрытьРазделы + Normal + Auto + true + true + Left + UserCmds + Auto + + + ПредыдущийРаздел + 72 + + <key>ru</key> + <value>< Назад</value> + + true + true + + true + + false + + ПредыдущийРазделExtendedTooltip + 101 + Label + true + true + + Left + + + Form.Command.ПредыдущийРаздел + Normal + Auto + 10 + true + true + Right + UserCmds + Auto + + + СледующийРаздел + 73 + + <key>ru</key> + <value>Далее ></value> + + true + true + + true + + false + + СледующийРазделExtendedTooltip + 102 + Label + true + true + + Left + + + Form.Command.СледующийРаздел + Auto + true + 10 + true + Right + UserCmds + Auto + + + ФормаСправка + 95 + true + true + + true + + + ФормаСправкаExtendedTooltip + 97 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Picture + 3 + true + true + Right + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + + Закрыть + 77 + + <key>ru</key> + <value>Закрыть</value> + + true + true + + true + + false + + ЗакрытьExtendedTooltip + 96 + Label + true + true + + Left + + + Form.StandardCommand.Close + Normal + Auto + true + Left + UserCmds + Auto + Left @@ -1343,6 +1223,105 @@ true + + ИспользоватьМаксимальноеЗначение + 28 + + Boolean + + + true + + + true + + + + ИспользоватьМинимальноеЗначение + 29 + + Boolean + + + true + + + true + + + + ПоказыватьПолосуРегулирования + 30 + + Boolean + + + true + + + true + + + + ШагПолосыРегулирования + 31 + + Number + + 15 + 2 + true + + + + true + + + true + + + + ИспользоватьОтказОтОтвета + 34 + + Boolean + + + true + + + true + + + + ФормулировкаОтказаОтОтвета + 35 + + String + + 50 + + + + true + + + true + + + + ДиапазонПодсказокЧисловогоВопроса + 32 + + ValueTable + + + true + + + true + + ТаблицаВопросовРаздела.СоставТабличногоВопроса @@ -1523,6 +1502,72 @@ + + + ТаблицаВопросовРаздела.ДиапазонПодсказокЧисловогоВопроса + + + ЗначениеДо + + <key>ru</key> + <value>Значение до</value> + + 1 + + Number + + 15 + 2 + + + + true + + + true + + + + Подсказка + + <key>ru</key> + <value>Подсказка</value> + + 2 + + String + + 250 + + + + true + + + true + + + + НомерСтроки + + <key>ru</key> + <value>Номер строки</value> + + 3 + + Number + + 10 + + + + true + + + true + + + ПодчиненныеВопросы @@ -1673,6 +1718,22 @@ true + + Подсказка + 36 + + String + + 250 + + + + true + + + true + + ДобавленныеДинамическиРеквизиты @@ -1818,6 +1879,32 @@ true + + ИспользоватьМаксимальноеЗначение + 32 + + Boolean + + + true + + + true + + + + ИспользоватьМинимальноеЗначение + 33 + + Boolean + + + true + + + true + + ДеревоРазделов @@ -2009,10 +2096,10 @@ - СкрытьПоказатьДеревоРазделов + СкрытьРазделы <key>ru</key> - <value>Скрыть показать дерево разделов</value> + <value>Скрыть разделы</value> 1 @@ -2022,9 +2109,12 @@ true + + StdPicture.ShowInList + - СкрытьПоказатьДеревоРазделов + СкрытьРазделы DontUse diff --git a/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl b/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl index a80d5b749..dbbf867b5 100644 --- a/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl +++ b/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl @@ -62,12 +62,33 @@ КонецПроцедуры +&НаКлиенте +Процедура Подключаемый_ПриИзмененииПолосыРегулирования(Элемент) + + АнкетированиеКлиент.ПриИзмененииПолосыРегулирования(ЭтотОбъект, Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииПоляЧисло(Элемент) + + АнкетированиеКлиент.ПриИзмененииПоляЧисло(ЭтотОбъект, Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_РегулированиеПоляЧисло(Элемент, Направление, СтандартнаяОбработка) + + АнкетированиеКлиент.РегулированиеПоляЧисло(ЭтотОбъект, Элемент, Направление, СтандартнаяОбработка); + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы &НаКлиенте -Процедура СкрытьПоказатьДеревоРазделов(Команда) +Процедура СкрытьРазделы(Команда) ИзменитьВидимостьДеревоРазделов(); @@ -106,7 +127,6 @@ КонецПроцедуры -// Отвечает за построение формы заполнения. &НаСервере Процедура ПостроениеФормыСогласноРаздела() @@ -127,7 +147,6 @@ КонецПроцедуры -// Начинает процесс построения формы заполнения согласно разделам. &НаКлиенте Процедура ВыполнитьПостроениеФормыЗаполнения() @@ -136,7 +155,6 @@ КонецПроцедуры -// Заканчивает формирование формы заполнения анкеты. &НаКлиенте Процедура ОкончаниеПостроенияФормыЗаполнения() @@ -146,18 +164,22 @@ КонецПроцедуры -// Отвечает за доступность кнопок навигации по разделам. &НаКлиенте Процедура УправлениеДоступностьюКнопкиНавигацияРазделов() - Элементы.ПредыдущийРаздел.Видимость = (Элементы.ДеревоРазделов.ТекущаяСтрока <> 0); - Элементы.ПредыдущийРазделПодвал.Видимость = (Элементы.ДеревоРазделов.ТекущаяСтрока > 0); - Элементы.СледующийРаздел.Видимость = (ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока + 1) <> Неопределено); - Элементы.СледующийРазделПодвал.Видимость = (ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока + 1) <> Неопределено); + ЭтоПервыйРаздел = Элементы.ДеревоРазделов.ТекущаяСтрока = 0; + ЭтоПоследнийРаздел = ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока + 1) = Неопределено; + + Элементы.ПредыдущийРаздел.Видимость = Не ЭтоПервыйРаздел; + Элементы.ПредыдущийРазделПодвал.Видимость = Не ЭтоПервыйРаздел; + Элементы.СледующийРаздел.Видимость = Не ЭтоПоследнийРаздел; + Элементы.СледующийРаздел.КнопкаПоУмолчанию = Не ЭтоПоследнийРаздел; + Элементы.СледующийРазделПодвал.Видимость = Не ЭтоПоследнийРаздел; + Элементы.Закрыть.Видимость = ЭтоПоследнийРаздел; + Элементы.Закрыть.КнопкаПоУмолчанию = ЭтоПоследнийРаздел; КонецПроцедуры -// Изменяет текущий раздел &НаКлиенте Процедура ИзменитьРаздел(Направление) @@ -171,12 +193,11 @@ КонецПроцедуры -// Изменяет видимость дерева разделов. &НаКлиенте Процедура ИзменитьВидимостьДеревоРазделов() Элементы.ГруппаДеревоРазделов.Видимость = НЕ Элементы.ГруппаДеревоРазделов.Видимость; - Элементы.СкрытьПоказатьДеревоРазделов.Заголовок = ?(Элементы.ГруппаДеревоРазделов.Видимость,НСтр("ru = 'Скрыть разделы'"), НСтр("ru = 'Показать разделы'")); + Элементы.СкрытьРазделы.Заголовок = ?(Элементы.ГруппаДеревоРазделов.Видимость,НСтр("ru = 'Скрыть разделы'"), НСтр("ru = 'Показать разделы'")); КонецПроцедуры @@ -186,7 +207,7 @@ Для каждого ЭлементКоллекции Из ПодчиненныеВопросы Цикл - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(ЭлементКоллекции.Вопрос); + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(ЭлементКоллекции.Вопрос); Для каждого ПодчиненныйВопрос Из ЭлементКоллекции.Подчиненные Цикл diff --git a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form index 7febc4a42..3a27f601f 100644 --- a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form +++ b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Form.form @@ -875,7 +875,7 @@ ru Для некоторых синхронизаций есть возможность настроить обмен через Интернет (веб-сервис). Это позволит ускорить обмен и более гибко настроить график синхронизации. -Для перехода на обмен посредством веб-сервиса, воспользуйтесь помощником перехода в списке <img 0:2d40609d-b56f-4082-9a6f-8216817ebd24/>. +Для перехода на обмен посредством веб-сервиса, воспользуйтесь помощником перехода в списке <img :2d40609d-b56f-4082-9a6f-8216817ebd24:00000000-0000-0000-0000-000000000000/>. <link НеПредлагатьПерейтиНаВебСервис>Больше не предлагать перейти на веб-сервис</>. (Вызвать помощник перехода можно через меню узла синхронизации <b>Ещё</>) @@ -3599,6 +3599,19 @@ true + + СинхронизацияНедоступна + 37 + + Boolean + + + true + + + true + + ЕстьПраваНаАдминистрированиеОбменов diff --git a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl index b6e95951f..375969185 100644 --- a/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl +++ b/SSL/src/CommonForms/НастройкиСинхронизацииДанных/Module.bsl @@ -595,6 +595,17 @@ КонецЕсли; + Если КомандаСтрокой <> "УдалитьНастройкуСинхронизации" + И ТекущиеДанные.СинхронизацияНедоступна Тогда + + ТекстСообщения = НСтр("ru = 'Синхронизация недоступна для использования'"); + + ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения); + + Возврат; + + КонецЕсли; + Если КомандаСтрокой = "ВыполнитьСинхронизацию" Тогда ОбработкаКомандыВыполненияСинхронизации(ТекущиеДанные, Ложь); @@ -1251,7 +1262,7 @@ &НаКлиенте Процедура ИнформацияОПереходеНаИнтернетОписаниеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) - СтандартнаяОбработка = Истина; + СтандартнаяОбработка = Ложь; Элементы.ИнформационнаяПанельПереходНаИнтернет.Видимость = Ложь; @@ -1562,7 +1573,23 @@ ОтборЭлемента.ПравоеЗначение = 0; Элемент.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + + // Синхронизация недоступна + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокПриложений.Имя); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокПриложенийСостояниеПредставление.Имя); + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СписокПриложений.СинхронизацияНедоступна"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет); + КонецПроцедуры &НаСервере @@ -1612,7 +1639,8 @@ Элементы.ПравоОбновленияСтраницы.ТекущаяСтраница = Элементы.ИнформацияОбменДаннымиПриостановленНетПраваОбновления; КонецЕсли; - Элементы.ИнформационнаяПанельТребуетсяПерезагрузка.Видимость = ТребуетсяПерезагрузка И СписокПриложений.Количество() > 0; + Элементы.ИнформационнаяПанельТребуетсяПерезагрузка.Видимость = + ТребуетсяПерезагрузка И СписокПриложений.Количество() > 0 И Не МодельСервиса; Элементы.ИнформационнаяПанельОбнаруженоЗацикливание.Видимость = ОбнаруженоЗацикливание; @@ -1699,7 +1727,12 @@ СтрокаПриложение.ОбластьДанных = СтрокаПриложениеМоделиСервиса.ОбластьДанных; СтрокаПриложение.НаименованиеКорреспондента = СтрокаПриложениеМоделиСервиса.НаименованиеПриложения; СтрокаПриложение.ДоступенПереходНаWS = СтрокаПриложениеМоделиСервиса.ДоступенExchangeAdministrationManage_3_0_1_1 - И СтрокаПриложение.ДоступенПереходНаWS; + И СтрокаПриложение.ДоступенПереходНаWS; + + Иначе + + СтрокаПриложение.ДоступенПереходНаWS = Ложь; + КонецЕсли; Если СтрокаПриложение.ЭтоОбменСПриложениемВСервисе Тогда @@ -1805,7 +1838,7 @@ | СценарииОбменовДанными.ОтключенАвтоматически | И НЕ СценарииОбменовДанными.ПометкаУдаления"; - Массив = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");; + Массив = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); ОтключенныеСценарии.ЗагрузитьЗначения(Массив); КонецПроцедуры diff --git a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl index 5170ac030..69d521dc9 100644 --- a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl +++ b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl @@ -171,6 +171,8 @@ ИначеЕсли Параметр.ЭтоНовый Тогда Элементы.Сертификаты.Обновить(); Элементы.Сертификаты.ТекущаяСтрока = Источник; + Иначе + Элементы.Сертификаты.Обновить(); КонецЕсли; Возврат; КонецЕсли; diff --git a/SSL/src/CommonForms/ОтправкаСообщения/Form.form b/SSL/src/CommonForms/ОтправкаСообщения/Form.form index f4fb0b68c..cc1354abd 100644 --- a/SSL/src/CommonForms/ОтправкаСообщения/Form.form +++ b/SSL/src/CommonForms/ОтправкаСообщения/Form.form @@ -325,28 +325,209 @@ true - - ТемаПисьма - 11 + + ГруппаТемаПисьма + 113 + + ТемаПисьма + 11 + true + true + + true + + + ТемаПисьма + + + ru + Тема отправляемого сообщения + + + OnChange + УстановитьПризнакМодифицированностиФормы + + + ТемаПисьмаExtendedTooltip + 53 + Label + true + true + + Left + + + + ТемаПисьмаКонтекстноеМеню + 12 + true + + InputField + Enter + true + Left + true + + 60 + true + true + true + true + true + Normal + + + + КоманднаяПанельТемаПисьма + 115 + + ГруппаВажность + 117 + + ВажностьВысокая + 119 + true + true + + true + + + ВажностьВысокаяРасширеннаяПодсказка + 120 + Label + true + true + + Left + + + Form.Command.ВажностьВысокая + Normal + Auto + true + true + UserCmds + Auto + + + ВажностьОбычная + 121 + true + true + + true + + + ВажностьОбычнаяРасширеннаяПодсказка + 122 + Label + true + true + + Left + + + Form.Command.ВажностьОбычная + Normal + Auto + true + true + UserCmds + Auto + + + ВажностьНизкая + 123 + true + true + + true + + + ВажностьНизкаяРасширеннаяПодсказка + 124 + Label + true + true + + Left + + + Form.Command.ВажностьНизкая + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Важность</value> + + true + + ГруппаВажностьРасширеннаяПодсказка + 118 + Label + true + true + + Left + + + Popup + + + CommonPicture.ВажностьНеЗадана + + Picture + Normal + + + true + true + + true + + + <key>ru</key> + <value>Командная панель тема письма</value> + + 5 + false + + КоманднаяПанельТемаПисьмаРасширеннаяПодсказка + 116 + Label + true + true + + Left + + + CommandBar + + Left + + true true true - - ТемаПисьма - - + <key>ru</key> - <value>Тема отправляемого сообщения</value> - </toolTip> - <handlers> - <event>OnChange</event> - <name>УстановитьПризнакМодифицированностиФормы</name> - </handlers> + <value>Группа тема письма</value> + - ТемаПисьмаExtendedTooltip - 53 + ГруппаТемаПисьмаРасширеннаяПодсказка + 114 Label true true @@ -354,24 +535,14 @@ Left - - ТемаПисьмаКонтекстноеМеню - 12 - true - - InputField - Enter - true - Left - true - - 60 - true - true - true - true - true - Normal + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto @@ -1491,6 +1662,22 @@ true + + ВажностьПисьма + 22 + + String + + 10 + + + + true + + + true + + ОтправитьПисьмо @@ -1608,6 +1795,81 @@ <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>ВажностьВысокая</name> + <title> + <key>ru</key> + <value>Высокая важность</value> + + 6 + + ru + Важность высокая + + + true + + + CommonPicture.ВажностьВысокая + + + + ВажностьВысокая + + + DontUse + Auto + + + ВажностьНизкая + + <key>ru</key> + <value>Низкая важность</value> + + 7 + + ru + Важность низкая + + + true + + + CommonPicture.ВажностьНизкая + + + + ВажностьНизкая + + + DontUse + Auto + + + ВажностьОбычная + + <key>ru</key> + <value>Обычная важность</value> + + 8 + + ru + Важность обычная + + + true + + + CommonPicture.ВажностьНеЗадана + + + + ВажностьОбычная + + + DontUse + Auto + Отправитель diff --git a/SSL/src/CommonForms/ОтправкаСообщения/Help/ru.html b/SSL/src/CommonForms/ОтправкаСообщения/Help/ru.html index e98a00ad8..769993416 100644 --- a/SSL/src/CommonForms/ОтправкаСообщения/Help/ru.html +++ b/SSL/src/CommonForms/ОтправкаСообщения/Help/ru.html @@ -17,6 +17,6 @@
            • Для удаления вложения выделите его и нажмите клавишу Del.
          • В поле От автоматически программой будет предложена учетная запись, настроенная для автоматического получения и отправки писем.
          • -
          • В поле Адрес ответа можно задать e-mail адрес, на который получатели письма будут отправлять ответ. Это поле нужно заполнять в том случае, если входящая корреспонденция системной учетной записи не просматривается (например, если учетная запись предназначена только для отправки).

          Отправка

          +
        • В поле Адрес ответа можно задать e-mail адрес, на который получатели письма будут отправлять ответ. Это поле нужно заполнять в том случае, если почта предназначена только для отправки.

        Отправка

        • После окончания работы над электронным сообщением нажмите Отправить.

        См. также:

        \ No newline at end of file diff --git a/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl b/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl index be22dbade..4ac8c3330 100644 --- a/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl +++ b/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl @@ -34,6 +34,7 @@ ТелоПисьма.УстановитьHTML(ТекстВHTML(Параметры.Текст), ВложенияДляПисьма); АдресОтвета = Параметры.АдресОтвета; Предмет = Параметры.Предмет; + ВажностьПисьма = "Обычная"; Если НЕ ЗначениеЗаполнено(Параметры.Отправитель) Тогда // Учетная запись не передана - выбираем первую доступную. @@ -513,6 +514,30 @@ КонецПроцедуры +&НаКлиенте +Процедура ВажностьВысокая(Команда) + ВажностьПисьма = "Высокая"; + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьВысокая; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Высокая важность'"); + Модифицированность = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОбычная(Команда) + ВажностьПисьма = "Обычная"; + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНеЗадана; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Обычная важность'"); + Модифицированность = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьНизкая(Команда) + ВажностьПисьма = "Низкая"; + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНизкая; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Низкая важность'"); + Модифицированность = Истина; +КонецПроцедуры + // СтандартныеПодсистемы.ШаблоныСообщений &НаКлиенте @@ -784,6 +809,8 @@ ПараметрыПисьма.Вставить("Тело", ТелоПисьма); ПараметрыПисьма.Вставить("Вложения", Вложения()); + ПараметрыПисьма.Вставить("Важность", ?(ЗначениеЗаполнено(ВажностьПисьма), + ВажностьИнтернетПочтовогоСообщения[ВажностьПисьма], ВажностьИнтернетПочтовогоСообщения.Обычная)); Возврат ПараметрыПисьма; diff --git a/SSL/src/CommonForms/ПанельОтчетов/Form.form b/SSL/src/CommonForms/ПанельОтчетов/Form.form index 27226172f..e3724bc34 100644 --- a/SSL/src/CommonForms/ПанельОтчетов/Form.form +++ b/SSL/src/CommonForms/ПанельОтчетов/Form.form @@ -94,6 +94,48 @@ ГруппаКоманднаяПанельПравая 405 + + ОтображатьВсеВариантыОтчетов + 447 + + <key>ru</key> + <value>Отображать для смартфонов</value> + + true + + true + + + ОтображатьВсеВариантыОтчетов + + Right + + OnChange + ОтображатьВсеВариантыОтчетовПриИзменении + + + ОтображатьВсеВариантыОтчетовРасширеннаяПодсказка + 449 + Label + true + true + + Left + + + + ОтображатьВсеВариантыОтчетовКонтекстноеМеню + 448 + true + + CheckBoxField + Center + Enter + true + Left + true + + ПоказыватьПодсказки 407 @@ -217,6 +259,56 @@ Auto InAdditionalSubmenu + + ГруппаСнимкиОтчетов + 450 + + СнимкиОтчетов + 454 + true + true + + true + + + СнимкиОтчетовРасширеннаяПодсказка + 455 + Label + true + true + + Left + + + Form.Command.СнимкиОтчетов + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Снимки отчетов</value> + + + ГруппаСнимкиОтчетовРасширеннаяПодсказка + 451 + Label + true + true + + Left + + + + Настройки 418 @@ -428,9 +520,14 @@ Left - CommandBar - - Left + UsualGroup + + HorizontalIfPossible + WeakSeparation + true + true + Auto + Auto @@ -1985,6 +2082,19 @@ true + + ВидимостьПоНазначению + 29 + + Boolean + + + true + + + true + + ПостоянныеРеквизиты @@ -2407,6 +2517,36 @@ true + + ОтображатьВсеВариантыОтчетов + + <key>ru</key> + <value>Все варианты отчетов</value> + + 3 + + Boolean + + + true + + + true + + + + ЦветСкрытыхПоНазначениюВариантов + 13 + + Color + + + true + + + true + + Настроить @@ -2606,6 +2746,32 @@ <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>СнимкиОтчетов</name> + <title> + <key>ru</key> + <value>Снимки отчетов</value> + + 10 + + ru + Список снимков отчетов + + + true + + + StdPicture.ListViewModeList + + + + СнимкиОтчетов + + + TextPicture + Auto + Auto + ПутьКПодсистеме diff --git a/SSL/src/CommonForms/ПанельОтчетов/Help/ru.html b/SSL/src/CommonForms/ПанельОтчетов/Help/ru.html index 178f450f7..a953db882 100644 --- a/SSL/src/CommonForms/ПанельОтчетов/Help/ru.html +++ b/SSL/src/CommonForms/ПанельОтчетов/Help/ru.html @@ -1,10 +1,10 @@ - +

        Выводит варианты отчетов, размещенные в разделе или группах раздела программы.

        Открыть панель отчетов можно по соответствующей команде из разделов программы, например, в разделе Администрирование - Обслуживание - Отчеты и обработки предусмотрена команда Отчеты администратора.

        Панель отчетов позволяет работать с отчетами из одного места и группирует варианты отчетов по группам командного интерфейса. Работа с панелью отчетов ведется в двух режимах:

        -

        Режим просмотра

        • При первом открытии панели отчетов выводится оповещение о том, что к отчетам выводятся описания. Программа предоставляет возможность выбрать - оставить описания или отключить. Также можно это сделать в режиме настройки.
        • Группы панели отчетов соответствуют группам раздела программы, в котором располагается отчет. @@ -35,11 +35,11 @@
          • Нажмите левой кнопкой мыши по наименованию отчета.

          Отмена настроек панели отчетов

          • Нажмите Еще - Сбросить мои настройки, для того чтобы вернуться к настройкам панели отчетов по умолчанию, если отчеты были размещены ошибочно.

          Все отчеты

          • Нажмите Все отчеты для перехода к списку всех отчетов. В списке можно настроить варианты отчетов и их размещение во всех разделах программы.

          Режим настройки

          -
          • Перейти в этот режим можно с помощью кнопки Настройки (клавиши F2). -
          • -
          • Настроить вывод описаний вариантов отчетов можно с помощью флажка Описания отчетов. -
          • -
          • С помощью флажков можно управлять видимостью варианта отчета в группе. +
            • Перейти в этот режим можно с помощью кнопки Настройки (клавиши F2). 
            • +
            • +
              С помощью флажка Отображать для смартфонов можно дополнительно вывести варианты отчетов с назначением Для смартфонов, которые оптимизированы под устройства с узким экраном.
              +
              • Варианты отчетов, которые не относятся к вариантам по умолчанию отображаются в панели отчетов бежевым цветом. 
            • +
            • Настроить вывод описаний вариантов отчетов можно с помощью флажка Описания отчетов.
            • С помощью флажков можно управлять видимостью варианта отчета в группе.
            • При помощи контекстного меню по правой кнопке мыши вариант отчета можно переместить в быстрый доступ или открыть его для изменения наименования, описания или настроек размещения:
              diff --git a/SSL/src/CommonForms/ПанельОтчетов/Module.bsl b/SSL/src/CommonForms/ПанельОтчетов/Module.bsl index 7f72d2435..bf0ccc9fd 100644 --- a/SSL/src/CommonForms/ПанельОтчетов/Module.bsl +++ b/SSL/src/CommonForms/ПанельОтчетов/Module.bsl @@ -16,7 +16,12 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ПредставлениеИстина = НСтр("ru='Все варианты отчетов'"); + ПредставлениеЛожь = НСтр("ru='Для компьютеров и планшетов'"); + Элементы.ОтображатьВсеВариантыОтчетов.ФорматРедактирования = "БЛ='" + ПредставлениеЛожь + "'; БИ='" + + ПредставлениеИстина + "'"; ОпределитьПоведениеВМобильномКлиенте(); + Если Не ЗначениеЗаполнено(Параметры.ПутьКПодсистеме) Тогда Параметры.ПутьКПодсистеме = ВариантыОтчетовКлиентСервер.ИдентификаторНачальнойСтраницы(); КонецЕсли; @@ -29,6 +34,7 @@ ЭлементыСтиля = Метаданные.ЭлементыСтиля; ЦветСкрытыхВариантов = ЭлементыСтиля.СкрытыйВариантОтчетаЦвет.Значение; + ЦветСкрытыхПоНазначениюВариантов = ЭлементыСтиля.ЗаблокированныйРеквизитЦвет.Значение; ЦветВидимыхВариантов = ЭлементыСтиля.ГиперссылкаЦвет.Значение; ЦветПодсветкиНайденныхСлов = ЭлементыСтиля.ФонРезультатовПоиска.Значение; ЦветПодсказки = ЭлементыСтиля.ПоясняющийТекст.Значение; @@ -138,10 +144,11 @@ ПараметрыКлиента.Обновлять = Истина; ИначеЕсли ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияИзменениеОбщихНастроек() Тогда Если Изменения.ПоказыватьПодсказки <> ПоказыватьПодсказки + Или Изменения.ОтображатьВсеВариантыОтчетов <> ОтображатьВсеВариантыОтчетов Или Изменения.ИскатьВоВсехРазделах <> ИскатьВоВсехРазделах Тогда ПараметрыКлиента.Обновлять = Истина; КонецЕсли; - ЗаполнитьЗначенияСвойств(ЭтотОбъект, Изменения, "ПоказыватьПодсказки,ИскатьВоВсехРазделах"); + ЗаполнитьЗначенияСвойств(ЭтотОбъект, Изменения, "ПоказыватьПодсказки,ИскатьВоВсехРазделах,ОтображатьВсеВариантыОтчетов"); КонецЕсли; Если ПараметрыКлиента.Обновлять Тогда ПодключитьОбработчикОжидания("ОбновитьПанельОтчетовПоТаймеру", 1, Истина); @@ -248,6 +255,8 @@ Раздел = Найденные[0]; ПутьКПодсистеме = СтрЗаменить(Раздел.ПолноеИмя, "Подсистема.", ""); + + ПутьКПодсистеме = ?(ПустаяСтрока(ПутьКПодсистеме), "НеВключенныеВРазделы", ПутьКПодсистеме); ФормаПараметры = Новый Структура; ФормаПараметры.Вставить("ПутьКПодсистеме", ПутьКПодсистеме); @@ -276,6 +285,18 @@ ОбщиеНастройки = Новый Структура; ОбщиеНастройки.Вставить("ПоказыватьПодсказки", ПоказыватьПодсказки); ОбщиеНастройки.Вставить("ИскатьВоВсехРазделах", ИскатьВоВсехРазделах); + ОбщиеНастройки.Вставить("ОтображатьВсеВариантыОтчетов", ОтображатьВсеВариантыОтчетов); + Оповестить(ВариантыОтчетовКлиент.ИмяСобытияИзменениеОбщихНастроек(), ОбщиеНастройки, ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура ОтображатьВсеВариантыОтчетовПриИзменении(Элемент) + ОбновитьПанельОтчетовНаКлиенте("ОтображатьВсеВариантыОтчетовПриИзменении"); + + ОбщиеНастройки = Новый Структура; + ОбщиеНастройки.Вставить("ПоказыватьПодсказки", ПоказыватьПодсказки); + ОбщиеНастройки.Вставить("ИскатьВоВсехРазделах", ИскатьВоВсехРазделах); + ОбщиеНастройки.Вставить("ОтображатьВсеВариантыОтчетов", ОтображатьВсеВариантыОтчетов); Оповестить(ВариантыОтчетовКлиент.ИмяСобытияИзменениеОбщихНастроек(), ОбщиеНастройки, ЭтотОбъект); КонецПроцедуры @@ -394,6 +415,15 @@ ОбновитьПанельОтчетовНаКлиенте("ВыполнитьПоиск"); КонецПроцедуры +&НаКлиенте +Процедура СнимкиОтчетов(Команда) + + ОткрытьФорму("РегистрСведений.СнимкиОтчетов.ФормаСписка", + Новый Структура("Пользователь", + ПользователиКлиент.ТекущийПользователь())); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -404,7 +434,8 @@ &НаКлиенте Процедура ПоказатьСкрытьВариант(Вариант, Элемент, Показать) Вариант.Видимость = Показать; - Элемент.ЦветТекста = ?(Показать, ЦветВидимыхВариантов, ЦветСкрытыхВариантов); + Элемент.ЦветТекста = ?(Показать, ?(Вариант.ВидимостьПоНазначению, ЦветВидимыхВариантов, + ЦветСкрытыхПоНазначениюВариантов), ЦветСкрытыхВариантов); ЭтотОбъект["Флажок_"+ Вариант.НадписьИмя] = Показать; Если Вариант.Важный Тогда Если Показать Тогда @@ -657,18 +688,22 @@ КонецЕсли; КонецЕсли; ИначеЕсли Событие = "ПоказыватьПодсказкиПриИзменении" + Или Событие = "ОтображатьВсеВариантыОтчетовПриИзменении" Или Событие = "ИскатьВоВсехРазделахПриИзменении" Тогда ОбщиеНастройки = Новый Структура; ОбщиеНастройки.Вставить("ПоказыватьПодсказки", ПоказыватьПодсказки); ОбщиеНастройки.Вставить("ИскатьВоВсехРазделах", ИскатьВоВсехРазделах); + ОбщиеНастройки.Вставить("ОтображатьВсеВариантыОтчетов", ОтображатьВсеВариантыОтчетов); ВариантыОтчетов.СохранитьОбщиеНастройкиПанели(ОбщиеНастройки); КонецЕсли; Элементы.ПоказыватьПодсказки.Видимость = РежимНастройки; + Элементы.ОтображатьВсеВариантыОтчетов.Видимость = РежимНастройки; Элементы.БыстрыйДоступШапкаНадпись.ОтображениеПодсказки = ?(РежимНастройки, ОтображениеПодсказки.Кнопка, ОтображениеПодсказки.Нет); Элементы.РезультатыПоискаИзДругихРазделовГруппа.Видимость = (ИскатьВоВсехРазделах = 1); Элементы.Настроить.Пометка = РежимНастройки; + Элементы.ГруппаСнимкиОтчетов.Видимость = ПравоДоступа("Редактирование", Метаданные.РегистрыСведений.СнимкиОтчетов); // Заголовок. СуффиксРежимаНастройки = " (" + НСтр("ru = 'настройка'") + ")"; @@ -731,6 +766,12 @@ Элементы.БыстрыйДоступШапкаНадпись.РасширеннаяПодсказка.Заголовок = СтрЗаменить(Элементы.БыстрыйДоступШапкаНадпись.РасширеннаяПодсказка.Заголовок, ПодстрокаПоиска, ПодстрокаЗамены); + + Элементы.Переместить(Элементы.ОтображатьВсеВариантыОтчетов, Элементы.ВерхняяПанельМобильныйКлиент, + Элементы.ПоказыватьПодсказки); + Элементы.ОтображатьВсеВариантыОтчетов.Заголовок = НСтр("ru='Отображать для компьютеров и планшетов'"); + Элементы.ОтображатьВсеВариантыОтчетов.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Право; + КонецПроцедуры &НаСервере @@ -808,7 +849,6 @@ ВсеПодсистемы = ВариантыОтчетовПовтИсп.ПодсистемыТекущегоПользователя().Дерево; ВсеРазделы = ВсеПодсистемы.Строки[0].Строки; ПодсистемыПоСсылке = Новый Соответствие; - Для Каждого СтрокаРаздел Из ВсеРазделы Цикл СтрокаТаблицы = ПодсистемыПрограммы.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТаблицы, СтрокаРаздел); @@ -848,6 +888,22 @@ КонецЦикла; КонецЦикла; + СтрокаТаблицы = ПодсистемыПрограммы.Добавить(); + СтрокаТаблицы.ИмяЭлемента = "НеВключенныеВРазделы"; + СтрокаТаблицы.Имя = "НеВключенныеВРазделы"; + СтрокаТаблицы.Представление = НСтр("ru = 'Не включенные в разделы'"); + СтрокаТаблицы.НомерЭлемента = 0; + СтрокаТаблицы.РазделСсылка = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + СтрокаТаблицы.РодительСсылка = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + СтрокаТаблицы.Ссылка = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + СтрокаТаблицы.Приоритет = "999"; + ПодсистемыПоСсылке.Вставить(Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(), СтрокаТаблицы.ПолучитьИдентификатор()); + + Если Параметры.ПутьКПодсистеме = "НеВключенныеВРазделы" Тогда + ТекущийРазделСсылка = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + ЗаголовокПанели = НСтр("ru = 'Отчеты, не включенные в разделы'"); + КонецЕсли; + Если ТекущийРазделСсылка = Неопределено Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Для панели отчетов указан несуществующий раздел ""%1"" (см. %2).'"), @@ -863,7 +919,7 @@ &НаСервере Процедура ЗагрузитьВсеНастройки() ОбщиеНастройки = ВариантыОтчетов.ОбщиеНастройкиПанели(); - ЗаполнитьЗначенияСвойств(ЭтотОбъект, ОбщиеНастройки, "ПоказыватьПодсказки,ИскатьВоВсехРазделах"); + ЗаполнитьЗначенияСвойств(ЭтотОбъект, ОбщиеНастройки, "ПоказыватьПодсказки,ИскатьВоВсехРазделах,ОтображатьВсеВариантыОтчетов"); ЛокальныеНастройки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), @@ -898,7 +954,15 @@ ПараметрыПоиска.Вставить("ИскатьВоВсехРазделах", ИскатьВоВсехРазделах); ПараметрыПоиска.Вставить("ТекущийРазделСсылка", ТекущийРазделСсылка); - ТолькоТекущийРаздел = РежимНастройки Или Не ЗначениеЗаполнено(СтрокаПоиска) Или ИскатьВоВсехРазделах = 0; + НазначенияВариантовОтчетов = Новый Массив; + НазначенияВариантовОтчетов.Добавить(Перечисления.НазначенияВариантовОтчетов.ДляЛюбыхУстройств); + НазначенияВариантовОтчетов.Добавить(?(ОбщегоНазначения.ЭтоМобильныйКлиент(), + Перечисления.НазначенияВариантовОтчетов.ДляСмартфонов, + Перечисления.НазначенияВариантовОтчетов.ДляКомпьютеровИПланшетов)); + ПараметрыПоиска.Вставить("НазначенияВариантовОтчетов", НазначенияВариантовОтчетов); + ПараметрыПоиска.Вставить("ОтображатьВсеВариантыОтчетов", ОтображатьВсеВариантыОтчетов); + + ТолькоТекущийРаздел = РежимНастройки Или Не ЗначениеЗаполнено(СтрокаПоиска) Или ИскатьВоВсехРазделах = 0; Если ТолькоТекущийРаздел Тогда ТаблицаПодсистем = ПодсистемыПрограммы.Выгрузить(Новый Структура("РазделСсылка", ТекущийРазделСсылка)); Иначе @@ -1773,11 +1837,13 @@ Если ВидимыхВариантов > 0 Тогда ПодсистемаФормы = НайтиПодсистемуПоСсылке(ЭтотОбъект, СтрокаДерева.ПодсистемаСсылка); + Если ПодсистемаФормы <> Неопределено Тогда ПодсистемаФормы.ВидимыхВариантов = ПодсистемаФормы.ВидимыхВариантов + ВидимыхВариантов; Пока ПодсистемаФормы.Ссылка <> ПодсистемаФормы.РазделСсылка Цикл ПодсистемаФормы = НайтиПодсистемуПоСсылке(ЭтотОбъект, ПодсистемаФормы.РазделСсылка); ПодсистемаФормы.ВидимыхВариантов = ПодсистемаФормы.ВидимыхВариантов + ВидимыхВариантов; КонецЦикла; + КонецЕсли; КонецЕсли; КонецЕсли; @@ -2033,6 +2099,8 @@ Надпись.УстановитьДействие("Нажатие", "Подключаемый_ВариантНажатие"); Если Не Вариант.Видимость Тогда Надпись.ЦветТекста = ЦветСкрытыхВариантов; + ИначеЕсли Не Вариант.ВидимостьПоНазначению Тогда + Надпись.ЦветТекста = ЦветСкрытыхПоНазначениюВариантов; КонецЕсли; Если Вариант.Важный И ПараметрыЗаполнения.ИмяГруппы <> "СмТакже" diff --git a/SSL/src/CommonForms/ПечатьДокументов/Form.form b/SSL/src/CommonForms/ПечатьДокументов/Form.form index da7420539..cace812ac 100644 --- a/SSL/src/CommonForms/ПечатьДокументов/Form.form +++ b/SSL/src/CommonForms/ПечатьДокументов/Form.form @@ -2013,6 +2013,10 @@ OnActivate ТекущаяПечатнаяФормаПриАктивизации + + Selection + ТекущаяПечатнаяФормаВыбор + 30 true 15 @@ -3518,7 +3522,7 @@ 8 ru - Сохранить на диске или в качестве присоединенного файла к объекту + Сохранить на компьютере или в качестве присоединенного файла к объекту true diff --git a/SSL/src/CommonForms/ПечатьДокументов/Help/ru.html b/SSL/src/CommonForms/ПечатьДокументов/Help/ru.html index 03c9f8f87..d6a592199 100644 --- a/SSL/src/CommonForms/ПечатьДокументов/Help/ru.html +++ b/SSL/src/CommonForms/ПечатьДокументов/Help/ru.html @@ -4,15 +4,15 @@

              Предусмотрены следующие возможности:

              Вывод на принтер

              +
            • Настраиваемый комплект.

            Вывод на принтер

            • Нажмите Печать для вывода нужного количества копий сформированной печатной формы на принтер.

            Количество копий

            • Укажите количество Копий. Выбранное количество копий запоминается. Для комплектов документов количество копий зависит от настроек комплекта.

            Редактирование печатной формы

            • С помощью кнопки  Редактирование можно включить режим редактирования этой печатной формы. В этом случае печатная форма будет занята и другие пользователи не смогут ее редактировать. Повторным нажатием кнопки можно отключить режим редактирования.

            Сохранение печатных форм

            -
            • По кнопке Сохранить имеетсявозможность сохранить печатные формы в нужных форматах в папку на компьютере или присоединить к документу. Выберите с помощью переключателя способ сохранения документа и нужные форматы для сохранения.

            Отправка по электронной почте

            +
            • По кнопке Сохранить имеется возможность сохранить печатные формы в нужных форматах в папку на компьютере или присоединить к документу. Выберите с помощью переключателя способ сохранения документа и нужные форматы для сохранения.

            Отправка по электронной почте

            Сформированные печатные формы документа можно Отправить в качестве вложений в электронном письме.

            • Перед отправкой необходимо указать с помощью флажков, в каком формате (или нескольких форматах) нужно отправить документ.
            • @@ -31,7 +31,7 @@
              Из предложенного списка выберите нужный документ, нажмите ОК.

            Редактирование макета

            • Нажмите Еще - Изменить макет, для того чтобы перейти к редактированию макета печатной формы. Печатная форма становится неактивной. После завершения редактирования печатная форма изменится автоматически.

            Переход к списку макетов печатных форм

            • -
              Выполните команду меню Еще - Перейти к макетам печатных форм, для того чтобы открыть список макетов.

            Печать документа со штампом визуализации электронной подписи

            +
            Выполните команду меню Еще - Перейти к макетам печатных форм, для того чтобы открыть список макетов.

          Печать документа со штампом визуализации электронной подписи

          Для добавления штампа визуализации электронной подписи в печатную форму выбранного документа:

          • В списке документов выберите документ и нажмите кнопку Печать.
            @@ -47,8 +47,9 @@
          • в веб-клиенте на запрос расширения для работы с криптографией нажмите Да;
        • -
          По завершении подписи, оставаясь на этом же табличном документе, нажмите Печать - Со штампом электронной подписи.

        Печать комплекта

        -
        • Программа позволяет распечатать комплект различных документов. Печатные формы комплекта выводятся на отдельных страницах, при этом можно просмотреть конкретную форму, выбирая из списка печатных форм слева нужную. Можно изменить количество Копий комплекта.

        Настраиваемый комплект

        +
        По завершении подписи, оставаясь на этом же табличном документе, нажмите Печать - Со штампом электронной подписи.
        +

      Печать комплекта

      +
      • Программа позволяет распечатать комплект различных документов. Печатные формы комплекта выводятся на отдельных страницах, при этом можно просмотреть конкретную форму, выбирая из списка печатных форм слева нужную. Можно изменить количество Копий комплекта.

      Настраиваемый комплект

      В программе предусмотрена возможность выборочной печати комплекта документов.

      • В окне Настраиваемый комплект слева находится панель настройки количества копий, которая состоит из столбцов:
        •   - в этом столбце с помощью флажков производится выбор для печати, diff --git a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl index cd36fd4e8..516bf711b 100644 --- a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl +++ b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl @@ -922,7 +922,7 @@ НовыйЭлемент.ПутьКДанным = ИмяРеквизита; НовыйЭлемент.Вывод = ВычислитьИспользованиеВывода(ОписаниеПечатнойФормы.ТабличныйДокумент); НовыйЭлемент.Редактирование = НовыйЭлемент.Вывод = ИспользованиеВывода.Разрешить И Не ОписаниеПечатнойФормы.ТабличныйДокумент.ТолькоПросмотр; - НовыйЭлемент.Защита = ОписаниеПечатнойФормы.ТабличныйДокумент.Защита Или Не Пользователи.РолиДоступны("РедактированиеПечатныхФорм"); + НовыйЭлемент.Защита = Не Пользователи.РолиДоступны("РедактированиеПечатныхФорм"); // Таблица настроек печатных форм (продолжение). НоваяНастройкаПечатнойФормы.ИмяСтраницы = ИмяСтраницы; @@ -1439,7 +1439,6 @@ &НаСервере Функция НачатьФормированиеЕдиногоДокумента() ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); - ПараметрыВыполнения.ЗапуститьВФоне = Истина; ПараметрыВыполнения.ОжидатьЗавершение = 1; ПараметрыФормирования = Новый Структура("ПереформироватьЕдиныйДокумент", Истина); @@ -2339,6 +2338,49 @@ КонецФункции +&НаКлиенте +Процедура ТекущаяПечатнаяФормаВыбор(Элемент, Область, СтандартнаяОбработка) + + Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") Или ТипЗнч(Область) = Тип("РисунокТабличногоДокумента") Тогда + + Ссылки = Новый Структура("Текст,Расшифровка,Маска","","",""); + ЗаполнитьЗначенияСвойств(Ссылки, Область); + + Если ПерейтиПоСсылке(Ссылки.Текст) Тогда + СтандартнаяОбработка = Ложь; + Возврат; + КонецЕсли; + + Если ПерейтиПоСсылке(Ссылки.Расшифровка) Тогда + СтандартнаяОбработка = Ложь; + Возврат; + КонецЕсли; + + Если ПерейтиПоСсылке(Ссылки.Маска) Тогда + СтандартнаяОбработка = Ложь; + Возврат; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Функция ПерейтиПоСсылке(АдресСсылки) + Если ПустаяСтрока(АдресСсылки) Тогда + Возврат Ложь; + КонецЕсли; + АдресСсылкиВРег = ВРег(АдресСсылки); + Если СтрНачинаетсяС(АдресСсылкиВРег, ВРег("http://")) + Или СтрНачинаетсяС(АдресСсылкиВРег, ВРег("https://")) + Или СтрНачинаетсяС(АдресСсылкиВРег, ВРег("e1cib/")) + Или СтрНачинаетсяС(АдресСсылкиВРег, ВРег("e1c://")) Тогда + ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(АдресСсылки); + Возврат Истина; + КонецЕсли; + Возврат Ложь; +КонецФункции + + #КонецОбласти diff --git a/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Form.form b/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Form.form index ee5085410..ded57d448 100644 --- a/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Form.form +++ b/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Form.form @@ -2252,7 +2252,7 @@ 4 ru - Сохранить на диске или в качестве присоединенного файла к объекту + Сохранить на компьютере или в качестве присоединенного файла к объекту true diff --git a/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl b/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl index b725879e7..b53b55cd0 100644 --- a/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl +++ b/SSL/src/CommonForms/ПечатьДокументовOfficeOpen/Module.bsl @@ -576,7 +576,6 @@ ТаблицаПечатныхФорм.Колонки.Добавить("ФормироватьЗаново", Новый ОписаниеТипов("Булево")); ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); - ПараметрыВыполнения.ЗапуститьВФоне = Истина; ПараметрыВыполнения.ОжидатьЗавершение = 1; ПараметрыФормирования = Новый Структура("ПереформироватьЕдиныйДокумент", Ложь); diff --git a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form index aa34cc156..de82c0dab 100644 --- a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form +++ b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form @@ -185,6 +185,42 @@ Left + + WindowsЯндексБраузер + 184 + + <key>ru</key> + <value>Яндекс Браузер</value> + + true + true + + true + + ShowBottom + + WindowsЯндексБраузерРасширеннаяПодсказка + 186 + Label + true + true + + Left + + + + WindowsЯндексБраузерКонтекстноеМеню + 185 + true + + Label + 10 + true + true + + Left + + true true @@ -342,6 +378,41 @@ + + Windows_x86_ЯндексБраузер + 187 + + <key>ru</key> + <value>Windows x86 яндекс браузер</value> + + true + true + + true + + + Windows_x86_ЯндексБраузерРасширеннаяПодсказка + 189 + Label + true + true + + Left + + + + Windows_x86_ЯндексБраузерКонтекстноеМеню + 188 + true + + true + true + + + CommonPicture.ВнешняяКомпонентаНеДоступна + + + true true @@ -498,6 +569,41 @@ + + Windows_x86_64_ЯндексБраузер + 190 + + <key>ru</key> + <value>Windows x86 64 яндекс браузер</value> + + true + true + + true + + + Windows_x86_64_ЯндексБраузерРасширеннаяПодсказка + 192 + Label + true + true + + Left + + + + Windows_x86_64_ЯндексБраузерКонтекстноеМеню + 191 + true + + true + true + + + CommonPicture.ВнешняяКомпонентаНеДоступна + + + true true @@ -669,6 +775,41 @@ Left + + LinuxЯндексБраузер + 193 + + <key>ru</key> + <value>Яндекс Браузер</value> + + true + true + + true + + + LinuxЯндексБраузерРасширеннаяПодсказка + 195 + Label + true + true + + Left + + + + LinuxЯндексБраузерКонтекстноеМеню + 194 + true + + Label + 10 + true + true + + Left + + true true @@ -794,6 +935,37 @@ + + Linux_x86_ЯндексБраузер + 196 + true + true + + true + + + Linux_x86_ЯндексБраузерРасширеннаяПодсказка + 198 + Label + true + true + + Left + + + + Linux_x86_ЯндексБраузерКонтекстноеМеню + 197 + true + + true + true + + + CommonPicture.ВнешняяКомпонентаНеДоступна + + + true true @@ -919,6 +1091,37 @@ + + Linux_x86_64_ЯндексБраузер + 199 + true + true + + true + + + Linux_x86_64_ЯндексБраузерРасширеннаяПодсказка + 201 + Label + true + true + + Left + + + + Linux_x86_64_ЯндексБраузерКонтекстноеМеню + 200 + true + + true + true + + + CommonPicture.ВнешняяКомпонентаНеДоступна + + + true true @@ -1122,6 +1325,40 @@ Left + + MacOSЯндексБраузер + 202 + + <key>ru</key> + <value>Яндекс Браузер</value> + + true + true + + true + + + MacOSЯндексБраузерРасширеннаяПодсказка + 204 + Label + true + true + + Left + + + + MacOSЯндексБраузерКонтекстноеМеню + 203 + true + + Label + true + true + + Left + + true true @@ -1278,6 +1515,37 @@ + + MacOS_x86_64_ЯндексБраузер + 205 + true + true + + true + + + MacOS_x86_64_ЯндексБраузерРасширеннаяПодсказка + 207 + Label + true + true + + Left + + + + MacOS_x86_64_ЯндексБраузерКонтекстноеМеню + 206 + true + + true + true + + + CommonPicture.ВнешняяКомпонентаНеДоступна + + + true true @@ -1629,6 +1897,71 @@ true + + MacOS_x86_64_ЯндексБраузер + 17 + + Boolean + + + true + + + true + + + + Windows_x86_ЯндексБраузер + 18 + + Boolean + + + true + + + true + + + + Windows_x86_64_ЯндексБраузер + 19 + + Boolean + + + true + + + true + + + + Linux_x86_ЯндексБраузер + 20 + + Boolean + + + true + + + true + + + + Linux_x86_64_ЯндексБраузер + 21 + + Boolean + + + true + + + true + + ПоддерживаемыеКлиенты diff --git a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl index d24853150..8beae42f4 100644 --- a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl +++ b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl @@ -36,6 +36,12 @@ Элементы.MacOS_x86_64_Safari.Картинка = ?(MacOS_x86_64_Safari, КартинкаДоступна, КартинкаНеДоступна); Элементы.MacOS_x86_64_Chrome.Картинка = ?(MacOS_x86_64_Chrome, КартинкаДоступна, КартинкаНеДоступна); Элементы.MacOS_x86_64_Firefox.Картинка = ?(MacOS_x86_64_Firefox, КартинкаДоступна, КартинкаНеДоступна); + Элементы.Windows_x86_ЯндексБраузер.Картинка = ?(Windows_x86_ЯндексБраузер, КартинкаДоступна, КартинкаНеДоступна); + Элементы.Windows_x86_64_ЯндексБраузер.Картинка = ?(Windows_x86_64_ЯндексБраузер, КартинкаДоступна, КартинкаНеДоступна); + Элементы.Linux_x86_ЯндексБраузер.Картинка = ?(Linux_x86_ЯндексБраузер, КартинкаДоступна, КартинкаНеДоступна); + Элементы.Linux_x86_64_ЯндексБраузер.Картинка = ?(Linux_x86_64_ЯндексБраузер, КартинкаДоступна, КартинкаНеДоступна); + Элементы.MacOS_x86_64_ЯндексБраузер.Картинка = ?(MacOS_x86_64_ЯндексБраузер, КартинкаДоступна, КартинкаНеДоступна); + КонецПроцедуры diff --git a/SSL/src/CommonForms/ПродлениеСрокаДействияЭлектронныхПодписей/Module.bsl b/SSL/src/CommonForms/ПродлениеСрокаДействияЭлектронныхПодписей/Module.bsl index 87a0e8f0b..859a5ad5e 100644 --- a/SSL/src/CommonForms/ПродлениеСрокаДействияЭлектронныхПодписей/Module.bsl +++ b/SSL/src/CommonForms/ПродлениеСрокаДействияЭлектронныхПодписей/Module.bsl @@ -23,8 +23,8 @@ Элементы.ТипПодписи.Видимость = Ложь; Элементы.ДекорацияУсовершенствование.Видимость = Истина; Элементы.ДекорацияУсовершенствование.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru='Подписи будут усовершенствованы до типа - |%1'"), ТипПодписи); + НСтр("ru='Подписи будут усовершенствованы до типа + |%1'"), ТипПодписи); ИначеЕсли Параметры.РежимПродления = "ТребуетсяДобавитьАрхивныеМетки" Тогда Элементы.ДобавитьАрхивнуюМеткуВремени.Видимость = Ложь; Элементы.ДекорацияДобавлениеМетокВремени.Видимость = Истина; diff --git a/SSL/src/CommonForms/РазблокированиеРеквизитов/Module.bsl b/SSL/src/CommonForms/РазблокированиеРеквизитов/Module.bsl index a6db43b0e..9c85e2e43 100644 --- a/SSL/src/CommonForms/РазблокированиеРеквизитов/Module.bsl +++ b/SSL/src/CommonForms/РазблокированиеРеквизитов/Module.bsl @@ -319,6 +319,8 @@ ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Разблокирование реквизитов: Проверка использования ссылок на объекты'"); + // Всегда в фоне (очередь заданий в файловом варианте), так как результат не требуется срочно, операция редкая, + // а блокировать интерфейс выполнением в сеансе избыточно, так как поиск ссылок на объект выполняется долго. ПараметрыВыполнения.ЗапуститьВФоне = Истина; ПараметрыВыполнения.ОжидатьЗавершение = 0; diff --git a/SSL/src/CommonForms/Расширения/Form.form b/SSL/src/CommonForms/Расширения/Form.form index e018a12d8..62277f016 100644 --- a/SSL/src/CommonForms/Расширения/Form.form +++ b/SSL/src/CommonForms/Расширения/Form.form @@ -20,7 +20,7 @@ 59 <key>ru</key> - <value>Добавить из файла на диске...</value> + <value>Добавить из файла на компьютере...</value> Label true @@ -2241,7 +2241,7 @@ 1 ru - Обновить из файла на диске... + Обновить из файла на компьютере... true diff --git a/SSL/src/CommonForms/Расширения/Module.bsl b/SSL/src/CommonForms/Расширения/Module.bsl index daebec5b2..425534263 100644 --- a/SSL/src/CommonForms/Расширения/Module.bsl +++ b/SSL/src/CommonForms/Расширения/Module.bsl @@ -41,7 +41,7 @@ Элементы.СписокРасширенийОбщее.Видимость = ОбщегоНазначения.РазделениеВключено() И ПравоДоступа("Администрирование", Метаданные); Элементы.СписокРасширенийПолученоИзГлавногоУзлаРИБ.Видимость = ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ(); - Элементы.СписокРасширенийПередаватьВПодчиненныеУзлыРИБ.Видимость = СтандартныеПодсистемыПовтИсп.ИспользуетсяРИБ(); + Элементы.СписокРасширенийПередаватьВПодчиненныеУзлыРИБ.Видимость = ОбщегоНазначения.ЭтоРаспределеннаяИнформационнаяБаза(); Элементы.ФормаУстановленныеПатчи.Видимость = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации"); diff --git a/SSL/src/CommonForms/РасширенноеПредставлениеОшибки/Module.bsl b/SSL/src/CommonForms/РасширенноеПредставлениеОшибки/Module.bsl index cfd40b6b4..872342845 100644 --- a/SSL/src/CommonForms/РасширенноеПредставлениеОшибки/Module.bsl +++ b/SSL/src/CommonForms/РасширенноеПредставлениеОшибки/Module.bsl @@ -254,7 +254,16 @@ ДополнительныеДанныеДляКлассификатораОшибок = ЭлектроннаяПодписьСлужебныйКлиент.ДополнительныеДанныеДляКлассификатораОшибок(); Сертификат = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные, "Сертификат", Неопределено); Если ЗначениеЗаполнено(Сертификат) Тогда - Если ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда + Если ТипЗнч(Сертификат) = Тип("Массив") Тогда + Если Сертификат.Количество() > 0 Тогда + Если ТипЗнч(Сертификат[0]) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда + ДополнительныеДанныеДляКлассификатораОшибок.Сертификат = Сертификат[0]; + ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата(Сертификат[0], УникальныйИдентификатор); + Иначе + ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = Сертификат[0]; + КонецЕсли; + КонецЕсли; + ИначеЕсли ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда ДополнительныеДанныеДляКлассификатораОшибок.Сертификат = Сертификат; ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата(Сертификат, УникальныйИдентификатор); ИначеЕсли ТипЗнч(Сертификат) = Тип("ДвоичныеДанные") Тогда diff --git a/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl b/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl index 23b26e6dc..c91743059 100644 --- a/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl @@ -1621,7 +1621,7 @@ | Ссылка УБЫВ"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Таблица", ОбъектМетаданных.ПолноеИмя()); - Запрос = Новый Запрос(ТекстЗапроса);; + Запрос = Новый Запрос(ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Образец = Выборка.Ссылка; diff --git a/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl b/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl index c2cf3785b..ee708177d 100644 --- a/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl @@ -168,7 +168,8 @@ |Возможно у объекта не заполнены необходимые реквизиты.'")); Иначе ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("ПоказатьДополнительныеСведения"); + ПараметрыФормы.Вставить("ВидСвойств", + ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеСведения")); ОткрытьФорму("Справочник.НаборыДополнительныхРеквизитовИСведений.ФормаСписка", ПараметрыФормы); @@ -176,6 +177,8 @@ ПараметрыПерехода.Вставить("Набор", ДоступныеНаборыСвойств[0].Значение); ПараметрыПерехода.Вставить("Свойство", Неопределено); ПараметрыПерехода.Вставить("ЭтоДополнительноеСведение", Истина); + ПараметрыПерехода.Вставить("ВидСвойств", + ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеСведения")); Если Элементы.ТаблицаЗначенийСвойств.ТекущиеДанные <> Неопределено Тогда ПараметрыПерехода.Вставить("Набор", Элементы.ТаблицаЗначенийСвойств.ТекущиеДанные.Набор); @@ -215,7 +218,7 @@ ЗначениеДоступа = Тип("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения"); Таблица = УправлениеСвойствамиСлужебный.ЗначенияСвойств( - ЗначенияСвойств, ДоступныеНаборыСвойств, Истина); + ЗначенияСвойств, ДоступныеНаборыСвойств, Перечисления.ВидыСвойств.ДополнительныеСведения); ПроверятьПрава = Не Пользователи.ЭтоПолноправныйПользователь() И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом"); diff --git a/SSL/src/CommonForms/РедактированиеМеток/Form.form b/SSL/src/CommonForms/РедактированиеМеток/Form.form new file mode 100644 index 000000000..0bc632979 --- /dev/null +++ b/SSL/src/CommonForms/РедактированиеМеток/Form.form @@ -0,0 +1,704 @@ + + + + <key>ru</key> + <value>Метки</value> + + + Метки + 1 + true + true + + true + + + Метки + + None + Add + CancelSearch + Change + Copy + CopyToClipboard + Delete + Find + FindByCurrentValue + SearchEverywhere + SelectAll + ShowMultipleSelection + + ГруппаМетки + 36 + + МеткиЗначение + 17 + true + true + + true + + + Метки.Значение + + + МеткиЗначениеРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + + МеткиЗначениеКонтекстноеМеню + 18 + true + + CheckBoxField + Enter + true + Left + true + + + + МеткиНаименование + 29 + true + true + + true + + + Метки.Свойство.Description + + + МеткиНаименованиеРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + + МеткиНаименованиеКонтекстноеМеню + 30 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Метки</value> + + 20 + + ГруппаМеткиРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + None + + МеткиКоманднаяПанель + 2 + Left + true + + + OnChange + МеткиПриИзменении + + + МеткиСтрокаПоиска + 5 + + МеткиСтрокаПоискаРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + + МеткиСтрокаПоискаКонтекстноеМеню + 6 + true + + Метки + + true + + + + МеткиСостояниеПросмотра + 11 + + МеткиСостояниеПросмотраРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + + МеткиСостояниеПросмотраКонтекстноеМеню + 12 + true + + ViewStatusAddition + Метки + + true + + + + МеткиУправлениеПоиском + 8 + + МеткиУправлениеПоискомРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + + МеткиУправлениеПоискомКонтекстноеМеню + 9 + true + + SearchControlAddition + Метки + + true + + + + МеткиРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + + МеткиКонтекстноеМеню + 3 + + МеткиКонтекстноеМенюСоздать + 38 + true + true + + true + + + МеткиКонтекстноеМенюСоздатьРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + Form.Command.Создать + Normal + Auto + true + true + UserCmds + Auto + + + МеткиКонтекстноеМенюИзменить + 40 + true + true + + true + + + МеткиКонтекстноеМенюИзменитьРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + Form.Command.Изменить + Normal + Auto + true + true + UserCmds + Auto + + + МеткиКонтекстноеМенюУстановитьВсе + 42 + true + true + + true + + + МеткиКонтекстноеМенюУстановитьВсеРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + Form.Command.УстановитьВсе + Normal + Auto + true + true + UserCmds + Auto + + + МеткиКонтекстноеМенюСнятьВсе + 44 + true + true + + true + + + МеткиКонтекстноеМенюСнятьВсеРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + Form.Command.СнятьВсе + Normal + Auto + true + true + UserCmds + Auto + + true + + true + true + true + true + true + MultiRow + 1 + AutoUse + true + true + false + false + false + Auto + Auto + true + true + AsFileRef + + Метки.НомерКартинки + + + CommonPicture.ПиктограммыСвойств + + Top + None + true + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ОК + 32 + + <key>ru</key> + <value>ОК</value> + + true + true + + true + + + ОКРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + Form.Command.ЗавершитьРедактирование + Auto + true + true + true + UserCmds + Auto + + + Отмена + 34 + + <key>ru</key> + <value>Отмена</value> + + true + true + + true + + + ОтменаРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + Form.Command.ОтметитьРедактирование + Normal + Auto + true + true + UserCmds + Auto + + Right + + + NotificationProcessing + ОбработкаОповещения + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + Vertical + true + true + true + auto + true + + Метки + + <key>ru</key> + <value>Метки</value> + + 1 + + ValueTable + + + true + + + true + + + Свойство + 1 + + ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + + + true + + + true + + + + Значение + + <key>ru</key> + <value>Значение</value> + + 3 + + Boolean + + + true + + + true + + + + НомерКартинки + 6 + + Number + + 2 + + + + true + + + true + + + + Набор + 8 + + CatalogRef.НаборыДополнительныхРеквизитовИСведений + + + true + + + true + + + + + ДоступныеНаборыСвойств + 3 + + ValueList + + + true + + + true + + + + + + + СсылкаНаОбъект + 9 + + AnyRef + + + true + + + true + + + + МеткиОбъекта + 10 + + ValueList + + + true + + + true + + + + + + + ЗавершитьРедактирование + + <key>ru</key> + <value>Завершить редактирование</value> + + 2 + + true + + + + ЗавершитьРедактирование + + + Auto + Auto + + + ОтметитьРедактирование + + <key>ru</key> + <value>Отметить редактирование</value> + + 3 + + true + + + + ОтметитьРедактирование + + + Auto + Auto + + + Создать + + <key>ru</key> + <value>Новая</value> + + 5 + + ru + Создать новую метку + + + true + + + StdPicture.CreateListItem + + + + Создать + + + Text + DontUse + Auto + + + Изменить + + <key>ru</key> + <value>Изменить</value> + + 7 + + ru + Изменить (или открыть) метку + + + true + + + StdPicture.Change + + + + Изменить + + + Text + DontUse + Auto + + + УстановитьВсе + + <key>ru</key> + <value>Установить все</value> + + 8 + + true + + + StdPicture.CheckAll + + + + УстановитьВсе + + + Auto + Auto + + + СнятьВсе + + <key>ru</key> + <value>Снять все</value> + + 9 + + true + + + StdPicture.UncheckAll + + + + СнятьВсе + + + Auto + Auto + + + + + + diff --git a/SSL/src/CommonForms/РедактированиеМеток/Module.bsl b/SSL/src/CommonForms/РедактированиеМеток/Module.bsl new file mode 100644 index 000000000..f8841f1b7 --- /dev/null +++ b/SSL/src/CommonForms/РедактированиеМеток/Module.bsl @@ -0,0 +1,195 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + СсылкаНаОбъект = Параметры.ОписаниеОбъекта.Ссылка; + Если Не ЗначениеЗаполнено(СсылкаНаОбъект) Тогда + Возврат; + КонецЕсли; + + Если Не ПравоДоступа("Изменение", Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений) Тогда + Элементы.МеткиКонтекстноеМенюСоздать.Видимость = Ложь; + Элементы.МеткиКонтекстноеМенюИзменить.Видимость = Ложь; + КонецЕсли; + + Если Не ПравоДоступа("Изменение", Метаданные.НайтиПоТипу(ТипЗнч(СсылкаНаОбъект))) Тогда + Элементы.МеткиЗначение.Доступность = Ложь; + Элементы.МеткиКонтекстноеМенюУстановитьВсе.Видимость = Ложь; + Элементы.МеткиКонтекстноеМенюСнятьВсе.Видимость = Ложь; + КонецЕсли; + + // Получение списка доступных наборов свойств. + НаборыСвойств = УправлениеСвойствамиСлужебный.ПолучитьНаборыСвойствОбъекта(СсылкаНаОбъект); + Для каждого Строка Из НаборыСвойств Цикл + ДоступныеНаборыСвойств.Добавить(Строка.Набор); + КонецЦикла; + + МеткиОбъекта.ЗагрузитьЗначения(УправлениеСвойствами.СвойстваПоВидуДополнительныхРеквизитов( + Параметры.ОписаниеОбъекта.ДополнительныеРеквизиты.Выгрузить(), + Перечисления.ВидыСвойств.Метки)); + + // Заполнение таблицы меток. + ЗаполнитьМетки(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + // Перезаполнение таблицы меток. + Если ИмяСобытия = "Запись_ДополнительныеРеквизитыИСведения" Тогда + ЗаполнитьМетки(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаЗначенийСвойств + +&НаКлиенте +Процедура МеткиПриИзменении(Элемент) + + Модифицированность = Истина; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ЗавершитьРедактирование(Команда) + + ПараметрыОповещения = Новый Структура; + ПараметрыОповещения.Вставить("Владелец", ВладелецФормы); + ПараметрыОповещения.Вставить("УстановленныеМетки", УстановленныеМетки(Метки)); + Оповестить("Запись_ИзменениеМеток", ПараметрыОповещения); + + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОтметитьРедактирование(Команда) + + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура Создать(Команда) + + ТекущиеДанные = Элементы.Метки.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Если ДоступныеНаборыСвойств.Количество() = 0 Тогда + Возврат; + КонецЕсли; + НаборСвойств = ДоступныеНаборыСвойств[0].Значение; + Иначе + НаборСвойств = ТекущиеДанные.Набор; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("НаборСвойств", НаборСвойств); + ПараметрыФормы.Вставить("ВидСвойств", ПредопределенноеЗначение("Перечисление.ВидыСвойств.Метки")); + ПараметрыФормы.Вставить("ТекущийНаборСвойств", НаборСвойств); + + ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ФормаОбъекта", + ПараметрыФормы, ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура Изменить(Команда) + + ТекущиеДанные = Элементы.Метки.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Ключ", ТекущиеДанные.Свойство); + ПараметрыФормы.Вставить("ТекущийНаборСвойств", ТекущиеДанные.Набор); + + ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ФормаОбъекта", + ПараметрыФормы, ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьВсе(Команда) + + УстановитьСнятьВсе(Метки, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура СнятьВсе(Команда) + + УстановитьСнятьВсе(Метки, Ложь); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ЗаполнитьМетки() + + Метки.Очистить(); + МеткиСсылки = УправлениеСвойствамиСлужебный.ЗначенияСвойств( + СсылкаНаОбъект.ДополнительныеРеквизиты, + ДоступныеНаборыСвойств, + Перечисления.ВидыСвойств.Метки); + + Для Каждого Метка Из МеткиСсылки Цикл + Если Метка.Удалено Тогда + Продолжить; + КонецЕсли; + НоваяСтрока = Метки.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, Метка); + МеткаОбъекта = МеткиОбъекта.НайтиПоЗначению(Метка.Свойство); + Если МеткаОбъекта = Неопределено Тогда + НоваяСтрока.Значение = Ложь; + Иначе + НоваяСтрока.Значение = Истина; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Функция УстановленныеМетки(Метки) + + УстановленныеМетки = Новый Массив; + Для Каждого Метка Из Метки Цикл + Если Метка.Значение Тогда + УстановленныеМетки.Добавить(Метка.Свойство); + КонецЕсли; + КонецЦикла; + + Возврат УстановленныеМетки; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Процедура УстановитьСнятьВсе(Метки, Установить) + + Для Каждого Метка Из Метки Цикл + Метка.Значение = Установить; + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonForms/РедактированиеМеток/РедактированиеМеток.mdo b/SSL/src/CommonForms/РедактированиеМеток/РедактированиеМеток.mdo new file mode 100644 index 000000000..05c13eb83 --- /dev/null +++ b/SSL/src/CommonForms/РедактированиеМеток/РедактированиеМеток.mdo @@ -0,0 +1,11 @@ + + + РедактированиеМеток + + ru + Редактирование меток + + PersonalComputer + MobileDevice + true + diff --git a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl index f286c0065..9eb6c79a3 100644 --- a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl @@ -1522,7 +1522,7 @@ | Ссылка УБЫВ"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Таблица", ОбъектМетаданных.ПолноеИмя()); - Запрос = Новый Запрос(ТекстЗапроса);; + Запрос = Новый Запрос(ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Образец = Выборка.Ссылка; diff --git a/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Form.form b/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Form.form index 0c823e80e..a5cbfddf7 100644 --- a/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Form.form +++ b/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Form.form @@ -326,6 +326,88 @@ Normal + + ИмяАдминистратораКластера + 99 + true + true + + true + + + ИмяАдминистратораКластера + + + ИмяАдминистратораКластераExtendedTooltip + 101 + Label + true + true + + Left + + + + ИмяАдминистратораКластераКонтекстноеМеню + 100 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ПарольАдминистратораКластера + 102 + true + true + + true + + + ПарольАдминистратораКластера + + + ПарольАдминистратораКластераExtendedTooltip + 104 + Label + true + true + + Left + + + + ПарольАдминистратораКластераКонтекстноеМеню + 103 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + ИмяБазы 11 @@ -553,6 +635,10 @@ ТипСУБД + + OnChange + ТипСУБДПриИзменении + ТипСУБДExtendedTooltip 63 @@ -1310,6 +1396,35 @@ Center + + СтатусОшибка + 107 + true + + true + + + СтатусОшибкаРасширеннаяПодсказка + 109 + Label + true + true + + Left + + + + СтатусОшибкаКонтекстноеМеню + 108 + true + + Label + true + + Left + Center + + true true @@ -1392,6 +1507,31 @@ UserCmds Auto + + Назад + 105 + true + + true + + + НазадРасширеннаяПодсказка + 106 + Label + true + true + + Left + + + Form.Command.Назад + Normal + Auto + true + true + UserCmds + Auto + Закрыть 44 @@ -1842,6 +1982,42 @@ true + + ИмяАдминистратораКластера + + <key>ru</key> + <value>Имя администратора кластера</value> + + 19 + + String + + + + true + + + true + + + + ПарольАдминистратораКластера + + <key>ru</key> + <value>Пароль администратора кластера</value> + + 20 + + String + + + + true + + + true + + СоздатьНачальныйОбраз @@ -1864,6 +2040,28 @@ <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>Назад</name> + <title> + <key>ru</key> + <value>< Назад</value> + + 2 + + ru + Назад + + + true + + + + Назад + + + Auto + Auto + diff --git a/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl b/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl index 3ad0fbdb7..efb16e079 100644 --- a/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl +++ b/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl @@ -147,6 +147,13 @@ КонецПроцедуры +&НаКлиенте +Процедура ТипСУБДПриИзменении(Элемент) + + СмещениеДат = ?(ТипСУБД = "MSSQLServer", 2000, 0); + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиКомандФормы @@ -180,6 +187,8 @@ // Серверный начальный образ. СтрокаСоединения = "Srvr=""" + Сервер + """;" + + ?(ЗначениеЗаполнено(ИмяАдминистратораКластера), "SUsr=""" + ИмяАдминистратораКластера + """;", "") + + ?(ЗначениеЗаполнено(ПарольАдминистратораКластера), "SPwd=""" + ПарольАдминистратораКластера + """;", "") + "Ref=""" + ИмяБазы + """;" + "DBMS=""" + ТипСУБД + """;" + "DBSrvr=""" + СерверБазыДанных + """;" @@ -210,6 +219,18 @@ КонецПроцедуры +&НаКлиенте +Процедура Назад(Команда) + + Элементы.СтатусОшибка.Видимость = Ложь; + Элементы.Назад.Видимость = Ложь; + + Элементы.СтатусГотово.Видимость = Истина; + Элементы.СоздатьНачальныйОбраз.Видимость = Истина; + Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.ИсходныеДанные; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -361,7 +382,7 @@ ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); ПараметрыОжидания.ВыводитьОкноОжидания = Ложь; ПараметрыОжидания.ВыводитьПрогрессВыполнения = Истина; - ПараметрыОжидания.ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("СоздатьНачальныйОбразНаСервереПрогресс", ЭтотОбъект);; + ПараметрыОжидания.ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("СоздатьНачальныйОбразНаСервереПрогресс", ЭтотОбъект); ДлительныеОперацииКлиент.ОжидатьЗавершение(Результат, ОповещениеОЗавершении, ПараметрыОжидания); ИначеЕсли Результат.Статус = "Выполнено" Тогда ПерейтиКСтраницеОжидания(); @@ -370,7 +391,10 @@ // Переход к странице с результатом с задержкой в 1 сек. ПодключитьОбработчикОжидания("ЗапуститьПереходРезультат", 1, Истина); Иначе - ВызватьИсключение НСтр("ru = 'Не удалось создать начальный образ по причине:'") + " " + Результат.КраткоеПредставлениеОшибки; + ПроцентВыполнения = 0; + Элементы.СтатусОшибка.Заголовок = НСтр("ru = 'Не удалось создать начальный образ по причине:'") + " + |" + Результат.КраткоеПредставлениеОшибки; + ЗапуститьПереходРезультат(); КонецЕсли; КонецПроцедуры @@ -409,7 +433,8 @@ Если Результат.Статус = "Ошибка" Тогда ПроцентВыполнения = 0; - Элементы.СтатусГотово.Заголовок = НСтр("ru = 'Не удалось создать начальный образ по причине:'") + " " + Результат.КраткоеПредставлениеОшибки; + Элементы.СтатусОшибка.Заголовок = НСтр("ru = 'Не удалось создать начальный образ по причине:'") + " + |" + Результат.КраткоеПредставлениеОшибки; ЗапуститьПереходРезультат(); Возврат; КонецЕсли; @@ -442,6 +467,10 @@ Если ПроцентВыполнения = 100 Тогда ЗавершитьСозданиеНачальногоОбраза(Узел); + Иначе + Элементы.СтатусГотово.Видимость = Ложь; + Элементы.СтатусОшибка.Видимость = Истина; + Элементы.Назад.Видимость = Истина; КонецЕсли; КонецПроцедуры diff --git a/SSL/src/CommonForms/ФайлыВТоме/Help/ru.html b/SSL/src/CommonForms/ФайлыВТоме/Help/ru.html index f4ab2fedd..25a271349 100644 --- a/SSL/src/CommonForms/ФайлыВТоме/Help/ru.html +++ b/SSL/src/CommonForms/ФайлыВТоме/Help/ru.html @@ -1,5 +1,5 @@ -

          Предназначен для просмотра файлов, которые хранятся в томе на диске.

          +

          Предназначен для просмотра файлов, которые хранятся в томе в сетевом каталоге.

          В каждом томе файлы хранятся в подкаталогах. На каждую дату создания версии файла создается свой подкаталог. Все файлы хранятся с оригинальным именем и расширением, между ними добавляется номер версии, например, Приказ2.2.txt.

          Список вызывается по команде Файлы в томе панели навигации Тома.

          В списке выводится:

          diff --git a/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl b/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl index 24c980b99..ccddef0aa 100644 --- a/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl @@ -123,11 +123,6 @@ РезультатВыбора.Вставить("ВариантМодифицирован", ВариантМодифицирован); РезультатВыбора.Вставить("ПользовательскиеНастройкиМодифицированы", ВариантМодифицирован Или ПользовательскиеНастройкиМодифицированы); - #Если ВебКлиент Тогда - РезультатВыбора.ВариантМодифицирован = Истина; // Для платформы. - РезультатВыбора.ПользовательскиеНастройкиМодифицированы = Истина; - #КонецЕсли - Если РезультатВыбора.ПользовательскиеНастройкиМодифицированы Тогда РезультатВыбора.Вставить("СброситьПользовательскиеНастройки", Истина); КонецЕсли; diff --git a/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form b/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form index 539ef3111..125bac339 100644 --- a/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form +++ b/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form @@ -3068,7 +3068,7 @@ 811 <key>ru</key> - <value><bgcolor #ffec9d><color #9d5600>В отчете установлены фильтры для группировок, которые можно настроить на странице </></><b><color #9d5600>Структура</></><bgcolor #ffec9d><color #9d5600>.</></></value> + <value><bgcolor #ffec9d><color #9d5600>На странице </></><b><color #9d5600>Структура</></><bgcolor #ffec9d><color #9d5600> для группировок отчета установлены фильтры, которые имеют больший приоритет.</></></value> true true @@ -5418,7 +5418,7 @@ 1007 <key>ru</key> - <value><bgcolor #ffec9d><color #9d5600>В отчете выбраны поля и сортировки для группировок, которые можно настроить на странице </></><b><color #9d5600>Структура</></><bgcolor #ffec9d><color #9d5600>.</></></value> + <value><bgcolor #ffec9d><color #9d5600>На странице </></><b><color #9d5600>Структура</></><bgcolor #ffec9d><color #9d5600> для группировок отчета выбраны поля и сортировки, которые имеют больший приоритет.</></></value> true true @@ -6237,7 +6237,7 @@ 931 <key>ru</key> - <value><bgcolor #ffec9d><color #9d5600>В отчете установлено оформление для группировок, которое можно настроить на странице </></><b><color #9d5600>Структура</></><bgcolor #ffec9d><color #9d5600>.</></></value> + <value><bgcolor #ffec9d><color #9d5600>На странице </></><b><color #9d5600>Структура</></><bgcolor #ffec9d><color #9d5600> для группировок отчета задано оформление, которое имеет больший приоритет.</></></value> true true diff --git a/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl b/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl index 47bd889ad..04cfda177 100644 --- a/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl @@ -373,7 +373,7 @@ Выбранные = ОтчетыКлиентСервер.ЗначенияСписком(РезультатВыбора); Выбранные.ЗаполнитьПометки(Истина); - Дополнение = ОтчетыКлиентСервер.ДополнитьСписок(Список, Выбранные, Ложь, Истина); + Дополнение = ОбщегоНазначенияКлиентСервер.ДополнитьСписок(Список, Выбранные, Ложь, Истина); ЗначениеЭлементаНастройки = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(Список); Индекс = ЗначениеЭлементаНастройки.Количество() - 1; @@ -465,7 +465,9 @@ Если ТипЗнч(Строка.Поле) = Тип("ПолеКомпоновкиДанных") Тогда Если Поле = Элементы.СортировкаПоле Тогда // Изменение поля - СортировкаВыбратьПоле(ИдентификаторСтроки, Строка); + #Если Не МобильныйКлиент Тогда + СортировкаВыбратьПоле(ИдентификаторСтроки, Строка); + #КонецЕсли ИначеЕсли Поле = Элементы.СортировкаТипУпорядочивания Тогда // Изменение порядка. ИзменитьТипУпорядочивания(Строка); КонецЕсли; @@ -625,6 +627,9 @@ &НаКлиенте Процедура ВыбранныеПоляВыбор(Элемент, ИдентификаторСтроки, Поле, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; +#Если МобильныйКлиент Тогда + Возврат; +#КонецЕсли Строка = Элементы.ВыбранныеПоля.ТекущиеДанные; Если Строка = Неопределено Тогда @@ -3745,7 +3750,7 @@ ЗначениеОтбора = ОтчетыКлиент.КэшЗначенияОтбора(Отчет.КомпоновщикНастроек, ЭлементНастройки); Если ЗначениеОтбора <> Неопределено Тогда - ОтчетыКлиентСервер.ДополнитьСписок(ЗначенияДляВыбора, ЗначениеОтбора); + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(ЗначенияДляВыбора, ЗначениеОтбора); КонецЕсли; ОтчетыКлиент.ОбновитьПредставленияСписка(ЗначенияДляВыбора, Строка.ДоступныеЗначения); @@ -6587,7 +6592,7 @@ #Область СвойстваЭлементовПростогоРежимаРедактирования Элементы.Основное.Видимость = Не ЭтоРасширенныйРежим; - Элементы.Дополнительно.Видимость = Не ЭтоРасширенныйРежим; + Элементы.Дополнительно.Видимость = Не ЭтоРасширенныйРежим И Не ЭтоМобильныйКлиент; Элементы.ВыводитьЗаголовок.Видимость = Не ЭтоРасширенныйРежим; Элементы.ВыводитьФильтры.Видимость = Не ЭтоРасширенныйРежим; @@ -6615,10 +6620,49 @@ Элементы.СтраницаОтборы.Заголовок = НСтр("ru = 'Фильтры'"); Иначе Элементы.СтраницаОтборы.Заголовок = НСтр("ru = 'Основное'"); + Если ЭтоМобильныйКлиент Тогда + ГруппаПользовательскиеНастройкиОсновные = Элементы.Основное.ПодчиненныеЭлементы.Найти("КомпоновщикНастроекПользовательскиеНастройкиОсновные"); + Если ГруппаПользовательскиеНастройкиОсновные <> Неопределено Тогда + Если Элементы.Основное.ПодчиненныеЭлементы.Количество() = 1 + И Элементы.Основное.Вид = ВидГруппыФормы.Страницы Тогда // ГруппаФормы + Элементы.Основное.ОтображениеСтраниц = ОтображениеСтраницФормы.Нет; + Иначе + Для Каждого ПодчиненныйЭлемент Из Элементы.Основное.ПодчиненныеЭлементы Цикл + Если ПодчиненныйЭлемент = ГруппаПользовательскиеНастройкиОсновные Тогда + Продолжить; + КонецЕсли; + Для Каждого ПодчиненныйЭлемент1 Из ПодчиненныйЭлемент.ПодчиненныеЭлементы Цикл + Если ТипЗнч(ПодчиненныйЭлемент1) = Тип("ТаблицаФормы") Тогда + ПодчиненныйЭлемент1.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет; + ПодчиненныйЭлемент1.Шапка = Ложь; + КонецЕсли; + КонецЦикла; + КонецЦикла; + КонецЕсли; + Если ГруппаПользовательскиеНастройкиОсновные.ПодчиненныеЭлементы.Найти(ГруппаПользовательскиеНастройкиОсновные.Имя+"1") = Неопределено Тогда + ГруппаПользовательскиеНастройкиОсновные1 = Элементы.Добавить(ГруппаПользовательскиеНастройкиОсновные.Имя+"1", Тип("ГруппаФормы"), ГруппаПользовательскиеНастройкиОсновные); + ГруппаПользовательскиеНастройкиОсновные1.Вид = ВидГруппыФормы.ОбычнаяГруппа; // ГруппаФормы + ГруппаПользовательскиеНастройкиОсновные1.ОтображатьЗаголовок = Ложь; + ГруппаПользовательскиеНастройкиОсновные1.ГоризонтальныйИнтервал = ИнтервалМеждуЭлементамиФормы.Нет; + ГруппаПользовательскиеНастройкиОсновные1.ВертикальныйИнтервал = ИнтервалМеждуЭлементамиФормы.Нет; + Счетчик = 0; + Пока Счетчик < ГруппаПользовательскиеНастройкиОсновные.ПодчиненныеЭлементы.Количество() Цикл + ПодчиненныйЭлемент = ГруппаПользовательскиеНастройкиОсновные.ПодчиненныеЭлементы[Счетчик]; + Если ПодчиненныйЭлемент = ГруппаПользовательскиеНастройкиОсновные1 Тогда + Счетчик = Счетчик + 1; + Иначе + Если ТипЗнч(ПодчиненныйЭлемент) = Тип("ГруппаФормы") Тогда + ПодчиненныйЭлемент.Объединенная = Ложь; + КонецЕсли; + Элементы.Переместить(ПодчиненныйЭлемент, ГруппаПользовательскиеНастройкиОсновные1); + КонецЕсли; + КонецЦикла; + КонецЕсли; + КонецЕсли; + КонецЕсли; КонецЕсли; Элементы.Отборы.Видимость = ОтображатьОтборы; - Элементы.ГруппаЕстьВложенныеОтборы.Видимость = ОтображатьОтборы; Элементы.ГруппаЕстьВложенныеОтборы.Видимость = ОтображатьОтборы И СодержитВложенныеОтборы И ОтображатьИнформацию; @@ -6724,8 +6768,7 @@ Если Параметры.Свойство("ОтображатьСтраницы") Тогда ОтображатьСтраницы = (Параметры.ОтображатьСтраницы <> Ложь); - ИначеЕсли Не ЭтоРасширенныйРежим - И ЭтоМобильныйКлиент Тогда + ИначеЕсли Не ЭтоРасширенныйРежим Тогда ОтображатьСтраницы = Ложь; Иначе ОтображатьСтраницы = @@ -6760,6 +6803,16 @@ КоличествоДоступныхНастроек = ОтчетыСервер.КоличествоДоступныхНастроек(Отчет.КомпоновщикНастроек); Элементы.ЗакрытьИСформировать.Видимость = КоличествоДоступныхНастроек.Итог > 0 Или ОтображатьСтраницы; + Если ЭтоМобильныйКлиент Тогда + Элементы.РасширенныйРежим.Видимость = Ложь; + Элементы.ГруппаНастройка.Видимость = Ложь; + Элементы.ГруппаЕстьВложенныеОтчеты.Видимость = Истина; + Элементы.ПодсказкаЕстьВложенныеОтчеты.Заголовок = НСтр( + "ru='Расширенный режим настройки недоступен в мобильном клиенте'"); + Элементы.ЗакрытьИСформировать.Отображение = ОтображениеКнопки.КартинкаИТекст; + Элементы.Закрыть.Видимость = Ложь; + Элементы.Справка.Видимость = Ложь; + КонецЕсли; #КонецОбласти КонецПроцедуры @@ -7930,7 +7983,7 @@ // * ЭтоПериод - Булево // * Картинка - Число // * ФормаВыбора - Строка -// * ВыборГруппИЭлементов - ВыборГруппИЭлементов +// * ВыборГруппИЭлементов - ИспользованиеГруппИЭлементов // * ДоступныеВидыСравнения - СписокЗначений // * Параметр - ПараметрКомпоновкиДанных // * ЛевоеЗначение - ПолеКомпоновкиДанных diff --git a/SSL/src/CommonForms/ФормаОтчета/Form.form b/SSL/src/CommonForms/ФормаОтчета/Form.form index f8889c19d..8f8e00d2e 100644 --- a/SSL/src/CommonForms/ФормаОтчета/Form.form +++ b/SSL/src/CommonForms/ФормаОтчета/Form.form @@ -2639,6 +2639,83 @@
          + + ГруппаСнимкиОтчетов + 1172 + + СохранитьСнимокОтчета + 1174 + true + true + + true + + + СохранитьСнимокОтчетаРасширеннаяПодсказка + 1175 + Label + true + true + + Left + + + Form.Command.СохранитьСнимокОтчета + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + СнимкиОтчетов + 1178 + true + true + + true + + + СнимкиОтчетовРасширеннаяПодсказка + 1179 + Label + true + true + + Left + + + Form.Command.СнимкиОтчетов + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + + true + + + <key>ru</key> + <value>Снимки отчетов</value> + + + ГруппаСнимкиОтчетовРасширеннаяПодсказка + 1173 + Label + true + true + + Left + + + + КомандыВидовПоказателейЕще 760 @@ -5752,6 +5829,488 @@ Auto + + ГруппаКнопокМобильныйКлиент + 1224 + + ГруппаКнопокМобильныйКлиентВложенная + 1170 + + ГруппаИзменитьРасположениеРесурсов + 1155 + + КнопкаИзменитьРасположениеРесурсов + 1162 + + <key>ru</key> + <value>Вертикально</value> + + true + true + + true + + + КнопкаИзменитьРасположениеРесурсовРасширеннаяПодсказка + 1163 + Label + true + true + + Left + + + UsualButton + Form.Command.ИзменитьРасположениеРесурсов + Supplementary + Picture + true + true + UserCmds + + StdPicture.Dimension + + Auto + None + + + ДекорацияИзменитьРасположениеРесурсов + 1212 + + <key>ru</key> + <value>Вертикально</value> + + true + true + + true + + + ДекорацияИзменитьРасположениеРесурсовРасширеннаяПодсказка + 1214 + Label + true + true + + Left + + + + ДекорацияИзменитьРасположениеРесурсовКонтекстноеМеню + 1213 + true + + Label + true + 1 + true + + Style.SmallTextFont + + Center + + Left + + + true + true + + true + + + <key>ru</key> + <value>Изменить расположение ресурсов</value> + + true + + ГруппаИзменитьРасположениеРесурсовРасширеннаяПодсказка + 1156 + Label + true + true + + Left + + + UsualGroup + + Vertical + None + None + Center + true + true + Auto + Auto + + + + ГруппаПоказатьВариантыОтчета + 1134 + + КнопкаПоказатьВариантыОтчета + 1164 + + <key>ru</key> + <value>Варианты отчета</value> + + true + true + + true + + + КнопкаПоказатьВариантыОтчетаРасширеннаяПодсказка + 1165 + Label + true + true + + Left + + + UsualButton + Form.StandardCommand.LoadVariant + Supplementary + Picture + true + true + UserCmds + + CommonPicture.ВыбратьВариантОтчета + + Auto + None + + + ДекорацияПоказатьВариантыОтчета + 1215 + + <key>ru</key> + <value>Варианты</value> + + true + true + + true + + + ДекорацияПоказатьВариантыОтчетаРасширеннаяПодсказка + 1217 + Label + true + true + + Left + + + + ДекорацияПоказатьВариантыОтчетаКонтекстноеМеню + 1216 + true + + Label + true + 1 + true + + Style.SmallTextFont + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Показать варианты отчета</value> + + true + + ГруппаПоказатьВариантыОтчетаРасширеннаяПодсказка + 1135 + Label + true + true + + Left + + + UsualGroup + + Vertical + None + None + Center + true + true + Auto + Auto + + + + ГруппаПоказатьНастройки + 1141 + + КнопкаПоказатьНастройки + 1166 + true + true + + true + + + КнопкаПоказатьНастройкиРасширеннаяПодсказка + 1167 + Label + true + true + + Left + + + UsualButton + Form.Command.ВсеНастройки + Supplementary + Picture + true + true + UserCmds + Auto + None + + + ДекорацияПоказатьНастройки + 1218 + + <key>ru</key> + <value>Настройки</value> + + true + true + + true + + + ДекорацияПоказатьНастройкиРасширеннаяПодсказка + 1220 + Label + true + true + + Left + + + + ДекорацияПоказатьНастройкиКонтекстноеМеню + 1219 + true + + Label + true + 1 + true + + Style.SmallTextFont + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Показать настройки</value> + + true + + ГруппаПоказатьНастройкиРасширеннаяПодсказка + 1142 + Label + true + true + + Left + + + UsualGroup + + Vertical + None + None + Center + true + true + Auto + Auto + + + + ГруппаСформироватьОтчет + 1148 + + КнопкаСформироватьОтчет + 1168 + true + true + + true + + + КнопкаСформироватьОтчетРасширеннаяПодсказка + 1169 + Label + true + true + + Left + + + UsualButton + Form.Command.ОтчетСкомпоноватьРезультат + Supplementary + Picture + true + true + UserCmds + Auto + None + + + ДекорацияСформироватьОтчет + 1221 + + <key>ru</key> + <value>Сформировать</value> + + true + true + + true + + + ДекорацияСформироватьОтчетРасширеннаяПодсказка + 1223 + Label + true + true + + Left + + + + ДекорацияСформироватьОтчетКонтекстноеМеню + 1222 + true + + Label + true + 1 + true + + Style.SmallTextFont + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Сформировать отчет</value> + + true + + ГруппаСформироватьОтчетРасширеннаяПодсказка + 1149 + Label + true + true + + Left + + + UsualGroup + + Vertical + None + None + Center + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Кнопок мобильный клиент вложенная</value> + + + ГруппаКнопокМобильныйКлиентВложеннаяРасширеннаяПодсказка + 1171 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Center + true + Auto + Auto + + + true + + true + + + <key>ru</key> + <value>Кнопок мобильный клиент</value> + + + ГруппаКнопокМобильныйКлиентРасширеннаяПодсказка + 1225 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + None + None + true + true + Auto + Auto + + None false @@ -5783,6 +6342,10 @@ OnCreateAtServer ПриСозданииНаСервере + + OnMainServerAvailabilityChange + ПриИзмененииДоступностиОсновногоСервера + FillCheckProcessingAtServer ОбработкаПроверкиЗаполненияНаСервере @@ -5799,6 +6362,11 @@ auto true Show + + + КоманднаяПанельЕще + + Отчет 1 @@ -6563,6 +7131,19 @@ true + + ЭтоМобильныйКлиент + 23 + + Boolean + + + true + + + true + + ПараметрыИзменены 50 @@ -6576,6 +7157,34 @@ true + + АдресДвоичныхДанныхВнешнегоОтчета + 51 + + String + + + + true + + + true + + + + ПутьКФайлуВнешнегоОтчетаНаКлиенте + 52 + + String + + + + true + + + true + + ВсеНастройки @@ -7650,7 +8259,7 @@ <name>СохранитьОтчет</name> <title> <key>ru</key> - <value>Сохранить</value> + <value>Сохранить в файл</value> 3 @@ -7717,6 +8326,81 @@ Auto Auto + + ИзменитьРасположениеРесурсов + + <key>ru</key> + <value>Изменить расположение ресурсов</value> + + 58 + + ru + Изменить расположение ресурсов + + + true + + + + ИзменитьРасположениеРесурсов + + + Auto + Auto + + + СохранитьСнимокОтчета + + <key>ru</key> + <value>Сохранить снимок отчета</value> + + 60 + + ru + Сохранить снимок отчета + + + true + + + StdPicture.FixTable + + + + СохранитьСнимокОтчета + + + TextPicture + Auto + Auto + + + СнимкиОтчетов + + <key>ru</key> + <value>Снимки отчетов</value> + + 62 + + ru + Список снимков отчетов + + + true + + Ctrl+S + + StdPicture.ListViewModeList + + + + СнимкиОтчетов + + + TextPicture + Auto + Auto + Ссылка @@ -7727,6 +8411,31 @@ Отчет + + Расшифровка + + true + + + ПредставлениеВарианта + + String + + + + + СформироватьПриОткрытии + + Boolean + + + + КонтекстВарианта + + String + + + diff --git a/SSL/src/CommonForms/ФормаОтчета/Help/ru.html b/SSL/src/CommonForms/ФормаОтчета/Help/ru.html index 0d99d7362..aaf713296 100644 --- a/SSL/src/CommonForms/ФормаОтчета/Help/ru.html +++ b/SSL/src/CommonForms/ФормаОтчета/Help/ru.html @@ -118,9 +118,16 @@
        • Отображать группы - включить или выключить группы;
        • Редактирование - начать или закончить редактирование.
        • В некоторых отчетах может быть предусмотрена кнопка  Изменить табличный документ, которая позволяет отредактировать таблицу отчета как табличный документ - изменить форматы ячеек и внешний вид. Можно изменить цвет, шрифт, оформление всего отчета, но информацию отчета изменить уже нельзя.
        • -
        • С помощью кнопки Записать и закрыть можно сохранить табличный документ на компьютер. Напишите адрес для сохранения файла.

        Изменение варианта отчета

        +
      • С помощью кнопки Записать и закрыть можно сохранить табличный документ на компьютер. Напишите адрес для сохранения файла.
      +

      Изменение варианта отчета

      -
      • При работе с отчетом можно перейти к изменению данного варианта отчета. Для этого в настройках отчета выполните команду Настройки для технического специалиста меню Еще.
      +
      • При работе с отчетом можно перейти к изменению данного варианта отчета. Для этого в настройках отчета выполните команду Настройки для технического специалиста меню Еще.
      +

      Отчеты в автономном режиме

      +
      +
      • В мобильном клиенте в автономном режиме (при отсутствии соединения с сервером) можно просмотреть сохраненные в стандартном приложении отчеты: +
        • c помощью команды меню Еще - Сохранить снимок отчета можно сохранить снимок интересующего отчета.
        • +
        • с помощью команды Еще - Снимки отчетов откроется форма, где можно просмотреть список сохраненных снимков отчетов,  а также актуализировать снимки с помощью кнопки Обновить или удалить снимки с помощью кнопки Удалить.
      +
      Просмотр снимков отчетов доступен только в мобильном клиенте. 

      Другие доступные действия

      • Для поиска в отчете воспользуйтесь командой Найти.
      • diff --git a/SSL/src/CommonForms/ФормаОтчета/Module.bsl b/SSL/src/CommonForms/ФормаОтчета/Module.bsl index 457aa6b0c..d29b734e7 100644 --- a/SSL/src/CommonForms/ФормаОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаОтчета/Module.bsl @@ -29,18 +29,17 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - + ОпределитьПоведениеВМобильномКлиенте(); - - РежимРасшифровки = (Параметры.Свойство("Расшифровка") И Параметры.Расшифровка <> Неопределено) - Или Параметры.Свойство("ПредставлениеВарианта") И Параметры.ПредставлениеВарианта = "Расшифровка"; - + + РежимРасшифровки = Параметры.Расшифровка <> Неопределено Или Параметры.ПредставлениеВарианта = "Расшифровка"; + ПравоВывода = ПравоДоступа("Вывод", Метаданные); - + ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); ОтчетМетаданные = ОтчетОбъект.Метаданные(); ОтчетПолноеИмя = ОтчетМетаданные.ПолноеИмя(); - + КонтекстВарианта = КонтекстВариантаОтчета(); УстановитьКлючНазначенияИспользования(); СохранитьПараметрыФормы(); @@ -51,22 +50,21 @@ Информация = ВариантыОтчетов.ИнформацияОбОтчете(ОтчетПолноеИмя, Истина); Параметры.Отчет = Информация.Отчет; КонецЕсли; - + УстановитьКлючТекущегоВарианта(ОтчетПолноеИмя, ОтчетОбъект); ФормаПараметры.НачальныйКлючВарианта = КлючТекущегоВарианта; - + НастройкиОтчета = НастройкиОтчета(ОтчетОбъект); - + ОбновитьИнформациюОВариантеОтчета(); ФормаПараметры.НачальныйКлючПредопределенногоВарианта = НастройкиОтчета.КлючПредопределенногоВарианта; - - Если Параметры.Свойство("СформироватьПриОткрытии") И Параметры.СформироватьПриОткрытии = Истина Тогда - Параметры.СформироватьПриОткрытии = Ложь; + + Если Параметры.СформироватьПриОткрытии Тогда Элементы.ФормироватьСразу.Пометка = Истина; НастройкиОтчета.ПрочитатьФлажокФормироватьСразуИзПользовательскихНастроек = Ложь; КонецЕсли; - - Если ОбщегоНазначения.ЭтоВебКлиент() Тогда + + Если ОбщегоНазначения.ЭтоВебКлиент() Тогда Элементы.ПредварительныйПросмотр.Видимость = Ложь; КонецЕсли; @@ -77,7 +75,7 @@ Элементы.КомандыВидовПоказателейЕще.Видимость = Ложь; Элементы.КоманднаяПанельЕще.РастягиватьПоГоризонтали = Неопределено; КонецЕсли; - + УстановитьРазрешенияПользователя(); // Регистрация команд и реквизитов формы, которые не удаляются при перезаполнении быстрых настроек. @@ -86,15 +84,15 @@ ПолноеИмяРеквизита = Реквизит.Имя + ?(ПустаяСтрока(Реквизит.Путь), "", "." + Реквизит.Путь); ПостоянныеРеквизиты.Добавить(ПолноеИмяРеквизита); КонецЦикла; - + Для Каждого Команда Из Команды Цикл ПостоянныеКоманды.Добавить(Команда.Имя); КонецЦикла; - - Если Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда + + Если Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда УстановитьВидимостьДоступность(); КонецЕсли; - + ПроверитьДоступностьОбменаНастройкамиВарианта(ОтчетМетаданные); // Тесная интеграция с почтой и рассылкой. @@ -103,13 +101,12 @@ МодульРаботаСПочтовымиСообщениями = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениями"); ДоступнаОтправкаПисем = МодульРаботаСПочтовымиСообщениями.ДоступнаОтправкаПисем(); КонецЕсли; - + Если ДоступнаОтправкаПисем Тогда - Если НастройкиОтчета.РазрешеноИзменятьВарианты - И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РассылкаОтчетов") - И ВариантыОтчетов.ОтчетПодключенКХранилищу(РеквизитФормыВЗначение("Отчет").Метаданные()) + Если НастройкиОтчета.РазрешеноИзменятьВарианты И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РассылкаОтчетов") + И ВариантыОтчетов.ОтчетПодключенКХранилищу(РеквизитФормыВЗначение("Отчет").Метаданные()) И Не НастройкиОтчета.СкрытьКомандыРассылки Тогда - + МодульРассылкаОтчетов = ОбщегоНазначения.ОбщийМодуль("РассылкаОтчетов"); МодульРассылкаОтчетов.ФормаОтчетаДобавитьКоманды(ЭтотОбъект, Отказ, СтандартнаяОбработка); Иначе // Если в подменю одна команда, то выпадающий список не отображается. @@ -125,34 +122,44 @@ Попытка ИспользуемыеТаблицы = ВариантыОтчетов.ИспользуемыеТаблицы(ОтчетОбъект.СхемаКомпоновкиДанных); ИспользуемыеТаблицы.Добавить(НастройкиОтчета.ПолноеИмя); - + Если НастройкиОтчета.События.ПриОпределенииИспользуемыхТаблиц Тогда ОтчетОбъект.ПриОпределенииИспользуемыхТаблиц(КлючТекущегоВарианта, ИспользуемыеТаблицы); КонецЕсли; - + ВариантыОтчетов.ПроверитьИспользуемыеТаблицы(ИспользуемыеТаблицы); Исключение ТекстОшибки = НСтр("ru = 'Не удалось определить используемые таблицы:'"); ТекстОшибки = ТекстОшибки + Символы.ПС + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - ВариантыОтчетов.ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, ТекстОшибки, НастройкиОтчета.ВариантСсылка); + ВариантыОтчетов.ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, ТекстОшибки, + НастройкиОтчета.ВариантСсылка); КонецПопытки; КонецЕсли; - + ОтчетыКлиентСервер.ОтобразитьСостояниеОтчета( ЭтотОбъект, НСтр("ru = 'Отчет не сформирован. Нажмите ""Сформировать"" для получения отчета.'")); - + ИнтеграцияПодсистемБСП.ПриСозданииНаСервереВариантыОтчетов(ЭтотОбъект, Отказ, СтандартнаяОбработка); ОтчетыПереопределяемый.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); Если НастройкиОтчета.События.ПриСозданииНаСервере Тогда ОтчетОбъект.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); КонецЕсли; - - Элементы.ПраваПользователей.Видимость = Пользователи.ЭтоПолноправныйПользователь() + + Элементы.ПраваПользователей.Видимость = Пользователи.ЭтоПолноправныйПользователь() И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом"); + + ЗаполнитьПутьКФайлуВнешнегоОтчетаНаКлиенте(ОтчетОбъект); + КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) +#Если ВебКлиент Тогда + Если ЗначениеЗаполнено(ПутьКФайлуВнешнегоОтчетаНаКлиенте) Тогда + ТекстОшибки = НСтр("ru = 'Для этого действия требуется запустить клиентское приложение'"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; +#КонецЕсли ВыполнятьЗамеры = Ложь; // В безопасном режиме доп. отчеты формируются непосредственно, @@ -160,17 +167,17 @@ Непосредственно = НастройкиОтчета.Внешний Или НастройкиОтчета.Безопасный; ФормированиеПриОткрытии = Ложь; ИнтервалОжидания = ?(ПолучитьСкоростьКлиентскогоСоединения() = СкоростьКлиентскогоСоединения.Низкая, 1, 0.2); - + Если Элементы.ФормироватьСразу.Пометка Тогда ФормированиеПриОткрытии = Истина; ПодключитьОбработчикОжидания("Сформировать", 0.1, Истина); Иначе СброситьТекущуюОбласть(); КонецЕсли; - + ОбщегоНазначенияСлужебныйКлиент.УстановитьВидимостьПанелиПоказателей(Элементы, РазвернутьОбластьПоказателей); РассчитатьПоказатели(ОсновнойПоказатель); - + ПодключитьОбработчикОжидания("ОпределитьПоведениеНаНачальнойСтранице", 0.1, Истина); КонецПроцедуры @@ -180,39 +187,38 @@ // Приемка результата из стандартных форм. Если ТипЗнч(ПодчиненнаяФорма) = Тип("ФормаКлиентскогоПриложения") Тогда - + ИмяПодчиненнойФормы = ПодчиненнаяФорма.ИмяФормы; Если ИмяПодчиненнойФормы = "ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.НастройкиОтчета" Или ПодчиненнаяФорма.ОписаниеОповещенияОЗакрытии <> Неопределено Тогда - + РезультатОбработан = Истина; // См. ПрименитьНастройкиИПереформироватьОтчет. - + ИначеЕсли ТипЗнч(Результат) = Тип("Структура") Тогда - + ЧастиИмениФормы = СтрРазделить(ИмяПодчиненнойФормы, "."); ИмяФормыИсточника = ВРег(ЧастиИмениФормы[ЧастиИмениФормы.Количество() - 1]); - Если ИмяФормыИсточника = ВРег("ФормаНастроекОтчета") - Или ИмяФормыИсточника = ВРег("ФормаНастроек") - Или ИмяФормыИсточника = ВРег("ФормаВариантаОтчета") - Или ИмяФормыИсточника = ВРег("ФормаВарианта") Тогда - + Если ИмяФормыИсточника = ВРег("ФормаНастроекОтчета") Или ИмяФормыИсточника = ВРег("ФормаНастроек") + Или ИмяФормыИсточника = ВРег("ФормаВариантаОтчета") Или ИмяФормыИсточника = ВРег("ФормаВарианта") Тогда + ОбновитьЭлементыФормыНастроек(Результат); РезультатОбработан = Истина; КонецЕсли; КонецЕсли; - + ПрименитьНастройкиИзКонтекстногоМеню(Результат); - + ИначеЕсли ТипЗнч(ПодчиненнаяФорма) = Тип("КонструкторСхемыКомпоновкиДанных") Тогда - + ПрименитьСхемуИзКонструктора(Результат); - + КонецЕсли; // Механизмы расширения. Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РассылкаОтчетов") Тогда МодульРассылкаОтчетовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РассылкаОтчетовКлиент"); - МодульРассылкаОтчетовКлиент.ФормаОтчетаОбработкаВыбора(ЭтотОбъект, Результат, ПодчиненнаяФорма, РезультатОбработан); + МодульРассылкаОтчетовКлиент.ФормаОтчетаОбработкаВыбора(ЭтотОбъект, Результат, ПодчиненнаяФорма, + РезультатОбработан); КонецЕсли; ИнтеграцияПодсистемБСПКлиент.ПриОбработкеВыбора(ЭтотОбъект, Результат, ПодчиненнаяФорма, РезультатОбработан); ОтчетыКлиентПереопределяемый.ОбработкаВыбора(ЭтотОбъект, Результат, ПодчиненнаяФорма, РезультатОбработан); @@ -221,64 +227,64 @@ &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) ОповещениеОбработано = Ложь; - - Если ИмяСобытия = "Запись_НаборКонстант" Тогда - + + Если ИмяСобытия = "Запись_НаборКонстант" Тогда + ОповещениеОбработано = Истина; ВариантыПанелиКлючТекущегоВарианта = ПустойКлючВарианта(); - - ИначеЕсли ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияИзменениеВарианта() Тогда - + + ИначеЕсли ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияИзменениеВарианта() Тогда + ОповещениеОбработано = Истина; КлючВарианта = Неопределено; НастройкиОтчета.КлючСхемы = ""; - - Если ТипЗнч(Параметр) = Тип("Структура") Тогда + + Если ТипЗнч(Параметр) = Тип("Структура") Тогда Параметр.Свойство("КлючВарианта", КлючВарианта); КонецЕсли; - - Если ЗначениеЗаполнено(КлючВарианта) Тогда + + Если ЗначениеЗаполнено(КлючВарианта) Тогда УстановитьТекущийВариант(КлючВарианта); Иначе ВариантыПанелиКлючТекущегоВарианта = ПустойКлючВарианта(); КонецЕсли; - + ОтключитьОбработчикОжидания("ОбновитьКомандыВыбораВариантовОбработчикОжидания"); ПодключитьОбработчикОжидания("ОбновитьКомандыВыбораВариантовОбработчикОжидания", 2, Истина); - - ИначеЕсли ИмяСобытия = ВариантыОтчетовКлиентСервер.ИмяДействияПрименитьПереданныеНастройки() Тогда - + + ИначеЕсли ИмяСобытия = ВариантыОтчетовКлиентСервер.ИмяДействияПрименитьПереданныеНастройки() Тогда + ОповещениеОбработано = Истина; ПрименитьПереданныеНастройки(Параметр); - - ИначеЕсли ИмяСобытия = "ИзменениеВидимостиВариантаОтчетаВПанелиОтчетов" - И Параметр = НастройкиОтчета.ПолноеИмя - И ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) - И НастройкиОтчета.РазрешеноВыбиратьВарианты Тогда - + + ИначеЕсли ИмяСобытия = "ИзменениеВидимостиВариантаОтчетаВПанелиОтчетов" И Параметр = НастройкиОтчета.ПолноеИмя + И ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) + И НастройкиОтчета.РазрешеноВыбиратьВарианты Тогда + ОтключитьОбработчикОжидания("ОбновитьКомандыВыбораВариантовОбработчикОжидания"); ПодключитьОбработчикОжидания("ОбновитьКомандыВыбораВариантовОбработчикОжидания", 2, Истина); Возврат; - + КонецЕсли; - + ПрименитьНастройкиИзКонтекстногоМеню(Параметр); - - ИнтеграцияПодсистемБСПКлиент.ПриОбработкеОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник, ОповещениеОбработано); + + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник, + ОповещениеОбработано); ОтчетыКлиентПереопределяемый.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник, ОповещениеОбработано); КонецПроцедуры &НаСервере Процедура ПередЗагрузкойВариантаНаСервере(НовыеНастройкиКД) // Ничего не делать если отчет не на СКД и никаких настроек не загружено. - Если НовыеНастройкиКД = Неопределено - Или Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда - + Если НовыеНастройкиКД = Неопределено Или Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета( + КлючТекущегоВарианта) Тогда + Возврат; КонецЕсли; - + ДополнительныеСвойства = НовыеНастройкиКД.ДополнительныеСвойства; - + Если ВариантыПанелиКлючТекущегоВарианта <> КлючТекущегоВарианта Тогда ДополнительныеСвойства.Удалить("КлючВарианта"); ДополнительныеСвойства.Удалить("КлючПредопределенногоВарианта"); @@ -286,18 +292,18 @@ ДополнительныеСвойства.Удалить("ФормаПараметрыОтбор"); ДополнительныеСвойства.Удалить("ВариантНаименование"); КонецЕсли; - + Если РежимРасшифровки Тогда - Если ТипЗнч(Параметры.Расшифровка) = Тип("ОписаниеОбработкиРасшифровкиКомпоновкиДанных") Тогда + Если ТипЗнч(Параметры.Расшифровка) = Тип("ОписаниеОбработкиРасшифровкиКомпоновкиДанных") Тогда ВариантыОтчетовСлужебный.ПодготовитьНастройкиОтчетаКРасшифровкеПоДетальнымЗаписям( ЭтотОбъект, НовыеНастройкиКД, Параметры.Расшифровка.ПрименяемыеНастройки); КонецЕсли; - - Если ЗначениеЗаполнено(КлючТекущегоВарианта) Тогда + + Если ЗначениеЗаполнено(КлючТекущегоВарианта) Тогда ДополнительныеСвойства.Вставить("КлючВарианта", КлючТекущегоВарианта); КонецЕсли; КонецЕсли; - + ИнтеграцияПодсистемБСП.ПередЗагрузкойВариантаНаСервере(ЭтотОбъект, НовыеНастройкиКД); ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере(ЭтотОбъект, НовыеНастройкиКД); Если НастройкиОтчета.События.ПередЗагрузкойВариантаНаСервере Тогда @@ -318,53 +324,58 @@ &НаСервере Процедура ПриЗагрузкеВариантаНаСервере(НовыеНастройкиКД) - // Ничего не делать если отчет не на СКД и никаких настроек не загружено. - Если Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) - И НовыеНастройкиКД = Неопределено Тогда - + // Если отчет не на СКД и никаких настроек не загружено. + Если Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) И НовыеНастройкиКД = Неопределено Тогда Возврат; КонецЕсли; // Загрузка фиксированных настроек для режима расшифровки. Если РежимРасшифровки Тогда - ОтчетНаименованиеТекущегоВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НовыеНастройкиКД.ДополнительныеСвойства, "ВариантНаименование"); - - Если Параметры <> Неопределено - И Параметры.Свойство("Расшифровка") - И ТипЗнч(Параметры.Расшифровка) = Тип("ОписаниеОбработкиРасшифровкиКомпоновкиДанных") Тогда - + ОтчетНаименованиеТекущегоВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( + НовыеНастройкиКД.ДополнительныеСвойства, "ВариантНаименование"); + + Если ТипЗнч(Параметры.Расшифровка) = Тип("ОписаниеОбработкиРасшифровкиКомпоновкиДанных") Тогда Отчет.КомпоновщикНастроек.ЗагрузитьФиксированныеНастройки(Параметры.Расшифровка.ПрименяемыеНастройки); Отчет.КомпоновщикНастроек.ФиксированныеНастройки.ДополнительныеСвойства.Вставить("РежимРасшифровки", Истина); КонецЕсли; - + Если КлючТекущегоВарианта = Неопределено Тогда - КлючТекущегоВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НовыеНастройкиКД.ДополнительныеСвойства, "КлючВарианта"); + КлючТекущегоВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( + НовыеНастройкиКД.ДополнительныеСвойства, "КлючВарианта"); КонецЕсли; КонецЕсли; // Установка фиксированных отборов выполняется через компоновщик, т.к. в нем наиболее полная коллекция настроек. // В ПередЗагрузкой в параметрах могут отсутствовать те параметры, настройки которых не переопределялись. - Если ВариантыОтчетов.ДопустимоУстановитьКонтекст(ЭтотОбъект) - И ТипЗнч(ФормаПараметры.Отбор) = Тип("Структура") Тогда - - ОтчетыСервер.УстановитьФиксированныеОтборы(ФормаПараметры.Отбор, Отчет.КомпоновщикНастроек.Настройки, НастройкиОтчета); + Если ВариантыОтчетов.ДопустимоУстановитьКонтекст(ЭтотОбъект) И ТипЗнч(ФормаПараметры.Отбор) = Тип("Структура") Тогда + + ОтчетыСервер.УстановитьФиксированныеОтборы(ФормаПараметры.Отбор, Отчет.КомпоновщикНастроек.Настройки, + НастройкиОтчета); КонецЕсли; // Обновление ссылки варианта отчета. Если ВариантыПанелиКлючТекущегоВарианта <> КлючТекущегоВарианта Тогда ОбновитьИнформациюОВариантеОтчета(); КонецЕсли; - + Если НастройкиОтчета.События.ПриЗагрузкеВариантаНаСервере Тогда ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); ОтчетОбъект.ПриЗагрузкеВариантаНаСервере(ЭтотОбъект, НовыеНастройкиКД); КонецЕсли; + + Если ЭтоМобильныйКлиент Тогда + РасположениеРесурсов = Отчет.КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра( + Новый ПараметрКомпоновкиДанных("РасположениеРесурсов")); + Если РасположениеРесурсов.Использование И РасположениеРесурсов.Значение = РасположениеРесурсовКомпоновкиДанных.Вертикально Тогда + Элементы.ДекорацияИзменитьРасположениеРесурсов.Заголовок = НСтр("ru='Горизонтально'"); + КонецЕсли; + КонецЕсли; + КонецПроцедуры &НаСервере Процедура ПередЗагрузкойПользовательскихНастроекНаСервере(НовыеПользовательскиеНастройкиКД) Если НастройкиОтчета.События.ПередЗагрузкойНастроекВКомпоновщик Тогда - // Подготовка к переинициализации. Попытка НовыеПользовательскиеНастройкиXML = ОбщегоНазначения.ЗначениеВСтрокуXML(НовыеПользовательскиеНастройкиКД); Исключение @@ -379,7 +390,7 @@ Если Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда Возврат; КонецЕсли; - + Если НастройкиОтчета.События.ПриЗагрузкеПользовательскихНастроекНаСервере Тогда ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); ОтчетОбъект.ПриЗагрузкеПользовательскихНастроекНаСервере(ЭтотОбъект, НовыеПользовательскиеНастройкиКД); @@ -390,19 +401,19 @@ Процедура ПриОбновленииСоставаПользовательскихНастроекНаСервере(СтандартнаяОбработка) КлючНастроек = КлючНастроекВариантаОтчета(НастройкиОтчета.ПолноеИмя, КлючТекущегоВарианта); ВосстановитьВыбранныйУровеньГруппировок(КлючНастроек, ВыбранныйУровеньГруппировок, РежимРасшифровки); - + Если Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда Возврат; КонецЕсли; - + СтандартнаяОбработка = Ложь; - - Если Не ВариантМодифицирован Тогда + + Если Не ВариантМодифицирован Тогда ВосстановитьСостояниеОпцииВыводитьЗаголовкиНастроек(КлючНастроек, ВыводитьЗаголовкиНастроек, РежимРасшифровки); КонецЕсли; - + ПараметрыОбновления = Новый Структура("ИмяСобытия", "ПриОбновленииСоставаПользовательскихНастроекНаСервере"); - ОбновитьЭлементыФормыНастроекНаСервере(ПараметрыОбновления); + ОбновитьЭлементыФормыНастроекНаСервере(ПараметрыОбновления); КонецПроцедуры &НаСервере @@ -410,33 +421,32 @@ Если Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда Возврат; КонецЕсли; - - Если ПутьКДаннымЭлементов = Неопределено Тогда + + Если ПутьКДаннымЭлементов = Неопределено Тогда Возврат; КонецЕсли; - + ЭлементыНастроек = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; Для Каждого ЭлементНастройки Из ЭлементыНастроек Цикл - Если ТипЗнч(ЭлементНастройки) <> Тип("ЗначениеПараметраНастроекКомпоновкиДанных") - Или ТипЗнч(ЭлементНастройки.Значение) <> Тип("СтандартныйПериод") + Если ТипЗнч(ЭлементНастройки) <> Тип("ЗначениеПараметраНастроекКомпоновкиДанных") + Или ТипЗнч(ЭлементНастройки.Значение) <> Тип("СтандартныйПериод") Или Не ЭлементНастройки.Использование Тогда Продолжить; КонецЕсли; - + ШаблонИмени = ПутьКДаннымЭлементов.ПоИндексу[ЭлементыНастроек.Индекс(ЭлементНастройки)]; - Если ШаблонИмени = Неопределено Тогда + Если ШаблонИмени = Неопределено Тогда Продолжить; КонецЕсли; - + ДатаНачала = Элементы.Найти(ШаблонИмени + "ДатаНачала"); ДатаОкончания = Элементы.Найти(ШаблонИмени + "ДатаОкончания"); - Если ДатаНачала = Неопределено Или ДатаОкончания = Неопределено Тогда + Если ДатаНачала = Неопределено Или ДатаОкончания = Неопределено Тогда Продолжить; КонецЕсли; - + Значение = ЭлементНастройки.Значение; // СтандартныйПериод - Если ДатаНачала.АвтоОтметкаНезаполненного = Истина - И Не ЗначениеЗаполнено(Значение.ДатаНачала) + Если ДатаНачала.АвтоОтметкаНезаполненного = Истина И Не ЗначениеЗаполнено(Значение.ДатаНачала) И Не ЗначениеЗаполнено(Значение.ДатаОкончания) Тогда ТекстОшибки = НСтр("ru = 'Не указан период'"); ПутьКДанным = ДатаНачала.ПутьКДанным; @@ -446,7 +456,7 @@ Иначе Продолжить; КонецЕсли; - + ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, ПутьКДанным,, Отказ); КонецЦикла; КонецПроцедуры @@ -464,9 +474,9 @@ &НаСервере Процедура ПриСохраненииДанныхВНастройкахНаСервере(Настройки) - + СохранитьДанныеВНастройкахНаСервере(Настройки); - + КонецПроцедуры &НаСервере @@ -474,7 +484,7 @@ Если Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда Возврат; КонецЕсли; - + НовыеНастройкиКД = Отчет.КомпоновщикНастроек.ПолучитьНастройки(); ОтчетыКлиентСервер.ЗагрузитьНастройки(Отчет.КомпоновщикНастроек, НовыеНастройкиКД); НастройкиКД.ДополнительныеСвойства.Вставить("Адрес", ПоместитьВоВременноеХранилище(НовыеНастройкиКД)); @@ -483,8 +493,8 @@ ОбновитьИнформациюОВариантеОтчета(); УстановитьВидимостьДоступность(); ОбновитьДополнительныеСвойстваДанныхРасшифровки(); - - Если ОбщегоНазначения.ЭтоВебКлиент() Тогда + + Если ОбщегоНазначения.ЭтоВебКлиент() Тогда СохранитьДанныеВНастройкахНаСервере(); КонецЕсли; КонецПроцедуры @@ -498,6 +508,20 @@ ОбновитьКомандыВыбораВариантов(); КонецПроцедуры +#Если МобильныйКлиент Тогда + +&НаКлиенте +Процедура ПриИзмененииДоступностиОсновногоСервера(СтандартнаяОбработка) + + Если ОсновнойСерверДоступен() = Ложь Тогда + ОткрытьФорму("РегистрСведений.СнимкиОтчетов.Форма.ФормаПросмотраОтчетов"); + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +#КонецЕсли + #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы @@ -508,42 +532,42 @@ &НаКлиенте Процедура Подключаемый_ЭлементНастройки_ПриИзменении(Элемент) КомпоновщикНастроек = Отчет.КомпоновщикНастроек; - + Индекс = ПутьКДаннымЭлементов.ПоИмени[Элемент.Имя]; - Если Индекс = Неопределено Тогда + Если Индекс = Неопределено Тогда Индекс = ОтчетыКлиентСервер.ИндексЭлементаНастройкиПоПути(Элемент.Имя); КонецЕсли; - + ЭлементНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[Индекс]; - + ЭтоФлажок = СтрНачинаетсяС(Элемент.Имя, "Флажок") Или СтрЗаканчиваетсяНа(Элемент.Имя, "Флажок"); - Если ЭтоФлажок Тогда + Если ЭтоФлажок Тогда ЭлементНастройки.Значение = ЭтотОбъект[Элемент.Имя]; КонецЕсли; - + Если ТипЗнч(ЭлементНастройки) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") - И НастройкиОтчета.ЗагрузитьНастройкиПриИзмененииПараметров.Найти(ЭлементНастройки.Параметр) <> Неопределено Тогда - + И НастройкиОтчета.ЗагрузитьНастройкиПриИзмененииПараметров.Найти(ЭлементНастройки.Параметр) <> Неопределено Тогда + ВариантБылМодифицирован = ВариантМодифицирован; КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ОтчетИнициализирован", Ложь); - ВариантМодифицирован = ВариантБылМодифицирован; + ВариантМодифицирован = ВариантБылМодифицирован; ПараметрыИзменены = Истина; - ФормаПараметры.Вставить("СброситьНастройки", Ложь); - + ФормаПараметры.Вставить("СброситьНастройки", Ложь); + ПараметрыОбновления = Новый Структура; ПараметрыОбновления.Вставить("КомпоновщикНастроекКД", КомпоновщикНастроек); ПараметрыОбновления.Вставить("ПользовательскиеНастройкиМодифицированы", Истина); ОбновитьЭлементыФормыНастроек(ПараметрыОбновления); - + КонецЕсли; - + ОтчетыКлиентСервер.ОповеститьОИзмененииНастроек(ЭтотОбъект); КонецПроцедуры &НаКлиенте Процедура Подключаемый_ЭлементНастройки_НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ПараметрыИзменены = Истина; - ПоказатьСписокВыбора(Элемент, СтандартнаяОбработка) + ПоказатьСписокВыбора(Элемент, СтандартнаяОбработка); КонецПроцедуры &НаКлиенте @@ -573,60 +597,61 @@ #Область ОбработчикиСобытийЭлементовУниверсальнойСтрокиПоиска &НаКлиенте -Процедура ПоказательРасширеннаяПодсказкаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) - +Процедура ПоказательРасширеннаяПодсказкаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, + СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; - - Если Элементы.ВсеНастройки.Видимость Тогда + + Если Элементы.ВсеНастройки.Видимость Тогда ПерейтиКНастройкам(НастройкиОтчета.РазрешеноИзменятьВарианты); Иначе ПоказатьПредупреждение(, НСтр("ru = 'Расширенные возможности настройки фильтров недоступны'")); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ПоказательПриИзменении(Элемент) - + ПереходКНастройкамВыполнен(); - + КонецПроцедуры &НаКлиенте Процедура ПоказательОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) - + Если ТипЗнч(ВыбранноеЗначение) <> Тип("Массив") Тогда СброситьУниверсальныйПоиск(); Возврат; КонецЕсли; - + СтандартнаяОбработка = Ложь; ПрименитьЗначениеУниверсальногоПоиска(ВыбранноеЗначение); - + КонецПроцедуры &НаКлиенте Процедура ПоказательАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) - - Если Не ЗначениеЗаполнено(Текст) Тогда + + Если Не ЗначениеЗаполнено(Текст) Тогда Возврат; КонецЕсли; - + Запрос = СокрЛП(Текст); - - Если ПереходКНастройкамВыполнен(Запрос) Тогда + + Если ПереходКНастройкамВыполнен(Запрос) Тогда Возврат; КонецЕсли; - + ПодходящиеЗначения = ПодходящиеЗначенияУниверсальногоПоиска(Запрос); - - Если ПодходящиеЗначения.Количество() = 0 Тогда + + Если ПодходящиеЗначения.Количество() = 0 Тогда Возврат; КонецЕсли; - + ДанныеВыбора = ПодходящиеЗначения; СтандартнаяОбработка = Ложь; - + КонецПроцедуры #КонецОбласти @@ -635,23 +660,23 @@ &НаКлиенте Процедура ОтчетТабличныйДокументВыбор(Элемент, Область, СтандартнаяОбработка) - + ОбработкаРасшифровки = Ложь; - + Если СтандартнаяОбработка Тогда - ИнтеграцияПодсистемБСПКлиент.ПриОбработкеВыбораТабличногоДокумента(ЭтотОбъект, Элемент, Область, СтандартнаяОбработка); - ОтчетыКлиентПереопределяемый.ОбработкаВыбораТабличногоДокумента(ЭтотОбъект, Элемент, Область, СтандартнаяОбработка); + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеВыбораТабличногоДокумента(ЭтотОбъект, Элемент, Область, + СтандартнаяОбработка); + ОтчетыКлиентПереопределяемый.ОбработкаВыбораТабличногоДокумента(ЭтотОбъект, Элемент, Область, + СтандартнаяОбработка); КонецЕсли; - - Если Не ОбработкаРасшифровки - И СтандартнаяОбработка - И ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда - + + Если Не ОбработкаРасшифровки И СтандартнаяОбработка И ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда + Если ПерейтиПоСсылке(Область.Текст) Тогда СтандартнаяОбработка = Ложь; Возврат; КонецЕсли; - + Попытка ЗначениеРасшифровки = Область.Расшифровка; Исключение @@ -659,72 +684,73 @@ // Для некоторых типов областей табличного документа (свойство ТипОбласти) // чтение расшифровки недоступно, поэтому делается попытка-исключение. КонецПопытки; - - Если ЗначениеРасшифровки <> Неопределено - И ПерейтиПоСсылке(ЗначениеРасшифровки) Тогда - + + Если ЗначениеРасшифровки <> Неопределено И ПерейтиПоСсылке(ЗначениеРасшифровки) Тогда СтандартнаяОбработка = Ложь; Возврат; КонецЕсли; - + Если ПерейтиПоСсылке(Область.Маска) Тогда СтандартнаяОбработка = Ложь; Возврат; КонецЕсли; КонецЕсли; - - Если Не ОбработкаРасшифровки - И СтандартнаяОбработка Тогда - - ВариантыОтчетовСлужебныйКлиент.ПоказатьКонтекстнуюНастройкуОтчета(ЭтотОбъект, Элемент, Область, СтандартнаяОбработка); + + Если Не ОбработкаРасшифровки И СтандартнаяОбработка Тогда + ВариантыОтчетовСлужебныйКлиент.ПоказатьКонтекстнуюНастройкуОтчета(ЭтотОбъект, Элемент, Область, + СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ОтчетТабличныйДокументОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) - + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); - - Если СтандартнаяОбработка Тогда + + Если СтандартнаяОбработка Тогда ВариантыОтчетовСлужебныйКлиент.ОбработкаРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ОтчетТабличныйДокументОбработкаДополнительнойРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.АнализЖурналаРегистрации") Тогда МодульАнализЖурналаРегистрацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АнализЖурналаРегистрацииКлиент"); - МодульАнализЖурналаРегистрацииКлиент.ФормаОтчетаОбработкаДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); + МодульАнализЖурналаРегистрацииКлиент.ФормаОтчетаОбработкаДополнительнойРасшифровки(ЭтотОбъект, Элемент, + Расшифровка, СтандартнаяОбработка); КонецЕсли; - - ИнтеграцияПодсистемБСПКлиент.ПриОбработкеДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); - ОтчетыКлиентПереопределяемый.ОбработкаДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); - - Если СтандартнаяОбработка Тогда + + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, + СтандартнаяОбработка); + ОтчетыКлиентПереопределяемый.ОбработкаДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, + СтандартнаяОбработка); + + Если СтандартнаяОбработка Тогда Данные = ДанныеЭлементаРасшифровки(Расшифровка); - ВариантыОтчетовСлужебныйКлиент.ОбработкаДополнительнойРасшифровки(ЭтотОбъект, Данные, Элемент, Расшифровка, СтандартнаяОбработка); + ВариантыОтчетовСлужебныйКлиент.ОбработкаДополнительнойРасшифровки(ЭтотОбъект, Данные, Элемент, Расшифровка, + СтандартнаяОбработка); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ОтчетТабличныйДокументПриАктивизации(Элемент) - + ВариантыОтчетовСлужебныйКлиент.ПриАктивизацииРезультатаОтчета(ЭтотОбъект, Элементы.ОтчетТабличныйДокумент); ПодключитьОбработчикОжидания("РассчитатьПоказателиДинамически", 0.2, Истина); - + КонецПроцедуры &НаКлиенте Процедура ОтчетТабличныйДокументПередЗаписью(Элемент, Копирование, Отказ) - + Отказ = Истина; СохранитьОтчет(Команды.Найти(Элементы.СохранитьОтчет.ИмяКоманды)); - + КонецПроцедуры #КонецОбласти @@ -735,9 +761,9 @@ &НаКлиенте Процедура ВсеНастройки(Команда) - + ПерейтиКНастройкам(); - + КонецПроцедуры &НаКлиенте @@ -745,19 +771,19 @@ Если ТипЗнч(Результат) <> Тип("Структура") Тогда Возврат; КонецЕсли; - - Если Результат.Свойство("ИмяСобытия") - И Результат.ИмяСобытия = ВариантыОтчетовСлужебныйКлиентСервер.ИмяСобытияФормыНастроек() - И Результат.ВариантМодифицирован Тогда - + + Если Результат.Свойство("ИмяСобытия") + И Результат.ИмяСобытия = ВариантыОтчетовСлужебныйКлиентСервер.ИмяСобытияФормыНастроек() + И Результат.ВариантМодифицирован Тогда + ВариантыОтчетовСлужебныйКлиент.ДобавитьНастройкиВСтек( ЭтотОбъект, Результат.КомпоновщикНастроекКД.Настройки, Результат.ИмяСобытия); - + КонецЕсли; - + РезультатНастройки = Результат; ОтчетСформирован = Результат.Переформировать; - + ПодключитьОбработчикОжидания("ОбновитьЭлементыФормыНастроекОтложенно", 0.1, Истина); КонецПроцедуры @@ -765,7 +791,7 @@ Процедура НастройкиПоУмолчанию(Команда) ПараметрыЗаполнения = Новый Структура; ПараметрыЗаполнения.Вставить("ИмяСобытия", ОтчетыКлиентСервер.ИмяСобытияНастройкиПоУмолчанию()); - + Если ВариантМодифицирован Или ПустаяСтрока(ФормаПараметры.КлючНазначенияИспользования) Тогда ПараметрыЗаполнения.Вставить("СброситьНастройкиВарианта", Истина); ПараметрыЗаполнения.Вставить("ВариантМодифицирован", Ложь); @@ -773,30 +799,30 @@ ПараметрыЗаполнения.Вставить("СброситьПользовательскиеНастройки", Истина); ПараметрыЗаполнения.Вставить("ПользовательскиеНастройкиМодифицированы", Истина); - + ОтчетСформирован = Ложь; - + ФормаПараметры.Вставить("СброситьНастройки", Истина); СброситьВыбранныйУровеньГруппировок(); ВариантыОтчетовСлужебныйКлиент.СброситьПометкиСтекаНастроек(СтекНастроек); - ОбновитьЭлементыФормыНастроек(ПараметрыЗаполнения); + ОбновитьЭлементыФормыНастроек(ПараметрыЗаполнения); КонецПроцедуры &НаКлиенте Процедура СохранитьВариант(Команда) - - Если Не ВариантМодифицирован Тогда + + Если Не ВариантМодифицирован Тогда Возврат; КонецЕсли; - + СохранитьВариантОтчета(); - + КонецПроцедуры &НаКлиенте Процедура ОтправитьПоПочте(Команда) ОтображениеСостояния = Элементы.ОтчетТабличныйДокумент.ОтображениеСостояния; - Если ОтображениеСостояния.Видимость = Истина + Если ОтображениеСостояния.Видимость = Истина И ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.Неактуальность Тогда ТекстВопроса = НСтр("ru = 'Отчет не сформирован. Сформировать?'"); Обработчик = Новый ОписаниеОповещения("СформироватьПередОтправкойПоПочте", ЭтотОбъект); @@ -817,50 +843,69 @@ Процедура ФормироватьСразу(Команда) ФормироватьСразу = Не Элементы.ФормироватьСразу.Пометка; Элементы.ФормироватьСразу.Пометка = ФормироватьСразу; - + СостояниеДоИзменения = Новый Структура("Видимость, ДополнительныйРежимОтображения, Картинка, Текст"); ЗаполнитьЗначенияСвойств(СостояниеДоИзменения, Элементы.ОтчетТабличныйДокумент.ОтображениеСостояния); - - Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("ФормироватьСразу", ФормироватьСразу); + + Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("ФормироватьСразу", + ФормироватьСразу); ПользовательскиеНастройкиМодифицированы = Истина; - + ЗаполнитьЗначенияСвойств(Элементы.ОтчетТабличныйДокумент.ОтображениеСостояния, СостояниеДоИзменения); КонецПроцедуры &НаКлиенте Процедура ДругиеОтчеты(Команда) ОписаниеНастроекОтчета = ОписаниеНастроекОтчета(НастройкиОтчета); - + ВидимыеВарианты = Новый Массив; Для Каждого Строка Из ДобавленныеВарианты Цикл ВидимыеВарианты.Добавить(Строка.Ссылка); КонецЦикла; - + ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ВариантСсылка", НастройкиОтчета.ВариантСсылка); ПараметрыФормы.Вставить("ОтчетСсылка", НастройкиОтчета.ОтчетСсылка); ПараметрыФормы.Вставить("ПодсистемаСсылка", ФормаПараметры.Подсистема); ПараметрыФормы.Вставить("ОтчетНаименование", ОписаниеНастроекОтчета.Наименование); ПараметрыФормы.Вставить("ВидимыеВарианты", Новый ФиксированныйМассив(ВидимыеВарианты)); - Блокировать = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; - ОткрытьФорму("ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.ПанельДругихОтчетов", ПараметрыФормы, ЭтотОбъект, Истина, , , , Блокировать); + ОткрытьФорму("ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.ПанельДругихОтчетов", ПараметрыФормы, ЭтотОбъект, + Истина,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + КонецПроцедуры &НаКлиенте Процедура ИзменитьСоставБыстрыхНастроек(Команда) - + ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("НастройкиОтчета", НастройкиОтчета); ПараметрыФормы.Вставить("КомпоновщикНастроек", Отчет.КомпоновщикНастроек); ПараметрыФормы.Вставить("КлючТекущегоВарианта", КлючТекущегоВарианта); ПараметрыФормы.Вставить("ВыводитьЗаголовкиНастроек", ВыводитьЗаголовкиНастроек); - + Обработчик = Новый ОписаниеОповещения("ПослеИзмененияСоставаБыстрыхНастроек", ЭтотОбъект); - - ОткрытьФорму("ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.БыстрыеНастройкиОтчета", - ПараметрыФормы, ЭтотОбъект, УникальныйИдентификатор,,, Обработчик); - + ОткрытьФорму("ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.БыстрыеНастройкиОтчета", ПараметрыФормы, + ЭтотОбъект, УникальныйИдентификатор,,, Обработчик); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьРасположениеРесурсов(Команда) + + РасположениеРесурсов = Элементы.ДекорацияИзменитьРасположениеРесурсов.Заголовок; + ЗначениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра( + Новый ПараметрКомпоновкиДанных("РасположениеРесурсов")); + Если ЗначениеПараметра <> Неопределено Тогда + ЗначениеПараметра.Использование = Истина; + ЗначениеПараметра.Значение = РасположениеРесурсовКомпоновкиДанных[РасположениеРесурсов]; + КонецЕсли; + Элементы.ДекорацияИзменитьРасположениеРесурсов.Заголовок = ?(РасположениеРесурсов = "Вертикально", "Горизонтально", + "Вертикально"); + + ОчиститьСообщения(); + Сформировать(); + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -868,50 +913,50 @@ &НаКлиенте Процедура ЗагрузитьСхему(Команда) - + ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьСхемуПослеПомещенияФайла", ЭтотОбъект); - + ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла(); ПараметрыЗагрузки.Диалог.Фильтр = НСтр("ru = 'Файлы XML (*.xml) |*.xml'"); ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор; - + ФайловаяСистемаКлиент.ЗагрузитьФайл(ОписаниеОповещения, ПараметрыЗагрузки); - + КонецПроцедуры &НаКлиенте Процедура РедактироватьСхему(Команда) -#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда +#Если ТолстыйКлиентОбычноеПриложение Или ТолстыйКлиентУправляемоеПриложение Тогда СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(НастройкиОтчета.АдресСхемы); - + Если СхемаКомпоновкиДанных.НастройкиПоУмолчанию.ДополнительныеСвойства.Свойство("СхемаКомпоновкиДанных") Тогда СхемаКомпоновкиДанных.НастройкиПоУмолчанию.ДополнительныеСвойства.СхемаКомпоновкиДанных = Неопределено; КонецЕсли; - + Конструктор = Новый КонструкторСхемыКомпоновкиДанных(СхемаКомпоновкиДанных); Конструктор.Редактировать(ЭтотОбъект); #Иначе - ПоказатьПредупреждение(, (НСтр("ru = 'Для того чтобы редактировать схему компоновки, запустите приложение в режиме толстого клиента.'"))); + ПоказатьПредупреждение(, НСтр("ru = 'Для того чтобы редактировать схему компоновки, запустите приложение в режиме толстого клиента.'")); #КонецЕсли КонецПроцедуры &НаКлиенте Процедура ВосстановитьСтандартнуюСхему(Команда) Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Очистить(); - + ПараметрыДанных = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы; ИменаПараметровКОчистке = СтрРазделить("ТипОбъектаМетаданных, ИмяОбъектаМетаданных, ИмяТаблицы", ", ", Ложь); - Для Каждого ИмяПараметра Из ИменаПараметровКОчистке Цикл + Для Каждого ИмяПараметра Из ИменаПараметровКОчистке Цикл НайденныйПараметр = ПараметрыДанных.Найти(ИмяПараметра); - Если НайденныйПараметр <> Неопределено Тогда + Если НайденныйПараметр <> Неопределено Тогда НайденныйПараметр.Значение = Неопределено; КонецЕсли; КонецЦикла; - + ПараметрыЗаполнения = Новый Структура; ПараметрыЗаполнения.Вставить("КомпоновщикНастроекКД", Отчет.КомпоновщикНастроек); ПараметрыЗаполнения.Вставить("ПользовательскиеНастройкиМодифицированы", Истина); - + ОбновитьЭлементыФормыНастроек(ПараметрыЗаполнения); КонецПроцедуры @@ -920,15 +965,13 @@ &НаКлиенте Процедура СохранитьВариантОтчетаВФайл(Команда) - ОткрытьФорму( - "ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.СохранениеВариантаОтчетаВФайл", - ВариантыОтчетовСлужебныйКлиент.ПараметрыСохраненияВариантаОтчетаВФайл(ЭтотОбъект), - ЭтотОбъект); + ОткрытьФорму("ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.СохранениеВариантаОтчетаВФайл", + ВариантыОтчетовСлужебныйКлиент.ПараметрыСохраненияВариантаОтчетаВФайл(ЭтотОбъект), ЭтотОбъект); КонецПроцедуры &НаКлиенте Процедура ОбновитьВариантОтчетаИзФайла(Команда) - + СвойстваВариантаОтчета = ВариантыОтчетовКлиент.СвойстваВариантаОтчетаОснования(); СвойстваВариантаОтчета.Ссылка = НастройкиОтчета.ВариантСсылка; СвойстваВариантаОтчета.ИмяОтчета = НастройкиОтчета.ПолноеИмя; @@ -939,14 +982,14 @@ &НаКлиенте Процедура ПоделитьсяНастройками(Команда) - ОписаниеНастроек = Новый Структура(); + ОписаниеНастроек = Новый Структура; ОписаниеНастроек.Вставить("ВариантОтчета", НастройкиОтчета.ВариантСсылка); ОписаниеНастроек.Вставить("КлючОбъекта", НастройкиОтчета.ПолноеИмя + "/" + КлючТекущегоВарианта); ОписаниеНастроек.Вставить("КлючНастроек", КлючТекущихПользовательскихНастроек); ОписаниеНастроек.Вставить("Представление", ПредставлениеТекущихПользовательскихНастроек); ОписаниеНастроек.Вставить("Настройки", Отчет.КомпоновщикНастроек.ПользовательскиеНастройки); ОписаниеНастроек.Вставить("ВариантМодифицирован", ВариантМодифицирован); - + ВариантыОтчетовКлиент.ПоделитьсяПользовательскимиНастройками(ОписаниеНастроек); КонецПроцедуры @@ -955,13 +998,34 @@ &НаКлиенте Процедура СохранитьОтчет(Команда) - + ТекстПредложения = НСтр("ru = 'Для сохранения результата отчета в файл рекомендуется |установить расширение для работы с файлами.'"); - + Обработчик = Новый ОписаниеОповещения("СохранитьОтчетЗавершение", ЭтотОбъект); ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Обработчик, ТекстПредложения); - + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьСнимокОтчета(Команда) + + Если НастройкиОтчета.СвойстваРезультата.КомпоновщикНастроек = Неопределено Тогда + ТекстПредупреждения = НСтр("ru = 'Перед сохранением снимка необходимо сформировать отчет'"); + ПоказатьПредупреждение(, ТекстПредупреждения); + Возврат; + КонецЕсли; + + СохранитьСнимокОтчетаПользователя(); + +КонецПроцедуры + +&НаКлиенте +Процедура СнимкиОтчетов(Команда) + + ОткрытьФорму("РегистрСведений.СнимкиОтчетов.ФормаСписка", Новый Структура("Пользователь", + ПользователиКлиент.ТекущийПользователь())); + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -969,151 +1033,151 @@ &НаКлиенте Процедура СгруппироватьПоВыбранномуПолю(Команда) - + ВариантыОтчетовСлужебныйКлиент.СгруппироватьПоВыбранномуПолю(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ВставитьПолеСлева(Команда) - + ВариантыОтчетовСлужебныйКлиент.ВставитьПолеСлева(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ВставитьПолеСправа(Команда) - + ВариантыОтчетовСлужебныйКлиент.ВставитьПолеСправа(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ВставитьГруппировкуВыше(Команда) - + ВариантыОтчетовСлужебныйКлиент.ВставитьГруппировкуВыше(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ВставитьГруппировкуНиже(Команда) - + ВариантыОтчетовСлужебныйКлиент.ВставитьГруппировкуНиже(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ПереместитьПолеВлево(Команда) - + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеВлево(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ПереместитьПолеВправо(Команда) - + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеВправо(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ПереместитьПолеВыше(Команда) - + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеВыше(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ПереместитьПолеНиже(Команда) - + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеНиже(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура СкрытьПоле(Команда) - + ВариантыОтчетовСлужебныйКлиент.СкрытьПоле(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ПереименоватьПоле(Команда) - + ВариантыОтчетовСлужебныйКлиент.ПереименоватьПоле(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура СнятьФильтр(Команда) - + ВариантыОтчетовСлужебныйКлиент.СнятьФильтр(ЭтотОбъект, СвойстваЗаголовка()); - + КонецПроцедуры &НаКлиенте Процедура Фильтровать(Команда) - + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета СвойстваЗаголовка = СвойстваРезультата.Заголовки[ИмяТекущейОбластиЯчеек()]; ВариантыОтчетовСлужебныйКлиент.ПоказатьРасширеннуюНастройкуФильтра(ЭтотОбъект, СвойстваЗаголовка); - + КонецПроцедуры &НаКлиенте Процедура СортироватьПоВозрастанию(Команда) - + ВариантыОтчетовСлужебныйКлиент.Сортировать(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура СортироватьПоУбыванию(Команда) - + ВариантыОтчетовСлужебныйКлиент.Сортировать(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ОчиститьОформление(Команда) - + ВариантыОтчетовСлужебныйКлиент.ОчиститьОформление(ЭтотОбъект, СвойстваЗаголовка()); - + КонецПроцедуры &НаКлиенте Процедура ОформитьОтрицательные(Команда) - + ВариантыОтчетовСлужебныйКлиент.ОформитьКрасным(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ОформитьПоложительные(Команда) - + ВариантыОтчетовСлужебныйКлиент.ОформитьЗеленым(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура УстановитьВысотуСтроки(Команда) - + ВариантыОтчетовСлужебныйКлиент.УстановитьВысотуСтроки(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура УстановитьШиринуКолонки(Команда) - + ВариантыОтчетовСлужебныйКлиент.УстановитьШиринуКолонки(ЭтотОбъект, Команда); - + КонецПроцедуры &НаКлиенте Процедура ОформитьЕще(Команда) - + ВариантыОтчетовСлужебныйКлиент.ОформитьЕще(ЭтотОбъект, Команда); - + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -1121,10 +1185,10 @@ &НаКлиенте Процедура ВыбратьПоказательНажатие(Элемент) - + Меню = МенюВидовПоказателей(Элементы.КомандыВидовПоказателей); ПоказатьВыборИзМеню(Новый ОписаниеОповещения("ПослеВыбораПоказателя", ЭтотОбъект), Меню, Элемент); - + КонецПроцедуры &НаКлиенте @@ -1171,13 +1235,13 @@ // &НаКлиенте Процедура Подключаемый_Команда(Команда) - + ПрефиксИмени = ОтчетыКлиентСервер.ПрефиксИмениКомандыСПредварительнымСохранениемВариантаОтчета(); Если СтрНачинаетсяС(Команда.Имя, ПрефиксИмени) И ТребуетсяСохранитьВариант() Тогда СохранитьНовыйИлиСуществующийВариантОтчетаИПродолжить(Команда); Возврат; КонецЕсли; - + ПостояннаяКоманда = ПостоянныеКоманды.НайтиПоЗначению(Команда.Имя); Если ПостояннаяКоманда <> Неопределено И ЗначениеЗаполнено(ПостояннаяКоманда.Представление) Тогда МассивПодстрок = СтрРазделить(ПостояннаяКоманда.Представление, "."); @@ -1200,15 +1264,15 @@ ПоказатьПредупреждение(, НСтр("ru = 'Вариант отчета не существует.'")); Возврат; КонецЕсли; - + ВариантФормы = Найденные[0]; - НастройкиОтчета.ФормаНастроекРасширенныйРежим = 0; + НастройкиОтчета.ФормаНастроекРасширенныйРежим = 0; ФормаПараметры.Вставить("СброситьНастройки", Истина); - ЗагрузитьВариант(ВариантФормы.КлючВарианта, Ложь); - + ЗагрузитьВариант(ВариантФормы.КлючВарианта, Ложь); + КлючУникальности = ОтчетыКлиентСервер.КлючУникальности(НастройкиОтчета.ПолноеИмя, ВариантФормы.КлючВарианта); - + Если Элементы.ФормироватьСразу.Пометка Тогда ПодключитьОбработчикОжидания("Сформировать", 0.1, Истина); КонецЕсли; @@ -1216,14 +1280,14 @@ &НаКлиенте Процедура Подключаемый_ПоказатьУровеньГруппировок(Команда) - + УровеньГруппировкиСтрокой = СтрЗаменить(Команда.Имя, Элементы.ПоказатьУровеньГруппировок.Имя, ""); - + ОписаниеЧисла = Новый ОписаниеТипов("Число"); УровеньГруппировки = ОписаниеЧисла.ПривестиЗначение(УровеньГруппировкиСтрокой); - + ПоказатьВыбранныйУровеньГруппировок(УровеньГруппировки); - + КонецПроцедуры // Параметры: @@ -1231,27 +1295,26 @@ // &НаКлиенте Процедура Подключаемый_ПерейтиМеждуИзменениямиНастроек(Команда) - + ПредставлениеПорядка = СтрЗаменить(Команда.Имя, ПрефиксИмениКомандыПереходаМеждуИзменениямиНастроек(), ""); ОписаниеЧисла = Новый ОписаниеТипов("Число"); Порядок = ОписаниеЧисла.ПривестиЗначение(ПредставлениеПорядка); - + НайденныеЗаписи = СтекНастроек.НайтиСтроки(Новый Структура("Порядок", Порядок)); ТекущиеНастройкиСтека = НайденныеЗаписи[0]; - + Результат = ВариантыОтчетовСлужебныйКлиент.РезультатКонтекстнойНастройки( Отчет.КомпоновщикНастроек, ТекущиеНастройкиСтека.Действие, УникальныйИдентификатор); - + Результат.Вставить("НастройкиКД", ТекущиеНастройкиСтека.Настройки); Результат.Удалить("КомпоновщикНастроекКД"); - + УточнитьПризнакАвтоформированияОтчета(Результат); - + ВариантыОтчетовСлужебныйКлиент.СброситьПометкиСтекаНастроек(СтекНастроек); ТекущиеНастройкиСтека.Пометка = Истина; - - ПрименитьНастройкиИПереформироватьОтчет(Результат, Неопределено); - + + КонецПроцедуры #КонецОбласти @@ -1263,54 +1326,49 @@ &НаКлиенте Процедура ОпределитьПоведениеНаНачальнойСтранице() - + ОкноНачальнойСтраницы = Неопределено; - + ОкнаПрограммы = ПолучитьОкна(); - - Для Каждого ОкноПрограммы Из ОкнаПрограммы Цикл - - Если ОкноПрограммы.НачальнаяСтраница Тогда - + + Для Каждого ОкноПрограммы Из ОкнаПрограммы Цикл + + Если ОкноПрограммы.НачальнаяСтраница Тогда + ОкноНачальнойСтраницы = ОкноПрограммы; Прервать; - + КонецЕсли; - + КонецЦикла; - - Если ОкноНачальнойСтраницы = Неопределено Тогда + + Если ОкноНачальнойСтраницы = Неопределено Тогда Возврат; КонецЕсли; - + ЭтоФормаНачальнойСтраницы = Ложь; - - Для Каждого ФормаНачальнойСтраницы Из ОкноНачальнойСтраницы.Содержимое Цикл - - Если ФормаНачальнойСтраницы.ИмяФормы = ИмяФормы - И ФормаНачальнойСтраницы.КлючУникальности = КлючУникальности Тогда - + Для Каждого ФормаНачальнойСтраницы Из ОкноНачальнойСтраницы.Содержимое Цикл + Если ФормаНачальнойСтраницы.ИмяФормы = ИмяФормы И ФормаНачальнойСтраницы.КлючУникальности = КлючУникальности Тогда ЭтоФормаНачальнойСтраницы = Истина; Прервать; - КонецЕсли; - КонецЦикла; - - Если Не ЭтоФормаНачальнойСтраницы Тогда + + Если Не ЭтоФормаНачальнойСтраницы Тогда Возврат; КонецЕсли; - - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаСохранениеВыборВариантаОтчета", "Видимость", Ложь); + + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаСохранениеВыборВариантаОтчета", + "Видимость", Ложь); ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "Найти", "Видимость", Ложь); ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаВывод", "Видимость", Ложь); - + КонецПроцедуры &НаКлиенте Процедура ОбновитьЭлементыФормыНастроек(ПараметрыОбновления) ОбновитьЭлементыФормыНастроекНаСервере(ПараметрыОбновления); - + Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыОбновления, "Переформировать", Ложь) Тогда ОчиститьСообщения(); Сформировать(); @@ -1319,9 +1377,9 @@ &НаКлиенте Процедура ОбновитьЭлементыФормыНастроекОтложенно() - + ОбновитьЭлементыФормыНастроек(РезультатНастройки); - + КонецПроцедуры #Область ФормированиеСОтправкойПоПочте @@ -1346,30 +1404,41 @@ #Область Формирование &НаКлиенте -Процедура Сформировать() - +Асинх Процедура Сформировать() + + Если ЗначениеЗаполнено(ПутьКФайлуВнешнегоОтчетаНаКлиенте) И Не ЗначениеЗаполнено(АдресДвоичныхДанныхВнешнегоОтчета) Тогда + Результат = Ждать ПоместитьФайлНаСерверАсинх(,,, ПутьКФайлуВнешнегоОтчетаНаКлиенте, УникальныйИдентификатор); + Если ТипЗнч(Результат) = Тип("ОписаниеПомещенногоФайла") И Не Результат.ПомещениеФайлаОтменено Тогда + АдресДвоичныхДанныхВнешнегоОтчета = Результат.Адрес; + КонецЕсли; + КонецЕсли; + + СформироватьОтчет(); + +КонецПроцедуры + +&НаКлиенте +Процедура СформироватьОтчет() + НачатьЗамер(); ПараметрыФормирования = Новый Структура("ВремяНачалаФормирования", ТекущаяУниверсальнаяДатаВМиллисекундах()); - - Результат = РезультатФормированияОтчета(ФормированиеПриОткрытии, + Результат = РезультатФормированияОтчета(ФормированиеПриОткрытии, НастройкиОтчета.Внешний Или НастройкиОтчета.Безопасный, Ложь); - Если Результат = Неопределено Тогда Возврат; КонецЕсли; - + Контекст = Новый Структура; Контекст.Вставить("Результат", Результат); Контекст.Вставить("ПараметрыФормирования", ПараметрыФормирования); Контекст.Вставить("НастройкаОтказаОтПредупреждения", Неопределено); - + Если Результат.Свойство("ИмяПараметраХраненияОтказаОтПредупреждения") Тогда Предупредить = Истина; ПредлагатьБольшеНеПредупреждать = Истина; - + Если ЗначениеЗаполнено(Результат.ИмяПараметраХраненияОтказаОтПредупреждения) Тогда - ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных( - Результат.ИмяПараметраХраненияОтказаОтПредупреждения); + ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных(Результат.ИмяПараметраХраненияОтказаОтПредупреждения); Для Каждого Настройка Из Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл Если Настройка.Параметр = ПараметрКомпоновки Тогда Контекст.НастройкаОтказаОтПредупреждения = Настройка; @@ -1384,11 +1453,11 @@ Иначе ПредлагатьБольшеНеПредупреждать = Ложь; КонецЕсли; - + Если Предупредить Тогда Кнопки = Новый СписокЗначений; Кнопки.Добавить("Продолжить", НСтр("ru = 'Продолжить'")); - Кнопки.Добавить("Отмена", НСтр("ru = 'Отмена'")); + Кнопки.Добавить("Отмена", НСтр("ru = 'Отмена'")); ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю(); ПараметрыВопроса.КнопкаПоУмолчанию = "Отмена"; ПараметрыВопроса.Заголовок = Заголовок; @@ -1399,119 +1468,119 @@ Возврат; КонецЕсли; КонецЕсли; - + СформироватьПослеПредупреждения(Null, Контекст); - + КонецПроцедуры &НаКлиенте Процедура СформироватьПослеПредупреждения(Ответ, Контекст) Экспорт - + ПараметрыФормирования = Контекст.ПараметрыФормирования; - + Если Ответ = Null Тогда Результат = Контекст.Результат; - + ИначеЕсли ТипЗнч(Ответ) = Тип("Структура") Тогда - Если Ответ.БольшеНеЗадаватьЭтотВопрос - И Контекст.НастройкаОтказаОтПредупреждения <> Неопределено Тогда + Если Ответ.БольшеНеЗадаватьЭтотВопрос И Контекст.НастройкаОтказаОтПредупреждения <> Неопределено Тогда Контекст.НастройкаОтказаОтПредупреждения.Значение = Истина; КонецЕсли; Если Ответ.Значение = "Продолжить" Тогда НачатьЗамер(); ПараметрыФормирования.ВремяНачалаФормирования = ТекущаяУниверсальнаяДатаВМиллисекундах(); - Результат = РезультатФормированияОтчета(ФормированиеПриОткрытии, - НастройкиОтчета.Внешний Или НастройкиОтчета.Безопасный, Истина); + Результат = РезультатФормированияОтчета(ФормированиеПриОткрытии, НастройкиОтчета.Внешний + Или НастройкиОтчета.Безопасный, Истина); Иначе Возврат; КонецЕсли; Иначе Возврат; КонецЕсли; - + Если Результат = Неопределено Тогда Возврат; КонецЕсли; - + ПараметрыФормирования.Вставить("ЗагрузитьРезультат", Ложь); ПараметрыФормирования.Вставить("ИдентификаторЗадания", Результат.ИдентификаторЗадания); - - Если Результат.Статус <> "Выполняется" Тогда + + Если Результат.Статус <> "Выполняется" Тогда ПослеФормирования(Результат, ПараметрыФормирования); Возврат; КонецЕсли; - + ПараметрыФормирования.ЗагрузитьРезультат = Истина; - + Обработчик = Новый ОписаниеОповещения("ПослеФормирования", ЭтотОбъект, ПараметрыФормирования); ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); ПараметрыОжидания.ВыводитьОкноОжидания = Ложь; - + ДлительныеОперацииКлиент.ОжидатьЗавершение(Результат, Обработчик, ПараметрыОжидания); КонецПроцедуры &НаКлиенте Процедура НачатьЗамер() - + ВыполнятьЗамеры = НастройкиОтчета.ВыполнятьЗамеры И ЗначениеЗаполнено(НастройкиОтчета.КлючЗамеров); Если ВыполнятьЗамеры Тогда МодульОценкаПроизводительностиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОценкаПроизводительностиКлиент"); ИдентификаторЗамера = МодульОценкаПроизводительностиКлиент.ЗамерВремени( - НастройкиОтчета.КлючЗамеров + ".Формирование", - Ложь, Ложь); + НастройкиОтчета.КлючЗамеров + ".Формирование", Ложь, Ложь); Комментарий = Новый Соответствие; Комментарий.Вставить("Непосредственно", Непосредственно); МодульОценкаПроизводительностиКлиент.УстановитьКомментарийЗамера(ИдентификаторЗамера, Комментарий); КонецЕсли; - + КонецПроцедуры &НаКлиенте -Процедура ПослеФормирования(Результат, ПараметрыФормирования) Экспорт +Процедура ПослеФормирования(Результат, ПараметрыФормирования) Экспорт - Если ФоновоеЗаданиеИдентификатор <> ПараметрыФормирования.ИдентификаторЗадания Или Не Открыта() Тогда + Если ФоновоеЗаданиеИдентификатор <> ПараметрыФормирования.ИдентификаторЗадания Или Не Открыта() Тогда Возврат; КонецЕсли; - Если Результат = Неопределено Тогда - + Если Результат = Неопределено Тогда + ПоказатьОшибкиФормирования(НСтр("ru = 'Формирование отчета прервано администратором'")); - ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет не сформирован'"), Окно.ПолучитьНавигационнуюСсылку(), Заголовок); - - ИначеЕсли Результат.Статус = "Выполнено" Тогда - + ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет не сформирован'"), Окно.ПолучитьНавигационнуюСсылку(), + Заголовок); + + ИначеЕсли Результат.Статус = "Выполнено" Тогда + Если ПараметрыФормирования.ЗагрузитьРезультат Тогда ЗагрузитьРезультатФормированияОтчета(); КонецЕсли; - + НастройкиОтчета.СвойстваРезультата.ВремяФормирования = (ТекущаяУниверсальнаяДатаВМиллисекундах() - ПараметрыФормирования.ВремяНачалаФормирования) / 1000; - + ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет сформирован'"), Окно.ПолучитьНавигационнуюСсылку(), Заголовок); - + ИначеЕсли Результат.Статус = "Ошибка" Тогда - + ПоказатьОшибкиФормирования(Результат.КраткоеПредставлениеОшибки); - ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет не сформирован'"), Окно.ПолучитьНавигационнуюСсылку(), Заголовок); - + ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет не сформирован'"), Окно.ПолучитьНавигационнуюСсылку(), + Заголовок); + КонецЕсли; - + ФормированиеПриОткрытии = Ложь; - + ВыполнятьЗамеры = НастройкиОтчета.ВыполнятьЗамеры И ЗначениеЗаполнено(НастройкиОтчета.КлючЗамеров); Если ВыполнятьЗамеры Тогда МодульОценкаПроизводительностиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОценкаПроизводительностиКлиент"); МодульОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(ИдентификаторЗамера); КонецЕсли; - + ОтчетСформирован = ?(Результат = Неопределено, Ложь, Результат.Статус = "Выполнено"); - + ИнтеграцияПодсистемБСПКлиент.ПослеФормирования(ЭтотОбъект, ОтчетСформирован); ОтчетыКлиентПереопределяемый.ПослеФормирования(ЭтотОбъект, ОтчетСформирован); - + СброситьТекущуюОбласть(); ПоказатьВыбранныйУровеньГруппировок(); - + Обработчик = ОбработчикПослеФормированияНаКлиенте; Если ТипЗнч(Обработчик) = Тип("ОписаниеОповещения") Тогда ВыполнитьОбработкуОповещения(Обработчик, ОтчетСформирован); @@ -1522,12 +1591,12 @@ &НаСервере Функция РезультатФормированияОтчета(Знач ФормированиеПриОткрытии, Непосредственно, ПослеПредупреждения) - + Если ЗначениеЗаполнено(ФоновоеЗаданиеИдентификатор) Тогда ДлительныеОперации.ОтменитьВыполнениеЗадания(ФоновоеЗаданиеИдентификатор); ФоновоеЗаданиеИдентификатор = Неопределено; КонецЕсли; - + Если Не ПроверитьЗаполнение() Тогда Если ФормированиеПриОткрытии Тогда ТекстОшибки = ""; @@ -1539,7 +1608,7 @@ КонецЕсли; Возврат Неопределено; КонецЕсли; - + Если НастройкиОтчета.События.ПередФормированиемОтчета И Не ПослеПредупреждения Тогда ПараметрыВопроса = Новый Структура; ПараметрыВопроса.Вставить("ТекстПредупреждения", ""); @@ -1550,23 +1619,20 @@ Возврат ПараметрыВопроса; КонецЕсли; КонецЕсли; - + ИмяОтчета = СтрРазделить(НастройкиОтчета.ПолноеИмя, ".")[1]; ПараметрыФормирования = ПараметрыФормированияОтчета(ИмяОтчета, Непосредственно); ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); ПараметрыВыполнения.НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Выполнение отчета: %1'"), - ИмяОтчета); + НСтр("ru = 'Выполнение отчета: %1'"), ИмяОтчета); ПараметрыВыполнения.ЗапуститьНеВФоне = Непосредственно; - - Результат = ДлительныеОперации.ВыполнитьВФоне( - "ВариантыОтчетов.СформироватьОтчетВФоне", - ПараметрыФормирования, + + Результат = ДлительныеОперации.ВыполнитьВФоне("ВариантыОтчетов.СформироватьОтчетВФоне", ПараметрыФормирования, ПараметрыВыполнения); - + ФоновоеЗаданиеИдентификатор = Результат.ИдентификаторЗадания; ФоновоеЗаданиеАдресХранилища = Результат.АдресРезультата; - + Если Результат.Статус <> "Выполняется" Тогда ЗагрузитьРезультатФормированияОтчета(); Иначе @@ -1574,55 +1640,55 @@ ЭтотОбъект, НСтр("ru = 'Отчет формируется...'"), БиблиотекаКартинок.ДлительнаяОперация48); КонецЕсли; Возврат Результат; - + КонецФункции &НаСервере Функция ПараметрыФормированияОтчета(ИмяОтчета, Непосредственно) + ДополнительныеСвойства = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства; ДополнительныеСвойства.Вставить("ВариантМодифицирован", ВариантМодифицирован); ДополнительныеСвойства.Вставить("ПользовательскиеНастройкиМодифицированы", ПользовательскиеНастройкиМодифицированы); - - ПараметрыФормированияОтчета = Новый Структура; - ПараметрыФормированияОтчета.Вставить("СсылкаОтчета", НастройкиОтчета.ОтчетСсылка); - ПараметрыФормированияОтчета.Вставить("СсылкаВарианта", НастройкиОтчета.ВариантСсылка); - ПараметрыФормированияОтчета.Вставить("КлючВарианта", КлючТекущегоВарианта); - ПараметрыФормированияОтчета.Вставить("НастройкиКД", Отчет.КомпоновщикНастроек.Настройки); - ПараметрыФормированияОтчета.Вставить("ФиксированныеНастройкиКД", Отчет.КомпоновщикНастроек.ФиксированныеНастройки); - ПараметрыФормированияОтчета.Вставить("ПользовательскиеНастройкиКД", Отчет.КомпоновщикНастроек.ПользовательскиеНастройки); - ПараметрыФормированияОтчета.Вставить("СхемаМодифицирована", НастройкиОтчета.СхемаМодифицирована); - ПараметрыФормированияОтчета.Вставить("КлючСхемы", НастройкиОтчета.КлючСхемы); - ПараметрыФормированияОтчета.Вставить("ИмяКлючевойОперации"); - ПараметрыФормированияОтчета.Вставить("КомментарийКлючевойОперации"); - ПараметрыФормированияОтчета.Вставить("ИспользуемыеТаблицы", НастройкиОтчета.ИспользуемыеТаблицы); - ПараметрыФормированияОтчета.Вставить("ПараметрыИзменены", ПараметрыИзменены); - + + ПараметрыФормированияОтчета = ВариантыОтчетов.ПараметрыФормированияОтчета(); + ПараметрыФормированияОтчета.СсылкаОтчета = НастройкиОтчета.ОтчетСсылка; + ПараметрыФормированияОтчета.СсылкаВарианта = НастройкиОтчета.ВариантСсылка; + ПараметрыФормированияОтчета.КлючВарианта = КлючТекущегоВарианта; + ПараметрыФормированияОтчета.КлючСхемы = НастройкиОтчета.КлючСхемы; + ПараметрыФормированияОтчета.ИспользуемыеТаблицы = НастройкиОтчета.ИспользуемыеТаблицы; + ПараметрыФормированияОтчета.ДвоичныеДанныеВнешнегоОтчета = ?(ЗначениеЗаполнено(АдресДвоичныхДанныхВнешнегоОтчета), + ПолучитьИзВременногоХранилища(АдресДвоичныхДанныхВнешнегоОтчета), Неопределено); + ПараметрыФормированияОтчета.ПараметрыИзменены = ПараметрыИзменены; + ПараметрыФормированияОтчета.СхемаМодифицирована = НастройкиОтчета.СхемаМодифицирована; + ПараметрыФормированияОтчета.НастройкиКД = Отчет.КомпоновщикНастроек.Настройки; + ПараметрыФормированияОтчета.ФиксированныеНастройкиКД = Отчет.КомпоновщикНастроек.ФиксированныеНастройки; + ПараметрыФормированияОтчета.ПользовательскиеНастройкиКД = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки; ЗаполнитьЗначенияСвойств(ПараметрыФормированияОтчета, ПараметрыЗамеровФормированияОтчета(ИмяОтчета)); - + Если Непосредственно Тогда Если НастройкиОтчета.СхемаМодифицирована Тогда - ПараметрыФормированияОтчета.Вставить("АдресСхемы", НастройкиОтчета.АдресСхемы); + ПараметрыФормированияОтчета.АдресСхемы = НастройкиОтчета.АдресСхемы; КонецЕсли; - ПараметрыФормированияОтчета.Вставить("Объект", РеквизитФормыВЗначение("Отчет")); - ПараметрыФормированияОтчета.Вставить("ПолноеИмя", НастройкиОтчета.ПолноеИмя); + ПараметрыФормированияОтчета.Объект = РеквизитФормыВЗначение("Отчет"); + ПараметрыФормированияОтчета.ПолноеИмя = НастройкиОтчета.ПолноеИмя; Иначе Если НастройкиОтчета.СхемаМодифицирована Тогда - ПараметрыФормированияОтчета.Вставить("СхемаКД", ПолучитьИзВременногоХранилища(НастройкиОтчета.АдресСхемы)); + ПараметрыФормированияОтчета.СхемаКД = ПолучитьИзВременногоХранилища(НастройкиОтчета.АдресСхемы); КонецЕсли; КонецЕсли; - + Возврат ПараметрыФормированияОтчета; + КонецФункции &НаСервере Функция ПараметрыЗамеровФормированияОтчета(ИмяОтчета) ПараметрыЗамеров = Новый Структура("ИмяКлючевойОперации, КомментарийКлючевойОперации"); - - Если Не НастройкиОтчета.ВыполнятьЗамеры - Или Не ЗначениеЗаполнено(НастройкиОтчета.КлючЗамеров) Тогда + + Если Не НастройкиОтчета.ВыполнятьЗамеры Или Не ЗначениеЗаполнено(НастройкиОтчета.КлючЗамеров) Тогда Возврат ПараметрыЗамеров; КонецЕсли; - + КомментарийКлючевойОперации = Новый Соответствие; КомментарийКлючевойОперации.Вставить("ИмяОтчета", ИмяОтчета); КомментарийКлючевойОперации.Вставить("КлючПредопределенногоВарианта", НастройкиОтчета.КлючПредопределенногоВарианта); @@ -1630,66 +1696,64 @@ КомментарийКлючевойОперации.Вставить("Пользовательский", Число(НастройкиОтчета.Пользовательский)); КомментарийКлючевойОперации.Вставить("Расшифровка", Число(РежимРасшифровки)); КомментарийКлючевойОперации.Вставить("Модифицирован", Число(ВариантМодифицирован)); - + ПараметрыЗамеров.ИмяКлючевойОперации = НастройкиОтчета.КлючЗамеров + ".Формирование"; ПараметрыЗамеров.КомментарийКлючевойОперации = КомментарийКлючевойОперации; - + Возврат ПараметрыЗамеров; КонецФункции &НаСервере Процедура ЗагрузитьРезультатФормированияОтчета() - Если Не ЭтоАдресВременногоХранилища(ФоновоеЗаданиеАдресХранилища) Тогда + Если Не ЭтоАдресВременногоХранилища(ФоновоеЗаданиеАдресХранилища) Тогда ПоказатьОшибкиФормирования(НСтр("ru = 'Не удалось сформировать отчет'")); Возврат; КонецЕсли; - + Результат = ПолучитьИзВременногоХранилища(ФоновоеЗаданиеАдресХранилища); - + УдалитьИзВременногоХранилища(ФоновоеЗаданиеАдресХранилища); ФоновоеЗаданиеАдресХранилища = Неопределено; ФоновоеЗаданиеИдентификатор = Неопределено; - - Если Результат = Неопределено Тогда + + Если Результат = Неопределено Тогда ПоказатьОшибкиФормирования(НСтр("ru = 'Не удалось сформировать отчет (пустой результат)'")); Возврат; КонецЕсли; - + Успех = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "Успех"); Если Успех <> Истина Тогда ПоказатьОшибкиФормирования(Результат.ТекстОшибки); Возврат; КонецЕсли; - + ДанныеЕщеОбновляются = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "ДанныеЕщеОбновляются", Ложь); Если ДанныеЕщеОбновляются Тогда ОбщегоНазначения.СообщитьПользователю(ВариантыОтчетов.СообщениеДанныеЕщеОбновляются()); КонецЕсли; - + ОтчетыКлиентСервер.ОтобразитьСостояниеОтчета(ЭтотОбъект); - + ЗаполнитьЗначенияСвойств(НастройкиОтчета.Печать, ОтчетТабличныйДокумент); // Сохранение настроек печати. ОтчетТабличныйДокумент = Результат.ТабличныйДокумент; ЗаполнитьЗначенияСвойств(ОтчетТабличныйДокумент, НастройкиОтчета.Печать); // Восстановление. ОтчетСформирован = Истина; - + Если ЗначениеЗаполнено(ОтчетДанныеРасшифровки) И ЭтоАдресВременногоХранилища(ОтчетДанныеРасшифровки) Тогда УдалитьИзВременногоХранилища(ОтчетДанныеРасшифровки); КонецЕсли; ОтчетДанныеРасшифровки = ПоместитьВоВременноеХранилище(Результат.Расшифровка, УникальныйИдентификатор); - + ВариантыОтчетовСлужебный.ИнициализироватьЗаголовкиОтчета(ЭтотОбъект); ИнициализироватьМенюУровнейГруппировок(); - - Если Не Результат.ВариантМодифицирован - И Не Результат.ПользовательскиеНастройкиМодифицированы Тогда - + + Если Не Результат.ВариантМодифицирован И Не Результат.ПользовательскиеНастройкиМодифицированы Тогда Возврат; КонецЕсли; - + Результат.Вставить("ИмяСобытия", "ПослеФормирования"); Результат.Вставить("Непосредственно", Ложь); - + ОбновитьЭлементыФормыНастроекНаСервере(Результат); КонецПроцедуры @@ -1698,13 +1762,15 @@ &НаКлиенте Процедура ПоказатьДиалогОтправкиПоПочте() Вложение = Новый Структура; - Вложение.Вставить("АдресВоВременномХранилище", ПоместитьВоВременноеХранилище(ОтчетТабличныйДокумент, УникальныйИдентификатор)); + Вложение.Вставить("АдресВоВременномХранилище", ПоместитьВоВременноеХранилище(ОтчетТабличныйДокумент, + УникальныйИдентификатор)); Вложение.Вставить("Представление", ОтчетНаименованиеТекущегоВарианта); - + СписокВложений = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Вложение); - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда - МодульРаботаСПочтовымиСообщениямиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСПочтовымиСообщениямиКлиент"); + МодульРаботаСПочтовымиСообщениямиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль( + "РаботаСПочтовымиСообщениямиКлиент"); ПараметрыОтправки = МодульРаботаСПочтовымиСообщениямиКлиент.ПараметрыОтправкиПисьма(); ПараметрыОтправки.Тема = ОтчетНаименованиеТекущегоВарианта; ПараметрыОтправки.Вложения = СписокВложений; @@ -1719,68 +1785,65 @@ &НаКлиенте Процедура ПоказатьСписокВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; - + Сведения = ОтчетыКлиент.СведенияОЭлементеНастройки(Отчет.КомпоновщикНастроек, Элемент.Имя); ОписаниеНастроек = Сведения.Описание; - + ПользовательскиеНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; - + ПараметрыВыбора = ОтчетыКлиентСервер.ПараметрыВыбора( Сведения.Настройки, ПользовательскиеНастройки, Сведения.Элемент); - + РасширенноеОписаниеТипов = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( - Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства, - "РасширенноеОписаниеТипов"); - + Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства, "РасширенноеОписаниеТипов"); + ТипЗначения = Неопределено; - Если РасширенноеОписаниеТипов <> Неопределено Тогда + Если РасширенноеОписаниеТипов <> Неопределено Тогда РасширенноеОписаниеТипа = РасширенноеОписаниеТипов[Сведения.Индекс]; - Если РасширенноеОписаниеТипа <> Неопределено Тогда + Если РасширенноеОписаниеТипа <> Неопределено Тогда ТипЗначения = РасширенноеОписаниеТипа.ОписаниеТиповДляФормы; КонецЕсли; КонецЕсли; - + Элемент.ДоступныеТипы = ОтчетыКлиент.ТипЗначенияОграниченныйСвязьюПоТипу( Сведения.Настройки, ПользовательскиеНастройки, Сведения.Элемент, ОписаниеНастроек, ТипЗначения); - - Если ТипЗнч(Сведения.ЭлементПользовательскойНастройки) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда + + Если ТипЗнч(Сведения.ЭлементПользовательскойНастройки) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда ТекущееЗначение = Сведения.ЭлементПользовательскойНастройки.Значение; Иначе ТекущееЗначение = Сведения.ЭлементПользовательскойНастройки.ПравоеЗначение; КонецЕсли; - + ОтмеченныеЗначения = ОтчетыКлиентСервер.ЗначенияСписком(ТекущееЗначение); ДоступныеЗначения = ?(ОписаниеНастроек = Неопределено, Неопределено, ОписаниеНастроек.ДоступныеЗначения); - + Условие = ОтчетыКлиентСервер.УсловиеЭлементаНастройки(Сведения.ЭлементПользовательскойНастройки, ОписаниеНастроек); ВыборГруппИЭлементов = ОтчетыКлиент.ЗначениеТипаИспользованиеГруппИЭлементов( ?(ОписаниеНастроек = Неопределено, Неопределено, ОписаниеНастроек.ВыборГруппИЭлементов), Условие); - - ЗначенияДляВыбора = ЗначенияДляВыбора( - Элемент.СписокВыбора, - Сведения.ЭлементПользовательскойНастройки, - Элемент.ДоступныеТипы, - ДоступныеЗначения); - + + ЗначенияДляВыбора = ЗначенияДляВыбора(Элемент.СписокВыбора, Сведения.ЭлементПользовательскойНастройки, + Элемент.ДоступныеТипы, ДоступныеЗначения); + ОграничиватьВыборУказаннымиЗначениями = ДоступныеЗначения <> Неопределено; - + ПараметрыОбработчика = Новый Структура; ПараметрыОбработчика.Вставить("ЭлементПользовательскойНастройки", Сведения.ЭлементПользовательскойНастройки); ПараметрыОбработчика.Вставить("ОграничиватьВыборУказаннымиЗначениями", ОграничиватьВыборУказаннымиЗначениями); ПараметрыОбработчика.Вставить("ИмяЭлемента", Элемент.Имя); - + Обработчик = Новый ОписаниеОповещения("ЗавершитьВыборИзСписка", ЭтотОбъект, ПараметрыОбработчика); - - Если ОтчетыКлиент.ВыборПереопределен(ЭтотОбъект, Обработчик, Сведения.Описание, - Элемент.ДоступныеТипы, ОтмеченныеЗначения, ПараметрыВыбора) Тогда + + Если ОтчетыКлиент.ВыборПереопределен(ЭтотОбъект, Обработчик, Сведения.Описание, Элемент.ДоступныеТипы, + ОтмеченныеЗначения, ПараметрыВыбора) Тогда Возврат; КонецЕсли; - + Если ОтчетыКлиент.ЭтоВыборОбъектовМетаданных(Элемент.ДоступныеТипы, ОтмеченныеЗначения, Обработчик) - Или ОтчетыКлиент.ЭтоВыборПользователей(ЭтотОбъект, Элемент, Элемент.ДоступныеТипы, ОтмеченныеЗначения, ПараметрыВыбора, Обработчик) Тогда + Или ОтчетыКлиент.ЭтоВыборПользователей(ЭтотОбъект, Элемент, Элемент.ДоступныеТипы, ОтмеченныеЗначения, + ПараметрыВыбора, Обработчик) Тогда Возврат; КонецЕсли; - + ПараметрыОткрытия = Новый Структура; ПараметрыОткрытия.Вставить("Отмеченные", ОтмеченныеЗначения); ПараметрыОткрытия.Вставить("ОписаниеТипов", Элемент.ДоступныеТипы); @@ -1791,26 +1854,26 @@ ПараметрыОткрытия.Вставить("ПараметрыВыбора", Новый Массив(ПараметрыВыбора)); ПараметрыОткрытия.Вставить("ВыборГруппИЭлементов", ВыборГруппИЭлементов); ПараметрыОткрытия.Вставить("БыстрыйВыбор", ?(ОписаниеНастроек = Неопределено, Ложь, ОписаниеНастроек.БыстрыйВыбор)); - + ОткрытьФорму("ОбщаяФорма.ВводЗначенийСпискомСФлажками", ПараметрыОткрытия, ЭтотОбъект,,,, Обработчик); КонецПроцедуры &НаКлиенте Функция ЗначенияДляВыбора(СписокВыбора, ЭлементНастройки, ДоступныеТипы, ДоступныеЗначения) ЗначенияДляВыбора = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(СписокВыбора); - Если ЭлементНастройки = Неопределено Тогда + Если ЭлементНастройки = Неопределено Тогда Возврат ЗначенияДляВыбора; КонецЕсли; - + ЗначенияДляВыбора.ТипЗначения = ДоступныеТипы; - + ЗначениеОтбора = ОтчетыКлиент.КэшЗначенияОтбора(Отчет.КомпоновщикНастроек, ЭлементНастройки); - Если ЗначениеОтбора <> Неопределено Тогда - ОтчетыКлиентСервер.ДополнитьСписок(ЗначенияДляВыбора, ЗначениеОтбора); + Если ЗначениеОтбора <> Неопределено Тогда + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(ЗначенияДляВыбора, ЗначениеОтбора); КонецЕсли; - + ОтчетыКлиент.ОбновитьПредставленияСписка(ЗначенияДляВыбора, ДоступныеЗначения); - + Возврат ЗначенияДляВыбора; КонецФункции @@ -1827,44 +1890,44 @@ Процедура ЗавершитьВыборИзСписка(Список, ПараметрыВыбора) Экспорт Если ТипЗнч(Список) = Тип("Массив") Тогда ВыбранныеЗначения = Список; - + Список = Новый СписокЗначений; Список.ЗагрузитьЗначения(ВыбранныеЗначения); Список.ЗаполнитьПометки(Истина); ИначеЕсли ТипЗнч(Список) <> Тип("СписокЗначений") Тогда Возврат; КонецЕсли; - + ВыбранныеЗначения = Новый СписокЗначений; - Для Каждого ЭлементСписка Из Список Цикл - Если ЭлементСписка.Пометка Тогда + Для Каждого ЭлементСписка Из Список Цикл + Если ЭлементСписка.Пометка Тогда ЗаполнитьЗначенияСвойств(ВыбранныеЗначения.Добавить(), ЭлементСписка); КонецЕсли; КонецЦикла; - + ЭлементПользовательскойНастройки = ПараметрыВыбора.ЭлементПользовательскойНастройки; ЭлементПользовательскойНастройки.Использование = Истина; - - Если ТипЗнч(ЭлементПользовательскойНастройки) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда + + Если ТипЗнч(ЭлементПользовательскойНастройки) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда ЭлементПользовательскойНастройки.Значение = ВыбранныеЗначения; Иначе ЭлементПользовательскойНастройки.ПравоеЗначение = ВыбранныеЗначения; КонецЕсли; - - Если Не ПараметрыВыбора.ОграничиватьВыборУказаннымиЗначениями Тогда + + Если Не ПараметрыВыбора.ОграничиватьВыборУказаннымиЗначениями Тогда Элемент = Элементы.Найти(ПараметрыВыбора.ИмяЭлемента); - - Если Элемент <> Неопределено Тогда + + Если Элемент <> Неопределено Тогда Элемент.СписокВыбора.Очистить(); - - Для Каждого ЭлементСписка Из Список Цикл + + Для Каждого ЭлементСписка Из Список Цикл ЗаполнитьЗначенияСвойств(Элемент.СписокВыбора.Добавить(), ЭлементСписка); КонецЦикла; КонецЕсли; КонецЕсли; - + ОтчетыКлиент.КэшироватьЗначениеОтбора(Отчет.КомпоновщикНастроек, ЭлементПользовательскойНастройки, Список); - + ОтчетыКлиентСервер.ОповеститьОИзмененииНастроек(ЭтотОбъект); КонецПроцедуры @@ -1874,10 +1937,8 @@ Возврат Ложь; КонецЕсли; АдресСсылкиВРег = ВРег(АдресСсылки); - Если СтрНачинаетсяС(АдресСсылкиВРег, ВРег("http://")) - Или СтрНачинаетсяС(АдресСсылкиВРег, ВРег("https://")) - Или СтрНачинаетсяС(АдресСсылкиВРег, ВРег("e1cib/")) - Или СтрНачинаетсяС(АдресСсылкиВРег, ВРег("e1c://")) Тогда + Если СтрНачинаетсяС(АдресСсылкиВРег, ВРег("http://")) Или СтрНачинаетсяС(АдресСсылкиВРег, ВРег("https://")) + Или СтрНачинаетсяС(АдресСсылкиВРег, ВРег("e1cib/")) Или СтрНачинаетсяС(АдресСсылкиВРег, ВРег("e1c://")) Тогда ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(АдресСсылки); Возврат Истина; КонецЕсли; @@ -1889,32 +1950,32 @@ Если ВыбранныеФайлы = Неопределено Тогда Возврат; КонецЕсли; - + ДвоичныеДанные = ПолучитьИзВременногоХранилища(ВыбранныеФайлы.Хранение); - + ДополнительныеСвойства = Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства; ДополнительныеСвойства.Очистить(); ДополнительныеСвойства.Вставить("СхемаКомпоновкиДанных", ДвоичныеДанные); ДополнительныеСвойства.Вставить("ОтчетИнициализирован", Ложь); - + ПараметрыЗаполнения = Новый Структура; ПараметрыЗаполнения.Вставить("ПользовательскиеНастройкиМодифицированы", Истина); ПараметрыЗаполнения.Вставить("КомпоновщикНастроекКД", Отчет.КомпоновщикНастроек); - + ОбновитьЭлементыФормыНастроек(ПараметрыЗаполнения); КонецПроцедуры &НаКлиенте Процедура ПрименитьПереданныеНастройки(ОписаниеНастроек) - Если ВариантМодифицирован Тогда + Если ВариантМодифицирован Тогда ПоказатьПредупреждение(, НСтр("ru = 'Вариант отчета был изменен. |Сохраните изменения перед применением настроек.'")); Возврат; КонецЕсли; - + УстановитьТекущиеПользовательскиеНастройки(ОписаниеНастроек.КлючНастроек); ПредставлениеТекущихПользовательскихНастроек = ОписаниеНастроек.Представление; - + Отчет.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(ОписаниеНастроек.Настройки); Сформировать(); КонецПроцедуры @@ -1932,49 +1993,49 @@ // &НаКлиенте Функция МенюВидовПоказателей(Родитель, Меню = Неопределено) - - Если Меню = Неопределено Тогда + + Если Меню = Неопределено Тогда Меню = Новый СписокЗначений; КонецЕсли; - + ЭлементыМеню = Родитель.ПодчиненныеЭлементы; // ЭлементыФормы - - Для Каждого Элемент Из ЭлементыМеню Цикл - - Если ТипЗнч(Элемент) <> Тип("ГруппаФормы") Тогда + + Для Каждого Элемент Из ЭлементыМеню Цикл + + Если ТипЗнч(Элемент) <> Тип("ГруппаФормы") Тогда Меню.Добавить(Элемент.Имя, Элемент.Заголовок, ОсновнойПоказатель = Элемент.Имя); Иначе МенюВидовПоказателей(Элемент, Меню); КонецЕсли; - + КонецЦикла; - + ЭлементМеню = Меню.НайтиПоЗначению(Элементы.РассчитатьВсеПоказатели.Имя); - - Если ЭлементМеню <> Неопределено Тогда + + Если ЭлементМеню <> Неопределено Тогда ЭлементМеню.Пометка = РазвернутьОбластьПоказателей; КонецЕсли; - + Возврат Меню; - + КонецФункции &НаКлиенте -Процедура ПослеВыбораПоказателя(ВыбранныйПоказатель, ДополнительныеПараметры) Экспорт - - Если ТипЗнч(ВыбранныйПоказатель) <> Тип("ЭлементСпискаЗначений") Тогда +Процедура ПослеВыбораПоказателя(ВыбранныйПоказатель, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(ВыбранныйПоказатель) <> Тип("ЭлементСпискаЗначений") Тогда Возврат; КонецЕсли; - - Если ВыбранныйПоказатель.Значение = Элементы.РассчитатьВсеПоказатели.Имя Тогда - + + Если ВыбранныйПоказатель.Значение = Элементы.РассчитатьВсеПоказатели.Имя Тогда + РазвернутьОбластьПоказателей = Не Элементы.РассчитатьВсеПоказатели.Пометка; ОбщегоНазначенияСлужебныйКлиент.УстановитьВидимостьПанелиПоказателей(Элементы, РазвернутьОбластьПоказателей); - + Иначе РассчитатьПоказатели(ВыбранныйПоказатель.Значение); КонецЕсли; - + КонецПроцедуры // Выполняет расчет и вывод показателей выделенной области ячеек. @@ -1982,24 +2043,24 @@ // &НаКлиенте Процедура РассчитатьПоказателиДинамически() - + РассчитатьПоказатели(); - + КонецПроцедуры &НаКлиенте Процедура РассчитатьПоказатели(ТекущаяКоманда = "") - - Если Не НастройкиОтчета.ВыводитьСуммуВыделенныхЯчеек Тогда - + + Если Не НастройкиОтчета.ВыводитьСуммуВыделенныхЯчеек Тогда + СохраняемыеВНастройкахДанныеМодифицированы = Истина; Возврат; - + КонецЕсли; - + Показатель = ""; ОбщегоНазначенияСлужебныйКлиент.РассчитатьПоказатели(ЭтотОбъект, "ОтчетТабличныйДокумент", ТекущаяКоманда, 2); - + КонецПроцедуры #КонецОбласти @@ -2008,364 +2069,545 @@ &НаКлиенте Процедура ПерейтиКНастройкам(РасширенныйРежим = Неопределено) - + ВыполнятьЗамеры = НастройкиОтчета.ВыполнятьЗамеры И ЗначениеЗаполнено(НастройкиОтчета.КлючЗамеров); Если ВыполнятьЗамеры Тогда МодульОценкаПроизводительностиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОценкаПроизводительностиКлиент"); ИдентификаторЗамера = МодульОценкаПроизводительностиКлиент.ЗамерВремени( - НастройкиОтчета.КлючЗамеров + ".Настройки", - Ложь, Ложь); + НастройкиОтчета.КлючЗамеров + ".Настройки", Ложь, Ложь); КонецЕсли; - + ПараметрыФормы = Новый Структура; ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыФормы, ФормаПараметры, Истина); - - Если РасширенныйРежим = Истина Тогда - + + Если РасширенныйРежим = Истина Тогда + НастройкиОтчета.ФормаНастроекРасширенныйРежим = 1; - + ПараметрыФормы.Вставить("ИмяСтраницы", "СтраницаОтборы"); ПараметрыФормы.Вставить("СброситьПользовательскиеНастройки", Истина); - + КонецЕсли; - + ПараметрыФормы.Вставить("КлючВарианта", Строка(КлючТекущегоВарианта)); ПараметрыФормы.Вставить("Вариант", Отчет.КомпоновщикНастроек.Настройки); ПараметрыФормы.Вставить("ПользовательскиеНастройки", Отчет.КомпоновщикНастроек.ПользовательскиеНастройки); ПараметрыФормы.Вставить("НастройкиОтчета", НастройкиОтчета); ПараметрыФормы.Вставить("ВариантНаименование", Строка(ОтчетНаименованиеТекущегоВарианта)); - + Обработчик = Новый ОписаниеОповещения("ПрименитьНастройкиИПереформироватьОтчет", ЭтотОбъект); ОткрытьФорму(НастройкиОтчета.ПолноеИмя + ".ФормаНастроек", ПараметрыФормы, ЭтотОбъект,,,, Обработчик); - + Если ВыполнятьЗамеры Тогда МодульОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(ИдентификаторЗамера); КонецЕсли; - + КонецПроцедуры &НаКлиенте Функция ПереходКНастройкамВыполнен(Запрос = Неопределено) - + ЗапросНормализованный = ВРег(?(ЗначениеЗаполнено(Запрос), Запрос, Показатель)); - + Если ЗапросНормализованный = "СКД" Тогда - + СброситьУниверсальныйПоиск(); ПерейтиКНастройкам(НастройкиОтчета.РазрешеноИзменятьВарианты); - + Возврат Истина; - + КонецЕсли; - + Возврат Ложь; - + КонецФункции &НаКлиенте Процедура СброситьУниверсальныйПоиск() - + Показатель = ""; Элементы.Показатель.ОбновитьТекстРедактирования(); - + КонецПроцедуры &НаКлиенте Функция ПодходящиеЗначенияУниверсальногоПоиска(Запрос) - + ПодходящиеЗначения = Новый СписокЗначений; МаксимальноеКоличествоПодходящихЗначений = 50; - + ПараметрыПоиска = ПараметрыУниверсальногоПоиска(Запрос); - - Если Не ЗначениеЗаполнено(ПараметрыПоиска.СтрокаПоиска) Тогда + + Если Не ЗначениеЗаполнено(ПараметрыПоиска.СтрокаПоиска) Тогда Возврат ПодходящиеЗначения; КонецЕсли; - + ОформитьПолеУниверсальногоПоиска(ПараметрыПоиска.УправляющиеСимволы); - + ПоляПоискаПоТипам = ПоляУниверсальногоПоискаПоТипам( НастройкиОтчета.АдресСхемы, Отчет.КомпоновщикНастроек.Настройки); - - Если ПоляПоискаПоТипам.Количество() = 0 Тогда + + Если ПоляПоискаПоТипам.Количество() = 0 Тогда Возврат ПодходящиеЗначения; КонецЕсли; - - Если ПараметрыУниверсальногоПоискаПрименимыКСсылкам(ПараметрыПоиска) Тогда + + Если ПараметрыУниверсальногоПоискаПрименимыКСсылкам(ПараметрыПоиска) Тогда НайтиПодходящиеЗначенияУниверсальногоПоиска(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска); КонецЕсли; - + + НайтиПодходящиеЗначенияУниверсальногоПоискаБулево(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска); + + НайтиПодходящиеЗначенияУниверсальногоПоискаДаты(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска); + + НайтиПодходящиеЗначенияУниверсальногоПоискаСтроки(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска); + НайтиПодходящиеЗначенияУниверсальногоПоискаЧисла(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска); - - Если ПодходящиеЗначения.Количество() = 0 Тогда - - Если СтрДлина(ПараметрыПоиска.СтрокаПоиска) > 2 Тогда + + Если ПодходящиеЗначения.Количество() = 0 Тогда + + Если СтрДлина(ПараметрыПоиска.СтрокаПоиска) > 2 Тогда Сообщение = НСтр("ru = 'Совпадений не найдено'"); Иначе Сообщение = НСтр("ru = 'Продолжите ввод...'"); КонецЕсли; - - СообщениеФорматированное = Новый ФорматированнаяСтрока(Сообщение,, WebЦвета.НейтральноСерый); + + СообщениеФорматированное = Новый ФорматированнаяСтрока(Сообщение, , WebЦвета.НейтральноСерый); ПодходящиеЗначения.Добавить("", СообщениеФорматированное); - + КонецЕсли; - - Если ПодходящиеЗначения.Количество() <= МаксимальноеКоличествоПодходящихЗначений Тогда + + Если ПодходящиеЗначения.Количество() <= МаксимальноеКоличествоПодходящихЗначений Тогда Возврат ПодходящиеЗначения; КонецЕсли; - + ПодходящиеЗначенияНормализованные = Новый СписокЗначений; - - Для НомерЭлемента = 1 По МаксимальноеКоличествоПодходящихЗначений Цикл + + Для НомерЭлемента = 1 По МаксимальноеКоличествоПодходящихЗначений Цикл ЗаполнитьЗначенияСвойств(ПодходящиеЗначенияНормализованные.Добавить(), ПодходящиеЗначения[НомерЭлемента - 1]); КонецЦикла; - + Возврат ПодходящиеЗначенияНормализованные; - + КонецФункции &НаКлиенте Функция ПараметрыУниверсальногоПоиска(Запрос) - + ПараметрыПоиска = Новый Структура; ПараметрыПоиска.Вставить("СтрокаПоиска", Запрос); ПараметрыПоиска.Вставить("СтрокаПоискаНормализованная", Запрос); ПараметрыПоиска.Вставить("ЧислоПоиска", Неопределено); + ПараметрыПоиска.Вставить("ДатаПоиска", Дата(1, 1, 1)); ПараметрыПоиска.Вставить("УправляющиеСимволы", ""); - + ПервыйСимвол = Лев(Запрос, 1); ПервыеДваСимвола = Лев(Запрос, 2); - + Если ПервыеДваСимвола = ">=" Или ПервыеДваСимвола = "<=" Или ПервыеДваСимвола = "<>" Тогда - + ПараметрыПоиска.СтрокаПоиска = Сред(Запрос, 3); ПараметрыПоиска.УправляющиеСимволы = ПервыеДваСимвола; - + ИначеЕсли ПервыйСимвол = "-" Или ПервыйСимвол = ">" Или ПервыйСимвол = "<" Или ПервыйСимвол = "=" Тогда - + ПараметрыПоиска.СтрокаПоиска = Сред(Запрос, 2); ПараметрыПоиска.УправляющиеСимволы = ПервыйСимвол; - + КонецЕсли; - - Если ОбщегоНазначенияКлиентСервер.ЭтоЧисло(ПараметрыПоиска.СтрокаПоиска) Тогда - + + Если ОбщегоНазначенияКлиентСервер.ЭтоЧисло(ПараметрыПоиска.СтрокаПоиска) Тогда + ОписаниеЧисла = Новый ОписаниеТипов("Число"); ПараметрыПоиска.ЧислоПоиска = ОписаниеЧисла.ПривестиЗначение(ПараметрыПоиска.СтрокаПоиска); - + КонецЕсли; - + + ПараметрыПоиска.ДатаПоиска = ОбщегоНазначенияКлиентСервер.СтрокаВДату(ПараметрыПоиска.СтрокаПоиска); + ПараметрыПоиска.СтрокаПоискаНормализованная = СтрЗаменить(ПараметрыПоиска.СтрокаПоиска, """", "_"); - + Возврат ПараметрыПоиска; - + КонецФункции &НаКлиенте Процедура ОформитьПолеУниверсальногоПоиска(УправляющиеСимволы) - + ПолеЗапроса = Элементы.Показатель; - + Если УправляющиеСимволы = "-" Тогда - + ПолеЗапроса.ЦветТекста = WebЦвета.Красный; - + ИначеЕсли Не ПустаяСтрока(УправляющиеСимволы) Тогда - + ПолеЗапроса.ЦветТекста = WebЦвета.Зеленый; - + Иначе - + ПолеЗапроса.ЦветТекста = Новый Цвет; - + КонецЕсли; - + КонецПроцедуры &НаКлиенте Функция ПараметрыУниверсальногоПоискаПрименимыКСсылкам(ПараметрыПоиска) - + НедопустимыеУправляющиеСимволы = Новый Массив; НедопустимыеУправляющиеСимволы.Добавить(">"); НедопустимыеУправляющиеСимволы.Добавить(">="); НедопустимыеУправляющиеСимволы.Добавить("<"); НедопустимыеУправляющиеСимволы.Добавить("<="); - - Если НедопустимыеУправляющиеСимволы.Найти(ПараметрыПоиска.УправляющиеСимволы) <> Неопределено Тогда + + Если НедопустимыеУправляющиеСимволы.Найти(ПараметрыПоиска.УправляющиеСимволы) <> Неопределено Тогда Возврат Ложь; КонецЕсли; - - Возврат СтрДлина(ПараметрыПоиска.СтрокаПоиска) > 2 + + Возврат СтрДлина(ПараметрыПоиска.СтрокаПоиска) > 2 Или ОбщегоНазначенияКлиентСервер.ЭтоЧисло(ПараметрыПоиска.СтрокаПоиска); - + КонецФункции &НаКлиенте Процедура НайтиПодходящиеЗначенияУниверсальногоПоискаЧисла(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска) - - Если Не ОбщегоНазначенияКлиентСервер.ЭтоЧисло(ПараметрыПоиска.СтрокаПоиска) Тогда + + Если Не ОбщегоНазначенияКлиентСервер.ЭтоЧисло(ПараметрыПоиска.СтрокаПоиска) Тогда Возврат; КонецЕсли; - + ПоляПоиска = ПоляПоискаПоТипам[Тип("Число")]; - - Если ПоляПоиска = Неопределено Тогда + + Если ПоляПоиска = Неопределено Тогда Возврат; КонецЕсли; - + ПодходящиеЗначенияДляЧисла = Новый СписокЗначений; - - ДоступныеПоляПоиска = ДоступныеПоляПоискаЧисла(ПоляПоиска, ПараметрыПоиска.ЧислоПоиска, ПараметрыПоиска.УправляющиеСимволы); - - Для Каждого ПолеПоиска Из ДоступныеПоляПоиска Цикл - - СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, ПараметрыПоиска.ЧислоПоиска, ПараметрыПоиска.УправляющиеСимволы); + + ДоступныеПоляПоиска = ДоступныеПоляПоискаЧисла(ПоляПоиска, ПараметрыПоиска.ЧислоПоиска, + ПараметрыПоиска.УправляющиеСимволы); + + Для Каждого ПолеПоиска Из ДоступныеПоляПоиска Цикл + + СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, ПараметрыПоиска.ЧислоПоиска, + ПараметрыПоиска.УправляющиеСимволы); ВариантыПоиска = Новый Массив; ВариантыПоиска.Добавить(СвойстваПоиска); ПодходящиеЗначенияДляЧисла.Добавить(ВариантыПоиска, ПредставлениеРезультатПоискаКлиент( ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, СвойстваПоиска.ПравоеЗначение)); - + КонецЦикла; - + ПодходящиеЗначенияДляЧисла.СортироватьПоПредставлению(); - ОтчетыКлиентСервер.ДополнитьСписок(ПодходящиеЗначения, ПодходящиеЗначенияДляЧисла); - + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(ПодходящиеЗначения, ПодходящиеЗначенияДляЧисла); + КонецПроцедуры &НаКлиенте Функция ДоступныеПоляПоискаЧисла(ПоляПоиска, ЗначениеПоиска, УправляющиеСимволы) - + Условие = УсловиеУниверсальногоПоиска(ЗначениеПоиска, УправляющиеСимволы); - - Если Условие = ВидСравненияКомпоновкиДанных.Равно Тогда + + Если Условие = ВидСравненияКомпоновкиДанных.Равно Тогда Возврат ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ПоляПоиска); КонецЕсли; - + ДоступныеПоляПоиска = Новый Соответствие; ДоступныеПоляПараметров = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляПараметровДанных; - - Для Каждого ПолеПоиска Из ПоляПоиска Цикл - - Если ДоступныеПоляПараметров.НайтиПоле(ПолеПоиска.Ключ) = Неопределено Тогда + + Для Каждого ПолеПоиска Из ПоляПоиска Цикл + + Если ДоступныеПоляПараметров.НайтиПоле(ПолеПоиска.Ключ) = Неопределено Тогда ДоступныеПоляПоиска.Вставить(ПолеПоиска.Ключ, ПолеПоиска.Значение); КонецЕсли; - + КонецЦикла; - + Возврат ДоступныеПоляПоиска; - + КонецФункции &НаСервереБезКонтекста Процедура НайтиПодходящиеЗначенияУниверсальногоПоиска(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска) - - Если Не ЗначениеЗаполнено(ПараметрыПоиска.СтрокаПоиска) Тогда + + Если Не ЗначениеЗаполнено(ПараметрыПоиска.СтрокаПоиска) Тогда Возврат; КонецЕсли; - + ТекстыЗапросов = Новый Массив; - Для Каждого Элемент Из ПоляПоискаПоТипам Цикл - + Для Каждого Элемент Из ПоляПоискаПоТипам Цикл + Если Не ОбщегоНазначения.ЭтоСсылка(Элемент.Ключ) Тогда Продолжить; КонецЕсли; - + ОбъектМетаданных = Метаданные.НайтиПоТипу(Элемент.Ключ); - Если Метаданные.Перечисления.Содержит(ОбъектМетаданных) Тогда + Если Метаданные.Перечисления.Содержит(ОбъектМетаданных) Тогда + Для Каждого ЭлементПоле Из Элемент.Значение Цикл + Для Каждого Значение Из ОбъектМетаданных.ЗначенияПеречисления Цикл + Если СтрНачинаетсяС(ВРег(Значение.Синоним), ВРег(ПараметрыПоиска.СтрокаПоиска)) Тогда + ЗначениеПеречисления = ОбщегоНазначения.ПредопределенныйЭлемент(ОбъектМетаданных.ПолноеИмя() + + "." + Значение.Имя); + СвойстваПоиска = СвойстваУниверсальногоПоиска(ЭлементПоле.Ключ, ЗначениеПеречисления, + ПараметрыПоиска.УправляющиеСимволы); + ВариантыПоиска = Новый Массив; + ВариантыПоиска.Добавить(СвойстваПоиска); + ПодходящиеЗначения.Добавить(ВариантыПоиска, ПредставлениеРезультатПоиска( + ЭлементПоле.Значение, СвойстваПоиска.ВидСравнения, СвойстваПоиска.ПравоеЗначение)); + КонецЕсли; + КонецЦикла; + КонецЦикла; Продолжить; КонецЕсли; - - Если Не ПравоДоступа("Чтение", ОбъектМетаданных) Тогда + + Если Не ПравоДоступа("Чтение", ОбъектМетаданных) Тогда Продолжить; КонецЕсли; - - ТекстЗапроса = ТекстЗапросаПоОбъектуПоиска(ОбъектМетаданных, ПараметрыПоиска); + + ТекстЗапроса = ТекстЗапросаПоОбъектуПоиска(ОбъектМетаданных, ПараметрыПоиска); Если ТекстыЗапросов.Количество() > 0 Тогда ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВЫБРАТЬ РАЗРЕШЕННЫЕ", "ВЫБРАТЬ"); // @query-part-1, @query-part-2 КонецЕсли; ТекстыЗапросов.Добавить(ТекстЗапроса); - + + КонецЦикла; + + Если ТекстыЗапросов.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ТекстЗапроса = СтрСоединить(ТекстыЗапросов, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС); // @query-part + Запрос = Новый Запрос(ТекстЗапроса); + + Если СтрНайти(ТекстЗапроса, "&ЧислоПоиска") > 0 Тогда + Запрос.УстановитьПараметр("ЧислоПоиска", ПараметрыПоиска.ЧислоПоиска); + КонецЕсли; + + Если СтрНайти(ТекстЗапроса, "&ДатаПоиска") > 0 Тогда + Запрос.УстановитьПараметр("ДатаПоиска", ПараметрыПоиска.ДатаПоиска); + КонецЕсли; + + Выборка = Запрос.Выполнить().Выбрать(); + + ИндексВариантовПоиска = Новый Соответствие; + ИндексПредставленийПоиска = Новый Соответствие; + + ИндексДополнительныхЗначений = Новый Соответствие; + ДополнительныеЗначения = Новый СписокЗначений; + + Пока Выборка.Следующий() Цикл + + ПоляПоиска = ПоляПоискаПоТипам[ТипЗнч(Выборка.Ссылка)]; + Для Каждого ПолеПоиска Из ПоляПоиска Цикл + + СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, Выборка.Ссылка, + ПараметрыПоиска.УправляющиеСимволы); + ВариантыПоиска = ИндексВариантовПоиска[СвойстваПоиска.ПравоеЗначение]; + Если ВариантыПоиска = Неопределено Тогда + + ПредставлениеПоиска = ПредставлениеУниверсальногоПоискаСсылки( + Выборка, ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, ПараметрыПоиска.СтрокаПоиска); + + ИндексПредставленийПоиска.Вставить(СвойстваПоиска.ПравоеЗначение, ПредставлениеПоиска); + ВариантыПоиска = Новый Массив; + + КонецЕсли; + + ВариантыПоиска.Добавить(СвойстваПоиска); + ИндексВариантовПоиска.Вставить(СвойстваПоиска.ПравоеЗначение, ВариантыПоиска); + + Если Не ЗначениеЗаполнено(Выборка.ПолеПоУсловию) + Или ИндексДополнительныхЗначений[ПолеПоиска.Ключ] <> Неопределено Тогда + + Продолжить; + КонецЕсли; + + ПутьКДанным = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "%1.%2", ПолеПоиска.Ключ, Выборка.ПолеПоУсловию); + + РеквизитПоля = Новый ПолеКомпоновкиДанных(ПутьКДанным); + СвойстваПоиска = СвойстваУниверсальногоПоиска( + РеквизитПоля, ПараметрыПоиска.СтрокаПоиска, ПараметрыПоиска.УправляющиеСимволы); + + ВариантыПоиска = Новый Массив; + ВариантыПоиска.Добавить(СвойстваПоиска); + ДополнительныеЗначения.Добавить(ВариантыПоиска, ПредставлениеРезультатПоиска(ПутьКДанным, + СвойстваПоиска.ВидСравнения, ПараметрыПоиска.СтрокаПоиска)); + + ИндексДополнительныхЗначений.Вставить(ПолеПоиска.Ключ, Истина); + + КонецЦикла; + + КонецЦикла; + + Для Каждого ИндексЗначения Из ИндексВариантовПоиска Цикл + ПодходящиеЗначения.Добавить(ИндексЗначения.Значение, ИндексПредставленийПоиска[ИндексЗначения.Ключ]); + КонецЦикла; + + ПодходящиеЗначения.СортироватьПоПредставлению(); + ДополнительныеЗначения.СортироватьПоПредставлению(); + + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(ПодходящиеЗначения, ДополнительныеЗначения); + +КонецПроцедуры + +&НаКлиенте +Процедура НайтиПодходящиеЗначенияУниверсальногоПоискаБулево(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска) + + Если Не ЗначениеЗаполнено(ПараметрыПоиска.СтрокаПоиска) Тогда + Возврат; + КонецЕсли; + + ПоляПоиска = ПоляПоискаПоТипам[Тип("Булево")]; + + Если ПоляПоиска = Неопределено Тогда + Возврат; + КонецЕсли; + + ПодходящиеЗначенияДляБулево = Новый СписокЗначений; + + // Поиск по имени колонки + Для Каждого ПолеПоиска Из ПоляПоиска Цикл + Если СтрНачинаетсяС(ВРег(ПолеПоиска.Значение), ВРег(ПараметрыПоиска.СтрокаПоиска)) Тогда + СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, Истина, ПараметрыПоиска.УправляющиеСимволы); + ВариантыПоиска = Новый Массив; + ВариантыПоиска.Добавить(СвойстваПоиска); + ПодходящиеЗначенияДляБулево.Добавить(ВариантыПоиска, ПредставлениеРезультатПоискаКлиент( + ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, СвойстваПоиска.ПравоеЗначение)); + СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, Ложь, ПараметрыПоиска.УправляющиеСимволы); + ВариантыПоиска = Новый Массив; + ВариантыПоиска.Добавить(СвойстваПоиска); + ПодходящиеЗначенияДляБулево.Добавить(ВариантыПоиска, ПредставлениеРезультатПоискаКлиент( + ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, СвойстваПоиска.ПравоеЗначение)); + КонецЕсли; КонецЦикла; - Если ТекстыЗапросов.Количество() = 0 Тогда + // Поиск по значениям Булево + // АПК:1391-выкл Проверка значений, которые ввел пользователь. + Если СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Да'")) = 0 + Или СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Истина'")) = 0 + Или СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Включено'")) = 0 Тогда + Для Каждого ПолеПоиска Из ПоляПоиска Цикл + СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, Истина, ПараметрыПоиска.УправляющиеСимволы); + ВариантыПоиска = Новый Массив; + ВариантыПоиска.Добавить(СвойстваПоиска); + ПодходящиеЗначенияДляБулево.Добавить(ВариантыПоиска, ПредставлениеРезультатПоискаКлиент( + ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, СвойстваПоиска.ПравоеЗначение)); + КонецЦикла; + ИначеЕсли СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Нет'")) = 0 + Или СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Ложь'")) = 0 + Или СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Выключено'")) = 0 Тогда + Для Каждого ПолеПоиска Из ПоляПоиска Цикл + СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, Ложь, ПараметрыПоиска.УправляющиеСимволы); + ВариантыПоиска = Новый Массив; + ВариантыПоиска.Добавить(СвойстваПоиска); + ПодходящиеЗначенияДляБулево.Добавить(ВариантыПоиска, ПредставлениеРезультатПоискаКлиент( + ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, СвойстваПоиска.ПравоеЗначение)); + КонецЦикла; + КонецЕсли; + // АПК:1391-вкл + + ПодходящиеЗначенияДляБулево.СортироватьПоПредставлению(); + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(ПодходящиеЗначения, ПодходящиеЗначенияДляБулево); + +КонецПроцедуры + +&НаКлиенте +Процедура НайтиПодходящиеЗначенияУниверсальногоПоискаСтроки(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска) + + Если Не ЗначениеЗаполнено(ПараметрыПоиска.СтрокаПоиска) Или ЗначениеЗаполнено(ПараметрыПоиска.ДатаПоиска) + Или ОтчетТабличныйДокумент.НайтиТекст(ПараметрыПоиска.СтрокаПоиска,,,,,, Истина) = Неопределено Тогда Возврат; КонецЕсли; - ТекстЗапроса = СтрСоединить(ТекстыЗапросов, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС); // @query-part - Запрос = Новый Запрос(ТекстЗапроса); - - Если СтрНайти(ТекстЗапроса, "&ЧислоПоиска") > 0 Тогда - Запрос.УстановитьПараметр("ЧислоПоиска", ПараметрыПоиска.ЧислоПоиска); + // АПК:1391-выкл Проверка значений, которые ввел пользователь. + Если СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Да'")) = 0 + Или СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Истина'")) = 0 + Или СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Включено'")) = 0 + Или СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Нет'")) = 0 + Или СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Ложь'")) = 0 + Или СтрСравнить(ПараметрыПоиска.СтрокаПоиска, НСтр("ru = 'Выключено'")) = 0 Тогда + Возврат; КонецЕсли; - - Выборка = Запрос.Выполнить().Выбрать(); - - ИндексВариантовПоиска = Новый Соответствие; - ИндексПредставленийПоиска = Новый Соответствие; - - ИндексДополнительныхЗначений = Новый Соответствие; - ДополнительныеЗначения = Новый СписокЗначений; - - Пока Выборка.Следующий() Цикл - - ПоляПоиска = ПоляПоискаПоТипам[ТипЗнч(Выборка.Ссылка)]; - - Для Каждого ПолеПоиска Из ПоляПоиска Цикл - - СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, Выборка.Ссылка, ПараметрыПоиска.УправляющиеСимволы); - ВариантыПоиска = ИндексВариантовПоиска[СвойстваПоиска.ПравоеЗначение]; - Если ВариантыПоиска = Неопределено Тогда - - ПредставлениеПоиска = ПредставлениеУниверсальногоПоискаСсылки( - Выборка, ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, ПараметрыПоиска.СтрокаПоиска); - - ИндексПредставленийПоиска.Вставить(СвойстваПоиска.ПравоеЗначение, ПредставлениеПоиска); - ВариантыПоиска = Новый Массив; - + // АПК:1391-вкл + + Для Каждого ТипПоиска Из ПоляПоискаПоТипам Цикл + Для Каждого ПолеПоиска Из ТипПоиска.Значение Цикл + Если СтрНачинаетсяС(ВРег(ПолеПоиска.Значение), ВРег(ПараметрыПоиска.СтрокаПоиска)) Тогда + Возврат; КонецЕсли; - - ВариантыПоиска.Добавить(СвойстваПоиска); - ИндексВариантовПоиска.Вставить(СвойстваПоиска.ПравоеЗначение, ВариантыПоиска); - - Если Не ЗначениеЗаполнено(Выборка.ПолеПоУсловию) - Или ИндексДополнительныхЗначений[ПолеПоиска.Ключ] <> Неопределено Тогда - - Продолжить; - КонецЕсли; - - ПутьКДанным = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "%1.%2", ПолеПоиска.Ключ, Выборка.ПолеПоУсловию); - - РеквизитПоля = Новый ПолеКомпоновкиДанных(ПутьКДанным); - СвойстваПоиска = СвойстваУниверсальногоПоиска( - РеквизитПоля, ПараметрыПоиска.СтрокаПоиска, ПараметрыПоиска.УправляющиеСимволы); - - ВариантыПоиска = Новый Массив; - ВариантыПоиска.Добавить(СвойстваПоиска); - ДополнительныеЗначения.Добавить(ВариантыПоиска, - ПредставлениеРезультатПоиска(ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, - ПараметрыПоиска.СтрокаПоиска)); - - ИндексДополнительныхЗначений.Вставить(ПолеПоиска.Ключ, Истина); - КонецЦикла; - КонецЦикла; - - Для Каждого ИндексЗначения Из ИндексВариантовПоиска Цикл - ПодходящиеЗначения.Добавить(ИндексЗначения.Значение, ИндексПредставленийПоиска[ИндексЗначения.Ключ]); + + ПоляПоиска = ПоляПоискаПоТипам[Тип("Строка")]; + + Если ПоляПоиска = Неопределено Тогда + Возврат; + КонецЕсли; + + ПодходящиеЗначенияДляСтроки = Новый СписокЗначений; + + Для Каждого ПолеПоиска Из ПоляПоиска Цикл + СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, ПараметрыПоиска.СтрокаПоиска, + ПараметрыПоиска.УправляющиеСимволы); + ВариантыПоиска = Новый Массив; + ВариантыПоиска.Добавить(СвойстваПоиска); + ПредставлениеРезультата = ПредставлениеРезультатПоискаКлиент( + ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, СвойстваПоиска.ПравоеЗначение); + СуществуетЗначение = Ложь; + Для Каждого Строка Из ПодходящиеЗначения Цикл + Если СтрСравнить(Строка.Представление, ПредставлениеРезультата) = 0 Тогда + СуществуетЗначение = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + Если СуществуетЗначение Тогда + Продолжить; + КонецЕсли; + ПодходящиеЗначенияДляСтроки.Добавить(ВариантыПоиска, ПредставлениеРезультата); КонецЦикла; - - ПодходящиеЗначения.СортироватьПоПредставлению(); - ДополнительныеЗначения.СортироватьПоПредставлению(); - - ОтчетыКлиентСервер.ДополнитьСписок(ПодходящиеЗначения, ДополнительныеЗначения); - + + ПодходящиеЗначенияДляСтроки.СортироватьПоПредставлению(); + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(ПодходящиеЗначения, ПодходящиеЗначенияДляСтроки); + +КонецПроцедуры + +&НаКлиенте +Процедура НайтиПодходящиеЗначенияУниверсальногоПоискаДаты(ПодходящиеЗначения, ПоляПоискаПоТипам, ПараметрыПоиска) + + Если Не ЗначениеЗаполнено(ПараметрыПоиска.СтрокаПоиска) Или Не ЗначениеЗаполнено(ПараметрыПоиска.ДатаПоиска) + Или ОбщегоНазначенияКлиентСервер.ЭтоЧисло(ПараметрыПоиска.СтрокаПоиска) + Или ОтчетТабличныйДокумент.НайтиТекст(ПараметрыПоиска.СтрокаПоиска,,,,,, Истина) = Неопределено Тогда + Возврат; + КонецЕсли; + + ПоляПоиска = ПоляПоискаПоТипам[Тип("Дата")]; + + Если ПоляПоиска = Неопределено Тогда + Возврат; + КонецЕсли; + + ПодходящиеЗначенияДляДаты = Новый СписокЗначений; + + Для Каждого ПолеПоиска Из ПоляПоиска Цикл + СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, ПараметрыПоиска.ДатаПоиска, + ПараметрыПоиска.УправляющиеСимволы); + ВариантыПоиска = Новый Массив; + ВариантыПоиска.Добавить(СвойстваПоиска); + ПредставлениеДаты = ?(СвойстваПоиска.ПравоеЗначение = НачалоДня(СвойстваПоиска.ПравоеЗначение), + Формат(СвойстваПоиска.ПравоеЗначение, "ДЛФ=Д"), СвойстваПоиска.ПравоеЗначение); + ПодходящиеЗначенияДляДаты.Добавить(ВариантыПоиска, ПредставлениеРезультатПоискаКлиент( + ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, ПредставлениеДаты)); + КонецЦикла; + + ПодходящиеЗначенияДляДаты.СортироватьПоПредставлению(); + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(ПодходящиеЗначения, ПодходящиеЗначенияДляДаты); + КонецПроцедуры &НаСервереБезКонтекста Функция ТекстЗапросаПоОбъектуПоиска(Объект, ПараметрыПоиска) - + ШаблонТекстаЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 5 | ""&ПолноеИмяОбъекта"" КАК ПолноеИмяОбъекта, @@ -2377,13 +2619,14 @@ |ГДЕ | &Условие |"; - + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ПолноеИмяОбъекта", Объект.ПолноеИмя()); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолеПоУсловию", ПолеТекстаЗапросаПоОбъектуПоиска(Объект, ПараметрыПоиска)); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолеПоУсловию", ПолеТекстаЗапросаПоОбъектуПоиска(Объект, + ПараметрыПоиска)); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Условие", УсловиеТекстаЗапросаПоОбъектуПоиска(Объект, ПараметрыПоиска)); - + Возврат СтрЗаменить(ТекстЗапроса, "&ДополнительныеДанные", ДополнительныеДанныеТекстаЗапросаПоОбъектуПоиска(Объект)); - + КонецФункции // Параметры: @@ -2396,36 +2639,35 @@ // &НаСервереБезКонтекста Функция ПолеТекстаЗапросаПоОбъектуПоиска(Объект, ПараметрыПоиска) - + ОписаниеПоляПоУсловию = Новый Массив; Поля = Объект.ВводПоСтроке; // СписокПолей - + Для Каждого Поле Из Поля Цикл - - ТипРеквизита = ТипРеквизитаПоиска(Объект, Поле); - Если Не ТипРеквизита.СодержитТип(Тип("Строка")) Тогда + + ТипРеквизита = ТипРеквизитаПоиска(Объект, Поле.Имя); + Если Не ТипРеквизита.СодержитТип(Тип("Строка")) Тогда Продолжить; КонецЕсли; - + ПолеПоУсловию = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "КОГДА ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2 СПЕЦСИМВОЛ ""~"" ТОГДА ""%3""", - Поле.Имя, - """%" + ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(ПараметрыПоиска.СтрокаПоискаНормализованная) + "%""", + "КОГДА ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2 СПЕЦСИМВОЛ ""~"" ТОГДА ""%3""", Поле.Имя, """%" + + ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(ПараметрыПоиска.СтрокаПоискаНормализованная) + "%""", Поле.Имя); ОписаниеПоляПоУсловию.Добавить(ПолеПоУсловию); - + КонецЦикла; - - Если ОписаниеПоляПоУсловию.Количество() = 0 Тогда + + Если ОписаниеПоляПоУсловию.Количество() = 0 Тогда Возврат """"""; КонецЕсли; - + ОписаниеПоляПоУсловию.Вставить(0, "ВЫБОР"); //@query-part ОписаниеПоляПоУсловию.Добавить("ИНАЧЕ """""); //@query-part ОписаниеПоляПоУсловию.Добавить("КОНЕЦ"); //@query-part - + Возврат СтрСоединить(ОписаниеПоляПоУсловию, " "); - + КонецФункции // Параметры: @@ -2438,40 +2680,55 @@ // &НаСервереБезКонтекста Функция УсловиеТекстаЗапросаПоОбъектуПоиска(Объект, ПараметрыПоиска) - + Условия = Новый Массив; Поля = Объект.ВводПоСтроке; // СписокПолей - + + ИменаПолей = Новый Массив; Для Каждого Поле Из Поля Цикл - - ТипРеквизита = ТипРеквизитаПоиска(Объект, Поле); - Если ТипРеквизита.СодержитТип(Тип("Строка")) Тогда - + ИменаПолей.Добавить(Поле.Имя); + КонецЦикла; + + // Расширение списка полей для документов + ЧастиПолногоИмени = СтрРазделить(Объект.ПолноеИмя(), "."); + Если ЧастиПолногоИмени[0] = "Документ" Тогда + Если Поля.Найти("Дата") = Неопределено Тогда + ИменаПолей.Добавить("Дата"); + КонецЕсли; + Если Поля.Найти("Номер") = Неопределено Тогда + ИменаПолей.Добавить("Номер"); + КонецЕсли; + КонецЕсли; + + Для Каждого ИмяПоля Из ИменаПолей Цикл + + ТипРеквизита = ТипРеквизитаПоиска(Объект, ИмяПоля); + Если ТипРеквизита.СодержитТип(Тип("Строка")) Тогда + Условие = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2 СПЕЦСИМВОЛ ""~""", - Поле.Имя, - """%" + ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(ПараметрыПоиска.СтрокаПоискаНормализованная) + "%"""); - - ИначеЕсли ТипРеквизита.СодержитТип(Тип("Число")) - И ПараметрыПоиска.ЧислоПоиска <> Неопределено Тогда - + "ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2 СПЕЦСИМВОЛ ""~""", ИмяПоля, """%" + + ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(ПараметрыПоиска.СтрокаПоискаНормализованная) + + "%"""); + ИначеЕсли ТипРеквизита.СодержитТип(Тип("Дата")) И ПараметрыПоиска.ДатаПоиска <> Дата(1, 1, 1) Тогда Условие = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫРАЗИТЬ(%1 КАК ЧИСЛО) = &ЧислоПоиска", Поле.Имя); //@query-part - + "НачалоПериода(%1) = &ДатаПоиска", ИмяПоля); //@query-part + ИначеЕсли ТипРеквизита.СодержитТип(Тип("Число")) И ПараметрыПоиска.ЧислоПоиска <> Неопределено Тогда + Условие = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "ВЫРАЗИТЬ(%1 КАК ЧИСЛО) = &ЧислоПоиска", ИмяПоля); //@query-part Иначе Продолжить; КонецЕсли; - + Условия.Добавить(Условие); - + КонецЦикла; - - Если Условия.Количество() = 0 Тогда + + Если Условия.Количество() = 0 Тогда Возврат "ЛОЖЬ"; КонецЕсли; - + Возврат СтрСоединить(Условия, " ИЛИ "); //@query-part - + КонецФункции // Параметры: @@ -2482,220 +2739,195 @@ // &НаСервереБезКонтекста Функция ДополнительныеДанныеТекстаЗапросаПоОбъектуПоиска(Объект) - + ДополнительныеДанные = Новый Массив; - - Исключения = Новый Массив(); + + Исключения = Новый Массив; Исключения.Добавить(НСтр("ru = 'Наименование'")); Исключения.Добавить(НСтр("ru = 'Номер'")); - + Поля = Объект.ВводПоСтроке; // СписокПолей - + Для Каждого Поле Из Поля Цикл - + Если Исключения.Найти(Поле.Имя) <> Неопределено Тогда Продолжить; КонецЕсли; - - ТипРеквизита = ТипРеквизитаПоиска(Объект, Поле); - - Если Не ТипРеквизита.СодержитТип(Тип("Строка")) Тогда + + ТипРеквизита = ТипРеквизитаПоиска(Объект, Поле.Имя); + + Если Не ТипРеквизита.СодержитТип(Тип("Строка")) Тогда Продолжить; КонецЕсли; - + Данные = """" + Поле.Имя + ": "" + " + Поле.Имя; ДополнительныеДанные.Добавить(Данные); - + КонецЦикла; - - Если ДополнительныеДанные.Количество() = 0 Тогда + + Если ДополнительныеДанные.Количество() = 0 Тогда Возврат """"""; КонецЕсли; - + Возврат СтрСоединить(ДополнительныеДанные, " + "", """); - + КонецФункции // Параметры: // Объект - ОбъектМетаданных -// Поле - Поле +// ИмяПоля - Строка // // Возвращаемое значение: // - ОписаниеТипов // &НаСервереБезКонтекста -Функция ТипРеквизитаПоиска(Объект, Поле) - - Для Каждого ОписаниеРеквизита Из Объект.СтандартныеРеквизиты Цикл - - Если ОписаниеРеквизита.Имя = Поле.Имя Тогда +Функция ТипРеквизитаПоиска(Объект, ИмяПоля) + + Для Каждого ОписаниеРеквизита Из Объект.СтандартныеРеквизиты Цикл + + Если ОписаниеРеквизита.Имя = ИмяПоля Тогда Возврат ОписаниеРеквизита.Тип; КонецЕсли; - + КонецЦикла; - - ОписаниеРеквизита = Объект.Реквизиты.Найти(Поле.Имя); - - Если ОписаниеРеквизита <> Неопределено Тогда + + ОписаниеРеквизита = Объект.Реквизиты.Найти(ИмяПоля); + + Если ОписаниеРеквизита <> Неопределено Тогда Возврат ОписаниеРеквизита.Тип; КонецЕсли; - - Возврат Новый ОписаниеТипов(); - + + Возврат Новый ОписаниеТипов; + КонецФункции &НаСервереБезКонтекста Функция ПредставлениеУниверсальногоПоискаСсылки(Данные, ПолеПоиска, Условие, СтрокаПоиска) - + ПредставлениеЗначения = Строка(Данные.Ссылка); - Для Каждого СлужебныйСимвол Из СтрРазделить("< >", " ") Цикл + Для Каждого СлужебныйСимвол Из СтрРазделить("< >", " ") Цикл ПредставлениеЗначения = СтрЗаменить(ПредставлениеЗначения, СлужебныйСимвол, ""); КонецЦикла; - - Если ЗначениеЗаполнено(Данные.ДополнительныеДанные) Тогда + + Если ЗначениеЗаполнено(Данные.ДополнительныеДанные) Тогда ПредставлениеЗначения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1 (%2)'"), Строка(Данные.Ссылка), Данные.ДополнительныеДанные); + НСтр("ru = '%1 (%2)'"), Строка(Данные.Ссылка), Данные.ДополнительныеДанные); КонецЕсли; - + ФрагментУсловия = СтроковыеФункции.ФорматированнаяСтрока(ШаблонФрагментаУсловия(Условие)); - + НачалоСтрокиПоиска = СтрНайти(ВРег(ПредставлениеЗначения), ВРег(СтрокаПоиска)); КонецСтрокиПоиска = НачалоСтрокиПоиска + СтрДлина(СтрокаПоиска); ДлинаНайденногоФрагмента = ?(НачалоСтрокиПоиска = 0, 0, СтрДлина(СтрокаПоиска)); - + ФрагментДоСтрокиПоиска = Лев(ПредставлениеЗначения, НачалоСтрокиПоиска - 1); ФрагментСтрокиПоиска = СтроковыеФункции.ФорматированнаяСтрока(ШаблонФрагментаСтрокиПоиска( - Сред(ПредставлениеЗначения, НачалоСтрокиПоиска, ДлинаНайденногоФрагмента))); + Сред(ПредставлениеЗначения, НачалоСтрокиПоиска, ДлинаНайденногоФрагмента))); ФрагментПослеСтрокиПоиска = Сред(ПредставлениеЗначения, КонецСтрокиПоиска); - - Возврат Новый ФорматированнаяСтрока(ПолеПоиска, ФрагментУсловия, ФрагментДоСтрокиПоиска, - ФрагментСтрокиПоиска, ФрагментПослеСтрокиПоиска); - + + Возврат Новый ФорматированнаяСтрока(ПолеПоиска, ФрагментУсловия, ФрагментДоСтрокиПоиска, ФрагментСтрокиПоиска, + ФрагментПослеСтрокиПоиска); + КонецФункции &НаКлиенте Функция ПредставлениеРезультатПоискаКлиент(Знач ПолеПоиска, Знач Условие, Знач ЗначениеПоиска) - + СтрокаУсловия = СтрокаУсловияПоиска(ПолеПоиска, Условие, ЗначениеПоиска); ФрагментУсловия = СтроковыеФункцииКлиент.ФорматированнаяСтрока(ШаблонФрагментаУсловия(СтрокаУсловия)); ФрагментСтрокиПоиска = СтроковыеФункцииКлиент.ФорматированнаяСтрока(ШаблонФрагментаСтрокиПоиска(ЗначениеПоиска)); Возврат ФорматированнаяСтрокаРезультатаПоиска(ПолеПоиска, ФрагментУсловия, ФрагментСтрокиПоиска); - + КонецФункции &НаСервереБезКонтекста Функция ПредставлениеРезультатПоиска(Знач ПолеПоиска, Знач Условие, Знач ЗначениеПоиска) - + СтрокаУсловия = СтрокаУсловияПоиска(ПолеПоиска, Условие, ЗначениеПоиска); ФрагментУсловия = СтроковыеФункции.ФорматированнаяСтрока(ШаблонФрагментаУсловия(СтрокаУсловия)); ФрагментСтрокиПоиска = СтроковыеФункции.ФорматированнаяСтрока(ШаблонФрагментаСтрокиПоиска(ЗначениеПоиска)); Возврат ФорматированнаяСтрокаРезультатаПоиска(ПолеПоиска, ФрагментУсловия, ФрагментСтрокиПоиска); - + КонецФункции &НаКлиентеНаСервереБезКонтекста Функция СтрокаУсловияПоиска(Знач ПолеПоиска, Знач Условие, ЗначениеПоиска) - + Результат = ?(ТипЗнч(ЗначениеПоиска) = Тип("Число"), ОператорУниверсальногоПоиска(Условие), НРег(Условие)); ЗначениеПоиска = Строка(ЗначениеПоиска); Возврат Результат; - + КонецФункции &НаКлиентеНаСервереБезКонтекста Функция ФорматированнаяСтрокаРезультатаПоиска(Знач ПолеПоиска, Знач ФрагментУсловия, Знач ФрагментСтрокиПоиска) - + Возврат Новый ФорматированнаяСтрока(ПолеПоиска, ФрагментУсловия, """", ФрагментСтрокиПоиска, """"); - + КонецФункции &НаКлиентеНаСервереБезКонтекста Функция ШаблонФрагментаУсловия(Условие) - + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1%3%4'"), - " ", - "СкрытыйВариантОтчетаЦвет", - НРег(СтрЗаменить(Условие, "<", "<")), - " "); - + НСтр("ru = '%1%3%4'"), " ", "СкрытыйВариантОтчетаЦвет", + НРег(СтрЗаменить(Условие, "<", "<")), " "); + КонецФункции &НаКлиентеНаСервереБезКонтекста Функция ШаблонФрагментаСтрокиПоиска(СтрокаПоиска) - + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%3'"), - "МоиВариантыОтчетовЦвет", - "ВажнаяНадписьШрифт", + НСтр("ru = '%3'"), "МоиВариантыОтчетовЦвет", "ВажнаяНадписьШрифт", СтрокаПоиска); - + КонецФункции &НаКлиентеНаСервереБезКонтекста Функция СвойстваУниверсальногоПоиска(ПолеПоиска, ЗначениеПоиска, УправляющиеСимволы) - + Условие = УсловиеУниверсальногоПоиска(ЗначениеПоиска, УправляющиеСимволы); - + Свойства = Новый Структура; Свойства.Вставить("Использование", Истина); Свойства.Вставить("ЛевоеЗначение", ПолеПоиска); Свойства.Вставить("ВидСравнения", Условие); Свойства.Вставить("ПравоеЗначение", ЗначениеПоиска); - + Возврат Свойства; - + КонецФункции &НаКлиентеНаСервереБезКонтекста Функция УсловиеУниверсальногоПоиска(ЗначениеПоиска, УправляющиеСимволы) - - Если ТипЗнч(ЗначениеПоиска) = Тип("Строка") - И (Не ЗначениеЗаполнено(УправляющиеСимволы) - Или УправляющиеСимволы = "=") Тогда - + + Если ТипЗнч(ЗначениеПоиска) = Тип("Строка") И (Не ЗначениеЗаполнено(УправляющиеСимволы) + Или УправляющиеСимволы = "=") Тогда Условие = ВидСравненияКомпоновкиДанных.Содержит; - - ИначеЕсли ТипЗнч(ЗначениеПоиска) = Тип("Строка") - И (УправляющиеСимволы = "-" - Или УправляющиеСимволы = "<>") Тогда - + ИначеЕсли ТипЗнч(ЗначениеПоиска) = Тип("Строка") И (УправляющиеСимволы = "-" Или УправляющиеСимволы = "<>") Тогда Условие = ВидСравненияКомпоновкиДанных.НеСодержит; - - ИначеЕсли УправляющиеСимволы = "-" - Или УправляющиеСимволы = "<>" Тогда - + ИначеЕсли УправляющиеСимволы = "-" Или УправляющиеСимволы = "<>" Тогда Условие = ВидСравненияКомпоновкиДанных.НеРавно; - - ИначеЕсли УправляющиеСимволы = ">" Тогда - + ИначеЕсли УправляющиеСимволы = ">" Тогда Условие = ВидСравненияКомпоновкиДанных.Больше; - - ИначеЕсли УправляющиеСимволы = ">=" Тогда - + ИначеЕсли УправляющиеСимволы = ">=" Тогда Условие = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; - - ИначеЕсли УправляющиеСимволы = "<" Тогда - + ИначеЕсли УправляющиеСимволы = "<" Тогда Условие = ВидСравненияКомпоновкиДанных.Меньше; - - ИначеЕсли УправляющиеСимволы = "<=" Тогда - + ИначеЕсли УправляющиеСимволы = "<=" Тогда Условие = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно; - Иначе - Условие = ВидСравненияКомпоновкиДанных.Равно; - КонецЕсли; - + Возврат Условие; - + КонецФункции &НаСервереБезКонтекста Функция ОператорУниверсальногоПоиска(Условие) - + Операторы = Новый Соответствие; Операторы.Вставить(ВидСравненияКомпоновкиДанных.Равно, "="); Операторы.Вставить(ВидСравненияКомпоновкиДанных.НеРавно, "<>"); @@ -2703,367 +2935,298 @@ Операторы.Вставить(ВидСравненияКомпоновкиДанных.БольшеИлиРавно, ">="); Операторы.Вставить(ВидСравненияКомпоновкиДанных.Меньше, "<"); Операторы.Вставить(ВидСравненияКомпоновкиДанных.МеньшеИлиРавно, "<="); - + Оператор = Операторы[Условие]; - Возврат ?(Оператор = Неопределено, НРег(Условие), Оператор); - + КонецФункции &НаСервереБезКонтекста Функция ПоляУниверсальногоПоискаПоТипам(АдресСхемы, Знач Настройки) - + ПоляПоискаПоТипам = Новый Соответствие; - + КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; ОтчетыСервер.ИнициализироватьКомпоновщикНастроек(КомпоновщикНастроек, АдресСхемы); КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); - + КомпоновщикНастроек2 = Новый КомпоновщикНастроекКомпоновкиДанных; ОтчетыСервер.ИнициализироватьКомпоновщикНастроек(КомпоновщикНастроек2, АдресСхемы); КомпоновщикНастроек2.ЗагрузитьНастройки(Настройки); КомпоновщикНастроек2.РазвернутьАвтоПоля(); - + Коллекции = Новый Массив; - Коллекции.Добавить(ОписаниеПараметровОтчета(КомпоновщикНастроек)); Коллекции.Добавить(ОписаниеОтборовОтчета(КомпоновщикНастроек)); Коллекции.Добавить(ОписаниеПолейОтчета(КомпоновщикНастроек.Настройки, КомпоновщикНастроек2.Настройки)); - - Для Каждого Коллекция Из Коллекции Цикл - - Для Каждого ОписаниеПоля Из Коллекция Цикл - + + Для Каждого Коллекция Из Коллекции Цикл + Для Каждого ОписаниеПоля Из Коллекция Цикл Типы = ОписаниеПоля.ТипЗначения.Типы(); - Для Каждого Тип Из Типы Цикл - + ПоляПоТипу = ПоляПоискаПоТипам[Тип]; - - Если ПоляПоТипу = Неопределено Тогда + Если ПоляПоТипу = Неопределено Тогда ПоляПоТипу = Новый Соответствие; КонецЕсли; - + ПоляПоТипу.Вставить(ОписаниеПоля.Поле, ОписаниеПоля.Заголовок); ПоляПоискаПоТипам.Вставить(Тип, ПоляПоТипу); - - КонецЦикла; - - КонецЦикла; - - КонецЦикла; - - Возврат ПоляПоискаПоТипам; - -КонецФункции -&НаСервереБезКонтекста -Функция ОписаниеПараметровОтчета(КомпоновщикНастроек) - - ОписаниеПараметров = Новый Массив; - - Настройки = КомпоновщикНастроек.Настройки; - ПоляПараметровДанных = Настройки.ДоступныеПоляПараметровДанных.Элементы; - ПараметрыДанных = Настройки.ПараметрыДанных; - - Для Каждого ПолеПараметровДанных Из ПоляПараметровДанных Цикл - - Для Каждого Элемент Из ПолеПараметровДанных.Элементы Цикл - - СтруктураПоля = СтрРазделить(Элемент.Поле, "."); - - Если СтруктураПоля.Количество() < 2 Тогда - Продолжить; - КонецЕсли; - - ИмяПараметра = СтруктураПоля[1]; - - Если ПараметрыДанных.Элементы.Найти(ИмяПараметра) = Неопределено Тогда - Продолжить; - КонецЕсли; - - ОписаниеПараметра = ПараметрыДанных.ДоступныеПараметры.Элементы.Найти(ИмяПараметра); - - Если ОписаниеПараметра = Неопределено - Или Не ОписаниеПараметра.Видимость Тогда - - Продолжить; - КонецЕсли; - - ОписаниеПараметров.Добавить(Элемент); - + КонецЦикла; КонецЦикла; - КонецЦикла; - - Возврат ОписаниеПараметров; - + + Возврат ПоляПоискаПоТипам; + КонецФункции &НаСервереБезКонтекста Функция ОписаниеОтборовОтчета(КомпоновщикНастроек, Отбор = Неопределено, ОписаниеОтборов = Неопределено) - - Если ОписаниеОтборов = Неопределено Тогда + + Если ОписаниеОтборов = Неопределено Тогда ОписаниеОтборов = Новый Массив; КонецЕсли; - + Настройки = КомпоновщикНастроек.Настройки; - - Если Отбор = Неопределено Тогда + Если Отбор = Неопределено Тогда Отбор = Настройки.Отбор; КонецЕсли; - - Для Каждого Элемент Из Отбор.Элементы Цикл - - Если ТипЗнч(Элемент) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда - + + Для Каждого Элемент Из Отбор.Элементы Цикл + Если ТипЗнч(Элемент) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда ОписаниеОтборовОтчета(КомпоновщикНастроек, Элемент, ОписаниеОтборов); - Иначе - ОписаниеПоля = Настройки.ДоступныеПоляОтбора.НайтиПоле(Элемент.ЛевоеЗначение); - - Если ОписаниеПоля <> Неопределено Тогда + + Если ОписаниеПоля <> Неопределено Тогда ОписаниеОтборов.Добавить(ОписаниеПоля); КонецЕсли; - КонецЕсли; - КонецЦикла; - + Возврат ОписаниеОтборов; - + КонецФункции &НаСервереБезКонтекста Функция ОписаниеПолейОтчета(Настройки, Настройки2) - + ОписаниеПолей = Новый Массив; - + ИндексСтруктурыОтчета = ВариантыОтчетовСлужебный.ИндексСтруктурыОтчетаБезКонтекста(Настройки, Настройки2); - + ИндексПолейОтчета = ИндексСтруктурыОтчета.Скопировать(, "Поле"); ИндексПолейОтчета.Свернуть("Поле"); - + ПоляОтчета = ИндексПолейОтчета.ВыгрузитьКолонку("Поле"); - - Для Каждого ПолеОтчета Из ПоляОтчета Цикл - + + Для Каждого ПолеОтчета Из ПоляОтчета Цикл + ОписаниеПоля = Настройки.ДоступныеПоляВыбора.НайтиПоле(ПолеОтчета); - - Если ОписаниеПоля = Неопределено Тогда + + Если ОписаниеПоля = Неопределено Тогда ОписаниеПоля = Настройки.ДоступныеПоляГруппировок.НайтиПоле(ПолеОтчета); КонецЕсли; - - Если ОписаниеПоля <> Неопределено Тогда + + Если ОписаниеПоля <> Неопределено Тогда ОписаниеПолей.Добавить(ОписаниеПоля); КонецЕсли; - + КонецЦикла; - + Возврат ОписаниеПолей; - + КонецФункции &НаКлиенте Процедура ПрименитьЗначениеУниверсальногоПоиска(ВариантыПоиска) - + ЭтоПользовательскийПоиск = Ложь; - - Если Не ЗначениеУниверсальногоПоискаПримененоКПараметрам(ВариантыПоиска, ЭтоПользовательскийПоиск) Тогда + + Если Не ЗначениеУниверсальногоПоискаПримененоКПараметрам(ВариантыПоиска, ЭтоПользовательскийПоиск) Тогда ПрименитьЗначениеУниверсальногоПоискаКОтборам(ВариантыПоиска, ЭтоПользовательскийПоиск); КонецЕсли; - + КомпоновщикНастроек = Отчет.КомпоновщикНастроек; - - Если Не ЭтоПользовательскийПоиск Тогда + + Если Не ЭтоПользовательскийПоиск Тогда ВариантБылМодифицирован = ВариантМодифицирован; КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ОтчетИнициализирован", Ложь); ВариантМодифицирован = ВариантБылМодифицирован; - + РезультатНастройки = Новый Структура; РезультатНастройки.Вставить("КомпоновщикНастроекКД", КомпоновщикНастроек); РезультатНастройки.Вставить("ПользовательскиеНастройкиМодифицированы", Истина); ПодключитьОбработчикОжидания("ОбновитьЭлементыФормыНастроекОтложенно", 0.1, Истина); КонецЕсли; - - Если НастройкиОтчета.СвойстваРезультата.ВремяФормирования <= 5 Тогда + + Если НастройкиОтчета.СвойстваРезультата.ВремяФормирования <= 5 Тогда ОчиститьСообщения(); ПодключитьОбработчикОжидания("Сформировать", 0.1, Истина); Иначе ОтчетыКлиентСервер.ОповеститьОИзмененииНастроек(ЭтотОбъект); КонецЕсли; - + СброситьУниверсальныйПоиск(); - + КонецПроцедуры &НаКлиенте Функция ЗначениеУниверсальногоПоискаПримененоКПараметрам(ВариантыПоиска, ЭтоПользовательскийПоиск) - + КомпоновщикНастроек = Отчет.КомпоновщикНастроек; ПараметрыДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных; - + ПолеПараметра = Неопределено; ПодходящийВариантПоиска = Неопределено; - - Для Каждого ВариантПоиска Из ВариантыПоиска Цикл - + + Для Каждого ВариантПоиска Из ВариантыПоиска Цикл + ПолеПараметра = ПараметрыДанных.ДоступныеПоляПараметров.НайтиПоле(ВариантПоиска.ЛевоеЗначение); - - Если ПолеПараметра <> Неопределено Тогда - + Если ПолеПараметра <> Неопределено Тогда ПодходящийВариантПоиска = ВариантПоиска; Прервать; - КонецЕсли; - + КонецЦикла; - - Если ПолеПараметра = Неопределено Тогда + + Если ПолеПараметра = Неопределено Тогда Возврат Ложь; КонецЕсли; - + ОписаниеИмениПоляПараметра = СтрРазделить(ПолеПараметра.Поле, "."); ОписаниеИмениПараметра = Новый Массив; - - Для Индекс = 1 По ОписаниеИмениПоляПараметра.ВГраница() Цикл + + Для Индекс = 1 По ОписаниеИмениПоляПараметра.ВГраница() Цикл ОписаниеИмениПараметра.Добавить(ОписаниеИмениПоляПараметра[Индекс]); КонецЦикла; - + ИмяПараметра = СтрСоединить(ОписаниеИмениПараметра, "."); НайденныйПараметр = ПараметрыДанных.Элементы.Найти(ИмяПараметра); - - Если НайденныйПараметр = Неопределено Тогда + + Если НайденныйПараметр = Неопределено Тогда Возврат Ложь; КонецЕсли; - + ОписаниеПараметра = ПараметрыДанных.ДоступныеПараметры.НайтиПараметр(НайденныйПараметр.Параметр); - - Если ОписаниеПараметра.ДоступенСписокЗначений Тогда + + Если ОписаниеПараметра.ДоступенСписокЗначений Тогда НайденныйПараметр.Значение = ОтчетыКлиентСервер.ЗначенияСписком(ПодходящийВариантПоиска.ПравоеЗначение); Иначе НайденныйПараметр.Значение = ПодходящийВариантПоиска.ПравоеЗначение; КонецЕсли; - + НайденныйПараметр.Использование = Истина; - + ЭтоПользовательскийПоиск = ЗначениеЗаполнено(НайденныйПараметр.ИдентификаторПользовательскойНастройки); - - Если Не ЭтоПользовательскийПоиск Тогда + + Если Не ЭтоПользовательскийПоиск Тогда НайденныйПараметр.ИдентификаторПользовательскойНастройки = Строка(Новый УникальныйИдентификатор); КонецЕсли; - + НайденныйПараметр.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ; - + ПользовательскийПараметр = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти( НайденныйПараметр.ИдентификаторПользовательскойНастройки); - + ПользовательскийПараметр.Значение = НайденныйПараметр.Значение; ПользовательскийПараметр.Использование = НайденныйПараметр.Использование; - + Возврат Истина; - + КонецФункции &НаКлиенте Процедура ПрименитьЗначениеУниверсальногоПоискаКОтборам(ВариантыПоиска, ЭтоПользовательскийПоиск) - + КомпоновщикНастроек = Отчет.КомпоновщикНастроек; Фильтры = КомпоновщикНастроек.Настройки.Отбор; Фильтр = Неопределено; ПодходящийВариантПоиска = ?(ВариантыПоиска.Количество() = 0, Неопределено, ВариантыПоиска[0]); - - Для Каждого ВариантПоиска Из ВариантыПоиска Цикл - + + Для Каждого ВариантПоиска Из ВариантыПоиска Цикл + Фильтр = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрРазделаОтчета(Фильтры, ВариантПоиска.ЛевоеЗначение); - - Если Фильтр <> Неопределено Тогда - + + Если Фильтр <> Неопределено Тогда + ПодходящийВариантПоиска = ВариантПоиска; Прервать; - + КонецЕсли; - + КонецЦикла; - - Если ПодходящийВариантПоиска = Неопределено Тогда + + Если ПодходящийВариантПоиска = Неопределено Тогда Возврат; КонецЕсли; - - Если Фильтр = Неопределено Тогда - + + Если Фильтр = Неопределено Тогда + Фильтр = Фильтры.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Фильтр.ЛевоеЗначение = ПодходящийВариантПоиска.ЛевоеЗначение; - + КонецЕсли; - + ЭтоПользовательскийПоиск = ЗначениеЗаполнено(Фильтр.ИдентификаторПользовательскойНастройки); - - Если Не ЭтоПользовательскийПоиск Тогда - + + Если Не ЭтоПользовательскийПоиск Тогда + Фильтр.ИдентификаторПользовательскойНастройки = Строка(Новый УникальныйИдентификатор); УточнитьСвойстваФильтра(Фильтр, ПодходящийВариантПоиска); - + КонецЕсли; - + Фильтр.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ; - + ПользовательскийФильтр = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти( Фильтр.ИдентификаторПользовательскойНастройки); - + УточнитьСвойстваФильтра(ПользовательскийФильтр, ПодходящийВариантПоиска); - + КонецПроцедуры &НаКлиенте Процедура УточнитьСвойстваФильтра(Фильтр, Поиск) - - Если ТипЗнч(Фильтр) <> Тип("ЭлементОтбораКомпоновкиДанных") Тогда + + Если ТипЗнч(Фильтр) <> Тип("ЭлементОтбораКомпоновкиДанных") Тогда Возврат; КонецЕсли; - + Значения = ОтчетыКлиентСервер.ЗначенияСписком(Фильтр.ПравоеЗначение); - - Если Значения.НайтиПоЗначению(Поиск.ПравоеЗначение) = Неопределено Тогда + + Если Значения.НайтиПоЗначению(Поиск.ПравоеЗначение) = Неопределено Тогда Значения.Добавить(Поиск.ПравоеЗначение); КонецЕсли; - - Если Фильтр.Использование - И Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно - И Поиск.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно - И Значения.Количество() > 1 Тогда - + + Если Фильтр.Использование И Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно + И Поиск.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно И Значения.Количество() > 1 Тогда + Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; Фильтр.ПравоеЗначение = Значения; - - ИначеЕсли Фильтр.Использование - И Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке - И Поиск.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда - + + ИначеЕсли Фильтр.Использование И Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке + И Поиск.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда + Фильтр.ПравоеЗначение = Значения; - - ИначеЕсли Фильтр.Использование - И Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно - И Поиск.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно - И Значения.Количество() > 1 Тогда - + + ИначеЕсли Фильтр.Использование И Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно + И Поиск.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно И Значения.Количество() > 1 Тогда + Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке; Фильтр.ПравоеЗначение = Значения; - - ИначеЕсли Фильтр.Использование - И Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке - И Поиск.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно Тогда - + + ИначеЕсли Фильтр.Использование И Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке + И Поиск.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно Тогда + Фильтр.ПравоеЗначение = Значения; - + Иначе - Фильтр.Использование = Поиск.Использование; Фильтр.ВидСравнения = Поиск.ВидСравнения; Фильтр.ПравоеЗначение = Поиск.ПравоеЗначение; - КонецЕсли; - + КонецПроцедуры #КонецОбласти @@ -3072,90 +3235,88 @@ &НаСервере Процедура ИнициализироватьМенюУровнейГруппировок() - + АдресИндексаСтруктурыОтчета = НастройкиОтчета.СвойстваРезультата.АдресИндексаСтруктурыОтчета; ИндексСтруктурыОтчета = Неопределено; - - Если ЭтоАдресВременногоХранилища(АдресИндексаСтруктурыОтчета) Тогда + + Если ЭтоАдресВременногоХранилища(АдресИндексаСтруктурыОтчета) Тогда ИндексСтруктурыОтчета = ПолучитьИзВременногоХранилища(АдресИндексаСтруктурыОтчета); КонецЕсли; - + ОчиститьМенюУровнейГруппировок(); ЗаполнитьМенюУровнейГруппировок(ИндексСтруктурыОтчета); - + УстановитьДоступностьМенюУровнейГруппировок(); - + КонецПроцедуры &НаСервере Процедура ОчиститьМенюУровнейГруппировок() - + Кнопки = Элементы.ГруппаУровниГруппировок.ПодчиненныеЭлементы; Индекс = Кнопки.Количество() - 1; - - Пока Индекс >= 0 Цикл - + + Пока Индекс >= 0 Цикл + Кнопка = Кнопки[Индекс]; Индекс = Индекс - 1; - - Если Кнопка = Элементы.ПоказатьУровеньГруппировок Тогда + + Если Кнопка = Элементы.ПоказатьУровеньГруппировок Тогда Продолжить; КонецЕсли; - + ИмяДополнительнойКнопки = Кнопка.Имя + "Еще"; ДополнительнаяКнопка = Элементы.Найти(ИмяДополнительнойКнопки); - - Если ДополнительнаяКнопка <> Неопределено Тогда + + Если ДополнительнаяКнопка <> Неопределено Тогда Элементы.Удалить(ДополнительнаяКнопка); КонецЕсли; - + ИмяКнопкиКонтекстного = Кнопка.Имя + "КонтекстноеМеню"; КнопкаКонтекстногоМеню = Элементы.Найти(ИмяКнопкиКонтекстного); - - Если КнопкаКонтекстногоМеню <> Неопределено Тогда + + Если КнопкаКонтекстногоМеню <> Неопределено Тогда Элементы.Удалить(КнопкаКонтекстногоМеню); КонецЕсли; - + Команда = Команды.Найти(Кнопка.Имя); - - Если Команда <> Неопределено Тогда + + Если Команда <> Неопределено Тогда Команды.Удалить(Команда); КонецЕсли; - + Элементы.Удалить(Кнопка); - + КонецЦикла; - + КонецПроцедуры &НаСервере Процедура ЗаполнитьМенюУровнейГруппировок(ИндексСтруктурыОтчета) - - Если ОтчетТабличныйДокумент.КоличествоУровнейГруппировокСтрок() = 0 Тогда + + Если ОтчетТабличныйДокумент.КоличествоУровнейГруппировокСтрок() = 0 Тогда Возврат; КонецЕсли; - - Если ИндексСтруктурыОтчета = Неопределено - Или ИндексСтруктурыОтчета.Количество() = 0 Тогда - + + Если ИндексСтруктурыОтчета = Неопределено Или ИндексСтруктурыОтчета.Количество() = 0 Тогда ИндексСтруктурыОтчета = ВариантыОтчетовСлужебный.НовыйИндексСтруктурыОтчета(); КоличествоРазделов = 999; Иначе КоличествоРазделов = ИндексСтруктурыОтчета[0].КоличествоРазделов; КонецЕсли; - - Если КоличествоРазделов = 1 Тогда + + Если КоличествоРазделов = 1 Тогда СвойстваМеню = СвойстваМенюУровнейГруппировокПростогоОтчета(ИндексСтруктурыОтчета); Иначе СвойстваМеню = СвойстваМенюУровнейГруппировокСложногоОтчета(ИндексСтруктурыОтчета); КонецЕсли; - - Для Каждого Свойства Из СвойстваМеню Цикл - + + Для Каждого Свойства Из СвойстваМеню Цикл + Команда = Команды.Добавить(Свойства.ИмяКоманды); Команда.Заголовок = Свойства.ПредставлениеУровняГруппировки; Команда.Действие = "Подключаемый_ПоказатьУровеньГруппировок"; - + Кнопка = Элементы.Добавить(Свойства.ИмяКоманды, Тип("КнопкаФормы"), Элементы.ГруппаУровниГруппировок); Кнопка.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; Кнопка.ИмяКоманды = Свойства.ИмяКоманды; @@ -3163,74 +3324,73 @@ Кнопка.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанели; // Подменю Еще. - Кнопка = Элементы.Добавить(Свойства.ИмяКоманды + "Еще", Тип("КнопкаФормы"), - Элементы.ГруппаУровниГруппировокЕще); + Кнопка = Элементы.Добавить(Свойства.ИмяКоманды + "Еще", Тип("КнопкаФормы"), Элементы.ГруппаУровниГруппировокЕще); Кнопка.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; Кнопка.ИмяКоманды = Свойства.ИмяКоманды; Кнопка.Заголовок = Свойства.ПредставлениеУровняГруппировки; Кнопка.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю; // Контекстное меню отчета. - КнопкаКонтекстногоМеню = Элементы.Добавить(Свойства.ИмяКоманды + "КонтекстноеМеню", Тип("КнопкаФормы"), + КнопкаКонтекстногоМеню = Элементы.Добавить(Свойства.ИмяКоманды + "КонтекстноеМеню", Тип("КнопкаФормы"), Элементы.ГруппаУровниГруппировокКонтекстноеМеню); КнопкаКонтекстногоМеню.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; КнопкаКонтекстногоМеню.ИмяКоманды = Свойства.ИмяКоманды; КнопкаКонтекстногоМеню.Заголовок = Свойства.ПредставлениеУровняГруппировки; - + КонецЦикла; - + КонецПроцедуры &НаСервере Функция СвойстваМенюУровнейГруппировокСложногоОтчета(ИндексСтруктурыОтчета) - + СвойстваМеню = СвойстваМенюИзСтруктурыОтчета(ИндексСтруктурыОтчета); - - КоличествоУровнейГруппировок = ОтчетТабличныйДокумент.КоличествоУровнейГруппировокСтрок(); - Для УровеньГруппировки = 1 По КоличествоУровнейГруппировок Цикл - + + КоличествоУровнейГруппировок = ОтчетТабличныйДокумент.КоличествоУровнейГруппировокСтрок(); + Для УровеньГруппировки = 1 По КоличествоУровнейГруппировок Цикл + Свойства = СвойстваМеню.Добавить(); Свойства.ИмяКоманды = Элементы.ПоказатьУровеньГруппировок.Имя + УровеньГруппировки; Свойства.УровеньГруппировки = УровеньГруппировки; Свойства.ПредставлениеУровняГруппировки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Уровня %1'"), УровеньГруппировки); - + КонецЦикла; - - СвойстваМеню.Сортировать("УровеньГруппировки"); + + СвойстваМеню.Сортировать("УровеньГруппировки"); Возврат СвойстваМеню; - + КонецФункции &НаСервере Функция СвойстваМенюУровнейГруппировокПростогоОтчета(ИндексСтруктурыОтчета) - + ПоляСИерархическойГруппировкой = ПоляОтчетаСИерархическойГруппировкой(ИндексСтруктурыОтчета); - - Если ПоляСИерархическойГруппировкой.Количество() > 1 Тогда + + Если ПоляСИерархическойГруппировкой.Количество() > 1 Тогда Возврат СвойстваМенюУровнейГруппировокСложногоОтчета(ИндексСтруктурыОтчета); КонецЕсли; - + КоличествоУровнейГруппировок = ОтчетТабличныйДокумент.КоличествоУровнейГруппировокСтрок(); - + ГруппировкиОтчета = ГруппировкиОтчетаСУчетомПоляСИерархическойГруппировкой( ИндексСтруктурыОтчета, ПоляСИерархическойГруппировкой, КоличествоУровнейГруппировок); - + СвойстваМеню = СвойстваМенюИзСтруктурыОтчета(ИндексСтруктурыОтчета); - Для Индекс = 0 По Мин(ГруппировкиОтчета.Количество(), КоличествоУровнейГруппировок) - 1 Цикл - + Для Индекс = 0 По Мин(ГруппировкиОтчета.Количество(), КоличествоУровнейГруппировок) - 1 Цикл + УровеньГруппировки = Индекс + 1; - + Свойства = СвойстваМеню.Добавить(); Свойства.ПредставлениеУровняГруппировки = ГруппировкиОтчета[Индекс].ПредставлениеГруппировки; Свойства.ИмяКоманды = Элементы.ПоказатьУровеньГруппировок.Имя + УровеньГруппировки; Свойства.УровеньГруппировки = УровеньГруппировки; - + КонецЦикла; - - СвойстваМеню.Сортировать("УровеньГруппировки"); + + СвойстваМеню.Сортировать("УровеньГруппировки"); Возврат СвойстваМеню; - + КонецФункции // Параметры: @@ -3246,228 +3406,224 @@ Функция СвойстваМенюИзСтруктурыОтчета(ИндексСтруктурыОтчета) СвойстваМеню = ИндексСтруктурыОтчета.СкопироватьКолонки("ПорядокГруппировки, ПредставлениеГруппировки"); // ТаблицаЗначений - + СвойстваМеню.Колонки.Вставить(1, "ИмяКоманды", Новый ОписаниеТипов("Строка")); - + Колонка = СвойстваМеню.Колонки.Найти("ПорядокГруппировки"); // КолонкаТаблицыЗначений Колонка.Имя = "УровеньГруппировки"; - + Колонка = СвойстваМеню.Колонки.Найти("ПредставлениеГруппировки"); // КолонкаТаблицыЗначений Колонка.Имя = "ПредставлениеУровняГруппировки"; - + Возврат СвойстваМеню; - + КонецФункции &НаСервере Функция ПоляОтчетаСИерархическойГруппировкой(ИндексСтруктурыОтчета) - - Поиск = Новый Структура(); + + Поиск = Новый Структура; Поиск.Вставить("ИспользуетсяВПоляхГруппировки", Истина); Поиск.Вставить("ТипГруппировки", ТипГруппировкиКомпоновкиДанных.Иерархия); - + Возврат ИндексСтруктурыОтчета.Скопировать(Поиск); - + КонецФункции &НаСервере -Функция ГруппировкиОтчетаСУчетомПоляСИерархическойГруппировкой(ИндексСтруктурыОтчета, ПоляСИерархическойГруппировкой, КоличествоУровнейГруппировок) - +Функция ГруппировкиОтчетаСУчетомПоляСИерархическойГруппировкой(ИндексСтруктурыОтчета, ПоляСИерархическойГруппировкой, + КоличествоУровнейГруппировок) + ГруппировкиОтчета = ИндексСтруктурыОтчета.Скопировать(); // ТаблицаЗначений - + Индекс = ГруппировкиОтчета.Количество() - 1; - - Пока Индекс >= 0 Цикл - - Если СтрНайти(ГруппировкиОтчета[Индекс].ИдентификаторГруппировки, "/column/") > 0 Тогда + + Пока Индекс >= 0 Цикл + + Если СтрНайти(ГруппировкиОтчета[Индекс].ИдентификаторГруппировки, "/column/") > 0 Тогда ГруппировкиОтчета.Удалить(Индекс); КонецЕсли; - + Индекс = Индекс - 1; - + КонецЦикла; - + ГруппировкиОтчета.Свернуть("ПорядокГруппировки, ПредставлениеГруппировки"); - + КолонкиГруппировкиОтчета = ГруппировкиОтчета.Колонки; // КоллекцияКолонокТаблицыЗначений КолонкиГруппировкиОтчета.Добавить("Уровень", Новый ОписаниеТипов("Число")); - + ГруппировкиОтчета.Сортировать("ПорядокГруппировки"); - + КоличествоУровнейПоляСИерархическойГруппировкой = КоличествоУровнейГруппировок - ГруппировкиОтчета.Количество(); - - Если ПоляСИерархическойГруппировкой.Количество() <> 1 - Или КоличествоУровнейПоляСИерархическойГруппировкой = 0 Тогда - + + Если ПоляСИерархическойГруппировкой.Количество() <> 1 Или КоличествоУровнейПоляСИерархическойГруппировкой = 0 Тогда Возврат ГруппировкиОтчета; КонецЕсли; - + Поиск = Новый Структура("ПорядокГруппировки, ПредставлениеГруппировки"); ЗаполнитьЗначенияСвойств(Поиск, ПоляСИерархическойГруппировкой[0]); - + НайденнаяГруппировка = ГруппировкиОтчета.НайтиСтроки(Поиск)[0]; ИндексНайденнойГруппировки = ГруппировкиОтчета.Индекс(НайденнаяГруппировка); - + ШаблонПредставленияГруппировки = НСтр("ru = '%1 - уровень %2'"); УровеньПоляСИерархическойГруппировкой = 0; - - Пока КоличествоУровнейПоляСИерархическойГруппировкой > 0 Цикл - + + Пока КоличествоУровнейПоляСИерархическойГруппировкой > 0 Цикл + УровеньПоляСИерархическойГруппировкой = УровеньПоляСИерархическойГруппировкой + 1; - + ДополнительнаяГруппировка = ГруппировкиОтчета.Вставить(ИндексНайденнойГруппировки); ЗаполнитьЗначенияСвойств(ДополнительнаяГруппировка, НайденнаяГруппировка); - + ДополнительнаяГруппировка.Уровень = УровеньПоляСИерархическойГруппировкой; - + ДополнительнаяГруппировка.ПредставлениеГруппировки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ШаблонПредставленияГруппировки, - ДополнительнаяГруппировка.ПредставлениеГруппировки, + ШаблонПредставленияГруппировки, ДополнительнаяГруппировка.ПредставлениеГруппировки, УровеньПоляСИерархическойГруппировкой); - + КоличествоУровнейПоляСИерархическойГруппировкой = КоличествоУровнейПоляСИерархическойГруппировкой - 1; - + КонецЦикла; - + УровеньПоляСИерархическойГруппировкой = УровеньПоляСИерархическойГруппировкой + 1; - + НайденнаяГруппировка.Уровень = УровеньПоляСИерархическойГруппировкой; - + НайденнаяГруппировка.ПредставлениеГруппировки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ШаблонПредставленияГруппировки, - НайденнаяГруппировка.ПредставлениеГруппировки, + ШаблонПредставленияГруппировки, НайденнаяГруппировка.ПредставлениеГруппировки, УровеньПоляСИерархическойГруппировкой); - + ГруппировкиОтчета.Сортировать("ПорядокГруппировки, Уровень"); - + Возврат ГруппировкиОтчета; - + КонецФункции &НаСервере Процедура УстановитьДоступностьМенюУровнейГруппировок() - + МенюЗаполнено = (Элементы.ГруппаУровниГруппировок.ПодчиненныеЭлементы.Количество() > 1); - + Элементы.ПоказатьУровеньГруппировок.Видимость = Не МенюЗаполнено; Элементы.ПоказатьУровеньГруппировокЕще.Видимость = Не МенюЗаполнено; Элементы.ПоказатьУровеньГруппировокКонтекстноеМеню.Видимость = Не МенюЗаполнено; - + Элементы.ГруппаУровниГруппировок.Видимость = МенюЗаполнено; Элементы.ГруппаУровниГруппировокЕще.Видимость = МенюЗаполнено; Элементы.ГруппаУровниГруппировокКонтекстноеМеню.Видимость = МенюЗаполнено; - + КонецПроцедуры &НаКлиенте Процедура ПоказатьВыбранныйУровеньГруппировок(УровеньГруппировки = Неопределено) - - Если УровеньГруппировки = Неопределено Тогда + + Если УровеньГруппировки = Неопределено Тогда УровеньГруппировки = ?(РежимРасшифровки, НеопределенныйУровеньГруппировок(), ВыбранныйУровеньГруппировок); КонецЕсли; - + Индекс = УровеньГруппировки - 1; Граница = ОтчетТабличныйДокумент.КоличествоУровнейГруппировокСтрок() - 1; - - Пока Граница > Индекс Цикл - + + Пока Граница > Индекс Цикл + ОтчетТабличныйДокумент.ПоказатьУровеньГруппировокСтрок(Граница); Граница = Граница - 1; - + КонецЦикла; - + ОтчетТабличныйДокумент.ПоказатьУровеньГруппировокСтрок(Индекс); - + ВыбранныйУровеньГруппировок = УровеньГруппировки; - + ЭталонноеМеню = Элементы.ГруппаУровниГруппировок; ЭталоннаяКнопка = Элементы.ПоказатьУровеньГруппировок; - + ОбластиВыводаМеню = Новый Соответствие; ОбластиВыводаМеню.Вставить(ЭталонноеМеню, ЭталоннаяКнопка); ОбластиВыводаМеню.Вставить(Элементы.ГруппаУровниГруппировокЕще, Элементы.ПоказатьУровеньГруппировокЕще); - ОбластиВыводаМеню.Вставить(Элементы.ГруппаУровниГруппировокКонтекстноеМеню, Элементы.ПоказатьУровеньГруппировокКонтекстноеМеню); - - Для Каждого Область Из ОбластиВыводаМеню Цикл - + ОбластиВыводаМеню.Вставить(Элементы.ГруппаУровниГруппировокКонтекстноеМеню, + Элементы.ПоказатьУровеньГруппировокКонтекстноеМеню); + + Для Каждого Область Из ОбластиВыводаМеню Цикл + Кнопки = Область.Ключ.ПодчиненныеЭлементы; - - Для Каждого Кнопка Из Кнопки Цикл + Для Каждого Кнопка Из Кнопки Цикл Кнопка.Пометка = Ложь; КонецЦикла; - + ИмяКнопки = ЭталоннаяКнопка.Имя + УровеньГруппировки + СтрЗаменить(Область.Значение.Имя, ЭталоннаяКнопка.Имя, ""); Кнопка = Кнопки.Найти(ИмяКнопки); - - Если Кнопка <> Неопределено Тогда + Если Кнопка <> Неопределено Тогда Кнопка.Пометка = Истина; КонецЕсли; - + КонецЦикла; - + ПодключитьОбработчикОжидания("СохранитьВыбранныйУровеньГруппировокОтложено", 0.1, Истина); - + КонецПроцедуры &НаКлиенте Процедура СохранитьВыбранныйУровеньГруппировокОтложено() - + Если Не ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда КлючНастроек = КлючНастроекВариантаОтчета(НастройкиОтчета.ПолноеИмя, КлючТекущегоВарианта); СохранитьВыбранныйУровеньГруппировок(КлючНастроек, ВыбранныйУровеньГруппировок, РежимРасшифровки); КонецЕсли; - + КонецПроцедуры &НаСервереБезКонтекста Процедура СохранитьВыбранныйУровеньГруппировок(КлючХраненияЗначения, ВыбранныйУровеньГруппировок, РежимРасшифровки) - - Если РежимРасшифровки Тогда + + Если РежимРасшифровки Тогда Возврат; КонецЕсли; - + ОбщегоНазначения.ХранилищеНастроекДанныхФормСохранить( КлючХраненияЗначения, "ВыбранныйУровеньГруппировок", ВыбранныйУровеньГруппировок); - + КонецПроцедуры &НаСервереБезКонтекста Процедура ВосстановитьВыбранныйУровеньГруппировок(КлючХраненияЗначения, ВыбранныйУровеньГруппировок, РежимРасшифровки) - - Если РежимРасшифровки Тогда + + Если РежимРасшифровки Тогда Возврат; КонецЕсли; - + СохраненноеЗначение = ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить( КлючХраненияЗначения, "ВыбранныйУровеньГруппировок"); - - Если ЗначениеЗаполнено(СохраненноеЗначение) Тогда + + Если ЗначениеЗаполнено(СохраненноеЗначение) Тогда ВыбранныйУровеньГруппировок = СохраненноеЗначение; Иначе ВыбранныйУровеньГруппировок = НеопределенныйУровеньГруппировок(); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура СброситьВыбранныйУровеньГруппировок() - - Если РежимРасшифровки Тогда + + Если РежимРасшифровки Тогда Возврат; КонецЕсли; - + ВыбранныйУровеньГруппировок = НеопределенныйУровеньГруппировок(); - - Для Каждого Элемент Из Элементы.ГруппаУровниГруппировок.ПодчиненныеЭлементы Цикл - - Если ТипЗнч(Элемент) = Тип("КнопкаФормы") Тогда + + Для Каждого Элемент Из Элементы.ГруппаУровниГруппировок.ПодчиненныеЭлементы Цикл + + Если ТипЗнч(Элемент) = Тип("КнопкаФормы") Тогда Элемент.Пометка = Ложь; КонецЕсли; - + КонецЦикла; - + ПодключитьОбработчикОжидания("СохранитьВыбранныйУровеньГруппировокОтложено", 0.1, Истина); - + КонецПроцедуры &НаКлиентеНаСервереБезКонтекста @@ -3480,29 +3636,31 @@ #Область ВыводЗаголовковНастроек &НаСервереБезКонтекста -Процедура СохранитьСостояниеОпцииВыводитьЗаголовкиНастроек(КлючХраненияЗначения, ВыводитьЗаголовкиНастроек, РежимРасшифровки) - - Если РежимРасшифровки Тогда +Процедура СохранитьСостояниеОпцииВыводитьЗаголовкиНастроек(КлючХраненияЗначения, ВыводитьЗаголовкиНастроек, + РежимРасшифровки) + + Если РежимРасшифровки Тогда Возврат; КонецЕсли; - + ОбщегоНазначения.ХранилищеНастроекДанныхФормСохранить( КлючХраненияЗначения, "ВыводитьЗаголовкиНастроек", ВыводитьЗаголовкиНастроек); - + КонецПроцедуры &НаСервереБезКонтекста -Процедура ВосстановитьСостояниеОпцииВыводитьЗаголовкиНастроек(КлючХраненияЗначения, ВыводитьЗаголовкиНастроек, РежимРасшифровки) - - Если РежимРасшифровки Тогда +Процедура ВосстановитьСостояниеОпцииВыводитьЗаголовкиНастроек(КлючХраненияЗначения, ВыводитьЗаголовкиНастроек, + РежимРасшифровки) + + Если РежимРасшифровки Тогда Возврат; КонецЕсли; - + СохраненноеЗначение = ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить( КлючХраненияЗначения, "ВыводитьЗаголовкиНастроек"); - + ВыводитьЗаголовкиНастроек = СохраненноеЗначение = Неопределено Или СохраненноеЗначение = Истина; - + КонецПроцедуры #КонецОбласти @@ -3510,176 +3668,186 @@ #Область СохранениеРезультатаОтчета &НаКлиенте -Процедура СохранитьОтчетЗавершение(РасширениеПодключено, ДополнительныеПараметры) Экспорт - +Процедура СохранитьОтчетЗавершение(РасширениеПодключено, ДополнительныеПараметры) Экспорт + Контекст = Новый Структура; Контекст.Вставить("ИндексФорматовСохраненияОтчета", Новый Соответствие); - + Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); Диалог.Фильтр = ДоступныеФорматыСохраненияОтчета(Контекст.ИндексФорматовСохраненияОтчета); Диалог.МножественныйВыбор = Ложь; Диалог.Заголовок = НСтр("ru = 'Сохранение результата отчета'"); - + Обработчик = Новый ОписаниеОповещения("СохранитьОтчетПослеВыбораИмениФайла", ЭтотОбъект, Контекст); ФайловаяСистемаКлиент.ПоказатьДиалогВыбора(Обработчик, Диалог); - + КонецПроцедуры &НаКлиенте -Процедура СохранитьОтчетПослеВыбораИмениФайла(Результат, Контекст) Экспорт - - Если ТипЗнч(Результат) = Тип("Массив") И Результат.Количество() > 0 Тогда +Процедура СохранитьОтчетПослеВыбораИмениФайла(Результат, Контекст) Экспорт + + Если ТипЗнч(Результат) = Тип("Массив") И Результат.Количество() > 0 Тогда ПолноеИмяФайлаОтчета = Результат[0]; - ИначеЕсли ТипЗнч(Результат) = Тип("Строка") Тогда + ИначеЕсли ТипЗнч(Результат) = Тип("Строка") Тогда ПолноеИмяФайлаОтчета = Результат; Иначе Возврат; КонецЕсли; - + Если Не ЗначениеЗаполнено(ПолноеИмяФайлаОтчета) Тогда - Контекст.Вставить("ПолноеИмяФайлаОтчета", ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(Заголовок)); + Контекст.Вставить("ПолноеИмяФайлаОтчета", ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла( + Заголовок)); ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ПослеВыбораФорматаСохранения", ЭтотОбъект, Контекст); СписокФорматов = СписокДоступныхФорматовСохраненияОтчета(Контекст.ИндексФорматовСохраненияОтчета); ФорматПоУмолчанию = СписокФорматов.НайтиПоЗначению("mxl"); - СписокФорматов.ПоказатьВыборЭлемента(ОписаниеОповещенияОЗакрытии, НСтр("ru='Выберите формат сохранения'"), ФорматПоУмолчанию); + СписокФорматов.ПоказатьВыборЭлемента(ОписаниеОповещенияОЗакрытии, НСтр("ru='Выберите формат сохранения'"), + ФорматПоУмолчанию); Иначе Контекст.Вставить("ПолноеИмяФайлаОтчета", ПолноеИмяФайлаОтчета); ВыбранныйЭлемент = Новый Структура("Значение"); ПослеВыбораФорматаСохранения(ВыбранныйЭлемент, Контекст); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ПослеВыбораФорматаСохранения(ВыбранныйЭлемент, Контекст) Экспорт - + Если ВыбранныйЭлемент = Неопределено Тогда Возврат; - КонецЕсли; - + КонецЕсли; + ПолноеИмяФайлаОтчета = Контекст.ПолноеИмяФайлаОтчета; Если ВыбранныйЭлемент.Значение <> Неопределено Тогда ПолноеИмяФайлаОтчета = ПолноеИмяФайлаОтчета + "." + ВыбранныйЭлемент.Значение; - КонецЕсли; - - Обработчик = Новый ОписаниеОповещения("СохранитьОтчетПослеСохраненияРезультатаОтчета", ЭтотОбъект, ПолноеИмяФайлаОтчета); - - ФорматыСохранения = ФорматыСохраненияОтчета(ПолноеИмяФайлаОтчета, - Контекст.ИндексФорматовСохраненияОтчета); + КонецЕсли; + + Обработчик = Новый ОписаниеОповещения("СохранитьОтчетПослеСохраненияРезультатаОтчета", ЭтотОбъект, + ПолноеИмяФайлаОтчета); + + ФорматыСохранения = ФорматыСохраненияОтчета(ПолноеИмяФайлаОтчета, Контекст.ИндексФорматовСохраненияОтчета); СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета - - РезультатОтчета = РезультатОтчетаДляСохранения(ОтчетТабличныйДокумент, СвойстваРезультата.Заголовки); + + РезультатОтчета = РезультатОтчетаДляСохранения(ОтчетТабличныйДокумент, СвойстваРезультата.Заголовки); РезультатОтчета.НачатьЗапись(Обработчик, ПолноеИмяФайлаОтчета, ФорматыСохранения); КонецПроцедуры &НаКлиенте -Процедура СохранитьОтчетПослеСохраненияРезультатаОтчета(Результат, ПолноеИмяФайлаОтчета) Экспорт - - Если Результат <> Истина Тогда +Процедура СохранитьОтчетПослеСохраненияРезультатаОтчета(Результат, ПолноеИмяФайлаОтчета) Экспорт + + Если Результат <> Истина Тогда Возврат; КонецЕсли; - + Обработчик = Новый ОписаниеОповещения("СохранитьОтчетПриВыбореИмениФайлаОтчета", ЭтотОбъект, ПолноеИмяФайлаОтчета); ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет сохранен в файл'"), Обработчик, ПолноеИмяФайлаОтчета); - + КонецПроцедуры &НаКлиенте -Процедура СохранитьОтчетПриВыбореИмениФайлаОтчета(ПолноеИмяФайлаОтчета) Экспорт - +Процедура СохранитьОтчетПриВыбореИмениФайлаОтчета(ПолноеИмяФайлаОтчета) Экспорт + ФайловаяСистемаКлиент.ОткрытьФайл(ПолноеИмяФайлаОтчета); - + КонецПроцедуры &НаКлиенте Функция ФорматыСохраненияОтчета(Знач ПолноеИмяФайлаОтчета, ИндексФорматовСохраненияОтчета) - - ОписаниеПолногоИмениФайла = СтрРазделить(ПолноеИмяФайлаОтчета, ПолучитьРазделительПути()); + + ОписаниеПолногоИмениФайла = СтрРазделить(ПолноеИмяФайлаОтчета, ПолучитьРазделительПути()); ИмяФайлаОтчета = ОписаниеПолногоИмениФайла[ОписаниеПолногоИмениФайла.ВГраница()]; - - ОписаниеИмениФайла = СтрРазделить(ИмяФайлаОтчета, "."); + + ОписаниеИмениФайла = СтрРазделить(ИмяФайлаОтчета, "."); РасширениеФайлаОтчета = ОписаниеИмениФайла[ОписаниеИмениФайла.ВГраница()]; - + Возврат ИндексФорматовСохраненияОтчета[РасширениеФайлаОтчета]; - + КонецФункции &НаСервереБезКонтекста Функция ДоступныеФорматыСохраненияОтчета(ИндексФорматовСохраненияОтчета) - + ДоступныеФорматы = Новый Массив; - + ФорматыСохранения = СтандартныеПодсистемыСервер.НастройкиФорматовСохраненияТабличногоДокумента(); - + ФорматСохраненияTXT = ФорматыСохранения.Найти(ТипФайлаТабличногоДокумента.TXT, "ТипФайлаТабличногоДокумента"); - ФорматСохраненияANSITXT = ФорматыСохранения.Найти(ТипФайлаТабличногоДокумента.ANSITXT, "ТипФайлаТабличногоДокумента"); - - Если ФорматСохраненияTXT <> Неопределено - И ФорматСохраненияANSITXT <> Неопределено Тогда - + ФорматСохраненияANSITXT = ФорматыСохранения.Найти(ТипФайлаТабличногоДокумента.ANSITXT, + "ТипФайлаТабличногоДокумента"); + + Если ФорматСохраненияTXT <> Неопределено И ФорматСохраненияANSITXT <> Неопределено Тогда ФорматыСохранения.Удалить(ФорматСохраненияANSITXT); КонецЕсли; - + ТекущийФорматСохранения = Новый Массив; - + Для Каждого ФорматСохранения Из ФорматыСохранения Цикл - - РасширениеФорматаСохранения = "*." + ФорматСохранения.Расширение; - ПредставлениеФорматаСохранения = СтрЗаменить(ФорматСохранения.Представление, - "." + ФорматСохранения.Расширение, РасширениеФорматаСохранения); - + + РасширениеФорматаСохранения = "*." + ФорматСохранения.Расширение; + ПредставлениеФорматаСохранения = СтрЗаменить(ФорматСохранения.Представление, "." + ФорматСохранения.Расширение, + РасширениеФорматаСохранения); + ТекущийФорматСохранения.Добавить(ПредставлениеФорматаСохранения); ТекущийФорматСохранения.Добавить(РасширениеФорматаСохранения); - + ДоступныеФорматы.Добавить(СтрСоединить(ТекущийФорматСохранения, "|")); - + ТекущийФорматСохранения.Очистить(); - + ИндексФорматовСохраненияОтчета.Вставить(ФорматСохранения.Расширение, ФорматСохранения.ТипФайлаТабличногоДокумента); - + КонецЦикла; - + Возврат СтрСоединить(ДоступныеФорматы, "|"); - + КонецФункции &НаСервереБезКонтекста Функция РезультатОтчетаДляСохранения(ОтчетТабличныйДокумент, Заголовки) - + РезультатОтчета = СкопироватьТабличныйДокумент(ОтчетТабличныйДокумент); - - Для Каждого ИндексЗаголовка Из Заголовки Цикл - + + Для Каждого ИндексЗаголовка Из Заголовки Цикл + СвойстваЗаголовка = ИндексЗаголовка.Значение; - - Если Не СвойстваЗаголовка.ПолеСортируется Тогда + + Если Не СвойстваЗаголовка.ПолеСортируется Тогда Продолжить; КонецЕсли; - + Область = РезультатОтчета.Область(ИндексЗаголовка.Ключ); Область.Картинка = Неопределено; - + КонецЦикла; - + Возврат РезультатОтчета; - + КонецФункции &НаСервереБезКонтекста Функция СкопироватьТабличныйДокумент(ТабличныйДокумент) - + ПотокВПамяти = Новый ПотокВПамяти; ТабличныйДокумент.Записать(ПотокВПамяти); ПотокВПамяти.Перейти(0, ПозицияВПотоке.Начало); - + Результат = Новый ТабличныйДокумент; Результат.Прочитать(ПотокВПамяти, СпособЧтенияЗначенийТабличногоДокумента.Значение); - + Возврат Результат; - + КонецФункции +&НаСервере +Процедура СохранитьСнимокОтчетаПользователя() + + РезультатОтчета = СкопироватьТабличныйДокумент(ОтчетТабличныйДокумент); + + РегистрыСведений.СнимкиОтчетов.СохранитьСнимокОтчетаПользователя(РезультатОтчета, НастройкиОтчета); + +КонецПроцедуры + #КонецОбласти //////////////////////////////////////////////////////////////////////////////// @@ -3687,42 +3855,40 @@ &НаСервере Процедура УстановитьВидимостьДоступность() - - ПоказыватьКомандыВыбораВариантов = - ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) + + ПоказыватьКомандыВыбораВариантов = ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) И НастройкиОтчета.РазрешеноВыбиратьВарианты; - + ПоказыватьКомандыИзмененияВарианта = ПоказыватьКомандыВыбораВариантов И НастройкиОтчета.РазрешеноИзменятьВарианты; КоличествоДоступныхНастроек = ОтчетыСервер.КоличествоДоступныхНастроек(Отчет.КомпоновщикНастроек); - + Элементы.ВсеНастройки.Видимость = ПоказыватьКомандыИзмененияВарианта Или КоличествоДоступныхНастроек.Обычных > 0; Элементы.ВсеНастройкиЕще.Видимость = Элементы.ВсеНастройки.Видимость; Элементы.ГруппаВариантыОтчета.Видимость = ПоказыватьКомандыВыбораВариантов; Элементы.ГруппаСохранениеВыборВариантаОтчета.Видимость = Не ОбщегоНазначения.РазделениеВключено() Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(); - - Элементы.ИзменитьСоставБыстрыхНастроек.Видимость = ПоказыватьКомандыИзмененияВарианта - И Не ОбщегоНазначения.ЭтоМобильныйКлиент(); - - Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + + Элементы.ИзменитьСоставБыстрыхНастроек.Видимость = ПоказыватьКомандыИзмененияВарианта И Не ЭтоМобильныйКлиент; + + Если ЭтоМобильныйКлиент Тогда Элементы.Переместить(Элементы.ГруппаПоказатель, Элементы.ГруппаДляПоказателей); КонецЕсли; - - ЭтоПредопределенныйВариант = Не НастройкиОтчета.Пользовательский - И ЗначениеЗаполнено(НастройкиОтчета.ПредопределенныйСсылка); - + + ЭтоПредопределенныйВариант = Не НастройкиОтчета.Пользовательский И ЗначениеЗаполнено( + НастройкиОтчета.ПредопределенныйСсылка); + РазрешеноСохранятьВариант = ПоказыватьКомандыИзмененияВарианта И Не НастройкиОтчета.РазрешеноВыбиратьИНастраиватьВариантыБезСохранения; - + ДоступноСохранятьТекущийВариант = ЗначениеЗаполнено(НастройкиОтчета.ВариантСсылка) И Не ЭтоПредопределенныйВариант; - Если ДоступноСохранятьТекущийВариант - И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + Если ДоступноСохранятьТекущийВариант И ОбщегоНазначения.ПодсистемаСуществует( + "СтандартныеПодсистемы.УправлениеДоступом") Тогда МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); Если Не МодульУправлениеДоступом.ИзменениеРазрешено(НастройкиОтчета.ВариантСсылка) Тогда ДоступноСохранятьТекущийВариант = Ложь; КонецЕсли; КонецЕсли; - + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "СохранитьВариант", "Видимость", РазрешеноСохранятьВариант И ДоступноСохранятьТекущийВариант); ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( @@ -3731,71 +3897,63 @@ Элементы, "СохранитьВариантКак", "Видимость", РазрешеноСохранятьВариант); ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "СохранитьВариантКакЕще", "Видимость", РазрешеноСохранятьВариант); - - Элементы.ДругиеОтчеты.Видимость = НастройкиОтчета.РазрешеноВыбиратьВарианты - И Не ЗначениеЗаполнено(КонтекстВарианта); + + Элементы.ДругиеОтчеты.Видимость = НастройкиОтчета.РазрешеноВыбиратьВарианты И Не ЗначениеЗаполнено(КонтекстВарианта); Элементы.ДругиеОтчетыЕще.Видимость = Элементы.ДругиеОтчеты.Видимость; - + Элементы.ВыбратьВариант.Видимость = ПоказыватьКомандыВыбораВариантов; - - РазрешеноИспользоватьНастройки = - ПоказыватьКомандыВыбораВариантов - И КоличествоДоступныхНастроек.Итог > 0 + + Элементы.ГруппаСнимкиОтчетов.Видимость = НастройкиОтчета.ИспользоватьСнимкиОтчетов; + + РазрешеноИспользоватьНастройки = ПоказыватьКомандыВыбораВариантов И КоличествоДоступныхНастроек.Итог > 0 И ОбщегоНазначенияКлиентСервер.ЗначениеСвойстваЭлементаФормы(Элементы, "ВыбратьНастройки", "Видимость") = Истина; - + ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "ВыбратьНастройки", "Видимость", РазрешеноИспользоватьНастройки); ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "СохранитьНастройки", "Видимость", РазрешеноИспользоватьНастройки); ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( - Элементы, "ПоделитьсяНастройками", "Видимость", РазрешеноИспользоватьНастройки - И (ЭтоПредопределенныйВариант - Или ВариантыОтчетов.ПолныеПраваНаВарианты() - Или ЗначениеЗаполнено(НастройкиОтчета.ВариантСсылка) - И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НастройкиОтчета.ВариантСсылка, - "ТолькоДляАвтора") <> Истина)); - + Элементы, "ПоделитьсяНастройками", "Видимость", РазрешеноИспользоватьНастройки И (ЭтоПредопределенныйВариант + Или ВариантыОтчетов.ПолныеПраваНаВарианты() Или ЗначениеЗаполнено(НастройкиОтчета.ВариантСсылка) + И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НастройкиОтчета.ВариантСсылка, "ТолькоДляАвтора") <> Истина)); + Если НастройкиОтчета.РазрешеноВыбиратьИНастраиватьВариантыБезСохранения Тогда ВариантМодифицирован = Ложь; КонецЕсли; - + Элементы.КомандыПанелиБыстрыхНастроек.Видимость = (КоличествоДоступныхНастроек.БыстрогоДоступа > 0); Элементы.ИзменитьСоставБыстрыхНастроекЕще.Видимость = Элементы.КомандыПанелиБыстрыхНастроек.Видимость; // Команды выбора вариантов. Если ВариантыПанелиКлючТекущегоВарианта <> КлючТекущегоВарианта Тогда ВариантыПанелиКлючТекущегоВарианта = КлючТекущегоВарианта; - + Если ПоказыватьКомандыВыбораВариантов Тогда ОбновитьКомандыВыбораВариантов(); КонецЕсли; - + Если ПравоВывода Тогда - КлючСохраненияПоложенияОкна = ОтчетыКлиентСервер.КлючУникальности(НастройкиОтчета.ПолноеИмя, КлючТекущегоВарианта); + КлючСохраненияПоложенияОкна = ОтчетыКлиентСервер.КлючУникальности(НастройкиОтчета.ПолноеИмя, + КлючТекущегоВарианта); НастройкиОтчета.Печать.Вставить("КлючПараметровПечати", КлючСохраненияПоложенияОкна); ЗаполнитьЗначенияСвойств(ОтчетТабличныйДокумент, НастройкиОтчета.Печать); КонецЕсли; - + НавигационнаяСсылка = ""; - Если ЗначениеЗаполнено(НастройкиОтчета.ВариантСсылка) - И Не НастройкиОтчета.Внешний + Если ЗначениеЗаполнено(НастройкиОтчета.ВариантСсылка) И Не НастройкиОтчета.Внешний И Не НастройкиОтчета.Контекстный Тогда НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(НастройкиОтчета.ВариантСсылка); КонецЕсли; КонецЕсли; - // Команды модификации Схемы. Элементы.ВосстановитьСтандартнуюСхему.Видимость = НастройкиОтчета.РазрешеноВосстанавливатьСтандартнуюСхему; - // В модели сервиса редактирование СКД недоступна с точки зрения безопасности. Элементы.РедактироватьСхему.Видимость = НастройкиОтчета.РазрешеноРедактироватьСхему И Не ОбщегоНазначения.РазделениеВключено(); - // В модели сервиса загрузка произвольной СКД недоступна с точки зрения безопасности. Элементы.ЗагрузитьСхему.Видимость = НастройкиОтчета.РазрешеноЗагружатьСхему - И Не ОбщегоНазначения.РазделениеВключено(); - + И Не ОбщегоНазначения.РазделениеВключено(); + УстановитьДоступностьМенюУровнейГруппировок(); - // Заголовок. ОтчетНаименованиеТекущегоВарианта = СокрЛП(ОтчетНаименованиеТекущегоВарианта); Если ЗначениеЗаполнено(ОтчетНаименованиеТекущегоВарианта) Тогда Заголовок = ОтчетНаименованиеТекущегоВарианта; @@ -3803,7 +3961,7 @@ ОписаниеНастроекОтчета = ОписаниеНастроекОтчета(НастройкиОтчета); Заголовок = ОписаниеНастроекОтчета.Наименование; КонецЕсли; - + Если РежимРасшифровки Тогда Заголовок = Заголовок + " (" + НСтр("ru = 'Расшифровка'") + ")"; КонецЕсли; @@ -3811,45 +3969,40 @@ &НаСервере Процедура ПроверитьДоступностьОбменаНастройкамиВарианта(МетаданныеОтчета) - + ОбменНастройкамиВариантаДоступен = ВариантыОтчетовСлужебныйКлиентСервер.РежимВариантаОтчета(КлючТекущегоВарианта) И ВариантыОтчетов.ОтчетПодключенКХранилищу(МетаданныеОтчета); - + Элементы.ГруппаОбменНастройкамиЕще.Видимость = ОбменНастройкамиВариантаДоступен; Элементы.ОбновитьВариантОтчетаИзФайла.Видимость = ОбменНастройкамиВариантаДоступен; Элементы.СохранитьВариантОтчетаВФайл.Видимость = ОбменНастройкамиВариантаДоступен; - + КонецПроцедуры &НаСервере Процедура ЗагрузитьВариант(КлючВарианта, ОчиститьСтекНастроек = Истина) Если Не РежимРасшифровки И Не ВариантМодифицирован Тогда - КлючОбъекта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1/%2/%3'"), - НастройкиОтчета.ПолноеИмя, - КлючТекущегоВарианта, - "ТекущиеПользовательскиеНастройки"); - - ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить( - КлючОбъекта, "", Отчет.КомпоновщикНастроек.ПользовательскиеНастройки); + КлючОбъекта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1/%2/ТекущиеПользовательскиеНастройки", + НастройкиОтчета.ПолноеИмя, КлючТекущегоВарианта); + ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить( КлючОбъекта, "", + Отчет.КомпоновщикНастроек.ПользовательскиеНастройки); КонецЕсли; - + СохранитьДанныеВНастройкахНаСервере(); - + РежимРасшифровки = Ложь; ВариантМодифицирован = Ложь; ПользовательскиеНастройкиМодифицированы = Ложь; НастройкиОтчета.ПрочитатьФлажокФормироватьСразуИзПользовательскихНастроек = Истина; - + ПоместитьВоВременноеХранилище(Неопределено, НастройкиОтчета.СвойстваРезультата.АдресИндексаСтруктурыОтчета); - - Если ОчиститьСтекНастроек Тогда + + Если ОчиститьСтекНастроек Тогда СтекНастроек.Очистить(); КонецЕсли; - + УстановитьТекущийВариант(КлючВарианта); - ОтчетыКлиентСервер.ОтобразитьСостояниеОтчета( - ЭтотОбъект, + ОтчетыКлиентСервер.ОтобразитьСостояниеОтчета( ЭтотОбъект, НСтр("ru = 'Выбран другой вариант отчета. Нажмите ""Сформировать"" для получения отчета.'"), БиблиотекаКартинок.Информация32); КонецПроцедуры @@ -3859,164 +4012,159 @@ &НаСервере Процедура ОпределитьПоведениеВМобильномКлиенте() - Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + ЭтоМобильныйКлиент = ОбщегоНазначения.ЭтоМобильныйКлиент(); + Если Не ЭтоМобильныйКлиент Тогда Возврат; КонецЕсли; - + Элементы.КомандыИПоказатели.Заголовок = НСтр("ru = 'показатели'"); + Элементы.Переместить(Элементы.КомандыИПоказатели, ЭтотОбъект, Элементы.ПредопределенныеЭлементыНастроек); + Элементы.ГруппаГлавное.Видимость = Ложь; Элементы.ГруппаНастройкиОтчета.Видимость = Ложь; Элементы.ГруппаРаботаВТаблице.Видимость = Ложь; Элементы.ГруппаВывод.Видимость = Ложь; Элементы.Редактирование.Видимость = Ложь; - + Элементы.ГруппаПоказатель.РастягиватьПоГоризонтали = Неопределено; Элементы.Показатель.Ширина = 0; + + Элементы.ПанельБыстрыхНастроек.Видимость = Ложь; + Элементы.ГруппаКнопокМобильныйКлиент.Видимость = Истина; + + Элементы.КомандыИПоказатели.Видимость = Ложь; + Элементы.СформироватьОтчет.КнопкаПоУмолчанию = Ложь; + КонецПроцедуры &НаСервере Функция КонтекстВариантаОтчета() - Если РежимРасшифровки Тогда + Если РежимРасшифровки Тогда Возврат ""; КонецЕсли; - - Если Параметры.Свойство("КонтекстВарианта") - И Параметры.КонтекстВарианта <> Неопределено Тогда - + + Если Не ПустаяСтрока(Параметры.КонтекстВарианта) Тогда Возврат Параметры.КонтекстВарианта; КонецЕсли; - + СвойстваИнтерфейса = СтрРазделить("ПараметрКоманды, Отбор", ", ", Ложь); - - Для Каждого СвойствоИнтерфейса Из СвойстваИнтерфейса Цикл - + Для Каждого СвойствоИнтерфейса Из СвойстваИнтерфейса Цикл + ЗначениеСвойства = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, СвойствоИнтерфейса); - Если ЗначениеСвойства = Неопределено Тогда + Если ЗначениеСвойства = Неопределено Тогда Продолжить; КонецЕсли; - - Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ЗначениеСвойства) Тогда - + + Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ЗначениеСвойства) Тогда Возврат ЗначениеСвойства.Метаданные().ПолноеИмя(); - - ИначеЕсли ТипЗнч(ЗначениеСвойства) = Тип("Массив") - И ЗначениеСвойства.Количество() > 0 - И ОбщегоНазначения.ЗначениеСсылочногоТипа(ЗначениеСвойства[0]) Тогда - + + ИначеЕсли ТипЗнч(ЗначениеСвойства) = Тип("Массив") И ЗначениеСвойства.Количество() > 0 + И ОбщегоНазначения.ЗначениеСсылочногоТипа(ЗначениеСвойства[0]) Тогда + Возврат ЗначениеСвойства[0].Метаданные().ПолноеИмя(); - - ИначеЕсли ТипЗнч(ЗначениеСвойства) = Тип("Структура") Тогда - - Для Каждого ЭлементСтруктуры Из ЗначениеСвойства Цикл - + + ИначеЕсли ТипЗнч(ЗначениеСвойства) = Тип("Структура") Тогда + + Для Каждого ЭлементСтруктуры Из ЗначениеСвойства Цикл ЗначениеЭлемента = ЭлементСтруктуры.Значение; - - Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ЗначениеЭлемента) Тогда - + Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ЗначениеЭлемента) Тогда Возврат ЗначениеЭлемента.Метаданные().ПолноеИмя(); - - ИначеЕсли ТипЗнч(ЗначениеЭлемента) = Тип("Массив") - И ЗначениеЭлемента.Количество() > 0 - И ОбщегоНазначения.ЗначениеСсылочногоТипа(ЗначениеЭлемента[0]) Тогда - + ИначеЕсли ТипЗнч(ЗначениеЭлемента) = Тип("Массив") И ЗначениеЭлемента.Количество() > 0 + И ОбщегоНазначения.ЗначениеСсылочногоТипа(ЗначениеЭлемента[0]) Тогда Возврат ЗначениеЭлемента[0].Метаданные().ПолноеИмя(); КонецЕсли; КонецЦикла; + КонецЕсли; КонецЦикла; - + ОписаниеКоманды = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ОписаниеКоманды"); - - Если ТипЗнч(ОписаниеКоманды) = Тип("Структура") Тогда - + Если ТипЗнч(ОписаниеКоманды) = Тип("Структура") Тогда + ОписаниеТипаКонтекста = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ОписаниеКоманды, "ТипПараметра"); - ТипыКонтекста = ?(ТипЗнч(ОписаниеТипаКонтекста) = Тип("ОписаниеТипов"), ОписаниеТипаКонтекста.Типы(), Новый Массив); - - Если ТипыКонтекста.Количество() > 0 Тогда + ТипыКонтекста = ?(ТипЗнч(ОписаниеТипаКонтекста) = Тип("ОписаниеТипов"), ОписаниеТипаКонтекста.Типы(), + Новый Массив); + + Если ТипыКонтекста.Количество() > 0 Тогда Возврат Метаданные.НайтиПоТипу(ТипыКонтекста[0]).ПолноеИмя(); КонецЕсли; КонецЕсли; - + Возврат Неопределено; КонецФункции &НаСервере Процедура УстановитьКлючНазначенияИспользования() - Если ЗначениеЗаполнено(КлючНазначенияИспользования) Тогда + Если ЗначениеЗаполнено(КлючНазначенияИспользования) Тогда Возврат; КонецЕсли; - - Если ЗначениеЗаполнено(Параметры.КлючНазначенияИспользования) Тогда + + Если ЗначениеЗаполнено(Параметры.КлючНазначенияИспользования) Тогда КлючНазначенияИспользования = Параметры.КлючНазначенияИспользования; - ИначеЕсли ЗначениеЗаполнено(КонтекстВарианта) Тогда - КлючНазначенияИспользования = КонтекстВарианта - + ?(ЗначениеЗаполнено(Параметры.КлючВарианта), ".", "") + ИначеЕсли ЗначениеЗаполнено(КонтекстВарианта) Тогда + КлючНазначенияИспользования = КонтекстВарианта + ?(ЗначениеЗаполнено(Параметры.КлючВарианта), ".", "") + Параметры.КлючВарианта; КонецЕсли; КонецПроцедуры &НаСервере Процедура СохранитьПараметрыФормы() - + ФормаПараметры = ВариантыОтчетов.СохраняемыеПараметрыФормыОтчета(Параметры); ФормаПараметры.КлючНазначенияИспользования = КлючНазначенияИспользования; - + КонецПроцедуры &НаСервере Процедура УстановитьКлючТекущегоВарианта(ОтчетПолноеИмя, ОтчетОбъект) ВариантыПанелиКлючТекущегоВарианта = ПустойКлючВарианта(); - + Расшифровка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Расшифровка"); КлючТекущегоВариантаРасшифровки = ""; Если ТипЗнч(Расшифровка) = Тип("ОписаниеОбработкиРасшифровкиКомпоновкиДанных") Тогда Настройки = ПолучитьИзВременногоХранилища(Расшифровка.Данные).Настройки; - КлючТекущегоВариантаРасшифровки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Настройки.ДополнительныеСвойства, "КлючВарианта", ""); + КлючТекущегоВариантаРасшифровки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( + Настройки.ДополнительныеСвойства, "КлючВарианта", ""); КонецЕсли; - + Если ЗначениеЗаполнено(КлючТекущегоВариантаРасшифровки) Тогда КлючТекущегоВарианта = КлючТекущегоВариантаРасшифровки; Если Не ЗначениеЗаполнено(КлючНазначенияИспользования) Тогда КлючНазначенияИспользования = "Расшифровка"; КонецЕсли; Иначе - Если ЗначениеЗаполнено(КлючНазначенияИспользования) Тогда + Если ЗначениеЗаполнено(КлючНазначенияИспользования) Тогда КлючОбъекта = ОтчетПолноеИмя + "/" + КлючНазначенияИспользования + "/КлючТекущегоВарианта"; Иначе КлючОбъекта = ОтчетПолноеИмя + "/КлючТекущегоВарианта"; КонецЕсли; - + КлючТекущегоВарианта = ОбщегоНазначения.ХранилищеСистемныхНастроекЗагрузить(КлючОбъекта, ""); КонецЕсли; - - Если Не ЗначениеЗаполнено(КлючТекущегоВарианта) - Или (ЗначениеЗаполнено(Параметры.КлючВарианта) И КлючТекущегоВарианта <> Параметры.КлючВарианта) Тогда - - Если ЗначениеЗаполнено(Параметры.КлючВарианта) Тогда + + Если Не ЗначениеЗаполнено(КлючТекущегоВарианта) Или (ЗначениеЗаполнено(Параметры.КлючВарианта) + И КлючТекущегоВарианта <> Параметры.КлючВарианта) Тогда + + Если ЗначениеЗаполнено(Параметры.КлючВарианта) Тогда КлючТекущегоВарианта = Параметры.КлючВарианта; - + ИначеЕсли ОтчетОбъект.СхемаКомпоновкиДанных <> Неопределено Тогда Для Каждого Вариант Из ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек Цикл КлючТекущегоВарианта = Вариант.Имя; Прервать; КонецЦикла; КонецЕсли; - + КонецЕсли; // Сохраняется ключ контекстного варианты, который обычно исключен из интерфейса, // т.е. Включен равен Ложь (см. Справочник.ПредопределенныеВариантыОтчетов.Включен = Ложь). - // - Если ЗначениеЗаполнено(КонтекстВарианта) Тогда + Если ЗначениеЗаполнено(КонтекстВарианта) Тогда ВариантКонтекста = ?(ЗначениеЗаполнено(Параметры.КлючВарианта), Параметры.КлючВарианта, КлючТекущегоВарианта); ВариантыКонтекста.Добавить(ВариантКонтекста); КонецЕсли; - - Если ЗначениеЗаполнено(КонтекстВарианта) - И ЗначениеЗаполнено(Параметры.КлючВарианта) + + Если ЗначениеЗаполнено(КонтекстВарианта) И ЗначениеЗаполнено(Параметры.КлючВарианта) И Параметры.КлючВарианта <> КлючТекущегоВарианта Тогда - - // Управление передается платформе - - // ключ варианта восстановится из стандартного хранилища. Параметры.КлючВарианта = Неопределено; КонецЕсли; КонецПроцедуры @@ -4029,14 +4177,15 @@ // &НаСервере Функция НастройкиОтчета(ОтчетОбъект) - + Настройки = ВариантыОтчетов.НастройкиФормыОтчета(Параметры.Отчет, КлючТекущегоВарианта, ОтчетОбъект); Настройки.АдресСхемы = АдресСхемыОтчета(ОтчетОбъект); Настройки.Контекстный = ЗначениеЗаполнено(КонтекстВарианта); Настройки.Подсистема = ФормаПараметры.Подсистема; Настройки.ИспользуемыеТаблицы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ИспользуемыеТаблицы"); Настройки.СобытияНастроек = СобытияНастроек(); - + Настройки.ИспользоватьСнимкиОтчетов = ПравоДоступа("МобильныйКлиент", Метаданные); + Возврат Настройки; КонецФункции @@ -4048,37 +4197,37 @@ // &НаКлиентеНаСервереБезКонтекста Функция ОписаниеНастроекОтчета(Описание) - + Возврат Описание; - + КонецФункции &НаСервере Функция АдресСхемыОтчета(ОтчетОбъект) АдресСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "АдресСхемы", ""); - + Расшифровка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Расшифровка"); - + Если ТипЗнч(Расшифровка) = Тип("ОписаниеОбработкиРасшифровкиКомпоновкиДанных") Тогда Настройки = ПолучитьИзВременногоХранилища(Расшифровка.Данные).Настройки; АдресСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Настройки.ДополнительныеСвойства, "АдресСхемы", ""); КонецЕсли; - + ЭтоСхема = Ложь; Если ЭтоАдресВременногоХранилища(АдресСхемы) Тогда Схема = ПолучитьИзВременногоХранилища(АдресСхемы); ЭтоСхема = (ТипЗнч(Схема) = Тип("СхемаКомпоновкиДанных")); - + Если ЭтоСхема Тогда АдресСхемы = ПоместитьВоВременноеХранилище(Схема, УникальныйИдентификатор); Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы)); КонецЕсли; КонецЕсли; - + Если Не ЭтоСхема Тогда АдресСхемы = ПоместитьВоВременноеХранилище(ОтчетОбъект.СхемаКомпоновкиДанных, УникальныйИдентификатор); КонецЕсли; - + Возврат АдресСхемы; КонецФункции @@ -4086,147 +4235,137 @@ &НаСервере Функция СобытияНастроек() - + СобытияНастроек = Новый Соответствие; - - НайтиСобытияНастроек( - Элементы.ОтчетТабличныйДокумент.КонтекстноеМеню, - УточненияСобытийНастроек(), - СобытияНастроекИсключения(), - СобытияНастроек); - + + НайтиСобытияНастроек(Элементы.ОтчетТабличныйДокумент.КонтекстноеМеню, УточненияСобытийНастроек(), + СобытияНастроекИсключения(), СобытияНастроек); + СобытияНастроек.Вставить("ФильтроватьИСформировать", НСтр("ru = 'Фильтровать...'")); - - СобытияНастроек.Вставить( - ВариантыОтчетовСлужебныйКлиентСервер.ИмяСобытияФормыНастроек(), + СобытияНастроек.Вставить(ВариантыОтчетовСлужебныйКлиентСервер.ИмяСобытияФормыНастроек(), НСтр("ru = 'Расширенная настройка'")); - - СобытияНастроек.Вставить( - ВариантыОтчетовСлужебныйКлиентСервер.ИмяСобытияИзмененияСоставаБыстрыхНастроек(), + СобытияНастроек.Вставить(ВариантыОтчетовСлужебныйКлиентСервер.ИмяСобытияИзмененияСоставаБыстрыхНастроек(), НСтр("ru = 'Изменение состава быстрых настроек'")); - + Возврат СобытияНастроек; - + КонецФункции &НаСервере Функция УточненияСобытийНастроек() - + Префиксы = Новый Соответствие; Префиксы.Вставить("ОформитьЖелтым", НСтр("ru = 'Оформить желтым'")); Префиксы.Вставить("ОформитьКрасным", НСтр("ru = 'Оформить красным'")); Префиксы.Вставить("ОформитьЗеленым", НСтр("ru = 'Оформить зеленым'")); Префиксы.Вставить("ОформитьЕще", НСтр("ru = 'Оформить (еще)'")); - + Возврат Префиксы; - + КонецФункции &НаСервере Функция СобытияНастроекИсключения() - + Исключения = Новый Массив; Исключения.Добавить("Открыть"); Исключения.Добавить("РасшифроватьПоДетальнымЗаписям"); Исключения.Добавить("Расшифровать"); Исключения.Добавить("Подключаемый_ПоказатьУровеньГруппировок"); Исключения.Добавить("ОтчетСкомпоноватьРезультат"); - + Возврат Исключения; - + КонецФункции &НаСервере Процедура НайтиСобытияНастроек(Меню, Уточнения, Исключения, СобытияНастроек) - - Для Каждого Элемент Из Меню.ПодчиненныеЭлементы Цикл - - Если ТипЗнч(Элемент) = Тип("ГруппаФормы") Тогда - + + Для Каждого Элемент Из Меню.ПодчиненныеЭлементы Цикл + + Если ТипЗнч(Элемент) = Тип("ГруппаФормы") Тогда + НайтиСобытияНастроек(Элемент, Уточнения, Исключения, СобытияНастроек); - - ИначеЕсли СобытияНастроек[Элемент.ИмяКоманды] = Неопределено - И Исключения.Найти(Элемент.ИмяКоманды) = Неопределено Тогда - + + ИначеЕсли СобытияНастроек[Элемент.ИмяКоманды] = Неопределено + И Исключения.Найти(Элемент.ИмяКоманды) = Неопределено Тогда + НайденнаяКоманда = Команды.Найти(Элемент.ИмяКоманды); - - Если НайденнаяКоманда = Неопределено Тогда + Если НайденнаяКоманда = Неопределено Тогда Продолжить; КонецЕсли; - - ДействиеКоманды = ?(ЗначениеЗаполнено(НайденнаяКоманда.Действие), НайденнаяКоманда.Действие, НайденнаяКоманда.Имя); + + ДействиеКоманды = ?(ЗначениеЗаполнено(НайденнаяКоманда.Действие), НайденнаяКоманда.Действие, + НайденнаяКоманда.Имя); ПредставлениеДействия = Уточнения[ДействиеКоманды]; - - Если ПредставлениеДействия = Неопределено Тогда + + Если ПредставлениеДействия = Неопределено Тогда ПредставлениеДействия = НайденнаяКоманда.Заголовок; КонецЕсли; - + СобытияНастроек.Вставить(ДействиеКоманды, ПредставлениеДействия); - + КонецЕсли; - + КонецЦикла; - + КонецПроцедуры #КонецОбласти &НаСервере Процедура УстановитьРазрешенияПользователя() - + ВидимостьКомандВариантовОтчетов = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( Параметры, "ВидимостьКомандВариантовОтчетов", Истина); - + Если НастройкиОтчета.РазрешеноВыбиратьИНастраиватьВариантыБезСохранения Тогда - + НастройкиОтчета.РазрешеноИзменятьВарианты = Истина; НастройкиОтчета.РазрешеноВыбиратьВарианты = Истина; - + ИначеЕсли Не ВидимостьКомандВариантовОтчетов Тогда - + НастройкиОтчета.РазрешеноИзменятьВарианты = Ложь; НастройкиОтчета.РазрешеноВыбиратьВарианты = Ложь; - + КонецЕсли; - - Если НастройкиОтчета.РазрешеноИзменятьВарианты - И Не ВариантыОтчетовПовтИсп.ПравоДобавления() Тогда - + + Если НастройкиОтчета.РазрешеноИзменятьВарианты И Не ВариантыОтчетовПовтИсп.ПравоДобавления() Тогда НастройкиОтчета.РазрешеноИзменятьВарианты = Ложь; КонецЕсли; + КонецПроцедуры &НаСервере Функция ДанныеЭлементаРасшифровки(Расшифровка) - + Возврат ВариантыОтчетовСлужебный.ДанныеЭлементаРасшифровки(ЭтотОбъект, Расшифровка); - + КонецФункции &НаСервере Процедура ОбновитьЭлементыФормыНастроекНаСервере(ПараметрыОбновления = Неопределено) ЗагрузитьНастройкиВКомпоновщик(ПараметрыОбновления); - + ОтчетыСервер.ОбновитьЭлементыФормыНастроек( ЭтотОбъект, Элементы.КомпоновщикНастроекПользовательскиеНастройки, ПараметрыОбновления); - + Если ПараметрыОбновления.ИмяСобытия <> "ПослеФормирования" Тогда Переформировать = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыОбновления, "Переформировать", Ложь); - - Если Переформировать - И Не ПроверитьЗаполнение() Тогда - + + Если Переформировать И Не ПроверитьЗаполнение() Тогда + ПараметрыОбновления.Переформировать = Ложь; - + ИначеЕсли Переформировать Тогда - + ОтчетыКлиентСервер.ОтобразитьСостояниеОтчета( ЭтотОбъект, НСтр("ru = 'Отчет формируется...'"), БиблиотекаКартинок.ДлительнаяОперация48); - - ИначеЕсли Не ОтчетСформирован - И (ПараметрыОбновления.ВариантМодифицирован + + ИначеЕсли Не ОтчетСформирован И (ПараметрыОбновления.ВариантМодифицирован Или ПараметрыОбновления.ПользовательскиеНастройкиМодифицированы) Тогда - + ОтчетыКлиентСервер.ОповеститьОИзмененииНастроек(ЭтотОбъект); КонецЕсли; КонецЕсли; @@ -4235,7 +4374,7 @@ Если Не НастройкиОтчета.РазрешеноИзменятьВарианты Тогда ВариантМодифицирован = Ложь; КонецЕсли; - + ОтчетыСервер.ВосстановитьЗначенияОтборов(ЭтотОбъект); ОбновитьМенюПереходаМеждуИзменениямиНастроек(); УстановитьВидимостьДоступность(); @@ -4244,88 +4383,77 @@ &НаСервере Процедура ЗагрузитьНастройкиВКомпоновщик(ПараметрыЗагрузки) ПроверитьПараметрыЗагрузки(ПараметрыЗагрузки); - + ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); Если НастройкиОтчета.События.ПередЗаполнениемПанелиБыстрыхНастроек Тогда ОтчетОбъект.ПередЗаполнениемПанелиБыстрыхНастроек(ЭтотОбъект, ПараметрыЗагрузки); КонецЕсли; - + ДоступныеНастройки = ОтчетыСервер.ДоступныеНастройки(ПараметрыЗагрузки, НастройкиОтчета); - + СброситьНастройкиВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( ПараметрыЗагрузки, "СброситьНастройкиВарианта", Ложь); Если СброситьНастройкиВарианта Тогда ЗагрузитьВариант(КлючТекущегоВарианта, Ложь); КонецЕсли; - - ОтчетыСервер.СброситьПользовательскиеНастройки(ДоступныеНастройки, ПараметрыЗагрузки); - - ОтчетыСервер.ЗаполнитьДополнительныеСвойства(ОтчетОбъект, - ДоступныеНастройки.Настройки, - КлючТекущегоВарианта, - НастройкиОтчета.КлючПредопределенногоВарианта, - ?(ВариантыОтчетов.ДопустимоУстановитьКонтекст(ЭтотОбъект), КонтекстВарианта, ""), + + ОтчетыСервер.СброситьПользовательскиеНастройки(ДоступныеНастройки, ПараметрыЗагрузки); + + ОтчетыСервер.ЗаполнитьДополнительныеСвойства(ОтчетОбъект, ДоступныеНастройки.Настройки, КлючТекущегоВарианта, + НастройкиОтчета.КлючПредопределенногоВарианта, + ?(ВариантыОтчетов.ДопустимоУстановитьКонтекст(ЭтотОбъект), КонтекстВарианта, ""), ?(ВариантыОтчетов.ДопустимоУстановитьКонтекст(ЭтотОбъект), ФормаПараметры.Отбор, Неопределено)); - - Если ДоступныеНастройки.Настройки <> Неопределено И НастройкиОтчета.События.ПередЗагрузкойНастроекВКомпоновщик Тогда + + Если ДоступныеНастройки.Настройки <> Неопределено И НастройкиОтчета.События.ПередЗагрузкойНастроекВКомпоновщик Тогда Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ФормаПараметры, "СброситьНастройки", Ложь) Тогда - ДоступныеНастройки.Настройки.ДополнительныеСвойства.Вставить("СброситьНастройки", Истина); + ДоступныеНастройки.Настройки.ДополнительныеСвойства.Вставить("СброситьНастройки", Истина); КонецЕсли; - - ОтчетОбъект.ПередЗагрузкойНастроекВКомпоновщик( - ЭтотОбъект, - НастройкиОтчета.КлючСхемы, - КлючТекущегоВарианта, - ДоступныеНастройки.Настройки, - ДоступныеНастройки.ПользовательскиеНастройки); - - ФормаПараметры.Вставить("СброситьНастройки", Ложь); + + ОтчетОбъект.ПередЗагрузкойНастроекВКомпоновщик(ЭтотОбъект, НастройкиОтчета.КлючСхемы, КлючТекущегоВарианта, + ДоступныеНастройки.Настройки, ДоступныеНастройки.ПользовательскиеНастройки); + + ФормаПараметры.Вставить("СброситьНастройки", Ложь); ДоступныеНастройки.Настройки.ДополнительныеСвойства.Вставить("СброситьНастройки", Ложь); КонецЕсли; - - НастройкиЗагружены = ОтчетыКлиентСервер.ЗагрузитьНастройки( - Отчет.КомпоновщикНастроек, - ДоступныеНастройки.Настройки, - ДоступныеНастройки.ПользовательскиеНастройки, - ДоступныеНастройки.ФиксированныеНастройки); + + НастройкиЗагружены = ОтчетыКлиентСервер.ЗагрузитьНастройки(Отчет.КомпоновщикНастроек, ДоступныеНастройки.Настройки, + ДоступныеНастройки.ПользовательскиеНастройки, ДоступныеНастройки.ФиксированныеНастройки); // Установка фиксированных отборов выполняется через компоновщик, т.к. в нем наиболее полная коллекция настроек. // В ПередЗагрузкой в параметрах могут отсутствовать те параметры, настройки которые не переопределялись. - Если НастройкиЗагружены - И ВариантыОтчетов.ДопустимоУстановитьКонтекст(ЭтотОбъект) - И ТипЗнч(ФормаПараметры.Отбор) = Тип("Структура") Тогда - - ОтчетыСервер.УстановитьФиксированныеОтборы(ФормаПараметры.Отбор, Отчет.КомпоновщикНастроек.Настройки, НастройкиОтчета); + Если НастройкиЗагружены И ВариантыОтчетов.ДопустимоУстановитьКонтекст(ЭтотОбъект) + И ТипЗнч(ФормаПараметры.Отбор) = Тип("Структура") Тогда + + ОтчетыСервер.УстановитьФиксированныеОтборы(ФормаПараметры.Отбор, Отчет.КомпоновщикНастроек.Настройки, + НастройкиОтчета); КонецЕсли; - + ФормаПараметры.ФиксированныеНастройки = Отчет.КомпоновщикНастроек.ФиксированныеНастройки; - + ДополнительныеСвойства = Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства; ДополнительныеСвойства.Вставить("ВариантНаименование", ОтчетНаименованиеТекущегоВарианта); - + ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); Если НастройкиОтчета.События.ПослеЗагрузкиНастроекВКомпоновщик Тогда ОтчетОбъект.ПослеЗагрузкиНастроекВКомпоновщик(Новый Структура); КонецЕсли; Если Не НастройкиОтчета.Пользовательский Тогда - ОтчетОбъект.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Свойство( - "ВариантНаименование", ОтчетНаименованиеТекущегоВарианта); + ОтчетОбъект.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Свойство("ВариантНаименование", + ОтчетНаименованиеТекущегоВарианта); КонецЕсли; - + ОтчетыСервер.УстановитьДоступныеЗначения(ОтчетОбъект, ЭтотОбъект); - ОтчетыСервер.ИнициализироватьПредопределенныеПараметрыВывода( - НастройкиОтчета, - Отчет.КомпоновщикНастроек.Настройки, + ОтчетыСервер.ИнициализироватьПредопределенныеПараметрыВывода(НастройкиОтчета, Отчет.КомпоновщикНастроек.Настройки, ОтчетыСервер.ТребуетсяСброситьПредопределенныеПараметрыВывода(ПараметрыЗагрузки)); - + Если ПараметрыЗагрузки.ВариантМодифицирован Тогда ВариантМодифицирован = Истина; КонецЕсли; - + Если ПараметрыЗагрузки.ПользовательскиеНастройкиМодифицированы Тогда ПользовательскиеНастройкиМодифицированы = Истина; КонецЕсли; - + ДополнительныеСвойства = Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства; ДополнительныеСвойства.Вставить("КлючВарианта", КлючТекущегоВарианта); ДополнительныеСвойства.Вставить("ВариантНаименование", ОтчетНаименованиеТекущегоВарианта); @@ -4335,49 +4463,48 @@ Если НастройкиОтчета.СхемаМодифицирована Тогда ДополнительныеСвойства.Вставить("АдресСхемы", НастройкиОтчета.АдресСхемы); КонецЕсли; - + Если ПараметрыЗагрузки.Свойство("ФормаНастроекРасширенныйРежим") Тогда НастройкиОтчета.ФормаНастроекРасширенныйРежим = ПараметрыЗагрузки.ФормаНастроекРасширенныйРежим; КонецЕсли; - + Если ПараметрыЗагрузки.Свойство("ФормаНастроекИмяСтраницы") Тогда НастройкиОтчета.ФормаНастроекИмяСтраницы = ПараметрыЗагрузки.ФормаНастроекИмяСтраницы; КонецЕсли; - + ОтчетыСервер.УстановитьУсловияОтборов(ПараметрыЗагрузки, Отчет.КомпоновщикНастроек); - + Если НастройкиОтчета.ПрочитатьФлажокФормироватьСразуИзПользовательскихНастроек Тогда НастройкиОтчета.ПрочитатьФлажокФормироватьСразуИзПользовательскихНастроек = Ложь; Элементы.ФормироватьСразу.Пометка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( - Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства, - "ФормироватьСразу", + Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства, "ФормироватьСразу", НастройкиОтчета.ФормироватьСразу); КонецЕсли; - + КонецПроцедуры &НаСервере Процедура ПроверитьПараметрыЗагрузки(ПараметрыЗагрузки) - Если ТипЗнч(ПараметрыЗагрузки) <> Тип("Структура") Тогда + Если ТипЗнч(ПараметрыЗагрузки) <> Тип("Структура") Тогда ПараметрыЗагрузки = Новый Структура; КонецЕсли; - + Если Не ПараметрыЗагрузки.Свойство("ИмяСобытия") Тогда ПараметрыЗагрузки.Вставить("ИмяСобытия", ""); КонецЕсли; - + Если Не ПараметрыЗагрузки.Свойство("ВариантМодифицирован") Тогда ПараметрыЗагрузки.Вставить("ВариантМодифицирован", ВариантМодифицирован); КонецЕсли; - + Если Не ПараметрыЗагрузки.Свойство("ПользовательскиеНастройкиМодифицированы") Тогда ПараметрыЗагрузки.Вставить("ПользовательскиеНастройкиМодифицированы", ПользовательскиеНастройкиМодифицированы); КонецЕсли; - + Если Не ПараметрыЗагрузки.Свойство("Результат") Тогда ПараметрыЗагрузки.Вставить("Результат", Новый Структура); КонецЕсли; - + ПараметрыЗагрузки.Вставить("ОтчетОбъектИлиПолноеИмя", НастройкиОтчета.ПолноеИмя); КонецПроцедуры @@ -4385,8 +4512,8 @@ Процедура ПоказатьОшибкиФормирования(ИнформацияОбОшибке) Если ТипЗнч(ИнформацияОбОшибке) = Тип("ИнформацияОбОшибке") Тогда ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - ПодробноеПредставлениеОшибки = НСтр("ru = 'Отчет не сформирован по причине:'") - + Символы.ПС + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); + ПодробноеПредставлениеОшибки = НСтр("ru = 'Отчет не сформирован по причине:'") + Символы.ПС + + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); Если ПустаяСтрока(ОписаниеОшибки) Тогда ОписаниеОшибки = ПодробноеПредставлениеОшибки; КонецЕсли; @@ -4394,47 +4521,40 @@ ОписаниеОшибки = ИнформацияОбОшибке; ПодробноеПредставлениеОшибки = ""; КонецЕсли; - + ОтчетыКлиентСервер.ОтобразитьСостояниеОтчета(ЭтотОбъект, ОписаниеОшибки); - + Если Не ПустаяСтрока(ПодробноеПредставлениеОшибки) Тогда - ВариантыОтчетов.ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Предупреждение, ПодробноеПредставлениеОшибки, НастройкиОтчета.ВариантСсылка); + ВариантыОтчетов.ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Предупреждение, ПодробноеПредставлениеОшибки, + НастройкиОтчета.ВариантСсылка); КонецЕсли; КонецПроцедуры &НаКлиенте Функция ТребуетсяСохранитьВариант() - + Если ВариантМодифицирован Тогда Возврат Истина; КонецЕсли; - + Если НастройкиОтчета.КлючПредопределенногоВарианта <> КлючТекущегоВарианта Тогда Возврат Ложь; КонецЕсли; - + ДополнительныеСвойства = Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства; - - Если ДополнительныеСвойства.Свойство("ФормаПараметрыОтбор") - И ЗначениеЗаполнено(ДополнительныеСвойства.ФормаПараметрыОтбор) - Или РежимРасшифровки Тогда - - Возврат Истина; - КонецЕсли; - - Возврат Ложь; - + Возврат ДополнительныеСвойства.Свойство("ФормаПараметрыОтбор") + И ЗначениеЗаполнено(ДополнительныеСвойства.ФормаПараметрыОтбор) Или РежимРасшифровки; + КонецФункции &НаКлиенте Процедура СохранитьНовыйИлиСуществующийВариантОтчетаИПродолжить(Команда) - + Если Не Элементы.СохранитьВариантКак.Видимость Тогда - ПоказатьПредупреждение(, - НСтр("ru = 'Невозможно выполнить действие, так как недоступно сохранение вариантов отчетов.'")); + ПоказатьПредупреждение(, НСтр("ru = 'Невозможно выполнить действие, так как недоступно сохранение вариантов отчетов.'")); Возврат; КонецЕсли; - + Если Элементы.СохранитьВариант.Видимость Тогда Кнопки = Новый СписокЗначений; Кнопки.Добавить("СохранитьИПродолжить", НСтр("ru = 'Сохранить и продолжить'")); @@ -4445,64 +4565,61 @@ ПараметрыВопроса.Заголовок = ЭтотОбъект.ОтчетНаименованиеТекущегоВарианта; СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю( Новый ОписаниеОповещения("Подключаемый_КомандаПослеОтветаНаВопросСохранитьВариант", ЭтотОбъект, Команда), - НСтр("ru = 'Сохранить вариант отчета?'"), - Кнопки, - ПараметрыВопроса); + НСтр("ru = 'Сохранить вариант отчета?'"), Кнопки, ПараметрыВопроса); Возврат; Иначе ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("КлючОбъекта", НастройкиОтчета.ПолноеИмя); ПараметрыФормы.Вставить("КлючТекущихНастроек", КлючТекущегоВарианта); - - ОткрытьФорму("ХранилищеНастроек.ХранилищеВариантовОтчетов.ФормаСохранения", - ПараметрыФормы, ЭтотОбъект,,,, Новый ОписаниеОповещения( - "Подключаемый_КомандаПослеСохраненияВарианта", ЭтотОбъект, Команда)); + + ОткрытьФорму("ХранилищеНастроек.ХранилищеВариантовОтчетов.ФормаСохранения", ПараметрыФормы, ЭтотОбъект,,,, + Новый ОписаниеОповещения("Подключаемый_КомандаПослеСохраненияВарианта", ЭтотОбъект, Команда)); Возврат; КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_КомандаПослеОтветаНаВопросСохранитьВариант(Ответ, Команда) Экспорт - - Если Ответ = Неопределено - Или Ответ.Значение <> "СохранитьИПродолжить" Тогда + + Если Ответ = Неопределено Или Ответ.Значение <> "СохранитьИПродолжить" Тогда Возврат; КонецЕсли; - + СохранитьВариантОтчета(); Подключаемый_Команда(Команда); - + КонецПроцедуры &НаКлиенте Процедура Подключаемый_КомандаПослеСохраненияВарианта(Результат, Команда) Экспорт - + Если ТипЗнч(Результат) <> Тип("ВыборНастроек") Тогда Возврат; КонецЕсли; - + КлючТекущегоВарианта = Результат.КлючНастроек; - + СохранитьВариантОтчета(Истина); Подключаемый_Команда(Команда); - + КонецПроцедуры &НаКлиенте Процедура СохранитьВариантОтчета(ПослеДобавленияНового = Ложь) - + СохранитьВариантОтчетаНаСервере(ПослеДобавленияНового); - ПоказатьОповещениеПользователя(НСтр("ru = 'Вариант отчета сохранен'"), Окно.ПолучитьНавигационнуюСсылку(), Заголовок); - + ПоказатьОповещениеПользователя(НСтр("ru = 'Вариант отчета сохранен'"), Окно.ПолучитьНавигационнуюСсылку(), + Заголовок); + КонецПроцедуры &НаСервере Процедура СохранитьВариантОтчетаНаСервере(ПослеДобавленияНового = Ложь) - + КлючОтчета = НастройкиОтчета.ПолноеИмя; ОписаниеНастроек = ХранилищаНастроек.ХранилищеВариантовОтчетов.ПолучитьОписание(КлючОтчета, КлючТекущегоВарианта); - + Если ПослеДобавленияНового Тогда ОтчетНаименованиеТекущегоВарианта = ОписаниеНастроек.Представление; НовыйКомпоновщик = Новый КомпоновщикНастроекКомпоновкиДанных; @@ -4511,38 +4628,34 @@ Иначе НастройкиКД = Отчет.КомпоновщикНастроек.Настройки; КонецЕсли; - - ХранилищаНастроек.ХранилищеВариантовОтчетов.Сохранить( - КлючОтчета, - КлючТекущегоВарианта, - НастройкиКД, + + ХранилищаНастроек.ХранилищеВариантовОтчетов.Сохранить(КлючОтчета, КлючТекущегоВарианта, НастройкиКД, ОписаниеНастроек); - + ВариантМодифицирован = Ложь; - + КонецПроцедуры &НаКлиенте Процедура ОбновитьКомандыВыбораВариантовОбработчикОжидания() - + ОбновитьКомандыВыбораВариантов(); - + КонецПроцедуры &НаСервере Процедура ОбновитьКомандыВыбораВариантов() - Если ОбщегоНазначения.РазделениеВключено() - И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Если ОбщегоНазначения.РазделениеВключено() И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Возврат; КонецЕсли; - + ВариантыФормы = РеквизитФормыВЗначение("ДобавленныеВарианты"); ВариантыФормы.Колонки.Добавить("Найден", Новый ОписаниеТипов("Булево")); АвторизованныйПользователь = Пользователи.АвторизованныйПользователь(); - + ПараметрыПоиска = Новый Структура; ПараметрыПоиска.Вставить("Отчеты", ОтчетыСервер.ЗначениеВМассив(НастройкиОтчета.ОтчетСсылка)); - + Если НастройкиОтчета.Контекстный Тогда ПараметрыПоиска.Вставить("Контекст", КонтекстВарианта); ПараметрыПоиска.Вставить("ТолькоЛичные", Истина); @@ -4551,12 +4664,12 @@ ПараметрыПоиска.Вставить("Подсистемы", ДоступныеПодсистемы); ПараметрыПоиска.Вставить("ТолькоВидимыеВПанелиОтчетов", Истина); КонецЕсли; - + ТаблицаВариантов = ВариантыОтчетов.ТаблицаВариантовОтчетов(ПараметрыПоиска); Если ТаблицаВариантов.Колонки.Найти("Наименование") = Неопределено Тогда ТаблицаВариантов.Колонки.НаименованиеВарианта.Имя = "Наименование"; КонецЕсли; - + Если НастройкиОтчета.Внешний Тогда // Добавить предопределенные варианты внешнего отчета в таблицу вариантов. Для Каждого ЭлементСписка Из НастройкиОтчета.ПредопределенныеВарианты Цикл СтрокаТаблицы = ТаблицаВариантов.Добавить(); @@ -4564,19 +4677,19 @@ СтрокаТаблицы.КлючВарианта = ЭлементСписка.Значение; КонецЦикла; КонецЕсли; - + ТаблицаВариантов.Свернуть("Ссылка, КлючВарианта, Наименование, Автор, ТолькоДляАвтора"); ТаблицаВариантов.Сортировать("Наименование Возр, КлючВарианта Возр"); - + ОтчетыСервер.ДобавитьВариантыКонтекста(НастройкиОтчета.ОтчетСсылка, ТаблицаВариантов, ВариантыКонтекста); - + ГраницаМеню = ВариантыФормы.Количество() - 1; Для Каждого СтрокаТаблицы Из ТаблицаВариантов Цикл Найденные = ВариантыФормы.НайтиСтроки(Новый Структура("КлючВарианта, Найден", СтрокаТаблицы.КлючВарианта, Ложь)); Если Найденные.Количество() = 1 Тогда ВариантФормы = Найденные[0]; ВариантФормы.Найден = Истина; - + Кнопка = Элементы.Найти(ВариантФормы.ИмяКоманды); Кнопка.Видимость = Истина; Кнопка.Заголовок = СтрокаТаблицы.Наименование; @@ -4593,31 +4706,32 @@ ЗаполнитьЗначенияСвойств(ВариантФормы, СтрокаТаблицы); ВариантФормы.Найден = Истина; ВариантФормы.ИмяКоманды = "ВыбратьВариант_" + Формат(ГраницаМеню, "ЧН=0; ЧГ="); - + Команда = Команды.Добавить(ВариантФормы.ИмяКоманды); Команда.Действие = "Подключаемый_ЗагрузитьВариантОтчета"; - + Кнопка = Элементы.Добавить(ВариантФормы.ИмяКоманды, Тип("КнопкаФормы"), Элементы.ГруппаВариантыОтчета); Кнопка.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; Кнопка.ИмяКоманды = ВариантФормы.ИмяКоманды; Кнопка.Заголовок = СтрокаТаблицы.Наименование; // Подменю Еще. - КнопкаЕще = Элементы.Добавить(ВариантФормы.ИмяКоманды + "Еще", Тип("КнопкаФормы"), Элементы.ГруппаВариантыОтчетаЕще); + КнопкаЕще = Элементы.Добавить(ВариантФормы.ИмяКоманды + "Еще", Тип("КнопкаФормы"), + Элементы.ГруппаВариантыОтчетаЕще); КнопкаЕще.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; КнопкаЕще.ИмяКоманды = ВариантФормы.ИмяКоманды; КнопкаЕще.Заголовок = СтрокаТаблицы.Наименование; - + ПостоянныеКоманды.Добавить(ВариантФормы.ИмяКоманды); КонецЕсли; - + Кнопка.Пометка = (КлючТекущегоВарианта = СтрокаТаблицы.КлючВарианта); Кнопка.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанели; - + КнопкаЕще.Пометка = (КлючТекущегоВарианта = СтрокаТаблицы.КлючВарианта); КнопкаЕще.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю; КонецЦикла; - + Найденные = ВариантыФормы.НайтиСтроки(Новый Структура("Найден", Ложь)); Для Каждого ВариантФормы Из Найденные Цикл Кнопка = Элементы.Найти(ВариантФормы.ИмяКоманды); @@ -4629,7 +4743,7 @@ КнопкаЕще.Пометка = Ложь; КнопкаЕще.Видимость = Ложь; КонецЦикла; - + ВариантыФормы.Колонки.Удалить("Найден"); ЗначениеВРеквизитФормы(ВариантыФормы, "ДобавленныеВарианты"); КонецПроцедуры @@ -4639,64 +4753,62 @@ ДополнительныеСвойства = Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства; ДополнительныеСвойства.Вставить("КлючВарианта", КлючТекущегоВарианта); ДополнительныеСвойства.Вставить("ВариантНаименование", ОтчетНаименованиеТекущегоВарианта); - + НастройкиОтчета.ВариантСсылка = Неопределено; НастройкиОтчета.КлючЗамеров = Неопределено; НастройкиОтчета.ПредопределенныйСсылка = Неопределено; НастройкиОтчета.КлючПредопределенногоВарианта = Неопределено; НастройкиОтчета.Пользовательский = Ложь; НастройкиОтчета.ТипОтчета = Неопределено; - - Если ОбщегоНазначения.РазделениеВключено() - И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + + Если ОбщегоНазначения.РазделениеВключено() И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Возврат; КонецЕсли; - + Запрос = ВариантОтчетаПоСсылкеИКлючу(НастройкиОтчета.ОтчетСсылка, КлючТекущегоВарианта); - + Выборка = Запрос.Выполнить().Выбрать(); Если Не Выборка.Следующий() Тогда - + Если НастройкиОтчета.Внешний Тогда Возврат; КонецЕсли; - + Запрос = ВариантОтчетаПоСсылкеИКлючу(НастройкиОтчета.ОтчетСсылка); - + Выборка = Запрос.Выполнить().Выбрать(); Если Не Выборка.Следующий() Тогда // Отчет не подключен к подсистеме варианты отчетов (работает с ограничениями). Возврат; - + КонецЕсли; - + КонецЕсли; - + КлючЗамеров = Выборка.КлючЗамеров; Если Не ЗначениеЗаполнено(КлючЗамеров) Тогда - КлючЗамеров = ВариантыОтчетовСлужебный.КлючЗамеров(НастройкиОтчета.ПолноеИмя, - КлючТекущегоВарианта); + КлючЗамеров = ВариантыОтчетовСлужебный.КлючЗамеров(НастройкиОтчета.ПолноеИмя, КлючТекущегоВарианта); КонецЕсли; - + ЗаполнитьЗначенияСвойств(НастройкиОтчета, Выборка); НастройкиОтчета.КлючЗамеров = КлючЗамеров; ОписаниеНастроекОтчета = ОписаниеНастроекОтчета(НастройкиОтчета); - - Если РежимРасшифровки Тогда + + Если РежимРасшифровки Тогда ОтчетНаименованиеТекущегоВарианта = ОписаниеНастроекОтчета.Наименование; КонецЕсли; - + ДополнительныеСвойства.Вставить("ВариантНаименование", ОтчетНаименованиеТекущегоВарианта); ДополнительныеСвойства.Вставить("КлючПредопределенногоВарианта", ОписаниеНастроекОтчета.КлючПредопределенногоВарианта); - + КонецПроцедуры &НаСервереБезКонтекста Функция ВариантОтчетаПоСсылкеИКлючу(ОтчетСсылка, КлючВарианта = Неопределено) - - ТекстЗапроса = + + ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | ВариантыОтчетов.Ссылка КАК ВариантСсылка, | ВариантыОтчетов.Представление КАК Наименование, @@ -4713,19 +4825,19 @@ | Справочник.ВариантыОтчетов КАК ВариантыОтчетов |ГДЕ | ВариантыОтчетов.Отчет = &Отчет"; - + Запрос = Новый Запрос; Запрос.УстановитьПараметр("Отчет", ОтчетСсылка); - + Если КлючВарианта <> Неопределено Тогда - ТекстЗапроса = ТекстЗапроса +" И ВариантыОтчетов.КлючВарианта = &КлючВарианта"; // @Query-part1 + ТекстЗапроса = ТекстЗапроса + " И ВариантыОтчетов.КлючВарианта = &КлючВарианта"; // @Query-part1 Запрос.УстановитьПараметр("КлючВарианта", КлючВарианта); КонецЕсли; - + Запрос.Текст = ТекстЗапроса; - + Возврат Запрос; - + КонецФункции &НаКлиентеНаСервереБезКонтекста @@ -4735,82 +4847,83 @@ &НаКлиенте Процедура ПраваПользователей(Команда) - + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда - МодульУправлениеДоступомСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеДоступомСлужебныйКлиент"); + МодульУправлениеДоступомСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль( + "УправлениеДоступомСлужебныйКлиент"); МодульУправлениеДоступомСлужебныйКлиент.ПоказатьПраваПользователейОтчета( НастройкиОтчета.ОтчетСсылка, НастройкиОтчета.ИспользуемыеТаблицы); КонецЕсли; - + КонецПроцедуры &НаКлиенте Процедура ПрименитьСхемуИзКонструктора(Результат) - -#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда + +#Если ТолстыйКлиентОбычноеПриложение Или ТолстыйКлиентУправляемоеПриложение Тогда Если ТипЗнч(Результат) <> Тип("СхемаКомпоновкиДанных") Тогда Возврат; КонецЕсли; - + НастройкиОтчета.АдресСхемы = ПоместитьВоВременноеХранилище(Результат, УникальныйИдентификатор); - + Путь = ПолучитьИмяВременногоФайла(); - - ЗаписьXML = Новый ЗаписьXML; + + ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(Путь, "UTF-8"); - СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Результат, "dataCompositionSchema", "http://v8.1c.ru/8.1/data-composition-system/schema"); + СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Результат, "dataCompositionSchema", + "http://v8.1c.ru/8.1/data-composition-system/schema"); ЗаписьXML.Закрыть(); - + ДвоичныеДанные = Новый ДвоичныеДанные(Путь); НачатьУдалениеФайлов(, Путь); - + Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("СхемаКомпоновкиДанных", ДвоичныеДанные); - Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ОтчетИнициализирован", Ложь); - + Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ОтчетИнициализирован", Ложь); + ПараметрыЗаполнения = Новый Структура; ПараметрыЗаполнения.Вставить("ПользовательскиеНастройкиМодифицированы", Истина); ПараметрыЗаполнения.Вставить("КомпоновщикНастроекКД", Отчет.КомпоновщикНастроек); ПараметрыЗаполнения.Вставить("ИмяСобытия", "НастройкиПоУмолчанию"); - + ОбновитьЭлементыФормыНастроек(ПараметрыЗаполнения); #КонецЕсли - + КонецПроцедуры &НаКлиенте Процедура ПрименитьНастройкиИзКонтекстногоМеню(Результат) - - Если ТипЗнч(Результат) <> Тип("Структура") Тогда + + Если ТипЗнч(Результат) <> Тип("Структура") Тогда Возврат; КонецЕсли; - + Действие = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "Действие"); ИдентификаторВладельца = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "ИдентификаторВладельца"); - - Если Не ВариантыОтчетовСлужебныйКлиент.ЭтоСобытиеКонтекстнойНастройки(Действие) - Или ИдентификаторВладельца <> УникальныйИдентификатор Тогда - + + Если Не ВариантыОтчетовСлужебныйКлиент.ЭтоСобытиеКонтекстнойНастройки(Действие) + Или ИдентификаторВладельца <> УникальныйИдентификатор Тогда Возврат; КонецЕсли; - + УточнитьПризнакАвтоформированияОтчета(Результат); ПрименитьНастройкиИПереформироватьОтчет(Результат, Неопределено); - + КонецПроцедуры &НаКлиенте -Процедура ПослеВыбораПоля(ВыбранноеПоле, ДополнительныеПараметры) Экспорт - +Процедура ПослеВыбораПоля(ВыбранноеПоле, ДополнительныеПараметры) Экспорт + ВариантыОтчетовСлужебныйКлиент.ПослеВыбораПоля(ВыбранноеПоле, ДополнительныеПараметры); - + КонецПроцедуры &НаКлиенте Функция СвойстваЗаголовка() - + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета Возврат СвойстваРезультата.Заголовки[ИмяТекущейОбластиЯчеек()]; - + КонецФункции // Возвращаемое значение: @@ -4818,311 +4931,303 @@ // &НаКлиенте Функция ИмяТекущейОбластиЯчеек() - + Область = Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть; - Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") - И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда + И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда Возврат Область.Имя; КонецЕсли; - + Возврат ""; - + КонецФункции &НаКлиенте Процедура СброситьТекущуюОбласть() - + #Если ВебКлиент Тогда - + ПолеДокумента = Элементы.ОтчетТабличныйДокумент; Область = ПолеДокумента.ТекущаяОбласть; - + Если ТипЗнч(Область) <> Тип("ОбластьЯчеекТабличногоДокумента") - Или Область.ТипОбласти <> ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда + Или Область.ТипОбласти <> ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда Возврат; КонецЕсли; - + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета СвойстваЗаголовка = СвойстваРезультата.Заголовки[Область.Имя]; - - Если ТипЗнч(СвойстваЗаголовка) <> Тип("Структура") Тогда + Если ТипЗнч(СвойстваЗаголовка) <> Тип("Структура") Тогда Возврат; КонецЕсли; - - Если ОтчетТабличныйДокумент.ШиринаСтраницы > ОтчетТабличныйДокумент.ШиринаТаблицы Тогда - + + Если ОтчетТабличныйДокумент.ШиринаСтраницы > ОтчетТабличныйДокумент.ШиринаТаблицы Тогда ПолеДокумента.ТекущаяОбласть = ОтчетТабличныйДокумент.Область(1, ОтчетТабличныйДокумент.ШиринаТаблицы + 1); - - ИначеЕсли ОтчетТабличныйДокумент.ВысотаСтраницы > ОтчетТабличныйДокумент.ВысотаТаблицы Тогда - + + ИначеЕсли ОтчетТабличныйДокумент.ВысотаСтраницы > ОтчетТабличныйДокумент.ВысотаТаблицы Тогда ПолеДокумента.ТекущаяОбласть = ОтчетТабличныйДокумент.Область(ОтчетТабличныйДокумент.ВысотаТаблицы + 1, 1); - + КонецЕсли; - + #КонецЕсли - + КонецПроцедуры &НаКлиенте -Процедура ПослеИзмененияСоставаБыстрыхНастроек(Результат, ДополнительныеПараметры) Экспорт - - Если ТипЗнч(Результат) <> Тип("Структура") Тогда +Процедура ПослеИзмененияСоставаБыстрыхНастроек(Результат, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(Результат) <> Тип("Структура") Тогда Возврат; КонецЕсли; - - Если Результат.ВариантМодифицирован - Или Результат.ВыводитьЗаголовкиНастроек <> ВыводитьЗаголовкиНастроек Тогда - + + Если Результат.ВариантМодифицирован Или Результат.ВыводитьЗаголовкиНастроек <> ВыводитьЗаголовкиНастроек Тогда + ВыводитьЗаголовкиНастроек = Результат.ВыводитьЗаголовкиНастроек; - - Если Результат.ВариантМодифицирован Тогда - - ВариантыОтчетовСлужебныйКлиент.ДобавитьНастройкиВСтек( - ЭтотОбъект, Результат.КомпоновщикНастроекКД.Настройки, Результат.ИмяСобытия); - + Если Результат.ВариантМодифицирован Тогда + ВариантыОтчетовСлужебныйКлиент.ДобавитьНастройкиВСтек(ЭтотОбъект, + Результат.КомпоновщикНастроекКД.Настройки, Результат.ИмяСобытия); КонецЕсли; - + ОбновитьЭлементыФормыНастроек(Результат); КонецЕсли; - + КонецПроцедуры &НаКлиентеНаСервереБезКонтекста Функция КлючНастроекВариантаОтчета(ПолноеИмяОтчета, КлючВарианта) - + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1/%2", ПолноеИмяОтчета, КлючВарианта); - + КонецФункции &НаСервере Процедура СохранитьДанныеВНастройкахНаСервере(Настройки = Неопределено) - + КлючНастроек = КлючНастроекВариантаОтчета(НастройкиОтчета.ПолноеИмя, КлючТекущегоВарианта); СохранитьВыбранныйУровеньГруппировок(КлючНастроек, ВыбранныйУровеньГруппировок, РежимРасшифровки); СохранитьСостояниеОпцииВыводитьЗаголовкиНастроек(КлючНастроек, ВыводитьЗаголовкиНастроек, РежимРасшифровки); - + Если ТипЗнч(Настройки) = Тип("Соответствие") Тогда Настройки["ФормаНастроекРасширенныйРежим"] = НастройкиОтчета.ФормаНастроекРасширенныйРежим; КонецЕсли; - + КонецПроцедуры #Область ПереходМеждуНастройкамиСтека &НаСервере Процедура ОбновитьМенюПереходаМеждуИзменениямиНастроек() - + УдалитьКомандыМенюПереходаМеждуИзменениямиНастроек(); ОпределитьДоступностьКомандПереходаМеждуИзменениямиНастроек(); - + СтекНастроек.Сортировать("Порядок Убыв"); - + ПройденаТекущаяНастройкаСтека = Ложь; СледующаяКоманда = Неопределено; - - Для Каждого Запись Из СтекНастроек Цикл - - Если Запись.Пометка Тогда + + Для Каждого Запись Из СтекНастроек Цикл + + Если Запись.Пометка Тогда ПройденаТекущаяНастройкаСтека = Истина; КонецЕсли; - - Если ПройденаТекущаяНастройкаСтека Тогда - + + Если ПройденаТекущаяНастройкаСтека Тогда + ГруппаДействий = Элементы.ГруппаОтменитьИзменениеНастроек; СледующаяКоманда = Элементы.УстановитьСтандартныеНастройки; - + Иначе - + ГруппаДействий = Элементы.ГруппаПовторитьИзменениеНастроек; - - Если ГруппаДействий.ПодчиненныеЭлементы.Количество() > 0 Тогда + + Если ГруппаДействий.ПодчиненныеЭлементы.Количество() > 0 Тогда СледующаяКоманда = ГруппаДействий.ПодчиненныеЭлементы[0]; КонецЕсли; - + КонецЕсли; - + ДобавитьКомандуПереходаМеждуИзменениямиНастроек(Запись, ГруппаДействий, СледующаяКоманда); - + КонецЦикла; - + ОбновитьСочетаниеКлавишКомандПереходаМеждуИзменениямиНастроек(); - + КонецПроцедуры &НаСервере Процедура УдалитьКомандыМенюПереходаМеждуИзменениямиНастроек() - + МаксимальныйРазмерСтекаНастроек = ВариантыОтчетовСлужебныйКлиентСервер.МаксимальныйРазмерСтекаНастроек(); - - Для Порядок = 1 По МаксимальныйРазмерСтекаНастроек Цикл - + + Для Порядок = 1 По МаксимальныйРазмерСтекаНастроек Цикл + ИмяКоманды = ИмяКомандыПереходаМеждуИзменениямиНастроек(Порядок); - + Кнопка = Элементы.Найти(ИмяКоманды); - - Если Кнопка <> Неопределено Тогда + + Если Кнопка <> Неопределено Тогда Элементы.Удалить(Кнопка); КонецЕсли; - + Команда = Команды.Найти(ИмяКоманды); - - Если Команда <> Неопределено Тогда + + Если Команда <> Неопределено Тогда Команды.Удалить(Команда); КонецЕсли; - + КонецЦикла; - + КонецПроцедуры &НаСервере Процедура ОпределитьДоступностьКомандПереходаМеждуИзменениямиНастроек() - + ТекущиеНастройкиСтека = ТекущиеНастройкиСтека(); ТекущиеНастройкиСтекаОпределены = (ТекущиеНастройкиСтека.Количество() > 0); - + КнопкаУстановкиСтандартныхНастроек = Элементы.УстановитьСтандартныеНастройки; КнопкаУстановкиСтандартныхНастроек.Видимость = СтекНастроек.Количество() > 0; - + КнопкаУстановкиСтандартныхНастроек.Доступность = КнопкаУстановкиСтандартныхНастроек.Видимость И ТекущиеНастройкиСтекаОпределены; - + КнопкаУстановкиСтандартныхНастроек.Пометка = Не КнопкаУстановкиСтандартныхНастроек.Доступность; - + КонецПроцедуры &НаСервере Процедура ДобавитьКомандуПереходаМеждуИзменениямиНастроек(ЗаписьСтекаНастроек, ГруппаДействий, СледующаяКоманда) - + ИмяКоманды = ИмяКомандыПереходаМеждуИзменениямиНастроек(ЗаписьСтекаНастроек.Порядок); ЗаголовокКоманды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( "%1. %2", ЗаписьСтекаНастроек.Порядок, ЗаписьСтекаНастроек.ПредставлениеДействия); - + Команда = Команды.Найти(ИмяКоманды); - - Если Команда = Неопределено Тогда + + Если Команда = Неопределено Тогда Команда = Команды.Добавить(ИмяКоманды); КонецЕсли; - + Команда.Действие = "Подключаемый_ПерейтиМеждуИзменениямиНастроек"; Команда.Заголовок = ЗаголовокКоманды; - + Кнопка = Элементы.Найти(ИмяКоманды); - - Если Кнопка = Неопределено Тогда + + Если Кнопка = Неопределено Тогда Кнопка = Элементы.Вставить(ИмяКоманды, Тип("КнопкаФормы"), ГруппаДействий, СледующаяКоманда); КонецЕсли; - + Кнопка.ИмяКоманды = ИмяКоманды; Кнопка.Заголовок = ЗаголовокКоманды; Кнопка.Доступность = Не ЗаписьСтекаНастроек.Пометка; Кнопка.Пометка = ЗаписьСтекаНастроек.Пометка; Кнопка.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.Нет); - + КонецПроцедуры &НаСервере Функция ИмяКомандыПереходаМеждуИзменениямиНастроек(Порядок) - + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( "%1%2", ПрефиксИмениКомандыПереходаМеждуИзменениямиНастроек(), Порядок); - + КонецФункции &НаКлиентеНаСервереБезКонтекста Функция ПрефиксИмениКомандыПереходаМеждуИзменениямиНастроек() - + Возврат "ПерейтиМеждуИзменениямиНастроек"; - + КонецФункции &НаСервере Процедура ОбновитьСочетаниеКлавишКомандПереходаМеждуИзменениямиНастроек() - + КнопкаУстановкиСтандартныхНастроек = Элементы.УстановитьСтандартныеНастройки; КнопкаУстановкиСтандартныхНастроек.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.Нет); - + СочетаниеКлавишОтменыДействия = Новый СочетаниеКлавиш(Клавиша.Z, Ложь, Истина, Ложь); СочетаниеКлавишПовтораДействия = Новый СочетаниеКлавиш(Клавиша.Y, Ложь, Истина, Ложь); - + ТекущиеНастройкиСтека = ТекущиеНастройкиСтека(); - - Если ТекущиеНастройкиСтека.Количество() > 0 Тогда - + + Если ТекущиеНастройкиСтека.Количество() > 0 Тогда + ПорядокКомандыТекущихНастроекСтека = ТекущиеНастройкиСтека[0].Порядок; - + СочетаниеКлавишУстановлено = УстановитьСочетаниеКлавишКомандыПереходаМеждуИзменениямиНастроек( ПорядокКомандыТекущихНастроекСтека - 1, СочетаниеКлавишОтменыДействия); - - Если Не СочетаниеКлавишУстановлено - И ПорядокКомандыТекущихНастроекСтека = 1 - И Не КнопкаУстановкиСтандартныхНастроек.Пометка Тогда - + + Если Не СочетаниеКлавишУстановлено И ПорядокКомандыТекущихНастроекСтека = 1 + И Не КнопкаУстановкиСтандартныхНастроек.Пометка Тогда + КнопкаУстановкиСтандартныхНастроек.СочетаниеКлавиш = СочетаниеКлавишОтменыДействия; - + КонецЕсли; - + УстановитьСочетаниеКлавишКомандыПереходаМеждуИзменениямиНастроек( ПорядокКомандыТекущихНастроекСтека + 1, СочетаниеКлавишПовтораДействия); - - ИначеЕсли СтекНастроек.Количество() > 0 - И КнопкаУстановкиСтандартныхНастроек.Пометка Тогда - + + ИначеЕсли СтекНастроек.Количество() > 0 И КнопкаУстановкиСтандартныхНастроек.Пометка Тогда + УстановитьСочетаниеКлавишКомандыПереходаМеждуИзменениямиНастроек(1, СочетаниеКлавишПовтораДействия); - + КонецЕсли; - + КонецПроцедуры &НаСервере Функция УстановитьСочетаниеКлавишКомандыПереходаМеждуИзменениямиНастроек(ПорядокКоманды, СочетаниеКлавиш) - + ИмяКоманды = ИмяКомандыПереходаМеждуИзменениямиНастроек(ПорядокКоманды); Кнопка = Элементы.Найти(ИмяКоманды); - - Если Кнопка = Неопределено Тогда + + Если Кнопка = Неопределено Тогда Возврат Ложь; КонецЕсли; - + Кнопка.СочетаниеКлавиш = СочетаниеКлавиш; Возврат Истина; - + КонецФункции &НаСервере Функция ТекущиеНастройкиСтека() - + Возврат СтекНастроек.НайтиСтроки(Новый Структура("Пометка", Истина)); - + КонецФункции #КонецОбласти &НаКлиенте Процедура УточнитьПризнакАвтоформированияОтчета(ПараметрыОбновления) - + Если Не ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыОбновления, "Переформировать", Ложь) Тогда ДопустимоеВремяДляАвтоформированияОтчета = 5; // секунд ВремяФормированияОтчета = НастройкиОтчета.СвойстваРезультата.ВремяФормирования; - ПараметрыОбновления.Вставить("Переформировать", ВремяФормированияОтчета <= ДопустимоеВремяДляАвтоформированияОтчета); + ПараметрыОбновления.Вставить("Переформировать", + ВремяФормированияОтчета <= ДопустимоеВремяДляАвтоформированияОтчета); КонецЕсли; - + КонецПроцедуры &НаСервереБезКонтекста Функция СписокДоступныхФорматовСохраненияОтчета(ИндексФорматовСохраненияОтчета) - + ДоступныеФорматы = Новый СписокЗначений; - + ФорматыСохранения = СтандартныеПодсистемыСервер.НастройкиФорматовСохраненияТабличногоДокумента(); - + Для Каждого ФорматСохранения Из ИндексФорматовСохраненияОтчета Цикл НайденноеОписание = ФорматыСохранения.Найти(ФорматСохранения.Ключ, "Расширение"); - ДоступныеФорматы.Добавить(НайденноеОписание.Расширение, НайденноеОписание.Представление, , НайденноеОписание.Картинка); + ДоступныеФорматы.Добавить(НайденноеОписание.Расширение, НайденноеОписание.Представление,, + НайденноеОписание.Картинка); КонецЦикла; - + Возврат ДоступныеФорматы; - + КонецФункции &НаСервере @@ -5142,4 +5247,19 @@ КонецПроцедуры -#КонецОбласти +&НаСервере +Процедура ЗаполнитьПутьКФайлуВнешнегоОтчетаНаКлиенте(ОтчетОбъект) + + СтруктураОбъекта = Новый Структура("ИспользуемоеИмяФайла", Неопределено); + ЗаполнитьЗначенияСвойств(СтруктураОбъекта, ОтчетОбъект); + + Если Не ЗначениеЗаполнено(СтруктураОбъекта.ИспользуемоеИмяФайла) + Или СтрНачинаетсяС(СтруктураОбъекта.ИспользуемоеИмяФайла, "e1cib\") Тогда + Возврат; + КонецЕсли; + + ПутьКФайлуВнешнегоОтчетаНаКлиенте = СтруктураОбъекта.ИспользуемоеИмяФайла; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonForms/ЭлектроннаяПодпись/Form.form b/SSL/src/CommonForms/ЭлектроннаяПодпись/Form.form index 106a3c7aa..67517c6fa 100644 --- a/SSL/src/CommonForms/ЭлектроннаяПодпись/Form.form +++ b/SSL/src/CommonForms/ЭлектроннаяПодпись/Form.form @@ -260,6 +260,41 @@ Normal + + ТребуетсяПроверка + 57 + true + true + + true + + + ТребуетсяПроверка + + Right + + ТребуетсяПроверкаРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + ТребуетсяПроверкаКонтекстноеМеню + 58 + true + + CheckBoxField + true + Enter + true + Left + true + + ДатаПроверкиПодписи 32 @@ -952,6 +987,23 @@ true + + ТребуетсяПроверка + + <key>ru</key> + <value>Требуется проверка</value> + + 18 + + Boolean + + + true + + + true + + СохранитьВФайл diff --git a/SSL/src/CommonModules/GoogleПереводчик/Module.bsl b/SSL/src/CommonModules/GoogleПереводчик/Module.bsl index 9dd4f5749..cb817747c 100644 --- a/SSL/src/CommonModules/GoogleПереводчик/Module.bsl +++ b/SSL/src/CommonModules/GoogleПереводчик/Module.bsl @@ -41,14 +41,14 @@ ПараметрыЗапроса.Вставить("source", ИсходныйЯзык); КонецЕсли; - HTTPЗапрос.УстановитьТелоИзСтроки(ЗначениеВJSON(ПараметрыЗапроса)); + HTTPЗапрос.УстановитьТелоИзСтроки(ОбщегоНазначения.ЗначениеВJSON(ПараметрыЗапроса)); РезультатЗапроса = ВыполнитьЗапрос(HTTPЗапрос, ИмяХоста); Если Не РезультатЗапроса.ЗапросВыполнен Тогда ВызватьИсключение ТекстОшибки(НСтр("ru = 'Не удалось выполнить перевод текста.'")); КонецЕсли; - ОтветСервера = JSONВЗначение(РезультатЗапроса.ОтветСервера); + ОтветСервера = ОбщегоНазначения.JSONВЗначение(РезультатЗапроса.ОтветСервера); Результат = Новый Соответствие; Для Индекс = 0 По Тексты.ВГраница() Цикл @@ -84,7 +84,7 @@ КонецЕсли; Результат = Новый Массив; - ДоступныеЯзыки = JSONВЗначение(РезультатЗапроса.ОтветСервера); + ДоступныеЯзыки = ОбщегоНазначения.JSONВЗначение(РезультатЗапроса.ОтветСервера); Для Каждого Язык Из ДоступныеЯзыки["data"]["languages"] Цикл КодЯзыка = Язык["language"]; Результат.Добавить(КодЯзыка); @@ -123,7 +123,7 @@ Если HTTPОтвет.КодСостояния = 401 Или HTTPОтвет.КодСостояния = 403 Тогда - ИнформацияОбОшибке = JSONВЗначение(HTTPОтвет.ПолучитьТелоКакСтроку()); + ИнформацияОбОшибке = ОбщегоНазначения.JSONВЗначение(HTTPОтвет.ПолучитьТелоКакСтроку()); ВызватьИсключение ИнформацияОбОшибке["error"]["message"]; КонецЕсли; @@ -181,19 +181,6 @@ КонецФункции -Функция ЗначениеВJSON(Значение) - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.УстановитьСтроку(); - ЗаписатьJSON(ЗаписьJSON, Значение); - Возврат ЗаписьJSON.Закрыть(); -КонецФункции - -Функция JSONВЗначение(Строка, ИменаСвойствСоЗначениямиДата = Неопределено) - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(Строка); - Возврат ПрочитатьJSON(ЧтениеJSON, Истина, ИменаСвойствСоЗначениямиДата); -КонецФункции - Процедура ЗаписатьОшибкуВЖурналРегистрации(Комментарий) ЗаписьЖурналаРегистрации(НСтр("ru = 'Перевод текста'", ОбщегоНазначения.КодОсновногоЯзыка()), diff --git a/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl index 046740297..0d4d89ff1 100644 --- a/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl @@ -1171,6 +1171,12 @@ ОбменДаннымиСлужебный.ОтключитьОбновлениеКлючейДоступа(Истина, Ложь); УстановитьИспользованиеИтоговРегистров(Ложь); + // В том случае, если записи регистра бухгалтерии загружаются раньше, + // чем счета учета, возникает ошибка "Запись не верна!". + // Поэтому запись регистров бухгалтерии происходит в самом конце. + // Предварительно сохраняем их в массив НаборыРегистровБухгалтерии + НаборыРегистровБухгалтерии = Новый Массив; + Для Каждого ИмяФайлаДанных Из СписокФайловДанных Цикл ДанныеНачальногоОбраза = Новый ЧтениеXML; @@ -1188,16 +1194,18 @@ ЭлементДанных.ОбменДанными.Загрузка = Истина; ЭлементДанных.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); - Попытка + Если ОбщегоНазначения.ЭтоРегистрБухгалтерии(ЭлементДанных.Метаданные()) Тогда + НаборыРегистровБухгалтерии.Добавить(ЭлементДанных); + Иначе ЭлементДанных.Записать(); - Исключение - // Пропускаем некорректную запись - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста(), - УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; + КонецЕсли; КонецЦикла; + Для Каждого Набор Из НаборыРегистровБухгалтерии Цикл + Набор.Записать(); + КонецЦикла; + Исключение ОбменДаннымиСлужебный.ОтключитьОбновлениеКлючейДоступа(Ложь, Ложь); diff --git a/SSL/src/CommonModules/АдминистрированиеКластераCOM/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластераCOM/Module.bsl index 551c0085d..977ac2469 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластераCOM/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластераCOM/Module.bsl @@ -129,38 +129,46 @@ ПроверятьПараметрыАдминистрированияИнформационнойБазы = Истина, ПроверятьПараметрыАдминистрированияКластера = Истина) Экспорт - Если ПроверятьПараметрыАдминистрированияКластера ИЛИ ПроверятьПараметрыАдминистрированияИнформационнойБазы Тогда + Если ПроверятьПараметрыАдминистрированияКластера Или ПроверятьПараметрыАдминистрированияИнформационнойБазы Тогда - Попытка - COMСоединитель = COMСоединитель(); - - СоединениеСАгентомСервера = СоединениеСАгентомСервера(COMСоединитель, - ПараметрыАдминистрированияКластера.АдресАгентаСервера, - ПараметрыАдминистрированияКластера.ПортАгентаСервера); - - Кластер = ПолучитьКластер(СоединениеСАгентомСервера, - ПараметрыАдминистрированияКластера.ПортКластера, - ПараметрыАдминистрированияКластера.ИмяАдминистратораКластера, - ПараметрыАдминистрированияКластера.ПарольАдминистратораКластера); - Исключение - Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда - ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось подключиться с компьютера %1 к кластеру серверов по причине: - |%2 - | - |Если в тексте ошибки указано, что ""класс не зарегистрирован"" или не совпадает версия компоненты ""comcntr"" с требуемой, - |то следует зарегистрировать ее на компьютере %1, для этого обратитесь к администратору.'"), - ИмяКомпьютера(), ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); - Иначе + ПопыткаСоединения = 1; + Пока ПопыткаСоединения <= 2 Цикл + Попытка + COMСоединитель = COMСоединитель(); + + СоединениеСАгентомСервера = СоединениеСАгентомСервера(COMСоединитель, + ПараметрыАдминистрированияКластера.АдресАгентаСервера, + ПараметрыАдминистрированияКластера.ПортАгентаСервера); + + Кластер = ПолучитьКластер(СоединениеСАгентомСервера, + ПараметрыАдминистрированияКластера.ПортКластера, + ПараметрыАдминистрированияКластера.ИмяАдминистратораКластера, + ПараметрыАдминистрированияКластера.ПарольАдминистратораКластера); + + ПопыткаСоединения = ПопыткаСоединения + 1; + Исключение ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось подключиться с компьютера %1 к кластеру серверов по причине: |%2.'"), ИмяКомпьютера(), ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецЕсли; - - ВызватьИсключение ТекстИсключения - - КонецПопытки; + Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда + Если ПопыткаСоединения = 1 Тогда + Если ЗарегистрироватьCOMСоединитель(ТекстИсключения + Символы.ПС + Символы.ПС) Тогда + ПопыткаСоединения = ПопыткаСоединения + 1; + Продолжить; + КонецЕсли; + КонецЕсли; + КонецЕсли; + ТекстИсключения = ТекстИсключения + Символы.ПС + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Если в сообщении указано, что ""класс не зарегистрирован"" или не совпадает версия компоненты ""comcntr"" с требуемой, + |то следует зарегистрировать ее на компьютере %1, для этого обратитесь к администратору. + |Для этого под учетной записью ОС Windows, от имени которой запущен сервер 1С:Предприятие, выполнить команду: + |regsvr32.exe comcntr.dll'"), + ИмяКомпьютера()); + ВызватьИсключение ТекстИсключения + + КонецПопытки; + КонецЦикла; КонецЕсли; @@ -842,6 +850,26 @@ КонецФункции +Функция ЗарегистрироватьCOMСоединитель(Знач Сообщение = "") + ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы(); + ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина; + ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина; + ТекстКоманды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "regsvr32.exe /n /i:user /s ""%1\comcntr.dll""", КаталогПрограммы()); + РезультатЗапуска = ФайловаяСистема.ЗапуститьПрограмму(ТекстКоманды, ПараметрыЗапускаПрограммы); + + Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1Выполнена перерегистрация компоненты ""comcntr"" на компьютере %2. + |Команда: %3 + |Код возврата %4, сообщение: + |%5'"), + Сообщение, ИмяКомпьютера(), ТекстКоманды, РезультатЗапуска.КодВозврата, РезультатЗапуска.ПотокВывода); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Подключение к кластеру серверов'", ОбщегоНазначения.КодОсновногоЯзыка()), + ?(РезультатЗапуска.КодВозврата = 0, УровеньЖурналаРегистрации.Информация, УровеньЖурналаРегистрации.Предупреждение),,, + Комментарий); + Возврат РезультатЗапуска.КодВозврата = 0; +КонецФункции + Функция СоединениеСАгентомСервера(COMСоединитель, Знач АдресАгентаСервера, Знач ПортАгентаСервера) СтрокаСоединенияСАгентомСервера = "tcp://" + АдресАгентаСервера + ":" + Формат(ПортАгентаСервера, "ЧГ=0"); diff --git a/SSL/src/CommonModules/АдминистрированиеКластераCOMКлиентСервер/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластераCOMКлиентСервер/Module.bsl index 410042409..7764215ac 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластераCOMКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластераCOMКлиентСервер/Module.bsl @@ -899,7 +899,7 @@ #ИначеЕсли МобильныйКлиент Тогда ВызватьИсключение НСтр("ru = 'Внимание! Администрирование кластера невозможно в мобильном клиенте'"); #Иначе - Возврат Новый COMОбъект(СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ИмяCOMСоединителя); + Возврат Новый COMОбъект(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()); #КонецЕсли // АПК:547-вкл diff --git a/SSL/src/CommonModules/Анкетирование/Module.bsl b/SSL/src/CommonModules/Анкетирование/Module.bsl index ee75a03dc..88e1acfcd 100644 --- a/SSL/src/CommonModules/Анкетирование/Module.bsl +++ b/SSL/src/CommonModules/Анкетирование/Module.bsl @@ -13,14 +13,17 @@ // См. ГрупповоеИзменениеОбъектовПереопределяемый.ПриОпределенииОбъектовСРедактируемымиРеквизитами. Процедура ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты) Экспорт - + Объекты.Вставить(Метаданные.Документы.Анкета.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке"); Объекты.Вставить(Метаданные.Документы.НазначениеОпросов.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке"); - Объекты.Вставить(Метаданные.ПланыВидовХарактеристик.ВопросыДляАнкетирования.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке"); - Объекты.Вставить(Метаданные.Справочники.ВариантыОтветовАнкет.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке"); - Объекты.Вставить(Метаданные.Справочники.ВопросыШаблонаАнкеты.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке"); + Объекты.Вставить(Метаданные.ПланыВидовХарактеристик.ВопросыДляАнкетирования.ПолноеИмя(), + "РеквизитыРедактируемыеВГрупповойОбработке"); + Объекты.Вставить(Метаданные.Справочники.ВариантыОтветовАнкет.ПолноеИмя(), + "РеквизитыРедактируемыеВГрупповойОбработке"); + Объекты.Вставить(Метаданные.Справочники.ВопросыШаблонаАнкеты.ПолноеИмя(), + "РеквизитыРедактируемыеВГрупповойОбработке"); Объекты.Вставить(Метаданные.Справочники.ШаблоныАнкет.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке"); - + КонецПроцедуры // См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей @@ -31,27 +34,26 @@ Метаданные.Роли.ДобавлениеИзменениеОтветовНаВопросыАнкет.Имя); НазначениеРолей.СовместноДляПользователейИВнешнихПользователей.Добавить( Метаданные.Роли.ЧтениеОтветовНаВопросыАнкет.Имя); - + КонецПроцедуры // См. ВариантыОтчетовПереопределяемый.ОпределитьОбъектыСКомандамиОтчетов Процедура ПриОпределенииОбъектовСКомандамиОтчетов(Объекты) Экспорт - + Объекты.Добавить(Метаданные.Документы.НазначениеОпросов); - + КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - + Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.5.6"; + Обработчик.Версия = "2.3.5.6"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("cfda47d2-f61f-4c23-84a6-80c77b52e6e5"); Обработчик.Процедура = "Документы.Анкета.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.Комментарий = НСтр("ru = 'Заполнение значения нового реквизита ""Режим анкетирования"" у документов ""Анкета"" прошлых периодов. - |До завершения обработки ""Режим анкетирования"" данных документов будет отображаться некорректно.'"); + |До завершения обработки ""Режим анкетирования"" данных документов будет отображаться некорректно.'"); Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Документы.Анкета.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ЧитаемыеОбъекты = "Документ.Анкета"; @@ -59,33 +61,31 @@ Обработчик.БлокируемыеОбъекты = "Документ.Анкета"; Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.5.6"; + Обработчик.Версия = "2.3.5.6"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("1fdb0962-f814-463a-b560-48ea3d51be27"); Обработчик.Процедура = "Справочники.ВопросыШаблонаАнкеты.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.Комментарий = НСтр("ru = 'Заполнение значения нового реквизита ""Способ отображения подсказки"" в справочнике ""Вопросы шаблона анкеты"". - |До завершения обработки ""Способ отображения подсказки"" в данном справочнике будет отображаться некорректно.'"); + |До завершения обработки ""Способ отображения подсказки"" в данном справочнике будет отображаться некорректно.'"); Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ВопросыШаблонаАнкеты.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ЧитаемыеОбъекты = "Справочник.ВопросыШаблонаАнкеты"; - Обработчик.ИзменяемыеОбъекты = "Справочник.ВопросыШаблонаАнкеты"; + Обработчик.ИзменяемыеОбъекты = "Справочник.ВопросыШаблонаАнкеты"; Обработчик.БлокируемыеОбъекты = "Справочник.ВопросыШаблонаАнкеты"; - + Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.4.4.69"; + Обработчик.Версия = "3.1.9.6"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("a1581723-c1f5-4b90-b716-a180a4d5a4ad"); Обработчик.Процедура = "ПланыВидовХарактеристик.ВопросыДляАнкетирования.ОбработатьДанныеДляПереходаНаНовуюВерсию"; - Обработчик.Комментарий = НСтр("ru = 'Заполнение значений нового реквизита ""Вид"" в вопросах для анкетирования. - |До завершения обработки вид вопросов для анкетирования будет отображаться некорректно.'"); + Обработчик.Комментарий = НСтр("ru = 'Заполнение значений новых реквизитов ""Вид"", ""Использовать минимальное значение"", ""Использовать максимальное значение"" в вопросах для анкетирования. + |До завершения обработки вид вопросов для анкетирования будет отображаться некорректно.'"); Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "ПланыВидовХарактеристик.ВопросыДляАнкетирования.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ЧитаемыеОбъекты = "ПланВидовХарактеристик.ВопросыДляАнкетирования"; Обработчик.ИзменяемыеОбъекты = "ПланВидовХарактеристик.ВопросыДляАнкетирования"; Обработчик.БлокируемыеОбъекты = "ПланВидовХарактеристик.ВопросыДляАнкетирования"; - + КонецПроцедуры // См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. @@ -98,9 +98,9 @@ // См. РассылкаОтчетовПереопределяемый.ОпределитьИсключаемыеОтчеты Процедура ПриОпределенииИсключаемыхОтчетов(ИсключаемыеОтчеты) Экспорт - + ИсключаемыеОтчеты.Добавить(Метаданные.Отчеты.АнализОпроса); - + КонецПроцедуры #КонецОбласти @@ -120,44 +120,45 @@ // ИмяТаблицыПревью - Строка // Ключ - Строка // -Процедура ОбновитьПревьюТабличныйВопрос(Вопросы,Ответы,ТипТабличногоВопроса,Форма,ИмяТаблицыПревью,Ключ) Экспорт - - ИмяКолонкиБезНомера = "ПревьюТаблицаКолонка_" + СтрЗаменить(Строка(Ключ),"-","_") + "_"; - ОписаниеТиповСтрока = Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(70)); - +Процедура ОбновитьПревьюТабличныйВопрос(Вопросы, Ответы, ТипТабличногоВопроса, Форма, ИмяТаблицыПревью, Ключ) Экспорт + + ИмяКолонкиБезНомера = "ПревьюТаблицаКолонка_" + СтрЗаменить(Строка(Ключ), "-", "_") + "_"; + ОписаниеТиповСтрока = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(70)); + РезультирующаяТаблицаСервер = Форма.РеквизитФормыВЗначение(ИмяТаблицыПревью); // ТаблицаЗначений РезультирующаяТаблицаСервер.Колонки.Очистить(); - + УдаляемыеРеквизиты = Новый Массив; УдаляемыеЭлементыФормы = Новый Массив; МассивТекущихКолонокРезультирующейТаблицы = Форма.ПолучитьРеквизиты(ИмяТаблицыПревью); - Для каждого ЭлементМассива Из МассивТекущихКолонокРезультирующейТаблицы Цикл + Для Каждого ЭлементМассива Из МассивТекущихКолонокРезультирующейТаблицы Цикл УдаляемыеРеквизиты.Добавить(ЭлементМассива.Путь + "." + ЭлементМассива.Имя); УдаляемыеЭлементыФормы.Добавить(ЭлементМассива.Имя); КонецЦикла; - - Для каждого ЭлементМассива Из УдаляемыеЭлементыФормы Цикл + + Для Каждого ЭлементМассива Из УдаляемыеЭлементыФормы Цикл НайденныйЭлементФормы = Форма.Элементы.Найти(ЭлементМассива); - Если НайденныйЭлементФормы <> Неопределено Тогда + Если НайденныйЭлементФормы <> Неопределено Тогда Форма.Элементы.Удалить(НайденныйЭлементФормы); КонецЕсли; КонецЦикла; - + ДобавляемыеРеквизиты = Новый Массив; СчетчикКолонок = 0; - + МассивВопросы = Вопросы.ВыгрузитьКолонку("ЭлементарныйВопрос"); - + Если Вопросы.Колонки.Найти("НомерСтроки") = Неопределено Тогда - Вопросы.Колонки.Добавить("НомерСтроки",Новый ОписаниеТипов("Число")); + Вопросы.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число")); КонецЕсли; - - Для инд = 0 По Вопросы.Количество()- 1 Цикл + + Для инд = 0 По Вопросы.Количество() - 1 Цикл Вопросы.Получить(инд).НомерСтроки = инд; КонецЦикла; - + Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ + Запрос.Текст = + "ВЫБРАТЬ | Вопросы.ЭлементарныйВопрос КАК Вопрос, | Вопросы.НомерСтроки |ПОМЕСТИТЬ Вопросы @@ -178,131 +179,143 @@ | |УПОРЯДОЧИТЬ ПО | Вопросы.НомерСтроки"; - - Запрос.УстановитьПараметр("Вопросы",Вопросы); + + Запрос.УстановитьПараметр("Вопросы", Вопросы); Результат = Запрос.Выполнить(); - Если Результат.Пустой() Тогда + Если Результат.Пустой() Тогда Возврат; КонецЕсли; - - Если ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной Тогда - + + Если ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной Тогда + ВыборкаВопросы = Результат.Выбрать(); Пока ВыборкаВопросы.Следующий() Цикл - + СчетчикКолонок = СчетчикКолонок + 1; - РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + XMLСтрока(СчетчикКолонок),ВыборкаВопросы.ТипЗначения,ВыборкаВопросы.Формулировка); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(СчетчикКолонок),ВыборкаВопросы.ТипЗначения,ИмяТаблицыПревью)); - - КонецЦикла; - - ИначеЕсли ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках Тогда - - ВыборкаВопросы = Результат.Выбрать(); - Пока ВыборкаВопросы.Следующий() Цикл - - СчетчикКолонок = СчетчикКолонок + 1; - РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + XMLСтрока(СчетчикКолонок),ВыборкаВопросы.ТипЗначения,ВыборкаВопросы.Формулировка); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(СчетчикКолонок),ВыборкаВопросы.ТипЗначения,ИмяТаблицыПревью)); - + РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + XMLСтрока(СчетчикКолонок), + ВыборкаВопросы.ТипЗначения, ВыборкаВопросы.Формулировка); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(СчетчикКолонок), + ВыборкаВопросы.ТипЗначения, ИмяТаблицыПревью)); + КонецЦикла; - + + ИначеЕсли ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках Тогда + + ВыборкаВопросы = Результат.Выбрать(); + Пока ВыборкаВопросы.Следующий() Цикл + + СчетчикКолонок = СчетчикКолонок + 1; + РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + XMLСтрока(СчетчикКолонок), + ВыборкаВопросы.ТипЗначения, ВыборкаВопросы.Формулировка); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(СчетчикКолонок), + ВыборкаВопросы.ТипЗначения, ИмяТаблицыПревью)); + + КонецЦикла; + Для инд = 1 По Ответы.Количество() Цикл - + НоваяСтрока = РезультирующаяТаблицаСервер.Добавить(); НоваяСтрока[0] = Ответы[инд - 1].Ответ; - + КонецЦикла; - + ИначеЕсли ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках Тогда - + ВыборкаВопросы = Результат.Выбрать(); Если ВыборкаВопросы.Следующий() Тогда - + СчетчикКолонок = СчетчикКолонок + 1; - РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + "1",ОписаниеТиповСтрока,ВыборкаВопросы.Формулировка); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + "1",ОписаниеТиповСтрока,ИмяТаблицыПревью)); - + РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + "1", ОписаниеТиповСтрока, + ВыборкаВопросы.Формулировка); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + "1", ОписаниеТиповСтрока, + ИмяТаблицыПревью)); + КонецЕсли; - + Для инд = 1 По Ответы.Количество() Цикл - - РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + XMLСтрока(инд + 1),ОписаниеТиповСтрока,Ответы[инд-1].Ответ); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(инд + 1),ОписаниеТиповСтрока,ИмяТаблицыПревью)); - + + РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + XMLСтрока(инд + 1), ОписаниеТиповСтрока, + Ответы[инд - 1].Ответ); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(инд + 1), + ОписаниеТиповСтрока, ИмяТаблицыПревью)); + КонецЦикла; - + Пока ВыборкаВопросы.Следующий() Цикл - + НоваяСтрока = РезультирующаяТаблицаСервер.Добавить(); НоваяСтрока[0] = ВыборкаВопросы.Формулировка; - + КонецЦикла; - + ИначеЕсли ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках Тогда - + ТаблицаВопросы = Результат.Выгрузить(); - - РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + "1",ТаблицаВопросы[0].ТипЗначения,ТаблицаВопросы[0].Формулировка); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + "1",ТаблицаВопросы[0].ТипЗначения,ИмяТаблицыПревью)); - - ОтветыВКолонках = Ответы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос",МассивВопросы[1])); + + РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + "1", ТаблицаВопросы[0].ТипЗначения, + ТаблицаВопросы[0].Формулировка); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + "1", ТаблицаВопросы[0].ТипЗначения, + ИмяТаблицыПревью)); + + ОтветыВКолонках = Ответы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", МассивВопросы[1])); Для инд = 1 По ОтветыВКолонках.Количество() Цикл - - РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + XMLСтрока(инд + 1),ТаблицаВопросы[2].ТипЗначения,ОтветыВКолонках[инд-1].Ответ); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(инд + 1),ТаблицаВопросы[2].ТипЗначения,ИмяТаблицыПревью)); - + + РезультирующаяТаблицаСервер.Колонки.Добавить(ИмяКолонкиБезНомера + XMLСтрока(инд + 1), + ТаблицаВопросы[2].ТипЗначения, ОтветыВКолонках[инд - 1].Ответ); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(инд + 1), + ТаблицаВопросы[2].ТипЗначения, ИмяТаблицыПревью)); + КонецЦикла; - - ОтветыВСтроках = Ответы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос",МассивВопросы[0])); + + ОтветыВСтроках = Ответы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", МассивВопросы[0])); Для инд = 1 По ОтветыВСтроках.Количество() Цикл - + НоваяСтрока = РезультирующаяТаблицаСервер.Добавить(); НоваяСтрока[0] = ОтветыВСтроках[инд - 1].Ответ; - + КонецЦикла; - + КонецЕсли; - - Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты,УдаляемыеРеквизиты); - Форма.ЗначениеВРеквизитФормы(РезультирующаяТаблицаСервер,ИмяТаблицыПревью); - + + Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты, УдаляемыеРеквизиты); + Форма.ЗначениеВРеквизитФормы(РезультирующаяТаблицаСервер, ИмяТаблицыПревью); + Для инд = 1 По ДобавляемыеРеквизиты.Количество() Цикл - - Элемент = Форма.Элементы.Добавить(ИмяКолонкиБезНомера + XMLСтрока(инд), Тип("ПолеФормы"), Форма.Элементы[ИмяТаблицыПревью]); - Если ДобавляемыеРеквизиты[инд-1].ТипЗначения = Новый ОписаниеТипов("Булево") Тогда + + Элемент = Форма.Элементы.Добавить(ИмяКолонкиБезНомера + XMLСтрока(инд), Тип("ПолеФормы"), + Форма.Элементы[ИмяТаблицыПревью]); + Если ДобавляемыеРеквизиты[инд - 1].ТипЗначения = Новый ОписаниеТипов("Булево") Тогда Элемент.Вид = ВидПоляФормы.ПолеФлажка; Иначе Элемент.Вид = ВидПоляФормы.ПолеВвода; КонецЕсли; - + Элемент.ПутьКДанным = ИмяТаблицыПревью + "." + ИмяКолонкиБезНомера + XMLСтрока(инд); - Если (ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной - Или ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках) - Или (инд > 1) Тогда - + Если (ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной Или ТипТабличногоВопроса + = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках) Или (инд > 1) Тогда + Элемент.Заголовок = РезультирующаяТаблицаСервер.Колонки.Получить(инд - 1).Заголовок; Иначе Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; КонецЕсли; - + КонецЦикла; - + КонецПроцедуры // Процедура устанавливает корневой элемент в дерево шаблона анкеты. // Вызывается при создании форм, в которых отражается шаблон анкеты. // Процедура УстановитьКорневойЭлементДереваАнкеты(ДеревоАнкеты) Экспорт - + ЭлементыДерева = ДеревоАнкеты.ПолучитьЭлементы(); // КоллекцияСтрокДереваЗначений НоваяСтрока = ЭлементыДерева.Добавить(); - + НоваяСтрока.Формулировка = НСтр("ru = 'Анкета'"); НоваяСтрока.ТипСтроки = "Корень"; НоваяСтрока.КодКартинки = АнкетированиеКлиентСервер.ПолучитьКодКартинкиШаблонаАнкеты(Ложь); - + КонецПроцедуры // Устанавливает для дерева разделов элементы вступление и заключение. @@ -313,14 +326,14 @@ // ТипСтроки - Строка - тип элемента дерева - либо "вступление", либо "заключение". // Процедура УстановитьЭлементДереваРазделовАнкетыВступлениеЗаключение(ДеревоАнкеты, Формулировка, ТипСтроки) Экспорт - + ЭлементыДерева = ДеревоАнкеты.ПолучитьЭлементы(); НоваяСтрока = ЭлементыДерева.Добавить(); - + НоваяСтрока.Формулировка = Формулировка; НоваяСтрока.ТипСтроки = ТипСтроки; НоваяСтрока.КодКартинки = АнкетированиеКлиентСервер.ПолучитьКодКартинкиШаблонаАнкеты(Ложь); - + КонецПроцедуры // Заполняет дерево шаблона анкеты. @@ -333,26 +346,26 @@ // ЗаполнятьСтраницыПревью - Булево - признак, необходимо ли формировать таблицы превью табличных вопросов. // Процедура ЗаполнитьДеревоШаблонаАнкеты(Форма, ИмяДереваАнкеты, ШаблонАнкеты) Экспорт - + Если ШаблонАнкеты = Справочники.ШаблоныАнкет.ПустаяСсылка() Тогда Возврат; КонецЕсли; - + Результат = ВыполнитьЗапросПоВопросамШаблонаАнкеты(ШаблонАнкеты); Если Результат.Пустой() Тогда Возврат; КонецЕсли; - + ДеревоАнкетыСервер = Форма.РеквизитФормыВЗначение(ИмяДереваАнкеты); - + Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); - + Если Выборка.Количество() > 0 Тогда - ДобавитьСтрокиДереваАнкеты(Выборка,ДеревоАнкетыСервер.Строки[0],1,Форма); + ДобавитьСтрокиДереваАнкеты(Выборка, ДеревоАнкетыСервер.Строки[0], 1, Форма); КонецЕсли; - - Форма.ЗначениеВРеквизитФормы(ДеревоАнкетыСервер,ИмяДереваАнкеты); - + + Форма.ЗначениеВРеквизитФормы(ДеревоАнкетыСервер, ИмяДереваАнкеты); + КонецПроцедуры // Вызывается рекурсивно и добавляет строки в дерево анкеты. @@ -362,39 +375,44 @@ // СтрокаРодитель - СтрокаДереваЗначений - родительская строка дерева значений: // * Наименование - Строка // -Процедура ДобавитьСтрокиДереваАнкеты(Выборка,СтрокаРодитель, УровеньРекурсии, Форма) - +Процедура ДобавитьСтрокиДереваАнкеты(Выборка, СтрокаРодитель, УровеньРекурсии, Форма) + Пока Выборка.Следующий() Цикл - + Если Не ЗначениеЗаполнено(Выборка.РодительВопрос) Тогда НоваяСтрока = СтрокаРодитель.Строки.Добавить(); Иначе - СтрокаРодительПодчиненногоВопроса = СтрокаРодитель.Строки.Найти(Выборка.РодительВопрос,"ВопросШаблона"); + СтрокаРодительПодчиненногоВопроса = СтрокаРодитель.Строки.Найти(Выборка.РодительВопрос, "ВопросШаблона"); Если СтрокаРодительПодчиненногоВопроса <> Неопределено Тогда НоваяСтрока = СтрокаРодительПодчиненногоВопроса.Строки.Добавить(); КонецЕсли; КонецЕсли; - + НоваяСтрока.ВопросШаблона = Выборка.ВопросШаблона; - НоваяСтрока.КодКартинки = АнкетированиеКлиентСервер.ПолучитьКодКартинкиШаблонаАнкеты(Выборка.ЭтоРаздел,Выборка.ТипВопроса); + НоваяСтрока.КодКартинки = АнкетированиеКлиентСервер.ПолучитьКодКартинкиШаблонаАнкеты( + Выборка.ЭтоРаздел, Выборка.ТипВопроса); НоваяСтрока.ТипВопроса = Выборка.ТипВопроса; НоваяСтрока.ТипТабличногоВопроса = Выборка.ТипТабличногоВопроса; НоваяСтрока.Подсказка = Выборка.Подсказка; НоваяСтрока.СпособОтображенияПодсказки = Выборка.СпособОтображенияПодсказки; - - НоваяСтрока.ТипСтроки = ?(Выборка.ЭтоРаздел,"Раздел","Вопрос"); + НоваяСтрока.ИспользоватьОтказОтОтвета = Выборка.ИспользоватьОтказОтОтвета; + НоваяСтрока.ФормулировкаОтказаОтОтвета = Выборка.ФормулировкаОтказаОтОтвета; + + НоваяСтрока.ТипСтроки = ?(Выборка.ЭтоРаздел, "Раздел", "Вопрос"); Если Форма.ИмяФормы = "Справочник.ШаблоныАнкет.Форма.ФормаЭлемента" Тогда - НоваяСтрока.ЭлементарныйВопрос = ?(Выборка.ЭтоРаздел,Выборка.Наименование,?(Выборка.ТипВопроса <> Перечисления.ТипыВопросовШаблонаАнкеты.Табличный,Выборка.ЭлементарныйВопрос,Выборка.Формулировка)); - НоваяСтрока.Обязательный = ?(Выборка.ЭтоРаздел,Неопределено,?(Выборка.ТипВопроса <> Перечисления.ТипыВопросовШаблонаАнкеты.Табличный,Выборка.Обязательный,Неопределено)); - НоваяСтрока.Формулировка = ?(Выборка.ЭтоРаздел,Выборка.Наименование,Выборка.Формулировка); + НоваяСтрока.ЭлементарныйВопрос = ?(Выборка.ЭтоРаздел, Выборка.Наименование, ?(Выборка.ТипВопроса + <> Перечисления.ТипыВопросовШаблонаАнкеты.Табличный, Выборка.ЭлементарныйВопрос, Выборка.Формулировка)); + НоваяСтрока.Обязательный = ?(Выборка.ЭтоРаздел, Неопределено, ?(Выборка.ТипВопроса + <> Перечисления.ТипыВопросовШаблонаАнкеты.Табличный, Выборка.Обязательный, Неопределено)); + НоваяСтрока.Формулировка = ?(Выборка.ЭтоРаздел, Выборка.Наименование, Выборка.Формулировка); НоваяСтрока.Заметки = Выборка.Заметки; НоваяСтрока.ЕстьЗаметки = Не ПустаяСтрока(Выборка.Заметки); - Иначе + Иначе НоваяСтрока.Формулировка = Выборка.Формулировка; НоваяСтрока.ЭлементарныйВопрос = Выборка.ЭлементарныйВопрос; НоваяСтрока.Обязательный = Выборка.Обязательный; - КонецЕсли; - + КонецЕсли; + НоваяСтрока.Наименование = Выборка.Наименование; НоваяСтрока.ТипОтвета = Выборка.ТипОтвета; НоваяСтрока.СоставТабличногоВопроса = Выборка.СоставТабличногоВопроса.Выгрузить(); @@ -403,22 +421,26 @@ НоваяСтрока.ПредопределенныеОтветы.Сортировать("НомерСтроки Возр"); НоваяСтрока.СоставКомплексногоВопроса = Выборка.СоставКомплексногоВопроса.Выгрузить(); НоваяСтрока.СоставТабличногоВопроса.Сортировать("НомерСтроки Возр"); + НоваяСтрока.ДиапазонПодсказокЧисловогоВопроса = Выборка.ДиапазонПодсказокЧисловогоВопроса.Выгрузить(); + НоваяСтрока.ДиапазонПодсказокЧисловогоВопроса.Сортировать("НомерСтроки Убыв"); НоваяСтрока.КлючСтроки = Новый УникальныйИдентификатор; НоваяСтрока.Длина = Выборка.Длина; НоваяСтрока.МинимальноеЗначение = Выборка.МинимальноеЗначение; НоваяСтрока.МаксимальноеЗначение = Выборка.МаксимальноеЗначение; + НоваяСтрока.ИспользоватьМинимальноеЗначение = Выборка.ИспользоватьМинимальноеЗначение; + НоваяСтрока.ИспользоватьМаксимальноеЗначение = Выборка.ИспользоватьМаксимальноеЗначение; НоваяСтрока.ТребуетсяКомментарий = Выборка.ТребуетсяКомментарий; НоваяСтрока.ПояснениеКомментария = Выборка.ПояснениеКомментария; - НоваяСтрока.ТипЗначения = ?(Выборка.ТипЗначения = NULL,Неопределено,Выборка.ТипЗначения); + НоваяСтрока.ТипЗначения = ?(Выборка.ТипЗначения = Null, Неопределено, Выборка.ТипЗначения); НоваяСтрока.Точность = Выборка.Точность; - + ПодчиненнаяВыборка = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Если ПодчиненнаяВыборка.Количество() > 0 Тогда - ДобавитьСтрокиДереваАнкеты(ПодчиненнаяВыборка,НоваяСтрока,УровеньРекурсии + 1,Форма); + ДобавитьСтрокиДереваАнкеты(ПодчиненнаяВыборка, НоваяСтрока, УровеньРекурсии + 1, Форма); КонецЕсли; - + КонецЦикла; - + КонецПроцедуры // Выполняет запрос по шаблона анкеты, для формирования дерева анкеты в формах. @@ -430,9 +452,10 @@ // РезультатЗапроса - результат запроса по шаблону анкеты. // Функция ВыполнитьЗапросПоВопросамШаблонаАнкеты(ШаблонАнкеты) - + Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ + Запрос.Текст = + "ВЫБРАТЬ | ВопросыШаблонаАнкеты.Ссылка КАК ВопросШаблона, | ВопросыШаблонаАнкеты.Родитель КАК Родитель, | ВопросыШаблонаАнкеты.Наименование КАК Наименование, @@ -446,42 +469,51 @@ | ВопросыШаблонаАнкеты.СпособОтображенияПодсказки КАК СпособОтображенияПодсказки, | ВопросыШаблонаАнкеты.СоставТабличногоВопроса.( | НомерСтроки КАК НомерСтроки, - | ЭлементарныйВопрос - | ), + | ЭлементарныйВопрос КАК ЭлементарныйВопрос + | ) КАК СоставТабличногоВопроса, | ВопросыШаблонаАнкеты.ПредопределенныеОтветы.( | НомерСтроки КАК НомерСтроки, - | ЭлементарныйВопрос, - | Ответ - | ), + | ЭлементарныйВопрос КАК ЭлементарныйВопрос, + | Ответ КАК Ответ + | ) КАК ПредопределенныеОтветы, | ВопросыШаблонаАнкеты.СоставКомплексногоВопроса.( | НомерСтроки КАК НомерСтроки, - | ЭлементарныйВопрос - | ), + | ЭлементарныйВопрос КАК ЭлементарныйВопрос + | ) КАК СоставКомплексногоВопроса, | ЕСТЬNULL(ВопросыДляАнкетирования.Длина, 0) КАК Длина, | ВопросыДляАнкетирования.ТипЗначения КАК ТипЗначения, | ЕСТЬNULL(ВопросыДляАнкетирования.ТребуетсяКомментарий, ЛОЖЬ) КАК ТребуетсяКомментарий, | ЕСТЬNULL(ВопросыДляАнкетирования.ПояснениеКомментария, """") КАК ПояснениеКомментария, | ЕСТЬNULL(ВопросыДляАнкетирования.МинимальноеЗначение, 0) КАК МинимальноеЗначение, | ЕСТЬNULL(ВопросыДляАнкетирования.МаксимальноеЗначение, 0) КАК МаксимальноеЗначение, + | ЕСТЬNULL(ВопросыДляАнкетирования.ИспользоватьМинимальноеЗначение, ЛОЖЬ) КАК ИспользоватьМинимальноеЗначение, + | ЕСТЬNULL(ВопросыДляАнкетирования.ИспользоватьМаксимальноеЗначение, ЛОЖЬ) КАК ИспользоватьМаксимальноеЗначение, | ЕСТЬNULL(ВопросыДляАнкетирования.ТипОтвета, ЗНАЧЕНИЕ(Перечисление.ТипыОтветовНаВопрос.ПустаяСсылка)) КАК ТипОтвета, | ЕСТЬNULL(ВопросыШаблонаАнкеты.Формулировка, """") КАК Формулировка, | ЕСТЬNULL(ВопросыДляАнкетирования.Точность, 0) КАК Точность, - | ВопросыШаблонаАнкеты.Заметки + | ВопросыШаблонаАнкеты.Заметки КАК Заметки, + | ВопросыШаблонаАнкеты.ИспользоватьОтказОтОтвета КАК ИспользоватьОтказОтОтвета, + | ВопросыШаблонаАнкеты.ФормулировкаОтказаОтОтвета КАК ФормулировкаОтказаОтОтвета, + | ВопросыДляАнкетирования.ДиапазонПодсказокЧисловогоВопроса.( + | ЗначениеДо КАК ЗначениеДо, + | Подсказка КАК Подсказка, + | НомерСтроки КАК НомерСтроки + | ) КАК ДиапазонПодсказокЧисловогоВопроса |ИЗ | Справочник.ВопросыШаблонаАнкеты КАК ВопросыШаблонаАнкеты | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ВопросыДляАнкетирования КАК ВопросыДляАнкетирования | ПО ВопросыШаблонаАнкеты.ЭлементарныйВопрос = ВопросыДляАнкетирования.Ссылка |ГДЕ - | (НЕ ВопросыШаблонаАнкеты.ПометкаУдаления) + | НЕ ВопросыШаблонаАнкеты.ПометкаУдаления | И ВопросыШаблонаАнкеты.Владелец = &Владелец | |УПОРЯДОЧИТЬ ПО | ВопросыШаблонаАнкеты.Ссылка ИЕРАРХИЯ"; - - Запрос.УстановитьПараметр("Владелец",ШаблонАнкеты); - + + Запрос.УстановитьПараметр("Владелец", ШаблонАнкеты); + Возврат Запрос.Выполнить(); - + КонецФункции //////////////////////////////////////////////////////////////////////////////// @@ -496,52 +528,55 @@ // * Ссылка - СправочникСсылка.ВопросыШаблонаАнкеты // Процедура ПостроениеФормыЗаполненияПоРазделу(Форма, ТекущиеДанныеДеревоРазделов) Экспорт - + ДобавляемыеРеквизиты = Новый Массив; Форма.ТаблицаВопросовРаздела.Очистить(); - + ЭлементНадписьВступление = Форма.Элементы.НадписьВступление; //ПолеФормы Если ТекущиеДанныеДеревоРазделов.ТипСтроки = "Раздел" Тогда - + ЭлементНадписьВступление.Заголовок = НСтр("ru = 'Раздел'") + " " + ТекущиеДанныеДеревоРазделов.Формулировка; ЭлементНадписьВступление.ЦветТекста = ЦветаСтиля.ЦветРазделаПанелиФункций; ЭлементНадписьВступление.Шрифт = ШрифтыСтиля.КрупныйШрифтТекста; - + Раздел = ТекущиеДанныеДеревоРазделов.Ссылка; ПолныйКодРаздела = ТекущиеДанныеДеревоРазделов.ПолныйКод; // получение вопросов раздела Форма.ТаблицаВопросовРаздела.Очистить(); - ПолучитьИнформациюПоВопросамАнкеты(Форма,Форма.ШаблонАнкеты,Раздел,ПолныйКодРаздела); - СформироватьДобавляемыеРеквизитыДляРаздела(ДобавляемыеРеквизиты,Форма); - + ПолучитьИнформациюПоВопросамАнкеты(Форма, Форма.ШаблонАнкеты, Раздел, ПолныйКодРаздела); + СформироватьДобавляемыеРеквизитыДляРаздела(ДобавляемыеРеквизиты, Форма); + Иначе - - Вступление = ?(ПустаяСтрока(Форма.Вступление), НСтр("ru = 'Нажмите далее для заполнения анкеты.'"), Форма.Вступление); - Заключение = ?(ПустаяСтрока(Форма.Заключение), НСтр("ru = 'Спасибо за то что заполнили анкету.'"), Форма.Заключение); - - ЭлементНадписьВступление.Заголовок = ?(ТекущиеДанныеДеревоРазделов.ТипСтроки = "Вступление", Вступление, Заключение); + + Вступление = ?(ПустаяСтрока(Форма.Вступление), НСтр("ru = 'Нажмите далее для заполнения анкеты.'"), + Форма.Вступление); + Заключение = ?(ПустаяСтрока(Форма.Заключение), НСтр("ru = 'Спасибо за то что заполнили анкету.'"), + Форма.Заключение); + + ЭлементНадписьВступление.Заголовок = ?(ТекущиеДанныеДеревоРазделов.ТипСтроки = "Вступление", Вступление, + Заключение); ЭлементНадписьВступление.ЦветТекста = ЦветаСтиля.ЦветТекстаПоля; - ЭлементНадписьВступление.Шрифт = ШрифтыСтиля.МелкийШрифтТекста; - + ЭлементНадписьВступление.Шрифт = ШрифтыСтиля.КрупныйШрифтТекста; + КонецЕсли; - - Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты,Форма.ДобавленныеДинамическиРеквизиты.ВыгрузитьЗначения()); + + Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты, Форма.ДобавленныеДинамическиРеквизиты.ВыгрузитьЗначения()); // Удаление ранее динамически сформированных элементов формы. - УдалитьЭлементыФормыЗаполнения(Форма,Форма.ДобавленныеДинамическиРеквизиты); + УдалитьЭлементыФормыЗаполнения(Форма, Форма.ДобавленныеДинамическиРеквизиты); Форма.ДобавленныеДинамическиРеквизиты.Очистить(); - Для каждого ДобавленныйРеквизит Из ДобавляемыеРеквизиты Цикл + Для Каждого ДобавленныйРеквизит Из ДобавляемыеРеквизиты Цикл Если ПустаяСтрока(ДобавленныйРеквизит.Путь) Тогда Форма.ДобавленныеДинамическиРеквизиты.Добавить(ДобавленныйРеквизит.Имя); КонецЕсли; КонецЦикла; - + Если ТекущиеДанныеДеревоРазделов.ТипСтроки = "Раздел" Тогда // добавление элементов формы СформироватьЭлементыФормыДляРаздела(Форма); КонецЕсли; - + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -553,14 +588,14 @@ // ДобавляемыеРеквизиты - Массив - предназначен для аккумулирования создаваемых реквизитов формы. // Форма - ФормаКлиентскогоПриложения - форма, для которой формируется массив реквизитов. // -Процедура СформироватьДобавляемыеРеквизитыДляРаздела(ДобавляемыеРеквизиты, Форма) - - Для каждого Строка Из Форма.ТаблицаВопросовРаздела Цикл - - ДобавитьРеквизитыДляВопроса(Строка,ДобавляемыеРеквизиты,Форма); - +Процедура СформироватьДобавляемыеРеквизитыДляРаздела(ДобавляемыеРеквизиты, Форма) + + Для Каждого Строка Из Форма.ТаблицаВопросовРаздела Цикл + + ДобавитьРеквизитыДляВопроса(Строка, ДобавляемыеРеквизиты, Форма); + КонецЦикла; - + КонецПроцедуры // Добавляет реквизиты формы для простых вопросов. @@ -570,62 +605,95 @@ // ДобавляемыеРеквизиты - Массив - предназначен для аккумулирования добавляемых реквизитов формы. // Процедура ДобавитьРеквизитыДляВопроса(СтрокаДерева, ДобавляемыеРеквизиты, Форма) - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); - + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); + ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка"); ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Формулировка", ОписаниеТипаСтроки)); - + Если СтрокаДерева.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Табличный Тогда - ДобавитьРеквизитыТабличныйВопрос(СтрокаДерева,ДобавляемыеРеквизиты,Форма); + ДобавитьРеквизитыТабличныйВопрос(СтрокаДерева, ДобавляемыеРеквизиты, Форма); ИначеЕсли СтрокаДерева.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Комплексный Тогда ДобавитьРеквизитыКомплексныйВопрос(СтрокаДерева, ДобавляемыеРеквизиты, Форма); Иначе - - Если СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка - Или СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда - - ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(СтрокаДерева.Длина)); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса, ОписаниеТипаСтроки,, СтрокаДерева.Формулировка)); - + + Если СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка Или СтрокаДерева.ТипОтвета + = Перечисления.ТипыОтветовНаВопрос.Текст Тогда + + ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(СтрокаДерева.Длина)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса, ОписаниеТипаСтроки, , + СтрокаДерева.Формулировка)); + ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Булево Тогда ОписаниеТипаБулево = Новый ОписаниеТипов("Булево"); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаБулево,, СтрокаДерева.Формулировка)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса, ОписаниеТипаБулево, , + СтрокаДерева.Формулировка)); ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Дата Тогда ОписаниеТипаДата = Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата)); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаДата,, СтрокаДерева.Формулировка)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса, ОписаниеТипаДата, , + СтрокаДерева.Формулировка)); ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Число Тогда - ОписаниеТипаЧисло = Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(СтрокаДерева.Длина, СтрокаДерева.Точность)); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаЧисло,, СтрокаДерева.Формулировка)); - ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ЗначениеИнформационнойБазы - Или СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,СтрокаДерева.ТипЗначения,, СтрокаДерева.Формулировка)); - ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос,Форма); - ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(150)); - ОписаниеТипаБулево = Новый ОписаниеТипов("Булево"); - + + ОписаниеТипаЧисло = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(СтрокаДерева.Длина, + СтрокаДерева.Точность)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса, ОписаниеТипаЧисло, , + СтрокаДерева.Формулировка)); + + Если СтрокаДерева.ПоказыватьПолосуРегулирования Тогда + ОписаниеТипаЧисло = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(15, 2)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_ПолосаРегулированияРеквизит", + ОписаниеТипаЧисло, , СтрокаДерева.Формулировка)); + КонецЕсли; + + ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ЗначениеИнформационнойБазы Тогда + + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса, СтрокаДерева.ТипЗначения, , + СтрокаДерева.Формулировка)); + + ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда + + ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос, Форма); Счетчик = 0; - - Для каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл Счетчик = Счетчик + 1; - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы( - ИмяВопроса + "_Реквизит_" + Счетчик, ОписаниеТипаБулево,, ВариантОтвета.Представление)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Реквизит_" + Счетчик, + СтрокаДерева.ТипЗначения, , СтрокаДерева.Формулировка)); + КонецЦикла; + + ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда + ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос, Форма); + ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150)); + ОписаниеТипаБулево = Новый ОписаниеТипов("Булево"); + + Счетчик = 0; + + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + Счетчик = Счетчик + 1; + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Реквизит_" + Счетчик, + ОписаниеТипаБулево, , ВариантОтвета.Представление)); Если ВариантОтвета.ТребуетОткрытогоОтвета Тогда - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Комментарий_" + Счетчик,ОписаниеТипаСтроки)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Комментарий_" + Счетчик, + ОписаниеТипаСтроки)); КонецЕсли; КонецЦикла; - + КонецЕсли; - - Если (СтрокаДерева.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз) И (СтрокаДерева.ТребуетсяКомментарий) Тогда - ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(150)); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы( - ИмяВопроса + "_Комментарий", ОписаниеТипаСтроки,, СтрокаДерева.ПояснениеКомментария)); + + Если (СтрокаДерева.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз) + И (СтрокаДерева.ТребуетсяКомментарий) Тогда + ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Комментарий", ОписаниеТипаСтроки, , + СтрокаДерева.ПояснениеКомментария)); КонецЕсли; - + + Если СтрокаДерева.ИспользоватьОтказОтОтвета Тогда + ОписаниеТипаБулево = Новый ОписаниеТипов("Булево"); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_ИспользоватьОтказОтОтвета", + ОписаниеТипаБулево, , СтрокаДерева.ФормулировкаОтказаОтОтвета)); + КонецЕсли; + КонецЕсли; - + КонецПроцедуры // Добавляет реквизиты формы для табличных вопросов. @@ -635,47 +703,51 @@ // ДобавляемыеРеквизиты - Массив - предназначен для аккумулирования добавляемых реквизитов формы. // Процедура ДобавитьРеквизитыТабличныйВопрос(СтрокаДерева, ДобавляемыеРеквизиты, Форма) - + ТипТабличногоВопроса = СтрокаДерева.ТипТабличногоВопроса; - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); ИмяТаблицы = ИмяВопроса + "_Таблица"; ИмяКолонкиБезНомера = ИмяТаблицы + "_Колонка_"; ОписаниеТиповПВХ = Метаданные.ПланыВидовХарактеристик.ВопросыДляАнкетирования.Тип; - - РеквизитТаблица = Новый РеквизитФормы(ИмяТаблицы ,Новый ОписаниеТипов("ТаблицаЗначений"),,СтрокаДерева.Формулировка); + + РеквизитТаблица = Новый РеквизитФормы(ИмяТаблицы, Новый ОписаниеТипов("ТаблицаЗначений"), , + СтрокаДерева.Формулировка); ДобавляемыеРеквизиты.Добавить(РеквизитТаблица); - - Если ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной - ИЛИ ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках Тогда - + + Если ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной Или ТипТабличногоВопроса + = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках Тогда + Для инд = 1 По СтрокаДерева.СоставТабличногоВопроса.Количество() Цикл - - НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос",СтрокаДерева.СоставТабличногоВопроса[инд-1].ЭлементарныйВопрос)); + + НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос", + СтрокаДерева.СоставТабличногоВопроса[инд - 1].ЭлементарныйВопрос)); Если НайденныеСтроки.Количество() > 0 Тогда ПредставлениеТипВопроса = НайденныеСтроки[0]; Иначе Продолжить; КонецЕсли; - + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(инд), - ПредставлениеТипВопроса.Тип,ИмяТаблицы,ПредставлениеТипВопроса.Формулировка)); - + ПредставлениеТипВопроса.Тип, ИмяТаблицы, ПредставлениеТипВопроса.Формулировка)); + КонецЦикла; - + ИначеЕсли ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках Тогда // Вопрос, ответы на который будут отображаться в колонках. ВопросДляКолонок = СтрокаДерева.СоставТабличногоВопроса[0].ЭлементарныйВопрос; // Добавим первую колонку в таблицу. - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + "1",Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ВопросыДляАнкетирования"),ИмяТаблицы)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + "1", + Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ВопросыДляАнкетирования"), ИмяТаблицы)); // Добавим остальные колонки - МассивОтветы = СтрокаДерева.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос",ВопросДляКолонок)); - Для инд=1 По МассивОтветы.Количество() Цикл - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(инд+1), - ОписаниеТиповПВХ, ИмяТаблицы, МассивОтветы[инд-1].Ответ)); + МассивОтветы = СтрокаДерева.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", + ВопросДляКолонок)); + Для инд = 1 По МассивОтветы.Количество() Цикл + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(инд + 1), + ОписаниеТиповПВХ, ИмяТаблицы, МассивОтветы[инд - 1].Ответ)); КонецЦикла; - + ИначеЕсли ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках Тогда // Вопрос, ответы на который будут отображаться в колонках. @@ -683,7 +755,7 @@ // Вопрос, который задает тип ячеек. ВопросДляЯчеек = СтрокаДерева.СоставТабличногоВопроса[2].ЭлементарныйВопрос; - НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос",ВопросДляЯчеек)); + НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос", ВопросДляЯчеек)); Если НайденныеСтроки.Количество() > 0 Тогда ПредставлениеТипВопросаДляЯчеек = НайденныеСтроки[0]; Иначе @@ -692,24 +764,26 @@ // Вопрос, ответы на который будут отображаться в строках первой колонки. ВопросДляСтрок = СтрокаДерева.СоставТабличногоВопроса[0].ЭлементарныйВопрос; - НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос",ВопросДляСтрок)); + НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос", ВопросДляСтрок)); Если НайденныеСтроки.Количество() > 0 Тогда ПредставлениеТипВопросаДляСтрок = НайденныеСтроки[0]; Иначе Возврат; КонецЕсли; // Добавим первую колонку в таблицу. - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + "1",ПредставлениеТипВопросаДляСтрок.Тип,ИмяТаблицы,ПредставлениеТипВопросаДляСтрок.Формулировка)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + "1", + ПредставлениеТипВопросаДляСтрок.Тип, ИмяТаблицы, ПредставлениеТипВопросаДляСтрок.Формулировка)); // Добавим остальные колонки - МассивОтветы = СтрокаДерева.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос",ВопросДляКолонок)); - Для инд=1 По МассивОтветы.Количество() Цикл - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(инд+1), - ПредставлениеТипВопросаДляЯчеек.Тип, ИмяТаблицы, МассивОтветы[инд-1].Ответ)); + МассивОтветы = СтрокаДерева.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", + ВопросДляКолонок)); + Для инд = 1 По МассивОтветы.Количество() Цикл + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКолонкиБезНомера + XMLСтрока(инд + 1), + ПредставлениеТипВопросаДляЯчеек.Тип, ИмяТаблицы, МассивОтветы[инд - 1].Ответ)); КонецЦикла; - + КонецЕсли; - + КонецПроцедуры // Добавляет реквизиты формы для комплексных вопросов. @@ -719,70 +793,74 @@ // ДобавляемыеРеквизиты - Массив - предназначен для аккумулирования добавляемых реквизитов формы. // Процедура ДобавитьРеквизитыКомплексныйВопрос(СтрокаДерева, ДобавляемыеРеквизиты, Форма) - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); - Для каждого СтрокаКомплексногоВопроса Из СтрокаДерева.СоставКомплексногоВопроса Цикл // СтрокаТабличнойЧасти: см. СправочникТабличнаяЧасть.ВопросыШаблонаАнкеты.СоставКомплексногоВопроса - - НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос",СтрокаКомплексногоВопроса.ЭлементарныйВопрос)); + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); + Для Каждого СтрокаКомплексногоВопроса Из СтрокаДерева.СоставКомплексногоВопроса Цикл // СтрокаТабличнойЧасти: см. СправочникТабличнаяЧасть.ВопросыШаблонаАнкеты.СоставКомплексногоВопроса + + НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос", + СтрокаКомплексногоВопроса.ЭлементарныйВопрос)); Если НайденныеСтроки.Количество() > 0 Тогда ПредставлениеТипВопроса = НайденныеСтроки[0]; Иначе Продолжить; КонецЕсли; - + Если ПредставлениеТипВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - - ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаКомплексногоВопроса.ЭлементарныйВопрос,Форма); - - ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(150)); + + ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаКомплексногоВопроса.ЭлементарныйВопрос, Форма); + + ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150)); ОписаниеТипаБулево = Новый ОписаниеТипов("Булево"); - + Счетчик = 0; - - Для каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл - + + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + Счетчик = Счетчик + 1; - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Ответ_" - + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Реквизит_" - + Счетчик,ОписаниеТипаБулево,,ВариантОтвета.Представление)); - + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Ответ_" + Формат( + СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Реквизит_" + Счетчик, ОписаниеТипаБулево, , + ВариантОтвета.Представление)); + Если ВариантОтвета.ТребуетОткрытогоОтвета Тогда - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Ответ_" - + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Комментарий_" + Счетчик,ОписаниеТипаСтроки)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Ответ_" + Формат( + СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Комментарий_" + Счетчик, ОписаниеТипаСтроки)); КонецЕсли; - + КонецЦикла; - + Иначе - - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Ответ_" - + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="), ПредставлениеТипВопроса.Тип,,ПредставлениеТипВопроса.Формулировка)); - + + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Ответ_" + Формат( + СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="), ПредставлениеТипВопроса.Тип, , + ПредставлениеТипВопроса.Формулировка)); + КонецЕсли; - - Если (ПредставлениеТипВопроса.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз) И (СтрокаКомплексногоВопроса.ТребуетсяКомментарий) Тогда - - ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(150)); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Комментарий_" - + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="),ОписаниеТипаСтроки,,СтрокаКомплексногоВопроса.ПояснениеКомментария)); - + + Если (ПредставлениеТипВопроса.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз) + И (СтрокаКомплексногоВопроса.ТребуетсяКомментарий) Тогда + + ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150)); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Комментарий_" + Формат( + СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="), ОписаниеТипаСтроки, , + СтрокаКомплексногоВопроса.ПояснениеКомментария)); + КонецЕсли; - + КонецЦикла; - + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// // Создание элементов формы заполнения анкеты. // Формирует элементы формы заполнения анкеты для выбранного раздела. -Процедура СформироватьЭлементыФормыДляРаздела(Форма) +Процедура СформироватьЭлементыФормыДляРаздела(Форма) - Для каждого СтрокаТаблицы Из Форма.ТаблицаВопросовРаздела Цикл - ДобавитьЭлементыФормыПоСтрокеТаблицы(СтрокаТаблицы,Форма.Элементы.ГруппаТелоАнкеты,Форма); + Для Каждого СтрокаТаблицы Из Форма.ТаблицаВопросовРаздела Цикл + ДобавитьЭлементыФормыПоСтрокеТаблицы(СтрокаТаблицы, Форма.Элементы.ГруппаТелоАнкеты, Форма); КонецЦикла; СпозиционироватьсяНаПервомВопросеРаздела(Форма); - + КонецПроцедуры // Устанавливает фокус на первом вопросе открывшегося раздела. @@ -791,28 +869,28 @@ // Форма - см. Документ.Анкета.Форма.ФормаДокумента // Процедура СпозиционироватьсяНаПервомВопросеРаздела(Форма) - + Если Форма.ТаблицаВопросовРаздела.Количество() > 0 Тогда - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(Форма.ТаблицаВопросовРаздела[0].КлючСтроки); - + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(Форма.ТаблицаВопросовРаздела[0].КлючСтроки); + НайденныйЭлемент = Форма.Элементы.Найти(ИмяВопроса); Если НайденныйЭлемент = Неопределено Тогда НайденныйЭлемент = Форма.Элементы.Найти(ИмяВопроса + "_Реквизит_1"); КонецЕсли; - + Если НайденныйЭлемент = Неопределено Тогда НайденныйЭлемент = Форма.Элементы.Найти(ИмяВопроса + "_Таблица"); КонецЕсли; - + Если НайденныйЭлемент <> Неопределено Тогда Форма.ТекущийЭлемент = НайденныйЭлемент; НайденныйЭлемент.АктивизироватьПоУмолчанию = Истина; Форма.ИмяЭлементаДляПозиционирования = НайденныйЭлемент.Имя; КонецЕсли; - + КонецЕсли; - + КонецПроцедуры // Анализирует тип строки дерева анкеты и вызывает соответствующую функцию для добавления элементов формы. @@ -840,15 +918,15 @@ // Форма - ФормаКлиентскогоПриложения - форма, для которой добавляются элементы. // Процедура ДобавитьЭлементыРаздел(СтрокаТаблицы, ЭлементГруппы, Форма) - + ИмяРаздела = "Раздел_" + СтрЗаменить(СтрокаТаблицы.КлючСтроки, "-", "_"); - + ЭлементРаздел = Форма.Элементы.Добавить(ИмяРаздела, Тип("ГруппаФормы"), ЭлементГруппы); ЭлементРаздел.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементРаздел.Заголовок = ПолныйКодНаименование(СтрокаТаблицы); ЭлементРаздел.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; ЭлементРаздел.РастягиватьПоВертикали = Ложь; - + КонецПроцедуры // Добавляет элементы формы для вопросов. @@ -859,33 +937,33 @@ // Форма - ФормаКлиентскогоПриложения - форма для которой добавляются элементы. // Процедура ДобавитьЭлементыВопрос(СтрокаТаблицы, ЭлементГруппа, Форма) - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаТаблицы.КлючСтроки); + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаТаблицы.КлючСтроки); // Зададим элемент группы для вопроса. ЭлементГруппаВопроса = Форма.Элементы.Добавить(ИмяВопроса + "_Группа", Тип("ГруппаФормы"), ЭлементГруппа); ЭлементГруппаВопроса.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементГруппаВопроса.ОтображатьЗаголовок = Ложь; - ЭлементГруппаВопроса.Отображение = ОтображениеОбычнойГруппы.Нет; + ЭлементГруппаВопроса.Отображение = ОтображениеОбычнойГруппы.ОбычноеВыделение; ЭлементГруппаВопроса.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; ЭлементГруппаВопроса.РастягиватьПоГоризонтали = Истина; ЭлементГруппаВопроса.РастягиватьПоВертикали = Ложь; - + Если СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Булево Тогда - + ЭлементГруппаВопросаБулево = Форма.Элементы.Добавить( - ИмяВопроса + "_Группа_Булево" ,Тип("ГруппаФормы"),ЭлементГруппаВопроса); + ИмяВопроса + "_Группа_Булево", Тип("ГруппаФормы"), ЭлементГруппаВопроса); ЭлементГруппаВопросаБулево.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементГруппаВопросаБулево.ОтображатьЗаголовок = Ложь; ЭлементГруппаВопросаБулево.Отображение = ОтображениеОбычнойГруппы.Нет; ЭлементГруппаВопросаБулево.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда; ЭлементГруппаВопросаБулево.РастягиватьПоГоризонтали = Истина; ЭлементГруппаВопросаБулево.РастягиватьПоВертикали = Ложь; - + КонецЕсли; - + Форма[ИмяВопроса + "_Формулировка"] = ПолныйКодНаименование(СтрокаТаблицы); - + Если СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Булево Тогда Элемент = Форма.Элементы.Добавить( ИмяВопроса + "_Формулировка", Тип("ДекорацияФормы"), ЭлементГруппаВопросаБулево); @@ -901,192 +979,298 @@ Элемент.РастягиватьПоГоризонтали = Ложь; Элемент.РастягиватьПоВертикали = Ложь; Элемент.Подсказка = СтрокаТаблицы.Подсказка; - + Элемент.Шрифт = ШрифтыСтиля.ВажнаяНадписьШрифт; + Если СтрокаТаблицы.СпособОтображенияПодсказки = Перечисления.СпособыОтображенияПодсказок.ЗнакВопросаСправа Тогда Элемент.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка; Иначе Элемент.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСнизу; КонецЕсли; - - ЭлементГруппаВопросКомментарий = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_Вопрос_Комментарий",Тип("ГруппаФормы"),ЭлементГруппаВопроса); + + ЭлементГруппаВопросКомментарий = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_Вопрос_Комментарий", Тип( + "ГруппаФормы"), ЭлементГруппаВопроса); ЭлементГруппаВопросКомментарий.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементГруппаВопросКомментарий.Отображение = ОтображениеОбычнойГруппы.Нет; ЭлементГруппаВопросКомментарий.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; ЭлементГруппаВопросКомментарий.ОтображатьЗаголовок = Ложь; - + Если СтрокаТаблицы.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Табличный Тогда - - ДобавитьЭлементыТабличныйВопрос(СтрокаТаблицы,ЭлементГруппаВопроса,Форма); - + + ДобавитьЭлементыТабличныйВопрос(СтрокаТаблицы, ЭлементГруппаВопроса, Форма); + ИначеЕсли СтрокаТаблицы.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Комплексный Тогда - - ДобавитьЭлементыКомплексныйВопрос(СтрокаТаблицы,ЭлементГруппаВопроса,Форма); - + + ДобавитьЭлементыКомплексныйВопрос(СтрокаТаблицы, ЭлементГруппаВопроса, Форма); + Иначе - + Если СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"), ЭлементГруппаВопросКомментарий); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса, Тип("ПолеФормы"), ЭлементГруппаВопросКомментарий); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный; Элемент.ПутьКДанным = ИмяВопроса; Элемент.АвтоМаксимальнаяШирина = Ложь; Элемент.РастягиватьПоГоризонтали = Ложь; - + ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"), ЭлементГруппаВопросКомментарий); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса, Тип("ПолеФормы"), ЭлементГруппаВопросКомментарий); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный; Элемент.ПутьКДанным = ИмяВопроса; Элемент.РастягиватьПоВертикали = Ложь; Элемент.АвтоМаксимальнаяШирина = Ложь; - УстановитьПараметрыЭлементаЯчейкаТекст(Элемент); - + УстановитьПараметрыЭлементаЯчейкаТекст(Элемент); + ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Булево Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"),ЭлементГруппаВопросаБулево); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса, Тип("ПолеФормы"), ЭлементГруппаВопросаБулево); Если СтрокаТаблицы.ВидФлажка = Перечисления.ВидыФлажкаВАнкетах.Флажок Тогда Элемент.Вид = ВидПоляФормы.ПолеФлажка; Иначе Элемент.Вид = ВидПоляФормы.ПолеВвода; КонецЕсли; - + Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; Элемент.ПутьКДанным = ИмяВопроса; - + ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Дата Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"),ЭлементГруппаВопросКомментарий); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса, Тип("ПолеФормы"), ЭлементГруппаВопросКомментарий); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный; Элемент.ПутьКДанным = ИмяВопроса; Элемент.АвтоМаксимальнаяШирина = Ложь; - + ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Число Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"),ЭлементГруппаВопросКомментарий); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса, Тип("ПолеФормы"), ЭлементГруппаВопросКомментарий); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; - Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный; - Элемент.МинимальноеЗначение = ?(СтрокаТаблицы.МинимальноеЗначение = 0,Неопределено,СтрокаТаблицы.МинимальноеЗначение); - Элемент.МаксимальноеЗначение = ?(СтрокаТаблицы.МаксимальноеЗначение = 0,Неопределено,СтрокаТаблицы.МаксимальноеЗначение); + Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный + И Не РазрешенВводНулевогоЗначенияВЧисловоеПоле(СтрокаТаблицы); + Элемент.МинимальноеЗначение = ?(СтрокаТаблицы.ИспользоватьМинимальноеЗначение, + СтрокаТаблицы.МинимальноеЗначение, Неопределено); + Элемент.МаксимальноеЗначение = ?(СтрокаТаблицы.ИспользоватьМаксимальноеЗначение, + СтрокаТаблицы.МаксимальноеЗначение, Неопределено); Элемент.КнопкаВыбора = Ложь; Элемент.ПутьКДанным = ИмяВопроса; Элемент.АвтоМаксимальнаяШирина = Ложь; - Если СтрокаТаблицы.МинимальноеЗначение <> 0 ИЛИ СтрокаТаблицы.МаксимальноеЗначение <> 0 Тогда + Если СтрокаТаблицы.МинимальноеЗначение <> 0 Или СтрокаТаблицы.МаксимальноеЗначение <> 0 Тогда Элемент.КнопкаРегулирования = Истина; - + ТекстПодсказки = ""; - Если СтрокаТаблицы.МинимальноеЗначение <> 0 И СтрокаТаблицы.МаксимальноеЗначение <> 0 Тогда - ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Допустим ввод значения от %1 до %2'"), - СтрокаТаблицы.МинимальноеЗначение, СтрокаТаблицы.МаксимальноеЗначение); - ИначеЕсли СтрокаТаблицы.МинимальноеЗначение = 0 И СтрокаТаблицы.МаксимальноеЗначение <> 0 Тогда - ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Допустим ввод значения до %1'"), СтрокаТаблицы.МаксимальноеЗначение); + Если СтрокаТаблицы.ИспользоватьМинимальноеЗначение И СтрокаТаблицы.ИспользоватьМаксимальноеЗначение Тогда + ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Допустим ввод значения от %1 до %2'"), СтрокаТаблицы.МинимальноеЗначение, + СтрокаТаблицы.МаксимальноеЗначение); + ИначеЕсли Не СтрокаТаблицы.ИспользоватьМинимальноеЗначение + И СтрокаТаблицы.ИспользоватьМаксимальноеЗначение Тогда + ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Допустим ввод значения до %1'"), СтрокаТаблицы.МаксимальноеЗначение); Иначе - ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Допустим ввод значения от %1'"), СтрокаТаблицы.МинимальноеЗначение); + ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Допустим ввод значения от %1'"), СтрокаТаблицы.МинимальноеЗначение); КонецЕсли; - + Элемент.Подсказка = ТекстПодсказки; - + КонецЕсли; - + + Если СтрокаТаблицы.ПоказыватьПолосуРегулирования Тогда + + ЭлементГруппаПолосаРегулирования = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_Вопрос_Полоса", Тип( + "ГруппаФормы"), ЭлементГруппаВопроса); + ЭлементГруппаПолосаРегулирования.Вид = ВидГруппыФормы.ОбычнаяГруппа; + ЭлементГруппаПолосаРегулирования.Отображение = ОтображениеОбычнойГруппы.Нет; + ЭлементГруппаПолосаРегулирования.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда; + ЭлементГруппаПолосаРегулирования.ОтображатьЗаголовок = Ложь; + + ЭлементПолоса = Форма.Элементы.Добавить(ИмяВопроса + "_ПолосаРегулирования", Тип("ПолеФормы"), + ЭлементГруппаПолосаРегулирования); + ЭлементПолоса.Вид = ВидПоляФормы.ПолеПолосыРегулирования; + ЭлементПолоса.ОтображениеРазметки = ОтображениеРазметкиПолосыРегулирования.СОбоихСторон; + ЭлементПолоса.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + ДлинаПолосы = СтрокаТаблицы.МаксимальноеЗначение - СтрокаТаблицы.МинимальноеЗначение; + ЭлементПолоса.МинимальноеЗначение = 0; + ЭлементПолоса.МаксимальноеЗначение = ДлинаПолосы / СтрокаТаблицы.ШагПолосыРегулирования; + ЭлементПолоса.ШагРазметки = 1; + ЭлементПолоса.Шаг = 1; + ЭлементПолоса.БольшойШаг = 1; + ЭлементПолоса.ПутьКДанным = ИмяВопроса + "_ПолосаРегулированияРеквизит"; + ЭлементПолоса.РастягиватьПоГоризонтали = Ложь; + ЭлементПолоса.ОтображениеРазметки = ОтображениеРазметкиПолосыРегулирования.СОбоихСторон; + ЭлементПолоса.УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииПолосыРегулирования"); + + Форма.Элементы.Переместить(Элемент, ЭлементГруппаПолосаРегулирования); + Форма.Элементы.Переместить(ЭлементГруппаВопросКомментарий, ЭлементГруппаВопроса); + + Элемент.УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииПоляЧисло"); + Элемент.УстановитьДействие("Регулирование", "Подключаемый_РегулированиеПоляЧисло"); + + ЭлементРасшифровка = Форма.Элементы.Добавить( + ИмяВопроса + "_РасшифровкаПодсказки", Тип("ДекорацияФормы"), ЭлементГруппаПолосаРегулирования); + ЭлементРасшифровка.ЦветТекста = ЦветаСтиля.ПоясняющийТекст; + + Иначе + + ЭлементРасшифровка = Форма.Элементы.Добавить( + ИмяВопроса + "_РасшифровкаПодсказки", Тип("ДекорацияФормы"), ЭлементГруппаВопросКомментарий); + ЭлементРасшифровка.ЦветТекста = ЦветаСтиля.ПоясняющийТекст; + ЭлементГруппаВопросКомментарий.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда; + + КонецЕсли; + ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ЗначениеИнформационнойБазы Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"),ЭлементГруппаВопросКомментарий); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса, Тип("ПолеФормы"), ЭлементГруппаВопросКомментарий); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный; Элемент.ПутьКДанным = ИмяВопроса; Элемент.АвтоМаксимальнаяШирина = Ложь; Элемент.РастягиватьПоГоризонтали = Ложь; - + ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда - - ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаТаблицы.ЭлементарныйВопрос,Форма); - - Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"),ЭлементГруппаВопросКомментарий); - Элемент.Вид = ВидПоляФормы.ПолеПереключателя; - Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; - Элемент.ПутьКДанным = ИмяВопроса; - Элемент.КоличествоКолонок = 1; - Элемент.ВысотаЭлемента = 1; - Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Лево; - - Если СтрокаТаблицы.ВидПереключателя = Перечисления.ВидыПереключателяВАнкетах.Тумблер Тогда - Элемент.ВидПереключателя = ВидПереключателя.Тумблер; - Элемент.КоличествоКолонок = 0; - Элемент.ОдинаковаяШиринаКолонок = Ложь; - Иначе - Элемент.ВидПереключателя = ВидПереключателя.Переключатель; - Элемент.КоличествоКолонок = 1; - КонецЕсли; - - Для каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл - СписокВыбораЭлемента = Элемент.СписокВыбора; // СписокЗначений - СписокВыбораЭлемента.Добавить(ВариантОтвета.Ответ,ВариантОтвета.Представление); - КонецЦикла; - - ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - - ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаТаблицы.ЭлементарныйВопрос,Форма); + + ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаТаблицы.ЭлементарныйВопрос, Форма); Счетчик = 0; - - ЭлементГруппаВариантыОтветов = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_Варианты",Тип("ГруппаФормы"),ЭлементГруппаВопросКомментарий); - + + ЭлементГруппаВариантыОтветов = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_Варианты", Тип("ГруппаФормы"), + ЭлементГруппаВопросКомментарий); ЭлементГруппаВариантыОтветов.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементГруппаВариантыОтветов.Отображение = ОтображениеОбычнойГруппы.Нет; - ЭлементГруппаВариантыОтветов.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; + ЭлементГруппаВариантыОтветов.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда; ЭлементГруппаВариантыОтветов.ОтображатьЗаголовок = Ложь; - - Для каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл - + + ЭлементГруппаВопросы = Форма.Элементы.Добавить(ИмяВопроса + "_ГруппаВопросы", Тип("ГруппаФормы"), + ЭлементГруппаВариантыОтветов); + ЭлементГруппаВопросы.Вид = ВидГруппыФормы.ОбычнаяГруппа; + ЭлементГруппаВопросы.Отображение = ОтображениеОбычнойГруппы.Нет; + ЭлементГруппаВопросы.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; + ЭлементГруппаВопросы.ОтображатьЗаголовок = Ложь; + + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + Счетчик = Счетчик + 1; - - ЭлементГруппаВариантОтвета = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_ВариантОтвета_" + XMLСтрока(Счетчик), - Тип("ГруппаФормы"), ЭлементГруппаВариантыОтветов); - + + ЭлементГруппаВариантОтвета = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_ВариантОтвета_" + XMLСтрока( + Счетчик), Тип("ГруппаФормы"), ЭлементГруппаВопросы); + ЭлементГруппаВариантОтвета.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементГруппаВариантОтвета.Отображение = ОтображениеОбычнойГруппы.Нет; ЭлементГруппаВариантОтвета.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда; ЭлементГруппаВариантОтвета.ОтображатьЗаголовок = Ложь; ЭлементГруппаВариантОтвета.РастягиватьПоГоризонтали = Истина; - + ИмяРеквизитаВопроса = ИмяВопроса + "_Реквизит_" + Счетчик; - Элемент = Форма.Элементы.Добавить(ИмяРеквизитаВопроса,Тип("ПолеФормы"),ЭлементГруппаВариантОтвета); - + Элемент = Форма.Элементы.Добавить(ИмяРеквизитаВопроса, Тип("ПолеФормы"), ЭлементГруппаВариантОтвета); + Элемент.Вид = ВидПоляФормы.ПолеПереключателя; + Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + Элемент.ПутьКДанным = ИмяРеквизитаВопроса; + Элемент.КоличествоКолонок = 1; + Элемент.ВысотаЭлемента = 1; + Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Лево; + Элемент.ВидПереключателя = ВидПереключателя.Переключатель; + Элемент.КоличествоКолонок = 1; + Элемент.Подсказка = ВариантОтвета.Подсказка; + + СписокВыбораЭлемента = Элемент.СписокВыбора; + СписокВыбораЭлемента.Добавить(ВариантОтвета.Ответ, ВариантОтвета.Представление); + + КонецЦикла; + + ЭлементГруппаПодсказка = Форма.Элементы.Добавить(ИмяВопроса + "_ГруппаПодсказка", Тип("ГруппаФормы"), + ЭлементГруппаВариантыОтветов); + ЭлементГруппаПодсказка.Вид = ВидГруппыФормы.ОбычнаяГруппа; + ЭлементГруппаПодсказка.Отображение = ОтображениеОбычнойГруппы.Нет; + ЭлементГруппаПодсказка.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; + ЭлементГруппаПодсказка.ОтображатьЗаголовок = Ложь; + + ЭлементРасшифровка = Форма.Элементы.Добавить( + ИмяВопроса + "_РасшифровкаПодсказки", Тип("ДекорацияФормы"), ЭлементГруппаПодсказка); + ЭлементРасшифровка.АвтоМаксимальнаяШирина = Ложь; + ЭлементРасшифровка.РастягиватьПоГоризонтали = Истина; + ЭлементРасшифровка.ЦветТекста = ЦветаСтиля.ПоясняющийТекст; + + ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда + + ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаТаблицы.ЭлементарныйВопрос, Форма); + Счетчик = 0; + + ЭлементГруппаВариантыОтветов = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_Варианты", Тип("ГруппаФормы"), + ЭлементГруппаВопросКомментарий); + + ЭлементГруппаВариантыОтветов.Вид = ВидГруппыФормы.ОбычнаяГруппа; + ЭлементГруппаВариантыОтветов.Отображение = ОтображениеОбычнойГруппы.Нет; + ЭлементГруппаВариантыОтветов.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; + ЭлементГруппаВариантыОтветов.ОтображатьЗаголовок = Ложь; + + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + + Счетчик = Счетчик + 1; + + ЭлементГруппаВариантОтвета = Форма.Элементы.Добавить(ИмяВопроса + "_Группа_ВариантОтвета_" + XMLСтрока( + Счетчик), Тип("ГруппаФормы"), ЭлементГруппаВариантыОтветов); + + ЭлементГруппаВариантОтвета.Вид = ВидГруппыФормы.ОбычнаяГруппа; + ЭлементГруппаВариантОтвета.Отображение = ОтображениеОбычнойГруппы.Нет; + ЭлементГруппаВариантОтвета.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда; + ЭлементГруппаВариантОтвета.ОтображатьЗаголовок = Ложь; + ЭлементГруппаВариантОтвета.РастягиватьПоГоризонтали = Истина; + + ИмяРеквизитаВопроса = ИмяВопроса + "_Реквизит_" + Счетчик; + Элемент = Форма.Элементы.Добавить(ИмяРеквизитаВопроса, Тип("ПолеФормы"), ЭлементГруппаВариантОтвета); + Элемент.Вид = ВидПоляФормы.ПолеФлажка; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Право; Элемент.ПутьКДанным = ИмяРеквизитаВопроса; Элемент.ВысотаЗаголовка = 1; - + Элемент.Подсказка = ВариантОтвета.Подсказка; + Если ВариантОтвета.ТребуетОткрытогоОтвета Тогда ИмяРеквизитаКомментария = ИмяВопроса + "_Комментарий_" + Счетчик; - Элемент = Форма.Элементы.Добавить(ИмяРеквизитаКомментария,Тип("ПолеФормы"),ЭлементГруппаВариантОтвета); + Элемент = Форма.Элементы.Добавить(ИмяРеквизитаКомментария, Тип("ПолеФормы"), + ЭлементГруппаВариантОтвета); Элемент.Вид = ВидПоляФормы.ПолеФлажка; Элемент.ПутьКДанным = ИмяРеквизитаКомментария; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; КонецЕсли; - + КонецЦикла; - + + КонецЕсли; + + Если СтрокаТаблицы.ИспользоватьОтказОтОтвета И СтрокаТаблицы.ТипОтвета + <> Перечисления.ТипыОтветовНаВопрос.Булево Тогда + Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_ИспользоватьОтказОтОтвета", Тип("ПолеФормы"), + ЭлементГруппаВопроса); + Элемент.Вид = ВидПоляФормы.ПолеФлажка; + Элемент.ПутьКДанным = ИмяВопроса + "_ИспользоватьОтказОтОтвета"; + Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Право; КонецЕсли; // Комментарии к вопросам - Если (СтрокаТаблицы.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз) И (СтрокаТаблицы.ТребуетсяКомментарий) Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Комментарий",Тип("ПолеФормы"),ЭлементГруппаВопросКомментарий); + Если (СтрокаТаблицы.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз) + И (СтрокаТаблицы.ТребуетсяКомментарий) Тогда + + Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Комментарий", Тип("ПолеФормы"), + ЭлементГруппаВопросКомментарий); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПутьКДанным = ИмяВопроса + "_Комментарий"; Элемент.АвтоМаксимальнаяШирина = Ложь; - + Элемент.ПодсказкаВвода = СтрокаТаблицы.ПояснениеКомментария; + Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + Элемент.РастягиватьПоГоризонтали = Ложь; + Элемент.КнопкаВыбора = Истина; КонецЕсли; - + КонецЕсли; - + КонецПроцедуры // Добавляет элементы формы для табличных вопросов. @@ -1097,14 +1281,14 @@ // Форма - ФормаКлиентскогоПриложения // Процедура ДобавитьЭлементыТабличныйВопрос(СтрокаТаблицы, ЭлементГруппа, Форма) - + ТипТабличногоВопроса = СтрокаТаблицы.ТипТабличногоВопроса; - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаТаблицы.КлючСтроки); + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаТаблицы.КлючСтроки); ИмяТаблицы = ИмяВопроса + "_Таблица"; // Создание элемента формы таблица. - ЭлементТаблица = Форма.Элементы.Добавить(ИмяТаблицы,Тип("ТаблицаФормы"),ЭлементГруппа); - + ЭлементТаблица = Форма.Элементы.Добавить(ИмяТаблицы, Тип("ТаблицаФормы"), ЭлементГруппа); + Если ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной Тогда ЭлементТаблица.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Верх; Иначе @@ -1119,39 +1303,41 @@ // Добавление колонок в элемент формы таблица. ТаблицаВопроса = Форма.РеквизитФормыВЗначение(ИмяТаблицы); - - Если СтрокаТаблицы.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках + + Если СтрокаТаблицы.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках И СтрокаТаблицы.СоставТабличногоВопроса.Количество() = 3 Тогда - - НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос",СтрокаТаблицы.СоставТабличногоВопроса[2].ЭлементарныйВопрос)); + + НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос", + СтрокаТаблицы.СоставТабличногоВопроса[2].ЭлементарныйВопрос)); Если НайденныеСтроки.Количество() > 0 Тогда РеквизитыЭлементарногоВопроса = НайденныеСтроки[0]; Иначе Возврат; КонецЕсли; - + ИначеЕсли СтрокаТаблицы.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках И СтрокаТаблицы.СоставТабличногоВопроса.Количество() > 1 Тогда КонецЕсли; - + Для инд = 1 По ТаблицаВопроса.Колонки.Количество() Цикл - + ИмяКолонки = ИмяТаблицы + "_Колонка_" + инд; - - Если СтрокаТаблицы.ТипТабличногоВопроса <> Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках + + Если СтрокаТаблицы.ТипТабличногоВопроса <> Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках И СтрокаТаблицы.ТипТабличногоВопроса <> Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках Тогда - НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос",СтрокаТаблицы.СоставТабличногоВопроса[инд-1].ЭлементарныйВопрос)); + НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос", + СтрокаТаблицы.СоставТабличногоВопроса[инд - 1].ЭлементарныйВопрос)); Если НайденныеСтроки.Количество() > 0 Тогда РеквизитыЭлементарногоВопроса = НайденныеСтроки[0]; Иначе Продолжить; КонецЕсли; КонецЕсли; - + Элемент = Форма.Элементы.Добавить(ИмяКолонки, Тип("ПолеФормы"), Форма.Элементы[ИмяТаблицы]); // ПолеФормы Элемент.РежимРедактирования = РежимРедактированияКолонки.Непосредственно; - + Если ТаблицаВопроса.Колонки[ИмяКолонки].ТипЗначения = Новый ОписаниеТипов("Булево") Тогда Элемент.Вид = ВидПоляФормы.ПолеФлажка; Иначе @@ -1159,144 +1345,154 @@ // Установка списка выборка для тех колонок, тип ответа которых "Варианты ответов анкет" и ограничения для числовых // вопросов. - Если СтрокаТаблицы.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной - Или СтрокаТаблицы.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках Тогда - - Если ТаблицаВопроса.Колонки[ИмяКолонки].ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.ВариантыОтветовАнкет") Тогда - + Если СтрокаТаблицы.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной Или СтрокаТаблицы.ТипТабличногоВопроса + = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках Тогда + + Если ТаблицаВопроса.Колонки[ИмяКолонки].ТипЗначения + = Новый ОписаниеТипов("СправочникСсылка.ВариантыОтветовАнкет") Тогда + Элемент.РежимВыбораИзСписка = Истина; - ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаТаблицы.СоставТабличногоВопроса[инд-1].ЭлементарныйВопрос,Форма); - Для каждого ВариантОтветаНаВопрос Из ВариантыОтветовНаВопрос Цикл + ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаТаблицы.СоставТабличногоВопроса[инд + - 1].ЭлементарныйВопрос, Форма); + Для Каждого ВариантОтветаНаВопрос Из ВариантыОтветовНаВопрос Цикл СписокВыбораЭлемента = Элемент.СписокВыбора; // СписокЗначений СписокВыбораЭлемента.Добавить(ВариантОтветаНаВопрос.Ответ); КонецЦикла; Элемент.КнопкаОткрытия = Ложь; - + ИначеЕсли РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Число Тогда - - УстановитьПараметрыЭлементаЯчейкаЧисло(Элемент,РеквизитыЭлементарногоВопроса); - + + УстановитьПараметрыЭлементаЯчейкаЧисло(Элемент, РеквизитыЭлементарногоВопроса); + ИначеЕсли РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда - + УстановитьПараметрыЭлементаЯчейкаТекст(Элемент); - + КонецЕсли; - - ИначеЕсли СтрокаТаблицы.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках Тогда - + + ИначеЕсли СтрокаТаблицы.ТипТабличногоВопроса + = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках Тогда + Если СтрокаТаблицы.СоставТабличногоВопроса.Количество() = 3 И инд <> 1 Тогда - - Если СтрокаТаблицы.СоставТабличногоВопроса[2].ЭлементарныйВопрос.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.ВариантыОтветовАнкет")Тогда - + + Если СтрокаТаблицы.СоставТабличногоВопроса[2].ЭлементарныйВопрос.ТипЗначения + = Новый ОписаниеТипов("СправочникСсылка.ВариантыОтветовАнкет") Тогда + Элемент.РежимВыбораИзСписка = Истина; - ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаТаблицы.СоставТабличногоВопроса[2].ЭлементарныйВопрос,Форма); - Для каждого ВариантОтветаНаВопрос Из ВариантыОтветовНаВопрос Цикл + ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос( + СтрокаТаблицы.СоставТабличногоВопроса[2].ЭлементарныйВопрос, Форма); + Для Каждого ВариантОтветаНаВопрос Из ВариантыОтветовНаВопрос Цикл СписокВыбораЭлемента = Элемент.СписокВыбора; // СписокЗначений СписокВыбораЭлемента.Добавить(ВариантОтветаНаВопрос.Ответ); КонецЦикла; Элемент.КнопкаОткрытия = Ложь; - + КонецЕсли; - + Если РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Число Тогда - - УстановитьПараметрыЭлементаЯчейкаЧисло(Элемент,РеквизитыЭлементарногоВопроса); - + + УстановитьПараметрыЭлементаЯчейкаЧисло(Элемент, РеквизитыЭлементарногоВопроса); + ИначеЕсли РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда - + УстановитьПараметрыЭлементаЯчейкаТекст(Элемент); - + КонецЕсли; - + КонецЕсли; - + КонецЕсли; КонецЕсли; - + Элемент.ПутьКДанным = ИмяТаблицы + "." + ИмяКолонки; - + Если (ТипТабличногоВопроса <> Перечисления.ТипыТабличныхВопросов.Составной) И (инд = 1) Тогда Элемент.Доступность = Ложь; КонецЕсли; - - Если (ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках)Тогда + + Если (ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках) Тогда Если инд = 1 Тогда Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; - Иначе - Элемент.СвязьПоТипу = Новый СвязьПоТипу("Элементы." + ИмяТаблицы + ".ТекущиеДанные." + ИмяТаблицы + "_Колонка_1"); - СвязиПараметровВыбора = Новый Массив(); - СвязиПараметровВыбора.Добавить(Новый СвязьПараметраВыбора("Отбор.Владелец","Элементы." + ИмяТаблицы + ".ТекущиеДанные." + ИмяТаблицы + "_Колонка_1")); + Иначе + Элемент.СвязьПоТипу = Новый СвязьПоТипу("Элементы." + ИмяТаблицы + ".ТекущиеДанные." + ИмяТаблицы + + "_Колонка_1"); + СвязиПараметровВыбора = Новый Массив; + СвязиПараметровВыбора.Добавить(Новый СвязьПараметраВыбора("Отбор.Владелец", "Элементы." + ИмяТаблицы + + ".ТекущиеДанные." + ИмяТаблицы + "_Колонка_1")); Элемент.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметровВыбора); КонецЕсли; КонецЕсли; - + КонецЦикла; // Заполнение строк таблицы. Если ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках Тогда - - МассивОтветы = СтрокаТаблицы.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос",СтрокаТаблицы.СоставТабличногоВопроса[0].ЭлементарныйВопрос)); - - Для каждого СтрокаОтвет Из МассивОтветы Цикл - + + МассивОтветы = СтрокаТаблицы.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", + СтрокаТаблицы.СоставТабличногоВопроса[0].ЭлементарныйВопрос)); + + Для Каждого СтрокаОтвет Из МассивОтветы Цикл + НоваяСтрока = ТаблицаВопроса.Добавить(); НоваяСтрока[ИмяТаблицы + "_Колонка_1"] = СтрокаОтвет.Ответ; - + КонецЦикла; - + ИначеЕсли ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках Тогда - + Для инд = 2 По СтрокаТаблицы.СоставТабличногоВопроса.Количество() Цикл - + НоваяСтрока = ТаблицаВопроса.Добавить(); - НоваяСтрока[ИмяТаблицы + "_Колонка_1"] = СтрокаТаблицы.СоставТабличногоВопроса[инд-1].ЭлементарныйВопрос; - + НоваяСтрока[ИмяТаблицы + "_Колонка_1"] = СтрокаТаблицы.СоставТабличногоВопроса[инд - 1].ЭлементарныйВопрос; + КонецЦикла; - - ИначеЕсли ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках Тогда - - МассивОтветы = СтрокаТаблицы.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос",СтрокаТаблицы.СоставТабличногоВопроса[0].ЭлементарныйВопрос)); - - Для каждого СтрокаОтвет Из МассивОтветы Цикл - + + ИначеЕсли ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках Тогда + + МассивОтветы = СтрокаТаблицы.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", + СтрокаТаблицы.СоставТабличногоВопроса[0].ЭлементарныйВопрос)); + + Для Каждого СтрокаОтвет Из МассивОтветы Цикл + НоваяСтрока = ТаблицаВопроса.Добавить(); НоваяСтрока[ИмяТаблицы + "_Колонка_1"] = СтрокаОтвет.Ответ; - + КонецЦикла; - + КонецЕсли; - + Если ТипТабличногоВопроса <> Перечисления.ТипыТабличныхВопросов.Составной Тогда - + ЭлементТаблица.ВысотаВСтрокахТаблицы = ТаблицаВопроса.Количество() + 1; - + КонецЕсли; - - Форма.ЗначениеВРеквизитФормы(ТаблицаВопроса,ИмяТаблицы); - + + Форма.ЗначениеВРеквизитФормы(ТаблицаВопроса, ИмяТаблицы); + КонецПроцедуры // Параметры: // Форма - ФормаКлиентскогоПриложения // Процедура ДобавитьЭлементыКомплексныйВопрос(СтрокаТаблицы, ЭлементГруппа, Форма) - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаТаблицы.КлючСтроки); - Для каждого СтрокаКомплексногоВопроса Из СтрокаТаблицы.СоставКомплексногоВопроса Цикл // СтрокаТабличнойЧасти: см. СправочникТабличнаяЧасть.ВопросыШаблонаАнкеты.СоставКомплексногоВопроса - - НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос",СтрокаКомплексногоВопроса.ЭлементарныйВопрос)); + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаТаблицы.КлючСтроки); + Для Каждого СтрокаКомплексногоВопроса Из СтрокаТаблицы.СоставКомплексногоВопроса Цикл // СтрокаТабличнойЧасти: см. СправочникТабличнаяЧасть.ВопросыШаблонаАнкеты.СоставКомплексногоВопроса + + НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос", + СтрокаКомплексногоВопроса.ЭлементарныйВопрос)); Если НайденныеСтроки.Количество() > 0 Тогда РеквизитыЭлементарногоВопроса = НайденныеСтроки[0]; Иначе Продолжить; КонецЕсли; - + Если РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Булево Тогда - + ЭлементГруппаВопросаБулево = Форма.Элементы.Добавить( ИмяВопроса + "_ЭлементарныйВопрос_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") - + "_ГруппаБулево",Тип("ГруппаФормы"),ЭлементГруппа); - + + "_ГруппаБулево", Тип("ГруппаФормы"), ЭлементГруппа); + ЭлементГруппаВопросаБулево.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементГруппаВопросаБулево.ОтображатьЗаголовок = Ложь; ЭлементГруппаВопросаБулево.Отображение = ОтображениеОбычнойГруппы.Нет; @@ -1304,113 +1500,137 @@ ЭлементГруппаВопросаБулево.РастягиватьПоГоризонтали = Истина; ЭлементГруппаВопросаБулево.РастягиватьПоВертикали = Ложь; КонецЕсли; - + Если РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Булево Тогда Элемент = Форма.Элементы.Добавить( - ИмяВопроса + "_ЭлементарныйВопрос_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="), - Тип("ДекорацияФормы"),ЭлементГруппаВопросаБулево); + ИмяВопроса + "_ЭлементарныйВопрос_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="), Тип( + "ДекорацияФормы"), ЭлементГруппаВопросаБулево); Иначе Элемент = Форма.Элементы.Добавить( - ИмяВопроса + "_ЭлементарныйВопрос_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="), - Тип("ДекорацияФормы"),ЭлементГруппа); + ИмяВопроса + "_ЭлементарныйВопрос_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="), Тип( + "ДекорацияФормы"), ЭлементГруппа); КонецЕсли; Элемент.Вид = ВидДекорацииФормы.Надпись; Элемент.Заголовок = СтрокаКомплексногоВопроса.ЭлементарныйВопрос; Элемент.АвтоМаксимальнаяШирина = Ложь; - Элемент.РастягиватьПоГоризонтали = (РеквизитыЭлементарногоВопроса.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.Булево); + Элемент.РастягиватьПоГоризонтали = (РеквизитыЭлементарногоВопроса.ТипОтвета + <> Перечисления.ТипыОтветовНаВопрос.Булево); Элемент.Шрифт = ШрифтыСтиля.МелкийШрифтТекста; - + Если РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="),Тип("ПолеФормы"),ЭлементГруппа); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="), Тип("ПолеФормы"), ЭлементГруппа); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный; - Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); + Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="); Элемент.АвтоМаксимальнаяШирина = Ложь; Элемент.РастягиватьПоГоризонтали = Ложь; - + ИначеЕсли РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="),Тип("ПолеФормы"),ЭлементГруппа); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="), Тип("ПолеФормы"), ЭлементГруппа); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный; - Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); + Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="); Элемент.РастягиватьПоВертикали = Ложь; Элемент.АвтоМаксимальнаяШирина = Ложь; - УстановитьПараметрыЭлементаЯчейкаТекст(Элемент); - + УстановитьПараметрыЭлементаЯчейкаТекст(Элемент); + ИначеЕсли РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Булево Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="),Тип("ПолеФормы"),ЭлементГруппаВопросаБулево); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="), Тип("ПолеФормы"), ЭлементГруппаВопросаБулево); Если РеквизитыЭлементарногоВопроса.ВидФлажка = Перечисления.ВидыФлажкаВАнкетах.Флажок Тогда Элемент.Вид = ВидПоляФормы.ПолеФлажка; Иначе Элемент.Вид = ВидПоляФормы.ПолеВвода; КонецЕсли; - + Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); - + ИначеЕсли РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Дата Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="),Тип("ПолеФормы"),ЭлементГруппа); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="), Тип("ПолеФормы"), ЭлементГруппа); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный; - Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); + Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="); Элемент.АвтоМаксимальнаяШирина = Ложь; - + ИначеЕсли РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Число Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="),Тип("ПолеФормы"),ЭлементГруппа); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="), Тип("ПолеФормы"), ЭлементГруппа); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; - Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный; - Элемент.МинимальноеЗначение = ?(РеквизитыЭлементарногоВопроса.МинимальноеЗначение = 0,Неопределено,РеквизитыЭлементарногоВопроса.МинимальноеЗначение); - Элемент.МаксимальноеЗначение = ?(РеквизитыЭлементарногоВопроса.МаксимальноеЗначение = 0,Неопределено,РеквизитыЭлементарногоВопроса.МаксимальноеЗначение); + Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный + И Не РазрешенВводНулевогоЗначенияВЧисловоеПоле(СтрокаТаблицы); + Элемент.МинимальноеЗначение = ?(РеквизитыЭлементарногоВопроса.ИспользоватьМинимальноеЗначение, + РеквизитыЭлементарногоВопроса.МинимальноеЗначение, Неопределено); + Элемент.МаксимальноеЗначение = ?(РеквизитыЭлементарногоВопроса.ИспользоватьМаксимальноеЗначение, + РеквизитыЭлементарногоВопроса.МаксимальноеЗначение, Неопределено); Элемент.КнопкаВыбора = Ложь; - Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); + Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="); Элемент.АвтоМаксимальнаяШирина = Ложь; - Если РеквизитыЭлементарногоВопроса.МинимальноеЗначение <> 0 ИЛИ РеквизитыЭлементарногоВопроса.МаксимальноеЗначение <> 0 Тогда + Если РеквизитыЭлементарногоВопроса.МинимальноеЗначение <> 0 + Или РеквизитыЭлементарногоВопроса.МаксимальноеЗначение <> 0 Тогда Элемент.КнопкаРегулирования = Истина; - + ТекстПодсказки = ""; - Если РеквизитыЭлементарногоВопроса.МинимальноеЗначение <> 0 И РеквизитыЭлементарногоВопроса.МаксимальноеЗначение <> 0 Тогда - ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Допустим ввод значения от %1 до %2'"), - РеквизитыЭлементарногоВопроса.МинимальноеЗначение, РеквизитыЭлементарногоВопроса.МаксимальноеЗначение); - ИначеЕсли РеквизитыЭлементарногоВопроса.МинимальноеЗначение = 0 И РеквизитыЭлементарногоВопроса.МаксимальноеЗначение <> 0 Тогда - ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Допустим ввод значения до %1'"), РеквизитыЭлементарногоВопроса.МаксимальноеЗначение); + Если РеквизитыЭлементарногоВопроса.ИспользоватьМинимальноеЗначение + И РеквизитыЭлементарногоВопроса.ИспользоватьМаксимальноеЗначение Тогда + ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Допустим ввод значения от %1 до %2'"), + РеквизитыЭлементарногоВопроса.ИспользоватьМинимальноеЗначение, + РеквизитыЭлементарногоВопроса.МаксимальноеЗначение); + ИначеЕсли Не РеквизитыЭлементарногоВопроса.ИспользоватьМинимальноеЗначение + И РеквизитыЭлементарногоВопроса.ИспользоватьМаксимальноеЗначение Тогда + ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Допустим ввод значения до %1'"), РеквизитыЭлементарногоВопроса.МаксимальноеЗначение); Иначе - ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Допустим ввод значения от %1'"), РеквизитыЭлементарногоВопроса.МинимальноеЗначение); + ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Допустим ввод значения от %1'"), РеквизитыЭлементарногоВопроса.МинимальноеЗначение); КонецЕсли; - + Элемент.Подсказка = ТекстПодсказки; - + КонецЕсли; - + ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ЗначениеИнформационнойБазы Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="),Тип("ПолеФормы"),ЭлементГруппа); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="), Тип("ПолеФормы"), ЭлементГруппа); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный; - Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); + Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="); Элемент.АвтоМаксимальнаяШирина = Ложь; - Элемент.РастягиватьПоГоризонтали = Ложь; - + Элемент.РастягиватьПоГоризонтали = Ложь; + ИначеЕсли РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда - - ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаКомплексногоВопроса.ЭлементарныйВопрос,Форма); - - Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="),Тип("ПолеФормы"),ЭлементГруппа); + + ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаКомплексногоВопроса.ЭлементарныйВопрос, Форма); + + Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="), Тип("ПолеФормы"), ЭлементГруппа); Элемент.Вид = ВидПоляФормы.ПолеПереключателя; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; - Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); + Элемент.ПутьКДанным = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ="); Элемент.ВысотаЭлемента = 1; Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Лево; - + Если РеквизитыЭлементарногоВопроса.ВидПереключателя = Перечисления.ВидыПереключателяВАнкетах.Тумблер Тогда Элемент.ВидПереключателя = ВидПереключателя.Тумблер; Элемент.КоличествоКолонок = 0; @@ -1419,72 +1639,80 @@ Элемент.ВидПереключателя = ВидПереключателя.Переключатель; Элемент.КоличествоКолонок = 1; КонецЕсли; - - Для каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл - Элемент.СписокВыбора.Добавить(ВариантОтвета.Ответ,ВариантОтвета.Представление); + + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + Элемент.СписокВыбора.Добавить(ВариантОтвета.Ответ, ВариантОтвета.Представление); КонецЦикла; - + ИначеЕсли РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - - ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаКомплексногоВопроса.ЭлементарныйВопрос,Форма); + + ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаКомплексногоВопроса.ЭлементарныйВопрос, Форма); Счетчик = 0; - - ЭлементГруппаВариантыОтветов = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" - + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Группа_Варианты",Тип("ГруппаФормы"),ЭлементГруппа); - + + ЭлементГруппаВариантыОтветов = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат( + СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Группа_Варианты", Тип("ГруппаФормы"), ЭлементГруппа); + ЭлементГруппаВариантыОтветов.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементГруппаВариантыОтветов.Отображение = ОтображениеОбычнойГруппы.Нет; ЭлементГруппаВариантыОтветов.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; ЭлементГруппаВариантыОтветов.ОтображатьЗаголовок = Ложь; - - Для каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл - + + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + Счетчик = Счетчик + 1; - - ЭлементГруппаВариантОтвета = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" - + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Группа_ВариантОтвета_" + XMLСтрока(Счетчик), - Тип("ГруппаФормы"),ЭлементГруппаВариантыОтветов); - + + ЭлементГруппаВариантОтвета = Форма.Элементы.Добавить(ИмяВопроса + "_Ответ_" + Формат( + СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Группа_ВариантОтвета_" + XMLСтрока(Счетчик), Тип( + "ГруппаФормы"), ЭлементГруппаВариантыОтветов); + ЭлементГруппаВариантОтвета.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементГруппаВариантОтвета.Отображение = ОтображениеОбычнойГруппы.Нет; ЭлементГруппаВариантОтвета.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда; ЭлементГруппаВариантОтвета.ОтображатьЗаголовок = Ложь; ЭлементГруппаВариантОтвета.РастягиватьПоГоризонтали = Истина; - - ИмяРеквизитаВопроса = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Реквизит_" + Счетчик; - Элемент = Форма.Элементы.Добавить(ИмяРеквизитаВопроса,Тип("ПолеФормы"),ЭлементГруппаВариантОтвета); - + + ИмяРеквизитаВопроса = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + + "_Реквизит_" + Счетчик; + Элемент = Форма.Элементы.Добавить(ИмяРеквизитаВопроса, Тип("ПолеФормы"), ЭлементГруппаВариантОтвета); + Элемент.Вид = ВидПоляФормы.ПолеФлажка; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Право; Элемент.ПутьКДанным = ИмяРеквизитаВопроса; Элемент.ВысотаЗаголовка = 1; - + Если ВариантОтвета.ТребуетОткрытогоОтвета Тогда - ИмяРеквизитаКомментария = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Комментарий_" + Счетчик; - Элемент = Форма.Элементы.Добавить(ИмяРеквизитаКомментария,Тип("ПолеФормы"),ЭлементГруппаВариантОтвета); + ИмяРеквизитаКомментария = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ=") + "_Комментарий_" + Счетчик; + Элемент = Форма.Элементы.Добавить(ИмяРеквизитаКомментария, Тип("ПолеФормы"), + ЭлементГруппаВариантОтвета); Элемент.Вид = ВидПоляФормы.ПолеФлажка; Элемент.ПутьКДанным = ИмяРеквизитаКомментария; Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; КонецЕсли; - + КонецЦикла; - + КонецЕсли; // Комментарии к вопросам - Если (РеквизитыЭлементарногоВопроса.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз) И (СтрокаКомплексногоВопроса.ТребуетсяКомментарий) Тогда - - Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Комментарий_" - + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="),Тип("ПолеФормы"),ЭлементГруппа); - + Если (РеквизитыЭлементарногоВопроса.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз) + И (СтрокаКомплексногоВопроса.ТребуетсяКомментарий) Тогда + + Элемент = Форма.Элементы.Добавить(ИмяВопроса + "_Комментарий_" + Формат( + СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="), Тип("ПолеФормы"), ЭлементГруппа); + Элемент.Вид = ВидПоляФормы.ПолеВвода; - Элемент.ПутьКДанным = ИмяВопроса + "_Комментарий_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); + Элемент.ПутьКДанным = ИмяВопроса + "_Комментарий_" + Формат( + СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); Элемент.АвтоМаксимальнаяШирина = Ложь; - + Элемент.ПодсказкаВвода = СтрокаКомплексногоВопроса.ЭлементарныйВопрос.ПояснениеКомментария; + Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + Элемент.РастягиватьПоГоризонтали = Ложь; + Элемент.КнопкаВыбора = Истина; КонецЕсли; - + КонецЦикла; - + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -1500,9 +1728,9 @@ // Массив из СтрокаТаблицыЗначений // Функция ВариантыОтветовНаВопрос(ЭлементарныйВопрос, Форма) Экспорт - + Возврат (Форма.ВариантыОтветовНаВопросы.НайтиСтроки(Новый Структура("Вопрос", ЭлементарныйВопрос))); - + КонецФункции // Формирует строки из формулировки и полного кода строки. @@ -1516,8 +1744,8 @@ // Функция ПолныйКодНаименование(СтрокаТаблицы) - Возврат ?(СтрокаТаблицы.ТипСтроки = "Раздел","Раздел ","") + СтрокаТаблицы.ПолныйКод + " " - + ?(СтрокаТаблицы.ТипСтроки="Раздел", СтрокаТаблицы.Наименование, СтрокаТаблицы.Формулировка); + Возврат ?(СтрокаТаблицы.ТипСтроки = "Раздел", "Раздел ", "") + СтрокаТаблицы.ПолныйКод + " " + ?( + СтрокаТаблицы.ТипСтроки = "Раздел", СтрокаТаблицы.Наименование, СтрокаТаблицы.Формулировка); КонецФункции @@ -1528,11 +1756,11 @@ // Элемент - ПолеФормы - элемент, для которого устанавливаются параметры. // Процедура УстановитьПараметрыЭлементаЯчейкаТекст(Элемент) - + Элемент.КнопкаВыбора = Истина; Элемент.МногострочныйРежим = Истина; - Элемент.УстановитьДействие("НачалоВыбора","Подключаемый_НачалоВыбораТекстовыхЯчеекТабличныхВопросов"); - + Элемент.УстановитьДействие("НачалоВыбора", "Подключаемый_НачалоВыбораТекстовыхЯчеекТабличныхВопросов"); + КонецПроцедуры // Устанавливает значения параметров для поля формы, предназначенного для ввода числового значения. @@ -1541,11 +1769,13 @@ // Элемент - ПолеФормы - элемент, для которого устанавливаются параметры. // РеквизитыЭлементарногоВопроса - ДанныеФормыЭлементКоллекции - содержит значения параметров. // -Процедура УстановитьПараметрыЭлементаЯчейкаЧисло(Элемент,РеквизитыЭлементарногоВопроса); +Процедура УстановитьПараметрыЭлементаЯчейкаЧисло(Элемент, РеквизитыЭлементарногоВопроса) + + Элемент.МинимальноеЗначение = ?(РеквизитыЭлементарногоВопроса.ИспользоватьМинимальноеЗначение, + РеквизитыЭлементарногоВопроса.МинимальноеЗначение, Неопределено); + Элемент.МаксимальноеЗначение = ?(РеквизитыЭлементарногоВопроса.ИспользоватьМаксимальноеЗначение, + РеквизитыЭлементарногоВопроса.МаксимальноеЗначение, Неопределено); - Элемент.МинимальноеЗначение = ?(РеквизитыЭлементарногоВопроса.МинимальноеЗначение = 0,Неопределено,РеквизитыЭлементарногоВопроса.МинимальноеЗначение); - Элемент.МаксимальноеЗначение = ?(РеквизитыЭлементарногоВопроса.МаксимальноеЗначение = 0,Неопределено,РеквизитыЭлементарногоВопроса.МаксимальноеЗначение); - КонецПроцедуры // Удаляет ранее динамически сформированные элементы формы заполнения анкеты. @@ -1555,24 +1785,24 @@ // УдаляемыеРеквизиты - Массив из Строка - имена удаляемых реквизитов формы, на основании которых удаляются // элементы формы. // -Процедура УдалитьЭлементыФормыЗаполнения(Форма, УдаляемыеРеквизиты) - - Для каждого УдаляемыйРеквизит Из УдаляемыеРеквизиты Цикл - - ИмяВопроса = Лев(УдаляемыйРеквизит.Значение,43); - +Процедура УдалитьЭлементыФормыЗаполнения(Форма, УдаляемыеРеквизиты) + + Для Каждого УдаляемыйРеквизит Из УдаляемыеРеквизиты Цикл + + ИмяВопроса = Лев(УдаляемыйРеквизит.Значение, 43); + НайденныйЭлементФормы = Форма.Элементы.Найти(ИмяВопроса + "_Группа"); - - Если НайденныйЭлементФормы <> Неопределено Тогда + + Если НайденныйЭлементФормы <> Неопределено Тогда МассивПодчиненныеЭлементы = НайденныйЭлементФормы.ПодчиненныеЭлементы; - Для каждого ПодчиненныйЭлемент Из МассивПодчиненныеЭлементы Цикл + Для Каждого ПодчиненныйЭлемент Из МассивПодчиненныеЭлементы Цикл Форма.Элементы.Удалить(ПодчиненныйЭлемент); КонецЦикла; Форма.Элементы.Удалить(НайденныйЭлементФормы); КонецЕсли; - + КонецЦикла; - + КонецПроцедуры // Заполняет дерево разделов на форме. @@ -1582,10 +1812,10 @@ // ДеревоРазделов - ДанныеФормыДерево - дерево, для которого получаются данные. // Процедура ЗаполнитьДеревоРазделов(Форма, ДеревоРазделов) Экспорт - + ВыборкаРазделы = ВыборкаРазделовПоШаблонуАнкеты(Форма.ШаблонАнкеты); ДобавитьСтрокиВДеревоРазделов(ВыборкаРазделы, ДеревоРазделов); - + КонецПроцедуры // Получает иерархическую выборку по шаблону анкеты. @@ -1597,9 +1827,10 @@ // ВыборкаИзРезультатаЗапроса // Функция ВыборкаРазделовПоШаблонуАнкеты(ШаблонАнкеты) - + Запрос = Новый Запрос; - Запрос.Текст = " + Запрос.Текст = + " |ВЫБРАТЬ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВопросыШаблонаАнкеты.Ссылка) КАК Количество, | ВопросыШаблонаАнкеты.Родитель КАК Родитель @@ -1630,11 +1861,11 @@ | |УПОРЯДОЧИТЬ ПО | Ссылка ИЕРАРХИЯ"; - - Запрос.УстановитьПараметр("ШаблонАнкеты",ШаблонАнкеты); - + + Запрос.УстановитьПараметр("ШаблонАнкеты", ШаблонАнкеты); + Возврат Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); - + КонецФункции // Добавляет строки в дерево разделов. @@ -1643,21 +1874,21 @@ // ВыборкаРазделы - ВыборкаИзРезультатаЗапроса - иерархическая выборка по разделам шаблона анкеты. // Родитель - ДанныеФормыЭлементДерева - родительский элемент дерева, для которого добавляются строки. // -Процедура ДобавитьСтрокиВДеревоРазделов(ВыборкаРазделы,Родитель) +Процедура ДобавитьСтрокиВДеревоРазделов(ВыборкаРазделы, Родитель) ЭлементыДереваРодителя = Родитель.ПолучитьЭлементы(); Пока ВыборкаРазделы.Следующий() Цикл - + НовыйЭлементДерева = ЭлементыДереваРодителя.Добавить(); НовыйЭлементДерева.Формулировка = ВыборкаРазделы.Формулировка; НовыйЭлементДерева.КодКартинки = АнкетированиеКлиентСервер.ПолучитьКодКартинкиШаблонаАнкеты(Истина); НовыйЭлементДерева.ТипСтроки = "Раздел"; НовыйЭлементДерева.Ссылка = ВыборкаРазделы.Ссылка; НовыйЭлементДерева.КоличествоВопросов = ВыборкаРазделы.Количество; - + ДобавитьСтрокиВДеревоРазделов(ВыборкаРазделы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией), НовыйЭлементДерева); - + КонецЦикла; КонецПроцедуры @@ -1672,155 +1903,170 @@ // Раздел - СправочникСсылка.ВопросыШаблонаАнкеты - раздел анкеты, по которому получается информация. // ПолныйКодРаздела - Строка - полный код раздела, по которому получается информация. // -Процедура ПолучитьИнформациюПоВопросамАнкеты(Форма, ШаблонАнкеты, Раздел,ПолныйКодРаздела) - +Процедура ПолучитьИнформациюПоВопросамАнкеты(Форма, ШаблонАнкеты, Раздел, ПолныйКодРаздела) + Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | ВопросыДляАнкетирования.Ссылка КАК Вопрос, - | ВопросыДляАнкетирования.Формулировка КАК Формулировка, - | ВопросыДляАнкетирования.ТипЗначения КАК Тип, - | ВопросыДляАнкетирования.ТипОтвета КАК ТипОтвета, - | ВопросыДляАнкетирования.ВидПереключателя КАК ВидПереключателя, - | ВопросыДляАнкетирования.ВидФлажка КАК ВидФлажка, - | ВопросыДляАнкетирования.МинимальноеЗначение КАК МинимальноеЗначение, - | ВопросыДляАнкетирования.МаксимальноеЗначение КАК МаксимальноеЗначение - |ИЗ - | ПланВидовХарактеристик.ВопросыДляАнкетирования КАК ВопросыДляАнкетирования - |ГДЕ - | ВопросыДляАнкетирования.Ссылка В - | (ВЫБРАТЬ РАЗЛИЧНЫЕ - | ВопросыШаблонаАнкеты.ЭлементарныйВопрос - | ИЗ - | Справочник.ВопросыШаблонаАнкеты КАК ВопросыШаблонаАнкеты - | ГДЕ - | ВопросыШаблонаАнкеты.Владелец = &ШаблонАнкеты - | И ВопросыШаблонаАнкеты.Родитель = &Раздел - | - | ОБЪЕДИНИТЬ ВСЕ - | - | ВЫБРАТЬ - | ВопросыШаблонаАнкетыСоставТабличногоВопроса.ЭлементарныйВопрос - | ИЗ - | Справочник.ВопросыШаблонаАнкеты.СоставТабличногоВопроса КАК ВопросыШаблонаАнкетыСоставТабличногоВопроса - | ГДЕ - | ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.Владелец = &ШаблонАнкеты - | И ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.Родитель = &Раздел - | - | ОБЪЕДИНИТЬ ВСЕ - | - | ВЫБРАТЬ - | ВопросыШаблонаАнкетыСоставКомплексногоВопроса.ЭлементарныйВопрос - | ИЗ - | Справочник.ВопросыШаблонаАнкеты.СоставКомплексногоВопроса КАК ВопросыШаблонаАнкетыСоставКомплексногоВопроса - | ГДЕ - | ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.Владелец = &ШаблонАнкеты - | И ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.Родитель = &Раздел) - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ВопросыШаблонаАнкеты.Ссылка КАК ВопросШаблона, - | ВопросыШаблонаАнкеты.Родитель КАК Родитель, - | ВопросыШаблонаАнкеты.Наименование КАК Наименование, - | ВопросыШаблонаАнкеты.Обязательный КАК Обязательный, - | ВопросыШаблонаАнкеты.ТипВопроса КАК ТипВопроса, - | ВопросыШаблонаАнкеты.ТипТабличногоВопроса КАК ТипТабличногоВопроса, - | ВопросыШаблонаАнкеты.ЭлементарныйВопрос КАК ЭлементарныйВопрос, - | ""Вопрос"" КАК ТипСтроки, - | ВопросыШаблонаАнкеты.РодительВопрос КАК РодительВопрос, - | ВопросыШаблонаАнкеты.Подсказка КАК Подсказка, - | ВопросыШаблонаАнкеты.СпособОтображенияПодсказки КАК СпособОтображенияПодсказки, - | ВопросыШаблонаАнкеты.СоставТабличногоВопроса.( - | НомерСтроки, - | ЭлементарныйВопрос - | ), - | ВопросыШаблонаАнкеты.ПредопределенныеОтветы.( - | НомерСтроки, - | ЭлементарныйВопрос, - | Ответ - | ), - | ВопросыШаблонаАнкеты.СоставКомплексногоВопроса.( - | НомерСтроки, - | ЭлементарныйВопрос, - | ЭлементарныйВопрос.ТребуетсяКомментарий КАК ТребуетсяКомментарий, - | ЭлементарныйВопрос.ПояснениеКомментария КАК ПояснениеКомментария - | ), - | ЕСТЬNULL(ВопросыДляАнкетирования.Длина, 0) КАК Длина, - | ВопросыДляАнкетирования.ТипЗначения КАК ТипЗначения, - | ЕСТЬNULL(ВопросыДляАнкетирования.ТребуетсяКомментарий, ЛОЖЬ) КАК ТребуетсяКомментарий, - | ЕСТЬNULL(ВопросыДляАнкетирования.ПояснениеКомментария, """") КАК ПояснениеКомментария, - | ЕСТЬNULL(ВопросыДляАнкетирования.МинимальноеЗначение, 0) КАК МинимальноеЗначение, - | ЕСТЬNULL(ВопросыДляАнкетирования.МаксимальноеЗначение, 0) КАК МаксимальноеЗначение, - | ЕСТЬNULL(ВопросыДляАнкетирования.ВидПереключателя, ЗНАЧЕНИЕ(Перечисление.ВидыПереключателяВАнкетах.ПустаяСсылка)) КАК ВидПереключателя, - | ЕСТЬNULL(ВопросыДляАнкетирования.ВидФлажка, ЗНАЧЕНИЕ(Перечисление.ВидыФлажкаВАнкетах.ПустаяСсылка)) КАК ВидФлажка, - | ЕСТЬNULL(ВопросыДляАнкетирования.ТипОтвета, ЗНАЧЕНИЕ(Перечисление.ТипыОтветовНаВопрос.ПустаяСсылка)) КАК ТипОтвета, - | ЕСТЬNULL(ВопросыШаблонаАнкеты.Формулировка, """") КАК Формулировка, - | ЕСТЬNULL(ВопросыДляАнкетирования.Точность, 0) КАК Точность - |ИЗ - | Справочник.ВопросыШаблонаАнкеты КАК ВопросыШаблонаАнкеты - | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ВопросыДляАнкетирования КАК ВопросыДляАнкетирования - | ПО ВопросыШаблонаАнкеты.ЭлементарныйВопрос = ВопросыДляАнкетирования.Ссылка - |ГДЕ - | НЕ ВопросыШаблонаАнкеты.ПометкаУдаления - | И ВопросыШаблонаАнкеты.Владелец = &ШаблонАнкеты - | И ВопросыШаблонаАнкеты.Родитель = &Раздел - | И НЕ ВопросыШаблонаАнкеты.ЭтоГруппа - | - |УПОРЯДОЧИТЬ ПО - | ВопросыШаблонаАнкеты.Код - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ВариантыОтветовАнкет.Владелец КАК Вопрос, - | ВариантыОтветовАнкет.Ссылка КАК Ответ, - | ВариантыОтветовАнкет.Представление, - | ВариантыОтветовАнкет.ТребуетОткрытогоОтвета - |ИЗ - | Справочник.ВариантыОтветовАнкет КАК ВариантыОтветовАнкет - |ГДЕ - | ВариантыОтветовАнкет.Владелец В - | (ВЫБРАТЬ - | ВопросыШаблонаАнкеты.ЭлементарныйВопрос - | ИЗ - | Справочник.ВопросыШаблонаАнкеты КАК ВопросыШаблонаАнкеты - | ГДЕ - | ВопросыШаблонаАнкеты.Владелец = &ШаблонАнкеты - | И ВопросыШаблонаАнкеты.Родитель = &Раздел - | И НЕ ВопросыШаблонаАнкеты.ЭтоГруппа - | И НЕ ВопросыШаблонаАнкеты.ПометкаУдаления - | - | ОБЪЕДИНИТЬ ВСЕ - | - | ВЫБРАТЬ - | ВопросыШаблонаАнкетыСоставТабличногоВопроса.ЭлементарныйВопрос - | ИЗ - | Справочник.ВопросыШаблонаАнкеты.СоставТабличногоВопроса КАК ВопросыШаблонаАнкетыСоставТабличногоВопроса - | ГДЕ - | ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.Владелец = &ШаблонАнкеты - | И ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.Родитель = &Раздел - | И НЕ ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.ЭтоГруппа - | И НЕ ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.ПометкаУдаления - | - | ОБЪЕДИНИТЬ ВСЕ - | - | ВЫБРАТЬ - | ВопросыШаблонаАнкетыСоставКомплексногоВопроса.ЭлементарныйВопрос - | ИЗ - | Справочник.ВопросыШаблонаАнкеты.СоставКомплексногоВопроса КАК ВопросыШаблонаАнкетыСоставКомплексногоВопроса - | ГДЕ - | ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.Владелец = &ШаблонАнкеты - | И ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.Родитель = &Раздел - | И НЕ ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.ЭтоГруппа - | И НЕ ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.ПометкаУдаления) - | И НЕ ВариантыОтветовАнкет.ПометкаУдаления - | - |УПОРЯДОЧИТЬ ПО - | ВариантыОтветовАнкет.РеквизитДопУпорядочивания"; - - Запрос.УстановитьПараметр("ШаблонАнкеты",ШаблонАнкеты); - Запрос.УстановитьПараметр("Раздел",Раздел); - + Запрос.Текст = + "ВЫБРАТЬ + | ВопросыДляАнкетирования.Ссылка КАК Вопрос, + | ВопросыДляАнкетирования.Формулировка КАК Формулировка, + | ВопросыДляАнкетирования.ТипЗначения КАК Тип, + | ВопросыДляАнкетирования.ТипОтвета КАК ТипОтвета, + | ВопросыДляАнкетирования.ВидПереключателя КАК ВидПереключателя, + | ВопросыДляАнкетирования.ВидФлажка КАК ВидФлажка, + | ВопросыДляАнкетирования.МинимальноеЗначение КАК МинимальноеЗначение, + | ВопросыДляАнкетирования.МаксимальноеЗначение КАК МаксимальноеЗначение, + | ВопросыДляАнкетирования.ИспользоватьМинимальноеЗначение КАК ИспользоватьМинимальноеЗначение, + | ВопросыДляАнкетирования.ИспользоватьМаксимальноеЗначение КАК ИспользоватьМаксимальноеЗначение + |ИЗ + | ПланВидовХарактеристик.ВопросыДляАнкетирования КАК ВопросыДляАнкетирования + |ГДЕ + | ВопросыДляАнкетирования.Ссылка В + | (ВЫБРАТЬ РАЗЛИЧНЫЕ + | ВопросыШаблонаАнкеты.ЭлементарныйВопрос + | ИЗ + | Справочник.ВопросыШаблонаАнкеты КАК ВопросыШаблонаАнкеты + | ГДЕ + | ВопросыШаблонаАнкеты.Владелец = &ШаблонАнкеты + | И ВопросыШаблонаАнкеты.Родитель = &Раздел + | + | ОБЪЕДИНИТЬ ВСЕ + | + | ВЫБРАТЬ + | ВопросыШаблонаАнкетыСоставТабличногоВопроса.ЭлементарныйВопрос + | ИЗ + | Справочник.ВопросыШаблонаАнкеты.СоставТабличногоВопроса КАК ВопросыШаблонаАнкетыСоставТабличногоВопроса + | ГДЕ + | ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.Владелец = &ШаблонАнкеты + | И ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.Родитель = &Раздел + | + | ОБЪЕДИНИТЬ ВСЕ + | + | ВЫБРАТЬ + | ВопросыШаблонаАнкетыСоставКомплексногоВопроса.ЭлементарныйВопрос + | ИЗ + | Справочник.ВопросыШаблонаАнкеты.СоставКомплексногоВопроса КАК ВопросыШаблонаАнкетыСоставКомплексногоВопроса + | ГДЕ + | ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.Владелец = &ШаблонАнкеты + | И ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.Родитель = &Раздел) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВопросыШаблонаАнкеты.Ссылка КАК ВопросШаблона, + | ВопросыШаблонаАнкеты.Родитель КАК Родитель, + | ВопросыШаблонаАнкеты.Наименование КАК Наименование, + | ВопросыШаблонаАнкеты.Обязательный КАК Обязательный, + | ВопросыШаблонаАнкеты.ТипВопроса КАК ТипВопроса, + | ВопросыШаблонаАнкеты.ТипТабличногоВопроса КАК ТипТабличногоВопроса, + | ВопросыШаблонаАнкеты.ЭлементарныйВопрос КАК ЭлементарныйВопрос, + | ""Вопрос"" КАК ТипСтроки, + | ВопросыШаблонаАнкеты.РодительВопрос КАК РодительВопрос, + | ВопросыШаблонаАнкеты.Подсказка КАК Подсказка, + | ВопросыШаблонаАнкеты.СпособОтображенияПодсказки КАК СпособОтображенияПодсказки, + | ВопросыШаблонаАнкеты.СоставТабличногоВопроса.( + | НомерСтроки КАК НомерСтроки, + | ЭлементарныйВопрос КАК ЭлементарныйВопрос + | ) КАК СоставТабличногоВопроса, + | ВопросыШаблонаАнкеты.ПредопределенныеОтветы.( + | НомерСтроки КАК НомерСтроки, + | ЭлементарныйВопрос КАК ЭлементарныйВопрос, + | Ответ КАК Ответ + | ) КАК ПредопределенныеОтветы, + | ВопросыШаблонаАнкеты.СоставКомплексногоВопроса.( + | НомерСтроки КАК НомерСтроки, + | ЭлементарныйВопрос КАК ЭлементарныйВопрос, + | ЭлементарныйВопрос.ТребуетсяКомментарий КАК ТребуетсяКомментарий, + | ЭлементарныйВопрос.ПояснениеКомментария КАК ПояснениеКомментария + | ) КАК СоставКомплексногоВопроса, + | ЕСТЬNULL(ВопросыДляАнкетирования.Длина, 0) КАК Длина, + | ВопросыДляАнкетирования.ТипЗначения КАК ТипЗначения, + | ЕСТЬNULL(ВопросыДляАнкетирования.ТребуетсяКомментарий, ЛОЖЬ) КАК ТребуетсяКомментарий, + | ЕСТЬNULL(ВопросыДляАнкетирования.ПояснениеКомментария, """") КАК ПояснениеКомментария, + | ЕСТЬNULL(ВопросыДляАнкетирования.МинимальноеЗначение, 0) КАК МинимальноеЗначение, + | ЕСТЬNULL(ВопросыДляАнкетирования.МаксимальноеЗначение, 0) КАК МаксимальноеЗначение, + | ЕСТЬNULL(ВопросыДляАнкетирования.ВидПереключателя, ЗНАЧЕНИЕ(Перечисление.ВидыПереключателяВАнкетах.ПустаяСсылка)) КАК ВидПереключателя, + | ЕСТЬNULL(ВопросыДляАнкетирования.ВидФлажка, ЗНАЧЕНИЕ(Перечисление.ВидыФлажкаВАнкетах.ПустаяСсылка)) КАК ВидФлажка, + | ЕСТЬNULL(ВопросыДляАнкетирования.ТипОтвета, ЗНАЧЕНИЕ(Перечисление.ТипыОтветовНаВопрос.ПустаяСсылка)) КАК ТипОтвета, + | ЕСТЬNULL(ВопросыШаблонаАнкеты.Формулировка, """") КАК Формулировка, + | ЕСТЬNULL(ВопросыДляАнкетирования.Точность, 0) КАК Точность, + | ЕСТЬNULL(ВопросыДляАнкетирования.ИспользоватьМинимальноеЗначение, ЛОЖЬ) КАК ИспользоватьМинимальноеЗначение, + | ЕСТЬNULL(ВопросыДляАнкетирования.ИспользоватьМаксимальноеЗначение, ЛОЖЬ) КАК ИспользоватьМаксимальноеЗначение, + | ЕСТЬNULL(ВопросыДляАнкетирования.ПоказыватьПолосуРегулирования, ЛОЖЬ) КАК ПоказыватьПолосуРегулирования, + | ЕСТЬNULL(ВопросыДляАнкетирования.ШагПолосыРегулирования, 0) КАК ШагПолосыРегулирования, + | ВопросыШаблонаАнкеты.ИспользоватьОтказОтОтвета КАК ИспользоватьОтказОтОтвета, + | ВопросыШаблонаАнкеты.ФормулировкаОтказаОтОтвета КАК ФормулировкаОтказаОтОтвета, + | ВопросыДляАнкетирования.ДиапазонПодсказокЧисловогоВопроса.( + | НомерСтроки КАК НомерСтроки, + | ЗначениеДо КАК ЗначениеДо, + | Подсказка КАК Подсказка + | ) КАК ДиапазонПодсказокЧисловогоВопроса + |ИЗ + | Справочник.ВопросыШаблонаАнкеты КАК ВопросыШаблонаАнкеты + | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ВопросыДляАнкетирования КАК ВопросыДляАнкетирования + | ПО ВопросыШаблонаАнкеты.ЭлементарныйВопрос = ВопросыДляАнкетирования.Ссылка + |ГДЕ + | НЕ ВопросыШаблонаАнкеты.ПометкаУдаления + | И ВопросыШаблонаАнкеты.Владелец = &ШаблонАнкеты + | И ВопросыШаблонаАнкеты.Родитель = &Раздел + | И НЕ ВопросыШаблонаАнкеты.ЭтоГруппа + | + |УПОРЯДОЧИТЬ ПО + | ВопросыШаблонаАнкеты.Код + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВариантыОтветовАнкет.Владелец КАК Вопрос, + | ВариантыОтветовАнкет.Ссылка КАК Ответ, + | ВариантыОтветовАнкет.Представление КАК Представление, + | ВариантыОтветовАнкет.ТребуетОткрытогоОтвета КАК ТребуетОткрытогоОтвета, + | ВариантыОтветовАнкет.Подсказка КАК Подсказка + |ИЗ + | Справочник.ВариантыОтветовАнкет КАК ВариантыОтветовАнкет + |ГДЕ + | ВариантыОтветовАнкет.Владелец В + | (ВЫБРАТЬ + | ВопросыШаблонаАнкеты.ЭлементарныйВопрос + | ИЗ + | Справочник.ВопросыШаблонаАнкеты КАК ВопросыШаблонаАнкеты + | ГДЕ + | ВопросыШаблонаАнкеты.Владелец = &ШаблонАнкеты + | И ВопросыШаблонаАнкеты.Родитель = &Раздел + | И НЕ ВопросыШаблонаАнкеты.ЭтоГруппа + | И НЕ ВопросыШаблонаАнкеты.ПометкаУдаления + | + | ОБЪЕДИНИТЬ ВСЕ + | + | ВЫБРАТЬ + | ВопросыШаблонаАнкетыСоставТабличногоВопроса.ЭлементарныйВопрос + | ИЗ + | Справочник.ВопросыШаблонаАнкеты.СоставТабличногоВопроса КАК ВопросыШаблонаАнкетыСоставТабличногоВопроса + | ГДЕ + | ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.Владелец = &ШаблонАнкеты + | И ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.Родитель = &Раздел + | И НЕ ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.ЭтоГруппа + | И НЕ ВопросыШаблонаАнкетыСоставТабличногоВопроса.Ссылка.ПометкаУдаления + | + | ОБЪЕДИНИТЬ ВСЕ + | + | ВЫБРАТЬ + | ВопросыШаблонаАнкетыСоставКомплексногоВопроса.ЭлементарныйВопрос + | ИЗ + | Справочник.ВопросыШаблонаАнкеты.СоставКомплексногоВопроса КАК ВопросыШаблонаАнкетыСоставКомплексногоВопроса + | ГДЕ + | ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.Владелец = &ШаблонАнкеты + | И ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.Родитель = &Раздел + | И НЕ ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.ЭтоГруппа + | И НЕ ВопросыШаблонаАнкетыСоставКомплексногоВопроса.Ссылка.ПометкаУдаления) + | И НЕ ВариантыОтветовАнкет.ПометкаУдаления + | + |УПОРЯДОЧИТЬ ПО + | ВариантыОтветовАнкет.РеквизитДопУпорядочивания"; + + Запрос.УстановитьПараметр("ШаблонАнкеты", ШаблонАнкеты); + Запрос.УстановитьПараметр("Раздел", Раздел); + МассивРезультатовЗапросов = Запрос.ВыполнитьПакет(); // Представление и типы вопросов. @@ -1829,22 +2075,27 @@ // Вопросы раздела шаблона анкеты. ВыборкаВопросыПоРазделуАнкеты = МассивРезультатовЗапросов[1].Выбрать(); СчетчикВопросов = 0; - + Пока ВыборкаВопросыПоРазделуАнкеты.Следующий() Цикл - + СчетчикВопросов = СчетчикВопросов + 1; ТаблицаВопросовФормы = Форма.ТаблицаВопросовРаздела; // ТаблицаЗначений НоваяСтрока = ТаблицаВопросовФормы.Добавить(); - ЗаполнитьЗначенияСвойств(НоваяСтрока,ВыборкаВопросыПоРазделуАнкеты,,"СоставТабличногоВопроса,ПредопределенныеОтветы,СоставКомплексногоВопроса"); + ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаВопросыПоРазделуАнкеты,, + "СоставТабличногоВопроса,ПредопределенныеОтветы,СоставКомплексногоВопроса,ДиапазонПодсказокЧисловогоВопроса"); НоваяСтрока.СоставТабличногоВопроса.Загрузить(ВыборкаВопросыПоРазделуАнкеты.СоставТабличногоВопроса.Выгрузить()); НоваяСтрока.СоставТабличногоВопроса.Сортировать("НомерСтроки Возр"); НоваяСтрока.ПредопределенныеОтветы.Загрузить(ВыборкаВопросыПоРазделуАнкеты.ПредопределенныеОтветы.Выгрузить()); НоваяСтрока.ПредопределенныеОтветы.Сортировать("НомерСтроки Возр"); - НоваяСтрока.СоставКомплексногоВопроса.Загрузить(ВыборкаВопросыПоРазделуАнкеты.СоставКомплексногоВопроса.Выгрузить()); + НоваяСтрока.СоставКомплексногоВопроса.Загрузить( + ВыборкаВопросыПоРазделуАнкеты.СоставКомплексногоВопроса.Выгрузить()); НоваяСтрока.СоставКомплексногоВопроса.Сортировать("НомерСтроки Возр"); + НоваяСтрока.ДиапазонПодсказокЧисловогоВопроса.Загрузить( + ВыборкаВопросыПоРазделуАнкеты.ДиапазонПодсказокЧисловогоВопроса.Выгрузить()); + НоваяСтрока.ДиапазонПодсказокЧисловогоВопроса.Сортировать("НомерСтроки Убыв"); НоваяСтрока.КлючСтроки = Новый УникальныйИдентификатор; НоваяСтрока.ПолныйКод = ПолныйКодРаздела + "." + XMLСтрока(СчетчикВопросов); - + КонецЦикла; // Варианты ответов @@ -1858,11 +2109,12 @@ // Форма - ФормаКлиентскогоПриложения - форма для которой формируется таблица подчинения. // Процедура СформироватьТаблицуПодчиненияВопросов(Форма) Экспорт - + Форма.ПодчиненныеВопросы.Очистить(); - + Запрос = Новый Запрос; - Запрос.Текст = " + Запрос.Текст = + " |ВЫБРАТЬ | ВнешнийИсточник.ВопросШаблона КАК ВопросШаблона, | ВнешнийИсточник.РодительВопрос КАК РодительВопрос, @@ -1911,83 +2163,85 @@ | ВопросыСУсловием КАК ВопросыСУсловием) |ИТОГИ ПО | КлючСтрокиРодителя"; - + ВнешнийИсточник = Форма.ТаблицаВопросовРаздела.Выгрузить(); // ТаблицаЗначений - ВнешнийИсточник.Колонки.Добавить("СтроковыйКлюч", Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(50))); - Для каждого СтрокаТаблицы Из ВнешнийИсточник Цикл + ВнешнийИсточник.Колонки.Добавить("СтроковыйКлюч", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(50))); + Для Каждого СтрокаТаблицы Из ВнешнийИсточник Цикл СтрокаТаблицы.СтроковыйКлюч = Строка(СтрокаТаблицы.КлючСтроки); КонецЦикла; - Запрос.УстановитьПараметр("ВнешнийИсточник",ВнешнийИсточник); - + Запрос.УстановитьПараметр("ВнешнийИсточник", ВнешнийИсточник); + Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Возврат; - КонецЕсли; - + КонецЕсли; + Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка.Следующий() Цикл - - Форма.Элементы[АнкетированиеКлиентСервер.ПолучитьИмяВопроса(Выборка.КлючСтрокиРодителя)].УстановитьДействие("ПриИзменении","Подключаемый_ПриИзмененииВопросовСУсловием"); - + + Форма.Элементы[АнкетированиеКлиентСервер.ИмяВопроса(Выборка.КлючСтрокиРодителя)].УстановитьДействие( + "ПриИзменении", "Подключаемый_ПриИзмененииВопросовСУсловием"); + ВыборкаДетали = Выборка.Выбрать(); - + НоваяСтрока = Форма.ПодчиненныеВопросы.Добавить(); НоваяСтрока.Вопрос = Выборка.КлючСтрокиРодителя; - + Пока ВыборкаДетали.Следующий() Цикл - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(ВыборкаДетали.КлючСтроки); + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(ВыборкаДетали.КлючСтроки); ТаблицаПодчиненные = НоваяСтрока.Подчиненные; // ТаблицаЗначений Если ВыборкаДетали.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Табличный Тогда - + НоваяСтрокаПодчиненные = ТаблицаПодчиненные.Добавить(); НоваяСтрокаПодчиненные.ИмяЭлементаПодчиненногоВопроса = ИмяВопроса + "_Таблица"; НоваяСтрокаПодчиненные.Обязательный = Выборка.Обязательный; - + ИначеЕсли ВыборкаДетали.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Комплексный Тогда - + НоваяСтрокаПодчиненные = ТаблицаПодчиненные.Добавить(); НоваяСтрокаПодчиненные.ИмяЭлементаПодчиненногоВопроса = ИмяВопроса + "_Группа"; НоваяСтрокаПодчиненные.Обязательный = Выборка.Обязательный; - + Иначе - + Если ВыборкаДетали.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - - ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(ВыборкаДетали.ЭлементарныйВопрос,Форма); - + + ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(ВыборкаДетали.ЭлементарныйВопрос, Форма); + Счетчик = 0; - Для каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл - + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + Счетчик = Счетчик + 1; НоваяСтрокаПодчиненные = ТаблицаПодчиненные.Добавить(); НоваяСтрокаПодчиненные.ИмяЭлементаПодчиненногоВопроса = ИмяВопроса + "_Реквизит_" + Счетчик; НоваяСтрокаПодчиненные.Обязательный = Ложь; - + Если ВариантОтвета.ТребуетОткрытогоОтвета Тогда НоваяСтрокаПодчиненные = ТаблицаПодчиненные.Добавить(); - НоваяСтрокаПодчиненные.ИмяЭлементаПодчиненногоВопроса = ИмяВопроса + "_Комментарий_" + Счетчик; + НоваяСтрокаПодчиненные.ИмяЭлементаПодчиненногоВопроса = ИмяВопроса + "_Комментарий_" + + Счетчик; НоваяСтрокаПодчиненные.Обязательный = Ложь; КонецЕсли; КонецЦикла; - + Иначе - + НоваяСтрокаПодчиненные = ТаблицаПодчиненные.Добавить(); НоваяСтрокаПодчиненные.ИмяЭлементаПодчиненногоВопроса = ИмяВопроса; НоваяСтрокаПодчиненные.Обязательный = ВыборкаДетали.Обязательный; - + Если ВыборкаДетали.ТребуетсяКомментарий Тогда НоваяСтрокаПодчиненные = ТаблицаПодчиненные.Добавить(); НоваяСтрокаПодчиненные.ИмяЭлементаПодчиненногоВопроса = ИмяВопроса + "_Комментарий"; - НоваяСтрокаПодчиненные.Обязательный = Ложь;; + НоваяСтрокаПодчиненные.Обязательный = Ложь; КонецЕсли; - + КонецЕсли; КонецЕсли; - КонецЦикла; // выборка детали - КонецЦикла; // выборка - + КонецЦикла; + КонецЦикла; + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -1995,52 +2249,52 @@ // Процедура удаляет старые элементы вопроса шаблона анкеты. Процедура УдалитьВопросыШаблонаАнкеты(СсылкаВладелец) Экспорт - + УстановитьПривилегированныйРежим(Истина); - + Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("Справочник.ВопросыШаблонаАнкеты"); ЭлементБлокировки.УстановитьЗначение("Владелец", СсылкаВладелец); - + НачатьТранзакцию(); Попытка - + Блокировка.Заблокировать(); - - // Удалим старые вопросы шаблона. + Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ + Запрос.Текст = + "ВЫБРАТЬ | ВопросыШаблонаАнкеты.Ссылка |ИЗ | Справочник.ВопросыШаблонаАнкеты КАК ВопросыШаблонаАнкеты |ГДЕ | ВопросыШаблонаАнкеты.Владелец = &Владелец"; - - Запрос.УстановитьПараметр("Владелец",СсылкаВладелец); - + + Запрос.УстановитьПараметр("Владелец", СсылкаВладелец); + РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда - + МассивСсылок = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка"); - Для каждого ЭлементМассива Из МассивСсылок Цикл - + Для Каждого ЭлементМассива Из МассивСсылок Цикл + СправочникОбъект = ЭлементМассива.ПолучитьОбъект(); - Если (НЕ СправочникОбъект = Неопределено) Тогда + Если (Не СправочникОбъект = Неопределено) Тогда СправочникОбъект.Удалить(); КонецЕсли; - + КонецЦикла; КонецЕсли; - + ЗафиксироватьТранзакцию(); - + Исключение ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; - + УстановитьПривилегированныйРежим(Ложь); - + КонецПроцедуры // Получает представления элементарный вопросов табличных вопросов @@ -2058,11 +2312,12 @@ // ** АгрегироватьСуммуВОтчетах - Булево // Функция ПредставленияЭлементарныхВопросовТабличногоВопроса(ШаблонАнкеты) Экспорт - + ПредставленияВопросов = Новый Соответствие; - + Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ + Запрос.Текст = + "ВЫБРАТЬ | ВопросыШаблонаАнкеты.Ссылка |ПОМЕСТИТЬ ВопросыШаблона |ИЗ @@ -2098,21 +2353,22 @@ | ЭлементарныеВопросы.ЭлементарныйВопрос | ИЗ | ЭлементарныеВопросы КАК ЭлементарныеВопросы)"; - - Запрос.УстановитьПараметр("ШаблонАнкеты",ШаблонАнкеты); - + + Запрос.УстановитьПараметр("ШаблонАнкеты", ШаблонАнкеты); + Результат = Запрос.Выполнить(); - Если НЕ Результат.Пустой() Тогда - + Если Не Результат.Пустой() Тогда + Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл - ПредставленияВопросов.Вставить(Выборка.Ссылка,Новый Структура("Формулировка,АгрегироватьСуммуВОтчетах", Выборка.Формулировка,Выборка.АгрегироватьСуммуВОтчетах)); + ПредставленияВопросов.Вставить(Выборка.Ссылка, Новый Структура("Формулировка,АгрегироватьСуммуВОтчетах", + Выборка.Формулировка, Выборка.АгрегироватьСуммуВОтчетах)); КонецЦикла; - - КонецЕсли; - + + КонецЕсли; + Возврат ПредставленияВопросов; - + КонецФункции // Получает таблицу доступных на данный момент респонденту анкет. @@ -2131,127 +2387,140 @@ // Неопределено - в случае если для респондента нет доступных анкет. // Функция ТаблицаДоступныхРеспондентуАнкет(Респондент) Экспорт - + Если Не ЗначениеЗаполнено(Респондент) Тогда Возврат Неопределено; КонецЕсли; - + Запрос = Новый Запрос; Запрос.УстановитьПараметр("Респондент", Респондент); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса()); - Запрос.УстановитьПараметр("ПустаяДата" ,Дата(1, 1, 1)); + Запрос.УстановитьПараметр("ПустаяДата", Дата(1, 1, 1)); Запрос.УстановитьПараметр("ТипРеспондентов", Справочники[Респондент.Метаданные().Имя].ПустаяСсылка()); Запрос.Текст = - "ВЫБРАТЬ - | НазначениеОпросов.Ссылка КАК Ссылка, - | НазначениеОпросов.СвободныйОпрос КАК СвободныйОпрос, - | НазначениеОпросов.ДатаОкончания КАК ДатаОкончания, - | НазначениеОпросов.Наименование КАК Наименование - |ПОМЕСТИТЬ ДействующиеОпросы - |ИЗ - | Документ.НазначениеОпросов КАК НазначениеОпросов - |ГДЕ - | НазначениеОпросов.Проведен - | И НЕ НазначениеОпросов.ПометкаУдаления - | И НазначениеОпросов.ТипРеспондентов = &ТипРеспондентов - | И (НазначениеОпросов.ДатаНачала = &ПустаяДата - | ИЛИ НАЧАЛОПЕРИОДА(НазначениеОпросов.ДатаНачала, ДЕНЬ) < &ТекущаяДата) - | И (НазначениеОпросов.ДатаОкончания = &ПустаяДата - | ИЛИ КОНЕЦПЕРИОДА(НазначениеОпросов.ДатаОкончания, ДЕНЬ) > &ТекущаяДата) - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ДействующиеОпросы.Ссылка КАК Ссылка, - | ДействующиеОпросы.ДатаОкончания КАК ДатаОкончания, - | ДействующиеОпросы.Наименование КАК Наименование - |ПОМЕСТИТЬ ДействующиеОпросыОтборПоРеспонденту - |ИЗ - | ДействующиеОпросы КАК ДействующиеОпросы - |ГДЕ - | ДействующиеОпросы.СвободныйОпрос - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | НазначениеОпросовРеспонденты.Ссылка, - | НазначениеОпросов.ДатаОкончания, - | НазначениеОпросов.Наименование - |ИЗ - | Документ.НазначениеОпросов.Респонденты КАК НазначениеОпросовРеспонденты - | ЛЕВОЕ СОЕДИНЕНИЕ Документ.НазначениеОпросов КАК НазначениеОпросов - | ПО НазначениеОпросовРеспонденты.Ссылка = НазначениеОпросов.Ссылка - |ГДЕ - | НазначениеОпросовРеспонденты.Респондент = &Респондент - | И НазначениеОпросовРеспонденты.Ссылка В - | (ВЫБРАТЬ - | ДействующиеОпросы.Ссылка - | ИЗ - | ДействующиеОпросы КАК ДействующиеОпросы - | ГДЕ - | НЕ ДействующиеОпросы.СвободныйОпрос) - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | Анкета.Ссылка КАК Ссылка, - | Анкета.ДатаРедактирования КАК Дата, - | Анкета.Проведен КАК Проведен, - | Анкета.Опрос КАК Опрос - |ПОМЕСТИТЬ АнкетыПоДействующимЗапросам - |ИЗ - | Документ.Анкета КАК Анкета - |ГДЕ - | Анкета.Опрос В - | (ВЫБРАТЬ - | ДействующиеОпросыОтборПоРеспонденту.Ссылка - | ИЗ - | ДействующиеОпросыОтборПоРеспонденту КАК ДействующиеОпросыОтборПоРеспонденту) - | И Анкета.Респондент = &Респондент - | И НЕ Анкета.ПометкаУдаления - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ВЫБОР - | КОГДА АнкетыПоДействующимЗапросам.Ссылка ЕСТЬ NULL - | ТОГДА ""Опросы"" - | ИНАЧЕ ""Анкеты"" - | КОНЕЦ КАК Статус, - | ВЫБОР - | КОГДА АнкетыПоДействующимЗапросам.Ссылка ЕСТЬ NULL - | ТОГДА ДействующиеОпросыОтборПоРеспонденту.Ссылка - | ИНАЧЕ АнкетыПоДействующимЗапросам.Ссылка - | КОНЕЦ КАК АнкетаОпрос, - | ДействующиеОпросыОтборПоРеспонденту.ДатаОкончания КАК ДатаОкончания, - | ДействующиеОпросыОтборПоРеспонденту.Наименование КАК Наименование, - | АнкетыПоДействующимЗапросам.Дата КАК ДатаАнкеты, - | ЕСТЬNULL(АнкетыПоДействующимЗапросам.Проведен, ЛОЖЬ) КАК Проведен - |ПОМЕСТИТЬ НеотвеченныеОпросыСохраненныеАнкеты - |ИЗ - | ДействующиеОпросыОтборПоРеспонденту КАК ДействующиеОпросыОтборПоРеспонденту - | ЛЕВОЕ СОЕДИНЕНИЕ АнкетыПоДействующимЗапросам КАК АнкетыПоДействующимЗапросам - | ПО ДействующиеОпросыОтборПоРеспонденту.Ссылка = АнкетыПоДействующимЗапросам.Опрос - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | НеотвеченныеОпросыСохраненныеАнкеты.Статус КАК Статус, - | НеотвеченныеОпросыСохраненныеАнкеты.АнкетаОпрос КАК АнкетаОпрос, - | НеотвеченныеОпросыСохраненныеАнкеты.ДатаОкончания КАК ДатаОкончания, - | НеотвеченныеОпросыСохраненныеАнкеты.Наименование КАК Наименование, - | НеотвеченныеОпросыСохраненныеАнкеты.ДатаАнкеты КАК ДатаАнкеты - |ИЗ - | НеотвеченныеОпросыСохраненныеАнкеты КАК НеотвеченныеОпросыСохраненныеАнкеты - |ГДЕ - | НЕ НеотвеченныеОпросыСохраненныеАнкеты.Проведен"; - + "ВЫБРАТЬ + | НазначениеОпросов.Ссылка КАК Ссылка, + | НазначениеОпросов.СвободныйОпрос КАК СвободныйОпрос, + | НазначениеОпросов.ДатаОкончания КАК ДатаОкончания, + | НазначениеОпросов.Наименование КАК Наименование + |ПОМЕСТИТЬ ДействующиеОпросы + |ИЗ + | Документ.НазначениеОпросов КАК НазначениеОпросов + |ГДЕ + | НазначениеОпросов.Проведен + | И НЕ НазначениеОпросов.ПометкаУдаления + | И НазначениеОпросов.ТипРеспондентов = &ТипРеспондентов + | И (НазначениеОпросов.ДатаНачала = &ПустаяДата + | ИЛИ НАЧАЛОПЕРИОДА(НазначениеОпросов.ДатаНачала, ДЕНЬ) < &ТекущаяДата) + | И (НазначениеОпросов.ДатаОкончания = &ПустаяДата + | ИЛИ КОНЕЦПЕРИОДА(НазначениеОпросов.ДатаОкончания, ДЕНЬ) > &ТекущаяДата) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ДействующиеОпросы.Ссылка КАК Ссылка, + | ДействующиеОпросы.ДатаОкончания КАК ДатаОкончания, + | ДействующиеОпросы.Наименование КАК Наименование + |ПОМЕСТИТЬ ДействующиеОпросыОтборПоРеспонденту + |ИЗ + | ДействующиеОпросы КАК ДействующиеОпросы + |ГДЕ + | ДействующиеОпросы.СвободныйОпрос + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | НазначениеОпросовРеспонденты.Ссылка, + | НазначениеОпросов.ДатаОкончания, + | НазначениеОпросов.Наименование + |ИЗ + | Документ.НазначениеОпросов.Респонденты КАК НазначениеОпросовРеспонденты + | ЛЕВОЕ СОЕДИНЕНИЕ Документ.НазначениеОпросов КАК НазначениеОпросов + | ПО НазначениеОпросовРеспонденты.Ссылка = НазначениеОпросов.Ссылка + |ГДЕ + | НазначениеОпросовРеспонденты.Респондент = &Респондент + | И НазначениеОпросовРеспонденты.Ссылка В + | (ВЫБРАТЬ + | ДействующиеОпросы.Ссылка + | ИЗ + | ДействующиеОпросы КАК ДействующиеОпросы + | ГДЕ + | НЕ ДействующиеОпросы.СвободныйОпрос) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Анкета.Ссылка КАК Ссылка, + | Анкета.ДатаРедактирования КАК Дата, + | Анкета.Проведен КАК Проведен, + | Анкета.Опрос КАК Опрос + |ПОМЕСТИТЬ АнкетыПоДействующимЗапросам + |ИЗ + | Документ.Анкета КАК Анкета + |ГДЕ + | Анкета.Опрос В + | (ВЫБРАТЬ + | ДействующиеОпросыОтборПоРеспонденту.Ссылка + | ИЗ + | ДействующиеОпросыОтборПоРеспонденту КАК ДействующиеОпросыОтборПоРеспонденту) + | И Анкета.Респондент = &Респондент + | И НЕ Анкета.ПометкаУдаления + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВЫБОР + | КОГДА АнкетыПоДействующимЗапросам.Ссылка ЕСТЬ NULL + | ТОГДА ""Опросы"" + | ИНАЧЕ ""Анкеты"" + | КОНЕЦ КАК Статус, + | ВЫБОР + | КОГДА АнкетыПоДействующимЗапросам.Ссылка ЕСТЬ NULL + | ТОГДА ДействующиеОпросыОтборПоРеспонденту.Ссылка + | ИНАЧЕ АнкетыПоДействующимЗапросам.Ссылка + | КОНЕЦ КАК АнкетаОпрос, + | ДействующиеОпросыОтборПоРеспонденту.ДатаОкончания КАК ДатаОкончания, + | ДействующиеОпросыОтборПоРеспонденту.Наименование КАК Наименование, + | АнкетыПоДействующимЗапросам.Дата КАК ДатаАнкеты, + | ЕСТЬNULL(АнкетыПоДействующимЗапросам.Проведен, ЛОЖЬ) КАК Проведен + |ПОМЕСТИТЬ НеотвеченныеОпросыСохраненныеАнкеты + |ИЗ + | ДействующиеОпросыОтборПоРеспонденту КАК ДействующиеОпросыОтборПоРеспонденту + | ЛЕВОЕ СОЕДИНЕНИЕ АнкетыПоДействующимЗапросам КАК АнкетыПоДействующимЗапросам + | ПО ДействующиеОпросыОтборПоРеспонденту.Ссылка = АнкетыПоДействующимЗапросам.Опрос + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | НеотвеченныеОпросыСохраненныеАнкеты.Статус КАК Статус, + | НеотвеченныеОпросыСохраненныеАнкеты.АнкетаОпрос КАК АнкетаОпрос, + | НеотвеченныеОпросыСохраненныеАнкеты.ДатаОкончания КАК ДатаОкончания, + | НеотвеченныеОпросыСохраненныеАнкеты.Наименование КАК Наименование, + | НеотвеченныеОпросыСохраненныеАнкеты.ДатаАнкеты КАК ДатаАнкеты + |ИЗ + | НеотвеченныеОпросыСохраненныеАнкеты КАК НеотвеченныеОпросыСохраненныеАнкеты + |ГДЕ + | НЕ НеотвеченныеОпросыСохраненныеАнкеты.Проведен"; + Результат = Запрос.Выполнить(); - - Если НЕ Результат.Пустой() Тогда + + Если Не Результат.Пустой() Тогда Возврат Результат.Выгрузить(); КонецЕсли; - + КонецФункции -#КонецОбласти +Функция РазрешенВводНулевогоЗначенияВЧисловоеПоле(СтрокаТаблицы) Экспорт + + Если СтрокаТаблицы.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.Число Тогда + Возврат Ложь; + КонецЕсли; + + Слева = ?(СтрокаТаблицы.ИспользоватьМинимальноеЗначение, СтрокаТаблицы.МинимальноеЗначение, -1); + Справа = ?(СтрокаТаблицы.ИспользоватьМаксимальноеЗначение, СтрокаТаблицы.МаксимальноеЗначение, 1); + + Возврат (Слева <= 0 И Справа >= 0); + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/АнкетированиеКлиент/Module.bsl b/SSL/src/CommonModules/АнкетированиеКлиент/Module.bsl index 44cd56285..960101d56 100644 --- a/SSL/src/CommonModules/АнкетированиеКлиент/Module.bsl +++ b/SSL/src/CommonModules/АнкетированиеКлиент/Module.bsl @@ -11,14 +11,14 @@ // Создает структуру отбора, для дальнейшей передачи на сервер, // и использования в качестве параметров отбора динамических списков вызываемых форм. // -Функция СоздатьСтруктуруПараметраОтбора(ТипОтбора,ЛевоеЗначение,ВидСравнения,ПравоеЗначение) Экспорт +Функция СоздатьСтруктуруПараметраОтбора(ТипОтбора, ЛевоеЗначение, ВидСравнения, ПравоеЗначение) Экспорт СтруктураВозврата = Новый Структура; - СтруктураВозврата.Вставить("ТипОтбора",ТипОтбора); - СтруктураВозврата.Вставить("ЛевоеЗначение",ЛевоеЗначение); - СтруктураВозврата.Вставить("ВидСравнения",ВидСравнения); - СтруктураВозврата.Вставить("ПравоеЗначение",ПравоеЗначение); - + СтруктураВозврата.Вставить("ТипОтбора", ТипОтбора); + СтруктураВозврата.Вставить("ЛевоеЗначение", ЛевоеЗначение); + СтруктураВозврата.Вставить("ВидСравнения", ВидСравнения); + СтруктураВозврата.Вставить("ПравоеЗначение", ПравоеЗначение); + Возврат СтруктураВозврата; КонецФункции @@ -30,53 +30,342 @@ // ШаблонАнкеты - СправочникСсылка.ШаблоныАнкет - шаблон, по которому проводится интервью. // - Неопределено - пользователь выбирает шаблон из справочника. // -Процедура НачатьИнтервью(Респондент, ШаблонАнкеты=Неопределено) Экспорт - - Если ШаблонАнкеты=Неопределено Тогда - +Процедура НачатьИнтервью(Респондент, ШаблонАнкеты = Неопределено) Экспорт + + Если ШаблонАнкеты = Неопределено Тогда + ОписаниеОповещения = Новый ОписаниеОповещения("НачатьИнтервьюСВыборомШаблонаЗавершение", ЭтотОбъект, Респондент); - + ПоказатьВводЗначения(ОписаниеОповещения, Неопределено, , Тип("СправочникСсылка.ШаблоныАнкет")); - + Иначе - + ОткрытьФормуИнтервью(Респондент, ШаблонАнкеты); - + КонецЕсли; - + КонецПроцедуры // Открывает форму новой анкеты в режиме интервью с выбранным респондентом и шаблоном анкеты. // Процедура ОткрытьФормуИнтервью(Респондент, ШаблонАнкеты) - + ЗначенияЗаполнения = Новый Структура; ЗначенияЗаполнения.Вставить("Респондент", Респондент); ЗначенияЗаполнения.Вставить("ШаблонАнкеты", ШаблонАнкеты); - ЗначенияЗаполнения.Вставить("РежимАнкетирования", ПредопределенноеЗначение("Перечисление.РежимыАнкетирования.Интервью")); - + ЗначенияЗаполнения.Вставить("РежимАнкетирования", ПредопределенноеЗначение( + "Перечисление.РежимыАнкетирования.Интервью")); + ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения); ПараметрыФормы.Вставить("ТолькоФормаЗаполнения", Истина); - + ФормаАнкеты = ОткрытьФорму("Документ.Анкета.ФормаОбъекта", ПараметрыФормы); - + Если ФормаАнкеты <> Неопределено Тогда ЗаполнитьЗначенияСвойств(ФормаАнкеты, ЗначенияЗаполнения); КонецЕсли; - + КонецПроцедуры // Обработчик результата работы процедуры НачатьИнтервьюСВыборомШаблона. // Процедура НачатьИнтервьюСВыборомШаблонаЗавершение(ВыбранныйШаблон, Респондент) Экспорт - + Если ВыбранныйШаблон = Неопределено Тогда Возврат; КонецЕсли; - - ОткрытьФормуИнтервью(Респондент, ВыбранныйШаблон); - + + ОткрытьФормуИнтервью(Респондент, ВыбранныйШаблон); + КонецПроцедуры -#КонецОбласти +Процедура ПриИзмененииВопроса(Форма, Элемент) Экспорт + + ИмяВопроса = Элемент.Имя; + + Если СтрНайти(ИмяВопроса, "_Комментарий") <> 0 Тогда + Возврат; + КонецЕсли; + + Если СтрНайти(ИмяВопроса, "_Таблица") <> 0 Тогда + Возврат; + КонецЕсли; + + Если СтрНайти(ИмяВопроса, "_Ответ_") <> 0 Тогда + Возврат; + КонецЕсли; + + Если СтрНайти(ИмяВопроса, "_Реквизит_") <> 0 Тогда + ПриИзмененииВопросаСВыборомОтветов(Форма, ИмяВопроса); + Возврат; + КонецЕсли; + + НайденныеСтроки = Форма.ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("КлючСтроки", + Новый УникальныйИдентификатор(СтрЗаменить(Прав(ИмяВопроса, 36), "_", "-")))); + + Если НайденныеСтроки.Количество() > 0 Тогда + УстановитьПодсказкуУЧисловогоВопроса(Форма, НайденныеСтроки[0], ИмяВопроса); + Если НайденныеСтроки[0].Обязательный Тогда + НаименованиеГруппы = ИмяВопроса + "_Группа"; + ИзменитьЦветФонаГруппыОбязательногоВопроса(Форма.Элементы[НаименованиеГруппы].ЦветФона, ЗначениеЗаполнено( + Форма[ИмяВопроса])); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Процедура ПриИзмененииПолосыРегулирования(Форма, Элемент) Экспорт + + ИмяРеквизитаЧисло = Лев(Элемент.Имя, СтрНайти(Элемент.Имя, "_ПолосаРегулирования") - 1); + НайденныеСтроки = Форма.ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("КлючСтроки", + Новый УникальныйИдентификатор(СтрЗаменить(Прав(ИмяРеквизитаЧисло, 36), "_", "-")))); + + Если НайденныеСтроки.Количество() > 0 Тогда + ШагПриращения = НайденныеСтроки[0].ШагПолосыРегулирования; + Форма[ИмяРеквизитаЧисло] = НайденныеСтроки[0].МинимальноеЗначение + ШагПриращения * Форма[Элемент.Имя + + "Реквизит"]; + + УстановитьПодсказкуУЧисловогоВопроса(Форма, НайденныеСтроки[0], ИмяРеквизитаЧисло); + + Если НайденныеСтроки[0].Обязательный Тогда + НаименованиеГруппы = ИмяРеквизитаЧисло + "_Группа"; + ИзменитьЦветФонаГруппыОбязательногоВопроса(Форма.Элементы[НаименованиеГруппы].ЦветФона, ЗначениеЗаполнено( + Форма[ИмяРеквизитаЧисло])); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Процедура РегулированиеПоляЧисло(Форма, Элемент, Направление, СтандартнаяОбработка) Экспорт + + СтандартнаяОбработка = Ложь; + + НайденныеСтроки = Форма.ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("КлючСтроки", + Новый УникальныйИдентификатор(СтрЗаменить(Прав(Элемент.Имя, 36), "_", "-")))); + + Если НайденныеСтроки.Количество() > 0 Тогда + ШагПриращения = НайденныеСтроки[0].ШагПолосыРегулирования; + НовоеЗначение = Форма[Элемент.Имя] + Направление * ШагПриращения; + Если Направление = 1 И НовоеЗначение > Элемент.МаксимальноеЗначение Тогда + Форма[Элемент.Имя] = Элемент.МаксимальноеЗначение; + ИначеЕсли Направление = -1 И НовоеЗначение < Элемент.МинимальноеЗначение Тогда + Форма[Элемент.Имя] = Элемент.МинимальноеЗначение; + Иначе + Форма[Элемент.Имя] = НовоеЗначение; + КонецЕсли; + Форма[Элемент.Имя + "_ПолосаРегулированияРеквизит"] = (Форма[Элемент.Имя] + - НайденныеСтроки[0].МинимальноеЗначение) / ШагПриращения; + + УстановитьПодсказкуУЧисловогоВопроса(Форма, НайденныеСтроки[0], Элемент.Имя); + + Если НайденныеСтроки[0].Обязательный Тогда + НаименованиеГруппы = Элемент.Имя + "_Группа"; + ИзменитьЦветФонаГруппыОбязательногоВопроса(Форма.Элементы[НаименованиеГруппы].ЦветФона, ЗначениеЗаполнено( + Форма[Элемент.Имя])); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Процедура ПриИзмененииПоляЧисло(Форма, Элемент) Экспорт + + Если Форма.Элементы.Найти(Элемент.Имя + "_ПолосаРегулирования") = Неопределено Тогда + Возврат; + КонецЕсли; + + НайденныеСтроки = Форма.ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("КлючСтроки", + Новый УникальныйИдентификатор(СтрЗаменить(Прав(Элемент.Имя, 36), "_", "-")))); + + Если НайденныеСтроки.Количество() > 0 Тогда + ШагПриращения = НайденныеСтроки[0].ШагПолосыРегулирования; + Форма[Элемент.Имя + "_ПолосаРегулированияРеквизит"] = (Форма[Элемент.Имя] + - НайденныеСтроки[0].МинимальноеЗначение) / ШагПриращения; + + УстановитьПодсказкуУЧисловогоВопроса(Форма, НайденныеСтроки[0], Элемент.Имя); + + Если НайденныеСтроки[0].Обязательный Тогда + НаименованиеГруппы = Элемент.Имя + "_Группа"; + ИзменитьЦветФонаГруппыОбязательногоВопроса(Форма.Элементы[НаименованиеГруппы].ЦветФона, ЗначениеЗаполнено( + Форма[Элемент.Имя])); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Процедура ПриИзмененииФлагаНеОтвечатьНаВопрос(Форма, Элемент) Экспорт + + ИмяВопроса = Лев(Элемент.Имя, СтрНайти(Элемент.Имя, "_ИспользоватьОтказОтОтвета") - 1); + + НайденныеСтроки = Форма.ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("КлючСтроки", + Новый УникальныйИдентификатор(СтрЗаменить(Прав(ИмяВопроса, 36), "_", "-")))); + + Если НайденныеСтроки.Количество() > 0 Тогда + ВыделитьВопросСОтветом(Форма, НайденныеСтроки[0], ИмяВопроса); + КонецЕсли; + +КонецПроцедуры + +Процедура ПриИзмененииВопросаСВыборомОтветов(Форма, ИмяВопроса) + + НайденныеСтроки = Форма.ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("КлючСтроки", + Новый УникальныйИдентификатор(СтрЗаменить(Прав(Лев(ИмяВопроса, 43), 36), "_", "-")))); + + Если НайденныеСтроки.Количество() > 0 Тогда + Вопрос = НайденныеСтроки[0]; + Если Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ОдинВариантИз") Тогда + ПриИзмененииВопросаСВыборомОдногоВариантаОтвета(Форма, Вопрос, ИмяВопроса); + ИначеЕсли Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.НесколькоВариантовИз") Тогда + ПриИзмененииВопросаСВыборомНесколькихВариантовОтвета(Форма, Вопрос, ИмяВопроса); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Процедура ПриИзмененииВопросаСВыборомОдногоВариантаОтвета(Форма, Вопрос, ИмяВопроса) + + ВариантыОтветов = Форма.ВариантыОтветовНаВопросы.НайтиСтроки(Новый Структура("Вопрос", Вопрос.ЭлементарныйВопрос)); + Для инд = 1 По ВариантыОтветов.Количество() Цикл + Если Форма[ИмяВопроса] = ВариантыОтветов[инд - 1].Ответ Тогда + Форма.Элементы[Лев(ИмяВопроса, 43) + "_РасшифровкаПодсказки"].Заголовок = ВариантыОтветов[инд - 1].Подсказка; + Иначе + Форма[Лев(ИмяВопроса, 43) + "_Реквизит_" + инд] = Неопределено; + КонецЕсли; + КонецЦикла; + + Если Вопрос.Обязательный Тогда + НаименованиеГруппы = Лев(ИмяВопроса, 43) + "_Группа"; + ИзменитьЦветФонаГруппыОбязательногоВопроса(Форма.Элементы[НаименованиеГруппы].ЦветФона, Истина); + КонецЕсли; + +КонецПроцедуры + +Процедура ПриИзмененииВопросаСВыборомНесколькихВариантовОтвета(Форма, Вопрос, ИмяВопроса) + + ВариантыОтветов = Форма.ВариантыОтветовНаВопросы.НайтиСтроки(Новый Структура("Вопрос", Вопрос.ЭлементарныйВопрос)); + ЕстьОтвет = Ложь; + Для инд = 1 По ВариантыОтветов.Количество() Цикл + Если Форма[Лев(ИмяВопроса, 43) + "_Реквизит_" + инд] Тогда + ЕстьОтвет = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + Если Вопрос.Обязательный Тогда + НаименованиеГруппы = Лев(ИмяВопроса, 43) + "_Группа"; + ИзменитьЦветФонаГруппыОбязательногоВопроса(Форма.Элементы[НаименованиеГруппы].ЦветФона, ЕстьОтвет); + КонецЕсли; + +КонецПроцедуры + +Процедура ВыделитьВопросыНаКоторыеДаныОтветы(Форма) Экспорт + + Для Каждого Вопрос Из Форма.ТаблицаВопросовРаздела Цикл + Если Вопрос.ТипВопроса = ПредопределенноеЗначение("Перечисление.ТипыВопросовШаблонаАнкеты.Простой") + И Вопрос.Обязательный Тогда + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(Вопрос.КлючСтроки); + ВыделитьВопросСОтветом(Форма, Вопрос, ИмяВопроса); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +Процедура ВыделитьВопросСОтветом(Форма, Вопрос, ИмяВопроса) + + БезОтвета = Ложь; + Если Вопрос.ИспользоватьОтказОтОтвета Тогда + БезОтвета = Форма[ИмяВопроса + "_ИспользоватьОтказОтОтвета"]; + КонецЕсли; + + Если Вопрос.ТипОтвета <> ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ОдинВариантИз") + И Вопрос.ТипОтвета <> ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.НесколькоВариантовИз") + И Вопрос.ТипОтвета <> ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.Булево") Тогда + Форма.Элементы[ИмяВопроса].АвтоОтметкаНезаполненного = Не БезОтвета; + КонецЕсли; + + Если Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.Число") + И Вопрос.ПоказыватьПолосуРегулирования Тогда + Форма.Элементы[ИмяВопроса + "_ПолосаРегулирования"].Доступность = Не БезОтвета; + КонецЕсли; + + Если Вопрос.ТребуетсяКомментарий Тогда + Форма.Элементы[ИмяВопроса + "_Комментарий"].Доступность = Не БезОтвета; + КонецЕсли; + + Если Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.НесколькоВариантовИз") + Или Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ОдинВариантИз") Тогда + Форма.Элементы[ИмяВопроса + "_Группа_Варианты"].Доступность = Не БезОтвета; + ЕстьОтвет = ЕстьОтветНаВопросСВыборомОтветов(Форма, Вопрос, ИмяВопроса); + Иначе + Форма.Элементы[ИмяВопроса].Доступность = Не БезОтвета; + ЕстьОтвет = ЗначениеЗаполнено(Форма[ИмяВопроса]); + КонецЕсли; + + Если ЕстьОтвет Тогда + УстановитьПодсказкуУЧисловогоВопроса(Форма, Вопрос, ИмяВопроса); + КонецЕсли; + + ВыделитьФон = ЕстьОтвет Или БезОтвета; + + НаименованиеГруппы = ИмяВопроса + "_Группа"; + ИзменитьЦветФонаГруппыОбязательногоВопроса(Форма.Элементы[НаименованиеГруппы].ЦветФона, ВыделитьФон); + +КонецПроцедуры + +Функция ЕстьОтветНаВопросСВыборомОтветов(Форма, Вопрос, ИмяВопроса) + + ВариантыОтветов = Форма.ВариантыОтветовНаВопросы.НайтиСтроки(Новый Структура("Вопрос", Вопрос.ЭлементарныйВопрос)); + + Если Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ОдинВариантИз") Тогда + Для инд = 1 По ВариантыОтветов.Количество() Цикл + Если ЗначениеЗаполнено(Форма[ИмяВопроса + "_Реквизит_" + инд]) Тогда + Форма.Элементы[Лев(ИмяВопроса, 43) + "_РасшифровкаПодсказки"].Заголовок = ВариантыОтветов[инд + - 1].Подсказка; + Возврат Истина; + КонецЕсли; + КонецЦикла; + ИначеЕсли Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.НесколькоВариантовИз") Тогда + Для инд = 1 По ВариантыОтветов.Количество() Цикл + Если Форма[Лев(ИмяВопроса, 43) + "_Реквизит_" + инд] Тогда + Возврат Истина; + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +Процедура УстановитьПодсказкуУЧисловогоВопроса(Форма, Вопрос, ИмяВопроса) + + Если Вопрос.ТипОтвета <> ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.Число") Тогда + Возврат; + КонецЕсли; + + Если Вопрос.ДиапазонПодсказокЧисловогоВопроса.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ТекстПодсказки = ""; + Для Каждого Диапазон Из Вопрос.ДиапазонПодсказокЧисловогоВопроса Цикл + Если Форма[ИмяВопроса] <= Диапазон.ЗначениеДо Тогда + ТекстПодсказки = Диапазон.Подсказка; + КонецЕсли; + КонецЦикла; + + Форма.Элементы[ИмяВопроса].Подсказка = ТекстПодсказки; + Форма.Элементы[ИмяВопроса + "_РасшифровкаПодсказки"].Заголовок = ТекстПодсказки; + +КонецПроцедуры + +Процедура ИзменитьЦветФонаГруппыОбязательногоВопроса(ЦветФонаГруппыВопроса, ВыделитьФон) + + Если ВыделитьФон Тогда + ЦветФонаГруппыВопроса = ОбщегоНазначенияКлиент.ЦветСтиля("ЦветФонаПоложительногоЗначения"); + Иначе + ЦветФонаГруппыВопроса = Новый Цвет; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/АнкетированиеКлиентСервер/Module.bsl b/SSL/src/CommonModules/АнкетированиеКлиентСервер/Module.bsl index 4af11e091..319110bd8 100644 --- a/SSL/src/CommonModules/АнкетированиеКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/АнкетированиеКлиентСервер/Module.bsl @@ -20,21 +20,22 @@ // Возвращаемое значение: // Строка - получившаяся в результате обработки строка. // -Функция УдалитьПоследниеСимволыИзСтроки(ВходящаяСтрока,ПодстрокаУдаления,Разделитель = Неопределено) Экспорт - - Пока Прав(ВходящаяСтрока,СтрДлина(ПодстрокаУдаления)) = ПодстрокаУдаления Цикл - +Функция УдалитьПоследниеСимволыИзСтроки(ВходящаяСтрока, ПодстрокаУдаления, Разделитель = Неопределено) Экспорт + + Пока Прав(ВходящаяСтрока, СтрДлина(ПодстрокаУдаления)) = ПодстрокаУдаления Цикл + Если Разделитель <> Неопределено Тогда - Если СРЕД(ВходящаяСтрока,СтрДлина(ВходящаяСтрока)-СтрДлина(ПодстрокаУдаления)-СтрДлина(Разделитель),СтрДлина(Разделитель)) = Разделитель Тогда + Если СРЕД(ВходящаяСтрока, СтрДлина(ВходящаяСтрока) - СтрДлина(ПодстрокаУдаления) - СтрДлина(Разделитель), + СтрДлина(Разделитель)) = Разделитель Тогда Возврат ВходящаяСтрока; КонецЕсли; КонецЕсли; - ВходящаяСтрока = ЛЕВ(ВходящаяСтрока,СтрДлина(ВходящаяСтрока) - СтрДлина(ПодстрокаУдаления)); - + ВходящаяСтрока = ЛЕВ(ВходящаяСтрока, СтрДлина(ВходящаяСтрока) - СтрДлина(ПодстрокаУдаления)); + КонецЦикла; - + Возврат ВходящаяСтрока; - + КонецФункции // Формирует имя вопроса на основании уникального идентификатора строки дерева анкеты. @@ -43,81 +44,82 @@ // Ключ - УникальныйИдентификатор - ключ, на основе которого будет формироваться имя вопроса. // // Возвращаемое значение: -// Строка - получившаяся в результате обработки строка. +// Строка // -Функция ПолучитьИмяВопроса(Ключ) Экспорт - - Возврат "Вопрос_" + СтрЗаменить(Ключ,"-","_"); +Функция ИмяВопроса(Знач Ключ) Экспорт + + Возврат "Вопрос_" + СтрЗаменить(Ключ, "-", "_"); КонецФункции -// Заново формирует нумерацию дерева анкеты. -Процедура СформироватьНумерациюДерева(ДеревоАнкеты,ПреобразовыватьФормулировку = Ложь) Экспорт +Процедура СформироватьНумерациюДерева(ДеревоАнкеты, ПреобразовыватьФормулировку = Ложь) Экспорт - Если ДеревоАнкеты.ПолучитьЭлементы()[0].ТипСтроки = "Корень" Тогда + Если ДеревоАнкеты.ПолучитьЭлементы()[0].ТипСтроки = "Корень" Тогда ЗначимыеЭлементыДерева = ДеревоАнкеты.ПолучитьЭлементы()[0].ПолучитьЭлементы(); Иначе ЗначимыеЭлементыДерева = ДеревоАнкеты.ПолучитьЭлементы(); КонецЕсли; - - СформироватьНумерациюЭлементовДерева(ЗначимыеЭлементыДерева,1,Новый Массив,ПреобразовыватьФормулировку); + + СформироватьНумерациюЭлементовДерева(ЗначимыеЭлементыДерева, 1, Новый Массив, ПреобразовыватьФормулировку); КонецПроцедуры -// Вызывается рекурсивно при формировании полного кода строк дерева анкеты. -Процедура СформироватьНумерациюЭлементовДерева(СтрокиДерева, УровеньРекурсии, МассивПолныйКод, ПреобразовыватьФормулировку) - +Процедура СформироватьНумерациюЭлементовДерева(СтрокиДерева, УровеньРекурсии, МассивПолныйКод, + ПреобразовыватьФормулировку) + Если МассивПолныйКод.Количество() < УровеньРекурсии Тогда МассивПолныйКод.Добавить(0); КонецЕсли; - - Для каждого Элемент Из СтрокиДерева Цикл - - Если Элемент.ТипСтроки = "Вступление" ИЛИ Элемент.ТипСтроки = "Заключение" Тогда + + Для Каждого Элемент Из СтрокиДерева Цикл + + Если Элемент.ТипСтроки = "Вступление" Или Элемент.ТипСтроки = "Заключение" Тогда Продолжить; - КонецЕсли; - - МассивПолныйКод[УровеньРекурсии-1] = МассивПолныйКод[УровеньРекурсии-1] + 1; - Для инд = УровеньРекурсии По МассивПолныйКод.Количество()-1 Цикл + КонецЕсли; + + МассивПолныйКод[УровеньРекурсии - 1] = МассивПолныйКод[УровеньРекурсии - 1] + 1; + Для инд = УровеньРекурсии По МассивПолныйКод.Количество() - 1 Цикл МассивПолныйКод[инд] = 0; КонецЦикла; - - ПолныйКод = СтрСоединить(МассивПолныйКод,"."); - ПолныйКод = УдалитьПоследниеСимволыИзСтроки(ПолныйКод,".0.","."); - + + ПолныйКод = СтрСоединить(МассивПолныйКод, "."); + ПолныйКод = УдалитьПоследниеСимволыИзСтроки(ПолныйКод, ".0.", "."); + Элемент.ПолныйКод = ПолныйКод; Если ПреобразовыватьФормулировку Тогда Элемент.Формулировка = Элемент.ПолныйКод + ". " + Элемент.Формулировка; КонецЕсли; - + ПодчиненныеЭлементыСтрокиДерева = Элемент.ПолучитьЭлементы(); Если ПодчиненныеЭлементыСтрокиДерева.Количество() > 0 Тогда - СформироватьНумерациюЭлементовДерева(ПодчиненныеЭлементыСтрокиДерева,?(Элемент.ТипСтроки ="Вопрос",УровеньРекурсии,УровеньРекурсии + 1),МассивПолныйКод,ПреобразовыватьФормулировку); + СформироватьНумерациюЭлементовДерева(ПодчиненныеЭлементыСтрокиДерева, ?(Элемент.ТипСтроки = "Вопрос", + УровеньРекурсии, УровеньРекурсии + 1), МассивПолныйКод, ПреобразовыватьФормулировку); КонецЕсли; - + КонецЦикла; - + КонецПроцедуры // Находит первую строку в заданной колонке, с заданным значением в коллекции ДанныеФормыДерево. -Функция НайтиСтрокуВДанныхФормыДерево(ГдеИскать,Значение,Колонка,ИскатьВПодчиненных) Экспорт - +Функция НайтиСтрокуВДанныхФормыДерево(ГдеИскать, Значение, Колонка, ИскатьВПодчиненных) Экспорт + ЭлементыДерева = ГдеИскать.ПолучитьЭлементы(); - - Для каждого ЭлементДерева Из ЭлементыДерева Цикл + + Для Каждого ЭлементДерева Из ЭлементыДерева Цикл Если ЭлементДерева[Колонка] = Значение Тогда Возврат ЭлементДерева.ПолучитьИдентификатор(); - ИначеЕсли ИскатьВПодчиненных Тогда - НайденныйИдентификаторСтроки = НайтиСтрокуВДанныхФормыДерево(ЭлементДерева,Значение,Колонка,ИскатьВПодчиненных); - Если НайденныйИдентификаторСтроки >=0 Тогда + ИначеЕсли ИскатьВПодчиненных Тогда + НайденныйИдентификаторСтроки = НайтиСтрокуВДанныхФормыДерево(ЭлементДерева, Значение, Колонка, + ИскатьВПодчиненных); + Если НайденныйИдентификаторСтроки >= 0 Тогда Возврат НайденныйИдентификаторСтроки; КонецЕсли; КонецЕсли; - + КонецЦикла; - + Возврат -1; - + КонецФункции // Возвращает код картинки в зависимости от типа вопроса и принадлежности к разделу. @@ -129,8 +131,8 @@ // Возвращаемое значение: // Число // -Функция ПолучитьКодКартинкиШаблонаАнкеты(ЭтоРаздел,ТипВопроса = Неопределено) Экспорт - +Функция ПолучитьКодКартинкиШаблонаАнкеты(ЭтоРаздел, ТипВопроса = Неопределено) Экспорт + Если ЭтоРаздел Тогда Возврат 1; ИначеЕсли ТипВопроса = ПредопределенноеЗначение("Перечисление.ТипыВопросовШаблонаАнкеты.Простой") Тогда @@ -144,7 +146,7 @@ Иначе Возврат 0; КонецЕсли; - + КонецФункции // Параметры: @@ -153,22 +155,22 @@ // ВидимостьТелаАнкеты - Булево // Процедура ПереключитьВидимостьГруппТелаАнкеты(Форма, ВидимостьТелаАнкеты) Экспорт - + Форма.Элементы.ГруппаТелоАнкеты.Видимость = ВидимостьТелаАнкеты; - Форма.Элементы.ГруппаОжидание.Видимость = НЕ ВидимостьТелаАнкеты; - + Форма.Элементы.ГруппаОжидание.Видимость = Не ВидимостьТелаАнкеты; + ПредыдущийРазделПодвал = Форма.Элементы.ПредыдущийРазделПодвал; // ПолеФормы ПредыдущийРазделПодвал.Доступность = ВидимостьТелаАнкеты; - + ПредыдущийРаздел = Форма.Элементы.ПредыдущийРаздел; // ПолеФормы ПредыдущийРаздел.Доступность = ВидимостьТелаАнкеты; - + СледующийРазделПодвал = Форма.Элементы.СледующийРазделПодвал; // ПолеФормы СледующийРазделПодвал.Доступность = ВидимостьТелаАнкеты; - + СледующийРаздел = Форма.Элементы.СледующийРаздел; // ПолеФормы СледующийРаздел.Доступность = ВидимостьТелаАнкеты; - + КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl index fc1976451..6c1647bd8 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl @@ -854,7 +854,7 @@ // Обработчики регламентных заданий. // Выполняет рассылку уведомлений исполнителям о новых задачах за период с момента предыдущей рассылки. -// Рассылка выполняется по почте от имени системной учетной записи. +// Рассылка выполняется по почте от системной учетной записи. // Также является обработчиком регламентного задания УведомлениеИсполнителейОНовыхЗадачах. // Процедура УведомитьИсполнителейОНовыхЗадачах() Экспорт @@ -902,7 +902,7 @@ КонецПроцедуры // Выполняет рассылку уведомлений исполнителям и авторам задач о задачах, не выполненных в срок. -// Рассылка выполняется по почте от имени системной учетной записи. +// Рассылка выполняется по почте от системной учетной записи. // Если задача направлена "в никуда", т.е. роли с пустым списком исполнителей, // то создается новая задача ответственным за настройку ролей. // @@ -2543,7 +2543,7 @@ Если МодульРаботаСПочтовымиСообщениями.УчетнаяЗаписьНастроена(МодульРаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись(), Истина, Ложь) Тогда Возврат Истина; КонецЕсли; - ОписаниеОшибки = НСтр("ru = 'Системная учетная запись электронной почты не настроена для отправки.'"); + ОписаниеОшибки = НСтр("ru = 'Не настроена электронная почта для рассылки уведомлений.'"); КонецЕсли; Возврат Ложь; diff --git a/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl b/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl index a103743a6..af2e8bd40 100644 --- a/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl +++ b/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl @@ -599,15 +599,18 @@ Функция ПредставлениеПричиныБлокировки(ПараметрыБлокировки) + ТекущаяДата = ТекущаяДата(); // АПК:143 Информация о блокировке нужна в дате сервера. + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Блокировка выполнена на сервере <b>%1</b> в <b>%2</b> %3. + НСтр("ru = 'Блокировка выполнена на сервере <b>%1</b> <b>%2</b> в <b>%3</b> %4. | |Размещение информационной базы изменилось с - |<b>%4</b> + |<b>%5</b> |на - |<b>%5</b>'"), + |<b>%6</b>'"), ИмяКомпьютера(), - ТекущаяДата(), // АПК:143 Информация о блокировке нужна в дате сервера. + Формат(ТекущаяДата, "ДЛФ=D"), + Формат(ТекущаяДата, "ДЛФ=T"), ПредставлениеТекущейОперации(), ПредставлениеСтрокиСоединения(ПараметрыБлокировки.СтрокаСоединения), ПредставлениеСтрокиСоединения(СтрокаСоединенияИнформационнойБазы())); diff --git a/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl index da810046e..f65422da6 100644 --- a/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl @@ -306,6 +306,8 @@ // * Описание - Строка // * Метаданные - ОбъектМетаданныхОтчет - метаданные отчета. // * КлючВарианта - Строка - имя варианта отчета. +// * Назначение - ПеречислениеСсылка.НазначенияВариантовОтчетов - назначение использования варианта отчета (по +// умолчанию - ДляКомпьютеровИПланшетов) // * ОписаниеПолучено - Булево - флажок что описание строки уже получено. // Описание получается методом ОписаниеВарианта(). // * СистемнаяИнформация - Структура - другая служебная информация. @@ -1033,15 +1035,10 @@ // Получает объект отчета по ссылке на вариант отчета. // // Параметры: -// Параметры - Структура - параметры подключения и формирования отчета: -// * СсылкаВарианта - СправочникСсылка.ВариантыОтчетов - ссылка варианта отчета. -// * СсылкаОтчета - Произвольный - ссылка отчета. -// * КлючВарианта - Строка - имя предопределенного или идентификатор пользовательского варианта отчета. -// * ИдентификаторФормы - Неопределено -// - УникальныйИдентификатор - идентификатор формы, из которой подключается отчет. +// Параметры - см. ПараметрыФормированияОтчета // // Возвращаемое значение: -// Структура - параметры отчета, в том числе Объект отчета: +// Структура: // * СсылкаОтчета - Произвольный - ссылка отчета. // * ПолноеИмя - Строка - полное имя отчета. // * Метаданные - ОбъектМетаданных - метаданные отчета. @@ -1054,10 +1051,12 @@ // * Успех - Булево - Истина, если удалось подключить отчет. // * ТекстОшибки - Строка - текст ошибки. // -// Места использования: -// РассылкаОтчетов.ИнициализироватьОтчет(). -// -Функция ПодключитьОтчетИЗагрузитьНастройки(Параметры) Экспорт +Функция ПодключитьОтчетИЗагрузитьНастройки(Знач Параметры) Экспорт + + ПараметрыФормированияОтчета = ПараметрыФормированияОтчета(); + ЗаполнитьЗначенияСвойств(ПараметрыФормированияОтчета, Параметры); + Параметры = ПараметрыФормированияОтчета; + Результат = Новый Структура("СсылкаВарианта, СсылкаОтчета, КлючВарианта, НастройкиФормы, |Объект, Метаданные, ПолноеИмя, |СхемаКД, АдресСхемы, СхемаМодифицирована, НастройкиКД, ПользовательскиеНастройкиКД, @@ -1103,13 +1102,14 @@ КонецЕсли; Если Результат.СсылкаВарианта = Неопределено Тогда Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'В методе ""%1"" не указаны параметры ""%2"".'"), - "ПодключитьОтчетИЗагрузитьНастройки", + НСтр("ru = 'При вызове процедуры ""%1"" не указаны значения параметров ""%2"".'"), + "ВариантыОтчетов.ПодключитьОтчетИЗагрузитьНастройки", "СсылкаВарианта, СсылкаОтчета, КлючВарианта"); Возврат Результат; КонецЕсли; КонецЕсли; - ИменаСвойств = "КлючВарианта, Родитель, Родитель.КлючВарианта" + ?(НадоПрочитатьСсылкуОтчета, ", Отчет", "") + ?(НадоПрочитатьНастройки, ", Настройки", ""); + ИменаСвойств = "КлючВарианта, Родитель, Родитель.КлючВарианта" + ?(НадоПрочитатьСсылкуОтчета, ", Отчет", "") + + ?(НадоПрочитатьНастройки, ", Настройки", ""); СвойстваВарианта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Результат.СсылкаВарианта, ИменаСвойств); Результат.КлючВарианта = СвойстваВарианта.КлючВарианта; Если ЗначениеЗаполнено(СвойстваВарианта.Родитель) Тогда @@ -1188,7 +1188,7 @@ КонецЕсли; Если Не АдресСхемыЗаполнен И ТипЗнч(ОтчетОбъект.СхемаКомпоновкиДанных) = Тип("СхемаКомпоновкиДанных") Тогда - ИдентификаторФормы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ИдентификаторФормы"); + ИдентификаторФормы = Параметры.ИдентификаторФормы; Если ТипЗнч(ИдентификаторФормы) = Тип("УникальныйИдентификатор") Тогда АдресСхемыЗаполнен = Истина; Результат.АдресСхемы = ПоместитьВоВременноеХранилище(ОтчетОбъект.СхемаКомпоновкиДанных, ИдентификаторФормы); @@ -1208,16 +1208,15 @@ КлючПредопределенногоВарианта); Если Результат.НастройкиФормы.События.ПередЗагрузкойНастроекВКомпоновщик Тогда - КлючСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "КлючСхемы"); ОтчетОбъект.ПередЗагрузкойНастроекВКомпоновщик( Результат, - КлючСхемы, + Параметры.КлючСхемы, Результат.КлючВарианта, Результат.НастройкиКД, Результат.ПользовательскиеНастройкиКД); КонецЕсли; - ФиксированныеНастройкиКД = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ФиксированныеНастройкиКД"); + ФиксированныеНастройкиКД = Параметры.ФиксированныеНастройкиКД; Если ТипЗнч(ФиксированныеНастройкиКД) = Тип("НастройкиКомпоновкиДанных") И КомпоновщикНастроекКД.ФиксированныеНастройки <> ФиксированныеНастройкиКД Тогда КомпоновщикНастроекКД.ЗагрузитьФиксированныеНастройки(ФиксированныеНастройкиКД); @@ -1356,6 +1355,7 @@ ВариантОбъект.КлючВарианта = Представление.Ключ; ВариантОбъект.Наименование = Представление.Значение; ВариантОбъект.Пользовательский = Ложь; + ТекущийОбъект.ДополнительныеСвойства.Свойство("НазначениеВариантаОтчета", ВариантОбъект.Назначение); ВариантОбъект.ДополнительныеСвойства.Вставить("ОтчетОбъект", ВнешнийОбъект); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда @@ -1674,24 +1674,13 @@ // Формирует отчет с указанными параметрами. // // Параметры: -// Параметры - Структура - параметры подключения и формирования отчета: -// * СсылкаВарианта - СправочникСсылка.ВариантыОтчетов - ссылка варианта отчета. -// * СсылкаОтчета - Произвольный - ссылка отчета. -// * КлючВарианта - Строка - имя предопределенного или идентификатор пользовательского варианта отчета. -// * ИдентификаторФормы - Неопределено -// - УникальныйИдентификатор - идентификатор формы, из которой подключается отчет. -// ПроверятьЗаполнение - Булево - если Истина то перед формированием будет проведена проверка заполнения. -// ПолучатьФлажокПустой - Булево - если Истина то после формирования будет проведен анализ заполненности. +// Параметры - см. ПараметрыФормированияОтчета. +// ПроверятьЗаполнение - Булево - если Истина, то перед формированием будет проведена проверка заполнения параметров отчета. +// ПолучатьФлажокПустой - Булево - если Истина, то будет возвращен признак, сформирован ли отчет пустым. // // Возвращаемое значение: // Структура - результат формирования. // -// Места использования: -// РассылкаОтчетов.СформироватьОтчет(). -// -// См. также: -// <Метод>(). -// Функция СформироватьОтчет(Знач Параметры, Знач ПроверятьЗаполнение, Знач ПолучатьФлажокПустой) Экспорт Результат = Новый Структура("ТабличныйДокумент, Расшифровка, |СсылкаВарианта, СсылкаОтчета, КлючВарианта, @@ -1711,13 +1700,13 @@ Результат.Вставить("Пустой", Ложь); КонецЕсли; - Если Параметры.Свойство("Подключение") Тогда - Подключение = Параметры.Подключение; - Иначе - Подключение = ПодключитьОтчетИЗагрузитьНастройки(Параметры); - КонецЕсли; + ПараметрыФормированияОтчета = ПараметрыФормированияОтчета(); + ЗаполнитьЗначенияСвойств(ПараметрыФормированияОтчета, Параметры); + Параметры = ПараметрыФормированияОтчета; - ЗаполнитьЗначенияСвойств(Результат, Подключение); // , "Объект, Метаданные, ПолноеИмя, КлючВарианта, СхемаКД, АдресСхемы, СхемаМодифицирована, НастройкиФормы" + Подключение = ?(Параметры.Подключение <> Неопределено, Параметры.Подключение, + ПодключитьОтчетИЗагрузитьНастройки(Параметры)); + ЗаполнитьЗначенияСвойств(Результат, Подключение); // "Объект, Метаданные, ПолноеИмя, КлючВарианта, СхемаКД, АдресСхемы, СхемаМодифицирована, НастройкиФормы" Если Не Подключение.Успех Тогда Результат.ТекстОшибки = НСтр("ru = 'Не удалось сформировать отчет:'") + Символы.ПС + Подключение.ТекстОшибки; @@ -1727,10 +1716,11 @@ ОтчетОбъект = Результат.Объект; КомпоновщикНастроекКД = ОтчетОбъект.КомпоновщикНастроек; + ЗаполнитьДвоичныеДанныеВнешнегоОтчета(ОтчетОбъект, Параметры); + ДопСвойства = КомпоновщикНастроекКД.ПользовательскиеНастройки.ДополнительныеСвойства; ДопСвойства.Вставить("КлючВарианта", Результат.КлючВарианта); - ДопСвойства.Вставить("ИспользуемыеТаблицы", - ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ИспользуемыеТаблицы", Новый Массив)); + ДопСвойства.Вставить("ИспользуемыеТаблицы", Параметры.ИспользуемыеТаблицы); // Проверка корректности данных, по которым формируется отчет. @@ -1770,12 +1760,12 @@ // Формирование и оценка скорости. ВыполнятьЗамеры = ВыполнятьЗамеры(); Если ВыполнятьЗамеры Тогда - ИмяКлючевойОперации = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ИмяКлючевойОперации"); + ИмяКлючевойОперации = Параметры.ИмяКлючевойОперации; Если Не ЗначениеЗаполнено(ИмяКлючевойОперации) Тогда ИмяКлючевойОперации = ВариантыОтчетовСлужебный.КлючЗамеров(Результат.ПолноеИмя, Результат.КлючВарианта) + ".Формирование"; КонецЕсли; - КомментарийКлючевойОперации = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "КомментарийКлючевойОперации"); + КомментарийКлючевойОперации = Параметры.КомментарийКлючевойОперации; Если Не ЗначениеЗаполнено(КомментарийКлючевойОперации) И Результат.НастройкиКД <> Неопределено И Результат.НастройкиКД.ДополнительныеСвойства.Свойство("КлючПредопределенногоВарианта") Тогда @@ -1844,7 +1834,8 @@ КонецЕсли; НастройкиПечати = Результат.НастройкиФормы.Печать; - НастройкиПечати.Вставить("КлючПараметровПечати", ОтчетыКлиентСервер.КлючУникальности(Результат.ПолноеИмя, Результат.КлючВарианта)); + НастройкиПечати.Вставить("КлючПараметровПечати", ОтчетыКлиентСервер.КлючУникальности(Результат.ПолноеИмя, + Результат.КлючВарианта)); ЗаполнитьЗначенияСвойств(Результат.ТабличныйДокумент, НастройкиПечати); // Установка колонтитулов. @@ -1864,8 +1855,7 @@ Если Не ОбщегоНазначения.РазделениеВключено() Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - УправлениеКолонтитулами.УстановитьКолонтитулы( - Результат.ТабличныйДокумент, НазваниеОтчета,, НастройкиКолонтитулов); + УправлениеКолонтитулами.УстановитьКолонтитулы(Результат.ТабличныйДокумент, НазваниеОтчета,, НастройкиКолонтитулов); КонецЕсли; Результат.Успех = Истина; @@ -1881,6 +1871,60 @@ Возврат Результат; КонецФункции +// Возвращаемое значение: +// Структура: +// * СсылкаОтчета - Произвольный +// * СсылкаВарианта - СправочникСсылка.ВариантыОтчетов +// * КлючВарианта - Строка - имя предопределенного или идентификатор пользовательского варианта отчета. +// * Объект - ОтчетОбъект +// * ПолноеИмя - Строка +// * КлючСхемы - Строка +// * АдресСхемы - Строка +// * ПараметрыИзменены - Булево +// * СхемаМодифицирована - Булево +// * НастройкиКД - НастройкиКомпоновкиДанных +// * СхемаКД - СхемаКомпоновкиДанных +// * ФиксированныеНастройкиКД - НастройкиКомпоновкиДанных +// * ПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных +// * ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы, из которой подключается отчет. +// * ДвоичныеДанныеВнешнегоОтчета - Неопределено, ДвоичныеДанные - для выполнения в длительной операции. +// * ИмяКлючевойОперации - Строка +// * КомментарийКлючевойОперации - Строка, Соответствие +// * ИспользуемыеТаблицы - Массив +// * Подключение - см. ПодключитьОтчетИЗагрузитьНастройки +// +Функция ПараметрыФормированияОтчета() Экспорт + + Результат = Новый Структура; + Результат.Вставить("СсылкаОтчета", Неопределено); + Результат.Вставить("СсылкаВарианта", Неопределено); + Результат.Вставить("КлючВарианта", Неопределено); + + Результат.Вставить("Объект", Неопределено); + Результат.Вставить("ПолноеИмя", ""); + Результат.Вставить("КлючСхемы", ""); + Результат.Вставить("АдресСхемы", ""); + Результат.Вставить("ПараметрыИзменены", Ложь); + Результат.Вставить("СхемаМодифицирована", Ложь); + + Результат.Вставить("НастройкиКД", Неопределено); + Результат.Вставить("СхемаКД", Неопределено); + Результат.Вставить("ФиксированныеНастройкиКД", Неопределено); + Результат.Вставить("ПользовательскиеНастройкиКД", Неопределено); + + Результат.Вставить("ИдентификаторФормы", Неопределено); + Результат.Вставить("ДвоичныеДанныеВнешнегоОтчета", Неопределено); + Результат.Вставить("ИмяКлючевойОперации", ""); + Результат.Вставить("КомментарийКлючевойОперации", ""); + + Результат.Вставить("ИспользуемыеТаблицы", Новый Массив); + + Результат.Вставить("Подключение", Неопределено); + + Возврат Результат; + +КонецФункции + // Детализирует доступность отчетов по правам и функциональным опциям. Функция ДоступностьОтчетов(СсылкиОтчетов) Экспорт @@ -2077,18 +2121,17 @@ Возврат Истина; КонецЕсли; - ШаблонПредупреждения = НСтр("ru = 'Свойство отчета ""Хранилище вариантов"" %1. - |Сохранение (выбор) вариантов отчета будет работать в ограниченном режиме. - |Обратитесь к разработчику дополнительного (внешнего) отчета.'"); - - ПараметрПредупреждения = НСтр("ru = 'заполнено не корректно'"); - Если МетаданныеОтчета.ХранилищеВариантов = Неопределено Тогда - ПараметрПредупреждения = НСтр("ru = 'не заполнено'"); + Если МетаданныеОтчета.ХранилищеВариантов <> Неопределено Тогда + ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Свойство отчета ""Хранилище вариантов"" заполнено не корректно. + |Должно быть установлено в значение %1.'"), Метаданные.ХранилищаНастроек.ХранилищеВариантовОтчетов.ПолноеИмя()); + Иначе + ТекстПредупреждения = НСтр("ru = 'Свойство отчета ""Хранилище вариантов"" не заполнено.'"); КонецЕсли; - - ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ШаблонПредупреждения, ПараметрПредупреждения); - + + ТекстПредупреждения = ТекстПредупреждения + Символы.ПС + Символы.ПС + + НСтр("ru = 'Сохранение и выбор вариантов отчета будет работать с ограничениями. + |Обратитесь к разработчику дополнительного (внешнего) отчета.'"); ОбщегоНазначения.СообщитьПользователю(ТекстПредупреждения); Возврат Ложь; @@ -2216,6 +2259,7 @@ Если ПустаяСтрока(ОписаниеОтчета.ОсновнойВариант) Тогда ОписаниеОтчета.ОсновнойВариант = ОписаниеВарианта.КлючВарианта; КонецЕсли; + ОписаниеВарианта.Назначение = ОписаниеОтчета.Назначение; Если РазрешеноИндексирование И ТипЗнч(ВариантНастроекКД) = Тип("ВариантНастроекКомпоновкиДанных") Тогда Попытка ОписаниеВарианта.СистемнаяИнформация.Вставить("НастройкиКД", ВариантНастроекКД.Настройки); @@ -2232,7 +2276,7 @@ Если ПустаяСтрока(ОписаниеОтчета.ОсновнойВариант) Тогда ОписаниеВарианта = Результат.Добавить(); - ЗаполнитьЗначенияСвойств(ОписаниеВарианта, ОписаниеОтчета, "Отчет, Наименование"); + ЗаполнитьЗначенияСвойств(ОписаниеВарианта, ОписаниеОтчета, "Отчет, Наименование, Назначение"); ОписаниеВарианта.КлючВарианта = ""; ОписаниеВарианта.ЭтоВариант = Истина; ОписаниеОтчета.ОсновнойВариант = ОписаниеВарианта.КлючВарианта; @@ -2439,10 +2483,9 @@ // 3.4. Установить соответствующие ссылки на идентификаторы объектов метаданных в настройках вариантов универсального отчета. Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "3.0.1.81"; + Обработчик.Версия = "3.1.9.5"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("6cd3c6c1-6919-4e18-9725-eb6dbb841f4a"); Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ВариантыОтчетов.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.Процедура = "Справочники.ВариантыОтчетов.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.ЧитаемыеОбъекты = "Справочник.ВариантыОтчетов"; @@ -2450,7 +2493,8 @@ Обработчик.БлокируемыеОбъекты = "Справочник.ВариантыОтчетов"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.Комментарий = НСтр("ru = 'Установка источника данных в настройках вариантов универсального отчета. - |После завершения обработки, переименование объектов метаданных не приведет к потере сохраненных вариантов отчетов'"); + |После завершения обработки, переименование объектов метаданных не приведет к потере сохраненных вариантов отчетов. + |Заполнение назначения в вариантах отчетов значением Для компьютеров и планшетов'"); Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); Приоритет = Обработчик.ПриоритетыВыполнения.Добавить(); @@ -2468,7 +2512,6 @@ Обработчик.Версия = "3.1.2.64"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("eba9f8fb-2755-4d1a-99f5-cdd132e48cfc"); Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 2; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.НастройкиВариантовОтчетов.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.Процедура = "РегистрыСведений.НастройкиВариантовОтчетов.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.ЧитаемыеОбъекты = "Справочник.ВариантыОтчетов"; @@ -2703,6 +2746,7 @@ Списки.Вставить(Метаданные.Справочники.ВариантыОтчетов, Истина); Списки.Вставить(Метаданные.Справочники.ПользовательскиеНастройкиОтчетов, Истина); Списки.Вставить(Метаданные.РегистрыСведений.НастройкиВариантовОтчетов, Истина); + Списки.Вставить(Метаданные.РегистрыСведений.СнимкиОтчетов, Истина); КонецПроцедуры @@ -2829,21 +2873,23 @@ // Формирует отчет с указанными настройками, используется в фоновых заданиях. Процедура СформироватьОтчетВФоне(Параметры, АдресХранилища) Экспорт - Формирование = СформироватьОтчет(Параметры, Ложь, Ложь); + + РезультатФормированияОтчета = СформироватьОтчет(Параметры, Ложь, Ложь); Результат = Новый Структура("ТабличныйДокумент, Расшифровка, |Успех, ТекстОшибки, ДанныеЕщеОбновляются, |ВариантМодифицирован, ПользовательскиеНастройкиМодифицированы"); - ЗаполнитьЗначенияСвойств(Результат, Формирование); + ЗаполнитьЗначенияСвойств(Результат, РезультатФормированияОтчета); Если Результат.ВариантМодифицирован ИЛИ Параметры.ПараметрыИзменены Тогда - Результат.Вставить("НастройкиКД", Формирование.НастройкиКД); + Результат.Вставить("НастройкиКД", РезультатФормированияОтчета.НастройкиКД); КонецЕсли; Если Результат.ПользовательскиеНастройкиМодифицированы Тогда - Результат.Вставить("ПользовательскиеНастройкиКД", Формирование.ПользовательскиеНастройкиКД); + Результат.Вставить("ПользовательскиеНастройкиКД", РезультатФормированияОтчета.ПользовательскиеНастройкиКД); КонецЕсли; ПоместитьВоВременноеХранилище(Результат, АдресХранилища); + КонецПроцедуры // Заполняет описание настроек для строки варианта отчета, если оно еще не заполнено. @@ -3202,9 +3248,14 @@ ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), "ПанельОтчетов"); Если ОбщиеНастройки = Неопределено Тогда - ОбщиеНастройки = Новый Структура("ПоказыватьПодсказки, ИскатьВоВсехРазделах"); + ОбщиеНастройки = Новый Структура("ПоказыватьПодсказки, ИскатьВоВсехРазделах, ОтображатьВсеВариантыОтчетов"); ОбщиеНастройки.ПоказыватьПодсказки = ГлобальныеНастройки().ВыводитьОписания; ОбщиеНастройки.ИскатьВоВсехРазделах = Ложь; + ОбщиеНастройки.ОтображатьВсеВариантыОтчетов = Ложь; + Иначе + Если Не ОбщиеНастройки.Свойство("ОтображатьВсеВариантыОтчетов") Тогда + ОбщиеНастройки.Вставить("ОтображатьВсеВариантыОтчетов", Ложь); + КонецЕсли; КонецЕсли; Возврат ОбщиеНастройки; КонецФункции @@ -3273,6 +3324,24 @@ КонецЦикла; КонецПроцедуры +// Для выполнения в длительной операции. +// +// Параметры: +// ОтчетОбъект - ОтчетОбъект +// Параметры - см. ПараметрыФормированияОтчета +// +Процедура ЗаполнитьДвоичныеДанныеВнешнегоОтчета(ОтчетОбъект, Параметры) + + Если Не ЗначениеЗаполнено(Параметры.ДвоичныеДанныеВнешнегоОтчета) Тогда + Возврат; + КонецЕсли; + + ДвоичныеДанныеСтруктура = Новый Структура; + ДвоичныеДанныеСтруктура.Вставить("ДвоичныеДанныеВнешнегоОтчета", Параметры.ДвоичныеДанныеВнешнегоОтчета); + ЗаполнитьЗначенияСвойств(ОтчетОбъект, ДвоичныеДанныеСтруктура); + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Журнал регистрации @@ -3965,7 +4034,7 @@ КонецЕсли; ЗаполнитьЗначенияСвойств(ВариантОбъект, ОписаниеВарианта, - "Отчет, КлючВарианта, Включен, ВидимостьПоУмолчанию, ГруппироватьПоОтчету, ПоказыватьВПодменюВариантов"); + "Отчет, КлючВарианта, Включен, ВидимостьПоУмолчанию, ГруппироватьПоОтчету, Назначение, ПоказыватьВПодменюВариантов"); ПоляДляПоиска = ПоляДляПоиска(ВариантОбъект); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда @@ -4049,6 +4118,7 @@ Функция ИзменилисьКлючевыеНастройкиПредопределенного(ОписаниеВарианта, ВариантИзБазы) Возврат (ВариантИзБазы.Наименование <> ОписаниеВарианта.Наименование Или ВариантИзБазы.Родитель <> ОписаниеВарианта.ВариантРодитель + Или ВариантИзБазы.Назначение <> ОписаниеВарианта.Назначение Или ВариантИзБазы.ВидимостьПоУмолчанию <> ОписаниеВарианта.ВидимостьПоУмолчанию); КонецФункции @@ -4114,6 +4184,7 @@ | ПредопределенныеКонфигурации.ГруппироватьПоОтчету КАК ГруппироватьПоОтчету, | ПредопределенныеКонфигурации.КлючВарианта КАК КлючВарианта, | ПредопределенныеКонфигурации.ВидимостьПоУмолчанию КАК ВидимостьПоУмолчанию, + | ПредопределенныеКонфигурации.Назначение КАК Назначение, | ПредопределенныеКонфигурации.Родитель КАК Родитель |ПОМЕСТИТЬ втПредопределенные |ИЗ @@ -4131,6 +4202,7 @@ | ВариантыОтчетов.КлючВарианта, | ВариантыОтчетов.Наименование КАК Наименование, | ВариантыОтчетов.ПредопределенныйВариант, + | ВариантыОтчетов.Назначение, | ВариантыОтчетов.Родитель |ПОМЕСТИТЬ втВариантыОтчетов |ИЗ @@ -4154,6 +4226,7 @@ | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК СоздатьНовый, | втПредопределенные.ПредопределенныйВариант КАК ПредопределенныйВариант, + | втПредопределенные.Назначение КАК Назначение, | втПредопределенные.Наименование КАК Наименование, | втПредопределенные.Отчет КАК Отчет, | втПредопределенные.КлючВарианта КАК КлючВарианта, @@ -4169,6 +4242,7 @@ | втВариантыОтчетов.КлючВарианта КАК РеквизитКлючВарианта, | втВариантыОтчетов.Наименование КАК РеквизитНаименование, | втВариантыОтчетов.ПредопределенныйВариант КАК РеквизитПредопределенныйВариант, + | втВариантыОтчетов.Назначение КАК РеквизитНазначение, | втВариантыОтчетов.ПометкаУдаления КАК РеквизитПометкаУдаления |ИЗ | втВариантыОтчетов КАК втВариантыОтчетов @@ -4188,7 +4262,7 @@ КонецЕсли; ИзменяемыеРеквизиты = Новый Структура("ПометкаУдаления, Родитель, - |Наименование, Отчет, КлючВарианта, ПредопределенныйВариант"); + |Наименование, Отчет, КлючВарианта, ПредопределенныйВариант, Назначение"); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда @@ -4399,8 +4473,10 @@ ВариантОбъект.ТипОтчета = Перечисления.ТипыОтчетов[ТипОтчетаСтрокой]; ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ВариантОбъект); - РегистрыСведений.НастройкиВариантовОтчетов.ЗаписатьНастройкиДоступностиВариантаОтчета( - ВариантОбъект.Ссылка, СтрокаТаблицы.СоздатьНовый); + Если СтрокаТаблицы.СоздатьНовый Тогда + РегистрыСведений.НастройкиВариантовОтчетов.ЗаписатьНастройкиДоступностиВариантаОтчета( + ВариантОбъект.Ссылка, СтрокаТаблицы.СоздатьНовый); + КонецЕсли; ЗафиксироватьТранзакцию(); Исключение @@ -5437,7 +5513,9 @@ Попытка НастройкиКД = ВариантОбъект.Настройки.Получить(); Исключение - ШаблонСообщения = НСтр("ru = 'Не удалось прочитать настройки пользовательского варианта отчета: + ШаблонСообщения = НСтр("ru = 'Не удалось прочитать настройки пользовательского варианта отчета. + |Возможно, в них используются переименованные или удаленные объекты метаданных конфигурации + | или объектов метаданных отключенных расширений (например, при сообщениях ""Отсутствует отображение для типа""). |%1'"); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); @@ -5912,6 +5990,8 @@ Настройки.Вставить("ФормаНастроекРасширенныйРежим", 0); Настройки.Вставить("ФормаНастроекИмяСтраницы", "СтраницаОтборы"); Настройки.Вставить("КлючЗамеров", Неопределено); + Настройки.Вставить("Назначение", Перечисления.НазначенияВариантовОтчетов.ДляЛюбыхУстройств); + Настройки.Вставить("ИспользоватьСнимкиОтчетов", Ложь); ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Настройки, ПараметрыКлиента()); @@ -6138,6 +6218,15 @@ Обновить(Настройки); КонецЕсли; + Если ПараметрыПоиска.Свойство("Подсистемы") Тогда + ПоискТолькоВариантовБезПодсистем = ?(ПараметрыПоиска.Подсистемы.Найти(Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка())= Неопределено, Ложь, Истина); + Если ПоискТолькоВариантовБезПодсистем И ПараметрыПоиска.Подсистемы.Количество() = 1 Тогда + ПараметрыПоиска.Подсистемы = Новый Массив; + КонецЕсли; + Иначе + ПоискТолькоВариантовБезПодсистем = Ложь; + КонецЕсли; + ЕстьСтрокаПоиска = ПараметрыПоиска.Свойство("СтрокаПоиска") И ЗначениеЗаполнено(ПараметрыПоиска.СтрокаПоиска); ЕстьОтборПоОтчетам = ПараметрыПоиска.Свойство("Отчеты") И ЗначениеЗаполнено(ПараметрыПоиска.Отчеты); ЕстьОтборПоПодсистемам = ПараметрыПоиска.Свойство("Подсистемы") И ЗначениеЗаполнено(ПараметрыПоиска.Подсистемы); @@ -6157,7 +6246,7 @@ Результат.Вставить("ТаблицаЗначений", Новый ТаблицаЗначений); КонецЕсли; - Если Не ЕстьОтборПоПодсистемам И Не ЕстьСтрокаПоиска И Не ЕстьОтборПоТипамОтчетов И Не ЕстьОтборПоОтчетам Тогда + Если Не ЕстьОтборПоПодсистемам И Не ЕстьСтрокаПоиска И Не ЕстьОтборПоТипамОтчетов И Не ЕстьОтборПоОтчетам И Не ПоискТолькоВариантовБезПодсистем Тогда Возврат Результат; КонецЕсли; @@ -6202,7 +6291,7 @@ Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка); Запрос.УстановитьПараметр("ПредставленияПодсистем", ВариантыОтчетовПовтИсп.ПредставленияПодсистем()); Запрос.УстановитьПараметр("Контекст", ?(ЕстьОтборПоКонтексту, ПараметрыПоиска.Контекст, "")); - Если ЕстьОтборПоПодсистемам Или ЕстьСтрокаПоиска Тогда + Если ЕстьОтборПоПодсистемам Или ЕстьСтрокаПоиска Или ПоискТолькоВариантовБезПодсистем Тогда Если ЕстьОтборПоПодсистемам Тогда Если ТипЗнч(ПараметрыПоиска.Подсистемы) = Тип("Массив") Тогда @@ -6221,6 +6310,8 @@ Запрос.УстановитьПараметр("ПолучатьИтоговуюТаблицу", ПолучатьИтоговуюТаблицу); Запрос.УстановитьПараметр("ЕстьОтборПоВидимости", ЕстьОтборПоВидимости); Запрос.УстановитьПараметр("ПодсистемыОтчетов", ПодсистемыОтчетов); + Запрос.УстановитьПараметр("ИскатьВариантыБезПодсистем", (ЕстьСтрокаПоиска И НЕ ЕстьОтборПоПодсистемам) ИЛИ ПоискТолькоВариантовБезПодсистем); + Запрос.УстановитьПараметр("ПоискТолькоВариантовБезПодсистем", ПоискТолькоВариантовБезПодсистем); ТекстЗапроса = ТекстЗапросаОтчетовСУточненнымиОтборами(); @@ -6355,6 +6446,7 @@ | ВариантыОтчетов.ТипОтчета КАК ТипОтчета, | ВариантыОтчетов.Пользовательский КАК Пользовательский, | ВариантыОтчетов.ПредопределенныйВариант КАК ПредопределенныйВариант, + | ВариантыОтчетов.Назначение КАК Назначение, | ВЫБОР | КОГДА ВариантыОтчетов.Пользовательский | ТОГДА ВариантыОтчетов.ИнтерактивнаяПометкаУдаления @@ -6441,6 +6533,7 @@ | ВариантыОтчетов.ТипОтчета КАК ТипОтчета, | ВариантыОтчетов.Пользовательский КАК Пользовательский, | ВариантыОтчетов.ПредопределенныйВариант КАК ПредопределенныйВариант, + | ВариантыОтчетов.Назначение КАК Назначение, | ВЫБОР | КОГДА ВариантыОтчетов.Пользовательский | ТОГДА ВариантыОтчетов.ИнтерактивнаяПометкаУдаления @@ -6687,6 +6780,7 @@ | ВариантыОтчетов.ТипОтчета КАК ТипОтчета, | ВариантыОтчетов.Пользовательский КАК Пользовательский, | ВариантыОтчетов.ПредопределенныйВариант КАК ПредопределенныйВариант, + | ВариантыОтчетов.Назначение КАК Назначение, | ВариантыОтчетов.НаименованияПараметровИОтборов КАК НаименованияПараметровИОтборов, | ВариантыОтчетов.НаименованияПолей КАК НаименованияПолей, | ВариантыОтчетов.КлючевыеСлова КАК КлючевыеСлова, @@ -6703,10 +6797,59 @@ |ГДЕ | (&НетОтбораПоПометкеУдаления | ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления) + | И НЕ &ПоискТолькоВариантовБезПодсистем | И &ВариантыИПодсистемыПоСтрокеПоиска | |ОБЪЕДИНИТЬ ВСЕ | + |ВЫБРАТЬ + | ВариантыОтчетов.Ссылка, + | ВариантыОтчетов.Родитель, + | ВариантыОтчетов.ТекущиеНаименованиеВарианта, + | ВариантыОтчетов.ТолькоДляАвтора, + | ВЫБОР + | КОГДА &ЕстьПравоЧтенияАвторов + | ТОГДА ВариантыОтчетов.Автор + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ, + | ВЫБОР + | КОГДА &ЕстьПравоЧтенияАвторов + | ТОГДА ЕСТЬNULL(ВариантыОтчетов.Автор.Наименование, """") + | ИНАЧЕ """" + | КОНЕЦ, + | ВариантыОтчетов.Отчет, + | ВЫБОР + | КОГДА &ПолучатьИтоговуюТаблицу + | ТОГДА ВариантыОтчетов.Отчет.Имя + | ИНАЧЕ НЕОПРЕДЕЛЕНО + | КОНЕЦ, + | ВариантыОтчетов.КлючВарианта, + | ВариантыОтчетов.ТипОтчета, + | ВариантыОтчетов.Пользовательский, + | ВариантыОтчетов.ПредопределенныйВариант, + | ВариантыОтчетов.Назначение, + | ВариантыОтчетов.НаименованияПараметровИОтборов, + | ВариантыОтчетов.НаименованияПолей, + | ВариантыОтчетов.КлючевыеСлова, + | ВариантыОтчетов.ТекущиеОписаниеВарианта, + | Значение(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка), + | Размещение.НаименованиеПодсистемы, + | НЕОПРЕДЕЛЕНО, + | НЕОПРЕДЕЛЕНО, + | ВариантыОтчетов.ПометкаУдаления + |ИЗ + | ВариантыОтчетов КАК ВариантыОтчетов + | ЛЕВОЕ СОЕДИНЕНИЕ РазмещениеСУчетомНастроек КАК Размещение + | ПО ВариантыОтчетов.Ссылка = Размещение.Ссылка + |ГДЕ + | (&НетОтбораПоПометкеУдаления + | ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления) + | И &ВариантыИПодсистемыПоСтрокеПоиска + | И Размещение.Подсистема ЕСТЬ NULL + | И &ИскатьВариантыБезПодсистем + | + |ОБЪЕДИНИТЬ ВСЕ + | |ВЫБРАТЬ РАЗЛИЧНЫЕ | Пользовательские.Вариант, | ВариантыОтчетов.Родитель, @@ -6726,6 +6869,7 @@ | НЕОПРЕДЕЛЕНО, | НЕОПРЕДЕЛЕНО, | НЕОПРЕДЕЛЕНО, + | НЕОПРЕДЕЛЕНО, | Пользовательские.КлючПользовательскойНастройки, | Пользовательские.Наименование, | НЕОПРЕДЕЛЕНО @@ -6739,6 +6883,7 @@ | И (&НетОтбораПоПометкеУдаления | ИЛИ Пользовательские.ПометкаУдаления = ЛОЖЬ) | И Пользовательские.Пользователь = &ТекущийПользователь + | И НЕ &ПоискТолькоВариантовБезПодсистем | И &ПользовательскиеНастройкиПоСтрокеПоиска"; Возврат ТекстЗапросаПредварительный + ОбщегоНазначения.РазделительПакетаЗапросов() + ТекстЗапросаОбщий; @@ -6778,6 +6923,7 @@ | ВариантыОтчетов.ТипОтчета КАК ТипОтчета, | ВариантыОтчетов.Пользовательский КАК Пользовательский, | ВариантыОтчетов.ПредопределенныйВариант КАК ПредопределенныйВариант, + | ВариантыОтчетов.Назначение КАК Назначение, | ВЫРАЗИТЬ(ВариантыОтчетов.НаименованияПараметровИОтборов КАК СТРОКА(1000)) КАК НаименованияПараметровИОтборов, | ВЫРАЗИТЬ(ВариантыОтчетов.НаименованияПолей КАК СТРОКА(1000)) КАК НаименованияПолей, | ВЫРАЗИТЬ(ВариантыОтчетов.КлючевыеСлова КАК СТРОКА(1000)) КАК КлючевыеСлова, @@ -6870,6 +7016,7 @@ | ВариантыОтчетов.ТипОтчета КАК ТипОтчета, | ВариантыОтчетов.Пользовательский КАК Пользовательский, | ВариантыОтчетов.ПредопределенныйВариант КАК ПредопределенныйВариант, + | ВариантыОтчетов.Назначение КАК Назначение, | ВЫРАЗИТЬ(ВариантыОтчетов.НаименованияПараметровИОтборов КАК СТРОКА(1000)) КАК НаименованияПараметровИОтборов, | ВЫРАЗИТЬ(ВариантыОтчетов.НаименованияПолей КАК СТРОКА(1000)) КАК НаименованияПолей, | ВЫРАЗИТЬ(ВариантыОтчетов.КлючевыеСлова КАК СТРОКА(1000)) КАК КлючевыеСлова, @@ -7354,8 +7501,16 @@ ТолькоТекущийРаздел = ПараметрыЗаполнения.РежимНастройки Или Не ПоискПоСтроке Или ПараметрыЗаполнения.ИскатьВоВсехРазделах = 0; ТаблицаПодсистем = ПараметрыЗаполнения.ПодсистемыПрограммы; // ТаблицаЗначений ТаблицаПодсистем.Индексы.Добавить("Ссылка"); + МассивПодсистем = ТаблицаПодсистем.ВыгрузитьКолонку("Ссылка"); + СтрокаПустаяПодсистема = ТаблицаПодсистем.Добавить(); + СтрокаПустаяПодсистема.Ссылка = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + СтрокаПустаяПодсистема.РазделСсылка = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + СтрокаПустаяПодсистема.Представление = НСтр("ru = 'Не включенные в разделы'"); + СтрокаПустаяПодсистема.Приоритет = "999"; + СтрокаПустаяПодсистема.НомерЭлемента = 0; + ПараметрыПоиска = Новый Структура; Если ПоискПоСтроке Тогда ПараметрыПоиска.Вставить("СтрокаПоиска", ПараметрыЗаполнения.СтрокаПоиска); @@ -7378,7 +7533,15 @@ Запрос.УстановитьПараметр("НетОтбораПоПодсистемамИОтчетам", Не ПоискПоСтроке И ПараметрыПоиска.Подсистемы.Количество() = 0); Запрос.УстановитьПараметр("НетОтбораПоВидимости", ПараметрыЗаполнения.РежимНастройки Или ПоискПоСтроке); Запрос.УстановитьПараметр("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений); - + Запрос.УстановитьПараметр("ОтображатьВсеВариантыОтчетов", ПараметрыЗаполнения.ОтображатьВсеВариантыОтчетов); + Запрос.УстановитьПараметр("НазначенияВариантовОтчетов", ПараметрыЗаполнения.НазначенияВариантовОтчетов); + Запрос.УстановитьПараметр("ИскатьВоВсехРазделах", ПараметрыЗаполнения.ИскатьВоВсехРазделах); + Если ПараметрыЗаполнения.ОтображатьВсеВариантыОтчетов Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Параметр1", "ИСТИНА"); + Иначе + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Параметр1", "ВариантыОтчетов.Назначение В (&НазначенияВариантовОтчетов)"); + КонецЕсли; + ТаблицаРезультат = Запрос.Выполнить().Выгрузить(); ЗаполнитьИменаОтчетов(ТаблицаРезультат); @@ -7463,6 +7626,12 @@ | ВариантыОтчетов.КлючВарианта КАК КлючВарианта, | ВариантыОтчетов.Автор КАК Автор, | ВариантыОтчетов.Родитель КАК Родитель, + | ВЫБОР + | КОГДА НЕ &ОтображатьВсеВариантыОтчетов + | ИЛИ ВариантыОтчетов.Назначение В (&НазначенияВариантовОтчетов) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ВидимостьПоНазначению, | ВариантыОтчетов.ПредопределенныйВариант.КлючЗамеров КАК КлючЗамеров |ПОМЕСТИТЬ втПредопределенные |ИЗ @@ -7482,6 +7651,7 @@ | |ГДЕ | НЕ ВариантыОтчетов.ПометкаУдаления + | И &Параметр1 | |ОБЪЕДИНИТЬ ВСЕ | @@ -7503,6 +7673,12 @@ | ВариантыОтчетов.КлючВарианта, | ВариантыОтчетов.Автор, | ВариантыОтчетов.Родитель, + | ВЫБОР + | КОГДА НЕ &ОтображатьВсеВариантыОтчетов + | ИЛИ ВариантыОтчетов.Назначение В (&НазначенияВариантовОтчетов) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ, | ВариантыОтчетов.ПредопределенныйВариант.КлючЗамеров |ИЗ | Справочник.ВариантыОтчетов КАК ВариантыОтчетов @@ -7522,8 +7698,9 @@ | ПО ВариантыОтчетов.ПредопределенныйВариант = ВариантыРасширений.Ссылка | |ГДЕ - | НЕ ВариантыОтчетов.ПометкаУдаления - | ИЛИ НЕ ДоступныеВариантыРасширений.Вариант ЕСТЬ NULL + | (НЕ ВариантыОтчетов.ПометкаУдаления + | ИЛИ НЕ ДоступныеВариантыРасширений.Вариант ЕСТЬ NULL) + | И &Параметр1 |; | |//////////////////////////////////////////////////////////////////////////////// @@ -7560,6 +7737,12 @@ | ТОГДА ВариантыОтчетов.Родитель | ИНАЧЕ ВариантыОтчетов.Родитель.Родитель | КОНЕЦ КАК Родитель, + | ВЫБОР + | КОГДА НЕ &ОтображатьВсеВариантыОтчетов + | ИЛИ ВариантыОтчетов.Назначение В (&НазначенияВариантовОтчетов) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ВидимостьПоНазначению, | ВариантыОтчетов.ПредопределенныйВариант.КлючЗамеров КАК КлючЗамеров |ПОМЕСТИТЬ втВарианты |ИЗ @@ -7584,6 +7767,7 @@ | ИЛИ НЕ ВариантыОтчетов.ИнтерактивнаяПометкаУдаления) | И (ВариантыОтчетов.Пользовательский | ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления) + | И &Параметр1 |"; Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) Тогда @@ -7626,6 +7810,12 @@ | ВариантыОтчетов.КлючВарианта КАК КлючВарианта, | ВариантыОтчетов.Автор КАК Автор, | ВариантыОтчетов.Родитель КАК Родитель, + | ВЫБОР + | КОГДА НЕ &ОтображатьВсеВариантыОтчетов + | ИЛИ ВариантыОтчетов.Назначение В (&НазначенияВариантовОтчетов) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ВидимостьПоНазначению, | ВариантыОтчетов.ПредопределенныйВариант.КлючЗамеров КАК КлючЗамеров |ПОМЕСТИТЬ втПредопределенные |ИЗ @@ -7650,6 +7840,7 @@ | И (ПредставленияВариантов.КодЯзыка = &КодЯзыка) |ГДЕ | НЕ ВариантыОтчетов.ПометкаУдаления + | И &Параметр1 | |ОБЪЕДИНИТЬ ВСЕ | @@ -7677,6 +7868,12 @@ | ВариантыОтчетов.КлючВарианта, | ВариантыОтчетов.Автор, | ВариантыОтчетов.Родитель, + | ВЫБОР + | КОГДА НЕ &ОтображатьВсеВариантыОтчетов + | ИЛИ ВариантыОтчетов.Назначение В (&НазначенияВариантовОтчетов) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ, | ВариантыОтчетов.ПредопределенныйВариант.КлючЗамеров |ИЗ | Справочник.ВариантыОтчетов КАК ВариантыОтчетов @@ -7701,8 +7898,9 @@ | ПО ВариантыОтчетов.Ссылка = ПредставленияВариантов.Ссылка | И (ПредставленияВариантов.КодЯзыка = &КодЯзыка) |ГДЕ - | НЕ ВариантыОтчетов.ПометкаУдаления - | ИЛИ НЕ ДоступныеВариантыРасширений.Вариант ЕСТЬ NULL + | (НЕ ВариантыОтчетов.ПометкаУдаления + | ИЛИ НЕ ДоступныеВариантыРасширений.Вариант ЕСТЬ NULL) + | И &Параметр1 |; | |//////////////////////////////////////////////////////////////////////////////// @@ -7751,6 +7949,12 @@ | ТОГДА ВариантыОтчетов.Родитель | ИНАЧЕ ВариантыОтчетов.Родитель.Родитель | КОНЕЦ КАК Родитель, + | ВЫБОР + | КОГДА НЕ &ОтображатьВсеВариантыОтчетов + | ИЛИ ВариантыОтчетов.Назначение В (&НазначенияВариантовОтчетов) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ВидимостьПоНазначению, | ВариантыОтчетов.ПредопределенныйВариант.КлючЗамеров КАК КлючЗамеров |ПОМЕСТИТЬ втВарианты |ИЗ @@ -7784,6 +7988,7 @@ | ИЛИ НЕ ВариантыОтчетов.ИнтерактивнаяПометкаУдаления) | И (ВариантыОтчетов.Пользовательский | ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления) + | И &Параметр1 |"; КонецЕсли; @@ -7802,13 +8007,14 @@ | ЕСТЬNULL(втВарианты.ТипОтчета, втПредопределенные.ТипОтчета) КАК ТипОтчета, | ЕСТЬNULL(втВарианты.КлючВарианта, втПредопределенные.КлючВарианта) КАК КлючВарианта, | ЕСТЬNULL(втВарианты.Родитель, втПредопределенные.Родитель) КАК Родитель, + | ЕСТЬNULL(втВарианты.ВидимостьПоНазначению, втПредопределенные.ВидимостьПоНазначению) КАК ВидимостьПоНазначению, | ВЫБОР | КОГДА ЕСТЬNULL(втВарианты.Родитель, втПредопределенные.Родитель) = ЗНАЧЕНИЕ(Справочник.ВариантыОтчетов.ПустаяСсылка) | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК ВерхнийУровень, | ЕСТЬNULL(втВарианты.КлючЗамеров, втПредопределенные.КлючЗамеров) КАК КлючЗамеров - |ПОМЕСТИТЬ втВсеВарианты + |ПОМЕСТИТЬ втВсеВариантыСПодсистемами |ИЗ | втПредопределенные КАК втПредопределенные | ПОЛНОЕ СОЕДИНЕНИЕ втВарианты КАК втВарианты @@ -7818,6 +8024,84 @@ | ЕСТЬNULL(втВарианты.Использование, ИСТИНА) |; | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ + | ВариантыОтчетов.Ссылка КАК Ссылка, + | ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) КАК Подсистема, + | ЛОЖЬ КАК Важный, + | ЛОЖЬ КАК СмТакже, + | ВариантыОтчетов.Наименование КАК Наименование, + | ВЫРАЗИТЬ(ВариантыОтчетов.Описание КАК СТРОКА(1000)) КАК Описание, + | ВариантыОтчетов.Автор КАК Автор, + | ВариантыОтчетов.Отчет КАК Отчет, + | ВариантыОтчетов.ТипОтчета КАК ТипОтчета, + | ВариантыОтчетов.КлючВарианта КАК КлючВарианта, + | ВЫБОР + | КОГДА ВариантыОтчетов.Родитель = ЗНАЧЕНИЕ(Справочник.ВариантыОтчетов.ПустаяСсылка) + | ТОГДА ЗНАЧЕНИЕ(Справочник.ВариантыОтчетов.ПустаяСсылка) + | КОГДА ВариантыОтчетов.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.ВариантыОтчетов.ПустаяСсылка) + | ТОГДА ВариантыОтчетов.Родитель + | ИНАЧЕ ВариантыОтчетов.Родитель.Родитель + | КОНЕЦ КАК Родитель, + | ВЫБОР + | КОГДА НЕ &ОтображатьВсеВариантыОтчетов + | ИЛИ ВариантыОтчетов.Назначение В (&НазначенияВариантовОтчетов) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ВидимостьПоНазначению, + | ВЫБОР + | КОГДА ВариантыОтчетов.Родитель = ЗНАЧЕНИЕ(Справочник.ВариантыОтчетов.ПустаяСсылка) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ВерхнийУровень, + | ВариантыОтчетов.ПредопределенныйВариант.КлючЗамеров КАК КлючЗамеров + |ПОМЕСТИТЬ втВсеВарианты + |ИЗ + | Справочник.ВариантыОтчетов КАК ВариантыОтчетов + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Размещение КАК РазмещениеОтчетов + | ПО ВариантыОтчетов.Ссылка = РазмещениеОтчетов.Ссылка + | ЛЕВОЕ СОЕДИНЕНИЕ втВсеВариантыСПодсистемами КАК втВсеВариантыСПодсистемами + | ПО ВариантыОтчетов.Ссылка = втВсеВариантыСПодсистемами.Ссылка + |ГДЕ + | (ВариантыОтчетов.Ссылка В (&ВариантыНайденныеПоиском) + | ИЛИ (&НетОтбораПоПодсистемамИОтчетам + | ИЛИ РазмещениеОтчетов.Подсистема В (&ПодсистемыНайденныеПоиском))) + | И (РазмещениеОтчетов.Ссылка ЕСТЬ NULL + | ИЛИ РазмещениеОтчетов.Подсистема В (&МассивПодсистем)) + | И (НЕ ВариантыОтчетов.ТолькоДляАвтора + | ИЛИ ВариантыОтчетов.Автор = &ТекущийПользователь) + | И (&НетОтбораПоПодсистемамИОтчетам + | ИЛИ ВариантыОтчетов.Отчет В (&ОтчетыПользователя)) + | И НЕ ВариантыОтчетов.ПредопределенныйВариант В (&ОтключенныеВариантыПрограммы) + | И (НЕ ВариантыОтчетов.Пользовательский + | ИЛИ НЕ ВариантыОтчетов.ИнтерактивнаяПометкаУдаления) + | И (ВариантыОтчетов.Пользовательский + | ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления) + | И &Параметр1 + | И втВсеВариантыСПодсистемами.Ссылка ЕСТЬ NULL + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | втВсеВариантыСПодсистемами.Ссылка, + | втВсеВариантыСПодсистемами.Подсистема, + | втВсеВариантыСПодсистемами.Важный, + | втВсеВариантыСПодсистемами.СмТакже, + | втВсеВариантыСПодсистемами.Наименование, + | втВсеВариантыСПодсистемами.Описание, + | втВсеВариантыСПодсистемами.Автор, + | втВсеВариантыСПодсистемами.Отчет, + | втВсеВариантыСПодсистемами.ТипОтчета, + | втВсеВариантыСПодсистемами.КлючВарианта, + | втВсеВариантыСПодсистемами.Родитель, + | втВсеВариантыСПодсистемами.ВидимостьПоНазначению, + | втВсеВариантыСПодсистемами.ВерхнийУровень, + | втВсеВариантыСПодсистемами.КлючЗамеров + |ИЗ + | втВсеВариантыСПодсистемами КАК втВсеВариантыСПодсистемами + |; + | + |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Подсистемы.Ссылка КАК Подсистема, | Подсистемы.РазделСсылка КАК РазделСсылка, @@ -7865,6 +8149,7 @@ | втВсеВарианты.ТипОтчета КАК ТипОтчета, | втВсеВарианты.КлючВарианта КАК КлючВарианта, | втВсеВарианты.Родитель КАК Родитель, + | втВсеВарианты.ВидимостьПоНазначению КАК ВидимостьПоНазначению, | втВсеВарианты.ВерхнийУровень КАК ВерхнийУровень, | втВсеВарианты.КлючЗамеров КАК КлючЗамеров |ИЗ @@ -7927,6 +8212,7 @@ | втВсеВарианты.ТипОтчета, | втВсеВарианты.КлючВарианта, | втВсеВарианты.Родитель, + | втВсеВарианты.ВидимостьПоНазначению, | втВсеВарианты.ВерхнийУровень, | втВсеВарианты.КлючЗамеров | @@ -9154,7 +9440,7 @@ КонецЕсли; МодульОбсужденияСлужебный = ОбщегоНазначения.ОбщийМодуль("ОбсужденияСлужебный"); - МодульОбсуждения = ОбщегоНазначения.ОбщийМодуль("Обсуждения");; + МодульОбсуждения = ОбщегоНазначения.ОбщийМодуль("Обсуждения"); Если Не МодульОбсужденияСлужебный.Подключены() Тогда Возврат; @@ -9263,6 +9549,7 @@ Результат.Колонки.Добавить("ОсновнойВариант", РеквизитыСправочника.КлючВарианта.Тип); Результат.Колонки.Добавить("ФорматНастроекСКД", ОписаниеПризнака); Результат.Колонки.Добавить("ОпределитьНастройкиФормы", ОписаниеПризнака); + Результат.Колонки.Добавить("Назначение", Новый ОписаниеТипов("ПеречислениеСсылка.НазначенияВариантовОтчетов")); // Вспомогательные сведения для процедуры ОбновитьНастройкиПредопределенных. Результат.Колонки.Добавить("НайденВБазеДанных", ОписаниеПризнака); @@ -9322,6 +9609,7 @@ ОписаниеОтчета.ИспользуетСКД = ИспользуетСКД; ОписаниеОтчета.ФорматНастроекСКД = ФорматНастроекСКД; ОписаниеОтчета.НастройкиДляПоиска = НастройкиДляПоиска; + ОписаниеОтчета.Назначение = ВариантыОтчетовСлужебный.НазначениеВариантаОтчетаПоУмолчанию(); Возврат ОписаниеОтчета; diff --git a/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl index 361e5abaf..eebe403e5 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl @@ -68,6 +68,9 @@ РазрезСвойствЗаголовков = СтандартныйРазрезСвойствЗаголовковОтчета(); + ЭтоМобильныйКлиент = ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Форма, "ЭтоМобильныйКлиент") + И Форма.ЭтоМобильныйКлиент; + Для НомерСтроки = 1 По РезультатОтчета.ВысотаТаблицы Цикл НачальнаяЯчейка = РезультатОтчета.Область(НомерСтроки, 1); @@ -389,6 +392,20 @@ КонецФункции +Функция ПустоеНазначениеВариантаОтчета() Экспорт + + Возврат ПредопределенноеЗначение("Перечисление.НазначенияВариантовОтчетов.ПустаяСсылка"); + +КонецФункции + +// Определяет назначение варианта отчета по умолчанию. +// Возвращаемое значение: +// ПеречислениеСсылка.НазначенияВариантовОтчетов +// +Функция НазначениеВариантаОтчетаПоУмолчанию() Экспорт + Возврат Перечисления.НазначенияВариантовОтчетов.ДляКомпьютеровИПланшетов; +КонецФункции + #КонецОбласти #КонецОбласти diff --git a/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl b/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl index 5a21ccfc2..4c811606e 100644 --- a/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl +++ b/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl @@ -1351,7 +1351,7 @@ КонецЕсли; КонецЕсли; - СсылкаНаОбъект = Объект.Ссылка;; + СсылкаНаОбъект = Объект.Ссылка; Если СсылкаНаОбъект.Пустая() Тогда СсылкаНаОбъект = Объект.ПолучитьСсылкуНового(); Если СсылкаНаОбъект.Пустая() Тогда diff --git a/SSL/src/CommonModules/Взаимодействия/Module.bsl b/SSL/src/CommonModules/Взаимодействия/Module.bsl index 5ae281c41..13e979b63 100644 --- a/SSL/src/CommonModules/Взаимодействия/Module.bsl +++ b/SSL/src/CommonModules/Взаимодействия/Module.bsl @@ -567,7 +567,14 @@ Письмо.Автор = Пользователи.ТекущийПользователь(); Письмо.Ответственный = Пользователи.ТекущийПользователь(); Письмо.Дата = ТекущаяДатаСеанса(); - Письмо.Важность = Перечисления.ВариантыВажностиВзаимодействия.Обычная; + + Если Сообщение.Важность = ВажностьИнтернетПочтовогоСообщения.Высокая Тогда + Письмо.Важность = Перечисления.ВариантыВажностиВзаимодействия.Высокая; + ИначеЕсли Сообщение.Важность = ВажностьИнтернетПочтовогоСообщения.Низкая Тогда + Письмо.Важность = Перечисления.ВариантыВажностиВзаимодействия.Низкая; + Иначе + Письмо.Важность = Перечисления.ВариантыВажностиВзаимодействия.Обычная; + КонецЕсли; Письмо.Кодировка = "UTF-8"; Письмо.ОтправительПредставление = Строка(УчетнаяЗапись); @@ -782,18 +789,19 @@ // * Тема - Строка // * Текст - Строка // * СообщенияПользователю - ФиксированныйМассив +// * Важность - ВажностьИнтернетПочтовогоСообщения // * Получатели - ТаблицаЗначений: // ** Представление - Строка // ** Адрес - Строка - адрес во временном хранилище -// ** ИсточникКонтактнойИнформации - ОпределяемыеТип.ВладелецКонтактнойИнформации +// ** ИсточникКонтактнойИнформации - ОпределяемыйТип.ВладелецКонтактнойИнформации // * ПолучателиОтвета // ** Представление - Строка // ** Адрес - Строка - адрес во временном хранилище -// ** ИсточникКонтактнойИнформации - ОпределяемыеТип.ВладелецКонтактнойИнформации +// ** ИсточникКонтактнойИнформации - ОпределяемыйТип.ВладелецКонтактнойИнформации // * ПолучателиСкрытыхКопий // ** Представление - Строка // ** Адрес - Строка - адрес во временном хранилище -// ** ИсточникКонтактнойИнформации - ОпределяемыеТип.ВладелецКонтактнойИнформации +// ** ИсточникКонтактнойИнформации - ОпределяемыйТип.ВладелецКонтактнойИнформации // * Вложения - ТаблицаЗначений: // ** Представление - Строка // ** АдресВоВременномХранилище - Строка @@ -811,6 +819,7 @@ Сообщение = Новый Структура; Сообщение.Вставить("Тема", ""); Сообщение.Вставить("Текст", ""); + Сообщение.Вставить("Важность", ВажностьИнтернетПочтовогоСообщения.Обычная); Сообщение.Вставить("СообщенияПользователю", Новый ФиксированныйМассив(Новый Массив)); ТипСтрока = Новый ОписаниеТипов("Строка"); @@ -1198,7 +1207,6 @@ Обработчик.Комментарий = НСтр("ru = 'Заполняет в справочнике ""Папки электронных писем"" тип предопределенной папки'"); Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ПапкиЭлектронныхПисем.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ЧитаемыеОбъекты = "Справочник.ПапкиЭлектронныхПисем"; @@ -1212,7 +1220,6 @@ Обработчик.Комментарий = НСтр("ru = 'Заполнение реквизита ""Текст"" документа ""Электронное письмо исходящее"" для писем в формате HTML у которых он ранее не был ошибочно заполнен'"); Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 3; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Документы.ЭлектронноеПисьмоИсходящее.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ЧитаемыеОбъекты = "Документ.ЭлектронноеПисьмоИсходящее"; @@ -4868,7 +4875,7 @@ ЭлементТелоПисьма = ЭлементТелоПисьма(ДокументHTML); МассивДочернихУзловТела = ДочерниеУзлыСодержащиеHTML(ЭлементТелоПисьма); - // Имя пользователя учетной записи. + // Имя пользователя почты. ЭлементПользователь = СформироватьЭлементИмяПользователяУчетнойЗаписи(ЭлементТелоПисьма, Выборка); ВставитьЭлементHTMLПервымДочернимЭлементом(ЭлементТелоПисьма,ЭлементПользователь, МассивДочернихУзловТела); @@ -4993,7 +5000,7 @@ Выборка.Следующий(); Размер = Размер + СтрДлина(Выборка.Текст) + СтрДлина(Выборка.Тема); - КонецЕсли;; + КонецЕсли; Возврат Размер; @@ -5760,10 +5767,10 @@ //////////////////////////////////////////////////////////////////// // Работа с папками электронных писем. -// Проверяет, является ли текущий пользователь ответственным за ведение папок для учетной записи. +// Проверяет, является ли текущий пользователь ответственным за ведение папок почты. // // Параметры: -// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись для которой выполняется проверка. +// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - почты, для которой выполняется проверка. // // Возвращаемое значение: // Булево - Истина, если является, Ложь в обратном случае. @@ -6243,7 +6250,7 @@ Исключение - ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось применить правило обработки писем ""%1"" для учетной записи ""%2"" по причине: + ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось применить правило обработки писем ""%1"" для почты ""%2"" по причине: |%3 |Требуется исправить правило.'", ОбщегоНазначения.КодОсновногоЯзыка()); @@ -6577,7 +6584,7 @@ Исключение - ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось применить правило обработки писем ""%1"" для учетной записи ""%2"" по причине: + ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось применить правило обработки писем ""%1"" для почты ""%2"" по причине: |%3 |Требуется исправить правило.'", ОбщегоНазначения.КодОсновногоЯзыка()); @@ -7536,7 +7543,13 @@ | ЖурналДокументовВзаимодействия.Участники, | ЖурналДокументовВзаимодействия.Тип, | ЖурналДокументовВзаимодействия.УчетнаяЗапись, - | ЖурналДокументовВзаимодействия.ЕстьВложения, + | ВЫБОР + | КОГДА ЕСТЬNULL(ЖурналДокументовВзаимодействия.ЕстьВложения, НаличиеФайлов.ЕстьФайлы) ЕСТЬ NULL + | ТОГДА ЛОЖЬ + | КОГДА ЕСТЬNULL(ЖурналДокументовВзаимодействия.ЕстьВложения, НаличиеФайлов.ЕстьФайлы) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ЕстьВложения, | ЖурналДокументовВзаимодействия.Важность, | ВЫБОР | КОГДА ЖурналДокументовВзаимодействия.Важность = ЗНАЧЕНИЕ(Перечисление.ВариантыВажностиВзаимодействия.Высокая) @@ -7560,6 +7573,8 @@ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыВзаимодействий | ПО ЖурналДокументовВзаимодействия.Ссылка = ПредметыВзаимодействий.Взаимодействие | И &ТекстСоединенияТаблицаКонтактов + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов + | ПО ЖурналДокументовВзаимодействия.Ссылка = НаличиеФайлов.ОбъектСФайлами |{ГДЕ | ЖурналДокументовВзаимодействия.Ссылка КАК Поиск | ,&ОтборКонтакт}"; diff --git a/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl b/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl index e836a6f89..061e5115a 100644 --- a/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl @@ -331,7 +331,7 @@ КонецПопытки; КонецПроцедуры -// Преобразует письмо в двоичные данные и подготавливает к сохранению на диск. +// Преобразует письмо в двоичные данные и подготавливает к сохранению на компьютер. // // Параметры: // Письмо - ДокументСсылка.ЭлектронноеПисьмоВходящее diff --git a/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl b/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl index 350072155..ea98b7a6f 100644 --- a/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl @@ -173,7 +173,7 @@ КонецПроцедуры -// Сохраняет письмо на диск. +// Сохраняет письмо на компьютер. // // Параметры: // Письмо - ДокументСсылка.ЭлектронноеПисьмоВходящее @@ -671,7 +671,7 @@ // // Параметры: // Объект - ДокументОбъект - документ, в котором выполняется проверка. -// Отказ - Булево - устанавливает в истина, если реквизиты заполнены не правильно. +// Отказ - Булево - устанавливает в истина, если реквизиты заполнены неправильно. // Процедура ПроверкаЗаполненностиРеквизитовОтложеннойОтправки(Объект, Отказ) Экспорт @@ -755,16 +755,16 @@ // Возвращаемое значение: // Структура: -// *ДатаПисьмаОснования - Дата - дата письма-основания. -// *ИмяПользователяУчетнойЗаписи - Строка - имя пользователя учетной записи, которая приняла письмо-основание. -// *НеВызыватьКомандуПечати - Булево - признак того, что при открытии формы печати не нужно вызывать команду -// печати ОС. -// *ПисьмоОснование - Неопределено -// - Строка -// - ДокументСсылка.ЭлектронноеПисьмоВходящее -// - ДокументСсылка.ЭлектронноеПисьмоИсходящее - ссылка на письмо-основание или -// представление письма. -// *ТемаПисьмаОснования - Строка - тема письма-основания. +// * ДатаПисьмаОснования - Дата - дата письма-основания. +// * ИмяПользователяУчетнойЗаписи - Строка - имя пользователя почты, которая приняла письмо-основание. +// * НеВызыватьКомандуПечати - Булево - признак того, что при открытии формы печати не нужно вызывать команду +// печати ОС. +// * ПисьмоОснование - Неопределено +// - Строка +// - ДокументСсылка.ЭлектронноеПисьмоВходящее +// - ДокументСсылка.ЭлектронноеПисьмоИсходящее - ссылка на письмо-основание или +// представление письма. +// * ТемаПисьмаОснования - Строка - тема письма-основания. // Функция ПараметрыПисьмаВложения() Экспорт diff --git a/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl b/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl index f9e99ffb5..84e212616 100644 --- a/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl @@ -8,7 +8,6 @@ #Область СлужебныеПроцедурыИФункции -// Обработчик события при записи учетной записи электронной почты. Процедура ПриЗаписиУчетнойЗаписиЭлектроннойПочты(Источник, Отказ) Экспорт Если Источник.ОбменДанными.Загрузка Тогда diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl index 03c37aa3f..3dc0f0810 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl @@ -8,6 +8,56 @@ #Область СлужебныйПрограммныйИнтерфейс +// Выполняет удаление неиспользуемых общих внешних компонент. +// +Процедура УдалениеНеиспользуемыхВнешнихКомпонент() Экспорт + + ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.УдалениеНеиспользуемыхВнешнихКомпонент); + Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ОбщиеВнешниеКомпоненты.Ссылка КАК Ссылка + |ИЗ + | Справочник.ОбщиеВнешниеКомпоненты КАК ОбщиеВнешниеКомпоненты + |ГДЕ + | НЕ ОбщиеВнешниеКомпоненты.ПометкаУдаления + | И НЕ ОбщиеВнешниеКомпоненты.Идентификатор В (&Идентификаторы)"; + + Запрос.УстановитьПараметр("Идентификаторы", ВнешниеКомпонентыСлужебный.ПоставляемыеКомпоненты()); + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + НачатьТранзакцию(); + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ОбщиеВнешниеКомпоненты"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); + Блокировка.Заблокировать(); + + Объект = Выборка.Ссылка.ПолучитьОбъект(); + Объект.ПометкаУдаления = Истина; + Объект.Записать(); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые внешние компоненты.Удаление неиспользуемой компоненты'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки( + ИнформацияОбОшибке())); + ВызватьИсключение; + КонецПопытки; + КонецЦикла; + + УстановитьПривилегированныйРежим(Ложь); + +КонецПроцедуры + // Параметры: // ОписаниеКомпоненты - см. ВнешниеКомпонентыСервер.ОписаниеПоставляемойОбщейКомпоненты. // @@ -54,11 +104,14 @@ Информация = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(ДвоичныеДанныеКомпоненты, Ложь); Если Не Информация.Разобрано Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Поставляемую компоненту не удалось разобрать |по причине: - |%1'"), - Информация.ОписаниеОшибки); + |%1 %2'"), + Информация.ОписаниеОшибки, + ?(Информация.ИнформацияОбОшибке = Неопределено, "", + ": " + ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация.ИнформацияОбОшибке))); КонецЕсли; ЗаполнитьЗначенияСвойств(ОбщаяКомпонента, Информация.Реквизиты); // По данным манифеста. diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl index affcce470..bb3f02167 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl @@ -25,6 +25,8 @@ // который выполняет код встроенного языка; Неопределено - поддерживается поведение платформы по умолчанию: // изолированно - если компонентой поддерживается только этот режим, не изолированно - в остальных случаях. // См. https://its.1c.eu/db/v83doc#bookmark:dev:TI000001866 +// * ОбновлятьАвтоматически - Булево - (по умолчанию Истина) при загрузке внешней компоненты устанавливать +// признак ОбновлятьСПортала1СИТС // // Пример: // @@ -42,6 +44,7 @@ Параметры.Вставить("ТекстПояснения", ""); Параметры.Вставить("ИдентификаторыСозданияОбъектов", Новый Массив); Параметры.Вставить("Изолированно", Неопределено); + Параметры.Вставить("ОбновлятьАвтоматически", Истина); Возврат Параметры; diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl index c38f81380..f027307c8 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl @@ -79,45 +79,42 @@ // ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент -// Возвращает таблицу описаний внешних компонент, которые требуется обновлять автоматически с Портала 1С:ИТС. +// Возвращает таблицу описаний внешних компонент +// +// Параметры: +// Вариант - Строка - может принимать значения: +// "ДляОбновления" - компоненты только из справочника с установленным признаком ОбновлятьСПортала1СИТС. +// "ДляЗагрузки" - компоненты, используемые в конфигурации. +// "Поставляемые" - для определения поставляемых компонент в модели сервиса. // // Возвращаемое значение: -// см. ПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент +// - см. ПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент +// - Массив - идентификаторы поставляемых компонент, если Вариант = "Поставляемые" // -Функция АвтоматическиОбновляемыеКомпоненты() Экспорт +Функция ИспользуемыеКомпоненты(Вариант) Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент") Тогда - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ВнешниеКомпоненты.Идентификатор КАК Идентификатор, - | ВнешниеКомпоненты.Версия КАК Версия - |ИЗ - | Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты - |ГДЕ - | ВнешниеКомпоненты.ОбновлятьСПортала1СИТС"; - - РезультатЗапроса = Запрос.Выполнить(); - Выборка = РезультатЗапроса.Выбрать(); - - МодульПолучениеВнешнихКомпонент = ОбщегоНазначения.ОбщийМодуль("ПолучениеВнешнихКомпонент"); - ОписаниеВнешнихКомпонент = МодульПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент(); - - Пока Выборка.Следующий() Цикл - ОписаниеКомпоненты = ОписаниеВнешнихКомпонент.Добавить(); - ОписаниеКомпоненты.Идентификатор = Выборка.Идентификатор; - ОписаниеКомпоненты.Версия = Выборка.Версия; - КонецЦикла; - - Возврат ОписаниеВнешнихКомпонент; - - Иначе + Если Не ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент") Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Действие недоступно, т.к. отсутствует подсистема ""%1"".'"), "ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент"); КонецЕсли; + Если Вариант = "Поставляемые" Тогда + Возврат ВнешниеКомпонентыСлужебный.ПоставляемыеКомпоненты(); + КонецЕсли; + + ДанныеВнешнихКомпонент = ВнешниеКомпонентыСлужебный.ДанныеВнешнихКомпонент(Вариант); + + МодульПолучениеВнешнихКомпонент = ОбщегоНазначения.ОбщийМодуль("ПолучениеВнешнихКомпонент"); + ОписаниеВнешнихКомпонент = МодульПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент(); + + Для Каждого ОписаниеКомпоненты Из ДанныеВнешнихКомпонент Цикл + НоваяСтрока = ОписаниеВнешнихКомпонент.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, ОписаниеКомпоненты); + КонецЦикла; + + Возврат ОписаниеВнешнихКомпонент; + КонецФункции // Выполняет обновление внешних компонент. @@ -133,13 +130,24 @@ // * КодОшибки - Строка - код ошибки. // АдресРезультата - Строка - адрес временного хранилища. // Если указан, в него будет помещено описание результата операции. +// Структура: +// # Результат - Булево - Ложь, если есть ошибки +// # Ошибки - Соответствие: +// ## Ключ - Строка - Идентификатор +// ## Значение - Строка - СообщениеОбОшибке +// # Успех - Соответствие: +// ## Ключ - Строка - Идентификатор +// ## Значение - Строка - СообщениеОбОшибке // Процедура ОбновитьВнешниеКомпоненты(ДанныеВнешнихКомпонент, АдресРезультата = Неопределено) Экспорт + РезультатВыполнения = Новый Структура; + РезультатВыполнения.Вставить("Результат", Ложь); + РезультатВыполнения.Вставить("Ошибки", Новый Соответствие); + РезультатВыполнения.Вставить("Успех", Новый Соответствие); + Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент") Тогда - Результат = ""; - Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ @@ -157,6 +165,8 @@ РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); + ИспользуемыеВнешниеКомпоненты = Неопределено; + // Обход результата запроса. Для каждого СтрокаРезультата Из ДанныеВнешнихКомпонент Цикл @@ -168,8 +178,9 @@ Если ЗначениеЗаполнено(КодОшибки) Тогда Если КодОшибки = "АктуальнаяВерсия" Тогда - Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1 - актуальная версия.'"), ПредставлениеКомпоненты) + Символы.ПС; + РезультатВыполнения.Успех.Вставить(СтрокаРезультата.Идентификатор, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 - актуальная версия.'"), ПредставлениеКомпоненты)); Продолжить; КонецЕсли; @@ -185,7 +196,8 @@ |%2'"), ПредставлениеКомпоненты, ИнформацияОбОшибке); - Результат = Результат + ПредставлениеКомпоненты + " - " + ИнформацияОбОшибке + Символы.ПС; + РезультатВыполнения.Ошибки.Вставить(СтрокаРезультата.Идентификатор, ТекстОшибки); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление внешних компонент'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки); @@ -195,70 +207,98 @@ ДвоичныеДанные = ПолучитьИзВременногоХранилища(СтрокаРезультата.АдресФайла); Информация = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(ДвоичныеДанные, Ложь); - Если Не Информация.Разобрано Тогда - Результат = Результат + ПредставлениеКомпоненты + " - " + Информация.ОписаниеОшибки + Символы.ПС; + Если Не Информация.Разобрано Тогда + + РезультатВыполнения.Ошибки.Вставить(СтрокаРезультата.Идентификатор, ПредставлениеКомпоненты + " - " + + Информация.ОписаниеОшибки + ?(Информация.ИнформацияОбОшибке = Неопределено, "", ": " + + ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация.ИнформацияОбОшибке))); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление внешних компонент'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, Информация.ОписаниеОшибки); + ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , , + Информация.ОписаниеОшибки); Продолжить; КонецЕсли; // Поиск ссылки. Отбор = Новый Структура("Идентификатор", СтрокаРезультата.Идентификатор); + Выборка.Сбросить(); Если Выборка.НайтиСледующий(Отбор) Тогда - // Когда уже загружена компонента по дате более свежая, чем на Портале 1С:ИТС, обновление не следует выполнять. Если Выборка.ДатаВерсии > СтрокаРезультата.ДатаВерсии Тогда ПредставлениеКомпоненты = ВнешниеКомпонентыСлужебный.ПредставлениеКомпоненты( СтрокаРезультата.Идентификатор, Выборка.Версия); - Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1 - в программе более новая версия, чем в сервисе (%2 от %3).'"), - ПредставлениеКомпоненты, СтрокаРезультата.Версия, Формат(СтрокаРезультата.ДатаВерсии, "ДЛФ=Д")) + Символы.ПС; + + РезультатВыполнения.Успех.Вставить(СтрокаРезультата.Идентификатор, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 - в программе более новая версия, чем в сервисе (%2 от %3).'"), + ПредставлениеКомпоненты, СтрокаРезультата.Версия, Формат(СтрокаРезультата.ДатаВерсии, "ДЛФ=Д"))); Продолжить; КонецЕсли; - НачатьТранзакцию(); - Попытка - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("Справочник.ВнешниеКомпоненты"); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); - Блокировка.Заблокировать(); - - Объект = Выборка.Ссылка.ПолучитьОбъект(); - Объект.Заблокировать(); - - ЗаполнитьЗначенияСвойств(Объект, Информация.Реквизиты); // По данным манифеста. - ЗаполнитьЗначенияСвойств(Объект, СтрокаРезультата); // По данным с сайта. - - Объект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", Информация.ДвоичныеДанные); - - Объект.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Загружена с Портала 1С:ИТС. %1.'"), - ТекущаяДатаСеанса()); - - Объект.Записать(); - - Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1 - успешно обновлена.'"), ПредставлениеКомпоненты) + Символы.ПС; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - Результат = Результат + ПредставлениеКомпоненты - + " - " + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()) + Символы.ПС; - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление внешних компонент'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - + СсылкаНаОбъект = Выборка.Ссылка; + Иначе + СсылкаНаОбъект = Неопределено; + Если ИспользуемыеВнешниеКомпоненты = Неопределено Тогда + ИспользуемыеВнешниеКомпоненты = ВнешниеКомпонентыСлужебный.ИспользуемыеВнешниеКомпоненты(); + КонецЕсли; + СтрокаКомпоненты = ИспользуемыеВнешниеКомпоненты.Найти(СтрокаРезультата.Идентификатор, "Идентификатор"); + Если СтрокаКомпоненты <> Неопределено Тогда + ОбновлятьАвтоматически = СтрокаКомпоненты.ОбновлятьАвтоматически; + Иначе + ОбновлятьАвтоматически = Ложь; + КонецЕсли; КонецЕсли; + + НачатьТранзакцию(); + Попытка + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ВнешниеКомпоненты"); + Если СсылкаНаОбъект <> Неопределено Тогда + ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаНаОбъект); + КонецЕсли; + Блокировка.Заблокировать(); + + Если СсылкаНаОбъект <> Неопределено Тогда + Объект = СсылкаНаОбъект.ПолучитьОбъект(); + Объект.Заблокировать(); + Иначе + Объект = Справочники.ВнешниеКомпоненты.СоздатьЭлемент(); + Объект.ОбновлятьСПортала1СИТС = ОбновлятьАвтоматически; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(Объект, Информация.Реквизиты); // По данным манифеста. + ЗаполнитьЗначенияСвойств(Объект, СтрокаРезультата); // По данным с сайта. + + Объект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", Информация.ДвоичныеДанные); + + Объект.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Загружена с Портала 1С:ИТС. %1.'"), + ТекущаяДатаСеанса()); + + Объект.Записать(); + + РезультатВыполнения.Успех.Вставить(СтрокаРезультата.Идентификатор, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 - успешно обновлена.'"), ПредставлениеКомпоненты)); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + РезультатВыполнения.Ошибки.Вставить(СтрокаРезультата.Идентификатор, ПредставлениеКомпоненты + + " - " + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление внешних компонент'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; КонецЦикла; + РезультатВыполнения.Результат = РезультатВыполнения.Ошибки.Количество() = 0; + Если ЗначениеЗаполнено(АдресРезультата) Тогда - ПоместитьВоВременноеХранилище(Результат, АдресРезультата); + ПоместитьВоВременноеХранилище(РезультатВыполнения, АдресРезультата); КонецЕсли; Иначе @@ -305,8 +345,37 @@ КонецПроцедуры +// Для версий БИП старше 2.7.2.0 следует использовать ИспользуемыеКомпоненты("ДляОбновления"). +// Возвращает таблицу описаний внешних компонент, которые требуется обновлять автоматически с Портала 1С:ИТС. +// +// Возвращаемое значение: +// см. ПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент +// +Функция АвтоматическиОбновляемыеКомпоненты() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент") Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Действие недоступно, т.к. отсутствует подсистема ""%1"".'"), + "ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент"); + КонецЕсли; + + МодульПолучениеВнешнихКомпонент = ОбщегоНазначения.ОбщийМодуль("ПолучениеВнешнихКомпонент"); + ОписаниеВнешнихКомпонент = МодульПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент(); + + ДанныеВнешнихКомпонент = ВнешниеКомпонентыСлужебный.ДанныеВнешнихКомпонент("ДляОбновления"); + + Для Каждого ОписаниеКомпоненты Из ДанныеВнешнихКомпонент Цикл + НоваяСтрока = ОписаниеВнешнихКомпонент.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, ОписаниеКомпоненты); + КонецЦикла; + + Возврат ОписаниеВнешнихКомпонент; + +КонецФункции + +#КонецОбласти + // Конец ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент #КонецОбласти -#КонецОбласти diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl index 1a238ec7d..577ec46e7 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl @@ -8,6 +8,18 @@ #Область СлужебныйПрограммныйИнтерфейс +// Поставляемые компоненты. +// +// Возвращаемое значение: +// Массив - идентификаторы поставляемых компонент +// +Функция ПоставляемыеКомпоненты() Экспорт + + ИспользуемыеВнешниеКомпоненты = ИспользуемыеВнешниеКомпоненты(); + Возврат ИспользуемыеВнешниеКомпоненты.ВыгрузитьКолонку("Идентификатор"); + +КонецФункции + // Представление компоненты для журнала регистрации // Функция ПредставлениеКомпоненты(Идентификатор, Версия) Экспорт @@ -53,6 +65,8 @@ // * ДвоичныеДанные - ДвоичныеДанные - выгрузка файла компоненты. // * ДополнительнаяИнформация - Соответствие - информация, полученная по переданным параметрам поиска. // * ОписаниеОшибки - Строка - текст ошибки в случае, если Разобрано = Ложь. +// * ИнформацияОбОшибке - ИнформацияОбОшибке, Неопределено - в случае исключения, если Разобрано = Ложь. +// * ЭтоФайлСервиса - Булево - файл компонент загружен с портала ИТС для интерактивной загрузки. // Функция ИнформацияОКомпонентеИзФайла(ДвоичныеДанные, ВыполнятьРазборИнфоФайла = Истина, Знач ПараметрыПоискаДополнительнойИнформации = Неопределено) Экспорт @@ -63,6 +77,8 @@ Результат.Вставить("ДвоичныеДанные", Неопределено); Результат.Вставить("ДополнительнаяИнформация", Новый Соответствие); Результат.Вставить("ОписаниеОшибки", ""); + Результат.Вставить("ИнформацияОбОшибке", Неопределено); + Результат.Вставить("ЭтоФайлСервиса", Ложь); Реквизиты = РеквизитыКомпоненты(); Если ПараметрыПоискаДополнительнойИнформации = Неопределено Тогда @@ -95,8 +111,14 @@ КонецЕсли; Попытка - + ИсходноеПолноеИмя = НРег(ЭлементАрхива.ИсходноеПолноеИмя); + + Если ИсходноеПолноеИмя = "external-components.json" Тогда + Результат.ЭтоФайлСервиса = Истина; + Результат.ОписаниеОшибки = НСтр("ru = 'Это файл для загрузки компонент с Портала 1С:ИТС.'"); + Возврат Результат; + КонецЕсли; // Поиск и разбор манифеста. Если ИсходноеПолноеИмя = "manifest.xml" Тогда @@ -141,8 +163,9 @@ КонецЦикла; Исключение - Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Некорректный файл %1: - |%2'"), ЭлементАрхива.ИсходноеПолноеИмя, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Некорректный файл %1'"), ЭлементАрхива.ИсходноеПолноеИмя); + Результат.ИнформацияОбОшибке = ИнформацияОбОшибке(); Возврат Результат; КонецПопытки; КонецЦикла; @@ -237,18 +260,19 @@ // Параметры - см. ПараметрыЗагрузки // ВыполнятьРазборИнфоФайла - Булево - требуется ли дополнительно анализировать // данные файла INFO.XML, если он есть +// ИспользуемыеВнешниеКомпоненты - см. ИспользуемыеВнешниеКомпоненты // -Процедура ЗагрузитьКомпонентуИзДвоичныхДанных(Параметры, ВыполнятьРазборИнфоФайла = Истина) Экспорт +Процедура ЗагрузитьКомпонентуИзДвоичныхДанных(Параметры, ВыполнятьРазборИнфоФайла = Истина, ИспользуемыеВнешниеКомпоненты = Неопределено) Экспорт Если ТипЗнч(Параметры.Данные) = Тип("Строка") Тогда Если ПустаяСтрока(Параметры.Данные) Тогда - ТекстИсключения = НСтр("ru = 'Добавление внешней компоненты: не заполнены данные.'"); + ТекстИсключения = НСтр("ru = 'Не заполнены данные.'"); ВызватьИсключение ТекстИсключения; Иначе Если ЭтоАдресВременногоХранилища(Параметры.Данные) Тогда ДвоичныеДанные = ПолучитьИзВременногоХранилища(Параметры.Данные); Иначе - ВызватьИсключение НСтр("ru = 'Добавление внешней компоненты: адрес данных не является адресом временного хранилища.'"); + ВызватьИсключение НСтр("ru = 'Адрес данных не является адресом временного хранилища.'"); КонецЕсли; КонецЕсли; Иначе @@ -256,25 +280,29 @@ КонецЕсли; Если ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Тогда - ТекстИсключения = НСтр("ru = 'Добавление внешней компоненты: данные файла не являются двоичными данными.'"); + ТекстИсключения = НСтр("ru = 'Данные файла не являются двоичными данными.'"); ВызватьИсключение ТекстИсключения; КонецЕсли; Информация = ИнформацияОКомпонентеИзФайла(ДвоичныеДанные, ВыполнятьРазборИнфоФайла); Если Не Информация.Разобрано Тогда - ЗаписьЖурналаРегистрации(НСтр("ru = 'Добавление внешней компоненты'", - ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , , Информация.ОписаниеОшибки); - ВызватьИсключение Информация.ОписаниеОшибки; + + ТекстИсключения = Информация.ОписаниеОшибки + ?(Информация.ИнформацияОбОшибке = Неопределено, "", + ": " + ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация.ИнформацияОбОшибке)); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Добавление внешней компоненты'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , ТекстИсключения); + ВызватьИсключение ТекстИсключения; КонецЕсли; Идентификатор = ?(ЗначениеЗаполнено(Параметры.Идентификатор), Параметры.Идентификатор, Информация.Реквизиты.Идентификатор); Если Не ЗначениеЗаполнено(Идентификатор) Тогда - ТекстИсключения = НСтр("ru = 'Добавление внешней компоненты: не заполнен идентификатор'"); + ТекстИсключения = НСтр("ru = 'Не указан идентификатор, необходимо ввести его вручную.'"); ВызватьИсключение ТекстИсключения; КонецЕсли; - + НачатьТранзакцию(); Попытка @@ -312,6 +340,14 @@ Объект.ИмяФайла = ?(ЗначениеЗаполнено(Параметры.ИмяФайла), Параметры.ИмяФайла, Информация.Реквизиты.ИмяФайла); Объект.ОписаниеОшибки = Параметры.ОписаниеОшибки; Объект.ОбновлятьСПортала1СИТС = Параметры.ОбновлятьСПортала1СИТС; + + Если ИспользуемыеВнешниеКомпоненты <> Неопределено Тогда + СтрокаКомпоненты = ИспользуемыеВнешниеКомпоненты.Найти(Идентификатор, "Идентификатор"); + Если СтрокаКомпоненты <> Неопределено Тогда + Объект.ОбновлятьСПортала1СИТС = СтрокаКомпоненты.ОбновлятьАвтоматически; + КонецЕсли; + КонецЕсли; + Объект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", Информация.ДвоичныеДанные); Объект.Записать(); @@ -399,6 +435,36 @@ КонецПроцедуры +//////////////////////////////////////////////////////////////////////////////// +// Обработчики событий подсистемы ТекущиеДела. + +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// +Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт + + Если Пользователи.ЭтоСеансВнешнегоПользователя() Или Не Пользователи.ЭтоПолноправныйПользователь() Тогда + Возврат; + КонецЕсли; + + МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер"); + Разделы = МодульТекущиеДелаСервер.РазделыДляОбъекта(Метаданные.Справочники.ВнешниеКомпоненты.ПолноеИмя()); + + КоличествоНеиспользуемыхКомпонент = КоличествоНеиспользуемыхКомпонент(); + Для Каждого Раздел Из Разделы Цикл + Дело = ТекущиеДела.Добавить (); + Дело.Идентификатор = "УдалитьНеиспользуемыеКомпоненты"; + Дело.ЕстьДела = КоличествоНеиспользуемыхКомпонент > 0; + Дело.Представление = НСтр("ru = 'Удалить неиспользуемые компоненты'"); + Дело.Количество = КоличествоНеиспользуемыхКомпонент; + Дело.Важное = Ложь; + Дело.Форма = "Справочник.ВнешниеКомпоненты.ФормаСписка"; + Дело.ПараметрыФормы = Новый Структура("ИспользованиеОтбор", 3); + Дело.Владелец = Раздел; + КонецЦикла; + +КонецПроцедуры + #КонецОбласти // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. @@ -422,6 +488,183 @@ #Область СлужебныеПроцедурыИФункции +// Внешние компоненты, используемые в конфигурации. +// +// Возвращаемое значение: +// ТаблицаЗначений: +// * Идентификатор - Строка +// * ОбновлятьАвтоматически - Булево +// +Функция ИспользуемыеВнешниеКомпоненты() Экспорт + + ИспользуемыеВнешниеКомпоненты = Новый ТаблицаЗначений; + ИспользуемыеВнешниеКомпоненты.Колонки.Добавить("Идентификатор", ОбщегоНазначения.ОписаниеТипаСтрока(50)); + ИспользуемыеВнешниеКомпоненты.Колонки.Добавить("ОбновлятьАвтоматически", Новый ОписаниеТипов("Булево")); + + ИнтеграцияПодсистемБСП.ПриОпределенииИспользуемыхВнешнихКомпонент(ИспользуемыеВнешниеКомпоненты); + + Возврат ИспользуемыеВнешниеКомпоненты; + +КонецФункции + +// Проверят доступна ли интерактивная загрузка внешних компонент с портала. +// +// Возвращаемое значение: +// Булево - признак доступности. +// +Функция ДоступнаИнтерактивнаяЗагрузкаСПортала() Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") + И ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент") Тогда + МодульИнтернетПоддержкаПользователейКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиентСервер"); + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии( + МодульИнтернетПоддержкаПользователейКлиентСервер.ВерсияБиблиотеки(), "2.7.2.0") >= 0 Тогда + МодульПолучениеВнешнихКомпонент = ОбщегоНазначения.ОбщийМодуль("ПолучениеВнешнихКомпонент"); + Возврат МодульПолучениеВнешнихКомпонент.ДоступнаЗагрузкаВнешнихКомпонент(); + КонецЕсли; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +// Возвращает таблицу описаний внешних компонент +// +// Параметры: +// Вариант - Строка - может принимать значения: +// "ДляОбновления" - компоненты только из справочника с установленным признаком ОбновлятьСПортала1СИТС. +// "ДляЗагрузки" - компоненты, используемые в конфигурации. +// +// Возвращаемое значение: +// ТаблицаЗначений: +// * Идентификатор - Строка +// * Версия - Строка +// * Наименование - Строка +// * ДатаВерсии - Дата +// * ОбновлятьАвтоматически - Булево +// +Функция ДанныеВнешнихКомпонент(Вариант = "ДляОбновления") Экспорт + + Запрос = Новый Запрос; + + Если Вариант = "ДляОбновления" Тогда + Запрос.Текст = + "ВЫБРАТЬ + | ВнешниеКомпоненты.Идентификатор КАК Идентификатор, + | ВнешниеКомпоненты.Версия КАК Версия, + | ВнешниеКомпоненты.Наименование КАК Наименование, + | ВнешниеКомпоненты.ДатаВерсии КАК ДатаВерсии, + | ВнешниеКомпоненты.ОбновлятьСПортала1СИТС КАК ОбновлятьАвтоматически + |ИЗ + | Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты + |ГДЕ + | ВнешниеКомпоненты.ОбновлятьСПортала1СИТС"; + + ИначеЕсли Вариант = "ДляЗагрузки" Тогда + + Запрос.Текст = + "ВЫБРАТЬ + | ИспользуемыеВнешниеКомпоненты.Идентификатор, + | ИспользуемыеВнешниеКомпоненты.ОбновлятьАвтоматически + |ПОМЕСТИТЬ ИспользуемыеВнешниеКомпоненты + |ИЗ + | &ИспользуемыеВнешниеКомпоненты КАК ИспользуемыеВнешниеКомпоненты + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ЕСТЬNULL(ВнешниеКомпоненты.Идентификатор, ИспользуемыеВнешниеКомпоненты.Идентификатор) КАК Идентификатор, + | ЕСТЬNULL(ВнешниеКомпоненты.Версия, """") КАК Версия, + | ЕСТЬNULL(ВнешниеКомпоненты.Наименование, """") КАК Наименование, + | ЕСТЬNULL(ВнешниеКомпоненты.ДатаВерсии, ДатаВремя(1, 1, 1)) КАК ДатаВерсии, + | ЕСТЬNULL(ВнешниеКомпоненты.ОбновлятьСПортала1СИТС, ИспользуемыеВнешниеКомпоненты.ОбновлятьАвтоматически) КАК + | ОбновлятьАвтоматически + |ИЗ + | Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты + | ПОЛНОЕ СОЕДИНЕНИЕ ИспользуемыеВнешниеКомпоненты КАК ИспользуемыеВнешниеКомпоненты + | ПО ВнешниеКомпоненты.Идентификатор = ИспользуемыеВнешниеКомпоненты.Идентификатор"; + + Запрос.УстановитьПараметр("ИспользуемыеВнешниеКомпоненты", ИспользуемыеВнешниеКомпоненты()); + Иначе + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неизвестный параметр ""%1"" в ""%2"".'"), Вариант, + "ВнешниеКомпонентыСлужебный.ДанныеВнешнихКомпонент"); + КонецЕсли; + + РезультатЗапроса = Запрос.Выполнить(); + ОписаниеВнешнихКомпонент = РезультатЗапроса.Выгрузить(); + + Возврат ОписаниеВнешнихКомпонент; + +КонецФункции + +Процедура УдалитьНеиспользуемыеКомпоненты() Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВнешниеКомпоненты.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты + |ГДЕ + | НЕ ВнешниеКомпоненты.ПометкаУдаления + | И НЕ ВнешниеКомпоненты.Идентификатор В (&Идентификаторы)"; + + Запрос.УстановитьПараметр("Идентификаторы", ПоставляемыеКомпоненты()); + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + + НачатьТранзакцию(); + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ВнешниеКомпоненты"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); + Блокировка.Заблокировать(); + + Объект = Выборка.Ссылка.ПолучитьОбъект(); + Объект.ПометкаУдаления = Истина; + Объект.Записать(); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Удаление внешней компоненты'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки( + ИнформацияОбОшибке())); + ВызватьИсключение; + КонецПопытки; + + КонецЦикла; + + ОповеститьВсеСеансыОбИзмененииВнешнейКомпоненты(); + +КонецПроцедуры + +Функция КоличествоНеиспользуемыхКомпонент() + + КоличествоНеиспользуемыхКомпонент = 0; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(ВнешниеКомпоненты.Ссылка) КАК КоличествоНеиспользуемыхКомпонент + |ИЗ + | Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты + |ГДЕ + | НЕ ВнешниеКомпоненты.ПометкаУдаления + | И НЕ ВнешниеКомпоненты.Идентификатор В (&Идентификаторы)"; + + Запрос.УстановитьПараметр("Идентификаторы", ПоставляемыеКомпоненты()); + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + Возврат Выборка.КоличествоНеиспользуемыхКомпонент; + КонецЦикла; + + Возврат КоличествоНеиспользуемыхКомпонент; + +КонецФункции + Процедура ОповеститьВсеСеансыОбИзмененииВнешнейКомпоненты() Экспорт СерверныеОповещения.ОтправитьСерверноеОповещение( @@ -689,6 +932,11 @@ // * MacOS_x86_64_Safari - Булево // * MacOS_x86_64_Chrome - Булево // * MacOS_x86_64_Firefox - Булево +// * Windows_x86_ЯндексБраузер - Булево +// * Windows_x86_64_ЯндексБраузер - Булево +// * Linux_x86_ЯндексБраузер - Булево +// * Linux_x86_64_ЯндексБраузер - Булево +// * MacOS_x86_64_ЯндексБраузер - Булево // * Идентификатор - Строка // * Наименование - Строка // * Версия - Строка @@ -714,6 +962,11 @@ Реквизиты.Вставить("MacOS_x86_64_Safari"); Реквизиты.Вставить("MacOS_x86_64_Chrome"); Реквизиты.Вставить("MacOS_x86_64_Firefox"); + Реквизиты.Вставить("Windows_x86_ЯндексБраузер"); + Реквизиты.Вставить("Windows_x86_64_ЯндексБраузер"); + Реквизиты.Вставить("Linux_x86_ЯндексБраузер"); + Реквизиты.Вставить("Linux_x86_64_ЯндексБраузер"); + Реквизиты.Вставить("MacOS_x86_64_ЯндексБраузер"); Реквизиты.Вставить("Идентификатор"); Реквизиты.Вставить("Наименование"); Реквизиты.Вставить("Версия"); @@ -807,24 +1060,27 @@ КонецЕсли; Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "i386" - И ТипКомпоненты = "plugin" И ПрограммаПросмотра = "chrome" Тогда + И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "chrome" + Или ПрограммаПросмотра = "anychromiumbased") Тогда Реквизиты.Windows_x86_Chrome = Истина; - Продолжить; + КонецЕсли; Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "i386" - И ТипКомпоненты = "plugin" И ПрограммаПросмотра = "chrome" Тогда + И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "chrome" + Или ПрограммаПросмотра = "anychromiumbased") Тогда Реквизиты.Linux_x86_Chrome = Истина; - Продолжить; + КонецЕсли; Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "x86_64" - И ТипКомпоненты = "plugin" И ПрограммаПросмотра = "chrome" Тогда + И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "chrome" + Или ПрограммаПросмотра = "anychromiumbased") Тогда Реквизиты.Linux_x86_64_Chrome = Истина; - Продолжить; + КонецЕсли; Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64" @@ -844,10 +1100,10 @@ Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "plugin" - И ПрограммаПросмотра = "chrome" Тогда + И (ПрограммаПросмотра = "chrome" Или ПрограммаПросмотра = "anychromiumbased") Тогда Реквизиты.MacOS_x86_64_Chrome = Истина; - Продолжить; + КонецЕсли; Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64" @@ -857,6 +1113,47 @@ Реквизиты.MacOS_x86_64_Firefox = Истина; Продолжить; КонецЕсли; + + Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "i386" + И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser" + Или ПрограммаПросмотра = "anychromiumbased") Тогда + + Реквизиты.Windows_x86_ЯндексБраузер = Истина; + + КонецЕсли; + + Если ОперационнаяСистема = "windows" И АрхитектураПлатформы = "x86_64" + И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser" + Или ПрограммаПросмотра = "anychromiumbased") Тогда + + Реквизиты.Windows_x86_64_ЯндексБраузер = Истина; + + КонецЕсли; + + Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "i386" + И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser" + Или ПрограммаПросмотра = "anychromiumbased") Тогда + + Реквизиты.Linux_x86_ЯндексБраузер = Истина; + + КонецЕсли; + + Если ОперационнаяСистема = "linux" И АрхитектураПлатформы = "x86_64" + И ТипКомпоненты = "plugin" И (ПрограммаПросмотра = "yandexbrowser" + Или ПрограммаПросмотра = "anychromiumbased") Тогда + + Реквизиты.Linux_x86_64_ЯндексБраузер = Истина; + + КонецЕсли; + + Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64" + Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "plugin" + И (ПрограммаПросмотра = "yandexbrowser" + Или ПрограммаПросмотра = "anychromiumbased") Тогда + + Реквизиты.MacOS_x86_64_ЯндексБраузер = Истина; + + КонецЕсли; КонецЕсли; КонецЦикла; @@ -951,12 +1248,14 @@ // Структура: // * Идентификатор - Строка // * Версия - Строка +// * ОбновлятьАвтоматически - Булево // Функция ПараметрыКомпонентаСПортала() Экспорт Результат = Новый Структура; Результат.Вставить("Идентификатор", ""); Результат.Вставить("Версия", ""); + Результат.Вставить("ОбновлятьАвтоматически", Истина); Возврат Результат; КонецФункции @@ -1023,9 +1322,13 @@ Информация = ИнформацияОКомпонентеИзФайла(ДвоичныеДанные, Ложь); Если Не Информация.Разобрано Тогда + + ТекстИсключения = Информация.ОписаниеОшибки + ?(Информация.ИнформацияОбОшибке = Неопределено, "", + ": " + ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация.ИнформацияОбОшибке)); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление внешних компонент'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , Информация.ОписаниеОшибки); - ВызватьИсключение Информация.ОписаниеОшибки; + УровеньЖурналаРегистрации.Ошибка, , , ТекстИсключения); + ВызватьИсключение ТекстИсключения; КонецЕсли; УстановитьПривилегированныйРежим(Истина); @@ -1043,7 +1346,8 @@ Объект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", Информация.ДвоичныеДанные); Если Не ЗначениеЗаполнено(Версия) Тогда // Если запрос конкретной версии - пропускаем. - Объект.ОбновлятьСПортала1СИТС = Объект.ЭтоКомпонентаПоследнейВерсии(); + Объект.ОбновлятьСПортала1СИТС = Объект.ЭтоКомпонентаПоследнейВерсии() + И ПараметрыПроцедуры.ОбновлятьАвтоматически; КонецЕсли; Объект.Записать(); @@ -1113,5 +1417,4 @@ #КонецОбласти - #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйВызовСервера/Module.bsl index 077aba264..6f7948035 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйВызовСервера/Module.bsl @@ -41,11 +41,33 @@ КонецФункции -// Имя файла компоненты для сохранения в файл. +// Описание файлов компонент. +// +// Параметры: +// Ссылки Ссылки +// +// Возвращаемое значение: +// Массив из Структура: +// * Местоположение - Строка +// * ИмяФайла - Строка // -Функция ИмяФайлаКомпоненты(Ссылка) Экспорт +Функция ОписаниеФайловКомпонент(Ссылки) Экспорт - Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ИмяФайла"); + Массив = Новый Массив; + + ЗначенияРеквизитовОбъектов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(Ссылки, "ИмяФайла, Идентификатор"); + Для Каждого КлючИЗначение Из ЗначенияРеквизитовОбъектов Цикл + Структура = Новый Структура; + Структура.Вставить("Хранение", ПолучитьНавигационнуюСсылку(КлючИЗначение.Ключ, "ХранилищеКомпоненты")); + ИмяФайла = КлючИЗначение.Значение.ИмяФайла; + Если Не ЗначениеЗаполнено(ИмяФайла) Тогда + ИмяФайла = КлючИЗначение.Значение.Идентификатор + ".zip"; + КонецЕсли; + Структура.Вставить("Имя", ИмяФайла); + Массив.Добавить(Структура); + КонецЦикла; + + Возврат Массив; КонецФункции diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl index 94c9494ea..67a566986 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl @@ -264,15 +264,23 @@ КонецФункции +// Текущий клиент поддерживается компонентой. +// +// Параметры: +// Реквизиты - см. ВнешниеКомпонентыСлужебный.РеквизитыКомпоненты +// +// Возвращаемое значение: +// Булево - текущий клиент поддерживается компонентой +// Функция ТекущийКлиентПоддерживаетсяКомпонентой(Реквизиты) СистемнаяИнформация = Новый СистемнаяИнформация; - - Браузер = Неопределено; + Браузер = Неопределено; #Если ВебКлиент Тогда Строка = СистемнаяИнформация.ИнформацияПрограммыПросмотра; - - Если СтрНайти(Строка, "Chrome/") > 0 Тогда + Если СтрНайти(Строка, "YaBrowser/") > 0 Тогда + Браузер = "ЯндексБраузер"; + ИначеЕсли СтрНайти(Строка, "Chrome/") > 0 Тогда Браузер = "Chrome"; ИначеЕсли СтрНайти(Строка, "MSIE") > 0 Тогда Браузер = "MSIE"; @@ -296,6 +304,10 @@ Если Браузер = "Chrome" Тогда Возврат Реквизиты.Linux_x86_Chrome; КонецЕсли; + + Если Браузер = "ЯндексБраузер" Тогда + Возврат Реквизиты.Linux_x86_ЯндексБраузер; + КонецЕсли; ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64 Тогда @@ -311,6 +323,10 @@ Возврат Реквизиты.Linux_x86_64_Chrome; КонецЕсли; + Если Браузер = "ЯндексБраузер" Тогда + Возврат Реквизиты.Linux_x86_64_ЯндексБраузер; + КонецЕсли; + ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86_64 Тогда Если Браузер = Неопределено Тогда @@ -329,6 +345,10 @@ Возврат Реквизиты.MacOS_x86_64_Chrome; КонецЕсли; + Если Браузер = "ЯндексБраузер" Тогда + Возврат Реквизиты.MacOS_x86_64_ЯндексБраузер; + КонецЕсли; + ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда Если Браузер = Неопределено Тогда @@ -347,6 +367,10 @@ Возврат Реквизиты.Windows_x86_MSIE; КонецЕсли; + Если Браузер = "ЯндексБраузер" Тогда + Возврат Реквизиты.Windows_x86_ЯндексБраузер; + КонецЕсли; + ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда Если Браузер = Неопределено Тогда @@ -364,6 +388,10 @@ Если Браузер = "MSIE" Тогда Возврат Реквизиты.Windows_x86_64_MSIE; КонецЕсли; + + Если Браузер = "ЯндексБраузер" Тогда + Возврат Реквизиты.Windows_x86_64_ЯндексБраузер; + КонецЕсли; ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86 Тогда // В браузере может быть неправильно определен тип платформы. @@ -376,6 +404,10 @@ Возврат Реквизиты.MacOS_x86_64_Chrome; КонецЕсли; + Если Браузер = "ЯндексБраузер" Тогда + Возврат Реквизиты.MacOS_x86_64_ЯндексБраузер; + КонецЕсли; + КонецЕсли; Возврат Ложь; @@ -923,6 +955,7 @@ // * Идентификатор - Строка // * Версия - Строка // - Неопределено +// * ОбновлятьАвтоматически - Булево // Процедура ПоискКомпонентыНаПортале(Оповещение, Контекст) @@ -930,6 +963,7 @@ ПараметрыФормы.Вставить("ТекстПояснения", Контекст.ТекстПояснения); ПараметрыФормы.Вставить("Идентификатор", Контекст.Идентификатор); ПараметрыФормы.Вставить("Версия", Контекст.Версия); + ПараметрыФормы.Вставить("ОбновлятьАвтоматически", Контекст.ОбновлятьАвтоматически); ОповещениеФормы = Новый ОписаниеОповещения("ПоискКомпонентыНаПорталеПриФормированииРезультата", ЭтотОбъект, Оповещение); @@ -975,23 +1009,54 @@ // Параметры: // ВнешняяКомпонентаСсылка - СправочникСсылка.ВнешниеКомпоненты +// - Массив из СправочникСсылка.ВнешниеКомпоненты // -Процедура СохранитьКомпонентуВФайл(ВнешняяКомпонентаСсылка) Экспорт +Процедура СохранитьКомпонентуВФайл(ВнешняяКомпонентаСсылка) Экспорт - Местоположение = ПолучитьНавигационнуюСсылку(ВнешняяКомпонентаСсылка, "ХранилищеКомпоненты"); - ИмяФайла = ВнешниеКомпонентыСлужебныйВызовСервера.ИмяФайлаКомпоненты(ВнешняяКомпонентаСсылка); + Если ТипЗнч(ВнешняяКомпонентаСсылка) = Тип("Массив") Тогда + Ссылки = ВнешняяКомпонентаСсылка; + Иначе + Ссылки = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ВнешняяКомпонентаСсылка); + КонецЕсли; + ОписаниеФайлов = ВнешниеКомпонентыСлужебныйВызовСервера.ОписаниеФайловКомпонент(Ссылки); + + Если Ссылки.Количество() = 1 Тогда + + ПараметрыСохранения = ФайловаяСистемаКлиент.ПараметрыСохраненияФайла(); + ПараметрыСохранения.Диалог.Заголовок = НСтр("ru = 'Выберите файл для сохранения внешней компоненты'"); + ПараметрыСохранения.Диалог.Фильтр = НСтр("ru = 'Файлы внешних компонент (*.zip)|*.zip'")+"|" + + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Все файлы (%1)|%1'"), ПолучитьМаскуВсеФайлы()); + + Оповещение = Новый ОписаниеОповещения("СохранитьКомпонентуВФайлПослеПолученияФайлов", ЭтотОбъект); + ФайловаяСистемаКлиент.СохранитьФайл(Оповещение, ОписаниеФайлов[0].Хранение, ОписаниеФайлов[0].Имя, ПараметрыСохранения); + + Возврат; + КонецЕсли; - ПараметрыСохранения = ФайловаяСистемаКлиент.ПараметрыСохраненияФайла(); - ПараметрыСохранения.Диалог.Заголовок = НСтр("ru = 'Выберите файл для сохранения внешней компоненты'"); - ПараметрыСохранения.Диалог.Фильтр = НСтр("ru = 'Файлы внешних компонент (*.zip)|*.zip'")+"|" - + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Все файлы (%1)|%1'"), ПолучитьМаскуВсеФайлы()); + Оповещение = Новый ОписаниеОповещения("СохранитьКомпонентыВФайлПослеВыбораКаталога", ЭтотОбъект, ОписаниеФайлов); + ФайловаяСистемаКлиент.ВыбратьКаталог(Оповещение, НСтр("ru = 'Выберите каталог для сохранения внешних компонент'")); - Контекст = Новый Структура; - Контекст.Вставить("Ссылка", ВнешняяКомпонентаСсылка); +КонецПроцедуры + +// Продолжение процедуры СохранитьКомпонентуВФайл. +Процедура СохранитьКомпонентыВФайлПослеВыбораКаталога(Каталог, ОписаниеФайлов) Экспорт - Оповещение = Новый ОписаниеОповещения("СохранитьКомпонентуВФайлПослеПолученияФайлов", ЭтотОбъект, Контекст); - ФайловаяСистемаКлиент.СохранитьФайл(Оповещение, Местоположение, ИмяФайла, ПараметрыСохранения); + Если ПустаяСтрока(Каталог) Тогда + Возврат; + КонецЕсли; + СохраняемыеФайлы = Новый Массив; + Для Каждого ОписаниеФайла Из ОписаниеФайлов Цикл + СохраняемыеФайлы.Добавить(Новый ОписаниеПередаваемогоФайла(ОписаниеФайла.Имя, ОписаниеФайла.Хранение)); + КонецЦикла; + + ПараметрыСохранения = ФайловаяСистемаКлиент.ПараметрыСохраненияФайлов(); + ПараметрыСохранения.Интерактивно = Ложь; + ПараметрыСохранения.Диалог.Каталог = Каталог; + ФайловаяСистемаКлиент.СохранитьФайлы(Новый ОписаниеОповещения( + "СохранитьКомпонентуВФайлПослеПолученияФайлов", ЭтотОбъект), + СохраняемыеФайлы, ПараметрыСохранения); + КонецПроцедуры // Продолжение процедуры СохранитьКомпонентуВФайл. @@ -1000,8 +1065,12 @@ Если ПолученныеФайлы <> Неопределено И ПолученныеФайлы.Количество() > 0 Тогда + ТекстСообщения = ?(ПолученныеФайлы.Количество() = 1, + НСтр("ru = 'Внешняя компонента успешно сохранена в файл.'"), + НСтр("ru = 'Внешние компоненты успешно сохранены в файлы.'")); + ПоказатьОповещениеПользователя(НСтр("ru = 'Сохранение в файл'"),, - НСтр("ru = 'Внешняя компонента успешно сохранена в файл.'"), БиблиотекаКартинок.Успешно32); + ТекстСообщения, БиблиотекаКартинок.Успешно32); КонецЕсли; КонецПроцедуры @@ -1009,3 +1078,4 @@ #КонецОбласти #КонецОбласти + diff --git a/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl b/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl index d91913aa7..04462f54f 100644 --- a/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl +++ b/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl @@ -734,7 +734,6 @@ Обработчик = Обработчики.Добавить(); Обработчик.Версия = "3.1.2.78"; Обработчик.Процедура = "РегистрыСведений.КалендарныеГрафики.ОбработатьДанныеДляПереходаНаНовуюВерсию"; - Обработчик.ОчередьОтложеннойОбработки = 3; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.КалендарныеГрафики.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина; @@ -755,7 +754,6 @@ Обработчик = Обработчики.Добавить(); Обработчик.Версия = "3.1.3.94"; Обработчик.Процедура = "Справочники.Календари.ОбработатьДанныеДляПереходаНаНовуюВерсию"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.Календари.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина; diff --git a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl index de3fa9401..588e0afe2 100644 --- a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl @@ -9,8 +9,8 @@ #Область ПрограммныйИнтерфейс // Определить объекты метаданных, в формах списков которых -// будут выведены команды объединения дублей и замены ссылок -// см. ПоискИУдалениеДублейКлиент.ОбъединитьВыделенные и ПоискИУдалениеДублейКлиент.ЗаменитьВыделенные +// будет выведена команда группового изменения выделенных объектов. +// см. ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные // // Параметры: // Объекты - Массив из ОбъектМетаданных diff --git a/SSL/src/CommonModules/ДлительныеОперации/Module.bsl b/SSL/src/CommonModules/ДлительныеОперации/Module.bsl index a3c71a2c7..6db880be0 100644 --- a/SSL/src/CommonModules/ДлительныеОперации/Module.bsl +++ b/SSL/src/CommonModules/ДлительныеОперации/Module.bsl @@ -92,7 +92,7 @@ ПараметрыВызова = СписокПараметров(Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7); - + ПараметрыВыполнения = ПодготовитьПараметрыВыполнения(ПараметрыВыполнения, Истина); Возврат ВыполнитьВФоне(ИмяФункции, ПараметрыВызова, ПараметрыВыполнения); @@ -413,6 +413,12 @@ // расширений конфигурации. Имеет приоритет над параметром ЗапуститьНеВФоне. // * СРасширениямиБазыДанных - Булево - если Истина, то фоновое задание будет запущено с последней версией // расширений конфигурации. Имеет приоритет над параметром ЗапуститьНеВФоне. +// * ВнешнийОтчетОбработка - Неопределено - по умолчанию. +// - ДвоичныеДанные - когда указано имя метода, которое начинается +// с "ВнешнийОтчет." или "ВнешняяОбработка.". +// Для вызова такого метода требуется право интерактивного открытия +// внешнего отчета или обработки соответственно. +// Внешний отчет или обработка подключаются с защитой от опасных действий. // * ПрерватьВыполнениеЕслиОшибка - Булево - если Истина, то при возникновении ошибки в одном из дочерних фоновых // заданий, выполнение многопоточного фонового задания будет перервано. // Выполнение уже запущенных дочерних фоновых задания будет отменно. @@ -458,6 +464,12 @@ // расширений конфигурации. Имеет приоритет над параметром ЗапуститьНеВФоне. // * СРасширениямиБазыДанных - Булево - если Истина, то фоновое задание будет запущено с последней версией // расширений конфигурации. Имеет приоритет над параметром ЗапуститьНеВФоне. +// * ВнешнийОтчетОбработка - Неопределено - по умолчанию. +// - ДвоичныеДанные - когда указано имя метода, которое начинается +// с "ВнешнийОтчет." или "ВнешняяОбработка.". +// Для вызова такого метода требуется право интерактивного открытия +// внешнего отчета или обработки соответственно. +// Внешний отчет или обработка подключаются с защитой от опасных действий. // * ПрерватьВыполнениеЕслиОшибка - Булево - если Истина, то при возникновении ошибки в одном из дочерних фоновых // заданий, выполнение многопоточного фонового задания будет перервано. // Выполнение уже запущенных дочерних фоновых задания будет отменно. @@ -571,21 +583,22 @@ |не могут одновременно принимать значение %3 в %4.'"), "БезРасширений", "СРасширениямиБазыДанных", "Истина", "ДлительныеОперации.ВыполнитьВФоне"); КонецЕсли; + #Если ВнешнееСоединение Тогда ИнформационнаяБазаФайловая = ОбщегоНазначения.ИнформационнаяБазаФайловая(); Если ПараметрыВыполнения.БезРасширений И ИнформационнаяБазаФайловая Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( "ru = 'Фоновое задание не может быть запущено с параметром ""%1"" - |в файловой информационной базе в %2.'"), + |во внешнем соединении с файловой информационной базой в %2.'"), "БезРасширений", "ДлительныеОперации.ВыполнитьВФоне"); ИначеЕсли ПараметрыВыполнения.СРасширениямиБазыДанных И ИнформационнаяБазаФайловая Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( "ru = 'Фоновое задание не может быть запущено с параметром ""%1"" - |в файловой информационной базе в %2.'"), + |во внешнем соединении с файловой информационной базой в %2.'"), "СРасширениямиБазыДанных", "ДлительныеОперации.ВыполнитьВФоне"); КонецЕсли; #КонецЕсли - + Результат = Новый Структура; Результат.Вставить("Статус", "Выполняется"); Результат.Вставить("ИдентификаторЗадания", Неопределено); @@ -664,7 +677,7 @@ Если ПараметрыВыполнения.Свойство("ЭтоФункция") И ПараметрыВыполнения.ЭтоФункция Тогда ВызватьФункцию(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры, ПараметрыВыполнения); Иначе - ВызватьПроцедуру(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры); + ВызватьПроцедуру(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры, ПараметрыВыполнения); КонецЕсли; Результат.Статус = "Выполнено"; Исключение @@ -788,6 +801,12 @@ // расширений конфигурации. Имеет приоритет над параметром ЗапуститьНеВФоне. // * СРасширениямиБазыДанных - Булево - если Истина, то фоновое задание будет запущено с последней версией // расширений конфигурации. Имеет приоритет над параметром ЗапуститьНеВФоне. +// * ВнешнийОтчетОбработка - Неопределено - по умолчанию. +// - ДвоичныеДанные - когда указано имя метода, которое начинается +// с "ВнешнийОтчет." или "ВнешняяОбработка.". +// Для вызова такого метода требуется право интерактивного открытия +// внешнего отчета или обработки соответственно. +// Внешний отчет или обработка подключаются с защитой от опасных действий. // Функция ПараметрыВыполненияВФоне(Знач ИдентификаторФормы = Неопределено) Экспорт @@ -1302,6 +1321,45 @@ КонецПроцедуры +// Возвращает допустимое количество потоков на все многопоточные длительные операции +// с учетом управляющих потоков. +// +// Если допустимое количество потоков 10, а операций 2, +// то получится 2 управляющих потока и 8 исполняющих потоков. +// +// Если допустимое количество потоков 3, а операций 2, +// то получится 2 управляющих потока и 1 исполняющий поток +// причем один управляющий поток будет выполнять функцию исполняющего. +// +// Если допустимое количество потоков 5, а операций 7, +// то получится 7 управляющих потоков и 0 исполняющих потоков +// причем каждый управляющий поток будет выполнять функцию исполняющего. +// +// Соответственно, если допустимое количество 1, +// то получится, что исполняющих потоков всегда будет 0 +// и каждый управляющий поток будет выполнять функцию исполняющего. +// +// Возвращаемое значение: +// Число - количество потоков. +// +Функция ДопустимоеКоличествоПотоков() Экспорт + + Если ОбщегоНазначения.РазделениеВключено() + Или ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда + Возврат 1; + КонецЕсли; + + ДопустимоеКоличествоПотоков = Константы.КоличествоПотоковДлительныхОпераций.Получить(); + + Если ДопустимоеКоличествоПотоков > 0 Тогда + Возврат ДопустимоеКоличествоПотоков; + КонецЕсли; + + // Значение по умолчанию. Управляющий поток + 3 дочерних + Возврат 4; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -1597,7 +1655,7 @@ Если ПараметрыВыполнения.Свойство("ЭтоФункция") И ПараметрыВыполнения.ЭтоФункция Тогда ВызватьФункцию(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения); Иначе - ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры); + ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения); КонецЕсли; Результат.Статус = "Выполнено"; Исключение @@ -1615,7 +1673,7 @@ КонецПроцедуры -Процедура ВызватьПроцедуру(ИмяПроцедуры, ПараметрыВызова) +Процедура ВызватьПроцедуру(ИмяПроцедуры, ПараметрыВызова, ПараметрыВыполнения) ЧастиИмени = СтрРазделить(ИмяПроцедуры, "."); ЭтоПроцедураМодуляОбработки = (ЧастиИмени.Количество() = 4) И ВРег(ЧастиИмени[2]) = "МОДУЛЬОБЪЕКТА"; @@ -1636,9 +1694,7 @@ ЭтоВнешняяОбработка = ВРег(ЧастиИмени[0]) = "ВНЕШНЯЯОБРАБОТКА"; ЭтоВнешнийОтчет = ВРег(ЧастиИмени[0]) = "ВНЕШНИЙОТЧЕТ"; Если ЭтоВнешняяОбработка Или ЭтоВнешнийОтчет Тогда - ВыполнитьПроверкуПравДоступа("ИнтерактивноеОткрытиеВнешнихОбработок", Метаданные); - МенеджерОбъекта = ?(ЭтоВнешнийОтчет, ВнешниеОтчеты, ВнешниеОбработки); - ОбработкаОтчетОбъект = МенеджерОбъекта.Создать(ЧастиИмени[1], БезопасныйРежим()); + ОбработкаОтчетОбъект = ВнешняяОбработкаОтчетОбъект(ЭтоВнешнийОтчет, ПараметрыВыполнения, ЧастиИмени[1]); ОбщегоНазначения.ВыполнитьМетодОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыВызова); Возврат; КонецЕсли; @@ -1648,6 +1704,54 @@ КонецПроцедуры +Функция ВнешняяОбработкаОтчетОбъект(ЭтоВнешнийОтчет, ПараметрыВыполнения, ИмяПодключеннойОбработкиОтчета) + + МенеджерОбъекта = ?(ЭтоВнешнийОтчет, ВнешниеОтчеты, ВнешниеОбработки); + + Если ТипЗнч(ПараметрыВыполнения.ВнешнийОтчетОбработка) <> Тип("ДвоичныеДанные") Тогда + Если ПараметрыВыполнения.ЗапуститьНеВФоне Тогда + Возврат МенеджерОбъекта.Создать(ИмяПодключеннойОбработкиОтчета, БезопасныйРежим()); + Иначе + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Для вызова процедуры внешнего отчета или внешней обработки + |требуется заполнить параметр %1'"), + "ВнешнийОтчетОбработка"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + КонецЕсли; + + Если ЭтоВнешнийОтчет Тогда + ВыполнитьПроверкуПравДоступа("ИнтерактивноеОткрытиеВнешнихОтчетов", Метаданные); + Иначе + ВыполнитьПроверкуПравДоступа("ИнтерактивноеОткрытиеВнешнихОбработок", Метаданные); + КонецЕсли; + + БезопасныйРежим = БезопасныйРежим(); + Если БезопасныйРежим <> Ложь Тогда + УстановитьОтключениеБезопасногоРежима(Истина); + КонецЕсли; + + ИмяВременногоФайлаОбработкиОтчета = ПолучитьИмяВременногоФайла(); + ПараметрыВыполнения.ВнешнийОтчетОбработка.Записать(ИмяВременногоФайлаОбработкиОтчета); + + Попытка + ОбработкаОтчетОбъект = МенеджерОбъекта.Создать(ИмяВременногоФайлаОбработкиОтчета, БезопасныйРежим); + Исключение + УдалитьФайлы(ИмяВременногоФайлаОбработкиОтчета); + Если БезопасныйРежим <> Ложь Тогда + УстановитьОтключениеБезопасногоРежима(Ложь); + КонецЕсли; + ВызватьИсключение; + КонецПопытки; + УдалитьФайлы(ИмяВременногоФайлаОбработкиОтчета); + Если БезопасныйРежим <> Ложь Тогда + УстановитьОтключениеБезопасногоРежима(Ложь); + КонецЕсли; + + Возврат ОбработкаОтчетОбъект; + +КонецФункции + Процедура ВызватьФункцию(ИмяФункции, ПараметрыПроцедуры, ПараметрыВыполнения) ЧастиИмени = СтрРазделить(ИмяФункции, "."); @@ -1671,9 +1775,7 @@ ЭтоВнешняяОбработка = ВРег(ЧастиИмени[0]) = "ВНЕШНЯЯОБРАБОТКА"; ЭтоВнешнийОтчет = ВРег(ЧастиИмени[0]) = "ВНЕШНИЙОТЧЕТ"; Если ЭтоВнешняяОбработка Или ЭтоВнешнийОтчет Тогда - ВыполнитьПроверкуПравДоступа("ИнтерактивноеОткрытиеВнешнихОбработок", Метаданные); - МенеджерОбъекта = ?(ЭтоВнешнийОтчет, ВнешниеОтчеты, ВнешниеОбработки); - ОбработкаОтчетОбъект = МенеджерОбъекта.Создать(ЧастиИмени[1], БезопасныйРежим()); + ОбработкаОтчетОбъект = ВнешняяОбработкаОтчетОбъект(ЭтоВнешнийОтчет, ПараметрыВыполнения, ЧастиИмени[1]); Результат = ОбщегоНазначения.ВызватьФункциюОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыПроцедуры); УстановитьРезультатВызоваФункции(Результат, ПараметрыВыполнения); Возврат; @@ -2015,10 +2117,8 @@ Возврат Ложь; КонецЕсли; - ЭтоВнешняяОбработка = (ВРег(ЧастиИмени[0]) = "ВНЕШНЯЯОБРАБОТКА"); - ЭтоВнешнийОтчет = (ВРег(ЧастиИмени[0]) = "ВНЕШНИЙОТЧЕТ"); - Возврат Не (ЭтоВнешняяОбработка Или ЭтоВнешнийОтчет); - + Возврат Истина; + КонецФункции Функция ВыполнитьФоновоеЗадание(ПараметрыВыполнения, ИмяМетода, Параметры, Ключ, Наименование) @@ -2090,6 +2190,7 @@ КонецЕсли; Результат.Вставить("ЭтоФункция", ДляФункции); + Возврат Результат; КонецФункции @@ -2106,6 +2207,7 @@ Результат.Вставить("СРасширениямиБазыДанных", Ложь); Результат.Вставить("ПрерватьВыполнениеЕслиОшибка", Ложь); Результат.Вставить("ОжидатьЗавершения", -1); // Обратная совместимость + Результат.Вставить("ВнешнийОтчетОбработка", Неопределено); Возврат Результат; @@ -2289,6 +2391,9 @@ КонецЕсли; ПараметрыВыполнения = ПодготовитьПараметрыВыполнения(ПараметрыВыполнения, ПараметрыОперации.ДляФункции); + ПараметрыВыполнения.ВнешнийОтчетОбработка = ПараметрыОперации.ПараметрыВыполнения.ВнешнийОтчетОбработка; + + ПараметрыВыполнения.АдресРезультата = Поток.АдресРезультата; УстановитьПолноеИмяПрикладнойПроцедуры(ПараметрыОперации.ИмяМетода); РезультатЗапуска = ВыполнитьВФоне(ПараметрыОперации.ИмяМетода, ПараметрыМетода, ПараметрыВыполнения); @@ -2735,45 +2840,6 @@ КонецПроцедуры -// Возвращает допустимое количество потоков на все многопоточные длительные операции -// с учетом управляющих потоков. -// -// Если допустимое количество потоков 10, а операций 2, -// то получится 2 управляющих потока и 8 исполняющих потоков. -// -// Если допустимое количество потоков 3, а операций 2, -// то получится 2 управляющих потока и 1 исполняющий поток -// причем один управляющий поток будет выполнять функцию исполняющего. -// -// Если допустимое количество потоков 5, а операций 7, -// то получится 7 управляющих потоков и 0 исполняющих потоков -// причем каждый управляющий поток будет выполнять функцию исполняющего. -// -// Соответственно, если допустимое количество 1, -// то получится, что исполняющих потоков всегда будет 0 -// и каждый управляющий поток будет выполнять функцию исполняющего. -// -// Возвращаемое значение: -// Число - количество потоков. -// -Функция ДопустимоеКоличествоПотоков() - - Если ОбщегоНазначения.РазделениеВключено() - Или ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда - Возврат 1; - КонецЕсли; - - ДопустимоеКоличествоПотоков = Константы.КоличествоПотоковДлительныхОпераций.Получить(); - - Если ДопустимоеКоличествоПотоков > 0 Тогда - Возврат ДопустимоеКоличествоПотоков; - КонецЕсли; - - // Значение по умолчанию. Управляющий поток + 3 дочерних - Возврат 4; - -КонецФункции - // Описание потоков. // // Параметры: @@ -3101,6 +3167,8 @@ ПараметрыВыполнения = ПараметрыОперации.ПараметрыВыполнения; ПараметрыВыполнения.ОжидатьЗавершение = 0; + // При перезапуске фонового задания обязателен запуск нового фонового задания, + // поэтому запуск всегда в фоне (очередь заданий в файловом варианте). ПараметрыВыполнения.ЗапуститьВФоне = Истина; ПараметрыВыполнения.Вставить("ЭтоПерезапускУправляющегоПотока"); diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl index 76560c253..03c28df7b 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl @@ -186,7 +186,8 @@ // // Возвращаемое значение: // Структура - параметры внешнего отчета или обработки: -// * Вид - Строка - вид внешнего отчета или обработки. Для указания вида рекомендуется использовать функции +// * Вид - ПеречислениеСсылка.ВидыДополнительныхОтчетовИОбработок +// - Строка - вид внешнего отчета или обработки. Для указания вида рекомендуется использовать функции // ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработки<ИмяВида>. // Также вид можно указать явно: // "ПечатнаяФорма", @@ -194,7 +195,7 @@ // "СозданиеСвязанныхОбъектов", // "Отчет", // "ШаблонСообщения", -// "ДополнительнаяОбработка" или +// "ДополнительнаяОбработка", // "ДополнительныйОтчет". // // * Версия - Строка - версия отчета или обработки (далее - обработки). @@ -236,6 +237,9 @@ // Позволяет переопределять некоторые настройки общей формы отчета и // подписываться на ее события. // Если Истина, то в модуле объекта отчета следует определить процедуру по шаблону: +// +// * НазначениеВариантаОтчета - ПеречислениеСсылка.НазначенияВариантовОтчетов - назначение варианта отчета +// (ДляКомпьютеровИПланшетов, ДляСмартфонов, ДляЛюбыхУстройств). // // // Задать настройки формы отчета. // // @@ -289,6 +293,11 @@ ПараметрыРегистрации.Вставить("Информация", Неопределено); ПараметрыРегистрации.Вставить("ВерсияБСП", ВерсияБСП); ПараметрыРегистрации.Вставить("ОпределитьНастройкиФормы", Ложь); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда + МодульВариантыОтчетовСлужебный = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетовСлужебный"); + ПараметрыРегистрации.Вставить("НазначениеВариантаОтчета", + МодульВариантыОтчетовСлужебный.ПустоеНазначениеВариантаОтчета()); + КонецЕсли; РеквизитыТабличнойЧасти = Метаданные.Справочники.ДополнительныеОтчетыИОбработки.ТабличныеЧасти.Команды.Реквизиты; @@ -433,10 +442,6 @@ Результат.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Результат.Колонки.Добавить("ПолноеПредставление", Новый ОписаниеТипов("Строка")); - Результат.Индексы.Добавить("Ссылка"); - Результат.Индексы.Добавить("Вид"); - Результат.Индексы.Добавить("ПолноеИмя"); - МассивТиповИлиМетаданных = Новый Массив; Если Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ЗаполнениеОбъекта @@ -505,6 +510,10 @@ СтрокаТаблицы.ПолноеПредставление = СтрокаТаблицы.Представление + " (" + СтрокаТаблицы.Вид + ")"; КонецЦикла; + Результат.Индексы.Добавить("Ссылка"); + Результат.Индексы.Добавить("Вид"); + Результат.Индексы.Добавить("ПолноеИмя"); + Возврат Результат; КонецФункции @@ -2247,7 +2256,7 @@ Продолжить; // Будет зарегистрирована новая обработка. КонецЕсли; - Если ВерсияЧислом(ДанныеИзСправочника.Версия) >= ВерсияЧислом(СтрокаТаблицы.Сведения.Версия) + Если ВерсияЧислом(ДанныеИзСправочника.Версия) = ВерсияЧислом(СтрокаТаблицы.Сведения.Версия) И СтрокаТаблицы.Сведения.Версия <> Метаданные.Версия Тогда // Обновление не требуется, т.к. в справочнике уже актуальная версия обработки. ОтчетыИОбработки.Удалить(ОбратныйИндекс); @@ -2709,7 +2718,6 @@ // Получает файл обработки из временного хранилища, пытается создать объект // обработки (внешнего отчета) и получает информацию из объекта внешней обработки (отчета). - Если ПараметрыРегистрации.ОтключатьКонфликтующие Тогда Для Каждого ЭлементСписка Из ПараметрыРегистрации.Конфликтующие Цикл НачатьТранзакцию(); @@ -2741,6 +2749,10 @@ Результат.Вставить("Конфликтующие", Новый СписокЗначений); Результат.Вставить("ТекстОшибки", ""); Результат.Вставить("КраткоеПредставлениеОшибки", ""); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда + МодульВариантыОтчетовСлужебный = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетовСлужебный"); + Результат.Вставить("НазначениеВариантаОтчета", МодульВариантыОтчетовСлужебный.ПустоеНазначениеВариантаОтчета()); + КонецЕсли; Результат.ИмяОбъектаЗанято = Ложь; Результат.Успех = Ложь; Если Объект.ЭтоНовый() Тогда @@ -2750,16 +2762,13 @@ КонецЕсли; РегистрационныеДанные = ПолучитьРегистрационныеДанные(Объект, ПараметрыРегистрации, Результат); - Если РегистрационныеДанные = Неопределено - Или РегистрационныеДанные.Количество() = 0 - Или ЗначениеЗаполнено(Результат.ТекстОшибки) - Или ЗначениеЗаполнено(Результат.КраткоеПредставлениеОшибки) Тогда + Если ЗначениеЗаполнено(Результат.ТекстОшибки) Тогда Возврат Результат; КонецЕсли; Если РегистрационныеДанные.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма И Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда - Результат.ТекстОшибки = НСтр("ru = 'Работа с печатными формами не поддерживается.'"); + Результат.ТекстОшибки = НСтр("ru = 'Работа с печатными формами недоступна.'"); Возврат Результат; КонецЕсли; @@ -2784,26 +2793,29 @@ Объект.Наименование = РегистрационныеДанные.Наименование; Объект.Версия = РегистрационныеДанные.Версия; Объект.РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3; - Если РегистрационныеДанные.Свойство("ВерсияБСП") + Если ЗначениеЗаполнено(РегистрационныеДанные.ВерсияБСП) И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РегистрационныеДанные.ВерсияБСП, "2.2.2.0") > 0 Тогда Объект.РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_2_2; КонецЕсли; - - Если РегистрационныеДанные.Свойство("БезопасныйРежим") Тогда - Объект.БезопасныйРежим = РегистрационныеДанные.БезопасныйРежим; - КонецЕсли; - + Объект.БезопасныйРежим = РегистрационныеДанные.БезопасныйРежим; Объект.Информация = РегистрационныеДанные.Информация; Объект.ИмяФайла = ПараметрыРегистрации.ИмяФайла; Объект.ИмяОбъекта = Результат.ИмяОбъекта; - Объект.ИспользуетХранилищеВариантов = Ложь; + Если ЭтоВнешнийОтчет Тогда Хранилище = Метаданные.ХранилищеВариантовОтчетов; // ОбъектМетаданныхХранилищеНастроек Объект.ИспользуетХранилищеВариантов = (РегистрационныеДанные.ХранилищеВариантов = "ХранилищеВариантовОтчетов" - ИЛИ (Хранилище <> Неопределено - И Хранилище.Имя = "ХранилищеВариантовОтчетов")); - РегистрационныеДанные.Свойство("ОпределитьНастройкиФормы", Объект.ТеснаяИнтеграцияСФормойОтчета); + ИЛИ (Хранилище <> Неопределено И Хранилище.Имя = "ХранилищеВариантовОтчетов")); + Объект.ТеснаяИнтеграцияСФормойОтчета = РегистрационныеДанные.ОпределитьНастройкиФормы; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда + Если ЗначениеЗаполнено(РегистрационныеДанные.НазначениеВариантаОтчета) Тогда + Результат.НазначениеВариантаОтчета = РегистрационныеДанные.НазначениеВариантаОтчета; + Иначе + МодульВариантыОтчетовСлужебный = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетовСлужебный"); + Результат.НазначениеВариантаОтчета = МодульВариантыОтчетовСлужебный.НазначениеВариантаОтчетаПоУмолчанию(); + КонецЕсли; + КонецЕсли; КонецЕсли; // Загружена другая обработка (изменилось имя объекта или вид обработки). @@ -2818,7 +2830,7 @@ И Объект.Вид <> ВидДополнительныйОтчет И Объект.Вид <> ВидДополнительнаяОбработка Тогда - Если РегистрационныеДанные.Свойство("Назначение") Тогда + Если РегистрационныеДанные.Назначение.Количество() > 0 Тогда ТаблицаОбъектовМетаданных = ПодключенныеОбъектыМетаданных(Объект.Вид); Для Каждого ПолноеИмяОбъектаМетаданных Из РегистрационныеДанные.Назначение Цикл @@ -2856,34 +2868,30 @@ // Чтение разрешений, запрашиваемых дополнительной обработкой. Объект.Разрешения.Очистить(); - Если РегистрационныеДанные.Свойство("Разрешения") Тогда - Разрешения = РегистрационныеДанные.Разрешения; - Для Каждого Разрешение Из Разрешения Цикл + Для Каждого Разрешение Из РегистрационныеДанные.Разрешения Цикл + + ТипXDTO = Разрешение.Тип();// ТипОбъектаXDTO + + СтрокаТЧ = Объект.Разрешения.Добавить(); + СтрокаТЧ.ВидРазрешения = ТипXDTO.Имя; + + Параметры = Новый Структура(); + + Для Каждого СвойствоXDTO Из ТипXDTO.Свойства Цикл - ТипXDTO = Разрешение.Тип();// ТипОбъектаXDTO + Контейнер = Разрешение.ПолучитьXDTO(СвойствоXDTO.Имя); - СтрокаТЧ = Объект.Разрешения.Добавить(); - СтрокаТЧ.ВидРазрешения = ТипXDTO.Имя; - - Параметры = Новый Структура(); - - Для Каждого СвойствоXDTO Из ТипXDTO.Свойства Цикл - - Контейнер = Разрешение.ПолучитьXDTO(СвойствоXDTO.Имя); - - Если Контейнер <> Неопределено Тогда - Параметры.Вставить(СвойствоXDTO.Имя, Контейнер.Значение); - Иначе - Параметры.Вставить(СвойствоXDTO.Имя); - КонецЕсли; - - КонецЦикла; - - СтрокаТЧ.Параметры = Новый ХранилищеЗначения(Параметры); + Если Контейнер <> Неопределено Тогда + Параметры.Вставить(СвойствоXDTO.Имя, Контейнер.Значение); + Иначе + Параметры.Вставить(СвойствоXDTO.Имя); + КонецЕсли; КонецЦикла; - КонецЕсли; + СтрокаТЧ.Параметры = Новый ХранилищеЗначения(Параметры); + + КонецЦикла; Объект.Ответственный = Пользователи.ТекущийПользователь(); Результат.Успех = Истина; @@ -2940,7 +2948,7 @@ // Функция ПолучитьРегистрационныеДанные(Знач Объект, Знач ПараметрыРегистрации, Знач РезультатРегистрации) - РегистрационныеДанные = Новый Структура; + РегистрационныеДанные = СведенияОВнешнейОбработке(); СтандартнаяОбработка = Истина; ИнтеграцияПодсистемБСП.ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка); diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl index ce8d21ccb..c384e5b57 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl @@ -205,23 +205,18 @@ КонецПроцедуры -// Вызывается при получении регистрационных данных для нового дополнительного отчета -// или обработки. +// Вызывается при получении регистрационных данных для нового дополнительного отчета или обработки. // Процедура ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка) Экспорт УстановитьПривилегированныйРежим(Истина); - Если Не Объект.ЭтоНовый() И ОбщегоНазначения.РазделениеВключено() Тогда - ПоставляемаяОбработка = ПоставляемаяОбработка(Объект.Ссылка); Если ЗначениеЗаполнено(ПоставляемаяОбработка) Тогда - - РегистрационныеДанные = ПолучитьРегистрационныеДанные(ПоставляемаяОбработка); + ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(РегистрационныеДанные, + ПолучитьРегистрационныеДанные(ПоставляемаяОбработка), Истина); СтандартнаяОбработка = Ложь; - КонецЕсли; - КонецЕсли; КонецПроцедуры @@ -1708,13 +1703,13 @@ КонецПроцедуры -// Выполняет получение регистрационных данных для регистрируемой обработке по поставляемой обработке. +// Возвращает регистрационные данные для регистрируемой обработке по поставляемой обработке. // // Параметры: // ПоставляемаяОбработка - СправочникСсылка.ПоставляемыеДополнительныеОтчетыИОбработки. // // Возвращаемое значение: -// см. СведенияОВнешнейОбработке() внешних обработок. +// см. ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке // Функция ПолучитьРегистрационныеДанные(Знач ПоставляемаяОбработка) @@ -1725,7 +1720,7 @@ ЗаполнитьЗначенияСвойств(Результат, Обработка); // Назначение - Назначение = Новый Массив(); + Назначение = Новый Массив; Для Каждого ЭлементНазначения Из Обработка.Назначение Цикл Назначение.Вставить(ЭлементНазначения.ОбъектНазначения); КонецЦикла; diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl index e1084ebb2..64d0d7fe7 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl @@ -401,7 +401,7 @@ ПараметрыОбработки = Новый Структура("ИдентификаторКоманды, ДополнительнаяОбработкаСсылка, ИмяФормы"); ПараметрыОбработки.ИдентификаторКоманды = ВыполняемаяКоманда.Идентификатор; ПараметрыОбработки.ДополнительнаяОбработкаСсылка = ВыполняемаяКоманда.Ссылка; - ПараметрыОбработки.ИмяФормы = ?(Форма = Неопределено, Неопределено, Форма.ИмяФормы);; + ПараметрыОбработки.ИмяФормы = ?(Форма = Неопределено, Неопределено, Форма.ИмяФормы); Если ТипЗнч(ОбъектыНазначения) = Тип("Массив") Тогда ПараметрыОбработки.Вставить("ОбъектыНазначения", ОбъектыНазначения); diff --git a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайла/Module.bsl b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайла/Module.bsl index b5258f9cc..b87d39384 100644 --- a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайла/Module.bsl +++ b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайла/Module.bsl @@ -164,18 +164,15 @@ КонецФункции -#КонецОбласти - -#Область СлужебныйПрограммныйИнтерфейс - -// Загружает значения дополнительных реквизитов и свойств из строки таблицы загружаемых данных в элемент справочника. +// Сохраняет значения дополнительных реквизитов и свойств из строки таблицы загружаемых данных в объект-владелец. +// Внутри функции код сам находит колонки содержащие значения дополнительных реквизитов или свойств и записывает их. // Вызывается из процедуры ЗагрузитьИзФайла при прикладной загрузке данных в модуле менеджере объекта. // // Параметры: -// СсылкаНаОбъект - СправочникСсылка - ссылка на объект куда загружаются данные +// СсылкаНаОбъект - ЛюбаяСсылка - ссылка на объект-владельца свойств куда загружаются данные. // СтрокаТаблицы - СтрокаТаблицыЗначений: см. ЗагрузкаДанныхИзФайла.ОписаниеЗагружаемыхДанныхДляСправочников // -Процедура ЗагрузитьЗначенияСвойствИзФайла(СсылкаНаОбъект, СтрокаТаблицы) Экспорт +Процедура ЗаписатьСвойстваОбъекта(СсылкаНаОбъект, СтрокаТаблицы) Экспорт Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда МодульУправлениеСвойствамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствамиСлужебный"); diff --git a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl index d1a0cfe72..9e1f25e50 100644 --- a/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ЗагрузкаДанныхИзФайлаКлиентСервер/Module.bsl @@ -91,4 +91,8 @@ Возврат ?(ГруппыКолонок.Количество() > 1, Истина, Ложь); КонецФункции +Функция ПредставлениеТекстаДаДляБулево() Экспорт + Возврат НСтр("ru = 'Да'"); +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl index 9c3fd153b..57df4d9ce 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl @@ -595,6 +595,42 @@ КонецФункции +// Регистрирует всех субъектов с неуничтоженными персональными данными для расчета сроков хранения персональных данных. +Процедура ЗаполнитьСубъектыДляРасчетаСроковХраненияПерсональныхДанных() Экспорт + + Если Не ИспользоватьУничтожениеПерсональныхДанныхСубъектов() Тогда + Возврат; + КонецЕсли; + + Блокировка = Новый БлокировкаДанных(); + Блокировка.Добавить(Метаданные.РегистрыСведений.СубъектыДляРасчетаСроковХранения.ПолноеИмя()); + Блокировка.Добавить(Метаданные.РегистрыСведений.УничтоженныеПерсональныеДанные.ПолноеИмя()); + + Пока Истина Цикл + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + + Субъекты = СубъектыПоЗапросу(ТекстЗапросаСубъектовДляРасчетаСроковХранения()); + + Если Субъекты.Количество() = 0 Тогда + ЗафиксироватьТранзакцию(); + Возврат; + КонецЕсли; + + ДобавитьСубъектыДляРасчетаСроковХранения(Субъекты, Дата(1, 1, 1)); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + КонецЦикла; + +КонецПроцедуры + #Область УстаревшиеПроцедурыИФункции // Устарела. @@ -674,7 +710,6 @@ Обработчик.Версия = "3.0.1.53"; Обработчик.Процедура = "ЗащитаПерсональныхДанных.ПеренестиЗащищаемыеОбластиПерсональныхДанных"; Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "ЗащитаПерсональныхДанных.ЗаполнитьДанныеОбновленияОбластейПерсональныхДанных"; Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина; @@ -698,7 +733,7 @@ Обработчик.Комментарий = НСтр("ru = 'Заполнение данных регистров для уничтожения персональных данных.'"); Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "3.1.8.329"; + Обработчик.Версия = "3.1.9.17"; Обработчик.Процедура = "ЗащитаПерсональныхДанных.УстановитьРасписаниеРегламентногоЗаданияРасчетСроковХраненияПерсональныхДанных"; Обработчик.РежимВыполнения = "Отложенно"; @@ -1063,7 +1098,8 @@ // Субъект - ОпределяемыйТип.СубъектПерсональныхДанных // // Возвращаемое значение: -// Неопределено, Дата - +// Неопределено, Дата +// Функция СрокХраненияПерсональныхДанныхСубъекта(Субъект) Экспорт СрокиХранения = СрокиХраненияПерсональныхДанных(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Субъект)); @@ -1378,6 +1414,7 @@ // // Параметры: // ДанныеСубъектов - см. РегистрыСведений.СубъектыДляРасчетаСроковХранения.СубъектыДляРасчетаСроковХранения +// Процедура ОбновитьСрокиХраненияПерсональныхДанныхСубъектов(ДанныеСубъектов) Если ДанныеСубъектов.Количество() = 0 Тогда @@ -1410,6 +1447,7 @@ // // Параметры: // Субъект - ОпределяемыйТип.СубъектПерсональныхДанных +// Процедура ОбновитьСрокХраненияПерсональныхДанныхСубъекта(Субъект) Экспорт ДанныеСубъектов = НоваяТаблицаДляРасчетаСроковХранения(); @@ -1477,6 +1515,7 @@ // ТаблицаЗначений: // * Субъект - ОпределяемыйТип.СубъектПерсональныхДанных // * ДатаСобытия - Дата +// Функция НоваяТаблицаДляРасчетаСроковХранения() Экспорт НоваяТаблица = Новый ТаблицаЗначений(); @@ -2092,6 +2131,7 @@ // // Возвращаемое значение: // Массив из ОпределяемыйТип.СубъектПерсональныхДанных +// Функция ОбработатьТаблицуИсключений(ТаблицаИсключений) Если Не ЗначениеЗаполнено(ТаблицаИсключений) Тогда @@ -2198,6 +2238,7 @@ // // Возвращаемое значение: // Строка - итоговый текст запроса. +// Функция ТекстЗапросаДляТипаСубъекта(ОбъектМетаданных, ТекстЗапроса) ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); @@ -2334,41 +2375,6 @@ КонецПроцедуры -Процедура ЗаполнитьСубъектыДляРасчетаСроковХраненияПерсональныхДанных() - - Если Не ИспользоватьУничтожениеПерсональныхДанныхСубъектов() Тогда - Возврат; - КонецЕсли; - - Блокировка = Новый БлокировкаДанных(); - Блокировка.Добавить(Метаданные.РегистрыСведений.СубъектыДляРасчетаСроковХранения.ПолноеИмя()); - Блокировка.Добавить(Метаданные.РегистрыСведений.УничтоженныеПерсональныеДанные.ПолноеИмя()); - - Пока Истина Цикл - - НачатьТранзакцию(); - Попытка - Блокировка.Заблокировать(); - - Субъекты = СубъектыПоЗапросу(ТекстЗапросаСубъектовДляРасчетаСроковХранения()); - - Если Субъекты.Количество() = 0 Тогда - ЗафиксироватьТранзакцию(); - Возврат; - КонецЕсли; - - ДобавитьСубъектыДляРасчетаСроковХранения(Субъекты, Дата(1, 1, 1)); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - - КонецЦикла; - -КонецПроцедуры - // Параметры: // Субъекты - Массив из ОпределяемыйТип.СубъектПерсональныхДанных // diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl index cc63ab1cf..8694bf6ed 100644 --- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl @@ -55,6 +55,9 @@ События.Вставить("ПриСозданииНаСервереВариантыОтчетов", Ложь); События.Вставить("ПередЗагрузкойВариантаНаСервере", Ложь); + // ВнешниеКомпоненты + События.Вставить("ПриОпределенииИспользуемыхВнешнихКомпонент", Ложь); + // ГрупповоеИзменениеОбъектов События.Вставить("ПриОпределенииОбъектовСРедактируемымиРеквизитами", Ложь); События.Вставить("ПриОпределенииРедактируемыхРеквизитовОбъекта", Ложь); @@ -852,6 +855,21 @@ #КонецОбласти +#Область ВнешниеКомпонентыВМоделиСервиса + +// См. ПолучениеВнешнихКомпонентВМоделиСервисаПереопределяемый.ПриОпределенииИспользуемыхВерсийВнешнихКомпонент. +Процедура ПриОпределенииИспользуемыхВерсийВнешнихКомпонент(Идентификаторы) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда + МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный"); + ОбщегоНазначенияКлиентСервер.ДополнитьМассив( + Идентификаторы, МодульВнешниеКомпонентыСлужебный.ПоставляемыеКомпоненты(), Истина); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #Область РаботаСКлассификаторами // См. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов. @@ -955,20 +973,6 @@ #КонецОбласти -#Область ЭлектроннаяПодпись - -// См. ПолучениеВнешнихКомпонентВМоделиСервисаПереопределяемый.ПриОпределенииИспользуемыхВерсийВнешнихКомпонент. -Процедура ПриОпределенииИспользуемыхВерсийВнешнихКомпонент(Идентификаторы) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда - МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный"); - МодульЭлектроннаяПодписьСлужебный.ПриОпределенииИспользуемыхВерсийВнешнихКомпонент(Идентификаторы); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - #КонецОбласти #КонецОбласти @@ -1799,7 +1803,12 @@ МодульПолучениеФайловИзИнтернетаСлужебный = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернетаСлужебный"); МодульПолучениеФайловИзИнтернетаСлужебный.ПриДобавленииПараметровРаботыКлиента(Параметры); КонецЕсли; - + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда + МодульРаботаВБезопасномРежимеСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежимеСлужебный"); + МодульРаботаВБезопасномРежимеСлужебный.ПриДобавленииПараметровРаботыКлиента(Параметры); + КонецЕсли; + ПользователиСлужебный.ПриДобавленииПараметровРаботыКлиента(Параметры); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда @@ -1839,6 +1848,10 @@ МодульСервисКриптографииDSSСлужебный.ПриДобавленииПараметровРаботыКлиента(Параметры); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда + Параметры.Вставить("ВерсияБИД", ОбновлениеИнформационнойБазы.ВерсияИБ("БиблиотекаИнтеграцииС1СДокументооборотом")); + КонецЕсли; + КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПередЗапускомПрограммы @@ -2252,6 +2265,29 @@ #КонецОбласти +#Область ВнешниеКомпоненты + +// Параметры: +// Компоненты - ТаблицаЗначений - список компонент, используемых в конфигурации: +// * Идентификатор - Строка - строка длиной 50 символов, идентификатор компоненты. +// * ОбновлятьАвтоматически - Булево - обновлять из сервиса автоматически. +// +Процедура ПриОпределенииИспользуемыхВнешнихКомпонент(Компоненты) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБПО().ПриОпределенииИспользуемыхВнешнихКомпонент Тогда + МодульИнтеграцияПодсистемБПО = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБПО"); + МодульИнтеграцияПодсистемБПО.ПриОпределенииИспользуемыхВнешнихКомпонент(Компоненты); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда + МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный"); + МодульЭлектроннаяПодписьСлужебный.ПриОпределенииИспользуемыхВнешнихКомпонент(Компоненты); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #Область ГрупповоеИзменениеОбъектов // См. ГрупповоеИзменениеОбъектовПереопределяемый.ПриОпределенииОбъектовСРедактируемымиРеквизитами. @@ -2834,6 +2870,11 @@ // См. ИнтерфейсODataПереопределяемый.ПриЗаполненииЗависимыхТаблицДляВыгрузкиЗагрузкиOData Процедура ПриЗаполненииЗависимыхТаблицДляВыгрузкиЗагрузкиOData(Таблицы) Экспорт + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда + МодульКонтрольВеденияУчетаСлужебный = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчетаСлужебный"); + МодульКонтрольВеденияУчетаСлужебный.ПриЗаполненииЗависимыхТаблицДляВыгрузкиЗагрузкиOData(Таблицы); + КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РаботаСФайламиВМоделиСервиса") Тогда МодульРаботаСФайламиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйВМоделиСервиса"); МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриЗаполненииЗависимыхТаблицДляВыгрузкиЗагрузкиOData(Таблицы); @@ -4801,6 +4842,10 @@ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда ТекущиеДела.Добавить(ОбщегоНазначения.ОбщийМодуль("Взаимодействия")); КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда + ТекущиеДела.Добавить(ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный")); + КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда ТекущиеДела.Добавить(ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки")); diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl index 63b0d990e..1d4060edc 100644 --- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl @@ -32,4 +32,23 @@ КонецФункции +Функция ПодпискиБПО() Экспорт + + Подписки = ИнтеграцияПодсистемБСП.СобытияБСП(); + + Если ОбщегоНазначения.ПодсистемаСуществует("ПоддержкаОборудования") Тогда + + Если Метаданные.ОбщиеМодули.Найти("ИнтеграцияПодсистемБПО") = Неопределено Тогда + Возврат Подписки; + КонецЕсли; + + МодульИнтеграцияПодсистемБПО = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБПО"); + МодульИнтеграцияПодсистемБПО.ПриОпределенииПодписокНаСобытияБСП(Подписки); + + КонецЕсли; + + Возврат Подписки; + +КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ИнтерфейсODataПереопределяемый/Module.bsl b/SSL/src/CommonModules/ИнтерфейсODataПереопределяемый/Module.bsl index a9dc677f9..974b984ee 100644 --- a/SSL/src/CommonModules/ИнтерфейсODataПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ИнтерфейсODataПереопределяемый/Module.bsl @@ -8,8 +8,8 @@ #Область ПрограммныйИнтерфейс -// Список таблиц, которые не входят в выгрузку и загрузку данных Odata, но права на которые -// необходимы для записи таблиц, включенных в интерфейс Odata. +// Список таблиц, которые не входят в выгрузку и загрузку данных OData, но права на которые +// необходимы для записи таблиц, включенных в интерфейс OData. // // Параметры: // Таблицы - Массив из Строка - полное имя объекта метаданных. diff --git a/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl b/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl index 089edcbb7..9b9a0fa62 100644 --- a/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl @@ -143,11 +143,20 @@ КонецФункции +// Возвращаемое значение: +// ОбъектМетаданных - роль. +// +Функция РольИнтерфейсаOData() Экспорт + + Возврат Метаданные.Роли.УдаленныйДоступOData; + +КонецФункции + #Область ОбработчикиСобытий Процедура ПередВыгрузкойДанных(Контейнер) Экспорт - Состав = ОбщегоНазначения.ВычислитьВБезопасномРежиме("ПолучитьСоставСтандартногоИнтерфейсаOData()"); + Состав = ПолучитьСоставСтандартногоИнтерфейсаOData(); СериализуемыйСостав = Новый Массив(); Для Каждого ЭлементСостава Из Состав Цикл @@ -186,12 +195,12 @@ Или ПотокЧтения.Имя <> "Data" Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Ошибка чтения XML. Неверный формат файла. Ожидается начало элемента %1.'"), "Data"); + НСтр("ru = 'Неверный формат файла XML. Ожидается начало элемента %1.'"), "Data"); КонецЕсли; Если Не ПотокЧтения.Прочитать() Тогда - ВызватьИсключение НСтр("ru = 'Ошибка чтения XML. Обнаружено завершение файла.'"); + ВызватьИсключение НСтр("ru = 'Неверный формат файла XML. Обнаружено завершение файла.'"); КонецЕсли; Состав = СериализаторXDTO.ПрочитатьXML(ПотокЧтения); @@ -207,7 +216,7 @@ КонецЦикла; - ОбщегоНазначения.ВыполнитьВБезопасномРежиме("УстановитьСоставСтандартногоИнтерфейсаOData(Параметры)", Состав); + УстановитьСоставСтандартногоИнтерфейсаOData(Состав); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/CommonModules/КонструкторФормул/Module.bsl b/SSL/src/CommonModules/КонструкторФормул/Module.bsl index 2ad944ee9..e52300843 100644 --- a/SSL/src/CommonModules/КонструкторФормул/Module.bsl +++ b/SSL/src/CommonModules/КонструкторФормул/Module.bsl @@ -41,7 +41,7 @@ // * ПодсказкаВводаСтрокиПоиска - Строка // * ОбработчикиСписка - Структура // * ВключатьГруппыВПутьКДанным - Булево -// * СкобкиИдентификаторов - Булев +// * СкобкиИдентификаторов - Булево // * СкобкиПредставлений - Булево // * ИсточникиДоступныхПолей - ТаблицаЗначений - используется в случае, когда требуется изменить состав подчиненных // полей у любого поля: diff --git a/SSL/src/CommonModules/КонструкторФормулСлужебный/Module.bsl b/SSL/src/CommonModules/КонструкторФормулСлужебный/Module.bsl index ee70e17df..5cf2cdd34 100644 --- a/SSL/src/CommonModules/КонструкторФормулСлужебный/Module.bsl +++ b/SSL/src/CommonModules/КонструкторФормулСлужебный/Module.bsl @@ -43,7 +43,8 @@ ДополнительныеПараметры.Вставить("Картинка", Base64Строка(СтрокаТаблицы.Картинка.ПолучитьДвоичныеДанные())); - Поле.ПараметрыРедактирования.УстановитьЗначениеПараметра("Маска", ЗначениеВJSON(ДополнительныеПараметры)); + Поле.ПараметрыРедактирования.УстановитьЗначениеПараметра("Маска", + ОбщегоНазначения.ЗначениеВJSON(ДополнительныеПараметры)); КонецЦикла; Возврат СхемаКомпоновкиДанных; @@ -921,26 +922,63 @@ Процедура ЗаполнитьСписокДоступныхРеквизитов(Знач ТекущийРеквизит, ИсточникиДоступныхПолей, Знач Отбор = "", НастройкиСписка = Неопределено, УникальныйИдентификаторФормы = Неопределено) + КоллекцииДоступныхПолей = КоллекцииДоступныхПолей(ТекущийРеквизит, ИсточникиДоступныхПолей, НастройкиСписка, УникальныйИдентификаторФормы); + ДоступныеРеквизиты = ДоступныеРеквизиты(КоллекцииДоступныхПолей); + + КоллекцияРеквизитов = ПодчиненныеЭлементы(ТекущийРеквизит); + ПолеСсылкаДобавлено = Ложь; + Для Каждого ДоступныйРеквизит Из ДоступныеРеквизиты Цикл + Если ДоступныйРеквизит.Имя = "Ссылка" Тогда + Если ТипЗнч(ТекущийРеквизит) <> Тип("ДанныеФормыДерево") И ТипЗнч(ТекущийРеквизит) <> Тип("ДеревоЗначений") + Или ПолеСсылкаДобавлено Тогда + Продолжить; + КонецЕсли; + ПолеСсылкаДобавлено = Истина; + КонецЕсли; + + Реквизит = КоллекцияРеквизитов.Добавить(); + ЗаполнитьЗначенияСвойств(Реквизит, ДоступныйРеквизит); + + Если Родитель(Реквизит) <> Неопределено Тогда + Родитель = Родитель(Реквизит); + Если Реквизит.ЭтоГруппа Тогда + Реквизит.ПутьКДанным = Родитель.ПутьКДанным; + Реквизит.ПредставлениеПутиКДанным = Строка(Родитель.ПредставлениеПутиКДанным); + Иначе + Если ЗначениеЗаполнено(Родитель.ПутьКДанным) Тогда + Реквизит.ПутьКДанным = Родитель.ПутьКДанным + "." + Реквизит.Имя; + Реквизит.ПредставлениеПутиКДанным = Строка(Родитель.ПредставлениеПутиКДанным) + "." + Реквизит.Заголовок; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Если ДоступныйРеквизит.ЕстьПодчиненные Тогда + ПодчиненныеЭлементы(Реквизит).Добавить(); + ИначеЕсли НастройкиСписка <> Неопределено И ЗначениеЗаполнено(НастройкиСписка.ПриОпределенииИсточниковДоступныхПолей) Тогда + КоллекцииПолейРеквизита = КоллекцииДоступныхПолей(Реквизит, ИсточникиДоступныхПолей, НастройкиСписка, УникальныйИдентификаторФормы); + Если ЗначениеЗаполнено(КоллекцииПолейРеквизита) И Не СтрНайти(Реквизит.ПутьКДанным, Реквизит.Имя + ".") + И ЗначениеЗаполнено(КоллекцииПолейРеквизита[0].Элементы) Тогда + ПодчиненныеЭлементы(Реквизит).Добавить(); + КонецЕсли; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +Функция ДоступныеРеквизиты(КоллекцииДоступныхПолей) + ДоступныеРеквизиты = НоваяКоллекцияДоступныхРеквизитов(); ДоступныеРеквизиты.Колонки.Добавить("ЕстьПодчиненные", Новый ОписаниеТипов("Булево")); ДоступныеРеквизиты.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число")); + ДоступныеРеквизиты.Индексы.Добавить("Поле"); + + СлужебныеПоля = СлужебныеПоля(); + ТипыПрисоединенныхФайлов = ТипыПрисоединенныхФайлов(); + ПрефиксыПолейКартинка = ПрефиксыПолейКартинка(); - КоллекцииДоступныхПолей = КоллекцииДоступныхПолей(ТекущийРеквизит, ИсточникиДоступныхПолей, НастройкиСписка, УникальныйИдентификаторФормы); Для Каждого КоллекцияДоступныхПолей Из КоллекцииДоступныхПолей Цикл Для Каждого ОписаниеПоля Из КоллекцияДоступныхПолей.Элементы Цикл - Если ОписаниеПоля.Таблица И (Строка(ОписаниеПоля.Поле) = "ДополнительныеРеквизиты" - Или СтрЗаканчиваетсяНа(ОписаниеПоля.Поле, ".ДополнительныеРеквизиты")) Тогда - Продолжить; - КонецЕсли; - Если ОписаниеПоля.Таблица И (Строка(ОписаниеПоля.Поле) = "КонтактнаяИнформация" - Или СтрЗаканчиваетсяНа(ОписаниеПоля.Поле, ".КонтактнаяИнформация")) Тогда - Продолжить; - КонецЕсли; - Если ОписаниеПоля.Таблица И (Строка(ОписаниеПоля.Поле) = "Представления" - Или СтрЗаканчиваетсяНа(ОписаниеПоля.Поле, ".Представления")) Тогда - Продолжить; - КонецЕсли; - Если СтрЗаканчиваетсяНа(ОписаниеПоля.Поле, ".ВерсияДанных") Тогда + Если ЭтоСлужебноеПоле(ОписаниеПоля, СлужебныеПоля) Тогда Продолжить; КонецЕсли; @@ -975,7 +1013,7 @@ ДополнительныеПараметры = Новый Соответствие; Если ТипЗнч(ОписаниеПоля) = Тип("ДоступноеПолеОтбораКомпоновкиДанных") И ЗначениеЗаполнено(ОписаниеПоля.Маска) И СтрНачинаетсяС(ОписаниеПоля.Маска, "{") И СтрЗаканчиваетсяНа(ОписаниеПоля.Маска, "}") Тогда - ДополнительныеПараметры = JSONВЗначение(ОписаниеПоля.Маска); + ДополнительныеПараметры = ОбщегоНазначения.JSONВЗначение(ОписаниеПоля.Маска); КонецЕсли; Если ДополнительныеПараметры["Картинка"] <> Неопределено Тогда @@ -999,22 +1037,11 @@ Если Не ЗначениеЗаполнено(Реквизит.Картинка) Тогда Реквизит.Картинка = КартинкаТипа(ОписаниеПоля.Тип); - МодульРаботаСФайламиСлужебный = Неопределено; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда - МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный"); - КонецЕсли; - Если Реквизит.Таблица Тогда Реквизит.Картинка = БиблиотекаКартинок.ТипСписок; ИначеЕсли Реквизит.Папка Тогда Реквизит.Картинка = БиблиотекаКартинок.ТипПапка; - ИначеЕсли СтрНачинаетсяС(Реквизит.Имя, "Печать") - Или СтрНачинаетсяС(Реквизит.Имя, "Подпись") - Или СтрНачинаетсяС(Реквизит.Имя, "Факсимиле") - Или СтрНачинаетсяС(Реквизит.Имя, "Картинка") - Или Реквизит.Тип.Типы().Количество() = 1 - И МодульРаботаСФайламиСлужебный <> Неопределено - И МодульРаботаСФайламиСлужебный.ТипыПрисоединенныхФайлов().СодержитТип(Реквизит.Тип.Типы()[0]) Тогда + ИначеЕсли ЭтоРеквизитКартинка(Реквизит, ПрефиксыПолейКартинка, ТипыПрисоединенныхФайлов) Тогда Реквизит.Картинка = БиблиотекаКартинок.ТипКартинка; ИначеЕсли СтрНачинаетсяС(Реквизит.Имя, "Штамп") Тогда Реквизит.Картинка = БиблиотекаКартинок.ШтампЭлектроннойПодписи; @@ -1043,7 +1070,6 @@ КонецЕсли; ЕстьПодчиненные = Реквизит.ЭтоГруппа Или ЕстьПодчиненныеЭлементы(ОписаниеПоля); - Если ЕстьПодчиненные Тогда Реквизит.ЕстьПодчиненные = Истина; КонецЕсли; @@ -1052,46 +1078,63 @@ КонецЦикла; ДоступныеРеквизиты.Сортировать("Порядок, Заголовок"); + Возврат ДоступныеРеквизиты; - КоллекцияРеквизитов = ПодчиненныеЭлементы(ТекущийРеквизит); - ПолеСсылкаДобавлено = Ложь; - Для Каждого ДоступныйРеквизит Из ДоступныеРеквизиты Цикл - Если ДоступныйРеквизит.Имя = "Ссылка" Тогда - Если ТипЗнч(ТекущийРеквизит) <> Тип("ДанныеФормыДерево") И ТипЗнч(ТекущийРеквизит) <> Тип("ДеревоЗначений") - Или ПолеСсылкаДобавлено Тогда - Продолжить; - КонецЕсли; - ПолеСсылкаДобавлено = Истина; - КонецЕсли; - - Реквизит = КоллекцияРеквизитов.Добавить(); - ЗаполнитьЗначенияСвойств(Реквизит, ДоступныйРеквизит); - - Если Родитель(Реквизит) <> Неопределено Тогда - Родитель = Родитель(Реквизит); - Если Реквизит.ЭтоГруппа Тогда - Реквизит.ПутьКДанным = Родитель.ПутьКДанным; - Реквизит.ПредставлениеПутиКДанным = Строка(Родитель.ПредставлениеПутиКДанным);; - Иначе - Если ЗначениеЗаполнено(Родитель.ПутьКДанным) Тогда - Реквизит.ПутьКДанным = Родитель.ПутьКДанным + "." + Реквизит.Имя; - Реквизит.ПредставлениеПутиКДанным = Строка(Родитель.ПредставлениеПутиКДанным) + "." + Реквизит.Заголовок; - КонецЕсли; - КонецЕсли; - КонецЕсли; - - Если ДоступныйРеквизит.ЕстьПодчиненные Тогда - ПодчиненныеЭлементы(Реквизит).Добавить(); - ИначеЕсли НастройкиСписка <> Неопределено И ЗначениеЗаполнено(НастройкиСписка.ПриОпределенииИсточниковДоступныхПолей) Тогда - КоллекцииПолейРеквизита = КоллекцииДоступныхПолей(Реквизит, ИсточникиДоступныхПолей, НастройкиСписка, УникальныйИдентификаторФормы); - Если ЗначениеЗаполнено(КоллекцииПолейРеквизита) И Не СтрНайти(Реквизит.ПутьКДанным, Реквизит.Имя + ".") - И ЗначениеЗаполнено(КоллекцииПолейРеквизита[0].Элементы) Тогда - ПодчиненныеЭлементы(Реквизит).Добавить(); - КонецЕсли; +КонецФункции + +Функция ЭтоСлужебноеПоле(Знач ОписаниеПоля, Знач СлужебныеПоля) + + ИмяПоля = Строка(ОписаниеПоля.Поле); + Если ОписаниеПоля.Таблица И СлужебныеПоля[ИмяПоля] = Истина Тогда + Возврат Истина; + КонецЕсли; + Для каждого СлужебноеПоле Из СлужебныеПоля Цикл + Если СтрЗаканчиваетсяНа(ИмяПоля, "." + СлужебноеПоле.Ключ) Тогда + Возврат Истина; КонецЕсли; КонецЦикла; -КонецПроцедуры + Возврат (СтрЗаканчиваетсяНа(ИмяПоля, ".ВерсияДанных")); + +КонецФункции + +Функция СлужебныеПоля() + Результат = Новый Соответствие; + Результат["ДополнительныеРеквизиты"] = Истина; + Результат["КонтактнаяИнформация"] = Истина; + Результат["Представления"] = Истина; + Возврат Результат; +КонецФункции + +Функция ЭтоРеквизитКартинка(Реквизит, ПрефиксыПолейКартинка, ТипыПрисоединенныхФайлов) + + Для каждого ПрефиксПоля Из ПрефиксыПолейКартинка Цикл + Если СтрНачинаетсяС(Реквизит.Имя, "." + ПрефиксПоля.Ключ) Тогда + Возврат Истина; + КонецЕсли; + КонецЦикла; + + Возврат Реквизит.Тип.Типы().Количество() = 1 И ТипыПрисоединенныхФайлов.СодержитТип(Реквизит.Тип.Типы()[0]); + +КонецФункции + +Функция ПрефиксыПолейКартинка() + Результат = Новый Соответствие; + Результат["Подпись"] = Истина; + Результат["Факсимиле"] = Истина; + Результат["Картинка"] = Истина; + Возврат Результат; +КонецФункции + +Функция ТипыПрисоединенныхФайлов() + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда + МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный"); + Возврат МодульРаботаСФайламиСлужебный.ТипыПрисоединенныхФайлов(); + КонецЕсли; + Возврат Новый ОписаниеТипов(); + +КонецФункции // Возвращаемое значение: // ТаблицаЗначений: @@ -2076,7 +2119,8 @@ ДополнительныеПараметры.ЭтоГруппа = ЭтоГруппа; ДополнительныеПараметры.Вставить("Картинка", Base64Строка(Элемент.Картинка.ПолучитьДвоичныеДанные())); - Поле.ПараметрыРедактирования.УстановитьЗначениеПараметра("Маска", ЗначениеВJSON(ДополнительныеПараметры)); + Поле.ПараметрыРедактирования.УстановитьЗначениеПараметра("Маска", + ОбщегоНазначения.ЗначениеВJSON(ДополнительныеПараметры)); КонецЕсли; Поле.ПутьКДанным = Элемент.Идентификатор; @@ -2482,22 +2526,6 @@ КонецФункции -Функция ЗначениеВJSON(Значение) - - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.УстановитьСтроку(); - ЗаписатьJSON(ЗаписьJSON, Значение); - - Возврат ЗаписьJSON.Закрыть(); - -КонецФункции - -Функция JSONВЗначение(Строка, ИменаСвойствСоЗначениямиДата = Неопределено) - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(Строка); - Возврат ПрочитатьJSON(ЧтениеJSON, Истина, ИменаСвойствСоЗначениямиДата); -КонецФункции - Функция КартинкаТипа(ОписаниеТипов) Картинка = КонструкторФормулПовтИсп.КартинкаПоИмени("ТипНеопределено"); diff --git a/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl index cea6a9008..f110238fa 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl @@ -98,10 +98,36 @@ ПроверкиПоКонтексту = КонтрольВеденияУчетаСлужебный.ПроверкиПоКонтексту(КонтекстПроверокВеденияУчета); - Для Каждого Проверка Из ПроверкиПоКонтексту Цикл - ВыполнитьПроверку(Проверка); + ИдентификаторФормы = Новый УникальныйИдентификатор; + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Контроль ведения учета'"); + + ПараметрыМетода = Новый Соответствие; + ВерхняяГраницаПроверок = ПроверкиПоКонтексту.ВГраница(); + + Для ИндексПроверки = 0 По ВерхняяГраницаПроверок Цикл + МассивПараметров = Новый Массив; + МассивПараметров.Добавить(ПроверкиПоКонтексту[ИндексПроверки]); + + ПараметрыМетода.Вставить(ИндексПроверки, МассивПараметров); КонецЦикла; + ИмяПроцедуры = "КонтрольВеденияУчета.ВыполнитьПроверку"; + + РезультатВыполнения = ДлительныеОперации.ВыполнитьПроцедуруВНесколькоПотоков( + ИмяПроцедуры, + ПараметрыВыполнения, + ПараметрыМетода); + + СтатусВыполняется = "Выполняется"; + ИдентификаторЗадания = РезультатВыполнения.ИдентификаторЗадания; + + Если (РезультатВыполнения.Статус = СтатусВыполняется) И (Не ПустаяСтрока(ИдентификаторЗадания)) Тогда + ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания); + ФоновоеЗадание = ФоновоеЗадание.ОжидатьЗавершенияВыполнения(); + КонецЕсли; + КонецПроцедуры // Возвращает сводку по количеству выявленных проблем указанного вида проверки. @@ -861,10 +887,15 @@ // или иных настроек. // Процедура ОбновитьПараметрыПроверокУчета() Экспорт - КонтрольВеденияУчетаСлужебный.ОбновитьПараметрыПроверокУчета(); + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + КонтрольВеденияУчетаСлужебный.ОбновитьПараметрыПроверокУчета(); + КонецЕсли; + Если КонтрольВеденияУчетаСлужебный.ЕстьИзмененияПараметровПроверокУчета() Тогда КонтрольВеденияУчетаСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации(); КонецЕсли; + КонецПроцедуры #Область УстаревшиеПроцедурыИФункции diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаГлобальный/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаГлобальный/Module.bsl index aa492c83a..5be4dbf72 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаГлобальный/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаГлобальный/Module.bsl @@ -12,6 +12,13 @@ // при отсутствии подсистемы ТекущиеДела. // Процедура ОповеститьОПроблемахВеденияУчета() Экспорт + +#Если МобильныйКлиент Тогда + Если ОсновнойСерверДоступен() = Ложь Тогда + Возврат; + КонецЕсли; +#КонецЕсли + КонтрольВеденияУчетаСлужебныйКлиент.ОповеститьОНаличииПроблемВеденияУчета(); КонецПроцедуры diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl index 4f06cabb5..7889f98d0 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl @@ -25,7 +25,6 @@ Обработчик.Процедура = "РегистрыСведений.РезультатыПроверкиУчета.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.РезультатыПроверкиУчета.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЧитаемыеОбъекты = "РегистрСведений.РезультатыПроверкиУчета"; Обработчик.ИзменяемыеОбъекты = "РегистрСведений.РезультатыПроверкиУчета"; Обработчик.БлокируемыеОбъекты = "РегистрСведений.РезультатыПроверкиУчета"; @@ -41,7 +40,6 @@ Обработчик.Процедура = "Справочники.ПравилаПроверкиУчета.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ПравилаПроверкиУчета.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЧитаемыеОбъекты = "Справочник.ПравилаПроверкиУчета"; Обработчик.ИзменяемыеОбъекты = "Справочник.ПравилаПроверкиУчета"; Обработчик.БлокируемыеОбъекты = "Справочник.ПравилаПроверкиУчета"; @@ -160,6 +158,13 @@ КонецПроцедуры +// См. ИнтерфейсODataПереопределяемый.ПриЗаполненииЗависимыхТаблицДляВыгрузкиЗагрузкиOData +Процедура ПриЗаполненииЗависимыхТаблицДляВыгрузкиЗагрузкиOData(Таблицы) Экспорт + + Таблицы.Добавить(Метаданные.РегистрыСведений.РезультатыПроверкиУчета.ПолноеИмя()); + +КонецПроцедуры + // Обновляет состав системных проверок ведения учета при изменении конфигурации. // // Параметры: @@ -2137,10 +2142,11 @@ Если ЭтоБитаяСсылка(ПроверяемаяСсылка, ПроверенныеСсылки) Тогда УточнениеПроблемы = УточнениеПроблемы + ?(ЗначениеЗаполнено(УточнениеПроблемы), Символы.ПС, "") + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'У объекта ""%1"" в реквизите ""%2"" указана ссылка на несуществующий элемент: ""%3"".'"), + НСтр("ru = 'У объекта ""%1"" в реквизите ""%2"" указана ссылка на несуществующий элемент: ""%3"" (%4).'"), СсылкаНаОбъект, Результат.Колонки[Индекс].Имя, - ПроверяемаяСсылка); + ПроверяемаяСсылка, + ТипЗнч(ПроверяемаяСсылка)); КонецЕсли; КонецЦикла; @@ -2167,9 +2173,9 @@ КонецЕсли; УточнениеПроблемы = УточнениеПроблемы + ?(ЗначениеЗаполнено(УточнениеПроблемы), Символы.ПС, "") + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'У объекта ""%1"" в реквизите ""%2"" табличной части ""%3"" (строка № %4) указана ссылка на несуществующий элемент: ""%5"".'"), + НСтр("ru = 'У объекта ""%1"" в реквизите ""%2"" табличной части ""%3"" (строка № %4) указана ссылка на несуществующий элемент: ""%5"" (%6).'"), СсылкаНаОбъект, ИмяРеквизитаТЧ, СтрЗаменить(РеквизитыТабличнойЧасти.Ключ, ИмяРеквизитаТЧ, ""), - ТекущийНомерСтроки, ПроверяемыеДанные); + ТекущийНомерСтроки, ПроверяемыеДанные, ТипЗнч(ПроверяемыеДанные)); ЛимитПроблем = ЛимитПроблем - 1; КонецЕсли; КонецЦикла; @@ -2625,12 +2631,14 @@ ДополнительнаяИнформация.Вставить(Измерение.Имя, ИзмерениеСсылка); КонецЦикла; + БитаяСсылка = СтрокаРезультата[ИнформацияОРеквизите.ИмяМетаданных + ИнформацияОРеквизите.ТипМетаданныхВИменительномПадеже + "Ссылка"]; Проблема = ОписаниеПроблемы(ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных), ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'У регистра сведений ""%1"" в %2, по комбинации измерений ""%3"" указана ссылка на несуществующий элемент: ""%4"".'"), + НСтр("ru = 'У регистра сведений ""%1"" в %2, по комбинации измерений ""%3"" указана ссылка на несуществующий элемент: ""%4"" (%5).'"), ОбъектМетаданных.Представление(), ИнформацияОРеквизите.ТипМетаданныхВТворительномПадеже, ПоляУпорядочивания, - СтрокаРезультата[ИнформацияОРеквизите.ИмяМетаданных + ИнформацияОРеквизите.ТипМетаданныхВИменительномПадеже + "Ссылка"]); + БитаяСсылка, + ТипЗнч(БитаяСсылка)); Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(ДополнительнаяИнформация); ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета @@ -2739,12 +2747,14 @@ ДополнительнаяИнформация.Вставить(Измерение.Имя, ИзмерениеСсылка); КонецЦикла; + БитаяСсылка = СтрокаРезультата[ИнформацияОРеквизите.ИмяМетаданных + ИнформацияОРеквизите.ТипМетаданныхВИменительномПадеже + "Ссылка"]; Проблема = ОписаниеПроблемы(ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных), ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'У регистра сведений ""%1"" в %2, по комбинации измерений ""%3"" указана ссылка на несуществующий элемент: ""%4"".'"), + НСтр("ru = 'У регистра сведений ""%1"" в %2, по комбинации измерений ""%3"" указана ссылка на несуществующий элемент: ""%4"" (%5).'"), ОбъектМетаданных.Представление(), ИнформацияОРеквизите.ТипМетаданныхВТворительномПадеже, ПоляУпорядочивания, - СтрокаРезультата[ИнформацияОРеквизите.ИмяМетаданных + ИнформацияОРеквизите.ТипМетаданныхВИменительномПадеже + "Ссылка"]); + БитаяСсылка, + ТипЗнч(БитаяСсылка)); Проблема.ДополнительнаяИнформация = Новый ХранилищеЗначения(ДополнительнаяИнформация); ЗаписатьПроблему(Проблема, ПараметрыПроверки); // @skip-check query-in-loop - порционная проверка ведения учета diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl index b8a779f70..857de162b 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl @@ -79,11 +79,23 @@ // См. ОбщегоНазначенияКлиентПереопределяемый.ПослеНачалаРаботыСистемы. Процедура ПослеНачалаРаботыСистемы() Экспорт + ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); - Если ПараметрыКлиента.Свойство("КонтрольВеденияУчета") - И ПараметрыКлиента.КонтрольВеденияУчета.ОповещатьОПроблемахВеденияУчета Тогда - ПодключитьОбработчикОжидания("ОповеститьОПроблемахВеденияУчета", 30, Истина); + Если Не ПараметрыКлиента.Свойство("КонтрольВеденияУчета") Тогда + Возврат; КонецЕсли; + Свойства = ПараметрыКлиента.КонтрольВеденияУчета; + + Если Не Свойства.ОповещатьОПроблемахВеденияУчета + Или Не ЗначениеЗаполнено(Свойства.КоличествоПроблемВеденияУчета) Тогда + Возврат; + КонецЕсли; + + ПараметрыПриложения.Вставить("СтандартныеПодсистемы.КонтрольВеденияУчета.КоличествоПроблем", + Свойства.КоличествоПроблемВеденияУчета); + + ПодключитьОбработчикОжидания("ОповеститьОПроблемахВеденияУчета", 30, Истина); + КонецПроцедуры // См. ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки. @@ -305,20 +317,20 @@ КонецФункции Процедура ОповеститьОНаличииПроблемВеденияУчета() Экспорт - ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); - Если Не ПараметрыКлиента.Свойство("КонтрольВеденияУчета") Тогда + + КоличествоПроблем = ПараметрыПриложения.Получить( + "СтандартныеПодсистемы.КонтрольВеденияУчета.КоличествоПроблем"); + + Если Не ЗначениеЗаполнено(КоличествоПроблем) Тогда Возврат; КонецЕсли; - КоличествоПроблем = ПараметрыКлиента.КонтрольВеденияУчета.КоличествоПроблемВеденияУчета; - Если КоличествоПроблем = 0 Тогда - Возврат; - КонецЕсли; ПоказатьОповещениеПользователя( НСтр("ru = 'Проверка ведения учета'"), "e1cib/app/Отчет.РезультатыПроверкиУчета", НСтр("ru = 'Найдены проблемы ведения учета'") + " (" + КоличествоПроблем + ")", БиблиотекаКартинок.Предупреждение32); + КонецПроцедуры diff --git a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl index d38c9ad68..e0c85e840 100644 --- a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl +++ b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl @@ -66,7 +66,7 @@ Знач РежимОтключения = Ложь, Знач РежимВосстановления = Ложь) Экспорт - Если РежимВключения ИЛИ ОтображатьПомощникНастройкиРазрешений() Тогда + Если РежимВключения ИЛИ РаботаВБезопасномРежимеКлиент.ОтображатьПомощникНастройкиРазрешений() Тогда Состояние = СостояниеЗапросаРазрешенийНаИспользованиеВнешнихРесурсов(); Состояние.ИдентификаторыЗапросов = Идентификаторы; @@ -410,18 +410,6 @@ КонецПроцедуры -// Проверяет необходимость отображения помощника настройки разрешений на использование -// внешних (относительно кластера серверов 1С:Предприятия) ресурсов. -// -// Возвращаемое значение: -// Булево -// -Функция ОтображатьПомощникНастройкиРазрешений() - - Возврат СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске().ОтображатьПомощникНастройкиРазрешений; - -КонецФункции - // Конструктор структуры, которая используется для хранения состояния работы мастера // настройки разрешений на использование внешних ресурсов. // diff --git a/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl b/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl index 472931654..cd6fcdf98 100644 --- a/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl +++ b/SSL/src/CommonModules/НастройкиПрограммы/Module.bsl @@ -205,8 +205,8 @@ Истина); МодульЦентрМониторингаСлужебный.УстановитьРасписаниеПоУмолчаниюВнешнийВызов(РегЗадание); ИначеЕсли Результат = 2 Тогда - МодульЦентрМониторингаСлужебный.ОтключитьРегистрациюСобытий(); МодульЦентрМониторингаСлужебный.УдалитьРегламентноеЗаданиеВнешнийВызов("СборИОтправкаСтатистики"); + МодульЦентрМониторингаСлужебный.ОтключитьРегистрациюСобытий(); КонецЕсли; ПараметрыОперации.Вставить("РезультатЗапуска", РезультатЗапуска); @@ -348,4 +348,4 @@ КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl index 8acbeed66..6b71b66ab 100644 --- a/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl @@ -185,6 +185,17 @@ КонецЕсли; + КомпонентыОбмена.Вставить("ВыполнятьЗамеры", Ложь); + КомпонентыОбмена.Вставить("СеансОбмена", Неопределено); + КомпонентыОбмена.Вставить("ИмяВременногоФайлаЗамеров", ""); + КомпонентыОбмена.Вставить("ЗаписьЗамеров", Неопределено); + КомпонентыОбмена.Вставить("ТаблицаЗамеровПоСобытиям", ОбменДаннымиОценкаПроизводительности.ТаблицаЗамеровПоСобытиям()); + + КомпонентыОбмена.Вставить("ИспользоватьКешПубличныхИдентификаторов", Ложь); + КомпонентыОбмена.Вставить("КешПубличныхИдентификаторов", Неопределено); + + КомпонентыОбмена.Вставить("ОбменЧерезОбработкуВыгрузкаЗагрузкаED", Ложь); + Возврат КомпонентыОбмена; КонецФункции @@ -296,7 +307,8 @@ СтрокаСообщения = НСтр("ru = 'Ошибка при попытке записи в файл протокола данных: %1. Описание ошибки: %2'", ОбщегоНазначения.КодОсновногоЯзыка()); - СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, ИмяФайлаПротоколаОбмена, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + ИмяФайлаПротоколаОбмена, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрацииОбменДанными(СтрокаСообщения, КомпонентыОбмена, УровеньЖурналаРегистрации.Предупреждение); @@ -516,7 +528,15 @@ КонецЕсли; Попытка + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + КомпонентыОбмена.МенеджерОбмена.ПередКонвертацией(КомпонентыОбмена); + + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, "ПередКонвертацией", "", КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПравило()); + Исключение ШаблонОписанияОшибки = НСтр("ru = 'Направление: %1. @@ -528,7 +548,7 @@ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки, КомпонентыОбмена.НаправлениеОбмена, "ПередКонвертацией", - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; @@ -570,7 +590,15 @@ КонецЕсли; Попытка + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + КомпонентыОбмена.МенеджерОбмена.ПослеКонвертации(КомпонентыОбмена); + + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, "ПослеКонвертации", "",КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПравило()); + Исключение ШаблонОписанияОшибки = НСтр("ru = 'Событие: %1. @@ -582,7 +610,7 @@ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки, КомпонентыОбмена.НаправлениеОбмена, "ПослеКонвертации", - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; @@ -620,12 +648,12 @@ Получатель.НомерОтправленного = НомерОтправленного; Получатель.ОбменДанными.Загрузка = Истина; - Получатель.Записать(); + Получатель.Записать(); - ЗафиксироватьТранзакцию(); + ЗафиксироватьТранзакцию(); Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; + ОтменитьТранзакцию(); + ВызватьИсключение; КонецПопытки; КонецЕсли; @@ -718,15 +746,30 @@ ПропуститьОбработку = Ложь; Попытка // 2. Конвертируем Данные в Структуру по правилам конвертации. + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + ДанныеXDTO = ДанныеXDTOИзДанныхИБ(КомпонентыОбмена, Объект, ПравилоКонвертации, Неопределено); + Событие = "ДанныеXDTOИзДанныхИБ." + ПравилоКонвертации.ИмяПКО; + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, Событие, Объект, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияБиблиотека()); + Если ДанныеXDTO = Неопределено Тогда Продолжить; КонецЕсли; // 3. Конвертируем Структуру в ОбъектXDTO. + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + СсылкиИзОбъекта = Новый Массив; ОбъектXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ДанныеXDTO, ПравилоКонвертации.ТипXDTO, СсылкиИзОбъекта, , ПравилоКонвертации.Расширения); + + Событие = "ОбъектXDTOИзДанныхXDTO." + ПравилоКонвертации.ИмяПКО; + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, Событие, Объект, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияБиблиотека()); + Исключение ПропуститьОбработку = Истина; ВзвестиФлагОшибки = Истина; @@ -804,13 +847,8 @@ // Возвращаемое значение: // ОбъектXDTO - результат преобразования. // -Функция ОбъектXDTOИзДанныхXDTO( - КомпонентыОбмена, - Знач Источник, - Знач ТипXDTO, - СсылкиИзОбъекта = Неопределено, - ПроведеноЗаполнениеСвойств = Ложь, - Знач Расширения = Неопределено) Экспорт +Функция ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, Знач Источник, Знач ТипXDTO, + СсылкиИзОбъекта = Неопределено, ПроведеноЗаполнениеСвойств = Ложь, Знач Расширения = Неопределено) Экспорт Если СсылкиИзОбъекта = Неопределено Тогда СсылкиИзОбъекта = Новый Массив; @@ -823,7 +861,11 @@ СвойстваИсточника.Добавить(Свойство); КонецЦикла; - ДополнитьСвойстваПакетаИзРасширений(СвойстваИсточника, КомпонентыОбмена, Расширения); + ВложенныеРасширения = Новый Соответствие; + ВложенныеРасширения.Вставить("РасширенияКлючевыхСвойств", Неопределено); + ВложенныеРасширения.Вставить("РасширенияТабличныхЧастей", Неопределено); + + ДополнитьСвойстваПакетаИзРасширений(СвойстваИсточника, КомпонентыОбмена, Расширения, ВложенныеРасширения); Для Каждого Свойство Из СвойстваИсточника Цикл @@ -846,8 +888,6 @@ Если ТипЗнч(ЗначениеСвойства) = Тип("Структура") Тогда ЗначениеСвойства.Свойство("Расширения", Расширения); - // Для строк табличной части расширения добавлены в строку, - // поэтому получение Соответствия с расширениями определено ниже КонецЕсли; @@ -920,7 +960,10 @@ ЗначениеXDTO = Неопределено; Если ТипСвойства = КлассКлючевыеСвойстваФормата() Тогда - ЗначениеXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ЗначениеСвойства, Свойство.Тип, СсылкиИзОбъекта, , Расширения); + + РасширениеКлючевогоСвойства = УстановитьРасширениеКлючевыхСвойств(ВложенныеРасширения, Свойство.Тип.Имя); + ЗначениеXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ЗначениеСвойства, Свойство.Тип, СсылкиИзОбъекта, , РасширениеКлючевогоСвойства); + ИначеЕсли ТипСвойства = "ОбычноеСвойство" Тогда СвойствоТипЗначения = Свойство.Тип; // ТипЗначенияXDTO @@ -946,46 +989,15 @@ ИначеЕсли ТипСвойства = "Таблица" Тогда - Если ТипЗнч(ЗначениеСвойства) = Тип("ТаблицаЗначений") Тогда - - ЕстьРасширенияXDTO = ЗначениеСвойства.Колонки.Найти("Расширения") <> Неопределено; - - ИначеЕсли ТипЗнч(ЗначениеСвойства) = Тип("Массив") - И ЗначениеСвойства.Количество() > 0 Тогда - - ЕстьРасширенияXDTO = Ложь; - - ЭлементМассива = ЗначениеСвойства[0]; - Если ТипЗнч(ЭлементМассива) = Тип("Структура") Тогда - - ЕстьРасширенияXDTO = ЭлементМассива.Свойство("Расширения"); - - КонецЕсли; - - Иначе - - ЕстьРасширенияXDTO = Ложь; - - КонецЕсли; - ЗначениеXDTO = ФабрикаXDTO.Создать(Свойство.Тип); ТипТаблицы = Свойство.Тип.Свойства[0].Тип; ИмяСвойстваСтроки = Свойство.Тип.Свойства[0].Имя; СписокXDTO = ЗначениеXDTO[ИмяСвойстваСтроки]; // СписокXDTO + РасширениеТабличнойЧасти = УстановитьРасширениеСтрокиТабличнойЧасти(ВложенныеРасширения, Свойство.Имя); Для Каждого ИсточникСтрока Из ЗначениеСвойства Цикл - Если ЕстьРасширенияXDTO Тогда - - РасширенияСтроки = ИсточникСтрока.Расширения; - - Иначе - - РасширенияСтроки = Неопределено; - - КонецЕсли; - - ПриемникСтрока = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ИсточникСтрока, ТипТаблицы, СсылкиИзОбъекта, Ложь, РасширенияСтроки); + ПриемникСтрока = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ИсточникСтрока, ТипТаблицы, СсылкиИзОбъекта, Ложь, РасширениеТабличнойЧасти); СписокXDTO.Добавить(ПриемникСтрока); КонецЦикла; @@ -1009,8 +1021,9 @@ И СтрНайти(СвойствоСоставногоТипа.Тип.Имя,"boolean")>0) ИЛИ (ТипЗнч(ЗначениеСвойства) = Тип("Дата") И СтрНайти(СвойствоСоставногоТипа.Тип.Имя,"date")>0) Тогда + СоставноеЗначениеXDTO = ЗначениеСвойства; - + ИначеЕсли ТипЗнч(ЗначениеСвойства) = Тип("Строка") И ТипЗнч(СвойствоСоставногоТипа.Тип) = Тип("ТипЗначенияXDTO") И СвойствоСоставногоТипа.Тип.Фасеты <> Неопределено Тогда @@ -1051,7 +1064,7 @@ |%3'"), ТипСвойства, Свойство.Имя, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; Если ЭтоБазоваяСхема Или Свойство.URIПространстваИмен = Приемник.Тип().URIПространстваИмен Тогда @@ -1575,7 +1588,7 @@ | |Подробности: |%1'"), - КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; ДанныеПолучателя = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗаписьСообщения.Получатель, "НомерОтправленного, НомерПринятого, Код"); @@ -1614,6 +1627,8 @@ ПараметрыЗаголовка.Префикс = ОбменДаннымиСервер.ПрефиксИнформационнойБазы(); КонецЕсли; + ПараметрыЗаголовка.ОбменЧерезОбработкуВыгрузкаЗагрузкаED = КомпонентыОбмена.ОбменЧерезОбработкуВыгрузкаЗагрузкаED; + КонецЕсли; ЗаписатьЗаголовокСообщенияОбмена(ФайлОбмена, ПараметрыЗаголовка); @@ -1681,8 +1696,10 @@ И (ВариантИдентификации = "ПоУникальномуИдентификатору" Или ВариантИдентификации = "СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска") Тогда + ОригинальныйУИДСтрокой = ДанныеXDTO[КлассСсылка()].Значение; + ПолученныеДанныеСсылка = СсылкаОбъектаПоУИДОбъектаXDTO( - ДанныеXDTO[КлассСсылка()].Значение, + ОригинальныйУИДСтрокой, ПравилоКонвертации.ТипДанных, КомпонентыОбмена); @@ -1700,8 +1717,8 @@ ДанныеИБ, ПолученныеДанныеСсылка, ДанныеXDTO[КлассСсылка()].Значение, - КомпонентыОбмена.УзелКорреспондента, - ПравилоКонвертации); + ПравилоКонвертации, + КомпонентыОбмена); Возврат ДанныеИБ.Ссылка; ИначеЕсли ВариантИдентификации = "ПоУникальномуИдентификатору" Тогда @@ -1769,7 +1786,8 @@ ПравилоКонвертации, ПолученныеДанные, ДанныеXDTOСодержатСсылку, - КомпонентыОбмена.УзелКорреспондента); + КомпонентыОбмена, + ОригинальныйУИДСтрокой); Если Не ЗначениеЗаполнено(ДанныеИБ) Тогда ДанныеИБ = Неопределено; КонецЕсли; @@ -1794,8 +1812,8 @@ ДанныеИБ.ПолучитьОбъект(), ДанныеИБ, ДанныеXDTO[КлассСсылка()].Значение, - КомпонентыОбмена.УзелКорреспондента, - ПравилоКонвертации); + ПравилоКонвертации, + КомпонентыОбмена); КонецЕсли; Возврат ДанныеИБ; @@ -1870,8 +1888,8 @@ ДанныеИБ, ?(ДанныеДляЗаписиВИБ.ЭтоНовый(), ДанныеДляЗаписиВИБ.ПолучитьСсылкуНового(), ДанныеДляЗаписиВИБ.Ссылка), ДанныеXDTO[КлассСсылка()].Значение, - КомпонентыОбмена.УзелКорреспондента, - ПравилоКонвертации); + ПравилоКонвертации, + КомпонентыОбмена); КонецЕсли; @@ -1911,7 +1929,10 @@ Если Не ДанныеДляЗаписиВИБ.ЭтоНовый() И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеДляЗаписиВИБ.Ссылка, "Проведен") Тогда // Записываем новую версию документа с отменой проведения. - Результат = ОтменитьПроведениеОбъектаВИБ(ДанныеДляЗаписиВИБ, КомпонентыОбмена.УзелКорреспондента); + + Результат = ОтменитьПроведениеОбъектаВИБ(ДанныеДляЗаписиВИБ, + КомпонентыОбмена.УзелКорреспондента, КомпонентыОбмена); + Иначе // Записываем новую версию документа. ЗаписатьОбъектВИБ(КомпонентыОбмена, ДанныеДляЗаписиВИБ, ПравилоКонвертации.ТипДанных); @@ -1931,7 +1952,10 @@ Возврат Неопределено; КонецЕсли; Иначе - ОтменитьПроведениеОбъектаВИБ(ДанныеДляЗаписиВИБ, КомпонентыОбмена.УзелКорреспондента); + + ОтменитьПроведениеОбъектаВИБ(ДанныеДляЗаписиВИБ, + КомпонентыОбмена.УзелКорреспондента, КомпонентыОбмена); + КонецЕсли; КонецЕсли; @@ -1943,7 +1967,7 @@ КонецЕсли; Исключение - ЗаписатьВПротоколВыполнения(КомпонентыОбмена, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗаписатьВПротоколВыполнения(КомпонентыОбмена, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; Иначе @@ -2064,7 +2088,7 @@ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки, КомпонентыОбмена.НаправлениеОбмена, "ПослеКонвертации", - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; @@ -2074,7 +2098,7 @@ Попытка ВыполнитьОтложенноеПроведениеДокументов(КомпонентыОбмена); ОбменДаннымиСервер.ВыполнитьОтложеннуюЗаписьОбъектов( - КомпонентыОбмена.ОбъектыДляОтложеннойЗаписи, КомпонентыОбмена.УзелКорреспондента); + КомпонентыОбмена.ОбъектыДляОтложеннойЗаписи, КомпонентыОбмена.УзелКорреспондента, КомпонентыОбмена); ОбменДаннымиСлужебный.ОтключитьОбновлениеКлючейДоступа(Ложь); Исключение @@ -2130,21 +2154,25 @@ КомпонентыОбмена.Вставить("ФайлОбмена", ЧтениеXML); Исключение СтрокаСообщенияОбОшибке = НСтр("ru = 'Ошибка при загрузке данных: %1'"); - СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписатьВПротоколВыполнения(КомпонентыОбмена, СтрокаСообщенияОбОшибке); Прервать; КонецПопытки; + ЗаполнитьКешПубличныхИдентификаторов(КомпонентыОбмена, ИмяФайлаОбмена, ЧтениеXML); + ЧтениеXML.Прочитать(); // Message Если (ЧтениеXML.ТипУзла <> ТипУзлаXML.НачалоЭлемента Или ЧтениеXML.ЛокальноеИмя <> "Message") Тогда Если СообщениеОтНеобновленнойНастройки(ЧтениеXML) Тогда СтрокаСообщенияОбОшибке = НСтр("ru = 'Получение данных от источника, в котором не выполнено - |обновление настройки синхронизации данных. Необходимо:'") - + Символы.ПС + НСтр("ru = '1) Выполнить повторную синхронизацию данных через некоторое время.'") - + Символы.ПС + НСтр("ru = '2) Выполнить синхронизацию данных на стороне источника, после этого - |повторно выполнить синхронизацию данных в этой информационной базе.'") - + Символы.ПС + НСтр("ru = '(1 - для вида транспорта Через интернет, 2 - для вида транспорта Другое)'"); + |обновление настройки синхронизации данных. Необходимо: + |1) Для вида транспорта Интернет: + | - выполнить повторную синхронизацию данных через некоторое время; + |2) Для других видов транспорта: + | - выполнить синхронизацию данных на стороне источника, + | после этого повторно выполнить синхронизацию данных в этой информационной базе.'"); ЗаписатьВПротоколВыполнения(КомпонентыОбмена, СтрокаСообщенияОбОшибке); Иначе ЗаписатьВПротоколВыполнения(КомпонентыОбмена, 9); @@ -2179,15 +2207,10 @@ ПодтверждениеXDTO = ЗаголовокСообщенияXDTO.Confirmation; - Если КомпонентыОбмена.ОбменДаннымиСВнешнейСистемой Тогда - ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(КомпонентыОбмена.УзелКорреспондента); - Иначе - ИмяПланаОбмена = ТранслироватьИмя(ПодтверждениеXDTO.ExchangePlan, "en"); - - Если Метаданные.ПланыОбмена.Найти(ИмяПланаОбмена) = Неопределено Тогда - ЗаписатьВПротоколВыполнения(КомпонентыОбмена, 177); - Прервать; - КонецЕсли; + ИмяПланаОбмена = НайтиИмяПланаОбменаЧерезУниверсальныйФормат(КомпонентыОбмена, ПодтверждениеXDTO); + Если Не ЗначениеЗаполнено(ИмяПланаОбмена) Тогда + ЗаписатьВПротоколВыполнения(КомпонентыОбмена, 177); + Прервать; КонецЕсли; ФорматПланаОбмена = ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена, "ФорматОбмена"); @@ -2423,14 +2446,14 @@ УстановитьПривилегированныйРежим(Истина); // Определение ссылки на объект через публичную ссылку. - ПубличнаяСсылка = НайтиСсылкуПоПубличномуИдентификатору(УИДОбъектаXDTO, КомпонентыОбмена.УзелКорреспондента, ТипЗначенияОбъектаИБ); + ПубличнаяСсылка = НайтиСсылкуПоПубличномуИдентификатору(УИДОбъектаXDTO, КомпонентыОбмена, ТипЗначенияОбъектаИБ); Если ПубличнаяСсылка <> Неопределено Тогда // Найден публичный идентификатор. Возврат ПубличнаяСсылка; КонецЕсли; // Поиск ссылки по исходному УИД. - СсылкаПоУИД = СсылкаПоУИД(ТипЗначенияОбъектаИБ, УИДОбъектаXDTO, КомпонентыОбмена.УзелКорреспондента); + СсылкаПоУИД = СсылкаПоУИД(ТипЗначенияОбъектаИБ, УИДОбъектаXDTO, КомпонентыОбмена); // Найдена ссылка по УИД или создана новая ссылка. Возврат СсылкаПоУИД; @@ -2450,6 +2473,8 @@ // Процедура ЗаписатьОбъектВИБ(КомпонентыОбмена, Объект, Тип, ЗаписатьОбъект = Ложь, Знач ОтправкаНазад = Ложь, УникальныйИдентификаторСтрокой = "") Экспорт + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + Если Не РазрешенаЗаписьОбъекта(Объект, КомпонентыОбмена) Тогда СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Попытка изменения неразделенных данных (%1: %2) в разделенном режиме.'"), @@ -2494,7 +2519,7 @@ ЗаписатьОбъект = Ложь; - ЗП = ЗаписьПротоколаОбмена(26, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗП = ЗаписьПротоколаОбмена(26, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗП.Объект = Объект; Если Тип <> Неопределено Тогда @@ -2507,6 +2532,11 @@ КонецПопытки; + Событие = "ЗаписатьОбъектВИБ." + Объект.Метаданные().ПолноеИмя(); + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, Событие, Объект, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПрикладное()); + КонецПроцедуры // Выполняет отложенное проведение загруженных документов после загрузки всех данных. @@ -2518,7 +2548,9 @@ ОбменДаннымиСервер.ВыполнитьОтложенноеПроведениеДокументов( КомпонентыОбмена.ДокументыДляОтложенногоПроведения, - КомпонентыОбмена.УзелКорреспондента); + КомпонентыОбмена.УзелКорреспондента, + , + КомпонентыОбмена); КонецПроцедуры @@ -2546,11 +2578,14 @@ // Параметры: // Объект - ДокументОбъект - документ для отмены проведения. // Отправитель - ПланОбменаСсылка - ссылка на узел плана обмена, который является отправителем данных. +// КомпонентыОбмена - см. ИнициализироватьКомпонентыОбмена // // Возвращаемое значение: // Булево - признак успешной отмены проведения. // -Функция ОтменитьПроведениеОбъектаВИБ(Объект, Отправитель) Экспорт +Функция ОтменитьПроведениеОбъектаВИБ(Объект, Отправитель, КомпонентыОбмена = Неопределено) Экспорт + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьУстранениеПроблемы(Объект, Перечисления.ТипыПроблемОбменаДанными.НепроведенныйДокумент); @@ -2601,6 +2636,13 @@ ОтменитьТранзакцию(); КонецПопытки; + Если КомпонентыОбмена <> Неопределено Тогда + Событие = "ОтменитьПроведениеОбъектаВИБ." + Объект.Метаданные().ПолноеИмя(); + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, Событие, Объект, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияБиблиотека()); + КонецЕсли; + Возврат ПроведениеДокументаОтменено; КонецФункции @@ -2986,13 +3028,14 @@ Если Не ЗаголовокСообщенияXDTO.Установлено("Confirmation") Тогда Возврат Ложь; КонецЕсли; + КомпонентыОбмена = Новый Структура("ОбменДаннымиСВнешнейСистемой, УзелКорреспондента", Ложь, Неопределено); ПодтверждениеXDTO = ЗаголовокСообщенияXDTO.Confirmation; - ИмяПланаОбмена = ТранслироватьИмя(ПодтверждениеXDTO.ExchangePlan, "en"); - - Если Метаданные.ПланыОбмена.Найти(ИмяПланаОбмена) = Неопределено Тогда + ИмяПланаОбмена = НайтиИмяПланаОбменаЧерезУниверсальныйФормат(КомпонентыОбмена, ПодтверждениеXDTO); + Если Не ЗначениеЗаполнено(ИмяПланаОбмена) Тогда Возврат Ложь; КонецЕсли; + Возврат Истина; КонецФункции @@ -3677,92 +3720,7 @@ Или ПравилоКонвертации.ЭтоПланСчетов Или ПравилоКонвертации.ЭтоПланВидовРасчета; - Если ЗначениеЗаполнено(ПравилоКонвертации.ОбъектФормата) Тогда - КлючевыеСвойства = ПравилоКонвертации.ТипXDTO.Свойства.Получить(КлассКлючевыеСвойстваФормата()); - Если КлючевыеСвойства <> Неопределено Тогда - - ТипКлючевыхСвойствОбъектаXDTO = КлючевыеСвойства.Тип; - ПравилоКонвертации.ТипКлючевыхСвойствОбъектаXDTO = ТипКлючевыхСвойствОбъектаXDTO; - - СвойстваКлючевыхСвойств = Новый Массив; - ЗаполнитьСписокСвойствОбъектаXDTO(ТипКлючевыхСвойствОбъектаXDTO, СвойстваКлючевыхСвойств); - - ПКСДляДобавления = Новый Массив; - - ТаблицаПКС = ПравилоКонвертации.Свойства; - Для Каждого ПКС Из ТаблицаПКС Цикл - - СвойствоФормата = ТранслироватьИмя(ПКС.СвойствоФормата, "ru", ПравилоКонвертации.ТипXDTO); - - Если СвойстваКлючевыхСвойств.Найти(СвойствоФормата) <> Неопределено Тогда - ПКС.ОбработкаКлючевогоСвойства = Истина; - - Если ПравилоКонвертации.ТипXDTO.Свойства.Получить(СвойствоФормата) <> Неопределено Тогда - ПКСДляДобавления.Добавить(ПКС); - КонецЕсли; - КонецЕсли; - - КонецЦикла; - - Для Каждого ПКС Из ПКСДляДобавления Цикл - НовоеПКС = ТаблицаПКС.Добавить(); - ЗаполнитьЗначенияСвойств(НовоеПКС, ПКС, , "ОбработкаКлючевогоСвойства"); - КонецЦикла; - - СвойствоСсылкаXDTO = ТипКлючевыхСвойствОбъектаXDTO.Свойства.Получить(КлассСсылкаФормата()); - Если СвойствоСсылкаXDTO <> Неопределено Тогда - - ПравилоКонвертации.ТипСсылкиXDTO = СвойствоСсылкаXDTO.Тип; - - Если ПравилоКонвертации.ЭтоСсылочныйТип - И КомпонентыОбмена.НаправлениеОбмена = "Отправка" Тогда - ПКСДляСсылки = ТаблицаПКС.Добавить(); - ПКСДляСсылки.СвойствоКонфигурации = КлассСсылка(); - ПКСДляСсылки.СвойствоФормата = КлассСсылка(); - ПКСДляСсылки.ОбработкаКлючевогоСвойства = Истина; - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - - Если ЭтоБазоваяСхема И ЕстьРасширения Тогда - Для Каждого Расширение Из ПравилоКонвертации.Расширения Цикл - КлючевыеСвойства = Расширение.Значение.ТипXDTO.Свойства.Получить(КлассКлючевыеСвойстваФормата()); - - Если КлючевыеСвойства <> Неопределено Тогда - - ТипКлючевыхСвойствОбъектаXDTO = КлючевыеСвойства.Тип; - Расширение.Значение.ТипКлючевыхСвойствОбъектаXDTO = ТипКлючевыхСвойствОбъектаXDTO; - - СвойстваКлючевыхСвойств = Новый Массив; - ЗаполнитьСписокСвойствОбъектаXDTO(ТипКлючевыхСвойствОбъектаXDTO, СвойстваКлючевыхСвойств); - - ПКСДляДобавления = Новый Массив; - - ТаблицаПКС = ПравилоКонвертации.Свойства; - Для Каждого ПКС Из ТаблицаПКС Цикл - - Если СвойстваКлючевыхСвойств.Найти(ПКС.СвойствоФормата) <> Неопределено Тогда - ПКС.ОбработкаКлючевогоСвойства = Истина; - - Если ПравилоКонвертации.ТипXDTO.Свойства.Получить(ПКС.СвойствоФормата) <> Неопределено Тогда - ПКСДляДобавления.Добавить(ПКС); - КонецЕсли; - КонецЕсли; - - КонецЦикла; - - Для Каждого ПКС Из ПКСДляДобавления Цикл - НовоеПКС = ТаблицаПКС.Добавить(); - ЗаполнитьЗначенияСвойств(НовоеПКС, ПКС, , "ОбработкаКлючевогоСвойства"); - КонецЦикла; - - КонецЕсли; - КонецЦикла; - КонецЕсли; - - КонецЕсли; + ОтметитьКлючевыеСвойстваПравилаКонвертации(КомпонентыОбмена, ПравилоКонвертации); Если ПравилоКонвертации.ВариантИдентификации = "ПоПолямПоиска" Или ПравилоКонвертации.ВариантИдентификации = "СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска" Тогда @@ -3987,6 +3945,68 @@ КонецПроцедуры // АПК:299-вкл +Процедура ОтметитьКлючевыеСвойстваПравилаКонвертации(КомпонентыОбмена, ПравилоКонвертации) + + Если НЕ ЗначениеЗаполнено(ПравилоКонвертации.ОбъектФормата) Тогда + + Возврат; + + КонецЕсли; + + КлючевыеСвойства = ПравилоКонвертации.ТипXDTO.Свойства.Получить(КлассКлючевыеСвойстваФормата()); + Если КлючевыеСвойства = Неопределено Тогда + + Возврат; + + КонецЕсли; + + ТипКлючевыхСвойствОбъектаXDTO = КлючевыеСвойства.Тип; + ПравилоКонвертации.ТипКлючевыхСвойствОбъектаXDTO = ТипКлючевыхСвойствОбъектаXDTO; + + МассивКлючевыхСвойств = Новый Массив; + ЗаполнитьСписокСвойствОбъектаXDTO(ТипКлючевыхСвойствОбъектаXDTO, МассивКлючевыхСвойств); + ДополнитьКлючевыеСвойстваПакетаИзРасширений(ПравилоКонвертации, ТипКлючевыхСвойствОбъектаXDTO, МассивКлючевыхСвойств); + + ПКСДляДобавления = Новый Массив; + + ТаблицаПКС = ПравилоКонвертации.Свойства; + Для Каждого ПКС Из ТаблицаПКС Цикл + + СвойствоФормата = ТранслироватьИмя(ПКС.СвойствоФормата, "ru", ПравилоКонвертации.ТипXDTO); + + Если МассивКлючевыхСвойств.Найти(СвойствоФормата) <> Неопределено Тогда + ПКС.ОбработкаКлючевогоСвойства = Истина; + + Если ПравилоКонвертации.ТипXDTO.Свойства.Получить(СвойствоФормата) <> Неопределено Тогда + ПКСДляДобавления.Добавить(ПКС); + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Для Каждого ПКС Из ПКСДляДобавления Цикл + НовоеПКС = ТаблицаПКС.Добавить(); + ЗаполнитьЗначенияСвойств(НовоеПКС, ПКС, , "ОбработкаКлючевогоСвойства"); + КонецЦикла; + + СвойствоСсылкаXDTO = ТипКлючевыхСвойствОбъектаXDTO.Свойства.Получить(КлассСсылкаФормата()); + Если СвойствоСсылкаXDTO <> Неопределено Тогда + + ПравилоКонвертации.ТипСсылкиXDTO = СвойствоСсылкаXDTO.Тип; + + Если ПравилоКонвертации.ЭтоСсылочныйТип + И КомпонентыОбмена.НаправлениеОбмена = "Отправка" Тогда + ПКСДляСсылки = ТаблицаПКС.Добавить(); + ПКСДляСсылки.СвойствоКонфигурации = КлассСсылка(); + ПКСДляСсылки.СвойствоФормата = КлассСсылка(); + ПКСДляСсылки.ОбработкаКлючевогоСвойства = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область ОтправкаДанных @@ -4044,22 +4064,16 @@ КонецПроцедуры Процедура ВыполнитьВыгрузкуЗарегистрированныхДанных(КомпонентыОбмена, НомерСообщения) - + УзелДляОбмена = КомпонентыОбмена.УзелКорреспондента; - - НачальнаяВыгрузкаДанных = ОбменДаннымиСервер.УстановленПризнакНачальнойВыгрузкиДанных(УзелДляОбмена); - - // Получаем выборку измененных данных. - ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелДляОбмена, НомерСообщения); - - КоличествоОбъектовКВыгрузке = 0; - Пока ВыборкаИзменений.Следующий() Цикл - КоличествоОбъектовКВыгрузке = КоличествоОбъектовКВыгрузке + 1; - КонецЦикла; - КомпонентыОбмена.Вставить("КоличествоОбъектовКВыгрузке", КоличествоОбъектовКВыгрузке); - УзелДляОбменаОбъект = УзелДляОбмена.ПолучитьОбъект(); + НачальнаяВыгрузкаДанных = ОбменДаннымиСервер.УстановленПризнакНачальнойВыгрузкиДанных(УзелДляОбмена); + КоличествоОбъектовКВыгрузке = 0; + ТаблицаИзменений = ЗаполнитьТаблицуИзменений(УзелДляОбмена, НомерСообщения, КоличествоОбъектовКВыгрузке); + + КомпонентыОбмена.Вставить("КоличествоОбъектовКВыгрузке", КоличествоОбъектовКВыгрузке); + // Алгоритм выгрузки данных в XML-файл: // 1. Получаем Данные из ИБ // 2. Отправляем информацию об удалении либо выгружаем данные. @@ -4067,54 +4081,180 @@ // 4. Конвертируем Данные в Структуру в обработчике ПриОтправкеДанных. // 5. Конвертируем Структуру в ОбъектXDTO. // 6. Записываем ОбъектXDTO в XML-файл. - ВыборкаИзменений.Сбросить(); - Пока ВыборкаИзменений.Следующий() Цикл - Данные = ВыборкаИзменений.Получить(); + Для Каждого СтрокаИзменений Из ТаблицаИзменений Цикл - Попытка - Если ТипЗнч(Данные) = Тип("УдалениеОбъекта") Тогда - ВыгрузитьУдаление(КомпонентыОбмена, Данные.Ссылка); - Иначе - ОтправкаЭлемента = ОтправкаЭлементаДанных.Авто; - ОбменДаннымиСобытия.ПриОтправкеДанныхКорреспонденту(Данные, ОтправкаЭлемента, НачальнаяВыгрузкаДанных, УзелДляОбменаОбъект, Ложь); + ПараметрыПР = ОбменДаннымиСобытия.ПараметрыПакетнойРегистрации(); + ПараметрыПР.СозданиеНачальногоОбраза = НачальнаяВыгрузкаДанных; + + Если СтрокаИзменений.ЕстьПравилоПакетнойРегистрации Тогда + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + + ОбменДаннымиСобытия.ВыполнитьПакетнуюРегистрациюДляУзла(УзелДляОбмена, СтрокаИзменений.МассивДанных, ПараметрыПР); + + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, "ПакетнаяРегистрацияОбъектов", СтрокаИзменений.Тип, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПрикладное()); - // Удаление регистра отсылаем в виде пустого набора записей. - Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить - И ОбщегоНазначения.ЭтоРегистр(Данные.Метаданные()) Тогда - ОтправкаЭлемента = ОтправкаЭлементаДанных.Авто; - КонецЕсли; + КонецЕсли; - Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить Тогда + Для Каждого Данные Из СтрокаИзменений.МассивДанных Цикл + + Попытка + Если ТипЗнч(Данные) = Тип("УдалениеОбъекта") Тогда ВыгрузитьУдаление(КомпонентыОбмена, Данные.Ссылка); - ИначеЕсли ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда - // Ситуация, когда объект не соответствует условиям фильтра, но его не нужно отправлять как удаление. - // Возникает в случае первоначальной выгрузки данных. - Продолжить; Иначе - ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Данные); + + ЭтоСсылка = СтрокаИзменений.ЕстьПравилоПакетнойРегистрации; + + ОтправкаЭлемента = ОтправкаЭлементаДанных.Авто; + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + + Если СтрокаИзменений.ЕстьПравилоПакетнойРегистрации Тогда + + Если ПараметрыПР.ЕстьПРО_БезПакетнойРегистрации + И ПараметрыПР.СсылкиПоФильтруПакетнойРегистрации.Найти(Данные) = Неопределено Тогда + + ЭлементДанных = ?(ЭтоСсылка, Данные.ПолучитьОбъект(), Данные); + ЭлементДанных.ДополнительныеСвойства.Вставить("ПроверкаРегистрацииПередВыгрузкой"); + ОбменДаннымиСобытия.ПриОтправкеДанныхКорреспонденту(ЭлементДанных, ОтправкаЭлемента, + НачальнаяВыгрузкаДанных, УзелДляОбменаОбъект, Ложь); + + ИначеЕсли Не ПараметрыПР.ЕстьПРО_БезПакетнойРегистрации + И ПараметрыПР.СсылкиПоФильтруПакетнойРегистрации.Найти(Данные) = Неопределено Тогда + + Если НачальнаяВыгрузкаДанных Тогда + ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; + Иначе + ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить; + КонецЕсли; + + КонецЕсли; + + Иначе + + ЭлементДанных = ?(ЭтоСсылка, Данные.ПолучитьОбъект(), Данные); + ЭлементДанных.ДополнительныеСвойства.Вставить("ПроверкаРегистрацииПередВыгрузкой"); + ОбменДаннымиСобытия.ПриОтправкеДанныхКорреспонденту(ЭлементДанных, ОтправкаЭлемента, + НачальнаяВыгрузкаДанных, УзелДляОбменаОбъект, Ложь); + + КонецЕсли; + + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, "РегистрацияОбъектов", Данные, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияБиблиотека()); + + // Удаление регистра отсылаем в виде пустого набора записей. + Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить + И ОбщегоНазначения.ЭтоРегистр(Данные.Метаданные()) Тогда + ОтправкаЭлемента = ОтправкаЭлементаДанных.Авто; + КонецЕсли; + + Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить Тогда + ВыгрузитьУдаление(КомпонентыОбмена, Данные.Ссылка); + ИначеЕсли ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда + // Ситуация, когда объект не соответствует условиям фильтра, но его не нужно отправлять как удаление. + // Возникает в случае первоначальной выгрузки данных. + Продолжить; + Иначе + ЭлементДанных = ?(ЭтоСсылка, Данные.ПолучитьОбъект(), Данные); + ВыгрузкаОбъектаВыборки(КомпонентыОбмена, ЭлементДанных); + КонецЕсли; КонецЕсли; - КонецЕсли; - - КомпонентыОбмена.СчетчикВыгруженныхОбъектов = КомпонентыОбмена.СчетчикВыгруженныхОбъектов + 1; - ОбменДаннымиСервер.РассчитатьПроцентВыгрузки(КомпонентыОбмена.СчетчикВыгруженныхОбъектов, КомпонентыОбмена.КоличествоОбъектовКВыгрузке); - - Исключение - Инфо = ИнформацияОбОшибке(); - ПредставлениеДанных = ПредставлениеОбъектаДляПротокола(Данные); - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Событие: %1. - |Объект: %2. - | - |%3'"), - КомпонентыОбмена.НаправлениеОбмена, - ПредставлениеДанных, - ПодробноеПредставлениеОшибки(Инфо)); - КонецПопытки; + + КомпонентыОбмена.СчетчикВыгруженныхОбъектов = КомпонентыОбмена.СчетчикВыгруженныхОбъектов + 1; + ОбменДаннымиСервер.РассчитатьПроцентВыгрузки(КомпонентыОбмена.СчетчикВыгруженныхОбъектов, КомпонентыОбмена.КоличествоОбъектовКВыгрузке); + + Исключение + Инфо = ИнформацияОбОшибке(); + ПредставлениеДанных = ПредставлениеОбъектаДляПротокола(Данные); + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Событие: %1. + |Объект: %2. + | + |%3'"), + КомпонентыОбмена.НаправлениеОбмена, + ПредставлениеДанных, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(Инфо)); + КонецПопытки; + + КонецЦикла; + КонецЦикла; КонецПроцедуры +Функция ЗаполнитьТаблицуИзменений(УзелДляОбмена, НомерСообщения, КоличествоОбъектовКВыгрузке) + + ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелДляОбмена); + + // Получаем выборку измененных данных. + ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелДляОбмена, НомерСообщения); + + ТаблицаИзменений = Новый ТаблицаЗначений; + ТаблицаИзменений.Колонки.Добавить("Тип"); + ТаблицаИзменений.Колонки.Добавить("МассивДанных", Новый ОписаниеТипов("Массив")); + ТаблицаИзменений.Колонки.Добавить("ЕстьПравилоПакетнойРегистрации", Новый ОписаниеТипов("Булево")); + + Пока ВыборкаИзменений.Следующий() Цикл + + КоличествоОбъектовКВыгрузке = КоличествоОбъектовКВыгрузке + 1; + + Данные = ВыборкаИзменений.Получить(); + Тип = ТипЗнч(Данные); + СтрокаИзменений = ТаблицаИзменений.Найти(Тип, "Тип"); + + Если СтрокаИзменений = Неопределено Тогда + + СтрокаИзменений = ТаблицаИзменений.Добавить(); + СтрокаИзменений.Тип = Тип; + СтрокаИзменений.ЕстьПравилоПакетнойРегистрации = ЕстьПравилоПакетнойРегистрации(Данные, УзелДляОбмена); + + КонецЕсли; + + Если СтрокаИзменений.ЕстьПравилоПакетнойРегистрации Тогда + СтрокаИзменений.МассивДанных.Добавить(Данные.Ссылка); + Иначе + СтрокаИзменений.МассивДанных.Добавить(Данные); + КонецЕсли; + + КонецЦикла; + + Возврат ТаблицаИзменений; + +КонецФункции + +Функция ЕстьПравилоПакетнойРегистрации(Данные, Узел) + + Тип = ТипЗнч(Данные); + + Если Тип = Тип("УдалениеОбъекта") Тогда + Возврат Ложь; + КонецЕсли; + + Результат = Ложь; + Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(Данные.Метаданные()) Тогда + + ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(Узел); + ПолноеИмяОбъекта = Данные.Метаданные().ПолноеИмя(); + + Правила = ОбменДаннымиСобытия.ПравилаРегистрацииОбъекта(ИмяПланаОбмена, ПолноеИмяОбъекта); + + Для Каждого ПРО Из Правила Цикл + Если ПРО.ПакетноеВыполнениеОбработчиков Тогда + Результат = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + КонецЕсли; + + Возврат Результат; + +КонецФункции + Процедура ВыгрузитьОбъектыПоСсылке(КомпонентыОбмена, СсылкиИзОбъекта) Если Не КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда @@ -4634,6 +4774,8 @@ ПараметрыЗаголовка.Вставить("УзелКорреспондента", Неопределено); + ПараметрыЗаголовка.Вставить("ОбменЧерезОбработкуВыгрузкаЗагрузкаED", Ложь); + Возврат ПараметрыЗаголовка; КонецФункции @@ -4708,7 +4850,9 @@ ЗаголовокСообщенияXDTO.Prefix = ПараметрыЗаголовка.Префикс; - ОбменДаннымиКонтрольЗацикливания.ВыгрузитьКонтурВСообщение(ЗаголовокСообщенияXDTO, ПараметрыЗаголовка.ИмяПланаОбмена); + Если Не ПараметрыЗаголовка.ОбменЧерезОбработкуВыгрузкаЗагрузкаED Тогда + ОбменДаннымиКонтрольЗацикливания.ВыгрузитьКонтурВСообщение(ЗаголовокСообщенияXDTO, ПараметрыЗаголовка.ИмяПланаОбмена); + КонецЕсли; КонецЕсли; @@ -4736,7 +4880,7 @@ ОбъектXDTO.Проверить(); Исключение Отказ = Истина; - ПодробноеПредставление = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПодробноеПредставление = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; Если Отказ Тогда @@ -4942,7 +5086,7 @@ КонецЕсли; КонецЕсли; Исключение - ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Ошибка чтения объекта XDTO, имя свойства: <%1>.'"), ИмяСвойства) + Символы.ПС + Символы.ПС + ПредставлениеОшибки; ВызватьИсключение ТекстОшибки; @@ -4992,7 +5136,7 @@ СтруктураXDTO.Вставить("Значение", Значение); Иначе СтруктураXDTO.Вставить("Значение", ЗначениеXDTO.Значение); - КонецЕсли;; + КонецЕсли; Возврат СтруктураXDTO; @@ -5143,6 +5287,8 @@ СтрокаТЧ = Значение.Добавить(); Для Каждого СвойствоСтрокиТЧ Из СтрокаXDTO.Свойства() Цикл + СтрокаТипСвойства = Неопределено; + ЭтоБазоваяСхема = ЭтоБазоваяСхема(КомпонентыОбмена, СвойствоСтрокиТЧ.URIПространстваИмен); Если ЭтоБазоваяСхема Тогда @@ -5150,14 +5296,7 @@ Иначе - РасширенноеСвойствоСтрокиТЧ = СтрокаТипЗначенияXDTO.Свойства.Получить(СвойствоСтрокиТЧ.Имя); - Если РасширенноеСвойствоСтрокиТЧ = Неопределено Тогда - - Продолжить; - - КонецЕсли; - - СтрокаТипСвойства = РасширенноеСвойствоСтрокиТЧ.Тип; + СтрокаТипСвойства = ТипВложенногоСвойстваПоИмениИзРасширенияФормата(КомпонентыОбмена, СтрокаТипЗначенияXDTO.Имя, СвойствоСтрокиТЧ.Имя); КонецЕсли; @@ -5415,7 +5554,7 @@ |%3.'"), КомпонентыОбмена.НаправлениеОбмена, ПредставлениеОбъектаДляПротокола(ПолученныеДанные), - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; КонецПопытки; @@ -5549,7 +5688,7 @@ КонецЕсли; Исключение - ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Ошибка конвертации свойства объекта XDTO, имя свойства: <%1>.'"), ПКС.СвойствоКонфигурации) + Символы.ПС + Символы.ПС + ПредставлениеОшибки; ВызватьИсключение ТекстОшибки; @@ -5557,7 +5696,9 @@ КонецПроцедуры -Функция СсылкаОбъектаПоСвойствамОбъектаXDTO(ПравилоКонвертации, ПолученныеДанные, ДанныеXDTOСодержатСсылку, УзелОбмена) +Функция СсылкаОбъектаПоСвойствамОбъектаXDTO(ПравилоКонвертации, ПолученныеДанные, ДанныеXDTOСодержатСсылку, КомпонентыОбмена, ОригинальныйУИДСтрокой = "") + + УзелОбмена = КомпонентыОбмена.УзелКорреспондента; Результат = Неопределено; // ПравилоКонвертации.ПоляПоискаОбъекта - массив, содержит разные варианты поиска @@ -5656,13 +5797,31 @@ УсловиеОтбора = СтрСоединить(Отбор, " И "); - Если АнализироватьПубличныеИдентификаторы Тогда + ИспользоватьКешПубличныхИдентификаторов = КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов; + Если АнализироватьПубличныеИдентификаторы И Не ИспользоватьКешПубличныхИдентификаторов Тогда + // Из поиска необходимо исключить уже сопоставленные ранее объекты. - ТекстСоединения = " ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК ПубличныеИдентификаторы - | ПО ПубличныеИдентификаторы.Ссылка = Таблица.Ссылка И ПубличныеИдентификаторы.УзелИнформационнойБазы = &УзелОбмена"; + Если НЕ ПустаяСтрока(ОригинальныйУИДСтрокой) Тогда + + ТекстСоединения = " ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК ПубличныеИдентификаторы + | ПО ПубличныеИдентификаторы.Ссылка = Таблица.Ссылка + | И ПубличныеИдентификаторы.УзелИнформационнойБазы = &УзелОбмена + | И ПубличныеИдентификаторы.Идентификатор <> &ОригинальныйУИДСтрокой"; + + Запрос.УстановитьПараметр("ОригинальныйУИДСтрокой", ОригинальныйУИДСтрокой); + + Иначе + + ТекстСоединения = " ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК ПубличныеИдентификаторы + | ПО ПубличныеИдентификаторы.Ссылка = Таблица.Ссылка + | И ПубличныеИдентификаторы.УзелИнформационнойБазы = &УзелОбмена"; + + КонецЕсли; + УсловиеОтбора = УсловиеОтбора + Символы.ПС + " И ПубличныеИдентификаторы.Ссылка is null"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ГДЕ", ТекстСоединения + Символы.ПС + " ГДЕ"); Запрос.УстановитьПараметр("УзелОбмена", УзелОбмена); + КонецЕсли; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеОтбора", УсловиеОтбора); @@ -5675,6 +5834,15 @@ Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); + + Если ИспользоватьКешПубличныхИдентификаторов Тогда + СтруктураЗаписи = Новый Структура("Ссылка", Выборка.Ссылка); + + Если АнализироватьПубличныеИдентификаторы + И ЗаписьЕстьВКешеПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена) Тогда + Продолжить; + КонецЕсли; + КонецЕсли; Результат = Выборка.Ссылка; @@ -5685,7 +5853,9 @@ Прервать; КонецЕсли; КонецЦикла; + Возврат Результат; + КонецФункции Процедура ЗаполнитьДанныеИБПоПолученнымДанным(ДанныеИБ, ПолученныеДанные, ПравилоКонвертации) @@ -5892,7 +6062,15 @@ ЗагруженныеОбъекты = КомпонентыОбмена.ЗагруженныеОбъекты; Попытка + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + КомпонентыОбмена.МенеджерОбмена.ПередОтложеннымЗаполнением(КомпонентыОбмена); + + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, "ПередОтложеннымЗаполнением", "",КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПравило()); + Исключение ШаблонОписанияОшибки = НСтр("ru = 'Направление: %1. @@ -5904,7 +6082,7 @@ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки, КомпонентыОбмена.НаправлениеОбмена, "ПередОтложеннымЗаполнением", - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; @@ -5916,6 +6094,8 @@ Продолжить; КонецЕсли; + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + СтроковоеПредставлениеОбъекта = ПредставлениеОбъектаДляПротокола(СтрокаТаблицы.Объект.Ссылка); НачатьТранзакцию(); @@ -5942,7 +6122,9 @@ Если СтруктураПараметров.ОбъектМодифицирован Тогда ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект, Истина, Ложь, КомпонентыОбмена.УзелКорреспондента); Объект.ДополнительныеСвойства.Вставить("ПропуститьЗаписьВерсииОбъекта"); + Объект.Записать(); + КонецЕсли; ЗафиксироватьТранзакцию(); @@ -5960,11 +6142,16 @@ КомпонентыОбмена.НаправлениеОбмена, "ОтложенноеЗаполнениеОбъектов", СтроковоеПредставлениеОбъекта, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ВызватьИсключение ТекстОшибки; + ВызватьИсключение ТекстОшибки; КонецПопытки; + Событие = "ОтложенноеЗаполнениеОбъектов." + СтрокаТаблицы.Объект.Метаданные().ПолноеИмя(); + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, Событие, Объект, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПравило()); + КонецЦикла; КонецПроцедуры @@ -6111,7 +6298,7 @@ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки, КомпонентыОбмена.НаправлениеОбмена, "ПередКонвертацией", - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; @@ -6158,6 +6345,8 @@ Продолжить; КонецЕсли; + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + // Конвертируем ОбъектXDTO в Структуру. ДанныеXDTO = ОбъектXDTOВСтруктуру(ОбъектXDTO, КомпонентыОбмена); @@ -6166,6 +6355,11 @@ ИспользованиеПКО.Вставить(ИмяПКО, Истина); КонецЦикла; + Событие = "ОбъектXDTOВСтруктуру." + ОбъектXDTO.Тип().Имя; + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала,Событие, ДанныеXDTO, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияБиблиотека()); + ПрерватьОбработку = Ложь; ПриОбработкеПОД( @@ -6393,7 +6587,9 @@ Возврат Результат; КонецФункции -Функция СсылкаПоУИД(ТипЗначенияОбъектаИБ, УИДОбъектаXDTO, УзелОбмена) +Функция СсылкаПоУИД(ТипЗначенияОбъектаИБ, УИДОбъектаXDTO, КомпонентыОбмена) + + УзелОбмена = КомпонентыОбмена.УзелКорреспондента; МассивТипов = Новый Массив; МассивТипов.Добавить(ТипЗначенияОбъектаИБ); @@ -6412,9 +6608,20 @@ СтруктураЗаписи.Вставить("Ссылка", НайденнаяСсылка); СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелОбмена); - Если НЕ РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ЗаписьЕстьВРегистре(СтруктураЗаписи) Тогда + ИспользоватьКешПубличныхИдентификаторов = КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов; + + Если НЕ ИспользоватьКешПубличныхИдентификаторов + И НЕ РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ЗаписьЕстьВРегистре(СтруктураЗаписи) Тогда + Возврат НайденнаяСсылка; + + ИначеЕсли ИспользоватьКешПубличныхИдентификаторов + И Не ЗаписьЕстьВКешеПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена) Тогда + + Возврат НайденнаяСсылка; + КонецЕсли; + // Данному УИД уже сопоставлен другой объект. Нужно создавать ссылку с другим УИДом. НоваяСсылка = МенеджерОбъектаМетаданных.ПолучитьСсылку(); @@ -6422,36 +6629,54 @@ КонецФункции -Функция НайтиСсылкуПоПубличномуИдентификатору(УИДОбъектаXDTO, УзелКорреспондента, ТипЗначенияОбъектаИБ) +Функция НайтиСсылкуПоПубличномуИдентификатору(УИДОбъектаXDTO, КомпонентыОбмена, ТипЗначенияОбъектаИБ) + + УзелКорреспондента = КомпонентыОбмена.УзелКорреспондента; Если Не ЗначениеЗаполнено(УзелКорреспондента) Тогда Возврат Неопределено; КонецЕсли; - Запрос = Новый Запрос( - "ВЫБРАТЬ - | РПИ.Ссылка КАК Ссылка - |ИЗ - | РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК РПИ - |ГДЕ - | РПИ.УзелИнформационнойБазы = &УзелИнформационнойБазы - | И РПИ.Идентификатор = &Идентификатор"); - Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелКорреспондента); - Запрос.УстановитьПараметр("Идентификатор", УИДОбъектаXDTO); + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + + Если Не КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов Тогда + + Запрос = Новый Запрос( + "ВЫБРАТЬ + | РПИ.Ссылка КАК Ссылка + |ИЗ + | РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК РПИ + |ГДЕ + | РПИ.УзелИнформационнойБазы = &УзелИнформационнойБазы + | И РПИ.Идентификатор = &Идентификатор"); + + Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелКорреспондента); + Запрос.УстановитьПараметр("Идентификатор", УИДОбъектаXDTO); + + Результат = Запрос.Выполнить().Выгрузить(); + + Иначе + + КешПубличныхИдентификаторов = КомпонентыОбмена.КешПубличныхИдентификаторов; + + Отбор = Новый Структура("Идентификатор", УИДОбъектаXDTO); + Результат = КешПубличныхИдентификаторов.НайтиСтроки(Отбор); + + КонецЕсли; НайденнаяСсылка = Неопределено; НекорректныеСсылки = Новый Массив; УдалитьВсеЗаписи = Ложь; - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - Если ТипЗнч(Выборка.Ссылка) <> ТипЗначенияОбъектаИБ Тогда + Для Каждого Строка Из Результат Цикл + + Если ТипЗнч(Строка.Ссылка) <> ТипЗначенияОбъектаИБ Тогда Продолжить; КонецЕсли; Если НайденнаяСсылка = Неопределено Тогда - НайденнаяСсылка = Выборка.Ссылка; - ИначеЕсли ОбщегоНазначения.СсылкаСуществует(Выборка.Ссылка) Тогда + НайденнаяСсылка = Строка.Ссылка; + ИначеЕсли ОбщегоНазначения.СсылкаСуществует(Строка.Ссылка) Тогда Если ОбщегоНазначения.СсылкаСуществует(НайденнаяСсылка) Тогда УдалитьВсеЗаписи = Истина; НайденнаяСсылка = Неопределено; @@ -6460,14 +6685,19 @@ // Удаление битой ссылки. НекорректныеСсылки.Добавить(НайденнаяСсылка); - НайденнаяСсылка = Выборка.Ссылка; + НайденнаяСсылка = Строка.Ссылка; КонецЕсли; Иначе // Удаление битой ссылки. - НекорректныеСсылки.Добавить(Выборка.Ссылка); + НекорректныеСсылки.Добавить(Строка.Ссылка); КонецЕсли; + КонецЦикла; + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, "ПоискСсылок", "", КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияБиблиотека()); + Если НайденнаяСсылка <> Неопределено И НекорректныеСсылки.Количество() > 0 И Не ОбщегоНазначения.СсылкаСуществует(НайденнаяСсылка) Тогда @@ -6483,6 +6713,8 @@ РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.УдалитьЗапись(СтруктураЗаписи, Истина); + УдалитьЗаписьИзКешаПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена); + ИначеЕсли НекорректныеСсылки.Количество() > 0 Тогда СтруктураЗаписи = Новый Структура; @@ -6492,6 +6724,8 @@ Для Каждого Ссылка Из НекорректныеСсылки Цикл СтруктураЗаписи.Вставить("Ссылка", Ссылка); РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.УдалитьЗапись(СтруктураЗаписи, Истина); + + УдалитьЗаписьИзКешаПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена); КонецЦикла; КонецЕсли; @@ -6597,19 +6831,26 @@ КонецЕсли; Если КомпонентыОбмена.РежимЗагрузкиДанныхВИнформационнуюБазу Тогда + Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена И ОбменДаннымиСобытия.ЗагрузкаЗапрещена(Объект, КомпонентыОбмена.УзелКорреспондентаОбъект) Тогда - Продолжить; + + Продолжить; // Если изменение объекта ограничено датой запрета, то продолжим цикл + КонецЕсли; + МетаданныеОбъекта = Объект.Метаданные(); Если Метаданные.Документы.Содержит(МетаданныеОбъекта) Тогда Если Объект.Проведен Тогда - ЕстьРезультат = ОтменитьПроведениеОбъектаВИБ(Объект, КомпонентыОбмена.УзелКорреспондента); + + ЕстьРезультат = ОтменитьПроведениеОбъектаВИБ(Объект, + КомпонентыОбмена.УзелКорреспондента, КомпонентыОбмена); + Если Не ЕстьРезультат Тогда Продолжить; КонецЕсли; ИначеЕсли МетаданныеОбъекта.Проведение = ЗапретитьПроведениеДокумента Тогда - СделатьНеактивнымиДвиженияДокумента(Объект, КомпонентыОбмена.УзелКорреспондента); + СделатьНеактивнымиДвиженияДокумента(Объект, КомпонентыОбмена); КонецЕсли; КонецЕсли; ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект, Истина, Ложь, КомпонентыОбмена.УзелКорреспондента); @@ -6727,10 +6968,12 @@ // Возвращаемое значение: // Булево - признак успешного снятия активности с движений. // -Функция СделатьНеактивнымиДвиженияДокумента(Объект, Отправитель) +Функция СделатьНеактивнымиДвиженияДокумента(Объект, КомпонентыОбмена) Попытка + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + Для Каждого Движение Из Объект.Движения Цикл Движение.Прочитать(); @@ -6748,12 +6991,17 @@ Если ЕстьИзменения Тогда Движение.Записывать = Истина; - ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Движение, Истина, Ложь, Отправитель); + ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Движение, Истина, Ложь, КомпонентыОбмена.УзелКорреспондента); Движение.Записать(); КонецЕсли; КонецЦикла; + Событие = "ОчисткаДвиженийДокумента." + Объект.Метаданные().ПолноеИмя(); + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, Событие, Объект, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПравило()); + Исключение Возврат Ложь; КонецПопытки; @@ -7028,7 +7276,7 @@ |Тип ссылки XDTO: %1 |Описание ошибки: %2'"), Строка(ТипСсылкиXDTO), - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецЕсли; @@ -7052,7 +7300,7 @@ |Тип объекта XDTO: %1 |Описание ошибки: %2'"), Строка(ТипОбъектаXDTO), - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецЕсли; @@ -7103,7 +7351,7 @@ |%3.'"), КомпонентыОбмена.НаправлениеОбмена, ПредставлениеОбъектаДляПротокола(Объект), - КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецПроцедуры @@ -7128,7 +7376,7 @@ Если Не ЗначениеЗаполнено(ПравилоОбработки.ПриОбработке) Тогда Возврат; КонецЕсли; - + МенеджерОбмена = КомпонентыОбмена.МенеджерОбмена; СтруктураПараметров = Новый Структура(); СтруктураПараметров.Вставить("ОбъектОбработки", ОбъектОбработки); @@ -7136,7 +7384,15 @@ СтруктураПараметров.Вставить("КомпонентыОбмена", КомпонентыОбмена); Попытка + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + МенеджерОбмена.ВыполнитьПроцедуруМодуляМенеджера(ПравилоОбработки.ПриОбработке, СтруктураПараметров); + + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, ПравилоОбработки.ПриОбработке, ОбъектОбработки, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПравило()); + Исключение Отказ = Истина; @@ -7194,7 +7450,7 @@ КомпонентыОбмена.НаправлениеОбмена, "ВыборкаДанных", ПравилоОбработки.Имя, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; @@ -7233,7 +7489,7 @@ // СтекВыгрузки - Массив - содержит ссылки на выгружаемые объекты с учетом вложенности. // Процедура ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, Знач ИмяОбработчика, КомпонентыОбмена, СтекВыгрузки) - + МенеджерОбмена = КомпонентыОбмена.МенеджерОбмена; СтруктураПараметров = Новый Структура(); СтруктураПараметров.Вставить("ДанныеИБ", ДанныеИБ); @@ -7242,7 +7498,15 @@ СтруктураПараметров.Вставить("СтекВыгрузки", СтекВыгрузки); Попытка + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + МенеджерОбмена.ВыполнитьПроцедуруМодуляМенеджера(ИмяОбработчика, СтруктураПараметров); + + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, ИмяОбработчика, ДанныеИБ, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПравило()); + Исключение ШаблонОписанияОшибки = НСтр("ru = 'Событие: %1. @@ -7256,7 +7520,7 @@ КомпонентыОбмена.НаправлениеОбмена, "ПриОтправкеДанных", ПредставлениеОбъектаДляПротокола(ДанныеИБ), - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; @@ -7285,7 +7549,15 @@ СтруктураПараметров.Вставить("КомпонентыОбмена", КомпонентыОбмена); Попытка + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + МенеджерОбмена.ВыполнитьПроцедуруМодуляМенеджера(ИмяОбработчика, СтруктураПараметров); + + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, ИмяОбработчика, ПолученныеДанные, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПравило()); + Исключение ШаблонОписанияОшибки = НСтр("ru = 'Событие: %1. @@ -7299,7 +7571,7 @@ КомпонентыОбмена.НаправлениеОбмена, "ПриКонвертацииДанныхXDTO", ПредставлениеОбъектаДляПротокола(ПолученныеДанные), - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; @@ -7324,7 +7596,7 @@ // ДанныеИБ. // Процедура ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КомпонентыОбмена, ИмяОбработчика, КонвертацияСвойств) - + МенеджерОбмена = КомпонентыОбмена.МенеджерОбмена; СтруктураПараметров = Новый Структура(); СтруктураПараметров.Вставить("ДанныеИБ", ДанныеИБ); @@ -7333,7 +7605,15 @@ СтруктураПараметров.Вставить("КонвертацияСвойств", КонвертацияСвойств); Попытка + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + МенеджерОбмена.ВыполнитьПроцедуруМодуляМенеджера(ИмяОбработчика, СтруктураПараметров); + + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, ИмяОбработчика, ДанныеИБ, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПравило()); + Исключение ШаблонОписанияОшибки = НСтр("ru = 'Событие: %1. @@ -7347,7 +7627,7 @@ КомпонентыОбмена.НаправлениеОбмена, "ПередЗаписьюПолученныхДанных", ПредставлениеОбъектаДляПротокола(?(ДанныеИБ <> Неопределено, ДанныеИБ, ПолученныеДанные)), - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; @@ -7383,7 +7663,7 @@ КомпонентыОбмена.НаправлениеОбмена, "АлгоритмПоиска", ПредставлениеОбъектаДляПротокола(?(ДанныеИБ <> Неопределено, ДанныеИБ, ПолученныеДанные)), - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; @@ -7608,7 +7888,7 @@ "ПриОбработкеПОД", ИмяПОД, ПредставлениеОбъекта, - КраткоеПредставлениеОшибки(Информация)); + ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация)); Результат.ПодробноеПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ШаблонОписанияОшибки, @@ -7616,7 +7896,7 @@ "ПриОбработкеПОД", ИмяПОД, ПредставлениеОбъекта, - ПодробноеПредставлениеОшибки(Информация)); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); Возврат Результат; @@ -7639,7 +7919,7 @@ ИмяПОД, ИмяПКО, ПредставлениеОбъекта, - КраткоеПредставлениеОшибки(Информация)); + ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация)); Результат.ПодробноеПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ШаблонОписанияОшибки, @@ -7647,7 +7927,7 @@ ИмяПОД, ИмяПКО, ПредставлениеОбъекта, - ПодробноеПредставлениеОшибки(Информация)); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); Возврат Результат; @@ -7986,126 +8266,14 @@ КонецФункции -Функция ДоступныеРасширенияФормата(ВерсияФорматаОбмена) Экспорт - - Результат = Новый Соответствие; - КоллекцияРасширений = Новый Соответствие; - - ОбменДаннымиПереопределяемый.ПриПолученииДоступныхРасширенийФормата(КоллекцияРасширений); - - СчетчикРасширений = 1; - Для Каждого КлючЗначение Из КоллекцияРасширений Цикл - - Если ВерсияФорматаОбмена <> КлючЗначение.Значение Тогда - - Продолжить; - - КонецЕсли; - - Результат.Вставить(КлючЗначение.Ключ, СтрШаблон("ext%1", XMLСтрока(СчетчикРасширений))); - СчетчикРасширений = СчетчикРасширений + 1; - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -Процедура ДополнитьСвойстваПакетаИзРасширений(СвойстваИсточника, КомпонентыОбмена, Расширения) - - Если Расширения = Неопределено Тогда - - Возврат; - - КонецЕсли; - - // КомпонентыОбмена.РасширенияФормата - расширения доступные в текущем формате обмена; - // Расширения - расширения инициализированное в правиле обмена. - Для Каждого Расширение Из Расширения Цикл - - Если КомпонентыОбмена.РасширенияФормата.Получить(Расширение.Ключ) = Неопределено Тогда - - Продолжить; - - КонецЕсли; - - РасширенныйТипXDTO = Неопределено; - НужныеСвойстваОтсутствуют = Истина; - Если Расширение.Значение.Свойство("ТипXDTO", РасширенныйТипXDTO) Тогда - - НужныеСвойстваОтсутствуют = Ложь; - - ИначеЕсли Расширение.Значение.Свойство("ТипСоставногоСвойства", РасширенныйТипXDTO) Тогда - - НужныеСвойстваОтсутствуют = Ложь; - - КонецЕсли; - - Если НужныеСвойстваОтсутствуют - ИЛИ РасширенныйТипXDTO = Неопределено Тогда - - Продолжить; - - КонецЕсли; - - Для Каждого Свойство Из РасширенныйТипXDTO.Свойства Цикл - - Если Свойство.URIПространстваИмен <> Расширение.Ключ Тогда - - Продолжить; - - КонецЕсли; - - СвойстваИсточника.Добавить(Свойство); - - КонецЦикла; - - КонецЦикла; - -КонецПроцедуры - -Процедура ДополнитьТаблицуСвойствамиАктивныхРасширений(КомпонентыОбмена, ТипЗначенияXDTO, ЗначениеXDTO, Значение) - - Если НЕ ЭтоБазоваяСхема(КомпонентыОбмена, ТипЗначенияXDTO.URIПространстваИмен) - ИЛИ КомпонентыОбмена.РасширенияФормата.Количество() = 0 Тогда - - Возврат; - - КонецЕсли; - - - Для Каждого Расширение Из КомпонентыОбмена.РасширенияФормата Цикл - - РасширениеТипаЗначенияXDTO = ФабрикаXDTO.Тип(Расширение.Ключ, ТипЗначенияXDTO.Имя); - Если РасширениеТипаЗначенияXDTO = Неопределено Тогда - - Продолжить; - - КонецЕсли; - - Для Каждого КлючевоеСвойство Из ЗначениеXDTO.Свойства() Цикл - - ОписаниеСвойства = РасширениеТипаЗначенияXDTO.Свойства.Получить(КлючевоеСвойство.Имя); - Если ОписаниеСвойства = Неопределено Тогда - - Продолжить; - - КонецЕсли; - - КонвертацияСвойстваXDTOВЭлементСтруктуры(ЗначениеXDTO, КлючевоеСвойство, Значение, КомпонентыОбмена,,ОписаниеСвойства.Тип); - - КонецЦикла; - - КонецЦикла; - -КонецПроцедуры - Процедура ЗаписатьПриНеобходимостиПубличныйИдентификатор( ДанныеДляЗаписиВИБ, ПолученныеДанныеСсылка, УИДСтрокой, - УзелОбмена, - ПравилоКонвертации) + ПравилоКонвертации, + КомпонентыОбмена) + + УзелОбмена = КомпонентыОбмена.УзелКорреспондента; ВариантИдентификации = СокрЛП(ПравилоКонвертации.ВариантИдентификации); Если Не (ВариантИдентификации = "СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска" @@ -8117,17 +8285,30 @@ СтруктураЗаписи = Новый Структура; СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелОбмена); СтруктураЗаписи.Вставить("Ссылка", ?(ДанныеДляЗаписиВИБ = Неопределено, ПолученныеДанныеСсылка, ДанныеДляЗаписиВИБ.Ссылка)); + + ИспользоватьКешПубличныхИдентификаторов = КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов; - Если ДанныеДляЗаписиВИБ <> Неопределено + Если НЕ ИспользоватьКешПубличныхИдентификаторов + И ДанныеДляЗаписиВИБ <> Неопределено И РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ЗаписьЕстьВРегистре(СтруктураЗаписи) Тогда + Возврат; + + ИначеЕсли ИспользоватьКешПубличныхИдентификаторов + И ДанныеДляЗаписиВИБ <> Неопределено + И ЗаписьЕстьВКешеПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена) Тогда + + Возврат; + КонецЕсли; - + ПубличныйИдентификатор = ?(ЗначениеЗаполнено(УИДСтрокой), УИДСтрокой, ПолученныеДанныеСсылка.УникальныйИдентификатор()); СтруктураЗаписи.Вставить("Идентификатор", ПубличныйИдентификатор); - + РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ДобавитьЗапись(СтруктураЗаписи, Истина); + ДобавитьЗаписьВКешПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена); + КонецПроцедуры Процедура ДобавитьВыгруженныеОбъектыВРегистрПубличныеИдентификаторы(КомпонентыОбмена) @@ -8169,6 +8350,8 @@ СтруктураЗаписи.Вставить("Идентификатор", Выборка.Ссылка.УникальныйИдентификатор()); РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ДобавитьЗапись(СтруктураЗаписи, Истина); + ДобавитьЗаписьВКешПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена); + КонецЦикла; КонецЦикла; @@ -8313,6 +8496,25 @@ КонецПроцедуры +Функция НайтиИмяПланаОбменаЧерезУниверсальныйФормат(КомпонентыОбмена, ПодтверждениеXDTO) + + Если КомпонентыОбмена.ОбменДаннымиСВнешнейСистемой Тогда + Возврат ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(КомпонентыОбмена.УзелКорреспондента); + КонецЕсли; + + Если ЗначениеЗаполнено(КомпонентыОбмена.УзелКорреспондента) Тогда + + Возврат ОбменДаннымиСервер.НайтиИмяПланаОбменаЧерезУниверсальныйФормат(ПодтверждениеXDTO.ExchangePlan); + + Иначе + + ИмяПланаОбмена = ТранслироватьИмя(ПодтверждениеXDTO.ExchangePlan, "en"); + ИмяПланаОбмена = Метаданные.ПланыОбмена.Найти(ИмяПланаОбмена); + + КонецЕсли; + +КонецФункции + #КонецОбласти #Область ТрансляцияФормата @@ -8459,6 +8661,431 @@ КонецПроцедуры +#КонецОбласти + +#Область КешПубличныхИдентификаторов + +Процедура ЗаполнитьКешПубличныхИдентификаторов(КомпонентыОбмена, ИмяФайлаОбмена, ЧтениеXML) + + Если Не КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов Тогда + Возврат; + КонецЕсли; + + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + + ПостроительDOM = Новый ПостроительDOM; + ДокументDOM = ПостроительDOM.Прочитать(КомпонентыОбмена.ФайлОбмена); + + Разыменователь = Новый РазыменовательПространствИменDOM("ab", + "http://v8.1c.ru/edi/edi_stnd/EnterpriseData/" + КомпонентыОбмена.ВерсияФорматаОбмена); + Выражение = "//ab:Ссылка"; + + Результат = ДокументDOM.ВычислитьВыражениеXPath(Выражение, ДокументDOM, Разыменователь); + + КешСсылок = Новый ТаблицаЗначений; + КешСсылок.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(36))); + + Типы = Новый Массив(); + Типы.Добавить(ТипЗнч(КомпонентыОбмена.УзелКорреспондента)); + КешСсылок.Колонки.Добавить("УзелИнформационнойБазы", Новый ОписаниеТипов(Типы)); + + Пока Истина Цикл + + УзелПоля = Результат.ПолучитьСледующий(); + Если УзелПоля = Неопределено Тогда + Прервать; + КонецЕсли; + + НоваяСтрока = КешСсылок.Добавить(); + НоваяСтрока.Идентификатор = УзелПоля.ТекстовоеСодержимое; + НоваяСтрока.УзелИнформационнойБазы = КомпонентыОбмена.УзелКорреспондента; + + КонецЦикла; + + КешСсылок.Свернуть("Идентификатор, УзелИнформационнойБазы"); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | КешСсылок.Идентификатор КАК Идентификатор, + | КешСсылок.УзелИнформационнойБазы КАК УзелИнформационнойБазы + |ПОМЕСТИТЬ КешСсылок + |ИЗ + | &КешСсылок КАК КешСсылок + | + |ИНДЕКСИРОВАТЬ ПО + | Идентификатор, + | УзелИнформационнойБазы + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Идентификаторы.Идентификатор КАК Идентификатор, + | Идентификаторы.Ссылка КАК Ссылка + |ИЗ + | КешСсылок КАК КешСсылок + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК Идентификаторы + | ПО КешСсылок.Идентификатор = Идентификаторы.Идентификатор + | И КешСсылок.УзелИнформационнойБазы = Идентификаторы.УзелИнформационнойБазы"; + + Запрос.УстановитьПараметр("КешСсылок", КешСсылок); + + КешПубличныхИдентификаторов = Запрос.Выполнить().Выгрузить(); + КешПубличныхИдентификаторов.Индексы.Добавить("Идентификатор"); + КешПубличныхИдентификаторов.Индексы.Добавить("Ссылка"); + + КомпонентыОбмена.КешПубличныхИдентификаторов = КешПубличныхИдентификаторов ; + + ЧтениеXML = Новый ЧтениеXML; + ЧтениеXML.ОткрытьФайл(ИмяФайлаОбмена); + КомпонентыОбмена.Вставить("ФайлОбмена", ЧтениеXML); + + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, "ПоискСсылок", "", КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияБиблиотека()); + +КонецПроцедуры + +Процедура УдалитьЗаписьИзКешаПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена) + + Если НЕ КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов Тогда + Возврат; + КонецЕсли; + + СтруктураПоиска = Новый Структура(); + + Если СтруктураЗаписи.Свойство("Ссылка") Тогда + СтруктураПоиска.Вставить("Ссылка", СтруктураЗаписи.Ссылка); + КонецЕсли; + + Если СтруктураЗаписи.Свойство("Идентификатор") Тогда + СтруктураПоиска.Вставить("Идентификатор", СтруктураЗаписи.Идентификатор); + КонецЕсли; + + КешПубличныхИдентификаторов = КомпонентыОбмена.КешПубличныхИдентификаторов; + РезультатПоиска = КешПубличныхИдентификаторов.НайтиСтроки(СтруктураПоиска); + + Для Каждого Строка Из РезультатПоиска Цикл + КешПубличныхИдентификаторов.Удалить(Строка); + КонецЦикла; + +КонецПроцедуры + +Функция ЗаписьЕстьВКешеПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена) + + СтруктураПоиска = Новый Структура(); + + Если СтруктураЗаписи.Свойство("Ссылка") Тогда + СтруктураПоиска.Вставить("Ссылка", СтруктураЗаписи.Ссылка); + КонецЕсли; + + Если СтруктураЗаписи.Свойство("Идентификатор") Тогда + СтруктураПоиска.Вставить("Идентификатор", СтруктураЗаписи.Идентификатор); + КонецЕсли; + + РезультатПоиска = КомпонентыОбмена.КешПубличныхИдентификаторов.НайтиСтроки(СтруктураПоиска); + + Возврат РезультатПоиска.Количество() > 0; + +КонецФункции + +Процедура ДобавитьЗаписьВКешПубличныхИдентификаторов(СтруктураЗаписи, КомпонентыОбмена) + + Если Не КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов Тогда + Возврат; + КонецЕсли; + + НоваяСтрока = КомпонентыОбмена.КешПубличныхИдентификаторов.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураЗаписи); + +КонецПроцедуры + +#КонецОбласти + +#Область РасширенияФорматаEnterpriseData + +Функция ДоступныеРасширенияФормата(ВерсияФорматаОбмена) Экспорт + + Результат = Новый Соответствие; + КоллекцияРасширений = Новый Соответствие; + + ОбменДаннымиПереопределяемый.ПриПолученииДоступныхРасширенийФормата(КоллекцияРасширений); + + СчетчикРасширений = 1; + Для Каждого КлючЗначение Из КоллекцияРасширений Цикл + + Если ВерсияФорматаОбмена <> КлючЗначение.Значение Тогда + + Продолжить; + + КонецЕсли; + + Результат.Вставить(КлючЗначение.Ключ, СтрШаблон("ext%1", XMLСтрока(СчетчикРасширений))); + СчетчикРасширений = СчетчикРасширений + 1; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция ТипВложенногоСвойстваПоИмениИзРасширенияФормата(КомпонентыОбмена, ИмяБазовогоСвойства, ИмяРасширяемогоСвойства) + + РасширенноеСвойствоСтрокиТЧ = Неопределено; + Для каждого ОписаниеРасширения Из КомпонентыОбмена.РасширенияФормата Цикл + + ТипИзРасширения = ФабрикаXDTO.Тип(ОписаниеРасширения.Ключ, ИмяБазовогоСвойства); + Если ТипИзРасширения = Неопределено Тогда + + Продолжить; + + КонецЕсли; + + РасширенноеСвойствоСтрокиТЧ = ТипИзРасширения.Свойства.Получить(ИмяРасширяемогоСвойства); + Прервать; + + КонецЦикла; + + Если РасширенноеСвойствоСтрокиТЧ <> Неопределено Тогда + + Возврат РасширенноеСвойствоСтрокиТЧ.Тип; + + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +Функция УстановитьРасширениеСтрокиТабличнойЧасти(ВложенныеРасширения, ИмяТабличнойЧасти) + + Если ТипЗнч(ВложенныеРасширения) = Тип("Соответствие") Тогда + + РасширенияТабличныхЧастей = ВложенныеРасширения.Получить("РасширенияТабличныхЧастей"); + Если РасширенияТабличныхЧастей <> Неопределено Тогда + + Возврат РасширенияТабличныхЧастей.Получить(ИмяТабличнойЧасти); + + КонецЕсли; + + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +Функция УстановитьРасширениеКлючевыхСвойств(ВложенныеРасширения, ИмяКлючевогоСвойства) + + Если ТипЗнч(ВложенныеРасширения) = Тип("Соответствие") Тогда + + РасширенияКлючевыхСвойств = ВложенныеРасширения.Получить("РасширенияКлючевыхСвойств"); + Если РасширенияКлючевыхСвойств <> Неопределено Тогда + + Возврат РасширенияКлючевыхСвойств.Получить(ИмяКлючевогоСвойства); + + КонецЕсли; + + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +Процедура ДополнитьСвойстваПакетаИзРасширений(СвойстваИсточника, КомпонентыОбмена, Расширения, ВложенныеРасширения) + + Если Расширения = Неопределено Тогда + + Возврат; + + КонецЕсли; + + // КомпонентыОбмена.РасширенияФормата - расширения доступные в текущем формате обмена; + // Расширения - расширения инициализированное в правиле обмена. + Для Каждого Расширение Из Расширения Цикл + + Если КомпонентыОбмена.РасширенияФормата.Получить(Расширение.Ключ) = Неопределено Тогда + + Продолжить; + + КонецЕсли; + + РасширенныйТипXDTO = Неопределено; + НужныеСвойстваОтсутствуют = Истина; + Если Расширение.Значение.Свойство("ТипXDTO", РасширенныйТипXDTO) Тогда + + НужныеСвойстваОтсутствуют = Ложь; + + ИначеЕсли Расширение.Значение.Свойство("ТипСоставногоСвойства", РасширенныйТипXDTO) Тогда + + НужныеСвойстваОтсутствуют = Ложь; + + КонецЕсли; + + Если НужныеСвойстваОтсутствуют + ИЛИ РасширенныйТипXDTO = Неопределено Тогда + + Продолжить; + + КонецЕсли; + + Для Каждого Свойство Из РасширенныйТипXDTO.Свойства Цикл + + Если Свойство.URIПространстваИмен <> Расширение.Ключ Тогда + + Если ЭтоТаблицаОбъекта(Свойство) Тогда + + РасширенияТабличныхЧастейПоОсновнымРасширениям(Свойство, Расширение, ВложенныеРасширения["РасширенияТабличныхЧастей"]); + + ИначеЕсли Свойство.Имя = КлассКлючевыеСвойстваФормата() + Или СтрНайти(Свойство.Тип.Имя, КлассКлючевыеСвойстваФормата()) > 0 Тогда + + РасширенияКлючевыхСвойствПоОсновнымРасширениям(Свойство, Расширение, ВложенныеРасширения["РасширенияКлючевыхСвойств"]); + + КонецЕсли; + + Продолжить; + + КонецЕсли; + + СвойстваИсточника.Добавить(Свойство); + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +Процедура ДополнитьКлючевыеСвойстваПакетаИзРасширений(ПравилоКонвертации, ТипКлючевыхСвойствОбъектаXDTO, МассивКлючевыхСвойств) + + Если ПравилоКонвертации.Расширения.Количество() < 1 Тогда + + Возврат; + + КонецЕсли; + + Для Каждого Расширение Из ПравилоКонвертации.Расширения Цикл + + РасширенныйТипОбъектаXDTO = ФабрикаXDTO.Тип(Расширение.Ключ, ТипКлючевыхСвойствОбъектаXDTO.Имя); + Если РасширенныйТипОбъектаXDTO = Неопределено Тогда + + Продолжить; + + КонецЕсли; + + Для Каждого СвойствоИзРасширенияПакета Из РасширенныйТипОбъектаXDTO.Свойства Цикл + + Если Расширение.Ключ <> СвойствоИзРасширенияПакета.URIПространстваИмен + ИЛИ МассивКлючевыхСвойств.Найти(СвойствоИзРасширенияПакета.Имя) <> Неопределено Тогда + + Продолжить; + + КонецЕсли; + + Если ТипЗнч(СвойствоИзРасширенияПакета.Тип) = Тип("ТипОбъектаXDTO") + И СтрНачинаетсяС(СвойствоИзРасширенияПакета.Тип.Имя, КлассОбщиеСвойства()) Тогда + + ДополнитьКлючевыеСвойстваПакетаИзРасширений(ПравилоКонвертации, СвойствоИзРасширенияПакета.Тип, МассивКлючевыхСвойств); + + Иначе + + МассивКлючевыхСвойств.Добавить(СвойствоИзРасширенияПакета.Имя); + + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +Процедура ДополнитьТаблицуСвойствамиАктивныхРасширений(КомпонентыОбмена, ТипЗначенияXDTO, ЗначениеXDTO, Значение) + + Если НЕ ЭтоБазоваяСхема(КомпонентыОбмена, ТипЗначенияXDTO.URIПространстваИмен) + ИЛИ КомпонентыОбмена.РасширенияФормата.Количество() = 0 Тогда + + Возврат; + + КонецЕсли; + + + Для Каждого Расширение Из КомпонентыОбмена.РасширенияФормата Цикл + + РасширениеТипаЗначенияXDTO = ФабрикаXDTO.Тип(Расширение.Ключ, ТипЗначенияXDTO.Имя); + Если РасширениеТипаЗначенияXDTO = Неопределено Тогда + + Продолжить; + + КонецЕсли; + + Для Каждого КлючевоеСвойство Из ЗначениеXDTO.Свойства() Цикл + + ОписаниеСвойства = РасширениеТипаЗначенияXDTO.Свойства.Получить(КлючевоеСвойство.Имя); + Если ОписаниеСвойства = Неопределено Тогда + + Продолжить; + + КонецЕсли; + + КонвертацияСвойстваXDTOВЭлементСтруктуры(ЗначениеXDTO, КлючевоеСвойство, Значение, КомпонентыОбмена,,ОписаниеСвойства.Тип); + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +Процедура РасширенияКлючевыхСвойствПоОсновнымРасширениям(Свойство, Расширение, РасширенияКлючевыхСвойств) + + РасширенныеКлючевыеСвойстваТипXDTO = ФабрикаXDTO.Тип(Расширение.Ключ, Свойство.Тип.Имя); + Если РасширенныеКлючевыеСвойстваТипXDTO = Неопределено Тогда + + Возврат; + + КонецЕсли; + + Если РасширенияКлючевыхСвойств = Неопределено Тогда + + РасширенияКлючевыхСвойств = Новый Соответствие; + + КонецЕсли; + + СтруктураРасширенияПравилаКонвертацииОбъекта = Новый Структура; + СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипXDTO", РасширенныеКлючевыеСвойстваТипXDTO); + СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипКлючевыхСвойствОбъектаXDTO"); + СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипДанных"); + + ОписаниеРасширенияКлючевыхСвойств = Новый Соответствие; + ОписаниеРасширенияКлючевыхСвойств.Вставить(Расширение.Ключ, СтруктураРасширенияПравилаКонвертацииОбъекта); + + РасширенияКлючевыхСвойств.Вставить(Свойство.Тип.Имя, ОписаниеРасширенияКлючевыхСвойств); + +КонецПроцедуры + +Процедура РасширенияТабличныхЧастейПоОсновнымРасширениям(Свойство, Расширение, РасширенияТабличныхЧастей) + + РасширеннаяТабличнаяЧастьТипXDTO = ФабрикаXDTO.Тип(Расширение.Ключ, Свойство.Тип.Свойства[0].Тип.Имя); + Если РасширеннаяТабличнаяЧастьТипXDTO = Неопределено Тогда + + Возврат; + + КонецЕсли; + + Если РасширенияТабличныхЧастей = Неопределено Тогда + + РасширенияТабличныхЧастей = Новый Соответствие; + + КонецЕсли; + + СтруктураРасширенияПравилаКонвертацииОбъекта = Новый Структура; + СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипXDTO", РасширеннаяТабличнаяЧастьТипXDTO); + СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипКлючевыхСвойствОбъектаXDTO"); + СтруктураРасширенияПравилаКонвертацииОбъекта.Вставить("ТипДанных"); + + ОписаниеРасширенияТабличнойЧасти = Новый Соответствие; + ОписаниеРасширенияТабличнойЧасти.Вставить(Расширение.Ключ, СтруктураРасширенияПравилаКонвертацииОбъекта); + + РасширенияТабличныхЧастей.Вставить(Свойство.Имя, ОписаниеРасширенияТабличнойЧасти); + +КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl index 1daf5c752..5840aed96 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl @@ -60,7 +60,7 @@ ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.УстановитьПризнакИзмененияДанных",, "1"); Исключение ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; @@ -147,6 +147,10 @@ МассивВерсий.Добавить("2.4.5.1"); СтруктураПоддерживаемыхВерсий.Вставить("ОбменДаннымиВМоделиСервиса", МассивВерсий); + МассивВерсий = Новый Массив(); + МассивВерсий.Добавить("1.0.0.1"); + СтруктураПоддерживаемыхВерсий.Вставить("ОбновлениеПравилРегистрацииОбъектовВМоделиСервиса", МассивВерсий); + КонецПроцедуры // Получает список обработчиков сообщений, которые обрабатывают подсистемы библиотеки. @@ -208,28 +212,39 @@ МодульВыгрузкаЗагрузкаДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаДанных"); МодульВыгрузкаЗагрузкаДанных.ДополнитьТипомИсключаемымИзВыгрузкиЗагрузки(Типы, Метаданные.Справочники.СценарииОбменовДанными, МодульВыгрузкаЗагрузкаДанных.ДействиеСоСсылкамиНеВыгружатьОбъект()); + + МодульВыгрузкаЗагрузкаДанных.ДополнитьТипомИсключаемымИзВыгрузкиЗагрузки(Типы, + Метаданные.Справочники.СеансыОбменовДанными, МодульВыгрузкаЗагрузкаДанных.ДействиеСоСсылкамиНеВыгружатьОбъект()); + + МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса"); + ВерсияБТС = МодульТехнологияСервиса.ВерсияБиблиотеки(); - Типы.Добавить(Метаданные.РегистрыСведений.АрхивСообщенийОбменов); - Типы.Добавить(Метаданные.РегистрыСведений.ДанныеОбъектовДляРегистрацииВОбменах); - Типы.Добавить(Метаданные.РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация); - Типы.Добавить(Метаданные.РегистрыСведений.ИзмененияОбщихДанныхУзлов); - Типы.Добавить(Метаданные.РегистрыСведений.КонтурСинхронизации); - Типы.Добавить(Метаданные.РегистрыСведений.НастройкиАрхиваСообщенийОбменов); - Типы.Добавить(Метаданные.РегистрыСведений.НастройкиОбменаДаннымиXDTO); + Типы.Добавить(Метаданные.РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз); Типы.Добавить(Метаданные.РегистрыСведений.НастройкиТранспортаОбменаДанными); Типы.Добавить(Метаданные.РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных); - Типы.Добавить(Метаданные.РегистрыСведений.ОбработчикиСобытийСинхронизацииДанных); - Типы.Добавить(Метаданные.РегистрыСведений.ОбъектыНезарегистрированныеПриЗацикливании); - Типы.Добавить(Метаданные.РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз); - Типы.Добавить(Метаданные.РегистрыСведений.ПсевдонимыПредопределенныхУзлов); - Типы.Добавить(Метаданные.РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов); - Типы.Добавить(Метаданные.РегистрыСведений.РезультатыОбменаДанными); - Типы.Добавить(Метаданные.РегистрыСведений.СессииОбменаСообщениямиСистемы); Типы.Добавить(Метаданные.РегистрыСведений.СообщенияОбменаДаннымиОбластейДанных); - Типы.Добавить(Метаданные.РегистрыСведений.СоответствияОбъектовИнформационныхБаз); + Типы.Добавить(Метаданные.РегистрыСведений.УдалитьРезультатыОбменаДанными); Типы.Добавить(Метаданные.РегистрыСведений.СостоянияОбменовДаннымиОбластейДанных); Типы.Добавить(Метаданные.РегистрыСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных); - Типы.Добавить(Метаданные.РегистрыСведений.УдалитьРезультатыОбменаДанными); + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБТС, "2.0.9.0") < 0 Тогда + + Типы.Добавить(Метаданные.РегистрыСведений.АрхивСообщенийОбменов); + Типы.Добавить(Метаданные.РегистрыСведений.ДанныеОбъектовДляРегистрацииВОбменах); + Типы.Добавить(Метаданные.РегистрыСведений.ЗадачиОбменаДаннымиВнутренняяПубликация); + Типы.Добавить(Метаданные.РегистрыСведений.ИзмененияОбщихДанныхУзлов); + Типы.Добавить(Метаданные.РегистрыСведений.КонтурСинхронизации); + Типы.Добавить(Метаданные.РегистрыСведений.НастройкиАрхиваСообщенийОбменов); + Типы.Добавить(Метаданные.РегистрыСведений.НастройкиОбменаДаннымиXDTO); + Типы.Добавить(Метаданные.РегистрыСведений.ОбработчикиСобытийСинхронизацииДанных); + Типы.Добавить(Метаданные.РегистрыСведений.ОбъектыНезарегистрированныеПриЗацикливании); + Типы.Добавить(Метаданные.РегистрыСведений.ПсевдонимыПредопределенныхУзлов); + Типы.Добавить(Метаданные.РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов); + Типы.Добавить(Метаданные.РегистрыСведений.РезультатыОбменаДанными); + Типы.Добавить(Метаданные.РегистрыСведений.СессииОбменаСообщениямиСистемы); + Типы.Добавить(Метаданные.РегистрыСведений.СоответствияОбъектовИнформационныхБаз); + + КонецЕсли; КонецПроцедуры @@ -303,7 +318,7 @@ УдалитьФайлы(ФайлСообщения.ПолноеИмя); Исключение ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Продолжить; КонецПопытки; КонецЕсли; @@ -1170,7 +1185,7 @@ КонецЕсли; Исключение СтруктураРезультат.Отказ = Истина; - СтруктураРезультат.Информация = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СтруктураРезультат.Информация = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); СтруктураРезультат.ДатаЗавершения = ТекущаяДатаСеанса(); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСинхронизацииДанных(), @@ -1208,7 +1223,7 @@ КонецЕсли; Исключение СтруктураРезультат.Отказ = Истина; - СтруктураРезультат.Информация = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СтруктураРезультат.Информация = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); СтруктураРезультат.ДатаЗавершения = ТекущаяДатаСеанса(); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСинхронизацииДанных(), @@ -1257,7 +1272,7 @@ УзелИнформационнойБазы = НайтиУзелИнформационнойБазы(СтрокаСценария.ИмяПланаОбмена, СтрокаСценария.КодУзлаИнформационнойБазы); Исключение СтруктураРезультат.Отказ = Истина; - СтруктураРезультат.Информация = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СтруктураРезультат.Информация = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСинхронизацииДанных(), УровеньЖурналаРегистрации.Ошибка, , , ОписаниеВыполняемогоДействияЖР + Символы.ПС + СтруктураРезультат.Информация); @@ -1286,7 +1301,7 @@ КонецЕсли; Исключение СтруктураРезультат.Отказ = Истина; - СтруктураРезультат.Информация = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СтруктураРезультат.Информация = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСинхронизацииДанных(), УровеньЖурналаРегистрации.Ошибка, , , ОписаниеВыполняемогоДействияЖР + Символы.ПС + СтруктураРезультат.Информация); @@ -1317,7 +1332,7 @@ КонецЕсли; Исключение СтруктураРезультат.Отказ = Истина; - СтруктураРезультат.Информация = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СтруктураРезультат.Информация = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); СтруктураРезультат.ДатаЗавершения = ТекущаяДатаСеанса(); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСинхронизацииДанных(), @@ -1362,7 +1377,7 @@ УдалитьФайлы(АбсолютныйКаталог.ПолноеИмя); Исключение ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; @@ -1387,7 +1402,7 @@ Исключение ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; @@ -1423,7 +1438,7 @@ Исключение ОтменитьТранзакцию(); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецПроцедуры @@ -1443,6 +1458,11 @@ Обработчик.КодОбработчика = ИдентификаторВидаПоставляемыхДанных(); Обработчик.Обработчик = ОбменДаннымиВМоделиСервиса; + Обработчик = Обработчики.Добавить(); + Обработчик.ВидДанных = ИдентификаторВидаПоставляемыхДанныхПравилаРегистрации(); + Обработчик.КодОбработчика = ИдентификаторВидаПоставляемыхДанныхПравилаРегистрации(); + Обработчик.Обработчик = ОбменДаннымиВМоделиСервиса; + КонецПроцедуры // Вызывается при получении уведомления о новых данных. @@ -1455,7 +1475,8 @@ // Процедура ДоступныНовыеДанные(Знач Дескриптор, Загружать) Экспорт - Если Дескриптор.DataType = ИдентификаторВидаПоставляемыхДанных() Тогда + Если Дескриптор.DataType = ИдентификаторВидаПоставляемыхДанных() + Или Дескриптор.DataType = ИдентификаторВидаПоставляемыхДанныхПравилаРегистрации() Тогда ОписаниеПоставляемыхПравил = РазобратьДескрипторПоставляемыхДанных(Дескриптор); @@ -1494,8 +1515,11 @@ // Процедура ОбработатьНовыеДанные(Знач Дескриптор, Знач ПутьКФайлу) Экспорт - Если Дескриптор.DataType = ИдентификаторВидаПоставляемыхДанных() Тогда - ОбработатьПоставляемыеПравилаОбмена(Дескриптор, ПутьКФайлу); + Если Дескриптор.DataType = ИдентификаторВидаПоставляемыхДанных() + Или Дескриптор.DataType = ИдентификаторВидаПоставляемыхДанныхПравилаРегистрации() Тогда + + ОбработатьПоставляемыеПравилаОбмена(Дескриптор, ПутьКФайлу, Дескриптор.DataType); + КонецЕсли; КонецПроцедуры @@ -1517,6 +1541,17 @@ КонецФункции +// Возвращает идентификатор вида поставляемых данных для правил обмена данными +// +// Возвращаемое значение: +// Строка +// +Функция ИдентификаторВидаПоставляемыхДанныхПравилаРегистрации() + + Возврат "RR"; // Не локализуется + +КонецФункции + Функция ОписаниеПоставляемыхПравил() Возврат Новый Структура("ИмяКонфигурации, ВерсияКонфигурации, ИмяПланаОбмена, Использовать"); @@ -1537,17 +1572,30 @@ КонецФункции -Процедура ОбработатьПоставляемыеПравилаОбмена(Дескриптор, ПутьКФайлу) +Процедура ОбработатьПоставляемыеПравилаОбмена(Дескриптор, ПутьКФайлу, ВидДанных) УстановитьПривилегированныйРежим(Истина); // Прочитаем характеристики экземпляра поставляемых данных ОписаниеПоставляемыхПравил = РазобратьДескрипторПоставляемыхДанных(Дескриптор); + ИмяПланаОбмена = ОписаниеПоставляемыхПравил.ИмяПланаОбмена; - Если ОписаниеПоставляемыхПравил.Использовать Тогда - ОбменДаннымиСервер.ЗагрузитьПоставляемыеПравила(ОписаниеПоставляемыхПравил.ИмяПланаОбмена, ПутьКФайлу); + Если ВидДанных = ИдентификаторВидаПоставляемыхДанныхПравилаРегистрации() Тогда + + Если ОписаниеПоставляемыхПравил.Использовать Тогда + ОбменДаннымиСервер.ЗагрузитьПоставляемыеПравилаРегистрацииОбъектов(ИмяПланаОбмена, ПутьКФайлу); + Иначе + ОбменДаннымиСервер.УдалитьПоставляемыеПравилаРегистрацииОбъектов(ИмяПланаОбмена); + КонецЕсли; + Иначе - ОбменДаннымиСервер.УдалитьПоставляемыеПравила(ОписаниеПоставляемыхПравил.ИмяПланаОбмена); + + Если ОписаниеПоставляемыхПравил.Использовать Тогда + ОбменДаннымиСервер.ЗагрузитьПоставляемыеПравила(ИмяПланаОбмена, ПутьКФайлу); + Иначе + ОбменДаннымиСервер.УдалитьПоставляемыеПравила(ИмяПланаОбмена); + КонецЕсли; + КонецЕсли; ОбменДаннымиВызовСервера.СброситьКэшМеханизмаРегистрацииОбъектов(); @@ -1586,7 +1634,7 @@ WSПроксиСервиса.CommitExchange(СериализаторXDTO.ЗаписатьXDTO(СценарийОбменаДанными)); Исключение ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСинхронизацииДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение; КонецПопытки; @@ -2390,7 +2438,7 @@ | |ОБЪЕДИНИТЬ ВСЕ | - |//////////////////////////////////////////////////////// {ИмяПланаОбменаСиноним}" + |////////////////////////////////////////////////////////" + " |ВЫБРАТЬ @@ -2469,7 +2517,7 @@ КонецЕсли; ТекстЗапросаРезультат = " - |//////////////////////////////////////////////////////// {ПланыОбменаКонфигурации} + |//////////////////////////////////////////////////////// |ВЫБРАТЬ | | &ДополнительныеСвойстваПланаОбмена, diff --git a/SSL/src/CommonModules/ОбменДаннымиВебСервис/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВебСервис/Module.bsl index c30dd80a5..97d2e34c1 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВебСервис/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВебСервис/Module.bsl @@ -89,7 +89,8 @@ Отказ = Истина; Сообщение = НСтр("ru = 'При выгрузке данных возникли ошибки во второй информационной базе: %1'", ОбщегоНазначения.КодОсновногоЯзыка()); - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Сообщение, СтруктураНастроекОбмена, Истина); @@ -110,7 +111,8 @@ Отказ = Истина; Сообщение = НСтр("ru = 'Возникли ошибки при получении сообщения обмена из сервиса передачи файлов: %1'", ОбщегоНазначения.КодОсновногоЯзыка()); - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Сообщение, СтруктураНастроекОбмена, Истина); @@ -122,7 +124,8 @@ Исключение Отказ = Истина; Сообщение = НСтр("ru = 'При получении сообщения обмена возникли ошибки: %1'", ОбщегоНазначения.КодОсновногоЯзыка()); - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Сообщение, СтруктураНастроекОбмена, Истина); @@ -190,7 +193,8 @@ Отказ = Истина; Сообщение = НСтр("ru = 'Возникли ошибки при получении сообщения обмена из сервиса передачи файлов: %1'", ОбщегоНазначения.КодОсновногоЯзыка()); - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); СтруктураНастроекОбмена = Новый Структура("КлючСообщенияЖурналаРегистрации"); СтруктураНастроекОбмена.КлючСообщенияЖурналаРегистрации = ОбменДаннымиСервер.КлючСообщенияЖурналаРегистрации(УзелИнформационнойБазы, Перечисления.ДействияПриОбмене.ЗагрузкаДанных); @@ -205,7 +209,8 @@ Исключение Отказ = Истина; Сообщение = НСтр("ru = 'При получении сообщения обмена возникли ошибки: %1'", ОбщегоНазначения.КодОсновногоЯзыка()); - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); СтруктураНастроекОбмена = Новый Структура("КлючСообщенияЖурналаРегистрации"); СтруктураНастроекОбмена.КлючСообщенияЖурналаРегистрации = ОбменДаннымиСервер.КлючСообщенияЖурналаРегистрации(УзелИнформационнойБазы, Перечисления.ДействияПриОбмене.ЗагрузкаДанных); @@ -314,7 +319,8 @@ Исключение - ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); + ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными( + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),СтруктураНастроекОбмена, Истина); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; Отказ = Истина; @@ -384,7 +390,8 @@ Попытка ОбменДаннымиСервер.ЗаписатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, ФайлСообщенияОбмена); Исключение - ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); + ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными( + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; Отказ = Истина; КонецПопытки; @@ -773,8 +780,7 @@ ПсевдонимУзла = ОбменДаннымиСервер.ПсевдонимПредопределенногоУзла(СтруктураНастроек.УзелИнформационнойБазы); Если ЗначениеЗаполнено(ПсевдонимУзла) Тогда // Проверка настройки со старым идентификатором (префиксом). - СтруктураНастроекПредопределенного = Новый Структура; - СтруктураНастроекПредопределенного.Вставить("ИмяПланаОбмена", СтруктураНастроек.ИмяПланаОбмена); + СтруктураНастроекПредопределенного = ОбщегоНазначения.СкопироватьРекурсивно(СтруктураНастроек, Ложь); // Структура СтруктураНастроекПредопределенного.Вставить("ТекущийУзелПланаОбменаКод", ПсевдонимУзла); СостояниеНастройки = СостояниеНастройкиСинхронизацииВКорреспонденте(Прокси, ПараметрыПрокси, СтруктураНастроекПредопределенного); @@ -856,14 +862,16 @@ КонецПопытки; ДоступныеВерсии = Новый Соответствие; - Для Каждого Версия Из СтрРазделить("3.0.2.1;3.0.1.1;2.1.1.7;2.0.1.6", ";", Ложь) Цикл + Для Каждого Версия Из СтрРазделить("3.0.2.2;3.0.2.1;3.0.1.1;2.1.1.7;2.0.1.6", ";", Ложь) Цикл ДоступныеВерсии.Вставить(Версия, ВерсииКорреспондента.Найти(Версия) <> Неопределено И (ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Версия, МинимальнаяВерсия) >= 0)); КонецЦикла; ДоступныеВерсии.Вставить("0.0.0.0", ОбщегоНазначенияКлиентСервер.СравнитьВерсии("0.0.0.0", МинимальнаяВерсия) >= 0); - Если ДоступныеВерсии.Получить("3.0.2.1") = Истина Тогда + Если ДоступныеВерсии.Получить("3.0.2.2") = Истина Тогда + ТекущаяВерсия = "3.0.2.2"; + ИначеЕсли ДоступныеВерсии.Получить("3.0.2.1") = Истина Тогда ТекущаяВерсия = "3.0.2.1"; ИначеЕсли ДоступныеВерсии.Получить("3.0.1.1") = Истина Тогда ТекущаяВерсия = "3.0.1.1"; @@ -1059,7 +1067,7 @@ Если Версия3_0_2_1(ВерсияПрокси) Тогда Прокси.UploadData( - СтруктураНастроекОбмена.ИмяПланаОбмена, + СтруктураНастроекОбмена.ИмяПланаОбменаКорреспондента, СтруктураНастроекОбмена.ТекущийУзелПланаОбменаКод, ПараметрыОбмена.ИдентификаторФайла, ПараметрыОбмена.ДлительнаяОперация, @@ -1087,7 +1095,7 @@ Если Версия3_0_2_1(ВерсияПрокси) Тогда Прокси.DownloadData( - СтруктураНастроекОбмена.ИмяПланаОбмена, + СтруктураНастроекОбмена.ИмяПланаОбменаКорреспондента, СтруктураНастроекОбмена.ТекущийУзелПланаОбменаКод, ИдентификаторФайлаСтрокой, ПараметрыОбмена.ДлительнаяОперация, @@ -1110,11 +1118,22 @@ КонецПроцедуры // Соответствует операции GetIBParameters. -Функция ПолучитьПараметрыИБ(Прокси, ВерсияПрокси, ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, ОбластьДанных) Экспорт +Функция ПолучитьПараметрыИБ(Прокси, ВерсияПрокси, ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, + ОбластьДанных, ДополнительныеПараметры = Неопределено) Экспорт - Если Версия3_0_2_1(ВерсияПрокси) Тогда + Если Версия3_0_2_2(ВерсияПрокси) Тогда - Возврат Прокси.GetIBParameters(ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, ОбластьДанных); + Если ДополнительныеПараметры = Неопределено Тогда + ДополнительныеПараметры = Новый Структура; + КонецЕсли; + + ДополнительныеПараметрыXDTO = СериализаторXDTO.ЗаписатьXDTO(ДополнительныеПараметры); + + Возврат Прокси.GetIBParameters(ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, ОбластьДанных, ДополнительныеПараметрыXDTO); + + ИначеЕсли Версия3_0_2_1(ВерсияПрокси) Тогда + + Возврат Прокси.GetIBParameters(ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, ОбластьДанных); Иначе @@ -1146,7 +1165,7 @@ Если Версия3_0_2_1(ВерсияПрокси) Тогда - Прокси.PutMessageForDataMatching(СтруктураНастроекОбмена.ИмяПланаОбмена, + Прокси.PutMessageForDataMatching(СтруктураНастроекОбмена.ИмяПланаОбменаКорреспондента, СтруктураНастроекОбмена.ТекущийУзелПланаОбменаКод, ИдентификаторФайлаСтрокой, СтруктураНастроекОбмена.НастройкиТранспорта.WSОбластьДанныхКорреспондента); @@ -1167,7 +1186,7 @@ Если Версия3_0_2_1(ВерсияПрокси) Тогда - Прокси.RemoveExchangeNode(СтруктураНастроекОбмена.ИмяПланаОбмена, + Прокси.RemoveExchangeNode(СтруктураНастроекОбмена.ИмяПланаОбменаКорреспондента, СтруктураНастроекОбмена.ТекущийУзелПланаОбменаКод, СтруктураНастроекОбмена.НастройкиТранспорта.WSОбластьДанныхКорреспондента); @@ -1274,7 +1293,7 @@ Иначе - ВызватьИсключение СтрШаблон(НСтр("ru = 'Ошибка в базе-корреспонденте:%1 %2'"), Символы.ПС, СтрокаСообщенияОбОшибке);; + ВызватьИсключение СтрШаблон(НСтр("ru = 'Ошибка в базе-корреспонденте:%1 %2'"), Символы.ПС, СтрокаСообщенияОбОшибке); КонецЕсли; @@ -1288,6 +1307,13 @@ КонецФункции +Функция Версия3_0_2_2(ВерсияПрокси) + + Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияПрокси, "3.0.2.2") >= 0; + +КонецФункции + + // Соответствует операции PrepareGetFile Функция ПодготовитьФайлДляПолучения(Прокси, ВерсияПрокси, СтруктураНастроекОбмена, ИдентификаторФайла, РазмерЧасти, ИдентификаторСессии, КоличествоЧастей) @@ -1362,10 +1388,10 @@ Если Версия3_0_2_1(ВерсияПрокси) Тогда Возврат Прокси.TestConnection( - СтруктураНастроекОбмена.ИмяПланаОбмена, + СтруктураНастроекОбмена.ИмяПланаОбменаКорреспондента, СтруктураНастроекОбмена.ТекущийУзелПланаОбменаКод, СообщениеОбОшибке, - СтруктураНастроекОбмена.НастройкиТранспорта.WSОбластьДанныхКорреспондента); + СтруктураНастроекОбмена.НастройкиТранспорта.WSОбластьДанныхКорреспондента); Иначе @@ -1470,7 +1496,7 @@ И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ПараметрыПрокси.ТекущаяВерсия, "3.0.1.1") >= 0 Тогда ПараметрыПриемникаПрокси = ПолучитьПараметрыИБ(Прокси, ПараметрыПрокси.ТекущаяВерсия, - СтруктураНастроек.ИмяПланаОбмена, + СтруктураНастроек.ИмяПланаОбменаКорреспондента, СтруктураНастроек.ТекущийУзелПланаОбменаКод, СтрокаСообщенияОбОшибке, СтруктураНастроек.НастройкиТранспорта.WSОбластьДанныхКорреспондента); diff --git a/SSL/src/CommonModules/ОбменДаннымиВнешнееСоединение/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВнешнееСоединение/Module.bsl index 9e97c6b3b..be74f8f97 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВнешнееСоединение/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВнешнееСоединение/Module.bsl @@ -233,4 +233,14 @@ КонецФункции +// Для внутреннего использования. +// +Функция ПолучитьПараметрыИнформационнойБазы_3_0_2_2(Знач ИмяПланаОбмена, Знач КодУзла, СообщениеОбОшибке, + ДополнительныеПараметры = Неопределено) Экспорт + + Возврат ОбменДаннымиСервер.ПолучитьПараметрыИнформационнойБазы_3_0_2_2(ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, + ДополнительныеПараметры); + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl index 81b7f7528..1ef4e58ae 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВнутренняяПубликация/Module.bsl @@ -486,7 +486,7 @@ Исключение - ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ОтветныйВызов(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ИдентификаторЗадачи, ПредставлениеОшибки); УдалитьФайлы(ИмяФайлаСообщения); @@ -522,7 +522,7 @@ Исключение - ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ОтветныйВызов(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ИдентификаторЗадачи, ПредставлениеОшибки); УдалитьФайлы(ИмяФайлаСообщения); @@ -715,7 +715,7 @@ ОтменитьТранзакцию(); - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОтключениеСценария(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); @@ -798,7 +798,7 @@ Результат = Запрос.ВыполнитьПакет(); // Завершено с ошибкой - Выборка = Результат[1].Выбрать();; + Выборка = Результат[1].Выбрать(); Если Выборка.Следующий() Тогда Ошибка = Выборка.Ошибка; Возврат Истина; @@ -910,7 +910,7 @@ ЗаполнитьЗначенияСвойств(НоваяЗапись, Запись); Если ПерваяЗадача = Неопределено Тогда - ПерваяЗадача = ОбщегоНазначения.СкопироватьРекурсивно(Запись, Ложь);; + ПерваяЗадача = ОбщегоНазначения.СкопироватьРекурсивно(Запись, Ложь); КонецЕсли; НомерЗадачи = НомерЗадачи + 1; @@ -1080,7 +1080,7 @@ Исключение - Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Ошибка = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); Отказ = Истина; ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Ошибка, СтруктураНастроекОбмена, Истина); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; @@ -1106,7 +1106,7 @@ Исключение Отказ = Истина; - Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Ошибка = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Ошибка, СтруктураНастроекОбмена, Истина); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; @@ -1128,7 +1128,7 @@ КонецЕсли; Исключение ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецПроцедуры @@ -1148,7 +1148,7 @@ ОбменДаннымиСервер.ЗаписатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, ФайлСообщенияОбмена); Исключение Отказ = Истина; - Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Ошибка = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Ошибка, СтруктураНастроекОбмена, Истина); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; КонецПопытки; @@ -1174,13 +1174,13 @@ УдалитьФайлы(ВременныйКаталог); Исключение ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; Исключение Отказ = Истина; - Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Ошибка = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Ошибка, СтруктураНастроекОбмена, Истина); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; @@ -1205,7 +1205,7 @@ Исключение Отказ = Истина; - Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Ошибка = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Ошибка, СтруктураНастроекОбмена, Истина); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; @@ -1247,11 +1247,11 @@ Информация = ИнформацияОбОшибке(); Ошибка = НСтр("ru = 'Возникла проблема при добавлении данных к выгрузке:'") - + Символы.ПС + КраткоеПредставлениеОшибки(Информация) + + Символы.ПС + ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация) + Символы.ПС + НСтр("ru = 'Измените условия отбора.'"); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация)); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); КонецПопытки; diff --git a/SSL/src/CommonModules/ОбменДаннымиГлобальный/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиГлобальный/Module.bsl index 135855e5e..f610c2c4d 100644 --- a/SSL/src/CommonModules/ОбменДаннымиГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиГлобальный/Module.bsl @@ -12,6 +12,12 @@ // Процедура ПроверитьНеобходимостьОбновленияКонфигурацииПодчиненногоУзла() Экспорт +#Если МобильныйКлиент Тогда + Если ОсновнойСерверДоступен() = Ложь Тогда + Возврат; + КонецЕсли; +#КонецЕсли + ТребуетсяОбновление = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ТребуетсяОбновлениеКонфигурацииУзлаРИБ; ПроверитьНеобходимостьОбновления(ТребуетсяОбновление); @@ -21,6 +27,12 @@ // Процедура ПроверитьНеобходимостьОбновленияКонфигурацииПодчиненногоУзлаПриЗапуске() Экспорт +#Если МобильныйКлиент Тогда + Если ОсновнойСерверДоступен() = Ложь Тогда + Возврат; + КонецЕсли; +#КонецЕсли + ТребуетсяОбновление = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске().ТребуетсяОбновлениеКонфигурацииУзлаРИБ; ПроверитьНеобходимостьОбновления(ТребуетсяОбновление); diff --git a/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl index 4c6739903..ba38a8833 100644 --- a/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиКонтрольЗацикливания/Module.bsl @@ -29,7 +29,7 @@ НовыйУзел = Дерево.Строки.Добавить(); НовыйУзел.КодУзла = Node.Code; - НовыйУзел.ИмяУзла = Node.Name; + НовыйУзел.ИмяУзла = ПолучитьСтрокуИзДвоичныхДанных(ПолучитьДвоичныеДанныеИзBase64Строки(Node.Name)); НовыйУзел.ПоследнееОбновление = Node.LastUpdate; НовыйУзел.Префикс = Node.Prefix; @@ -37,7 +37,7 @@ НовыйКоррУзел = НовыйУзел.Строки.Добавить(); НовыйКоррУзел.КодУзлаКорреспондента = CorrNode.Code; - НовыйКоррУзел.ИмяУзлаКорреспондента = CorrNode.Name; + НовыйКоррУзел.ИмяУзлаКорреспондента = ПолучитьСтрокуИзДвоичныхДанных(ПолучитьДвоичныеДанныеИзBase64Строки(CorrNode.Name)); НовыйКоррУзел.Зацикливание = CorrNode.Looping; КонецЦикла; @@ -52,7 +52,7 @@ КонецЕсли; -КонецПроцедуры +КонецПроцедуры Процедура ВыгрузитьКонтурВСообщение(Header, ИмяПланаОбмена) Экспорт @@ -85,7 +85,7 @@ Узел = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(XMLБазоваяСхема(), "Node")); Узел.Code = ВыборкаПоУзлам.КодУзла; - Узел.Name = ВыборкаПоУзлам.ИмяУзла; + Узел.Name = ПолучитьBase64СтрокуИзДвоичныхДанных(ПолучитьДвоичныеДанныеИзСтроки(ВыборкаПоУзлам.ИмяУзла)); Узел.LastUpdate = ВыборкаПоУзлам.ПоследнееОбновление; Узел.Prefix = ВыборкаПоУзлам.Префикс; @@ -96,8 +96,8 @@ КоррУзел = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(XMLБазоваяСхема(), "CorrNode")); КоррУзел.Code = ВыборкаПоКоррУзлам.КодУзлаКорреспондента; - КоррУзел.Name = ВыборкаПоКоррУзлам.ИмяУзлаКорреспондента; - КоррУзел.Looping = ВыборкаПоКоррУзлам.Зацикливание; + КоррУзел.Name = ПолучитьBase64СтрокуИзДвоичныхДанных(ПолучитьДвоичныеДанныеИзСтроки(ВыборкаПоКоррУзлам.ИмяУзлаКорреспондента)); + КоррУзел.Looping = ВыборкаПоКоррУзлам.Зацикливание; КоррУзлы.CorrNode.Добавить(КоррУзел); КонецЦикла; @@ -105,7 +105,7 @@ Если КоррУзлы.CorrNode.Количество() > 0 Тогда Узел.CorrNodes = КоррУзлы; Иначе - Узел.CorrNodes = Неопределено; + Узел.CorrNodes = Неопределено; КонецЕсли; КонтурСинхронизации.Node.Добавить(Узел); diff --git a/SSL/src/CommonModules/ОбменДаннымиОценкаПроизводительности/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиОценкаПроизводительности/Module.bsl new file mode 100644 index 000000000..d2f962a13 --- /dev/null +++ b/SSL/src/CommonModules/ОбменДаннымиОценкаПроизводительности/Module.bsl @@ -0,0 +1,355 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура Инициализировать(КомпонентыОбмена, Анализ = Ложь) Экспорт + + КомпонентыОбмена.ВыполнятьЗамеры = КомпонентыОбмена.ЭтоОбменЧерезПланОбмена + И Константы.ИспользоватьОценкуПроизводительностиСинхронизацииДанных.Получить(); + + Если НЕ КомпонентыОбмена.ВыполнятьЗамеры Тогда + Возврат; + КонецЕсли; + + СеансОбмена = Справочники.СеансыОбменовДанными.СоздатьЭлемент(); + + КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); + + ШаблонНаименования = НСтр("ru = '%1 в %2 для ""%3"" (%4)'", КодОсновногоЯзыка); // Отправка в 18.07.2022 15:09 для "Бухгалтерия предприятия 3.0" + Наименование = СтрШаблон(ШаблонНаименования, + КомпонентыОбмена.НаправлениеОбмена, + ТекущаяДатаСеанса(), + КомпонентыОбмена.УзелКорреспондента, + КомпонентыОбмена.УзелКорреспондента.Код); + + Если Анализ Тогда + Наименование = Наименование + " " + НСтр("ru = '(Анализ)'", КодОсновногоЯзыка); + КонецЕсли; + + СеансОбмена.Наименование = Наименование; + + СеансОбмена.УзелИнформационнойБазы = КомпонентыОбмена.УзелКорреспондента; + СеансОбмена.Начало = ТекущаяДатаСеанса(); + + Если КомпонентыОбмена.НаправлениеОбмена = "Отправка" Тогда + СеансОбмена.Отправка = Истина; + ИначеЕсли КомпонентыОбмена.НаправлениеОбмена = "Получение" Тогда + СеансОбмена.Получение = Истина; + КонецЕсли; + + СеансОбмена.Записать(); + + КомпонентыОбмена.СеансОбмена = СеансОбмена; + + Каталог = ОбменДаннымиПовтИсп.КаталогВременногоХранилищаФайлов(); + ИмяВременногоФайлаЗамеров = Каталог + "log.txt"; //АПК:441 временный файл будет удален при подведении итогов + КомпонентыОбмена.ИмяВременногоФайлаЗамеров = ИмяВременногоФайлаЗамеров; + КомпонентыОбмена.ЗаписьЗамеров = Новый ЗаписьТекста(ИмяВременногоФайлаЗамеров, КодировкаТекста.UTF8); + + ЗаголовокЛога = НСтр("ru = 'Начало замера; Время выполнения; ТипСобытия; Событие; Комментарий'"); + КомпонентыОбмена.ЗаписьЗамеров.ЗаписатьСтроку(ЗаголовокЛога, КодОсновногоЯзыка); + + НачатьТранзакцию(); + Попытка + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.СеансыОбменовДанными"); + ЭлементБлокировки.УстановитьЗначение("УзелИнформационнойБазы", КомпонентыОбмена.УзелКорреспондента); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; + Блокировка.Заблокировать(); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | СеансыОбменовДанными.Ссылка, + | СеансыОбменовДанными.Начало КАК Начало + |ИЗ + | Справочник.СеансыОбменовДанными КАК СеансыОбменовДанными + |ГДЕ + | СеансыОбменовДанными.УзелИнформационнойБазы = &Узел + | И СеансыОбменовДанными.Отправка = &Отправка + | И СеансыОбменовДанными.Получение = &Получение + | + |УПОРЯДОЧИТЬ ПО + | Начало"; + + Запрос.УстановитьПараметр("Узел", КомпонентыОбмена.УзелКорреспондента); + Запрос.УстановитьПараметр("Отправка", СеансОбмена.Отправка); + Запрос.УстановитьПараметр("Получение", СеансОбмена.Получение); + + ТаблицаСеансов = Запрос.Выполнить().Выгрузить(); + + Для Сч = 1 По ТаблицаСеансов.Количество() - 5 Цикл + СеансОбмена = ТаблицаСеансов[0].Ссылка.ПолучитьОбъект(); + СеансОбмена.Удалить(); + ТаблицаСеансов.Удалить(0); + КонецЦикла; + + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + + СтрокаСообщения = НСтр("ru = 'Ошибка при попытке удаления сеанса обмена: %1. Описание ошибки: %2'", + ОбщегоНазначения.КодОсновногоЯзыка()); + + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + СеансОбмена, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), + УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщения); + + КонецПопытки + +КонецПроцедуры + +Процедура Завершить(КомпонентыОбмена) Экспорт + + Если НЕ КомпонентыОбмена.ВыполнятьЗамеры Тогда + Возврат; + КонецЕсли; + + СеансОбмена = КомпонентыОбмена.СеансОбмена; + ИмяВременногоФайлаЗамеров = КомпонентыОбмена.ИмяВременногоФайлаЗамеров; + + КомпонентыОбмена.ВыполнятьЗамеры = Ложь; + КомпонентыОбмена.ЗаписьЗамеров.Закрыть(); + + ВремяНачала = СеансОбмена.Начало; + ВремяОкончания = ТекущаяДатаСеанса(); + + Каталог = ОбменДаннымиПовтИсп.КаталогВременногоХранилищаФайлов(); + ИмяАрхива = Формат(СеансОбмена.Начало, "ДФ=yyyy-MM-dd-HH-mm-ss") + "_" + + Строка(СеансОбмена.Ссылка.УникальныйИдентификатор()) + ".zip"; + + ИмяВременногоФайлаИтогов = Каталог + "total.txt"; + ИмяВременногоФайлаАрхива = Каталог + ИмяАрхива; + + ЗаписьИтогов = Новый ЗаписьТекста(ИмяВременногоФайлаИтогов); + + КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); + + // Шапка + ЗаписьИтогов.ЗаписатьСтроку(НСтр("ru = '--- Сеанс обмена ---'", КодОсновногоЯзыка)); + ЗаписьИтогов.ЗаписатьСтроку(НСтр("ru = 'Направление обмена:'", КодОсновногоЯзыка) + КомпонентыОбмена.НаправлениеОбмена); + + Шаблон = НСтр("ru = 'Узел: %1 (%2)'", КодОсновногоЯзыка); + ЗаписьИтогов.ЗаписатьСтроку(СтрШаблон(Шаблон, + КомпонентыОбмена.УзелКорреспондента, + КомпонентыОбмена.УзелКорреспондента.Код)); + + ЗаписьИтогов.ЗаписатьСтроку(НСтр("ru = 'Начало:'", КодОсновногоЯзыка) + ВремяНачала); + ЗаписьИтогов.ЗаписатьСтроку(НСтр("ru = 'Окончание:'", КодОсновногоЯзыка) + ВремяОкончания); + ЗаписьИтогов.ЗаписатьСтроку(НСтр("ru = 'Время выполнения (сек):'", КодОсновногоЯзыка) + (ВремяОкончания - ВремяНачала)); + ЗаписьИтогов.ЗаписатьСтроку(""); + + // Итоги по типу событий + ЗаписьИтогов.ЗаписатьСтроку(НСтр("ru = '--- Итоговые значения по типам ---'", КодОсновногоЯзыка)); + ЗаписьИтогов.ЗаписатьСтроку(НСтр("ru = 'Тип события; Время выполнения'", КодОсновногоЯзыка)); + + ТаблицаЗамеровПоТипамСобытий = КомпонентыОбмена.ТаблицаЗамеровПоСобытиям.Скопировать(, "ТипСобытия, ВремяВыполнения"); + ТаблицаЗамеровПоТипамСобытий.Свернуть("ТипСобытия", "ВремяВыполнения"); + + Шаблон = "%1; %2"; + Для Каждого СтрокаТаблицы Из ТаблицаЗамеровПоТипамСобытий Цикл + + Строка = СтрШаблон(Шаблон, + СтрокаТаблицы.ТипСобытия, + СтрокаТаблицы.ВремяВыполнения); + + ЗаписьИтогов.ЗаписатьСтроку(Строка); + + КонецЦикла; + + ЗаписьИтогов.ЗаписатьСтроку(""); + + // Итоги по событиям + ЗаписьИтогов.ЗаписатьСтроку(НСтр("ru = '--- Итоговые значения по событиям ---'", КодОсновногоЯзыка)); + ЗаписьИтогов.ЗаписатьСтроку(НСтр("ru = 'Процент; Ср. время; Время; Кол-во событий; Тип события; Событие'", КодОсновногоЯзыка)); + + ТаблицаЗамеров = КомпонентыОбмена.ТаблицаЗамеровПоСобытиям; + ТаблицаЗамеров.Сортировать("ВремяВыполнения Убыв"); + + ВремяВыполненияИтог = ТаблицаЗамеров.Итог("ВремяВыполнения"); + + Шаблон = "%1; %2; %3; %4; %5; %6"; + + Для Каждого СтрокаТаблицы Из ТаблицаЗамеров Цикл + + Если ВремяВыполненияИтог > 0 Тогда + Процент = Окр(СтрокаТаблицы.ВремяВыполнения / ВремяВыполненияИтог * 100, 3); + Иначе + Процент = 0; + КонецЕсли; + Процент = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(Процент, 7, " ", "Слева"); + + СреднееВремяВыполнения = Окр(СтрокаТаблицы.ВремяВыполнения / СтрокаТаблицы.Количество, 3); + СреднееВремяВыполнения = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(СреднееВремяВыполнения, 7, " ", "Слева"); + + ВремяВыполнения = Окр(СтрокаТаблицы.ВремяВыполнения, 3); + ВремяВыполнения = Формат(ВремяВыполнения,"ЧГ=;"); + ВремяВыполнения = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(ВремяВыполнения, 7, " ", "Слева"); + + Количество = Формат(СтрокаТаблицы.Количество,"ЧГ=;"); + Количество = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(СтрокаТаблицы.Количество, 7, " ", "Слева"); + ТипСобытия = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(СтрокаТаблицы.ТипСобытия, 11, " ", "Справа"); + + Строка = СтрШаблон(Шаблон, + Процент, + СреднееВремяВыполнения, + ВремяВыполнения, + Количество, + ТипСобытия, + СтрокаТаблицы.Событие); + + ЗаписьИтогов.ЗаписатьСтроку(Строка); + + КонецЦикла; + + ЗаписьИтогов.Закрыть(); + + // + СеансОбмена.Окончание = ВремяОкончания; + СеансОбмена.ВремяВыполнения = ВремяОкончания - ВремяНачала; + + Архив = Новый ЗаписьZipФайла(ИмяВременногоФайлаАрхива); + Архив.Добавить(ИмяВременногоФайлаЗамеров); + Архив.Добавить(ИмяВременногоФайлаИтогов); + Архив.Записать(); + + СеансОбмена.ЗамерыПроизводительности = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИмяВременногоФайлаАрхива)); + СеансОбмена.Записать(); + + // Удаление временных файлов + УдалитьФайлы(ИмяВременногоФайлаИтогов); + УдалитьФайлы(ИмяВременногоФайлаАрхива); + УдалитьФайлы(ИмяВременногоФайлаЗамеров); + +КонецПроцедуры + +Функция НачатьЗамер() Экспорт + + Возврат ТекущаяУниверсальнаяДатаВМиллисекундах(); + +КонецФункции + +Процедура ЗавершитьЗамер(ВремяНачала, Событие, Объект, КомпонентыОбмена, ТипСобытия) Экспорт + + Если Событие = "" Или НЕ КомпонентыОбмена.ВыполнятьЗамеры Тогда + Возврат; + КонецЕсли; + + Начало = Дата(1,1,1) + ВремяНачала / 1000; + + ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); + ВремяВыполнения = Окр((ВремяОкончания - ВремяНачала) / 1000, 3); + + ПредставлениеОбъекта = ПредставлениеОбъекта(Объект); + + // Лог + ШаблонСтроки = "%1; %2; %3; %4; %5"; + + Строка = СтрШаблон(ШаблонСтроки, + Начало, + Формат(ВремяВыполнения,"ЧГ=;"), + ТипСобытия, + Событие, + ПредставлениеОбъекта); + + ЗаписьЗамеров = КомпонентыОбмена.ЗаписьЗамеров; + ЗаписьЗамеров.ЗаписатьСтроку(Строка); + + // Итоговые данные по событиям + ТаблицаЗамеров = КомпонентыОбмена.ТаблицаЗамеровПоСобытиям; + Замер = ТаблицаЗамеров.Найти(Событие, "Событие"); + + Если Замер = Неопределено Тогда + НовыйЗамер = ТаблицаЗамеров.Добавить(); + НовыйЗамер.Событие = Событие; + НовыйЗамер.ТипСобытия = ТипСобытия; + НовыйЗамер.Количество = 1; + НовыйЗамер.ВремяВыполнения = ВремяВыполнения; + Иначе + Замер.Количество = Замер.Количество + 1; + Замер.ВремяВыполнения = Замер.ВремяВыполнения + ВремяВыполнения; + КонецЕсли; + +КонецПроцедуры + +Функция ТаблицаЗамеровПоСобытиям() Экспорт + + Таблица = Новый ТаблицаЗначений; + Таблица.Колонки.Добавить("Событие"); + Таблица.Колонки.Добавить("ТипСобытия"); + Таблица.Колонки.Добавить("Количество"); + Таблица.Колонки.Добавить("ВремяВыполнения"); + + Таблица.Индексы.Добавить("Событие"); + + Возврат Таблица; + +КонецФункции + +Функция ТипСобытияПравило() Экспорт + + Возврат НСтр("ru = 'Правила обменов'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция ТипСобытияБиблиотека() Экспорт + + Возврат НСтр("ru = 'Подсистема обменов'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция ТипСобытияПрикладное() Экспорт + + Возврат НСтр("ru = 'Остальная конфигурация'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПредставлениеОбъекта(Объект) + + Если ТипЗнч(Объект) = Тип("Структура") Тогда + + МассивКлючейИЗначений = Новый Массив; + Шаблон = "%1 = ""%2"""; + + Если Объект.Свойство("КлючевыеСвойства") Тогда + + Для Каждого КлючИЗначение Из Объект.КлючевыеСвойства Цикл + + Если Не ЗначениеЗаполнено(КлючИЗначение.Значение) + Или ТипЗнч(КлючИЗначение.Значение) = Тип("Структура") Тогда + Продолжить; + КонецЕсли; + + Строка = СтрШаблон(Шаблон, КлючИЗначение.Ключ, КлючИЗначение.Значение); + МассивКлючейИЗначений.Добавить(Строка); + + КонецЦикла; + + КонецЕсли; + + Возврат СтрСоединить(МассивКлючейИЗначений, ", "); + + Иначе + + Возврат Строка(Объект); + + КонецЕсли; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбменДаннымиОценкаПроизводительности/ОбменДаннымиОценкаПроизводительности.mdo b/SSL/src/CommonModules/ОбменДаннымиОценкаПроизводительности/ОбменДаннымиОценкаПроизводительности.mdo new file mode 100644 index 000000000..9834a4145 --- /dev/null +++ b/SSL/src/CommonModules/ОбменДаннымиОценкаПроизводительности/ОбменДаннымиОценкаПроизводительности.mdo @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e461818e-5d2f-49ec-8219-3a765461274a"> + <name>ОбменДаннымиОценкаПроизводительности</name> + <synonym> + <key>ru</key> + <value>Обмен данными оценка производительности</value> + </synonym> + <server>true</server> + <externalConnection>true</externalConnection> + <clientOrdinaryApplication>true</clientOrdinaryApplication> +</mdclass:CommonModule> diff --git a/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl index e7190e28d..5a4daa542 100644 --- a/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl @@ -249,7 +249,7 @@ КонецПроцедуры // Вызывается в событии ПриЗаписи константы ЭтоАвтономноеРабочееМесто. -// Позволяет переопределить стандартную обработку при измении значения. +// Позволяет переопределить стандартную обработку при изменении значения. // // Параметры: // ПредыдущееЗначение - Булево - значение константы ЭтоАвтономноеРабочееМесто до изменения. @@ -261,6 +261,23 @@ +КонецПроцедуры + +// Вызывается при проверке имени плана обмена универсального формата. +// Допускает настройку синхронизацию между планами обменов EnterpriseData с отличающимися имена. +// +// Параметры: +// ИмяПланаОбмена - Строка - имя плана обмена универсального формата, +// для которого подбираем соответствие из метаданных конфигурации. +// ВариантНастройки - Строка - идентификатор варианта настройки, используется для уточнения поиска. +// Может быть незаполнен, например, при проверке формата полученного сообщения обмена. +// ПланОбменаРаспознан - Булево - признак того, что переданное имя плана обмена распознано и работу можно продолжить. +// +Процедура ПриПроверкеКорректностиИмениПланаОбменаEnterpriseData(ИмяПланаОбмена, ВариантНастройки, ПланОбменаРаспознан) Экспорт + + + КонецПроцедуры #КонецОбласти + diff --git a/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl index 982395f20..630f43bc2 100644 --- a/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl @@ -436,6 +436,24 @@ КонецФункции +Функция ПолучитьИмяПланаОбменаКорреспондента(УзелПланаОбмена) Экспорт + + ИмяПланаОбмена = ПолучитьИмяПланаОбмена(УзелПланаОбмена); + + Если Не ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(УзелПланаОбмена) Тогда + Возврат ИмяПланаОбмена; + КонецЕсли; + + ИмяПланаОбменаКорреспондента = РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.ИмяПланаОбменаКорреспондента(УзелПланаОбмена); + + Если ИмяПланаОбменаКорреспондента = "" Тогда + ИмяПланаОбменаКорреспондента = ИмяПланаОбмена; + КонецЕсли; + + Возврат ИмяПланаОбменаКорреспондента; + +КонецФункции + // Получает массив имен разделенных планов обмена конфигурации, которые используют функционал БСП. // Если конфигурация не содержит разделителей, то все планы обмена считаются разделенными (прикладными). // @@ -537,6 +555,40 @@ КонецФункции +// Возвращает признак использования кеша при поиске ссылок в регистре сведений ПубличныеИдентификаторыСинхронизируемыхОбъектов +// +// Параметры: +// ИмяПланаОбмена - Строка - имя плана обмена, как оно задано в конфигураторе. +// +// Возвращаемое значение: +// Булево - Истина - используется кеш, иначе Ложь - используются запросы к РС ПубличныеИдентификаторыСинхронизируемыхОбъектов. +// +Функция ИспользоватьКешПубличныхИдентификаторов(Знач ИмяПланаОбмена) Экспорт + + НастройкиПланаОбмена = ОбменДаннымиСервер.НастройкиПланаОбмена(ИмяПланаОбмена, "", "", Неопределено); + + Возврат НастройкиПланаОбмена.ИспользоватьКешПубличныхИдентификаторов; + +КонецФункции + +// Возвращает признак Глобальный для плана обмена через EnterpriseData +// +// Параметры: +// ИмяПланаОбмена - Строка - имя плана обмена, как оно задано в конфигураторе. +// +// Возвращаемое значение: +// Булево - Истина - используется кеш, иначе Ложь - используются запросы к РС ПубличныеИдентификаторыСинхронизируемыхОбъектов. +// +Функция ЭтоГлобальныйОбменЧерезУниверсальныйФормат(Знач ИмяПланаОбмена) Экспорт + + НастройкиПланаОбмена = ОбменДаннымиСервер.НастройкиПланаОбмена(ИмяПланаОбмена, "", "", Неопределено); + + Возврат НастройкиПланаОбмена.Глобальный; + +КонецФункции + + + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/CommonModules/ОбменДаннымиРегистрацияПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиРегистрацияПовтИсп/Module.bsl index ef43d1700..5a3cb6649 100644 --- a/SSL/src/CommonModules/ОбменДаннымиРегистрацияПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиРегистрацияПовтИсп/Module.bsl @@ -51,7 +51,7 @@ КонецЕсли; - Возврат ОбменДаннымиРегистрацияСервер.НовыеПараметрыВыборочнойРегистрацииДанныхПланаОбмена(ИмяПланаОбмена);; + Возврат ОбменДаннымиРегистрацияСервер.НовыеПараметрыВыборочнойРегистрацииДанныхПланаОбмена(ИмяПланаОбмена); КонецФункции diff --git a/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl index b4d594cfe..7e96f993d 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl @@ -764,6 +764,35 @@ КонецФункции +// Функция возвращает объект WSПрокси веб-сервиса Exchange_3_0_1_1, созданный с переданными параметрами. +// +// Параметры: +// СтруктураНастроек - Структура: +// * WSURLВебСервиса - Строка - месторасположение wsdl. +// * WSИмяСервиса - Строка - имя сервиса. +// * WSURLПространстваИменСервиса - Строка - URI пространства имен web-сервиса. +// * WSИмяПользователя - Строка - имя пользователя для входа на сервер. +// * WSПароль - Строка - пароль пользователя. +// * WSТаймаут - Число - таймаут на операции выполняемые через полученное прокси. +// СтрокаСообщенияОбОшибке - Строка - содержит подробное описание ошибки в случае неуспешного подключения; +// СообщениеПользователю - Строка - содержит краткое описание ошибки в случае неуспешного подключения. +// Таймаут - Число - таймаут. +// +// Возвращаемое значение: +// WSПрокси - объект WSПрокси веб-сервиса Exchange_3_0_2_1. +// +Функция ПолучитьWSПрокси_3_0_2_2(СтруктураНастроек, СтрокаСообщенияОбОшибке = "", СообщениеПользователю = "", Таймаут = 600) Экспорт + + УдалитьНезначащиеСимволыВНастройкахПодключения(СтруктураНастроек); + + СтруктураНастроек.Вставить("WSURLПространстваИменСервиса", "http://www.1c.ru/SSL/Exchange_3_0_2_2"); + СтруктураНастроек.Вставить("WSИмяСервиса", "Exchange_3_0_2_2"); + СтруктураНастроек.Вставить("WSТаймаут", Таймаут); + + Возврат ПолучитьWSПроксиПоПараметрамПодключения(СтруктураНастроек, СтрокаСообщенияОбОшибке, СообщениеПользователю, Истина); + +КонецФункции + // Возвращает допустимое количество элементов, обрабатываемых в одной транзакции загрузки данных. // // Возвращаемое значение: @@ -915,9 +944,12 @@ // пользовательском интерфейсе. // * ИмяКонфигурацииПриемника - Структура - перечень идентификаторов конфигураций-корреспондентов, // обмен с которыми возможен через данный план обмена. -// * ВерсииФорматаОбмена - Соответствие - соответствие номеров поддерживаемых версий формата -// и ссылок на общие модули с логикой обмена через формат. -// Используется только для обменов через универсальный формат. +// * ВерсииФорматаОбмена - Соответствие из КлючИЗначение - номеров поддерживаемых версий +// формата и ссылок на общие модули с логикой обмена +// через формат. Используется только для обменов через +// универсальный формат: +// ** Ключ - Число - версия формата. +// ** Значение - ОбщийМодуль - ссылка на общий модуль. // * ФорматОбмена - Строка - пространство имен XDTO пакета, в котором содержится // универсальный формат, без указания версии формата. // Используется только для обменов через универсальный формат. @@ -943,6 +975,11 @@ // * Алгоритмы - Структура - перечень экспортных процедур и функций, которые // объявлены в модуле менеджера плана обмена // и используются подсистемой обмена данными. +// *ПравилаРегистрацииВМенеджере - Булево - признак использования правил регистрации, +// расположенных в общем модуле (менеджере регистрации) +// *ИмяМенеджераРегистрации - Строка - имя модуля с правилами регистрации +// *ИспользоватьКешПубличныхИдентификаторов - Булево - признак того, что при загрузке данных будет +// использован кеш для поиска ссылок // Функция НастройкиПланаОбменаПоУмолчанию(ИмяПланаОбмена) Экспорт @@ -994,6 +1031,8 @@ Параметры.Вставить("Алгоритмы", Алгоритмы); Параметры.Вставить("ПравилаРегистрацииВМенеджере", Ложь); Параметры.Вставить("ИмяМенеджераРегистрации", ""); + Параметры.Вставить("ИспользоватьКешПубличныхИдентификаторов", Ложь); + Параметры.Вставить("Глобальный", Ложь); Возврат Параметры; @@ -1196,8 +1235,8 @@ ТаблицаОбъектыБазы = ОбменДаннымиXDTOСервер.ПоддерживаемыеОбъектыФормата( Контекст.ИмяПланаОбмена, "ОтправкаПолучение", Корреспондент); - МенеджерНастройкиXDTO = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиОбменаДаннымиXDTO"); - МенеджерНастройкиXDTO.ОбновитьНастройки( + МодульНастройкиОбменаДаннымиXDTO = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиОбменаДаннымиXDTO"); + МодульНастройкиОбменаДаннымиXDTO.ОбновитьНастройки( Корреспондент, "ПоддерживаемыеОбъекты", ТаблицаОбъектыБазы); СтруктураЗаписи = Новый Структура; @@ -1250,14 +1289,14 @@ Если Не НастройкиXDTO = Неопределено Тогда Если Не НастройкиXDTO.ПоддерживаемыеОбъекты = Неопределено Тогда - МенеджерНастройкиXDTO = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиОбменаДаннымиXDTO"); - МенеджерНастройкиXDTO.ОбновитьНастройкиКорреспондента( + МодульНастройкиОбменаДаннымиXDTO = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиОбменаДаннымиXDTO"); + МодульНастройкиОбменаДаннымиXDTO.ОбновитьНастройкиКорреспондента( Корреспондент, "ПоддерживаемыеОбъекты", НастройкиXDTO.ПоддерживаемыеОбъекты); КонецЕсли; КонецЕсли; - МенеджерНастроекТранспорта = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаДанными"); - МенеджерНастроекТранспорта.СохранитьНастройкиТранспортаВнешнейСистемы( + МодульНастройкиТранспортаОбменаДанными = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаДанными"); + МодульНастройкиТранспортаОбменаДанными.СохранитьНастройкиТранспортаВнешнейСистемы( Корреспондент, ПараметрыПодключения.НастройкиТранспорта); Если ПараметрыПодключения.Свойство("РасписаниеСинхронизации") @@ -1267,7 +1306,9 @@ ПараметрыПодключения.ИспользоватьРегламентноеЗадание, Истина); Если ОбщегоНазначения.РазделениеВключено() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") + И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); @@ -1357,7 +1398,7 @@ ВыполнитьОбменДаннымиСВнешнейСистемой(Корреспондент, ПараметрыОбмена, Отказ); Исключение Отказ = Истина; - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); КонецПопытки; @@ -1783,6 +1824,31 @@ КонецФункции +// Удаляет поставляемые правила регистрации объектов для плана обмена (очищает данные в регистре). +// +// Параметры: +// ИмяПланаОбмена - Строка - имя плана обмена, для которого удаляются правила. +// +Процедура УдалитьПоставляемыеПравилаРегистрацииОбъектов(ИмяПланаОбмена) Экспорт + + РегистрыСведений.ПравилаДляОбменаДанными.УдалитьПоставляемыеПравилаРегистрацииОбъектов(ИмяПланаОбмена); + +КонецПроцедуры + +// Загружает поставляемые правила регистрации объектов для плана обмена. +// +// Параметры: +// ИмяПланаОбмена - Строка - имя плана обмена, для которого загружаются правила. +// ИмяФайлаПравил - Строка - полное имя файла правил регистрации объектов (*.xml). +// +Процедура ЗагрузитьПоставляемыеПравилаРегистрацииОбъектов(ИмяПланаОбмена, ИмяФайлаПравил) Экспорт + + РегистрыСведений.ПравилаДляОбменаДанными.ЗагрузитьПоставляемыеПравилаРегистрацииОбъектов( + ИмяПланаОбмена, + ИмяФайлаПравил); + +КонецПроцедуры + // Конец СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса #КонецОбласти @@ -2010,7 +2076,7 @@ ЗаписьЖурналаРегистрации( НСтр("ru = 'Обмен данными.Загрузка приоритетных данных'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,,, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение НСтр("ru = 'Ошибка загрузки приоритетных данных из сообщения обмена. @@ -2452,17 +2518,31 @@ // Инициализация свойств обработки переданными параметрами настроек. ЗаполнитьЗначенияСвойств(ОбработкаОбъект, СтруктураНастроек); + Корреспондент = Неопределено; + ЕстьКорреспондент = СтруктураНастроек.Свойство("Корреспондент", Корреспондент) + Или СтруктураНастроек.Свойство("КонечнаяТочкаКорреспондента", Корреспондент); + // Привилегированный режим установлен выше. - Если СтруктураНастроек.Свойство("Корреспондент") Тогда + Если ЕстьКорреспондент Тогда + + СтрокаПараметров = "COMПарольПользователя, FTPСоединениеПароль, WSПароль, ПарольАрхиваСообщенияОбмена, + |FTPСоединениеПарольОбластейДанных, ПарольАрхиваСообщенияОбменаОбластейДанных"; + Если НовыеПароли = Неопределено Тогда - Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(СтруктураНастроек.Корреспондент, - "COMПарольПользователя, FTPСоединениеПароль, WSПароль, ПарольАрхиваСообщенияОбмена", Истина); + Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Корреспондент, СтрокаПараметров, Истина); Иначе - Пароли = Новый Структура( - "COMПарольПользователя, FTPСоединениеПароль, WSПароль, ПарольАрхиваСообщенияОбмена"); + Пароли = Новый Структура(СтрокаПараметров); ЗаполнитьЗначенияСвойств(Пароли, НовыеПароли); КонецЕсли; + ЗаполнитьЗначенияСвойств(ОбработкаОбъект, Пароли); + + Если ОбщегоНазначения.РазделениеВключено() + И ТипЗнч(ОбработкаОбъект) = Тип("ОбработкаОбъект.ТранспортСообщенийОбменаFTP") Тогда + ОбработкаОбъект.FTPСоединениеПароль = Пароли.FTPСоединениеПарольОбластейДанных; + ОбработкаОбъект.ПарольАрхиваСообщенияОбмена = Пароли.ПарольАрхиваСообщенияОбменаОбластейДанных; + КонецЕсли; + КонецЕсли; // Инициализация транспорта обмена. @@ -2893,7 +2973,10 @@ Возврат Результат; КонецФункции -Функция ПараметрыИнформационнойБазы(Знач ИмяПланаОбмена, Знач КодУзла, СообщениеОбОшибке) Экспорт +Функция ПараметрыИнформационнойБазы(Знач ИмяПланаОбмена, + Знач КодУзла, + СообщениеОбОшибке, + ДополнительныеПараметры = Неопределено) Экспорт Результат = Новый Структура; @@ -2923,21 +3006,16 @@ УстановитьПривилегированныйРежим(Истина); Результат.ПланОбменаСуществует = (Метаданные.ПланыОбмена.Найти(ИмяПланаОбмена) <> Неопределено); - - Если Не Результат.ПланОбменаСуществует Тогда - // В качестве имени плана обмена м.б. передан формат обмена. - Для Каждого ПланОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл - Если Не ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(ПланОбмена) Тогда - Продолжить; - КонецЕсли; + + Если Не Результат.ПланОбменаСуществует + И ДополнительныеПараметры <> Неопределено + И ДополнительныеПараметры.Свойство("ЭтоПланОбменаXDTO") Тогда + + ПланОбмена = НайтиИмяПланаОбменаЧерезУниверсальныйФормат(ИмяПланаОбмена); - ФорматОбмена = ЗначениеНастройкиПланаОбмена(ПланОбмена, "ФорматОбмена"); - Если ИмяПланаОбмена = ФорматОбмена Тогда - Результат.ПланОбменаСуществует = Истина; - Результат.ИмяПланаОбмена = ПланОбмена; - Прервать; - КонецЕсли; - КонецЦикла; + Результат.ПланОбменаСуществует = ЗначениеЗаполнено(ПланОбмена); + Результат.ИмяПланаОбмена = ПланОбмена; + КонецЕсли; Если Не Результат.ПланОбменаСуществует Тогда @@ -3813,11 +3891,12 @@ | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ КАК РасписаниеНастроено, - | ОбщиеНастройкиУзловИнформационныхБаз.ВерсияКорреспондента КАК ВерсияКорреспондента, - | ОбщиеНастройкиУзловИнформационныхБаз.ПрефиксКорреспондента КАК ПрефиксКорреспондента, - | ОбщиеНастройкиУзловИнформационныхБаз.НастройкаЗавершена КАК НастройкаЗавершена, - | ОбщиеНастройкиУзловИнформационныхБаз.ПереходНаWS_Этап КАК ПереходНаWS_Этап, - | ОбщиеНастройкиУзловИнформационныхБаз.ВидТранспорта КАК ВидТранспорта, + | ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ВерсияКорреспондента, 0) КАК ВерсияКорреспондента, + | ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ПрефиксКорреспондента, """") КАК ПрефиксКорреспондента, + | ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.НастройкаЗавершена, ЛОЖЬ) КАК НастройкаЗавершена, + | ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ПереходНаWS_Этап, 0) КАК ПереходНаWS_Этап, + | ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ВидТранспорта, """") КАК ВидТранспорта, + | ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.СинхронизацияНедоступна, ЛОЖЬ) КАК СинхронизацияНедоступна, | ВЫБОР | КОГДА ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.РезультатВыполненияОбмена, 0) = 0 | И ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.РезультатВыполненияОбмена, 0) = 0 @@ -3900,8 +3979,8 @@ НастройкаСинхронизации.ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(НастройкаСинхронизации.УзелИнформационнойБазы); Если ОбщегоНазначения.РазделениеВключено() - И НастройкаСинхронизации.НастройкаЗавершена - И ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкаСинхронизации.УзелИнформационнойБазы) + И НастройкаСинхронизации.НастройкаЗавершена = Истина + И ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкаСинхронизации.УзелИнформационнойБазы) = Истина И НастройкаСинхронизации.ВидТранспорта <> Перечисления.ВидыТранспортаСообщенийОбмена.WS И НастройкаСинхронизации.ВидТранспорта <> Перечисления.ВидыТранспортаСообщенийОбмена.WSПассивныйРежим Тогда @@ -3988,7 +4067,7 @@ Попытка Константы.ИспользоватьСинхронизациюДанных.Установить(Истина); Исключение - ТекстСообщения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ТекстСообщения = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,,ТекстСообщения); ВызватьИсключение ТекстСообщения; КонецПопытки; @@ -4212,7 +4291,7 @@ НСтр("ru = 'Операция не выполнена: %1 |%2'"), СтрокаДвижения.ИмяТаблицыРегистра, - КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЦикла; @@ -4323,7 +4402,6 @@ Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ЧитаемыеОбъекты = "РегистрСведений.УдалитьНастройкиТранспортаОбмена"; Обработчик.ИзменяемыеОбъекты = "РегистрСведений.УдалитьНастройкиТранспортаОбмена,РегистрСведений.НастройкиТранспортаОбменаДанными"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.НастройкиТранспортаОбменаДанными.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; @@ -4338,7 +4416,6 @@ Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ЧитаемыеОбъекты = "РегистрСведений.НастройкиОбменаДаннымиXDTO"; Обработчик.ИзменяемыеОбъекты = "РегистрСведений.НастройкиОбменаДаннымиXDTO"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.НастройкиОбменаДаннымиXDTO.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; @@ -4353,7 +4430,6 @@ Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ЧитаемыеОбъекты = "РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз"; Обработчик.ИзменяемыеОбъекты = "РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; @@ -4368,7 +4444,6 @@ Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ЧитаемыеОбъекты = "РегистрСведений.УдалитьРезультатыОбменаДанными"; Обработчик.ИзменяемыеОбъекты = "РегистрСведений.УдалитьРезультатыОбменаДанными,РегистрСведений.РезультатыОбменаДанными"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; @@ -4441,6 +4516,7 @@ МассивВерсий.Добавить("2.1.1.7"); МассивВерсий.Добавить("3.0.1.1"); МассивВерсий.Добавить("3.0.2.1"); + МассивВерсий.Добавить("3.0.2.2"); СтруктураПоддерживаемыхВерсий.Вставить("ОбменДанными", МассивВерсий); КонецПроцедуры @@ -4874,7 +4950,7 @@ УдалитьФайлы(ПараметрыОбмена.ПолноеИмяФайлаСообщенияОбмена); Исключение ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; @@ -4949,7 +5025,7 @@ Исключение - СтрокаСообщенияОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СтрокаСообщенияОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(СтруктураНастроекОбмена.КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка, СтруктураНастроекОбмена.УзелИнформационнойБазы.Метаданные(), @@ -4981,7 +5057,7 @@ Попытка ОбработкаОбменаДаннымиXML.ВыполнитьВыгрузкуДанных(); Исключение - СтрокаСообщенияОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СтрокаСообщенияОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(СтруктураНастроекОбмена.КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка, СтруктураНастроекОбмена.УзелИнформационнойБазы.Метаданные(), @@ -5019,7 +5095,7 @@ СтруктураНастроекОбмена.КлючСообщенияЖурналаРегистрации, КоличествоОбъектовОбработано); Исключение - СтрокаСообщенияОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СтрокаСообщенияОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(СтруктураНастроекОбмена.КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка, СтруктураНастроекОбмена.УзелИнформационнойБазы.Метаданные(), @@ -5097,7 +5173,7 @@ КоличествоОбъектовОбработано); Исключение - СтрокаСообщенияОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СтрокаСообщенияОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(СтруктураНастроекОбмена.КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка, СтруктураНастроекОбмена.УзелИнформационнойБазы.Метаданные(), @@ -5355,6 +5431,27 @@ Возврат Результат; КонецФункции +Функция НайтиИмяПланаОбменаЧерезУниверсальныйФормат(Знач ИсходноеИмяПланаОбмена) Экспорт + + ИмяПланаОбмена = ОбменДаннымиТрансляцияФорматаПовтИсп.ТранслироватьИмя(ИсходноеИмяПланаОбмена, "en"); + + Если Метаданные.ПланыОбмена.Найти(ИмяПланаОбмена) <> Неопределено Тогда + Возврат ИмяПланаОбмена; + КонецЕсли; + + Для Каждого ПланОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл + + Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(ПланОбмена) + И ОбменДаннымиПовтИсп.ЭтоГлобальныйОбменЧерезУниверсальныйФормат(ПланОбмена) Тогда + + Возврат ПланОбмена; + + КонецЕсли; + + КонецЦикла; + +КонецФункции + #КонецОбласти #КонецОбласти @@ -5518,7 +5615,8 @@ Процедура ВыполнитьОтложенноеПроведениеДокументов( ДокументыДляОтложенногоПроведения, УзелКорреспондента, - ДополнительныеСвойстваДляОтложенногоПроведения = Неопределено) Экспорт + ДополнительныеСвойстваДляОтложенногоПроведения = Неопределено, + КомпонентыОбмена = Неопределено) Экспорт Если ДокументыДляОтложенногоПроведения.Количество() = 0 Тогда Возврат; // нет документов в очереди @@ -5536,6 +5634,8 @@ Попытка Для Каждого СтрокаТаблицы Из ДокументыДляОтложенногоПроведения Цикл + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + Если СтрокаТаблицы.ДокументСсылка.Пустая() Тогда Продолжить; КонецЕсли; @@ -5554,6 +5654,13 @@ СтрокаТаблицы.ДокументСсылка, Истина, ДополнительныеСвойстваОбъекта); + + Если КомпонентыОбмена <> Неопределено Тогда + Событие = "ОтложенноеПроведениеДокументов." + СтрокаТаблицы.ДокументСсылка.Метаданные().ПолноеИмя(); + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, Событие, СтрокаТаблицы.ДокументСсылка, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПрикладное()); + КонецЕсли; КонецЦикла; Исключение @@ -5615,7 +5722,7 @@ Исключение ОтменитьТранзакцию(); - ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); ДокументПроведенУспешно = Ложь; КонецПопытки; @@ -5629,7 +5736,7 @@ КонецПроцедуры -Процедура ВыполнитьОтложеннуюЗаписьОбъектов(ОбъектыДляОтложеннойЗаписи, УзелКорреспондента) Экспорт +Процедура ВыполнитьОтложеннуюЗаписьОбъектов(ОбъектыДляОтложеннойЗаписи, УзелКорреспондента, КомпонентыОбмена = Неопределено) Экспорт Если ОбъектыДляОтложеннойЗаписи.Количество() = 0 Тогда Возврат; // Нет объектов в очереди @@ -5640,6 +5747,8 @@ Попытка Для Каждого ОбъектСоответствия Из ОбъектыДляОтложеннойЗаписи Цикл + ВремяНачала = ОбменДаннымиОценкаПроизводительности.НачатьЗамер(); + Если ОбъектСоответствия.Ключ.Пустая() Тогда Продолжить; КонецЕсли; @@ -5707,7 +5816,7 @@ ОтменитьТранзакцию(); - ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); ОбъектЗаписанУспешно = Ложь; @@ -5719,6 +5828,13 @@ КонецЕсли; + Если КомпонентыОбмена <> Неопределено Тогда + Событие = "ВыполнитьОтложеннуюЗаписьОбъектов." + Объект.Метаданные().ПолноеИмя(); + ОбменДаннымиОценкаПроизводительности.ЗавершитьЗамер( + ВремяНачала, Событие, Объект, КомпонентыОбмена, + ОбменДаннымиОценкаПроизводительности.ТипСобытияПравило()); + КонецЕсли; + КонецЦикла; Исключение ОтключитьПроверкуДатЗапрета(ПроверкаДатЗапретаОтключена); @@ -5752,7 +5868,7 @@ КонецПроцедуры -Процедура ПередВыполнениемОбменов(УзелИнформационнойБазы, Отказ) Экспорт +Процедура ПередВыполнениемОбменов(УзелИнформационнойБазы, Отказ) ПроверитьВозможностьВыполненияОбменов(); @@ -5760,7 +5876,7 @@ КонецПроцедуры -Процедура ПослеВыполненияОбменов(УзелИнформационнойБазы, Отказ) Экспорт +Процедура ПослеВыполненияОбменов(УзелИнформационнойБазы, Отказ) РазблокироватьУзелОбмена(УзелИнформационнойБазы, Отказ); @@ -5826,6 +5942,7 @@ КодИзМоделиСервиса = ""; Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() + И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); @@ -6055,6 +6172,8 @@ Результат.Вставить("ИдентификаторФайлаПакетаДанных", Неопределено); ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелИнформационнойБазы); + ИмяПланаОбменаКорреспондента = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбменаКорреспондента(УзелИнформационнойБазы); + ТекущийУзелПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьЭтотУзелПланаОбмена(ИмяПланаОбмена); КодТекущегоУзлаПланаОбмена = ИдентификаторЭтогоУзлаДляОбмена(УзелИнформационнойБазы); @@ -6070,7 +6189,8 @@ Исключение Если ВыводитьСообщения Тогда Сообщение = НСтр("ru = 'Не удалось произвести обмен: %1'"); - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ОбщегоНазначения.СообщитьПользователю(Сообщение,,,, Отказ); КонецЕсли; Возврат Результат; @@ -6104,13 +6224,14 @@ Если ЗначениеЗаполнено(ПсевдонимУзла) Тогда // Надо проверить код узла в корреспонденте - он может быть уже перекодирован. // Тогда псевдоним больше не нужен. - ПланОбменаМенеджер = ВнешнееСоединение.ПланыОбмена[ИмяПланаОбмена]; + ПланОбменаМенеджер = ВнешнееСоединение.ПланыОбмена[ИмяПланаОбменаКорреспондента]; Если ПланОбменаМенеджер.НайтиПоКоду(ПсевдонимУзла) <> ПланОбменаМенеджер.ПустаяСсылка() Тогда КодТекущегоУзлаПланаОбмена = ПсевдонимУзла; КонецЕсли; КонецЕсли; - ВнешнееСоединение.ОбменДаннымиВнешнееСоединение.ВыполнитьВыгрузкуДляУзлаИнформационнойБазы(Отказ, ИмяПланаОбмена, КодТекущегоУзлаПланаОбмена, ИмяФайлаСообщенияОбмена, СтрокаСообщенияОбОшибке); + ВнешнееСоединение.ОбменДаннымиВнешнееСоединение.ВыполнитьВыгрузкуДляУзлаИнформационнойБазы(Отказ, + ИмяПланаОбменаКорреспондента, КодТекущегоУзлаПланаОбмена, ИмяФайлаСообщенияОбмена, СтрокаСообщенияОбОшибке); Если Отказ Тогда @@ -6210,7 +6331,7 @@ УдалитьФайлы(ФайлСообщения.ПолноеИмя); Исключение ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Продолжить; КонецПопытки; КонецЕсли; @@ -6290,7 +6411,7 @@ Исключение ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецПроцедуры @@ -6359,7 +6480,8 @@ ОтменитьТранзакцию(); ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка, - УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Отказ = Истина; Прервать; КонецПопытки; @@ -6371,7 +6493,7 @@ КонецЦикла; Исключение ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка, - УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Отказ = Истина; КонецПопытки; КонецЕсли; @@ -6560,7 +6682,8 @@ РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка, - УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Прервать; КонецПопытки; КонецЦикла; @@ -6575,7 +6698,8 @@ ОбменДаннымиСлужебный.ОтключитьОбновлениеКлючейДоступа(Ложь); РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка, - УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; @@ -6598,7 +6722,8 @@ Исключение РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка, - УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; @@ -6655,7 +6780,7 @@ КонецЕсли; КонецЦикла; Исключение - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; ЧтениеXML.Закрыть(); @@ -6677,8 +6802,8 @@ Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); - КраткаяИнформация = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - ПодробнаяИнформация = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); + КраткаяИнформация = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке); + ПодробнаяИнформация = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); Если ЭтоОшибкаНомерСообщенияМеньшеИлиРавенНомеруРанееПринятогоСообщения(КраткаяИнформация) Тогда РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Предупреждение_СообщениеОбменаБылоРанееПринято; @@ -7719,7 +7844,7 @@ |; |"; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); МодульОбменДаннымиВМоделиСервиса.АдаптироватьТекстЗапросаОРезультатахОбменаВСервисе(ТекстЗапроса); @@ -7778,7 +7903,7 @@ | И СостоянияОбменовДанными.ДействиеПриОбмене = &ДействиеПриОбмене |"; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); МодульОбменДаннымиВМоделиСервиса.АдаптироватьТекстЗапросаОРезультатахОбменаВСервисе(ТекстЗапроса); @@ -7910,6 +8035,7 @@ Колонки = Правила.Колонки; Колонки.Добавить("ОбъектМетаданныхИмя", Новый ОписаниеТипов("Строка")); + Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); Колонки.Добавить("ИмяПланаОбмена", Новый ОписаниеТипов("Строка")); Колонки.Добавить("ИмяРеквизитаФлага", Новый ОписаниеТипов("Строка")); @@ -7932,6 +8058,7 @@ Колонки.Добавить("ЕстьОбработчикПриОбработке", Новый ОписаниеТипов("Булево")); Колонки.Добавить("ЕстьОбработчикПриОбработкеДополнительный", Новый ОписаниеТипов("Булево")); Колонки.Добавить("ЕстьОбработчикПослеОбработки", Новый ОписаниеТипов("Булево")); + Колонки.Добавить("ПакетноеВыполнениеОбработчиков", Новый ОписаниеТипов("Булево")); Колонки.Добавить("ОтборПоСвойствамОбъекта", Новый ОписаниеТипов("ДеревоЗначений")); @@ -8118,7 +8245,7 @@ // Объект - ДокументОбъект - документ при отложенном проведении которого возникли ошибки. // УзелОбмена - ПланОбменаСсылка - узел информационной базы из которой получен документ. // СообщениеОбОшибке - Строка - текст сообщения для журнала регистрации. -// Рекомендуется передавать в качестве этого параметра КраткоеПредставлениеОшибки(ИнформацияОбОшибке()). +// Рекомендуется передавать в качестве этого параметра ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()). // Текст сообщения для отображения в мониторе формируется из системных сообщений пользователю, которые // были сформированы, но еще не были выведены пользователю. Поэтому рекомендуется, чтобы к моменту вызова // данного метода в буфере сообщений системы не содержалось сообщений. @@ -8134,7 +8261,7 @@ // Попытка // Документ.Записать(РежимЗаписиДокумента.Проведение); // Исключение -// СообщениеОбОшибке = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); +// СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); // Отказ = Истина; // КонецПопытки; // @@ -8184,8 +8311,19 @@ ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Предупреждение,,, СтрокаСообщения); Если РегистрироватьПроблемыВРезультатахОбмена Тогда - РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьОшибкуПроверкиОбъекта(Объект.Ссылка, УзелОбмена, - ТекстСообщения, Перечисления.ТипыПроблемОбменаДанными.НепроведенныйДокумент); + Попытка + РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьОшибкуПроверкиОбъекта(Объект.Ссылка, УзелОбмена, + ТекстСообщения, Перечисления.ТипыПроблемОбменаДанными.НепроведенныйДокумент); + Исключение + СтрокаСообщения = НСтр("ru = 'Ошибка при записи результата обмена данными для объекта ""%1: + |%2'", ОбщегоНазначения.КодОсновногоЯзыка()); + ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + Строка(Объект), ОписаниеОшибки); + + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщения); + КонецПопытки КонецЕсли; КонецПроцедуры @@ -8196,7 +8334,7 @@ // Объект - СправочникОбъект, ДокументОбъект и т.п. - объект, при отложенной записи которого возникли ошибки. // УзелОбмена - ПланОбменаСсылка - узел информационной базы из которой получен объект. // СообщениеОбОшибке - Строка - текст сообщения для журнала регистрации. -// Рекомендуется передавать в качестве этого параметра КраткоеПредставлениеОшибки(ИнформацияОбОшибке()). +// Рекомендуется передавать в качестве этого параметра ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()). // Текст сообщения для отображения в мониторе формируется из системных сообщений пользователю, которые // были сформированы, но еще не были выведены пользователю. Поэтому рекомендуется, чтобы к моменту вызова // данного метода в буфере сообщений системы не содержалось сообщений. @@ -8211,7 +8349,7 @@ // Попытка // Объект.Записать(); // Исключение -// СообщениеОбОшибке = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); +// СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); // Отказ = Истина; // КонецПопытки; // @@ -8255,8 +8393,19 @@ ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Предупреждение,,, СтрокаСообщения); - РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьОшибкуПроверкиОбъекта(Объект.Ссылка, УзелОбмена, - ТекстСообщения, Перечисления.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты); + Попытка + РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьОшибкуПроверкиОбъекта(Объект.Ссылка, УзелОбмена, + ТекстСообщения, Перечисления.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты); + Исключение + СтрокаСообщения = НСтр("ru = 'Ошибка при записи результата обмена данными для объекта ""%1: + |%2'", ОбщегоНазначения.КодОсновногоЯзыка()); + ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + Строка(Объект), ОписаниеОшибки); + + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщения); + КонецПопытки КонецПроцедуры @@ -8627,7 +8776,9 @@ ОбменСБСП20 = ОбщегоНазначенияКлиентСервер.СравнитьВерсии("2.1.1.10", ВерсияБСППоВнешнемуСоединению) > 0; // ИНИЦИАЛИЗАЦИЯ ОБМЕНА ДАННЫМИ (ВНЕШНЕЕ СОЕДИНЕНИЕ) - Структура = Новый Структура("ИмяПланаОбмена, ТекущийУзелПланаОбменаКод, КоличествоЭлементовВТранзакции"); + Структура = Новый Структура("ИмяПланаОбмена, ИмяПланаОбменаКорреспондента, + |ТекущийУзелПланаОбменаКод, КоличествоЭлементовВТранзакции"); + ЗаполнитьЗначенияСвойств(Структура, СтруктураНастроекОбмена); // Выполняем реверс значений перечисления. @@ -8644,7 +8795,7 @@ Если ЭтоПланОбменаXDTO Тогда // Проверка псевдонима предопределенного узла ПсевдонимПредопределенногоУзла = ПсевдонимПредопределенногоУзла(УзелИнформационнойБазы); - ПланОбменаМенеджер = ВнешнееСоединение.ПланыОбмена[Структура.ИмяПланаОбмена]; + ПланОбменаМенеджер = ВнешнееСоединение.ПланыОбмена[Структура.ИмяПланаОбменаКорреспондента]; ПроверятьНаличиеУзлаВКорреспонденте = Истина; Если ЗначениеЗаполнено(ПсевдонимПредопределенногоУзла) Тогда // Надо проверить код узла в корреспонденте - он может быть уже перекодирован. @@ -8696,10 +8847,15 @@ КонецЕсли; КонецЕсли; + СтруктураКорреспондента = ОбщегоНазначения.СкопироватьРекурсивно(Структура, Ложь); + СтруктураКорреспондента.ИмяПланаОбмена = Структура.ИмяПланаОбменаКорреспондента; + СтруктураКорреспондента.ИмяПланаОбменаКорреспондента = Структура.ИмяПланаОбмена; + Попытка - СтруктураНастроекОбменаВнешнееСоединение = ВнешнееСоединение.ОбменДаннымиВнешнееСоединение.СтруктураНастроекОбмена(Структура); + СтруктураНастроекОбменаВнешнееСоединение = ВнешнееСоединение.ОбменДаннымиВнешнееСоединение.СтруктураНастроекОбмена(СтруктураКорреспондента); Исключение - ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); + ЗаписьЖурналаРегистрацииОбменаДанными(ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + СтруктураНастроекОбмена, Истина); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Отменено; ЗафиксироватьЗавершениеОбмена(СтруктураНастроекОбмена); @@ -8786,7 +8942,7 @@ Исключение ЗаписьЖурналаРегистрацииОбменаДанными( СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Возникла ошибка во второй информационной базе: %1'"), - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())), СтруктураНастроекОбмена, Истина); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())), СтруктураНастроекОбмена, Истина); // Если настройка содержит ошибки, то обмен не производим; статус "Отменено". СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Отменено; @@ -9210,14 +9366,14 @@ // Процедура ВыполнитьОбменДаннымиПоРегламентномуЗаданию(КодСценарияОбмена) Экспорт + ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.СинхронизацияДанных); + Если Не ЗначениеЗаполнено(КодСценарияОбмена) Тогда ВызватьИсключение НСтр("ru = 'Не задан сценарий обмена данными.'"); КонецЕсли; - - ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.СинхронизацияДанных); - + Запрос = Новый Запрос; Запрос.УстановитьПараметр("Код", КодСценарияОбмена); @@ -9503,7 +9659,7 @@ Исключение Информация = ИнформацияОбОшибке(); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка_ТранспортСообщения; - ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(Информация), СтруктураНастроекОбмена, Истина); + ЗаписьЖурналаРегистрацииОбменаДанными(ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация), СтруктураНастроекОбмена, Истина); КонецПопытки; СообщениеОбработано = Ложь; @@ -9523,7 +9679,7 @@ Попытка УдалитьФайлы(ИмяВременногоКаталога); Исключение - ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(Информация), СтруктураНастроекОбмена); + ЗаписьЖурналаРегистрацииОбменаДанными(ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация), СтруктураНастроекОбмена); КонецПопытки; НастройкаЗавершена = НастройкаСинхронизацииЗавершена(СтруктураНастроекОбмена.УзелИнформационнойБазы); @@ -9535,7 +9691,7 @@ Исключение Информация = ИнформацияОбОшибке(); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка_ТранспортСообщения; - ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(Информация), СтруктураНастроекОбмена, Истина); + ЗаписьЖурналаРегистрацииОбменаДанными(ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация), СтруктураНастроекОбмена, Истина); ЕстьСледующееСообщение = Ложь; КонецПопытки; @@ -9590,7 +9746,7 @@ Исключение Информация = ИнформацияОбОшибке(); СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка_ТранспортСообщения; - ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(Информация), СтруктураНастроекОбмена, Истина); + ЗаписьЖурналаРегистрацииОбменаДанными(ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация), СтруктураНастроекОбмена, Истина); КонецПопытки; КонецПроцедуры @@ -9761,6 +9917,8 @@ СтруктураНастроекОбмена.ПроизводитьВыгрузкуДанных = (СтруктураНастроекОбмена.ДействиеПриОбмене = Перечисления.ДействияПриОбмене.ВыгрузкаДанных); СтруктураНастроекОбмена.ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(СтруктураНастроекОбмена.УзелИнформационнойБазы); + СтруктураНастроекОбмена.ИмяПланаОбменаКорреспондента = + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбменаКорреспондента(СтруктураНастроекОбмена.УзелИнформационнойБазы); СтруктураНастроекОбмена.ТекущийУзелПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьЭтотУзелПланаОбмена(СтруктураНастроекОбмена.ИмяПланаОбмена); СтруктураНастроекОбмена.ТекущийУзелПланаОбменаКод = ИдентификаторЭтогоУзлаДляОбмена(СтруктураНастроекОбмена.УзелИнформационнойБазы); @@ -9998,6 +10156,9 @@ СтруктураНастроекОбмена.ПроизводитьВыгрузкуДанных = (СтруктураНастроекОбмена.ДействиеПриОбмене = Перечисления.ДействияПриОбмене.ВыгрузкаДанных); СтруктураНастроекОбмена.ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(СтруктураНастроекОбмена.УзелИнформационнойБазы); + СтруктураНастроекОбмена.ИмяПланаОбменаКорреспондента = + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбменаКорреспондента(СтруктураНастроекОбмена.УзелИнформационнойБазы); + СтруктураНастроекОбмена.ОбменПоПравиламКонвертацииОбъектов = ОбменДаннымиПовтИсп.ЭтоУзелУниверсальногоОбменаДанными(СтруктураНастроекОбмена.УзелИнформационнойБазы); СтруктураНастроекОбмена.НаличиеПравилКонвертацииОбязательно = ЗначениеНастройкиПланаОбмена(СтруктураНастроекОбмена.ИмяПланаОбмена, "НаличиеПравилКонвертацииОбязательно"); @@ -10090,6 +10251,7 @@ СтруктураНастроекОбмена.Вставить("ОбработкаТранспортаСообщенийОбмена"); СтруктураНастроекОбмена.Вставить("ИмяПланаОбмена"); + СтруктураНастроекОбмена.Вставить("ИмяПланаОбменаКорреспондента"); СтруктураНастроекОбмена.Вставить("ТекущийУзелПланаОбмена"); СтруктураНастроекОбмена.Вставить("ТекущийУзелПланаОбменаКод"); @@ -10419,7 +10581,7 @@ Попытка ОбработкаОбменаДаннымиXML.ВосстановитьПравилаИзВнутреннегоФормата(); Исключение - ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); + ЗаписьЖурналаРегистрацииОбменаДанными(ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); ЗафиксироватьЗавершениеИнициализацииОбмена(СтруктураНастроекОбмена); Возврат; КонецПопытки; @@ -10453,7 +10615,7 @@ Попытка ОбработкаОбменаДаннымиXML.ВосстановитьПравилаИзВнутреннегоФормата(); Исключение - ЗаписьЖурналаРегистрацииОбменаДанными(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); + ЗаписьЖурналаРегистрацииОбменаДанными(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); ЗафиксироватьЗавершениеИнициализацииОбмена(СтруктураНастроекОбмена); Возврат; КонецПопытки; @@ -10683,7 +10845,8 @@ | ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ПрефиксКорреспондента, """") КАК ПрефиксКорреспондента, | ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.НастройкаЗавершена, ЛОЖЬ) КАК НастройкаЗавершена, | ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.ПереходНаWS_Этап, 0) КАК ПереходНаWS_Этап, - | ЕСТЬNULL(НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию, """") КАК ВидТранспорта + | ЕСТЬNULL(НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию, """") КАК ВидТранспорта, + | ЕСТЬNULL(ОбщиеНастройкиУзловИнформационныхБаз.СинхронизацияНедоступна, ЛОЖЬ) КАК СинхронизацияНедоступна |ПОМЕСТИТЬ ОбщиеНастройкиУзловИнформационныхБаз |ИЗ | РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз КАК ОбщиеНастройкиУзловИнформационныхБаз @@ -10699,7 +10862,8 @@ | """" КАК ПрефиксКорреспондента, | ЛОЖЬ КАК НастройкаЗавершена, | 0 КАК ПереходНаWS_Этап, - | """" КАК ВидТранспорта + | """" КАК ВидТранспорта, + | ЛОЖЬ КАК СинхронизацияНедоступна |ПОМЕСТИТЬ ОбщиеНастройкиУзловИнформационныхБаз"; КонецЕсли; @@ -10771,7 +10935,8 @@ Дело = ТекущиеДела.Добавить(); Дело.Идентификатор = ИдентификаторПредупрежденияПриСинхронизации; Дело.ЕстьДела = СтруктураРезультат.Количество > 0; - Дело.Представление = СтруктураРезультат.Заголовок; + Дело.Количество = СтруктураРезультат.Количество; + Дело.Представление = НСтр("ru = 'Предупреждения'"); Дело.Форма = "РегистрСведений.РезультатыОбменаДанными.Форма.ПредупрежденияСинхронизаций"; Дело.Владелец = Раздел; @@ -11527,7 +11692,7 @@ |%3'"), ПолноеИмяФайлаАрхива, ПутьРаспаковкиФайлов, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка, , , ИнформацияОбОшибке); @@ -11567,7 +11732,7 @@ Исключение Архиватор = Неопределено; - СообщитьОбОшибке(КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + СообщитьОбОшибке(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); Возврат Ложь; КонецПопытки; @@ -11582,7 +11747,7 @@ |%3'"), МаскаУпаковкиФайлов, ПолноеИмяФайлаАрхива, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка, , , ИнформацияОбОшибке); @@ -11973,6 +12138,15 @@ КонецФункции +Функция ПолучитьПараметрыИнформационнойБазы_3_0_2_2(Знач ИмяПланаОбмена, Знач КодУзла, СообщениеОбОшибке, + ДополнительныеПараметры = Неопределено) Экспорт + + ПарпаметрыИБ = ПараметрыИнформационнойБазы(ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, ДополнительныеПараметры); + + Возврат ОбщегоНазначения.ЗначениеВСтрокуXML(ПарпаметрыИБ); + +КонецФункции + Функция СвойстваОбъектаМетаданных(Знач ПолноеИмяТаблицы) Экспорт Результат = Новый Структура("Синоним, Иерархический"); @@ -12957,6 +13131,15 @@ Возврат Результат; КонецЕсли; + ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(Корреспондент); + ИдентификаторНастройки = СохраненныйВариантНастройкиУзлаПланаОбмена(Корреспондент); + ПоддерживаетсяСопоставлениеДанных = ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена, + "ПоддерживаетсяСопоставлениеДанных", ИдентификаторНастройки); + + Если Не ПоддерживаетсяСопоставлениеДанных Тогда + Возврат Результат; + КонецЕсли; + ИменаРеквизитов = ОбщегоНазначения.ИменаРеквизитовПоТипу(Корреспондент, Тип("ПеречислениеСсылка.РежимыВыгрузкиОбъектовОбмена")); ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Корреспондент, ИменаРеквизитов); diff --git a/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl index 1680e1537..cb42d5e0c 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl @@ -382,7 +382,7 @@ Попытка ОбъединитьФайлы(ФайлыДляОбъединения, ИмяАрхива); Исключение - СообщениеОбОшибке = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); ВызватьИсключение (СообщениеОбОшибке); КонецПопытки; @@ -394,7 +394,7 @@ Попытка УдалитьФайлы(КаталогВременныхФайлов); Исключение - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеВременногоФайла(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); ВызватьИсключение (СообщениеОбОшибке); @@ -420,7 +420,7 @@ Попытка ПереместитьФайл(ИмяФайла, ИмяФайлаВКаталогеЗагрузки); Исключение - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеВременногоФайла(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); ВызватьИсключение (СообщениеОбОшибке); @@ -432,7 +432,7 @@ Попытка УдалитьФайлы(КаталогВременныхФайлов); Исключение - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеВременногоФайла(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); ВызватьИсключение (СообщениеОбОшибке); @@ -480,7 +480,7 @@ Инфо = ИнформацияОбОшибке(); КодОшибки = Новый Структура("КраткоеПредставлениеОшибки, ПодробноеПредставлениеОшибки", - КраткоеПредставлениеОшибки(Инфо), ПодробноеПредставлениеОшибки(Инфо)); + ОбработкаОшибок.КраткоеПредставлениеОшибки(Инфо), ОбработкаОшибок.ПодробноеПредставлениеОшибки(Инфо)); ОбменДаннымиXDTOСервер.ЗаписатьВПротоколВыполнения(КомпонентыОбмена, КодОшибки); ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); @@ -568,7 +568,7 @@ Информация = ИнформацияОбОшибке(); СообщениеОбОшибке = НСтр("ru = 'Ошибка при загрузке данных: %1'"); СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - СообщениеОбОшибке, ПодробноеПредставлениеОшибки(Информация)); + СообщениеОбОшибке, ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); ОбменДаннымиXDTOСервер.ЗаписатьВПротоколВыполнения(КомпонентыОбмена, СообщениеОбОшибке, , , , , Истина); КомпонентыОбмена.ФлагОшибки = Истина; КонецПопытки; @@ -582,7 +582,7 @@ Информация = ИнформацияОбОшибке(); СообщениеОбОшибке = НСтр("ru = 'Ошибка при удалении временных объектов, созданных по ссылкам: %1'"); СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - СообщениеОбОшибке, ПодробноеПредставлениеОшибки(Информация)); + СообщениеОбОшибке, ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); ОбменДаннымиXDTOСервер.ЗаписатьВПротоколВыполнения(КомпонентыОбмена, СообщениеОбОшибке, , , , , Истина); КомпонентыОбмена.ФлагОшибки = Истина; КонецПопытки; @@ -666,7 +666,7 @@ Иначе Если ФоновоеЗадание.ИнформацияОбОшибке <> Неопределено Тогда - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ФоновоеЗадание.ИнформацияОбОшибке); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ФоновоеЗадание.ИнформацияОбОшибке); КонецЕсли; СостояниеТекущегоФоновогоЗадания = СостоянияФоновогоЗадания.Получить(ФоновоеЗадание.Состояние); @@ -698,7 +698,7 @@ СостояниеТекущегоФоновогоЗадания = СостоянияФоновыхЗаданий().Получить(ФоновоеЗадание.Состояние); Если ФоновоеЗадание.ИнформацияОбОшибке <> Неопределено Тогда - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ФоновоеЗадание.ИнформацияОбОшибке); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ФоновоеЗадание.ИнформацияОбОшибке); Иначе Если ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Завершено Тогда МассивСообщений = ДлительныеОперации.СообщенияПользователю(Истина, ФоновоеЗадание.УникальныйИдентификатор); @@ -809,7 +809,7 @@ ПараметрыПрокси = Новый Структура("ТекущаяВерсия", ДополнительныеПараметры.ТекущаяВерсия); ПараметрыОбмена = Новый Структура("ИдентификаторОперации", ИдентификаторОперации); СтруктураНастроекОбмена = ОбменДаннымиСервер.НастройкиОбменаДляУзлаИнформационнойБазы(УзелИнформационнойБазы, - "ПроверкаСостоянияДлительнойОперации", Перечисления.ВидыТранспортаСообщенийОбмена.WS); + "ПроверкаСостоянияДлительнойОперации", Перечисления.ВидыТранспортаСообщенийОбмена.WS, Ложь); Результат = ОбменДаннымиВебСервис.ПолучитьСтатусДлительнойОперации(Прокси, ПараметрыПрокси.ТекущаяВерсия, СтруктураНастроекОбмена, ПараметрыОбмена, СтрокаСообщенияОбОшибке); diff --git a/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl index f14dad091..589fafc67 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl @@ -146,7 +146,7 @@ КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции дли использования в обработчиках событий правил регистрации. +// Процедуры и функции для использования в обработчиках событий правил регистрации. // Процедура дополняет список узлов-получателей объекта переданными значениями. // @@ -332,6 +332,48 @@ КонецФункции +//////////////////////////////////////////////////////////////////////////////// +// Процедуры и функции для вызова из других библиотек. + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковЗагрузкиДанных. +Процедура ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков) Экспорт + + Для Каждого ИмяПланаОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл + + СтрокаОбработчика = ТаблицаОбработчиков.Добавить(); + СтрокаОбработчика.ОбъектМетаданных = Метаданные.ПланыОбмена[ИмяПланаОбмена]; + СтрокаОбработчика.Обработчик = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСобытия"); + СтрокаОбработчика.ПослеЗагрузкиОбъекта = Истина; + + КонецЦикла; + +КонецПроцедуры + +// Выполняет обработчики после загрузки объекта. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// Объект - Произвольный - объект загружаемых данных. +// Артефакты - Массив из ОбъектXDTO - массив артефактов (объектов XDTO). +// +Процедура ПослеЗагрузкиОбъекта(Контейнер, Объект, Артефакты) Экспорт + + СписокПлановОбмена = ОбменДаннымиПовтИсп.ПланыОбменаБСП(); + Если СписокПлановОбмена.Найти(Объект.Метаданные().Имя) <> Неопределено + И Не Объект.ЭтотУзел Тогда + + Запись = РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.СоздатьМенеджерЗаписи(); + Запись.УзелИнформационнойБазы = Объект.Ссылка; + Запись.СинхронизацияНедоступна = Истина; + Запись.НастройкаЗавершена = Истина; + Запись.Записать(Истина); + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс @@ -644,17 +686,22 @@ Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(ЭлементНабор.Ключ) Тогда - Пока ЭлементНабор.Значение.Количество() > 0 Цикл - - Объект = ЭлементНабор.Значение[0].ПолучитьОбъект(); - Если Не ВыгрузкаОбъектаРазрешена(Источник.Ссылка, Объект) Тогда - ПланыОбмена.УдалитьРегистрациюИзменений(Источник.Ссылка, Объект); - КонецЕсли; - Объект = Неопределено; - ЭлементНабор.Значение.Удалить(0); - - КонецЦикла; + ПараметрыПР = ПараметрыПакетнойРегистрации(); + ВыполнитьПакетнуюРегистрациюДляУзла(Источник.Ссылка, ЭлементНабор.Значение, ПараметрыПР); + + Если ПараметрыПР.ЕстьПРО_БезПакетнойРегистрации Тогда + Для Каждого Ссылка Из ПараметрыПР.СсылкиНеПоФильтруПакетнойРегистрации Цикл + Если Не ВыгрузкаОбъектаРазрешена(Источник.Ссылка, Ссылка) Тогда + ПланыОбмена.УдалитьРегистрациюИзменений(Источник.Ссылка, Ссылка); + КонецЕсли; + КонецЦикла; + Иначе + Для Каждого Ссылка Из ПараметрыПР.СсылкиНеПоФильтруПакетнойРегистрации Цикл + ПланыОбмена.УдалитьРегистрациюИзменений(Источник.Ссылка, Ссылка); + КонецЦикла; + КонецЕсли; + ИначеЕсли ОбщегоНазначения.ЭтоКонстанта(ЭлементНабор.Ключ) Тогда Объект = ЭлементНабор.Значение; @@ -891,16 +938,23 @@ НаборДанных = ЗарегистрированныеДанныеОдногоСсылочногоТипа(УзелОбъект.Ссылка, ПолноеИмяОбъектаМетаданных); - Для Каждого СтрокаДанные Из НаборДанных Цикл - - СсылкаНаОбъект = СтрокаДанные.Ссылка; - - Если ВыгрузкаОбъектаРазрешена(УзелОбъект.Ссылка, СсылкаНаОбъект.ПолучитьОбъект()) Тогда - КоллекцияСсылок.Добавить(СсылкаНаОбъект); - КонецЕсли; + МассивСсылок = НаборДанных.ВыгрузитьКолонку("Ссылка"); + ПараметрыПР = ПараметрыПакетнойРегистрации(); + + ВыполнитьПакетнуюРегистрациюДляУзла(УзелОбъект.Ссылка, МассивСсылок, ПараметрыПР); + Для Каждого Ссылка Из ПараметрыПР.СсылкиПоФильтруПакетнойРегистрации Цикл + КоллекцияСсылок.Добавить(Ссылка); КонецЦикла; + Если ПараметрыПР.ЕстьПРО_БезПакетнойРегистрации Тогда + Для Каждого Ссылка Из ПараметрыПР.СсылкиНеПоФильтруПакетнойРегистрации Цикл + Если ВыгрузкаОбъектаРазрешена(УзелОбъект.Ссылка, Ссылка) Тогда + КоллекцияСсылок.Добавить(Ссылка); + КонецЕсли; + КонецЦикла; + КонецЕсли; + ЗарегистрированныеДанные[МетаданныеЭлемента] = КоллекцияСсылок; ИначеЕсли ОбщегоНазначения.ЭтоКонстанта(МетаданныеЭлемента) Тогда @@ -1291,7 +1345,7 @@ Исключение ШаблонТекста = НСтр("ru = 'Не удалось зарегистрировать изменения на узлах плана обмена %1 по причине: %2'", ОбщегоНазначения.КодОсновногоЯзыка()); - ПодробноеПредставление = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПодробноеПредставление = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ОписаниеОшибки = СтрШаблон(ШаблонТекста, ИмяПланаОбмена, ПодробноеПредставление); @@ -1382,7 +1436,7 @@ |Описание ошибки: |%2'"), ИмяПланаОбмена, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецПроцедуры @@ -1468,6 +1522,15 @@ Иначе // для ссылочного типа Для Каждого ПРО Из ПравилаРегистрацииОбъекта Цикл + + // Если у объекта есть правило с обработчиком пакетной регистрации, + // и это проверка регистрации перед выгрузкой, то пропускаем это правило, + // т.к объект был проверен ранее пакетным обработчиком + Если ПРО.ПакетноеВыполнениеОбработчиков + И Объект.ДополнительныеСвойства.Свойство("ПроверкаРегистрацииПередВыгрузкой") + И НЕ Объект.ДополнительныеСвойства.Свойство("ИнтерактивноеДополнениеВыгрузки") Тогда + Продолжить; + КонецЕсли; // ОПРЕДЕЛЯЕМ ПОЛУЧАТЕЛЕЙ С РЕЖИМОМ ВЫГРУЗКИ "ПО УСЛОВИЮ" @@ -1897,7 +1960,7 @@ Исключение СтрокаСообщения = НСтр("ru = 'Ошибка при получении свойств ссылки. Ошибка выполнения запроса: [ОписаниеОшибки]'"); - СтрокаСообщения = СтрЗаменить(СтрокаСообщения, "[ОписаниеОшибки]", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + СтрокаСообщения = СтрЗаменить(СтрокаСообщения, "[ОписаниеОшибки]", ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение СтрокаСообщения; КонецПопытки; @@ -2040,7 +2103,7 @@ Исключение СтрокаСообщения = НСтр("ru = 'Ошибка при получении списка узлов получателей. Ошибка выполнения запроса: [ОписаниеОшибки]'"); - СтрокаСообщения = СтрЗаменить(СтрокаСообщения, "[ОписаниеОшибки]", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + СтрокаСообщения = СтрЗаменить(СтрокаСообщения, "[ОписаниеОшибки]", ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение СтрокаСообщения; КонецПопытки; @@ -2486,7 +2549,7 @@ "ПередОбработкой", ПРО.ИмяПланаОбмена, ПРО.ОбъектМетаданныхИмя, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; @@ -2515,7 +2578,7 @@ "ПриОбработке", ПРО.ИмяПланаОбмена, ПРО.ОбъектМетаданныхИмя, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; @@ -2542,7 +2605,7 @@ "ПриОбработкеДополнительный", ПРО.ИмяПланаОбмена, ПРО.ОбъектМетаданныхИмя, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; @@ -2565,13 +2628,136 @@ "ПослеОбработки", ПРО.ИмяПланаОбмена, ПРО.ОбъектМетаданныхИмя, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; КонецПроцедуры +Функция ПараметрыПакетнойРегистрации() Экспорт + + Параметры = Новый Структура; + Параметры.Вставить("ЕстьПРО_СПакетнойРегистрацией", Ложь); + Параметры.Вставить("ЕстьПРО_БезПакетнойРегистрации",Ложь); + Параметры.Вставить("СсылкиПоФильтруПакетнойРегистрации", Новый Массив); + Параметры.Вставить("СсылкиНеПоФильтруПакетнойРегистрации", Новый Массив); + Параметры.Вставить("СозданиеНачальногоОбраза", Ложь); + + Возврат Параметры; + +КонецФункции + +Процедура ВыполнитьПакетнуюРегистрациюДляУзла(Узел, МассивСсылок, Параметры) Экспорт + + Если МассивСсылок.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(Узел); + ПолноеИмяОбъекта = МассивСсылок[0].Метаданные().ПолноеИмя(); + + РежимВыгрузкиОбъекта = ОбменДаннымиПовтИсп.РежимВыгрузкиОбъекта(ПолноеИмяОбъекта, Узел); + + Если РежимВыгрузкиОбъекта = Перечисления.РежимыВыгрузкиОбъектовОбмена.ВыгружатьВсегда Тогда + + Параметры.СсылкиПоФильтруПакетнойРегистрации = МассивСсылок; + + Иначе + + Правила = ПравилаРегистрацииОбъекта(ИмяПланаОбмена, ПолноеИмяОбъекта); + + Для Каждого ПРО Из Правила Цикл + Если ПРО.ПакетноеВыполнениеОбработчиков Тогда + + МассивСсылокПРО = ОбщегоНазначения.СкопироватьРекурсивно(МассивСсылок, Ложь); + ВыполнитьПакетнуюРегистрациюДляУзлаПопыткаИсключение(ПРО, МассивСсылокПРО, Узел); + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Параметры.СсылкиПоФильтруПакетнойРегистрации, МассивСсылокПРО, Истина); + + Параметры.ЕстьПРО_СПакетнойРегистрацией = Истина; + + Иначе + + Параметры.ЕстьПРО_БезПакетнойРегистрации = Истина; + + КонецЕсли; + КонецЦикла; + + Если Не Параметры.ЕстьПРО_СПакетнойРегистрацией Тогда + + Параметры.СсылкиНеПоФильтруПакетнойРегистрации = МассивСсылок; + + ИначеЕсли МассивСсылок.Количество() <> Параметры.СсылкиПоФильтруПакетнойРегистрации.Количество() Тогда + + Для Каждого Ссылка Из МассивСсылок Цикл + Если Параметры.СсылкиПоФильтруПакетнойРегистрации.Найти(Ссылка) = Неопределено Тогда + Параметры.СсылкиНеПоФильтруПакетнойРегистрации.Добавить(Ссылка); + КонецЕсли; + КонецЦикла; + + КонецЕсли; + + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда + МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных"); + + Количество = Параметры.СсылкиПоФильтруПакетнойРегистрации.Количество(); + Для Сч = 1 По Количество Цикл + + Индекс = Количество - Сч; + Ссылка = Параметры.СсылкиПоФильтруПакетнойРегистрации[Индекс]; + ОтправкаЭлемента = ОтправкаЭлементаДанных.Авто; + МодульЗащитаПерсональныхДанных.ПриОтправкеДанных(Ссылка, ОтправкаЭлемента, Узел, Параметры.СозданиеНачальногоОбраза); + + Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда + Параметры.СсылкиПоФильтруПакетнойРегистрации.Удалить(Индекс); + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +Процедура ВыполнитьПакетнуюРегистрациюДляУзлаПопыткаИсключение(ПРО, МассивСсылок, Узел) + + РежимВыгрузки = Узел[ПРО.ИмяРеквизитаФлага]; + + Если РежимВыгрузки <> Перечисления.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПоУсловию + И РежимВыгрузки <> Перечисления.РежимыВыгрузкиОбъектовОбмена.ВыгружатьВручную + И РежимВыгрузки <> Перечисления.РежимыВыгрузкиОбъектовОбмена.ПустаяСсылка() Тогда + + МассивСсылок = Новый Массив; + Возврат; + + КонецЕсли; + + ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(Узел); + ИмяПрофиляБезопасности = ОбменДаннымиПовтИсп.ИмяПрофиляБезопасности(ИмяПланаОбмена); + Если ИмяПрофиляБезопасности <> Неопределено Тогда + УстановитьБезопасныйРежим(ИмяПрофиляБезопасности); + КонецЕсли; + + Попытка + Если ЗначениеЗаполнено(ПРО.ИмяМенеджераРегистрации) Тогда + Менеджер = ОбщегоНазначения.ОбщийМодуль(ПРО.ИмяМенеджераРегистрации); + Менеджер.ПакетнаяОбработка(ПРО, МассивСсылок, Узел); + Иначе + Выполнить(ПРО.ПакетнаяОбработка); + КонецЕсли; + Исключение + МассивСсылок = Новый Массив; + + ВызватьИсключение ПодробноеПредставлениеОшибкиВыполненияОбработчика( + "ПакетнаяОбработка", + ПРО.ИмяПланаОбмена, + ПРО.ОбъектМетаданныхИмя, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + +КонецПроцедуры + #КонецОбласти #Область ВспомогательныеПроцедурыИФункции @@ -3390,6 +3576,11 @@ Процедура ИсключитьРегистрациюИзЗацикленныхУзлов(МассивУзловРезультат, Объект, ИмяПланаОбмена) + ПланыОбменаБСП = ОбменДаннымиПовтИсп.ПланыОбменаБСП(); + Если ПланыОбменаБСП.Найти(ИмяПланаОбмена) = Неопределено Тогда + Возврат; + КонецЕсли; + ОбъектМетаданных = Объект.Метаданные(); ЭтоОбъектСсылочногоТипа = ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(ОбъектМетаданных); diff --git a/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl index 6f27264b9..dc3a74cea 100644 --- a/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиТрансляцияФорматаПовтИсп/Module.bsl @@ -7,7 +7,7 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////// #Область СлужебныйПрограммныйИнтерфейс - + // Параметры: // Имя - Строка // НаправлениеПеревода - Строка - "ru" или "en" @@ -16,7 +16,7 @@ // Строка // Функция ТранслироватьИмя(Имя, НаправлениеПеревода) Экспорт - + Если Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Русский Тогда Возврат Имя; КонецЕсли; @@ -37,19 +37,26 @@ КонецФункции + // Возвращаемое значение: // Соответствие // Функция Словарь_ru_en() Экспорт - + Словарь = Новый Соответствие; - + // АПК:1036-выкл не проверять текст на орфографию + Словарь.Вставить("fileкаталогобменаинформацией", "FILEDataExchangeDirectory"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fileсжиматьфайлисходящегосообщения", "FILECompressOutgoingMessageFile"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("skuконтрагента", "SKUCounterparty_"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("wsпассивныйрежим", "WSPassiveMode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("аванс", "Prepayment_"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("авансовыйотчет", "ExpenseReport"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("авансовыйотчетссылка", "AdvanceReportLink"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("авансы", "Prepayments"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("автоматически", "Automatically"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("агент", "Agent"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("агентские", "Agency"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("агентскоевознаграждение", "AgencyFee"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("адрес", "Address"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("адресдоставки", "DeliveryAddress"); // @NON-NLS-1 @NON-NLS-2 @@ -67,6 +74,7 @@ Словарь.Вставить("амортизациядо2009", "DepreciationBefore2009"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("амортизацияос", "FixedAssetsDepreciationCharge"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("аннулирован", "Canceled_"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("аннулированиеподарочныхсертификатов", "GiftCertificateCancellation"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("антисептики", "Antiseptics"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("аренда", "Lease"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("артикул", "SKU"); // @NON-NLS-1 @NON-NLS-2 @@ -83,6 +91,7 @@ Словарь.Вставить("банковскийсчетсотрудника", "EmployeeSBankAccount"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("безналичная", "BankAccountPayment"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("безндс", "EXCLUDINGVAT"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("безучетапредоставленныхскидок", "ExcludingDiscountsProvided"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("бик", "BIC"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("бухгалтер", "Accountant"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("валюта", "Currency"); // @NON-NLS-1 @NON-NLS-2 @@ -98,6 +107,7 @@ Словарь.Вставить("вебстраница", "WebPage"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ведомость", "Statement"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("велосипеды", "Bicycles"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("версияформатафайланастроекобменаданными", "ExchangeDataSettingsFileFormatVersion"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("вес", "Weight"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("весовой", "SoldByWeight"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("взносналичными", "CashContribution"); // @NON-NLS-1 @NON-NLS-2 @@ -116,6 +126,7 @@ Словарь.Вставить("видноменклатуры", "ProductKind"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видобъектаучета", "KindOfAccountingObject"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видоперации", "OperationKind"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("видоперацииотчетакоммисионера", "TypeOfOperationOfCommissionaireSReport"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видоплаты", "PaymentKind_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видответственноголица", "ResponsiblePersonKind"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видответственноголицаотбор", "TypeOfResponsiblePersonSelection"); // @NON-NLS-1 @NON-NLS-2 @@ -130,9 +141,14 @@ Словарь.Вставить("видрасчетов", "ARAPType"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видрасчетоврасширенный", "TypeOfCalculationsAdvanced"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видрезерва", "TypeOfReserve"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("видскидки", "TypeOfDiscount"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видсобытияос", "EventKindWithFixedAssets"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видсчета", "AccountType"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видсчетафактуры", "InvoiceType"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("видтранспортасообщенийобмена", "ExchangeMessagesTransportKind"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("видыноменклатуры", "ItemKinds"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("видыподарочныхсертификатов", "GiftCertificateKinds"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("видытранспортасообщенийобмена", "ExchangeMessagesTransportTypes"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("видэд", "EdView"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("владелец", "Owner"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("владелецдополнительныхзначений", "AdditionalValuesOwner"); // @NON-NLS-1 @NON-NLS-2 @@ -140,13 +156,14 @@ Словарь.Вставить("владелецфайла", "FileOwner"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("владелецхарактеристики", "TechnicalCharacteristics"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("внереализационныйдоход", "NonOperatingIncome"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("внешняясистема", "ExternalSystem"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("внутреннееперемещение", "InternalMovement"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("внутренняяпередача", "InternalTransmission"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("водительскоеудостоверение", "DriverLicense"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("военныйбилет", "MilitaryIDCard"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("военныйбилетофицеразапаса", "ReserveOfficerSMilitaryIDCard"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("возврат", "Return"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("возвратденежныхдокументовпоставщику", "ReturnOfCashEquivalentsToVendor"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("возвраткомитенту", "RefundToCommittee"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("возвратматериаловизпроизводства", "ReturnOfMaterialsFromProduction"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("возвратнаятара", "ReturnContainers"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("возвратныеотходы", "RecyclableWaste"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("возвратоплатыклиентунаплатежнуюкарту", "RefundToCustomerSPaymentCard"); // @NON-NLS-1 @NON-NLS-2 @@ -154,25 +171,36 @@ Словарь.Вставить("возвратотклиентачерезплатежнуюсистему", "RefundFromCustomerViaPaymentSystem"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("возвратоткомиссионера", "ReturnFromCommissionAgent"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("возвратотрозничногопокупателя", "ReturnFromRetailCustomer"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("возвратподарочныхсертификатов", "ReturnOfGiftCards"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("возвратподдеятельность", "ReturnUnderOperation"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("возвратпоставщику", "ReturnToVendor"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("возвраттоваровпоставщику", "ReturnOfGoodsToVendor"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("возвраты", "Returns"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("возвратыпокупателей", "CustomerRefunds"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("восстановитьндс", "RestoreVAT"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("впользупоставщика", "InFavorOfSupplier"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("всевыполнено", "AllExecuted"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("встречноепредставление", "CounterRepresentation"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("втомчислендс", "IncludingVAT"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выбраннаяформа", "SelectedForm"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выводитьмесяцпрописью", "DisplayMonthInWords"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выводитьсуммубезкопеек", "OutputAmountWithoutFractionalPart"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выданныеавансы", "PrepaymentsToVendor_"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("выдано", "Issued"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выдать", "Issue"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("выдачаденежныхдокументовподотчетнику", "CashEquivalentsIssueToAdvanceHolder"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("выдачаденежныхсредств", "DisbursementOfFunds"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выигрышазартнойигры", "GamblingPrize"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выигрышлотереи", "LotteryPrize"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("выплата", "Repayment"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выполнен", "Completed"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выполненныеработы", "CompletedWorks"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("выпускпродукции", "ProductsRelease"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выпускпродукциивподразделение", "ProductsReleaseToBusinessUnit"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выпускпродукциинасклад", "ProductsReleaseToWarehouse"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("выработкасотрудников", "WorkOutput"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("высота", "Height"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("выставлен", "Issued"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("выставленсф", "SetSF"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("вышестоящееподразделение", "SuperiorDepartment"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("вэксплуатации", "InOperation"); // @NON-NLS-1 @NON-NLS-2 @@ -194,7 +222,9 @@ Словарь.Вставить("группааналитическогоучетаноменклатуры", "AnalyticalProductGroup"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("группанастроекфинансовогоучетарасчетов", "GroupOfFinancialAccountingSettingsForSettlements"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("группаос", "OSGroup"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("да", "Yes"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("давальческиесырьеиматериалы", "GiverRawMaterialsAndSupplies"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("данныевходящегодокумента", "IncomingDocumentData"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("данныеклассификатора", "ClassifierData"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("данныеноменклатуры", "ProductData_1"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("данныеотчета", "ReportData"); // @NON-NLS-1 @NON-NLS-2 @@ -225,6 +255,7 @@ Словарь.Вставить("датаотправления", "PostingDate"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("датапереходаправасобственности", "DateOfTransferOfTitleToGoods"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("датаплатежа", "PaymentDate"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("датаплатежногодокумента", "DateOfPaymentDocument"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("датаплатежнорасчетногодокумента", "DateOfDocumentInARAPAccounting"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("датаподписи", "SignatureDate"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("датаполучения", "DateReceived"); // @NON-NLS-1 @NON-NLS-2 @@ -250,7 +281,7 @@ Словарь.Вставить("депозиты", "Deposits"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("депонированиезарплаты", "SalaryDepositing"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("десятая", "Tenth"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("дипломатическийпаспорт", "DiplomaticPassport"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("дисконтнаякарта", "DiscountCard"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("длинамагнитногокода", "MagneticCodeLength"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("длинаштрихкода", "BarcodeLength"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("доверенность", "LetterOfAuthority"); // @NON-NLS-1 @NON-NLS-2 @@ -259,9 +290,15 @@ Словарь.Вставить("доверенностькомувыдана", "PowerOfAttorneyIssuedTo"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("доверенностьномер", "PowerOfAttorneyNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("договор", "Contract"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("договорконтрагента", "CounterpartyContract"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("договорссылка", "ContractLink"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("договорэквайрера", "AcquirerSContract"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("доклиента", "ToCustomer"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("документ", "Document"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("документоснование", "DocumentBasis"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("документоснованиевид", "DocumentBasisKind"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("документоснованиедата", "DocumentReferenceDocumentDateForPrintForms"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("документоснованиеномер", "DocumentBaseDocumentNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("документпередачи", "DocumentTransfers_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("документпоступления", "DocumentInflow"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("документпродажи", "DocumentSales"); // @NON-NLS-1 @NON-NLS-2 @@ -281,6 +318,7 @@ Словарь.Вставить("дополнительныезначениясвесом", "AdditionalValuesWithWeight"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("дополнительныереквизиты", "AdditionalAttributes"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("дополнительныйкодфсс", "SSFAdditionalCode"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("дополнительныйреквизит", "AdditionalAttribute"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("достройка", "Completion"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("духи", "PerfumesAndToiletWaters"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("единицаизмерения", "UnitOfMeasure"); // @NON-NLS-1 @NON-NLS-2 @@ -296,17 +334,22 @@ Словарь.Вставить("заголовок", "Title"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("заголовокформывыборазначения", "ValueChoiceFormTitle"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("заголовокформызначения", "ValueFormTitle"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("загранпаспортрф", "ForeignPassportOfRussianFederation"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("загранпаспортссср", "ForeignPassportOfUSSR"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("загружаетсяизинтернета", "ImportingFromInternet"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("займконтрагенту", "LoanToCounterparty"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("займы", "Loans_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("займыполученные", "LoansReceived"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("заказ", "OrderDocument"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("заказклиента", "SalesOrder"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("заказнаперемещение", "TransferOrder"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("заказпоставщику", "PurchaseOrder"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("заказчик", "Customer_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("закрытпринудительно", "ClosedForcefully"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("закрытсотклонением", "ClosedWithDeviation"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("закрытсотклонениемприглашения", "ClosedWithRejectionOfInvitation"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("закрытсошибкойпередачи", "ClosedWithTransmissionError"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("закупкаподдеятельность", "PurchaseForActivity"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("закупкапоимпорту", "PurchaseByImport"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("залог", "SecurityDeposit"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("заметки", "Notes"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("записи", "Records"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("заполнятьобязательно", "RequiredToFill"); // @NON-NLS-1 @NON-NLS-2 @@ -314,6 +357,7 @@ Словарь.Вставить("засчетпоставщика", "AtExpenseOfSupplier"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("засчетстороннейкомпании", "AtExpenseOfThirdPartyCompany"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("заявканарасходденежныхсредств", "RequestForSpendingFunds"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("значениедополнительногореквизита", "ValueOfAdditionalProps"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("значениесвойства", "PropertyValue"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("значенияполей", "FieldValues"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("идентификатор", "Id"); // @NON-NLS-1 @NON-NLS-2 @@ -330,6 +374,7 @@ Словарь.Вставить("импортнаяалкогольнаяпродукция", "ImportedAlcoholContainingProducts"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("имущественноеправо", "PropertyRight"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("имя", "Name"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("имяпланаобмена", "ExchangePlanName"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("инвентаризация", "Inventory_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("инвентарныйномер", "AssetID"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("инкассация", "Collection_"); // @NON-NLS-1 @NON-NLS-2 @@ -344,6 +389,9 @@ Словарь.Вставить("иностранныйбанк", "ForeignBank"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("исполнитель", "Performer"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("использоватьоплатуплатежнымикартами", "UsePaymentByCards"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("использоватьпараметрытранспортаemail", "UseTransportParametersEMAIL"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("использоватьпараметрытранспортаfile", "UseTransportParametersFILE"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("использоватьпараметрытранспортаftp", "UseTransportParametersFTP"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("использоватьсерии", "KeepAccountingByBatch"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("использоватьскидкинаценки", "UseDiscountsMarkups"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("использоватьсрокгодностисерии", "UseShelfLifeOnBatchRegistration"); // @NON-NLS-1 @NON-NLS-2 @@ -359,6 +407,8 @@ Словарь.Вставить("кассаполучатель", "CashAccountRecipient"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кассир", "Cashier"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кассоваясмена", "CashRegisterShift"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("кассы", "CashAccounts"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("кассыккм", "CashRegisters"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("квартал", "Quarter"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кемвыдан", "IssuedBy"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ключевыесвойства", "KeyProperties"); // @NON-NLS-1 @NON-NLS-2 @@ -375,12 +425,15 @@ Словарь.Вставить("кодвпрограмме", "CodeInApp"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодмвд", "FTSCode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодналоговогооргана", "TaxAuthorityCode"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("кодновогоузла", "NewNodeCode"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("кодновогоузлавторойбазы", "SecondInfobaseNewNodeCode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодоквэд", "BusinessActivityClassifierCode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодокп", "RNCPCode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодокпд2", "RNCTEAPS2Code"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодподразделения", "BusinessUnitCode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодподчиненностифсс", "FTSSubordinationCode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодпоокоф", "CodeByRNCFA"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("кодпредопределенногоузла", "PredefinedNodeCode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодпфр", "PensionFundCode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодтнвэд", "FEACNCode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кодтру", "TRUCode"); // @NON-NLS-1 @NON-NLS-2 @@ -419,6 +472,7 @@ Словарь.Вставить("контрагенткредитор", "Creditor"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("контрагенты", "Counterparties"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("коплате", "AmountDue"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("корректировкапоступлениятоваров", "AdjustmentOfGoodsReceipts"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("корректировочный", "Corrective"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("коррсчет", "CorrAccount"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("коэффициент", "ZoomRatio"); // @NON-NLS-1 @NON-NLS-2 @@ -451,8 +505,9 @@ Словарь.Вставить("кратностьдокумента", "DocumentMultiplicity"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кратностьконвертации", "ConversionMultiplicity"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кредит", "Credit"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("кредитбанка", "BankCredit"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("кредитконтрагента", "CounterpartyCredit"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кредиторскаязадолженность", "AccountsPayable"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("кредитыизаймы", "LoansAndBorrowings"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("кредитыполученные", "LoansReceived_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("крепость", "Strength"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("креслаколяски", "Wheelchairs"); // @NON-NLS-1 @NON-NLS-2 @@ -469,6 +524,7 @@ Словарь.Вставить("легкаяпромышленность", "LightIndustryGoodsAndClothes"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("линейный", "Linear"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("лотерейныйбилет", "LotteryTicket"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("магазин", "Store"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("магнитныйкод", "MagneticCode"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("максимальныйпроцентоплатыбонусами", "MaximumSharePayableByPoints"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("марка", "Brand"); // @NON-NLS-1 @NON-NLS-2 @@ -488,7 +544,8 @@ Словарь.Вставить("модернизация", "Modernization"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("модернизацияос", "FixedAssetsCostAdditions"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("мол", "FinanciallyLiablePerson"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("молочнаяпродукция", "MilkAndMilkProducts"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("молочнаяпродукциябезветис", "MilkAndDairyProductsWithoutVetIS"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("молочнаяпродукцияветис", "VETISDairyProducts"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("монотоварнаяупаковка", "SingleProductPackage"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("мужской", "Masculine"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("мультитоварнаяупаковка", "MultiproductPackaging"); // @NON-NLS-1 @NON-NLS-2 @@ -500,10 +557,12 @@ Словарь.Вставить("назначениеаванса", "AdvancePurpose"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("назначениеплатежа", "PaymentPurposes"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наименование", "Description"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("наименованиевторойбазы", "SecondInfobaseDescription"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наименованиевходящегодокумента", "ExternalDocumentName"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наименованиеконтактнойинформации", "NameOfContactInformation"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наименованиекраткое", "ShortDescription1"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наименованиеназначенияиспользования", "NameOfPurposeOfUse"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("наименованиенастройкивыполненияобмена", "DataExchangeExecutionSettingsDescription"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наименованиеоквэд", "ActivityType"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наименованиеоквэд2", "ActivityType2"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наименованиеокопф", "LegalForm"); // @NON-NLS-1 @NON-NLS-2 @@ -514,6 +573,7 @@ Словарь.Вставить("наименованиеспособаотражениярасходов", "NameOfMethodForReflectingExpenses"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наименованиетерриториальногоорганапфр", "PensionFundLocalAuthorityName"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наименованиетерриториальногоорганафсс", "SSFLocalAuthorityName"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("наименованиеэтойбазы", "ThisInfobaseDescription"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("накопленнаяамортизациябу", "AccumulatedDepreciationAccounting"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("накопленнаяамортизациявр", "AccumulatedDepreciationTD"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("накопленнаяамортизацияну", "AccumulatedDepreciationTaxAccounting"); // @NON-NLS-1 @NON-NLS-2 @@ -527,7 +587,6 @@ Словарь.Вставить("напрочиедоходы", "OnOtherIncome"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("напрочиерасходы", "ForOtherExpenses"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("настройкирасчета", "CalculationSettings"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("наутверждении", "AwaitingConfirmation"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("наценка", "Markup"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("началодиапазонамагнитногокода", "StartOfMagneticCodeRange"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("началодиапазонаштрихкода", "StartOfBarcodeRange"); // @NON-NLS-1 @NON-NLS-2 @@ -537,6 +596,7 @@ Словарь.Вставить("начислениебонусныхбаллов", "BonusPointAccrual"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("начислениеизноса", "WearAccrual"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("начислениеизносапоенаоф", "AccrueWearAsPerUFADR"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("начислениеоценочныхобязательствпоотпускам", "AccrualOfEstimatedVacationLiabilities"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("начисления", "Accruals"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("начислятьамортизациюбу", "DepreciationAccrualAccounting"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("начислятьамортизациюну", "DepreciationAccrualTaxAccounting"); // @NON-NLS-1 @NON-NLS-2 @@ -565,6 +625,7 @@ Словарь.Вставить("нерассчитывается", "NotCalculating"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("несогласована", "NotAgreedUpon"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("несформирован", "NotGenerated1"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("нет", "None"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("никотиносодержащаяпродукция", "NicotineContainingProducts"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("номенклатура", "Products"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("номер", "Number"); // @NON-NLS-1 @NON-NLS-2 @@ -586,8 +647,10 @@ Словарь.Вставить("номеркассовойсмены", "CashShiftNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("номерлицевогосчета", "PersonalAccountNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("номерпаспорта", "PassportNumber"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("номерплатежногодокумента", "NumberOfPaymentDocument"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("номерплатежнорасчетногодокумента", "SettlementDocumentNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("номерраздела", "SectionNumber"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("номеррасширенный", "ExtendedNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("номерстроки", "LineNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("номерстрокидокумента", "DocumentRowNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("номерсф", "InvoiceNumber"); // @NON-NLS-1 @NON-NLS-2 @@ -600,6 +663,7 @@ Словарь.Вставить("облагаетсяндс", "SubjectToVAT"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("облагаетсяндсупокупателя", "SubjectToVATAtCustomer"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("обмензавершен", "ExchangeCompleted"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("обмензавершенсисправлением", "ExchangeCompletedWithAdjustments"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("обособленноеподразделение", "BranchOffice"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("обувь", "ShoesProducts"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("общая", "Shared3"); // @NON-NLS-1 @NON-NLS-2 @@ -608,12 +672,21 @@ Словарь.Вставить("объем", "VolumeM3"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("объемдал", "VolumeInDecaliters"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("объемпродукцииработдлявычисленияамортизации", "VolumeOfProductsWorksForCalculatingDepreciationInPhysicalUnits"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("обязательноемедицинскоестрахование", "ContributionsForCMI"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("обязательноемедицинскоестрахованиеип", "ContributionsForCMIIE"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("обязательноепенсионноестрахование", "ContributionsForMPI"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("обязательноепенсионноестрахованиеип", "ContributionsForMPIIE"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("обязательноесоциальноестрахование", "ContributionsForCSI"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("огрн", "RegistrationNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ожидаемаядатапоставки", "ExpectedDeliveryDate"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ожидаемаядатапоступления", "ExpectedDateOfReceipt"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ожидаетсяизвещениеополучении", "PendingReceiptNotification"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ожидаетсяизвещениепоотклонению", "NotificationOfRejectionIsExpected"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ожидаетсяисправление", "PendingCorrection"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ожидаетсяответнаприглашение", "WaitingForResponseToInvitation"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ожидаетсяпередачаоператору", "PendingTransferToProvider"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ожидаетсяподтверждение", "PendingConfirmation"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ожидаетсяподтверждениеаннулирования", "WaitingForConfirmationOfCancellation"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ожидаетсяподтверждениеоператора", "PendingConfirmationOfProvider"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("окато", "RNCPS"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("оквэд", "RNCEA"); // @NON-NLS-1 @NON-NLS-2 @@ -624,6 +697,7 @@ Словарь.Вставить("округлятьвбольшуюсторону", "RoundUp"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("октмо", "MunicipalTerritoriesClassifier"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("окфс", "OKFS"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("операцияпоплатежнойкарте", "PaymentCardTransaction"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("описание", "LongDesc"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("оплатабонуснымибаллами", "PaymentWithBonusPoints"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("оплатаконтрагентам", "PaymentToCounterparties"); // @NON-NLS-1 @NON-NLS-2 @@ -634,9 +708,13 @@ Словарь.Вставить("оплатаплатежнымикартамиподарочныхсертификатов", "PaymentByCreditCardsForGiftCertificates"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("оплатасертификатами", "PaymentByCertificates"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("оплаты", "Payments"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("оплатыккм", "CashRegisterPayments"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("оплачен", "Paid"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("оплачено", "Paid"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("оплаченчастично", "PartiallyPaid"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("определяетсяраспределением", "DeterminedByAllocation"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("оприходованиеподдеятельность", "ActivityRegistration"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("оприходованиетоваров", "GoodsRecordingAsReceived"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("оптовый", "Wholesale_1"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("организация", "Organization"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("организацияотбор", "CompanyFilter"); // @NON-NLS-1 @NON-NLS-2 @@ -669,36 +747,49 @@ Словарь.Вставить("отменено", "Canceled"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ототправителяопределяетслужбадоставки", "FromSenderDeterminedByDeliveryService"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("отпускпроизвел", "VacationProduced"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("отражениезарплатывфинансовомучете", "PostingPayrollExpensesInFinancialAccounting"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("отсрочкаплатежа", "DeferredPayment"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("отчество", "MiddleName"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("отчетбанкапооперациямэквайринга", "BankReportOnAcquiringTransactions"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("отчетдавальцу", "ReportToMaterialProvider"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("отчеткомиссионера", "ConsignmentReportFromCustomer"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("отчеткомитенту", "ConsignmentReportToVendor"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("отчеторозничныхпродажах", "RetailSalesReport"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("отчетпереработчика", "SubcontractorReport"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("оценочныеобязательства", "Provisions"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("очередность", "RankingInPriority"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("параметрыпрописи", "AmountInWordsParameters"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("паспортминморфлота", "MinmorflotPassport"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("паспортморяка", "SeafarerSPassport"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("паспортрф", "PassportOfRussianFederation"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("паспортссср", "PassportOfUSSR"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("парольархивасообщенияобмена", "ArchivePasswordExchangeMessages"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("патент", "Patent"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("патентнаясистема", "PatentSystem"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("первая", "First"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("первоначальнаястоимостьбу", "InitialCostLocalAccounting"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("первоначальнаястоимостьну", "InitialCostTA"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("перевозчик", "Carrier"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("передача", "Transfer_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("передачабезоплаты", "TransferWithoutPayment"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("передачадавальцу", "TransferToMaterialProvider"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("передачаматериаловвпроизводство", "MaterialTransferToProduction"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("передачанакомиссию", "TransferToCommissionAgent"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("передачапереработчику", "TransferToToller"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("передачасполнойоплатой", "TransferWithFullPayment"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("передачасчастичнойоплатой", "TransferWithPartialPayment"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("перемещениеденежныхдокументов", "CashEquivalentsTransfer"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("перемещениеподдеятельность", "TransferForActivity"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("перемещениетоваров", "InventoryTransfer"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("переносзадолженности", "DebtTransfer_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("переоценка", "Revaluation"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("переоценкатоваровврознице", "GoodsRevaluationInRetail"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("пересчеттоваров", "InventoryRecount"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("перечислениевбюджет", "TransferOfTaxesAndContributions"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("период", "Period"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("периодотбор", "PeriodFilter"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("периодрегистрации", "RegistrationPeriod"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("периодстрокой", "PeriodAsString"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("пиво", "BeerOrBeerDrink"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("платеж", "Payment_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("платежвыплата", "PaymentDisbursement"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("платежказино", "PaymentCasino"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("платежнаякарта", "PaymentCard"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("платежнаяссылка", "PaymentLink_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("платежноепоручение", "PaymentOrder"); // @NON-NLS-1 @NON-NLS-2 @@ -746,6 +837,7 @@ Словарь.Вставить("пол", "Gender"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("полугодье", "HalfYear_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("получениеналичных", "ReceivingCash"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("пользователь", "User"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("помещение", "Premise"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("понаработке", "ByAssetActivity"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("поручениеэкспедиторувпункте", "InstructionForShippingAgentAtPoint"); // @NON-NLS-1 @NON-NLS-2 @@ -756,7 +848,11 @@ Словарь.Вставить("посроку", "ByDate"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("поставщик", "Vendor"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("постоплата", "Postpayment"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("поступлениеденежныхдокументовотподотчетника", "ReceiptOfFinancialDocumentsFromAdvanceHolder"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("поступлениеденежныхдокументовотпоставщика", "ReceiptOfFinancialDocumentsFromVendor"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("поступлениеотпереработчика", "ReceiptFromToller"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("поступлениеподдеятельность", "IncomeForActivities"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("поступлениетоваровуслуг", "ReceiptOfGoodsServices"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("посуммечиселлетиспользования", "BySumOfUsefulLifeYearNumbers"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("потребительскаяупаковка", "ConsumerPackaging"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("пофактическомуиспользованию", "ByActualUsage"); // @NON-NLS-1 @NON-NLS-2 @@ -771,6 +867,7 @@ Словарь.Вставить("представлениепериода", "PeriodPresentation"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("предъявленсф", "InvIsSubmitted"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("префикс", "Prefix"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("префиксинформационнойбазыисточника", "SourceInfobasePrefix"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("приемкаотпоставщика", "ReceiptFromVendor"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("приемкаповозвратуотклиента", "ReceivingByReturnFromACustomer"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("приемкапоперемещению", "ReceivingByTransfer"); // @NON-NLS-1 @NON-NLS-2 @@ -778,12 +875,14 @@ Словарь.Вставить("признакагента", "AgentAttribute"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("признакпредметарасчета", "SettlementSubjectFlag"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("признакспособарасчета", "ShowsCalculationMethod"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("приложение", "Package"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("принципал", "Principal"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("принят", "Accepted"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("принятиекучету", "Recognition"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("принятиекучетусвводомвэксплуатацию", "RecognitionWithCommissioning"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("принятоот", "ReceivedFrom"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("припередаче", "OnCommissioning"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("причинапроведенияинвентаризации", "PhysicalInventoryCountReason"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("проведениевзаимозачета", "CarryingOutNetting"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("программалояльности", "LoyaltyProgram_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("продавец", "Seller"); // @NON-NLS-1 @NON-NLS-2 @@ -793,7 +892,9 @@ Словарь.Вставить("продажаоблагаетсяенвд", "SaleIsSubjectToUTII"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("продажаоблагаетсяндс", "SaleIsSubjectToVAT"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("продажапопатенту", "SalesByPatent"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("продажатоваровнакомиссии", "SaleOfGoodsOnCommission"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("продукция", "ManufacturedProduct"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("продукцияизнатуральногомеха", "FurSkinProducts"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("производитель", "Manufacturer"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("производительимпортер", "ManufacturerImporter"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("пропорциональнообъемупродукции", "ByUnitsOfProduction"); // @NON-NLS-1 @NON-NLS-2 @@ -822,7 +923,10 @@ Словарь.Вставить("разборка", "Disassembly"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("разделы", "Sections"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("разрешитьчастичнуюоплату", "AllowPartialPayment"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("распоряжениенаотгрузку", "ShipmentReferenceOrder"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("распоряжениенаприемку", "OrderForAcceptance"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("распределяемыезатраты", "ExpensesForAllocation"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("расход", "Expense"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("расходынаниокр", "RDExpenses"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("расценка", "Rate_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("расчетный", "Estimated_"); // @NON-NLS-1 @NON-NLS-2 @@ -842,6 +946,8 @@ Словарь.Вставить("расшифровкаплатежа", "ARAPDetails"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("реализацияклиенту", "SaleToCustomer"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("реализациятоваров", "GoodsSales"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("реализациятоваровуслуг", "CustomerInvoice"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("регистрационныйномер", "RegistrationNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("регистрационныйномернерезидента", "NonResidentRegistrationNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("регистрационныйномерпфр", "PensionFundRegistrationNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("регистрационныйномерфсс", "SSFRegistrationNumber"); // @NON-NLS-1 @NON-NLS-2 @@ -850,6 +956,7 @@ Словарь.Вставить("резерв", "Reserve"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("резервбу", "ACReserve"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("резервну", "TAReserve"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("резервы", "Reserves"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("реквизитыплатежа", "PaymentDetails"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("реконструкция", "Reconstruction"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("рнпт", "ProductBatchID"); // @NON-NLS-1 @NON-NLS-2 @@ -858,13 +965,14 @@ Словарь.Вставить("руководителькадровойслужбы", "HRDirector"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("самовывоз", "SelfPickup"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("сборка", "Assembly"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("сборкатоваров", "AssemblyFromComponents"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("свидетельстводатавыдачи", "SertificateDateOfIssue"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("свидетельствоорождении", "BirthCertificate"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("свидетельствосерияномер", "SeriesAndNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("свифтбик", "SWIFTBIC"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("сводныйкомиссионный", "ConsolidatedCommission"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("свойство", "Property"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("себестоимость", "Cost_"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("серииноменклатуры", "ItemsBatches"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("серийныйномер", "SerialNumber"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("серия", "Series"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("серияпродукции", "ProductionSeries_"); // @NON-NLS-1 @NON-NLS-2 @@ -876,6 +984,7 @@ Словарь.Вставить("силамиперевозчикадопунктапередачи", "ByCarrierToTransferPoint"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("силамиперевозчикапоадресу", "ByCarrierToAddress"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("силамипоставщикадонашегосклада", "ByVendorToOurWarehouse"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("синхронизацияданныхчерезуниверсальныйформат", "DataSynchronizationViaUniversalFormat"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("системабыстрыхплатежей", "InstantPayments"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("системаналогообложения", "TaxationSystem"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("скидкинаценки", "DiscountsMarkups"); // @NON-NLS-1 @NON-NLS-2 @@ -887,7 +996,9 @@ Словарь.Вставить("скомиссионеромназакупку", "WithCommissionAgentForPurchase"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("скомитентом", "WithConsignor"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("скомитентомназакупку", "CustomerInvoiceOutsourcedSale"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("собственные", "Own"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("собственныетовары", "OwnProducts"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("событиеос", "FixedAssetsEvent"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("согласована", "AgreedUpon"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("согласованноеизменение", "AgreedChange"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("содержание", "Content"); // @NON-NLS-1 @NON-NLS-2 @@ -904,8 +1015,10 @@ Словарь.Вставить("спиртосодержащаянепищеваяпродукция", "AlcoholContainingNonFoodProducts"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("спиртосодержащаяпищеваяпродукция", "AlcoholContainingFoodProducts"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("списание", "WriteOff"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("списаниеденежныхдокументов", "WriteOffFinancialDocuments"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("списаниезадолженности", "DebtCancellation"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("списаниеприпринятиикучету", "IncludingInExpensesOnRecognition"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("списаниетоваровнакомиссии", "WriteOffOfGoodsForCommissions"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("спокупателем", "WithCustomer"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("способвыставления", "BillingMethod"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("способдоставки", "DeliveryMethod"); // @NON-NLS-1 @NON-NLS-2 @@ -944,11 +1057,13 @@ Словарь.Вставить("стоимостьтоваров", "GoodsCost"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("страна", "Country"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("странаввозанерф", "ImportingCountryIsNotRF"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("странамира", "WorldCountry"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("странапроисхождения", "OriginCountry"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("странапроисхождениядоизменения", "CountryOfOriginBeforeChange"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("странарегистрации", "RegistrationCountry"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("страховойномерпфр", "InsuranceNumberOfTheFIU"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("страховыевзносы", "InsuranceContributions"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("строка", "String"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("сумма", "Sum"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("суммабезндс", "AmountExcludingVAT"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("суммабонусныхбаллов", "AmountOfBonusPoints"); // @NON-NLS-1 @NON-NLS-2 @@ -982,6 +1097,7 @@ Словарь.Вставить("суммарегл", "SumCompl"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("суммарезерва", "ReserveAmount_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("суммаскидки", "DiscountAmount"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("суммасучетомскидки", "AmountIncludingDiscount"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("суммаучет", "AmountAccounting_"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("суммафакт", "SumReal"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("счетафактурывыданныепокупателям", "InvoicesIssuedToCustomers"); // @NON-NLS-1 @NON-NLS-2 @@ -1025,8 +1141,11 @@ Словарь.Вставить("счетфактура", "TaxInvoice"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("счетфактуравыданный", "InvoiceIssued"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("счетфактуравыданныйпокупателю", "InvoiceIssuedToBuyer"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("счетфактураполученный", "VendorInvoiceReceived"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("сырьевойтовар", "Commodity"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("табак", "Tobacco"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("таможеннаядекларация", "CustomsDeclaration"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("таможеннаядекларацияссылка", "CustomsDeclarationLink"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("таможеннаястоимость", "CustomsValue"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("таможенныйсбор", "CustomsFee"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("таможенныйштраф", "CustomsPenalty"); // @NON-NLS-1 @NON-NLS-2 @@ -1070,12 +1189,43 @@ Словарь.Вставить("точностьединицыизмерения", "AccuracyOfUnitOfMeasure"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("точностьокругления", "RoundingPrecision"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("транспортныесредства", "Vehicles"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяизвещениеополучении", "NotificationOfReceiptIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяизвещениепоотклонению", "NotificationOfRejectionIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяисправлениеошибкипередачи", "TransmissionErrorCorrectionIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяотправка", "SendingRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяотправкааннулирования", "SendingCancellationIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяотправкаизвещения", "SendingNotificationIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяотправкаизвещенияпоотклонению", "SendingNotificationOfRejectionIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяотправкаотклонения", "SendingRejectionIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяотправкаприглашения", "SendingInvitationIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяповторнаяотправка", "ResendingRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподготовкакотправке", "PreparationForSendingIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподготовкакотправкеаннулирования", "PreparationForSendingCancellationIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподготовкакотправкеизвещения", "PreparationForSendingNotificationIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподготовкакотправкеизвещенияпоотклонению", "PreparationIsRequiredForSendingNotificationOfRejection"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподготовкакотправкеотклонения", "PreparationForSendingRejectionIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподписание", "SigningRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподписаниеаннулирования", "SigningOfCancellationIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподписаниеизвещения", "SigningOfNotificationIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподписаниеизвещенияпоотклонению", "SigningNotificationOfRejectionIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподписаниеотклонения", "RejectionSignatureIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяподтверждениеаннулирования", "ConfirmationOfCancellationIsRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяутверждение", "ApprovalRequired"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("требуетсяуточнение", "ClarificationIsRequired"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("требуютсядействия", "ActionsAreRequired"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("тфомс", "TCMIF"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("удалитьожидаетсявыписка", "DeleteAwaitingStatement"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("удалитьожидаетсяизвещение", "DeleteAwaitingNotification"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("удалитьожидаетсяисполнение", "DeleteFulfillmentIsExpected"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("удалитьожидаетсяотзыв", "DeleteRevokeIsExpected"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("удалитьожидаетсяотправкаполучателю", "DeleteItIsExpectedToBeSentToRecipient"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("удалитьотклоненоператором", "DeleteRejectedByOperator"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("удалитьплатежисполнен", "DeletePaymentIsExecuted"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("удалитьтребуетсяподтверждение", "DeleteConfirmationIsRequired"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("удержатькомиссионноевознаграждение", "WithholdCommission"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("удостоверениеофицера", "OfficerSLicense"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("уменьшаемогоостатка", "ReducedBalance"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("упакованнаявода", "PackagedWater"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("упаковка", "Package"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("упаковканоменклатуры", "ProductPackaging"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("уполномоченноелицо", "AuthorizedPerson"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("уполномоченноелицоотбор", "AuthorizedPersonSelection"); // @NON-NLS-1 @NON-NLS-2 @@ -1085,18 +1235,21 @@ Словарь.Вставить("услуга", "OperationService"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("услугаповознаграждению", "RewardService"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("услуги", "Services"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("установкаценноменклатуры", "PriceSetup"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("устаревший", "Obsolete1"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("утвержденнаядатаплатежа", "ApprovedPaymentDate"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("утвержденнаяформаоплаты", "ApprovedFormOfPayment"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("уточнениенаименования", "NameClarification"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("учетагентскогондс", "CompanyActsAsAVATTaxAgent"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("учетвыручкивоперационнойкассе", "AccountingForRevenueInOperatingCashRegister"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("файлы", "Files"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("факс", "Fax"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("фактическийадрес", "ActualAddress"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("фамилия", "LastName"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("физическиелица", "Persons"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("физическоелицо", "Individual"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("физическоелицоотбор", "IndividualSelection"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("фио", "LASTFIRSTNAME"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("фио", "LastFirstName"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("формаоплаты", "PaymentMethod"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("форматвыгрузки", "UploadFormat"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("форматсвойства", "FormatProperties"); // @NON-NLS-1 @NON-NLS-2 @@ -1104,6 +1257,7 @@ Словарь.Вставить("фсс", "InsuranceContributionsToSSF"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ффомс", "InsuranceContributionsToFCMIF"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("характеристика", "Characteristic"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("характеристиканоменклатуры", "ProductCharacteristic"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("характеристикапродукции", "ItemVariant"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("хранимыйфайл", "StoredFile"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("цена", "Price"); // @NON-NLS-1 @NON-NLS-2 @@ -1115,12 +1269,15 @@ Словарь.Вставить("ценазаупаковку", "PricePerPackaging"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ценапередачи", "TransferPrice"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ценапоступления", "ReceiptPrice"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ценныебумаги", "Securities"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ценоваягруппа", "PriceGroup"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("ценовыегруппы", "PriceGroups"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("цифровойиндексобособленногоподразделения", "NumericCodeForTaxInvoices"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("частичнаяликвидация", "PartialDisposal"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("частичноевыбытиевариантучета", "PartialDisposalAccountingOption"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("частичноевыбытиеколичество", "PartialDisposalQuantity"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("чекккм", "CashRegisterReceipt"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("черновик", "Draft"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("шаблонмагнитнойкарты", "MagneticStripeCardTemplate"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("шаблоныкодов", "CodeTemplates"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("шины", "Tires"); // @NON-NLS-1 @NON-NLS-2 @@ -1128,13 +1285,20 @@ Словарь.Вставить("шифрпоенаоф", "CodeByUFADR"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("штраф", "Penalty"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("штрихкод", "Barcode"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("штрихкодотбор", "BarcodeSelection"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("эквайрер", "Acquirer"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("эквайринговыетерминалы", "POSTerminals"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("эквайринговыйтерминал", "POSTerminal"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("экспортнесырьевыхтоваров", "ExportOfNonResourceGoods"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("экспортсырьевыхтоваров", "CommodityExports"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("электронно", "Electronically"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("электронныеподписи", "DigitalSignatures"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("электронныеуслуги", "DigitalServices"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("эмитент", "Issuer"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("этапгосконтрактаеис", "UISStateContractStep"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("этапыоплаты", "PaymentSteps"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("этовозврат", "ThisIsReturn"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("этодоговорэквайринга", "ThisIsAcquiringContract"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("этодополнительноесведение", "IsAdditionalInfo"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("этодопрасходы", "ThisIsAdditionalExpense"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("этонабор", "IsRecordsSet"); // @NON-NLS-1 @NON-NLS-2 @@ -1144,432 +1308,1286 @@ Словарь.Вставить("юридическоефизическоелицо", "CompanyIndividual"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("являетсярнпт", "IsRNPT"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("являетсяудостоверяющимличность", "IsIdentityDocument"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("пользовательскаякидругое", "UserCIOther"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("синхронизацияданныхчерезуниверсальныйформат", "DataSynchronizationViaUniversalFormat"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("видытранспортасообщенийобмена", "ExchangeMessagesTransportTypes"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("wsпассивныйрежим", "WSPassiveMode"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("внешняясистема", "ExternalSystem"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("имяпланаобмена", "ExchangePlanName"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("наименованиевторойбазы", "SecondInfobaseDescription"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("наименованиеэтойбазы", "ThisInfobaseDescription"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("кодновогоузлавторойбазы", "SecondInfobaseNewNodeCode"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("префиксинформационнойбазыисточника", "SourceInfobasePrefix"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("видтранспортасообщенийобмена", "ExchangeMessagesTransportKind"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("парольархивасообщенияобмена", "ArchivePasswordExchangeMessages"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fileкаталогобменаинформацией", "FILEDataExchangeDirectory"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fileсжиматьфайлисходящегосообщения", "FILECompressOutgoingMessageFile"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("использоватьпараметрытранспортаemail", "UseTransportParametersEMAIL"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("использоватьпараметрытранспортаfile", "UseTransportParametersFILE"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("да", "Yes"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("нет", "None"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("использоватьпараметрытранспортаftp", "UseTransportParametersFTP"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("наименованиенастройкивыполненияобмена", "DataExchangeExecutionSettingsDescription"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("кодновогоузла", "NewNodeCode"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("кодпредопределенногоузла", "PredefinedNodeCode"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("версияформатафайланастроекобменаданными", "ExchangeDataSettingsFileFormatVersion"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("собственные", "Own"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("агентские", "Agency"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("штрихкодотбор", "BarcodeSelection"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("выдано", "Issued"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("выставлен", "Issued"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("огрн", "RegistrationNumber"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("регистрационныйномер", "RegistrationNumber"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("оплачен", "Paid"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("оплачено", "Paid"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("приложение", "Package"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("упаковка", "Package"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("эквайер", "Acquirer"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("эквайрер", "Acquirer"); // @NON-NLS-1 @NON-NLS-2 + // АПК:1036-вкл не проверять текст на орфографию - + Возврат Словарь; - + КонецФункции - + // Возвращаемое значение: // Соответствие // Функция Словарь_en_ru() Экспорт - + Словарь = Новый Соответствие; - + // АПК:1036-выкл не проверять текст на орфографию - Словарь.Вставить("skucounterparty_", "SKUКонтрагента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("prepayment_", "Аванс"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("prepayments", "Авансы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("automatically", "Автоматически"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("agent", "Агент"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("agencyfee", "АгентскоеВознаграждение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("address", "Адрес"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("deliveryaddress", "АдресДоставки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("addressasstring", "АдресСтрокой"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("email", "АдресЭлектроннойПочты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("letterofcredit", "Аккредитив"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("deedoftransfer", "АктНаПередачуПрав"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("exciseduty", "Акциз"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("excisestamps", "АкцизныеМарки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("alcoholic", "Алкогольная"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("alcoholcontainingproducts", "АлкогольнаяПродукция"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("alternativetobaccoproducts", "АльтернативныйТабак"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("depreciationgroup", "АмортизационнаяГруппа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("depreciation", "Амортизация"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("depreciationbefore2009", "АмортизацияДо2009"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fixedassetsdepreciationcharge", "АмортизацияОС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("canceled_", "Аннулирован"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("antiseptics", "Антисептики"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("lease", "Аренда"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sku", "Артикул"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dietarysupplements", "БАДы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bank", "Банк"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transferbank", "БанкДляРасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bankpaymentorder", "БанковскийОрдер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bankpayingagent", "БанковскийПлатежныйАгент"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bankpayingsubagent", "БанковскийПлатежныйСубагент"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bankaccount", "БанковскийСчет"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("counterpartybankaccount", "БанковскийСчетКонтрагента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("companybankaccount", "БанковскийСчетОрганизации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("senderbankaccount", "БанковскийСчетОтправитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("employeesbankaccount", "БанковскийСчетСотрудника"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bankaccountpayment", "Безналичная"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("excludingvat", "БезНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bic", "БИК"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("abbreviateddescription", "НаименованиеСокращенное"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accelerationfactoraccounting", "КоэффициентУскоренияБУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accepted", "Принят"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("account_settlement", "СчетУчетаРасчетов"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("accountant", "Бухгалтер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("currency", "Валюта"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("arapcurrency", "ВалютаВзаиморасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashcurrency", "ВалютаДенежныхСредств"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("currencyofconversion", "ВалютаКонвертации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bonusconversioncurrency", "ВалютаКонвертацииБонусов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("localaccountingcurrency", "ВалютаРегламентированногоУчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pricecurrency", "ВалютаЦены"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentoption", "ВариантОплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("postingoption", "ВариантОтражения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("commissioning", "ВводВЭксплуатацию"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("webpage", "ВебСтраница"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("statement", "Ведомость"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bicycles", "Велосипеды"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("weight", "Вес"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("soldbyweight", "Весовой"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashcontribution", "ВзносНаличными"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("agencyagreementkind", "ВидАгентскогоДоговора"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("kindofalcoholcontainingproducts", "ВидАлкогольнойПродукции"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofbankaccount", "ВидБанковскогоСчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("activitytypefortaxaccountingofcosts", "ВидДеятельностиДляНалоговогоУчетаЗатрат"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofagreement", "ВидДоговора"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentkind", "ВидДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentviewfromclassifier", "ВидДокументаИзКлассификатора"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documenttypeselection", "ВидДокументаОтбор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofdocumentrighttosign", "ВидДокументаПравоПодписи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("inventoryownerattribute", "ВидЗапасов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cardkind", "ВидКарты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("contactinformationkind", "ВидКонтактнойИнформации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("productkind", "ВидНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("kindofaccountingobject", "ВидОбъектаУчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("operationkind", "ВидОперации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentkind_", "ВидОплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("responsiblepersonkind", "ВидОтветственногоЛица"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofresponsiblepersonselection", "ВидОтветственногоЛицаОтбор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofresponsiblepersonbyline", "ВидОтветственногоЛицаСтрокой"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("reportkind", "ВидОтчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentkind", "ВидПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("giftcertificatekind", "ВидПодарочногоСертификата"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("producttypeis", "ВидПродукцииИС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("workkind", "ВидРабот"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofexpensesfornoncoreactivities", "ВидРасходовПоНеосновнойДеятельности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofexpensesforcoreactivities", "ВидРасходовПоОсновнойДеятельности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("araptype", "ВидРасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofcalculationsadvanced", "ВидРасчетовРасширенный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofreserve", "ВидРезерва"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("eventkindwithfixedassets", "ВидСобытияОС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountcr", "СчетКт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountdr", "СчетДт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforadvancesissued", "СчетУчетаАвансовВыданных"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforadvancesreceived", "СчетУчетаАвансовПолученных"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithcounterparty", "СчетУчетаРасчетовСКонтрагентом"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithcreditorscommission", "СчетУчетаРасчетовСКредиторамиКомиссия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithcreditorsinterest", "СчетУчетаРасчетовСКредиторамиПроценты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithcreditorsprincipaldebt", "СчетУчетаРасчетовСКредиторамиОсновнойДолг"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithcustomers", "СчетУчетаРасчетовСКлиентами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithcustomerstare", "СчетУчетаРасчетовСКлиентамиТара"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithdebtorscommission", "СчетУчетаРасчетовСДебиторамиКомиссия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithdebtorsinterest", "СчетУчетаРасчетовСДебиторамиПроценты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithdebtorsprincipaldebt", "СчетУчетаРасчетовСДебиторамиОсновнойДолг"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithlessorleaseobligations", "СчетУчетаРасчетовСЛизингодателемАрендныеОбязательства"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithlessorleasingservices", "СчетУчетаРасчетовСЛизингодателемЛизинговыеУслуги"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithlessorrepurchaseofleaseditem", "СчетУчетаРасчетовСЛизингодателемВыкупПредметаЛизинга"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithlessorsecuritypayment", "СчетУчетаРасчетовСЛизингодателемОбеспечительныйПлатеж"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithsuppliers", "СчетУчетаРасчетовСПоставщиками"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountforsettlementswithsupplierstare", "СчетУчетаРасчетовСПоставщикамиТара"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountfortransfertocommission", "СчетУчетаПередачиНаКомиссию"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountingforrevenueinoperatingcashregister", "УчетВыручкиВОперационнойКассе"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountnumber", "НомерСчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountspayable", "КредиторскаяЗадолженность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accountsreceivable", "ДебиторскаяЗадолженность"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("accounttype", "ВидСчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("invoicetype", "ВидСчетаФактуры"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("edview", "ВидЭД"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("owner", "Владелец"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accrualdate", "ДатаНачисления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accrualofestimatedvacationliabilities", "НачислениеОценочныхОбязательствПоОтпускам"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accruals", "Начисления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accruewearasperufadr", "НачислениеИзносаПоЕНАОФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accumulateddepreciationaccounting", "НакопленнаяАмортизацияБУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accumulateddepreciationtaxaccounting", "НакопленнаяАмортизацияНУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accumulateddepreciationtd", "НакопленнаяАмортизацияВР"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("accuracyofunitofmeasure", "ТочностьЕдиницыИзмерения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("acquirer", "Эквайрер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("acquirerscontract", "ДоговорЭквайрера"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("acreserve", "РезервБУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("actionsarerequired", "ТребуютсяДействия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("activityregistration", "ОприходованиеПодДеятельность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("activitytype", "НаименованиеОКВЭД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("activitytype2", "НаименованиеОКВЭД2"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("activitytypefortaxaccountingofcosts", "ВидДеятельностиДляНалоговогоУчетаЗатрат"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("actualaddress", "ФактическийАдрес"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("additionalattribute", "ДополнительныйРеквизит"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("additionalattributes", "ДополнительныеРеквизиты"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("additionalvaluesowner", "ВладелецДополнительныхЗначений"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cardholder", "ВладелецКарты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fileowner", "ВладелецФайла"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("technicalcharacteristics", "ВладелецХарактеристики"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nonoperatingincome", "ВнереализационныйДоход"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("internalmovement", "ВнутреннееПеремещение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("internaltransmission", "ВнутренняяПередача"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("driverlicense", "ВодительскоеУдостоверение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("militaryidcard", "ВоенныйБилет"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("reserveofficersmilitaryidcard", "ВоенныйБилетОфицераЗапаса"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("return", "Возврат"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("refundtocommittee", "ВозвратКомитенту"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("returncontainers", "ВозвратнаяТара"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("recyclablewaste", "ВозвратныеОтходы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("refundtocustomerspaymentcard", "ВозвратОплатыКлиентуНаПлатежнуюКарту"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("returnfromcustomer", "ВозвратОтКлиента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("refundfromcustomerviapaymentsystem", "ВозвратОтКлиентаЧерезПлатежнуюСистему"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("returnfromcommissionagent", "ВозвратОтКомиссионера"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("returnfromretailcustomer", "ВозвратОтРозничногоПокупателя"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("returnunderoperation", "ВозвратПодДеятельность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("returntovendor", "ВозвратПоставщику"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("returns", "Возвраты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("restorevat", "ВосстановитьНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("infavorofsupplier", "ВПользуПоставщика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("additionalvaluesused", "ДополнительныеЗначенияИспользуются"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("additionalvalueswithweight", "ДополнительныеЗначенияСВесом"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("address", "Адрес"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("addressasstring", "АдресСтрокой"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("adjustmentofgoodsreceipts", "КорректировкаПоступленияТоваров"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("advanceholder", "ПодотчетноеЛицо"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("advancepayment", "НаАванс"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("advancepurpose", "НазначениеАванса"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("advancereportlink", "АвансовыйОтчетСсылка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("agency", "Агентские"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("agencyagreementkind", "ВидАгентскогоДоговора"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("agencyfee", "АгентскоеВознаграждение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("agent", "Агент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("agentattribute", "ПризнакАгента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("agreedchange", "СогласованноеИзменение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("agreedupon", "Согласована"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("alcohol", "Спирт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("alcoholcontainingfoodproducts", "СпиртосодержащаяПищеваяПродукция"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("alcoholcontainingnonfoodproducts", "СпиртосодержащаяНеПищеваяПродукция"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("alcoholcontainingproducts", "АлкогольнаяПродукция"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("alcoholic", "Алкогольная"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("allexecuted", "ВсеВыполнено"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("includingvat", "ВТомЧислеНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("selectedform", "ВыбраннаяФорма"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("displaymonthinwords", "ВыводитьМесяцПрописью"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("outputamountwithoutfractionalpart", "ВыводитьСуммуБезКопеек"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("prepaymentstovendor_", "ВыданныеАвансы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("issue", "Выдать"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("gamblingprize", "ВыигрышАзартнойИгры"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("lotteryprize", "ВыигрышЛотереи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("completed", "Выполнен"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("completedworks", "ВыполненныеРаботы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("productsreleasetobusinessunit", "ВыпускПродукцииВПодразделение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("productsreleasetowarehouse", "ВыпускПродукцииНаСклад"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("height", "Высота"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("setsf", "ВыставленСФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("superiordepartment", "ВышестоящееПодразделение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("inoperation", "ВЭксплуатации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("inelectronicform", "ВЭлектронномВиде"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("chiefaccountant", "ГлавныйБухгалтер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("depth", "Глубина"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("year", "Год"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("validuntil_", "ГоденДо"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("parentcompany", "ГоловнаяОрганизация"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("maincounterparty", "ГоловнойКонтрагент"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("city", "Город"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("finishedproducts", "ГотоваяПродукция"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("readyforissuance", "ГотовКВыдаче"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("citizenship", "Гражданство"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shipper", "Грузоотправитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("goodsrecipient", "Грузополучатель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("group", "Группа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("allowpartialpayment", "РазрешитьЧастичнуюОплату"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("alternativetobaccoproducts", "АльтернативныйТабак"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountaccounting_", "СуммаУчет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountarap", "СуммаВзаиморасчетов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountbankcommission", "СуммаКомиссияБанка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountbeforeadjustment", "СуммаДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountbeforechange", "СуммаДоИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountdue", "КОплате"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountexcludingvat", "СуммаБезНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountincludesvat", "СуммаВключаетНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountincludingdiscount", "СуммаСУчетомСкидки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountinwordsparameters", "ПараметрыПрописи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountnotsubjecttovat", "СуммаНеОблагаемаяНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountofaccountspayable", "СуммаКредиторскойЗадолженности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountofaccountsreceivable", "СуммаДебиторскойЗадолженности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountofbonuspoints", "СуммаБонусныхБаллов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountofrevaluation_", "СуммаПереоценки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountofvatbeforeadjustment", "СуммаНДСДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("amountvatremuneration", "СуммаНДСВознаграждения"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("analyticalgroup", "ГруппаАналитическогоУчета"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("analyticalproductgroup", "ГруппаАналитическогоУчетаНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("groupoffinancialaccountingsettingsforsettlements", "ГруппаНастроекФинансовогоУчетаРасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("osgroup", "ГруппаОС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("giverrawmaterialsandsupplies", "ДавальческиеСырьеИМатериалы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("classifierdata", "ДанныеКлассификатора"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("productdata_1", "ДанныеНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("reportdata", "ДанныеОтчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sfdata", "ДанныеПоСФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("certificatedata", "ДанныеСертификата"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fullnamedata", "ДанныеФИО"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("date", "Дата"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("statementdate", "ДатаВедомости"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paysheetdate", "ДатаВедомостиНаВыплатуЗарплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("incomingdocumentdate", "ДатаВходящегоДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dateofissue1", "ДатаВыдачи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dateofdischarge", "ДатаВыписки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("executiondate", "ДатаВыполнения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dateofproduction", "ДатаВыпуска"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("issuedate", "ДатаВыставления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentdate", "ДатаДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dateofdocumentsignatureright", "ДатаДокументаПраваПодписи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("closingdate", "ДатаЗакрытия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("inventorydate", "ДатаИнвентаризации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("correctiondate", "ДатаИсправления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("startdate", "ДатаНачала"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("startdateofinventory", "ДатаНачалаИнвентаризации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accrualdate", "ДатаНачисления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("enddate", "ДатаОкончания"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("enddateofinventory", "ДатаОкончанияИнвентаризации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("openingdate", "ДатаОткрытия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("datesent", "ДатаОтправки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("postingdate", "ДатаОтправления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dateoftransferoftitletogoods", "ДатаПереходаПраваСобственности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentdate", "ДатаПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dateofdocumentinarapaccounting", "ДатаПлатежноРасчетногоДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("signaturedate", "ДатаПодписи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("datereceived", "ДатаПолучения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dateofrecognition", "ДатаПринятияКУчету"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("purchasedate", "ДатаПриобретения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dateofsale", "ДатаПродажи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("productiondate", "ДатаПроизводства"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("saledate", "ДатаРеализации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("registrationdate", "ДатаРегистрации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("annualdepreciationrate", "КоэффициентАмортизацииБУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("antiseptics", "Антисептики"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("approvalrequired", "ТребуетсяУтверждение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("approvedformofpayment", "УтвержденнаяФормаОплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("approvedpaymentdate", "УтвержденнаяДатаПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("arapcurrency", "ВалютаВзаиморасчетов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("arapdetails", "РасшифровкаПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("arapincurrency", "РасчетыВВалюте"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("araptype", "ВидРасчетов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("archivepasswordexchangemessages", "ПарольАрхиваСообщенияОбмена"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("assembly", "Сборка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("assemblyfromcomponents", "СборкаТоваров"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("assetid", "ИнвентарныйНомер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("assetmaintenance", "ТекущийРемонт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("assetrepair", "СреднийРемонт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("assigneeformaintainingofaccountingregisters", "ОтветственныйЗаБухгалтерскиеРегистры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("assigneeformaintainingoftaxregisters", "ОтветственныйЗаНалоговыеРегистры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("atexpenseofsupplier", "ЗаСчетПоставщика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("atexpenseofthirdpartycompany", "ЗаСчетСтороннейКомпании"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("attorney", "Поверенный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("auction12", "ТОРГ12"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("authorizationcode", "КодАвторизации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("authorizedperson", "УполномоченноеЛицо"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("authorizedpersonselection", "УполномоченноеЛицоОтбор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("authorizedrepresentativeintaxauthority", "УполномоченныйПредставитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("authorstatus", "СтатусСоставителя"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("automatically", "Автоматически"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bank", "Банк"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bankaccount", "БанковскийСчет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bankaccountpayment", "Безналичная"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bankcredit", "КредитБанка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bankpayingagent", "БанковскийПлатежныйАгент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bankpayingsubagent", "БанковскийПлатежныйСубагент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bankpaymentorder", "БанковскийОрдер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bankreportonacquiringtransactions", "ОтчетБанкаПоОперациямЭквайринга"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("barcode", "Штрихкод"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("barcodelength", "ДлинаШтрихкода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("barcodeselection", "ШтрихкодОтбор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("barcodetype", "ТипШтрихкода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("basis", "Основание"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("basisdocuments", "ДокументыОснования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("basisindicator", "ПоказательОснования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("batchesindicationstatus", "СтатусУказанияСерий"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("beerorbeerdrink", "Пиво"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("beginningofreportperiod", "НачалоПериодаОтчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("beginofperiod", "НачалоПериода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bic", "БИК"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bicycles", "Велосипеды"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("billingmethod", "СпособВыставления"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("birthdate", "ДатаРождения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("statedate", "ДатаСостояния"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dateofdeduction", "ДатаСписания"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("invoicedate", "ДатаСФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountsreceivable", "ДебиторскаяЗадолженность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("noactionsneeded", "ДействийНеТребуется"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("validbefore", "ДействителенДо"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tendays", "Декада"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashequivalents", "ДенежныеДокументы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("birthplace", "МестоРождения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bonusconversioncurrency", "ВалютаКонвертацииБонусов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bonuspointaccrual", "НачислениеБонусныхБаллов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("branchoffice", "ОбособленноеПодразделение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("brand", "Марка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("businessactivityclassifiercode", "КодОКВЭД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("businessentity", "ЮридическоеЛицо"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("businessunitcode", "КодПодразделения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("buyerissuesinvoiceforreturn", "ПокупателемВыставляетсяСчетФактураНаВозврат"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("buyers", "Покупатели"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("byactualusage", "ПоФактическомуИспользованию"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("byassetactivity", "ПоНаработке"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bycarrier", "СиламиПеревозчика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bycarriertoaddress", "СиламиПеревозчикаПоАдресу"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bycarriertoourwarehouse", "СиламиПеревозчикаДоНашегоСклада"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bycarriertotransferpoint", "СиламиПеревозчикаДоПунктаПередачи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bycourier", "Курьером"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bydate", "ПоСроку"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bydocument", "ПоДокументу"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("bysumofusefullifeyearnumbers", "ПоСуммеЧиселЛетИспользования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("byuniformdepreciationrates", "ПоЕНАОФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("byuniformdepreciationratesper1000kmofmileage", "ПоЕНАОФНа1000кмПробега"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("byunitsofproduction", "ПропорциональноОбъемуПродукции"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("byvendortoourwarehouse", "СиламиПоставщикаДоНашегоСклада"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("calculationmethod", "СпособРасчетов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("calculations", "Расчеты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("calculationsettings", "НастройкиРасчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("calculationsinconventionalunits", "РасчетыВУсловныхЕдиницах"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("camerasandflashbulbs", "Фотоаппараты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("canceled", "Отменено"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("canceled_", "Аннулирован"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cardholder", "ВладелецКарты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cardkind", "ВидКарты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cardnumber", "НомерКарты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("carrier", "Перевозчик"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("carryingoutnetting", "ПроведениеВзаимозачета"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("cash", "ДенежныеСредства"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("monetarydocument", "ДенежныйДокумент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashaccountissuer", "КассаОтправитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashaccountpayment_", "Наличная"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashaccountrecipient", "КассаПолучатель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashaccounts", "Кассы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashcontribution", "ВзносНаличными"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashcurrency", "ВалютаДенежныхСредств"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashequivalents", "ДенежныеДокументы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashequivalentsissuetoadvanceholder", "ВыдачаДенежныхДокументовПодотчетнику"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashequivalentstransfer", "ПеремещениеДенежныхДокументов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashier", "Кассир"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashpayment", "Наличные"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashregister", "КассаККМ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashregisterpayments", "ОплатыККМ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashregisterreceipt", "ЧекККМ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashregisterreceiptnumber", "НомерЧекаККМ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashregisters", "КассыККМ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashregistersalesreceiptnumber", "НомерЧекаККМПродажи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashregistershift", "КассоваяСмена"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cashshiftnumber", "НомерКассовойСмены"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ccdnumber", "НомерГТД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ccdnumberbeforechange", "НомерГТДДоИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("certificate", "Сертификат"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("certificatedata", "ДанныеСертификата"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cfitem", "СтатьяДДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("characteristic", "Характеристика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("chiefaccountant", "ГлавныйБухгалтер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("citizenship", "Гражданство"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("city", "Город"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("claimssettlementaccount", "СчетУчетаРасчетовПоПретензиям"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("clarificationisrequired", "ТребуетсяУточнение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("classifierdata", "ДанныеКлассификатора"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("closedforcefully", "ЗакрытПринудительно"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("closedwithdeviation", "ЗакрытСОтклонением"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("closedwithrejectionofinvitation", "ЗакрытСОтклонениемПриглашения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("closedwithtransmissionerror", "ЗакрытСОшибкойПередачи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("closingdate", "ДатаЗакрытия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("code", "Код"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("codealpha2", "КодАльфа2"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("codealpha3", "КодАльфа3"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("codebyrncfa", "КодПоОКОФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("codebyufadr", "ШифрПоЕНАОФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("codeinapp", "КодВПрограмме"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("codeofalcoholicproducts", "КодАлкогольнойПродукции"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("codetemplates", "ШаблоныКодов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("collection_", "Инкассация"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("collectionorder_2", "ИнкассовоеПоручение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("comment", "Комментарий"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("commissionagentsarapaccounting", "РасчетыСКомиссионерами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("commissionagentstaxinvoicenumber", "НомерСчетаФактурыКомиссионера"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("commissionamount", "СуммаВознаграждения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("commissiongoods", "КомиссионныеТовары"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("commissioning", "ВводВЭксплуатацию"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("commodity", "СырьевойТовар"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("commodityexports", "ЭкспортСырьевыхТоваров"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("companyactsasavattaxagent", "УчетАгентскогоНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("companybankaccount", "БанковскийСчетОрганизации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("companyfilter", "ОрганизацияОтбор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("companyindividual", "ЮридическоеФизическоеЛицо"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("companyrecipient", "ОрганизацияПолучатель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("completed", "Выполнен"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("completedworks", "ВыполненныеРаботы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("completion", "Достройка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("composite", "КлючСтроки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("compoundsettlementsubject", "СоставнойПредметРасчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("confirmationofcancellationisrequired", "ТребуетсяПодтверждениеАннулирования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("confirmed_", "Подтвержден"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("consignee", "Комиссионер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("consignmentprocurement", "ПриемНаКомиссию"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("consignmentreportfromcustomer", "ОтчетКомиссионера"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("consignmentreporttovendor", "ОтчетКомитенту"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("consignorsarapaccounting", "РасчетыСКомитентами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("consolidatedcommission", "СводныйКомиссионный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("consumerpackaging", "ПотребительскаяУпаковка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contactinformation", "КонтактнаяИнформация"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contactinformationkind", "ВидКонтактнойИнформации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contactperson", "КонтактноеЛицо"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("content", "Содержание"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contentbeforechange", "СодержаниеДоИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contract", "Договор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contractlink", "ДоговорСсылка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contributionsforcmi", "ОбязательноеМедицинскоеСтрахование"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contributionsforcmiie", "ОбязательноеМедицинскоеСтрахованиеИП"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contributionsforcsi", "ОбязательноеСоциальноеСтрахование"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contributionsformpi", "ОбязательноеПенсионноеСтрахование"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("contributionsformpiie", "ОбязательноеПенсионноеСтрахованиеИП"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("conversionmultiplicity", "КратностьКонвертации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("conversionrate", "КурсКонвертации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("conversionrateofbonusesintocurrency", "КурсКонвертацииБонусовВВалюту"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("corraccount", "КоррСчет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("correctedimplementationdocument", "ИсправляемыйДокументРеализации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("correctedreceiptdocument", "ИсправляемыйДокументПоступления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("correctiondate", "ДатаИсправления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("correctionnumber", "НомерИсправления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("correctionoferrors", "ИсправлениеОшибки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("corrective", "Корректировочный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("correspondenttext", "ТекстКорреспондента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cost", "Стоимость"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("cost_", "Себестоимость"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("costdivision", "ПодразделениеЗатрат"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("costisnotredeemable", "СтоимостьНеПогашается"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("costitem", "СтатьяЗатрат"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("costofsalesaccount", "СчетУчетаСебестоимостиПродаж"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("costshare", "ДоляСтоимости"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("count", "Количество"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("counterparties", "Контрагенты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("counterparty", "Контрагент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("counterpartybankaccount", "БанковскийСчетКонтрагента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("counterpartycontract", "ДоговорКонтрагента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("counterpartycredit", "КредитКонтрагента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("counterpartycrtr", "КППКонтрагента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("counterpartydebtor", "КонтрагентДебитор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("counterpartyscontactperson", "КонтактноеЛицоКонтрагента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("counterrepresentation", "ВстречноеПредставление"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("countreal", "КоличествоФакт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("country", "Страна"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("countryoforiginbeforechange", "СтранаПроисхожденияДоИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("courier", "Курьер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("credit", "Кредит"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("creditor", "КонтрагентКредитор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("creditorsarapaccounting", "РасчетыСКредиторами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("crtr", "КПП"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("currency", "Валюта"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("currencyofconversion", "ВалютаКонвертации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("currentccostfinacc", "ТекущаяСтоимостьБУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("currentccostpd", "ТекущаяСтоимостьПР"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("currentcosttaxaccounting", "ТекущаяСтоимостьНУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("currentcosttd", "ТекущаяСтоимостьВР"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("currentproducts", "ТекущаяНоменклатура"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customer", "Покупатель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customer_", "Заказчик"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customerinvoice", "РеализацияТоваровУслуг"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customerinvoiceoutsourcedsale", "СКомитентомНаЗакупку"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customermaterials", "МатериалыЗаказчика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customerrefunds", "ВозвратыПокупателей"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customersarapaccounting", "РасчетыСКлиентами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customsdeclaration", "ТаможеннаяДекларация"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customsdeclarationlink", "ТаможеннаяДекларацияСсылка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customsfee", "ТаможенныйСбор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customspenalty", "ТаможенныйШтраф"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("customsvalue", "ТаможеннаяСтоимость"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dataexchangeexecutionsettingsdescription", "НаименованиеНастройкиВыполненияОбмена"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("datasynchronizationviauniversalformat", "СинхронизацияДанныхЧерезУниверсальныйФормат"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("date", "Дата"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateindicator", "ПоказательДаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateofdeduction", "ДатаСписания"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateofdischarge", "ДатаВыписки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateofdocumentinarapaccounting", "ДатаПлатежноРасчетногоДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateofdocumentsignatureright", "ДатаДокументаПраваПодписи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateofissue1", "ДатаВыдачи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateofpaymentdocument", "ДатаПлатежногоДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateofproduction", "ДатаВыпуска"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateofrecognition", "ДатаПринятияКУчету"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateofsale", "ДатаПродажи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dateoftransferoftitletogoods", "ДатаПереходаПраваСобственности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("datereceived", "ДатаПолучения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("datesent", "ДатаОтправки"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("day", "День"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("debt", "Долг"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("debtcancellation", "СписаниеЗадолженности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("debtorsarapaccounting", "РасчетыСДебиторами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("debttransfer_", "ПереносЗадолженности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("declarationno", "НомерДекларации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deedoftransfer", "АктНаПередачуПрав"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deferredpayment", "ОтсрочкаПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deleteawaitingnotification", "УдалитьОжидаетсяИзвещение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deleteawaitingstatement", "УдалитьОжидаетсяВыписка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deleteconfirmationisrequired", "УдалитьТребуетсяПодтверждение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deletefulfillmentisexpected", "УдалитьОжидаетсяИсполнение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deleteitisexpectedtobesenttorecipient", "УдалитьОжидаетсяОтправкаПолучателю"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deletepaymentisexecuted", "УдалитьПлатежИсполнен"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deleterejectedbyoperator", "УдалитьОтклоненОператором"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deleterevokeisexpected", "УдалитьОжидаетсяОтзыв"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deliveryaddress", "АдресДоставки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("deliverymethod", "СпособДоставки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("department", "Подразделение"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("deposit_", "Депозитный"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("deposits", "Депозиты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("salarydepositing", "ДепонированиеЗарплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tenth", "Десятая"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("diplomaticpassport", "ДипломатическийПаспорт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("magneticcodelength", "ДлинаМагнитногоКода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("barcodelength", "ДлинаШтрихкода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("depreciation", "Амортизация"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("depreciationaccrual", "НачислениеАмортизации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("depreciationaccrualaccounting", "НачислятьАмортизациюБУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("depreciationaccrualfactor", "КоэффициентБУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("depreciationaccrualtaxaccounting", "НачислятьАмортизациюНУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("depreciationbefore2009", "АмортизацияДо2009"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("depreciationgroup", "АмортизационнаяГруппа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("depth", "Глубина"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("description", "Наименование"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("descriptionfull", "НаименованиеПолное"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("desirableformofpaymentcash", "ЖелательнаяФормаОплатыНаличные"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("desirableformofpaymentnoncash", "ЖелательнаяФормаОплатыБезналичные"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("desiredformofpaymentpaymentcard", "ЖелательнаяФормаОплатыПлатежнаяКарта"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("destinationwarehouse", "СкладПолучатель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("determinedbyallocation", "ОпределяетсяРаспределением"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dietarysupplements", "БАДы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("digitalservices", "ЭлектронныеУслуги"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("digitalsignatures", "ЭлектронныеПодписи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("director", "Руководитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("disassembly", "Разборка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("disbursementoffunds", "ВыдачаДенежныхСредств"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("discountamount", "СуммаСкидки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("discountcard", "ДисконтнаяКарта"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("discountpercentage", "ПроцентСкидки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("discountsmarkups", "СкидкиНаценки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("displaymonthinwords", "ВыводитьМесяцПрописью"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("document", "Документ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentamount", "СуммаДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentbasedocumentnumber", "ДокументОснованиеНомер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentbasis", "ДокументОснование"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentbasiskind", "ДокументОснованиеВид"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentcourse", "КурсДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentdate", "ДатаДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentinflow", "ДокументПоступления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentkind", "ВидДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentmultiplicity", "КратностьДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentnumber", "НомерДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentofarapaccounting", "ДокументРасчетов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentofrecognitionnumber", "НомерДокументаПринятияКУчету"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentreferencedocumentdateforprintforms", "ДокументОснованиеДата"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentrownumber", "НомерСтрокиДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentsales", "ДокументПродажи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentsalesofgoodsandservices", "ДокументРеализации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentscount", "КоличествоДокументов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documenttransfers_", "ДокументПередачи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documenttypeselection", "ВидДокументаОтбор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("documentviewfromclassifier", "ВидДокументаИзКлассификатора"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("donotaccruepointswhenpayingwithbonuses", "НеНачислятьБаллыПриОплатеБонусами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("draft", "Черновик"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("driverlicense", "ВодительскоеУдостоверение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dutyamount", "СуммаПошлины"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("dutyrate", "СтавкаПошлины"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("edview", "ВидЭД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("electronically", "Электронно"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("email", "АдресЭлектроннойПочты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("employee", "Сотрудник"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("employeeincharge_", "ОтветственноеЛицо"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("employeeresponsible", "Ответственный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("employeesbankaccount", "БанковскийСчетСотрудника"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("encryptioncertificates", "СертификатыШифрования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("enddate", "ДатаОкончания"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("enddateofinventory", "ДатаОкончанияИнвентаризации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("endofbarcoderange", "КонецДиапазонаШтрихкода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("endofmagneticcoderange", "КонецДиапазонаМагнитногоКода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("endofperiod", "КонецПериода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("endofreportperiod_", "ОкончаниеПериодаОтчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("estimated_", "Расчетный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("eventkindwithfixedassets", "ВидСобытияОС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("exchangecompleted", "ОбменЗавершен"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("exchangecompletedwithadjustments", "ОбменЗавершенСИсправлением"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("exchangedatasettingsfileformatversion", "ВерсияФорматаФайлаНастроекОбменаДанными"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("exchangemessagestransportkind", "ВидТранспортаСообщенийОбмена"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("exchangemessagestransporttypes", "ВидыТранспортаСообщенийОбмена"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("exchangeplanname", "ИмяПланаОбмена"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("exchangerateofcentralbankondateofconversion", "КурсЦБНаДатуКонвертации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("excisablegoods", "ПодакцизныйТовар"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("excisablegoodsmarkedbyidentificationtoolwithmarkingcode", "ПодакцизныйТоварМаркируемыйСИИмеющийКМ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("excisablegoodsmarkedbyidentificationtoolwithoutmarkingcode", "ПодакцизныйТоварМаркируемыйСИНеИмеющийКМ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("exciseduty", "Акциз"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("excisestampnumber", "НомерАкцизнойМарки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("excisestamps", "АкцизныеМарки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("excludingdiscountsprovided", "БезУчетаПредоставленныхСкидок"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("excludingvat", "БезНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("executiondate", "ДатаВыполнения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("expecteddateofreceipt", "ОжидаемаяДатаПоступления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("expecteddeliverydate", "ОжидаемаяДатаПоставки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("expense", "Расход"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("expenseaccount", "СчетРасходов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("expenseaccount_", "СчетЗатрат"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("expenseitem", "СтатьяРасходов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("expensereport", "АвансовыйОтчет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("expensesforallocation", "РаспределяемыеЗатраты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("expirationdate_", "СрокГодности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("exportofnonresourcegoods", "ЭкспортНесырьевыхТоваров"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("exportsale", "ПродажаНаЭкспорт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("extendednumber", "НомерРасширенный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("extension", "Расширение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("externaldocumentname", "НаименованиеВходящегоДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("externalsystem", "ВнешняяСистема"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("extrapay", "Доплата"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("facost", "СтоимостьОС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fax", "Факс"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("feacncode", "КодТНВЭД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fee", "Комиссия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("feeamount", "СуммаКомиссии"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("feminine", "Женский"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fiasaddresscode", "КодАдресаФИАС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fieldvalues", "ЗначенияПолей"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("filecompressoutgoingmessagefile", "FILEСжиматьФайлИсходящегоСообщения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("filedataexchangedirectory", "FILEКаталогОбменаИнформацией"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fileowner", "ВладелецФайла"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("files", "Файлы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("financiallyliableperson", "МОЛ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("finishedproducts", "ГотоваяПродукция"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("first", "Первая"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fiuauthority", "ОрганПФР"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fixedasset", "ОсновноеСредство"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fixedassets", "ОсновныеСредства"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fixedassetscostadditions", "МодернизацияОС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fixedassetsdepreciationcharge", "АмортизацияОС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fixedassetsevent", "СобытиеОС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("foreignbank", "ИностранныйБанк"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("formatproperties", "ФорматСвойства"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("forotherexpenses", "НаПрочиеРасходы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fromsenderdeterminedbydeliveryservice", "ОтОтправителяОпределяетСлужбаДоставки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ftscode", "КодМВД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ftssubordinationcode", "КодПодчиненностиФСС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fullnamedata", "ДанныеФИО"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("fullprepayment", "ПредоплатаПолная"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("furskinproducts", "ПродукцияИзНатуральногоМеха"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("furtherequipping", "Дооборудование"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("gamblingprize", "ВыигрышАзартнойИгры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("gamblingstake", "СтавкаАзартнойИгры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("gender", "Пол"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("gift", "Подарок"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("giftcertificatecancellation", "АннулированиеПодарочныхСертификатов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("giftcertificatekind", "ВидПодарочногоСертификата"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("giftcertificatekinds", "ВидыПодарочныхСертификатов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("giftcertificates", "ПодарочныеСертификаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("giverrawmaterialsandsupplies", "ДавальческиеСырьеИМатериалы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("glaccount", "СчетУчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("goods", "Товары"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("goodscost", "СтоимостьТоваров"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("goodsmarkedbyidentificationtoolwithmarkingcode", "ТоварМаркируемыйСИИмеющийКМ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("goodsmarkedbyidentificationtoolwithoutmarkingcode", "ТоварМаркируемыйСИНеИмеющийКМ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("goodsrecipient", "Грузополучатель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("goodsrecordingasreceived", "ОприходованиеТоваров"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("goodsreturnsales", "ТоварыВозвратПродажи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("goodsrevaluationinretail", "ПереоценкаТоваровВРознице"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("goodssale", "ТоварыПродажа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("goodssales", "РеализацияТоваров"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("group", "Группа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("groupoffinancialaccountingsettingsforsettlements", "ГруппаНастроекФинансовогоУчетаРасчетов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("halfyear_", "Полугодье"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("height", "Высота"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("homephonenumber", "ТелефонДомашний"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("hrdirector", "РуководительКадровойСлужбы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("id", "Идентификатор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("idof1cproductsproductcategory", "ИдентификаторНоменклатурыСервиса1СНоменклатура"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("idof1cproductsservice", "ИдентификаторСервиса1СНоменклатура"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("idof1cproductsservicecharacteristic", "ИдентификаторХарактеристикиСервиса1СНоменклатура"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("importedalcoholcontainingproducts", "ИмпортнаяАлкогольнаяПродукция"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("importingcountryisnotrf", "СтранаВвозаНеРФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("importingfrominternet", "ЗагружаетсяИзИнтернета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("includinginexpensesonrecognition", "СписаниеПриПринятииКУчету"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("includingvat", "ВТомЧислеНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("incomeforactivities", "ПоступлениеПодДеятельность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("incomeitem", "СтатьяДоходов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("incomekindcode", "КодВидаДохода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("incomingdocumentdata", "ДанныеВходящегоДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("incomingdocumentdate", "ДатаВходящегоДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("incomingdocumentnumber", "НомерВходящегоДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("indicatorbcc", "ПоказательКБК"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("indicators", "Показатели"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("individual", "ФизическоеЛицо"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("individualselection", "ФизическоеЛицоОтбор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("inelectronicform", "ВЭлектронномВиде"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("infavorofsupplier", "ВПользуПоставщика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("initialcostlocalaccounting", "ПервоначальнаяСтоимостьБУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("initialcostta", "ПервоначальнаяСтоимостьНУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("inoperation", "ВЭксплуатации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("instantpayments", "СистемаБыстрыхПлатежей"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("instructionforshippingagentatpoint", "ПоручениеЭкспедиторуВПункте"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("instructionforshippingagentfromwarehouse", "ПоручениеЭкспедиторуСоСклада"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("instructionforshippingagenttowarehouse", "ПоручениеЭкспедиторуНаСклад"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("insurancecontributions", "СтраховыеВзносы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("insurancecontributionstofcmif", "ФФОМС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("insurancecontributionstossf", "ФСС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("insurancenumberofthefiu", "СтраховойНомерПФР"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("intangibleasset", "НематериальныйАктив"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("intangibleassets", "НематериальныеАктивы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("interestonlongtermloans", "ПроцентыПоДолгосрочнымКредитам"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("interestonlongtermloans_", "ПроцентыПоДолгосрочнымЗаймам"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("interestonshorttermloans", "ПроцентыПоКраткосрочнымКредитам"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("interestonshorttermloans_", "ПроцентыПоКраткосрочнымЗаймам"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("interests", "Проценты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("internalmovement", "ВнутреннееПеремещение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("internaltransmission", "ВнутренняяПередача"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("inventory", "ТМЦ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("inventory_", "Инвентаризация"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("inventorydate", "ДатаИнвентаризации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("inventoryownerattribute", "ВидЗапасов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("inventoryrecount", "ПересчетТоваров"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("inventorytransfer", "ПеремещениеТоваров"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("inventorytype", "ТипЗапасов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("invissubmitted", "ПредъявленСФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("invoicedate", "ДатаСФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("invoiceforunfactureddeliveries", "СчетУчетаНеотфактурованныеПоставки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("invoiceissued", "СчетФактураВыданный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("invoiceissuedtobuyer", "СчетФактураВыданныйПокупателю"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("invoicenumber", "НомерСФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("invoicesissuedtocustomers", "СчетаФактурыВыданныеПокупателям"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("invoicetype", "ВидСчетаФактуры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("isadditionalinfo", "ЭтоДополнительноеСведение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("isidentitydocument", "ЯвляетсяУдостоверяющимЛичность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("isrecordsset", "ЭтоНабор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("isrejected", "Отклонена"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("isrnpt", "ЯвляетсяРНПТ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("issue", "Выдать"); // @NON-NLS-1 @NON-NLS-2 + + Массив = Новый Массив; + Массив.Добавить("Выдано"); // @NON-NLS-1 + Массив.Добавить("Выставлен"); // @NON-NLS-1 + Словарь.Вставить("issued", Массив); + + Словарь.Вставить("issuedate", "ДатаВыставления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("issuedby", "КемВыдан"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("issuer", "Эмитент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("itemkinds", "ВидыНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("itemsbatches", "СерииНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("itemstype", "ТипНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("itemvariant", "ХарактеристикаПродукции"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("jobtitle", "Должность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("keepaccountingbybatch", "ИспользоватьСерии"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("keyproperties", "КлючевыеСвойства"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("kindofaccountingobject", "ВидОбъектаУчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("kindofalcoholcontainingproducts", "ВидАлкогольнойПродукции"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("kindpresentaion", "ПредставлениеВида"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("labelled", "Маркируемый"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("lastfirstname", "ФИО"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("lastname", "Фамилия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("lease", "Аренда"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("legaladdress", "ЮридическийАдрес"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("legalform", "НаименованиеОКОПФ"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("letterofauthority", "Доверенность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("letterofcredit", "Аккредитив"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("lightindustrygoodsandclothes", "ЛегкаяПромышленность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("linear", "Линейный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("linenumber", "НомерСтроки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("loans_", "Займы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("loansreceived", "ЗаймыПолученные"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("loansreceived_", "КредитыПолученные"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("loantocounterparty", "ЗаймКонтрагенту"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("localaccountingcurrency", "ВалютаРегламентированногоУчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("longdesc", "Описание"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("longterm", "Долгосрочный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("longtermloans", "ДолгосрочныеЗаймы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("longtermloans_", "ДолгосрочныеКредиты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("lotteryprize", "ВыигрышЛотереи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("lotteryticket", "ЛотерейныйБилет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("loyaltycard", "КартаЛояльности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("loyaltyprogram_", "ПрограммаЛояльности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("magneticcode", "МагнитныйКод"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("magneticcodelength", "ДлинаМагнитногоКода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("magneticstripecardtemplate", "ШаблонМагнитнойКарты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("mailaddress", "ПочтовыйАдрес"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("mainbankaccount", "ОсновнойБанковскийСчет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("maincounterparty", "ГоловнойКонтрагент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("maincurrency", "ОсновнаяВалюта"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("mainpicture", "ОсновнаяКартинка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("mainsystem", "ОсновнаяСистемаНалогообложения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("manager", "Менеджер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("manufacturedproduct", "Продукция"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("manufacturer", "Производитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("manufacturer_", "Изготовитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("manufacturerimporter", "ПроизводительИмпортер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("manufaturernumber", "ЗаводскойНомер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("markedgoods", "МаркированныйТовар"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("markup", "Наценка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("masculine", "Мужской"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("materialtransfertoproduction", "ПередачаМатериаловВПроизводство"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("maximumsharepayablebypoints", "МаксимальныйПроцентОплатыБонусами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("methodofcalculationofcommission", "СпособРасчетаКомиссионногоВознаграждения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("methodofdebtrepayment", "СпособПогашенияЗадолженности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("methodofrepaymentofcostofinventory", "СпособПогашенияСтоимостиТМЦ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("middlename", "Отчество"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("milkanddairyproductswithoutvetis", "МолочнаяПродукцияБезВЕТИС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("modernization", "Модернизация"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("modernizationdocumentname", "НазваниеДокументаМодернизации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("modernizationdocumentnumber", "НомерДокументаМодернизации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("monetarydocument", "ДенежныйДокумент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("month", "Месяц"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("monthoftaxperiod", "МесяцНалоговогоПериода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("multilineinputfield", "МногострочноеПолеВвода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("multiplier_", "КратностьВзаиморасчетов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("multiproductpackaging", "МультитоварнаяУпаковка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("municipalterritoriesclassifier", "ОКТМО"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("name", "Имя"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nameclarification", "УточнениеНаименования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nameofcontactinformation", "НаименованиеКонтактнойИнформации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nameofmethodforreflectingexpenses", "НаименованиеСпособаОтраженияРасходов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nameofpurposeofuse", "НаименованиеНазначенияИспользования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nameofrecognitiondocument", "НазваниеДокументаПринятияКУчету"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ndsvpathaccountingaccount", "СчетУчетаНДСВПути"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("newnodecode", "КодНовогоУзла"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nicotinecontainingproducts", "НикотиносодержащаяПродукция"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("noactionsneeded", "ДействийНеТребуется"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nominal", "Номинал"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nonautomatedpointofsale", "НеавтоматизированнаяТорговаяТочка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("none", "Нет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nonoperatingincome", "ВнереализационныйДоход"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nonresidentregistrationnumber", "РегистрационныйНомерНерезидента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nonresidenttaxnumber", "НалоговыйНомерНерезидента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notagreedupon", "НеСогласована"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notcalculating", "НеРассчитывается"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notes", "Заметки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notgenerated1", "НеСформирован"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notificationofreceiptisrequired", "ТребуетсяИзвещениеОПолучении"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notificationofrejectionisexpected", "ОжидаетсяИзвещениеПоОтклонению"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notificationofrejectionisrequired", "ТребуетсяИзвещениеПоОтклонению"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notpaid", "НеОплачен"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notreceived", "НеПолучен"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notshipped_", "НеОтгружен"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("notsubjecttovat", "НеОблагаетсяНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("nspkcertificate", "СертификатНСПК"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("number", "Номер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberindicator", "ПоказательНомера"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberinprogram", "НомерВПрограмме"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofdays_1", "КоличествоУчет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofdaysofdeferral", "КоличествоДнейОтсрочки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofpackages", "КоличествоУпаковок"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofpackagesaccounting", "КоличествоУпаковокУчет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofpackagesbeforeadjustment", "КоличествоУпаковокДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofpackagesbeforechange_", "КоличествоУпаковокДоИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofpackagesreal", "КоличествоУпаковокФакт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofpaymentdocument", "НомерПлатежногоДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofrnpt", "КоличествоРНПТ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofrnptbeforeadjustment", "КоличествоРНПТДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofrnptbeforechange", "КоличествоРНПТДоИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofsignaturerightdocument", "НомерДокументаПраваПодписи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numberofvalidityperiods", "КоличествоПериодовДействия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("numericcodefortaxinvoices", "ЦифровойИндексОбособленногоПодразделения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("object", "Объект"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("objectreference", "СсылкаНаОбъект"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("obsolete1", "Устаревший"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("okfs", "ОКФС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("okpo", "ОКПО"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("oncommissioning", "ПриПередаче"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("onotherincome", "НаПрочиеДоходы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("onpaper", "НаБумажномНосителе"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("openingdate", "ДатаОткрытия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("operationkind", "ВидОперации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("operationservice", "Услуга"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("order", "Порядок"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("orderdocument", "Заказ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("orderforacceptance", "РаспоряжениеНаПриемку"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("orderreceiptamount", "СуммаПоступления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("orderstate", "СостояниеЗаказа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("orderstatebyline", "СостояниеЗаказаСтрокой"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("organization", "Организация"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("origincountry", "СтранаПроисхождения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("osgroup", "ГруппаОС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("other", "Прочее"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("otherexpenses", "ПрочиеРасходы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("otherinformation", "ПрочиеСведения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("otherreasons", "Иное"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("othersettlementsubject", "ИнойПредметРасчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("otherwriteoffs", "ПрочееСписание"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ourowndeliveryfromsenderaddress", "НашимиСиламиСАдресаОтправителя"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("outputamountwithoutfractionalpart", "ВыводитьСуммуБезКопеек"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("overhaul", "КапитальныйРемонт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("own", "Собственные"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("owner", "Владелец"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ownershipform", "НаименованиеОКФС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("owngoods", "Товар"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ownproducts", "СобственныеТовары"); // @NON-NLS-1 @NON-NLS-2 + + Массив = Новый Массив; + Массив.Добавить("Приложение"); // @NON-NLS-1 + Массив.Добавить("Упаковка"); // @NON-NLS-1 + Словарь.Вставить("package", Массив); + + Словарь.Вставить("packagedwater", "УпакованнаяВода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("packageid", "ИдентификаторУпаковки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("packagemarking", "МаркировкаУпаковки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("packagemarkings", "МаркировкиУпаковок"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("packagetype", "ТипУпаковки"); // @NON-NLS-1 @NON-NLS-2 + + Массив = Новый Массив; + Массив.Добавить("Оплачен"); // @NON-NLS-1 + Массив.Добавить("Оплачено"); // @NON-NLS-1 + Словарь.Вставить("paid", Массив); + + Словарь.Вставить("parentcompany", "ГоловнаяОрганизация"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("partialdisposal", "ЧастичнаяЛиквидация"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("partialdisposalaccountingoption", "ЧастичноеВыбытиеВариантУчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("partialdisposalquantity", "ЧастичноеВыбытиеКоличество"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("partiallypaid", "ОплаченЧастично"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("partiallyshipped", "ОтгруженЧастично"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("partialprepayment", "ПредоплатаЧастичная"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("passportnumber", "НомерПаспорта"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("patent", "Патент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("patentsystem", "ПатентнаяСистема"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("payamount", "СуммаОплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("payercrtr", "КПППлательщика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("payersname", "ТекстПлательщика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("payingagent", "ПлатежныйАгент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("payingsubagent", "ПлатежныйСубагент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("payment_", "Платеж"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentamount", "СуммаПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentandsettlementdocuments", "ПлатежноРасчетныеДокументы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentbycertificates", "ОплатаСертификатами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentbycreditcardsforgiftcertificates", "ОплатаПлатежнымиКартамиПодарочныхСертификатов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentcard", "ПлатежнаяКарта"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentcardtransaction", "ОперацияПоПлатежнойКарте"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentcasino", "ПлатежКазино"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentdate", "ДатаПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentdeadline", "КрайнийСрокПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentdemand", "ПлатежноеТребование"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentdetails", "РеквизитыПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentdisbursement", "ПлатежВыплата"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentdocumenttype", "ТипПлатежногоДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentforloan", "ОплатаКредита"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentfromclientbypaymentcard", "ОплатаОтКлиентаПлатежнойКартой"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentfromclientthroughpaymentsystem", "ОплатаОтКлиентаЧерезПлатежнуюСистему"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentid", "ИдентификаторПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentkind", "ВидПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentkind_", "ВидОплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentlink_", "ПлатежнаяСсылка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentmethod", "ФормаОплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentoption", "ВариантОплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentorder", "ПлатежноеПоручение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentpercentage", "ПроцентПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentpurposes", "НазначениеПлатежа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("payments", "Оплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentsteps", "ЭтапыОплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymenttocounterparties", "ОплатаКонтрагентам"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentwarrant", "ПлатежныйОрдер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentwithbonuspoints", "ОплатаБонуснымиБаллами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paymentwithpaymentcards", "ОплатаПлатежнымиКартами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paysheetdate", "ДатаВедомостиНаВыплатуЗарплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("paysheetnumber", "НомерВедомостиНаВыплатуЗарплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("penalty", "Штраф"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pendingconfirmation", "ОжидаетсяПодтверждение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pendingconfirmationofprovider", "ОжидаетсяПодтверждениеОператора"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pendingcorrection", "ОжидаетсяИсправление"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pendingreceiptnotification", "ОжидаетсяИзвещениеОПолучении"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pendingtransfertoprovider", "ОжидаетсяПередачаОператору"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pensionfundbyoveralltariff", "ПФРПоСуммарномуТарифу"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pensionfundcode", "КодПФР"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pensionfundfrombaseinexcessoflimitvalue", "ПФРСПревышения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pensionfundfrombasetolimitvalue", "ПФРДоПредельнойВеличины"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pensionfundlocalauthorityname", "НаименованиеТерриториальногоОрганаПФР"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pensionfundregistrationnumber", "РегистрационныйНомерПФР"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("percentageofcommission", "ПроцентКомиссионногоВознаграждения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("percentageofdifferencebetweensalesandreceipts", "ПроцентОтРазницыСуммПродажиИПоступления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("performer", "Исполнитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("perfumesandtoiletwaters", "Духи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("period", "Период"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("periodasstring", "ПериодСтрокой"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("periodfilter", "ПериодОтбор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("periodindicator", "ПоказательПериода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("periodpresentation", "ПредставлениеПериода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("permanentdifferenceinevaluationofaccumulateddepreciation", "НакопленнаяАмортизацияПР"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("personalaccountnumber", "НомерЛицевогоСчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("personalincometax", "НДФЛ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("personalincometaxiscalculatedbythetaxagent", "НДСИсчисляетсяНалоговымАгентом"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("persons", "ФизическиеЛица"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pfemployedonundergroundandharmfuljobs", "ПФРЗаЗанятыхНаПодземныхИВредныхРаботах"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pfforemployedonheavyandotherjobs", "ПФРЗаЗанятыхНаТяжелыхИПрочихРаботах"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("phone", "Телефон"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("phones", "Телефоны"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("physicalinventorycountreason", "ПричинаПроведенияИнвентаризации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("posterminal", "ЭквайринговыйТерминал"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("posterminals", "ЭквайринговыеТерминалы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("postingdate", "ДатаОтправления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("postingoption", "ВариантОтражения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("postingpayrollexpensesinfinancialaccounting", "ОтражениеЗарплатыВФинансовомУчете"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("postpayment", "Постоплата"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("powerofattorneydate", "ДоверенностьДата"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("powerofattorneyissuedbywhom", "ДоверенностьКемВыдана"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("powerofattorneyissuedto", "ДоверенностьКомуВыдана"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("powerofattorneynumber", "ДоверенностьНомер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("contract", "Договор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tocustomer", "ДоКлиента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("document", "Документ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentbasis", "ДокументОснование"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documenttransfers_", "ДокументПередачи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentinflow", "ДокументПоступления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentsales", "ДокументПродажи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentofarapaccounting", "ДокументРасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentsalesofgoodsandservices", "ДокументРеализации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("predefinednodecode", "КодПредопределенногоУзла"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("prefix", "Префикс"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("premise", "Помещение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("preparationforsendingcancellationisrequired", "ТребуетсяПодготовкаКОтправкеАннулирования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("preparationforsendingisrequired", "ТребуетсяПодготовкаКОтправке"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("preparationforsendingnotificationisrequired", "ТребуетсяПодготовкаКОтправкеИзвещения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("preparationforsendingrejectionisrequired", "ТребуетсяПодготовкаКОтправкеОтклонения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("preparationisrequiredforsendingnotificationofrejection", "ТребуетсяПодготовкаКОтправкеИзвещенияПоОтклонению"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("preparingforsale", "ПодготовкаКПередаче"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("prepayment", "Предоплата"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("prepayment_", "Аванс"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("prepayments", "Авансы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("prepaymentstovendor_", "ВыданныеАвансы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("presentation", "Представление"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("presentationofsignaturerightsdocument", "ПредставлениеДокументаПраваПодписи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("price", "Цена"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pricebeforeadjustment", "ЦенаДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pricebeforechange", "ЦенаДоИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pricecurrency", "ВалютаЦены"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pricegroup", "ЦеноваяГруппа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pricegroups", "ЦеновыеГруппы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("priceincludesvat", "ЦенаВключаетНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pricelist", "ПрайсЛист"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("priceperpackaging", "ЦенаЗаУпаковку"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("pricesettingdocument", "ДокументУстановкиЦен"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("basisdocuments", "ДокументыОснования"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("debt", "Долг"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("longtermloans", "ДолгосрочныеЗаймы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("longtermloans_", "ДолгосрочныеКредиты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("longterm", "Долгосрочный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("jobtitle", "Должность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("costshare", "ДоляСтоимости"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("furtherequipping", "Дооборудование"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("extrapay", "Доплата"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("additionalvaluesused", "ДополнительныеЗначенияИспользуются"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("additionalvalueswithweight", "ДополнительныеЗначенияСВесом"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("additionalattributes", "ДополнительныеРеквизиты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ssfadditionalcode", "ДополнительныйКодФСС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("completion", "Достройка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("perfumesandtoiletwaters", "Духи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("unitofmeasure", "ЕдиницаИзмерения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("unitoftraceability", "ЕдиницаИзмеренияПрослеживаемости"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shelflifeunitofmeasure", "ЕдиницаИзмеренияСрокаГодности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("utii", "ЕНВД"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("thereisimplementationreceiptindocument", "ЕстьВДокументеПоступленияРеализации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("desirableformofpaymentnoncash", "ЖелательнаяФормаОплатыБезналичные"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("desirableformofpaymentcash", "ЖелательнаяФормаОплатыНаличные"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("desiredformofpaymentpaymentcard", "ЖелательнаяФормаОплатыПлатежнаяКарта"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("feminine", "Женский"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("manufaturernumber", "ЗаводскойНомер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("title", "Заголовок"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("valuechoiceformtitle", "ЗаголовокФормыВыбораЗначения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("valueformtitle", "ЗаголовокФормыЗначения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("foreignpassportofrussianfederation", "ЗагранпаспортРФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("foreignpassportofussr", "ЗагранпаспортСССР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("importingfrominternet", "ЗагружаетсяИзИнтернета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("loans_", "Займы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("loansreceived", "ЗаймыПолученные"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("orderdocument", "Заказ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("salesorder", "ЗаказКлиента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("customer_", "Заказчик"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("closedforcefully", "ЗакрытПринудительно"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("purchaseforactivity", "ЗакупкаПодДеятельность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("purchasebyimport", "ЗакупкаПоИмпорту"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("notes", "Заметки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("records", "Записи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("requiredtofill", "ЗаполнятьОбязательно"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("salary", "Зарплата"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("atexpenseofsupplier", "ЗаСчетПоставщика"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("atexpenseofthirdpartycompany", "ЗаСчетСтороннейКомпании"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("requestforspendingfunds", "ЗаявкаНаРасходДенежныхСредств"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("propertyvalue", "ЗначениеСвойства"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fieldvalues", "ЗначенияПолей"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("id", "Идентификатор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("statecontactid", "ИдентификаторГосконтракта"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("idof1cproductsproductcategory", "ИдентификаторНоменклатурыСервиса1СНоменклатура"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("reportid", "ИдентификаторОтчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentid", "ИдентификаторПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("idof1cproductsservice", "ИдентификаторСервиса1СНоменклатура"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rowid", "ИдентификаторСтроки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("packageid", "ИдентификаторУпаковки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("idof1cproductsservicecharacteristic", "ИдентификаторХарактеристикиСервиса1СНоменклатура"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("manufacturer_", "Изготовитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("surpluses", "Излишки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("importedalcoholcontainingproducts", "ИмпортнаяАлкогольнаяПродукция"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pricesetup", "УстановкаЦенНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("pricetype_", "ТипЦен"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("principal", "Принципал"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productbatchid", "РНПТ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productcharacteristic", "ХарактеристикаНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productclassificationtypecode", "КодВидаНоменклатурнойКлассификации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productdata_1", "ДанныеНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productiondate", "ДатаПроизводства"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productionseries_", "СерияПродукции"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productkind", "ВидНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productpackaging", "УпаковкаНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("products", "Номенклатура"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productsrelease", "ВыпускПродукции"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productsreleasetobusinessunit", "ВыпускПродукцииВПодразделение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("productsreleasetowarehouse", "ВыпускПродукцииНаСклад"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("producttypeis", "ВидПродукцииИС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("property", "Свойство"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("propertyright", "ИмущественноеПраво"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("name", "Имя"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("inventory_", "Инвентаризация"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("assetid", "ИнвентарныйНомер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("collection_", "Инкассация"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("collectionorder_2", "ИнкассовоеПоручение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("propertyvalue", "ЗначениеСвойства"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("provisions", "ОценочныеОбязательства"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("purchase", "Покупка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("purchasebyimport", "ЗакупкаПоИмпорту"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("purchasedate", "ДатаПриобретения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("purchaseforactivity", "ЗакупкаПодДеятельность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("purchasefromsupplier_", "ПокупкаУПоставщика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("purchaseorder", "ЗаказПоставщику"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("purchases", "Покупки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("purchasesettlementswithconsignors", "РасчетыСКомитентамиПоЗакупке"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("purposetext", "ТекстНазначения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("quantityafterchange", "КоличествоПослеИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("quantitybeforeadjustment", "КоличествоДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("quantitybeforechange_", "КоличествоДоИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("quantityinstock_", "КоличествоНаСкладе"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("quarter", "Квартал"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rankinginpriority", "Очередность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rate_", "Расценка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rdexpenses", "РасходыНаНИОКР"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("readyforissuance", "ГотовКВыдаче"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receiptfromtoller", "ПоступлениеОтПереработчика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receiptfromvendor", "ПриемкаОтПоставщика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receiptmethod", "СпособПоступления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receiptoffinancialdocumentsfromadvanceholder", "ПоступлениеДенежныхДокументовОтПодотчетника"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receiptoffinancialdocumentsfromvendor", "ПоступлениеДенежныхДокументовОтПоставщика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receiptofgoodsservices", "ПоступлениеТоваровУслуг"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receiptprice", "ЦенаПоступления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receivedfrom", "ПринятоОт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receivingbusinessunit", "ПодразделениеПолучатель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receivingbyreturnfromacustomer", "ПриемкаПоВозвратуОтКлиента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receivingbytransfer", "ПриемкаПоПеремещению"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("receivingcash", "ПолучениеНаличных"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("recipientcrtr", "КПППолучателя"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("recipienttext", "ТекстПолучателя"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("recipienttin", "ИННПолучателя"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("recognition", "ПринятиеКУчету"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("recognitionwithcommissioning", "ПринятиеКУчетуСВводомВЭксплуатацию"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reconstruction", "Реконструкция"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("records", "Записи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("recyclablewaste", "ВозвратныеОтходы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reducedbalance", "УменьшаемогоОстатка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ref", "Ссылка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("refundfromcustomerviapaymentsystem", "ВозвратОтКлиентаЧерезПлатежнуюСистему"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("refundtocommittee", "ВозвратКомитенту"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("refundtocustomerspaymentcard", "ВозвратОплатыКлиентуНаПлатежнуюКарту"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("registrationcountry", "СтранаРегистрации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("registrationdate", "ДатаРегистрации"); // @NON-NLS-1 @NON-NLS-2 + + Массив = Новый Массив; + Массив.Добавить("ОГРН"); // @NON-NLS-1 + Массив.Добавить("РегистрационныйНомер"); // @NON-NLS-1 + Словарь.Вставить("registrationnumber", Массив); + + Словарь.Вставить("registrationperiod", "ПериодРегистрации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("registrationwithtaxauthority", "РегистрацияВНалоговомОргане"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("regulatedreporting", "РегламентированнаяОтчетность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rejected", "Отклонен"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rejectionsignatureisrequired", "ТребуетсяПодписаниеОтклонения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("remunerationsettlementaccount", "СчетУчетаРасчетовПоВознаграждению"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("repayment", "Выплата"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("repaymentofdebt", "ПогашениеЗадолженности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("replenished", "Комплектуется"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reportdata", "ДанныеОтчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reportdescription1", "НаименованиеОтчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reportid", "ИдентификаторОтчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reportkind", "ВидОтчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reporttomaterialprovider", "ОтчетДавальцу"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("requestforspendingfunds", "ЗаявкаНаРасходДенежныхСредств"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("requiredtofill", "ЗаполнятьОбязательно"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("resendingrequired", "ТребуетсяПовторнаяОтправка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reserve", "Резерв"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reserveamount_", "СуммаРезерва"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reserves", "Резервы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("resortfee", "КурортныйСбор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("responsiblepersonkind", "ВидОтветственногоЛица"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("restorevat", "ВосстановитьНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("retail_2", "Розничный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("retailamount", "СуммаВРознице"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("retailndsrate", "СтавкаНДСВРознице"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("retailprice", "ЦенаВРознице"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("retailpriceisold", "ЦенаВРозницеСтарая"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("retailsalesreport", "ОтчетОРозничныхПродажах"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("return", "Возврат"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returnamount", "СуммаВозврата"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returncontainers", "ВозвратнаяТара"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returnfromcommissionagent", "ВозвратОтКомиссионера"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returnfromcustomer", "ВозвратОтКлиента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returnfromretailcustomer", "ВозвратОтРозничногоПокупателя"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returnofcashequivalentstovendor", "ВозвратДенежныхДокументовПоставщику"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returnofgiftcards", "ВозвратПодарочныхСертификатов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returnofgoodstovendor", "ВозвратТоваровПоставщику"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returnofmaterialsfromproduction", "ВозвратМатериаловИзПроизводства"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returns", "Возвраты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returntovendor", "ВозвратПоставщику"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("returnunderoperation", "ВозвратПодДеятельность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("reusablepackage", "МногооборотнаяТара"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("revaluation", "Переоценка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("revenueaccount", "СчетДоходов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rewardservice", "УслугаПоВознаграждению"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rncea", "ОКВЭД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rncea2", "ОКВЭД2"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rncfi", "ОКОПФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rncpcode", "КодОКП"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rncps", "ОКАТО"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rncteaps2code", "КодОКПД2"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rolledback_", "Отменен"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("roundingprecision", "ТочностьОкругления"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("roundup", "ОкруглятьВБольшуюСторону"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("route", "Маршрут"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("rowid", "ИдентификаторСтроки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("runningtimevalue", "ПоказательНаработки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("salary", "Зарплата"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("salarydepositing", "ДепонированиеЗарплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("saledate", "ДатаРеализации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("saleisnotsubjecttovat", "ПродажаНеОблагаетсяНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("saleissubjecttoutii", "ПродажаОблагаетсяЕНВД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("saleissubjecttovat", "ПродажаОблагаетсяНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("saleofgoodsoncommission", "ПродажаТоваровНаКомиссии"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("salesbypatent", "ПродажаПоПатенту"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("salescharge", "ТорговыйСбор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("saleshare", "ПроцентОтСуммыПродажи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("salesorder", "ЗаказКлиента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("salesrevenueaccount", "СчетУчетаВыручкиОтПродаж"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("saletocustomer", "РеализацияКлиенту"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("scheduleamounttype", "ТипСуммыГрафика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("secondinfobasedescription", "НаименованиеВторойБазы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("secondinfobasenewnodecode", "КодНовогоУзлаВторойБазы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sectionnumber", "НомерРаздела"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sections", "Разделы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("securities", "ЦенныеБумаги"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("securitydeposit", "Залог"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("selectedform", "ВыбраннаяФорма"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("selfpickup", "Самовывоз"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("seller", "Продавец"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sellercrtr", "КПППродавца"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sellers", "Продавцы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sellertin", "ИННПродавца"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("senderbankaccount", "БанковскийСчетОтправитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("senderorganization", "ОрганизацияОтправитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sendingcancellationisrequired", "ТребуетсяОтправкаАннулирования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sendingdepartment", "ПодразделениеОтправитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sendinginvitationisrequired", "ТребуетсяОтправкаПриглашения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sendingnotificationisrequired", "ТребуетсяОтправкаИзвещения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sendingnotificationofrejectionisrequired", "ТребуетсяОтправкаИзвещенияПоОтклонению"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sendingrejectionisrequired", "ТребуетсяОтправкаОтклонения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sendingrequired", "ТребуетсяОтправка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sequencenumber", "ПорядковыйНомер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("serialnumber", "СерийныйНомер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("series", "Серия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("seriesandnumber", "СвидетельствоСерияНомер"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sertificatedateofissue", "СвидетельствоДатаВыдачи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("servicelife", "СрокЭксплуатации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("services", "Услуги"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("servicetype", "ТипУслуги"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("set", "Набор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("setsf", "ВыставленСФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("settlementaccount_", "СчетРасчетов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("settlementdocumentnumber", "НомерПлатежноРасчетногоДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("settlementsubjectflag", "ПризнакПредметаРасчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("settlementswithlessors", "РасчетыСЛизингодателями"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sfdata", "ДанныеПоСФ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shared3", "Общая"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shareddata", "ОбщиеДанные"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sheetquantity", "КоличествоЛистов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shelflifeunitofmeasure", "ЕдиницаИзмеренияСрокаГодности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shipentireorder", "ОтгружатьЗаказЦеликом"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shipmentbytransfer", "ОтгрузкаПоПеремещению"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shipmentreferenceorder", "РаспоряжениеНаОтгрузку"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shipmentstatus", "СостояниеОтгрузки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shipmenttocustomer", "ОтгрузкаКлиенту"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shipmentunderreturntovendor", "ОтгрузкаПоВозвратуПоставщику"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shipmentwithouttransferofownership_implemented", "ОтгрузкаБезПереходаПравСобственности_Реализовано"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shipmentwithouttransferofownership_inpath", "ОтгрузкаБезПереходаПравСобственности_ВПути"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shipped_", "Отгружен"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shipper", "Грузоотправитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shoesproducts", "Обувь"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shortages", "Недостачи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shortdescription1", "НаименованиеКраткое"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shortterm", "Краткосрочный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shorttermloans", "КраткосрочныеЗаймы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("shorttermloans_", "КраткосрочныеКредиты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("showscalculationmethod", "ПризнакСпособаРасчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("signature", "Подпись"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("signaturedate", "ДатаПодписи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("signingnotificationofrejectionisrequired", "ТребуетсяПодписаниеИзвещенияПоОтклонению"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("signingofcancellationisrequired", "ТребуетсяПодписаниеАннулирования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("signingofnotificationisrequired", "ТребуетсяПодписаниеИзвещения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("signingrequired", "ТребуетсяПодписание"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("simplifiedrevenue", "УпрощеннаяДоход"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("simplifiedrevenueminusexpense", "УпрощеннаяДоходМинусРасход"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("singleproductpackage", "МонотоварнаяУпаковка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sku", "Артикул"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("skucounterparty_", "SKUКонтрагента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("soldbyweight", "Весовой"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sourcedocument_", "ИсходныйДокумент"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sourceinfobaseprefix", "ПрефиксИнформационнойБазыИсточника"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sourcewarehouse", "СкладОтправитель"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("specialfactortaxaccounting", "СпециальныйКоэффициентНУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("specialtaxationprocedure", "ОсобыйПорядокНалогообложения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ssfadditionalcode", "ДополнительныйКодФСС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ssflocalauthorityname", "НаименованиеТерриториальногоОрганаФСС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ssfregistrationnumber", "РегистрационныйНомерФСС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("startdate", "ДатаНачала"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("startdateofinventory", "ДатаНачалаИнвентаризации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("startofbarcoderange", "НачалоДиапазонаШтрихкода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("startofmagneticcoderange", "НачалоДиапазонаМагнитногоКода"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("statecontactid", "ИдентификаторГосконтракта"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("statedate", "ДатаСостояния"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("statement", "Ведомость"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("statementdate", "ДатаВедомости"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("statementnumber", "НомерВедомости"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("stateofelectronicdocument", "СостояниеЭлектронногоДокумента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("stateofpayment", "СостояниеОплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("status", "Статус"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("store", "Магазин"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("storedfile", "ХранимыйФайл"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("strength", "Крепость"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("string", "Строка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("subcontractorreport", "ОтчетПереработчика"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("subjecttoenvd", "ОблагаетсяЕНВД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("subjecttovat", "ОблагаетсяНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("subjecttovatatcustomer", "ОблагаетсяНДСУПокупателя"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("subreport", "Подотчет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sum", "Сумма"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sumcompl", "СуммаРегл"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sumcurr", "СуммаВал"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("sumreal", "СуммаФакт"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("superiordepartment", "ВышестоящееПодразделение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("supportsesfsspayment", "ПоддерживаетОплатуЭСФСС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("surpluses", "Излишки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("swiftbic", "СВИФТБИК"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tara", "Тара"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tareserve", "РезервНУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("taxation", "Налогообложение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("taxationsystem", "СистемаНалогообложения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("taxauthoritycode", "КодНалоговогоОргана"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("taxinvoice", "СчетФактура"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tcmif", "ТФОМС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("technicalcharacteristics", "ВладелецХарактеристики"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tendays", "Декада"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tenth", "десятая"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("thereisimplementationreceiptindocument", "ЕстьВДокументеПоступленияРеализации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("thisinfobasedescription", "НаименованиеЭтойБазы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("thisisacquiringcontract", "ЭтоДоговорЭквайринга"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("thisisadditionalexpense", "ЭтоДопРасходы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("thisisreturn", "ЭтоВозврат"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("ticketnumber", "НомерБилета"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("tin", "ИНН"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("tinofcounterparty", "ИННКонтрагента"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("tinofpayer", "ИННПлательщика"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("recipienttin", "ИННПолучателя"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sellertin", "ИННПродавца"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("otherreasons", "Иное"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("othersettlementsubject", "ИнойПредметРасчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("foreignbank", "ИностранныйБанк"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("performer", "Исполнитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("usepaymentbycards", "ИспользоватьОплатуПлатежнымиКартами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("keepaccountingbybatch", "ИспользоватьСерии"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("usediscountsmarkups", "ИспользоватьСкидкиНаценки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("useshelflifeonbatchregistration", "ИспользоватьСрокГодностиСерии"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("usecharacteristics", "ИспользоватьХарактеристики"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("correctionoferrors", "ИсправлениеОшибки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("correctedreceiptdocument", "ИсправляемыйДокументПоступления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("correctedimplementationdocument", "ИсправляемыйДокументРеализации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sourcedocument_", "ИсходныйДокумент"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("overhaul", "КапитальныйРемонт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("loyaltycard", "КартаЛояльности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashregister", "КассаККМ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashaccountissuer", "КассаОтправитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashaccountrecipient", "КассаПолучатель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashier", "Кассир"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashregistershift", "КассоваяСмена"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("quarter", "Квартал"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("issuedby", "КемВыдан"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("keyproperties", "КлючевыеСвойства"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("composite", "КлючСтроки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("code", "Код"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("authorizationcode", "КодАвторизации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fiasaddresscode", "КодАдресаФИАС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("codeofalcoholicproducts", "КодАлкогольнойПродукции"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("codealpha2", "КодАльфа2"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("codealpha3", "КодАльфа3"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("incomekindcode", "КодВидаДохода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("productclassificationtypecode", "КодВидаНоменклатурнойКлассификации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tires", "Шины"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("title", "Заголовок"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tobacco", "Табак"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tocustomer", "ДоКлиента"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tocustomerisdefinedbytransportationcompany", "КПолучателюОпределяетСлужбаДоставки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tooltip", "Подсказка"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("totalofallpayments", "СуммаВсехПлатежей"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("tracedgoods", "ПрослеживаемыйТовар"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("trackingaccountintransit", "СчетУчетаВПути"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("transactionkindcode", "КодВидаОперации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("codeinapp", "КодВПрограмме"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ftscode", "КодМВД"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("taxauthoritycode", "КодНалоговогоОргана"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("businessactivityclassifiercode", "КодОКВЭД"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rncpcode", "КодОКП"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rncteaps2code", "КодОКПД2"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("businessunitcode", "КодПодразделения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ftssubordinationcode", "КодПодчиненностиФСС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("codebyrncfa", "КодПоОКОФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pensionfundcode", "КодПФР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("feacncode", "КодТНВЭД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transactionrate", "КурсВзаиморасчетов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transcriptofadditionalexpenses", "РасшифровкаДопРасходов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transfer_", "Передача"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transferaccount", "СчетПередачи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transferamount", "СуммаПередачи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transferbank", "БанкДляРасчетов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transferforactivity", "ПеремещениеПодДеятельность"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transferoftaxesandcontributions", "ПеречислениеВБюджет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transferorder", "ЗаказНаПеремещение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transferprice", "ЦенаПередачи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transfertocommissionagent", "ПередачаНаКомиссию"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transfertomaterialprovider", "ПередачаДавальцу"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transfertotoller", "ПередачаПереработчику"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transferwithfullpayment", "ПередачаСПолнойОплатой"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transferwithoutpayment", "ПередачаБезОплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transferwithpartialpayment", "ПередачаСЧастичнойОплатой"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("transmissionerrorcorrectionisrequired", "ТребуетсяИсправлениеОшибкиПередачи"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("trucode", "КодТРУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("count", "Количество"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofdaysofdeferral", "КоличествоДнейОтсрочки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("quantitybeforechange_", "КоличествоДоИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("quantitybeforeadjustment", "КоличествоДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentscount", "КоличествоДокументов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sheetquantity", "КоличествоЛистов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("quantityinstock_", "КоличествоНаСкладе"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofvalidityperiods", "КоличествоПериодовДействия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("quantityafterchange", "КоличествоПослеИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofrnpt", "КоличествоРНПТ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofrnptbeforechange", "КоличествоРНПТДоИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofrnptbeforeadjustment", "КоличествоРНПТДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofpackages", "КоличествоУпаковок"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofpackagesbeforechange_", "КоличествоУпаковокДоИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofpackagesbeforeadjustment", "КоличествоУпаковокДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofpackagesaccounting", "КоличествоУпаковокУчет"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofpackagesreal", "КоличествоУпаковокФакт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofdays_1", "КоличествоУчет"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("countreal", "КоличествоФакт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("consignee", "Комиссионер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("commissiongoods", "КомиссионныеТовары"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fee", "Комиссия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("comment", "Комментарий"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("replenished", "Комплектуется"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("endofmagneticcoderange", "КонецДиапазонаМагнитногоКода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("endofbarcoderange", "КонецДиапазонаШтрихкода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("endofperiod", "КонецПериода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("contactinformation", "КонтактнаяИнформация"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("contactperson", "КонтактноеЛицо"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("counterpartyscontactperson", "КонтактноеЛицоКонтрагента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("counterparty", "Контрагент"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("counterpartydebtor", "КонтрагентДебитор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("creditor", "КонтрагентКредитор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("counterparties", "Контрагенты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountdue", "КОплате"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("corrective", "Корректировочный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("corraccount", "КоррСчет"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeindicator", "ПоказательТипа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofagreement", "ВидДоговора"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofbankaccount", "ВидБанковскогоСчета"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofcalculationsadvanced", "ВидРасчетовРасширенный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofdiscount", "ВидСкидки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofdocumentrighttosign", "ВидДокументаПравоПодписи"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofexcisestamp", "ТипАкцизнойМарки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofexpensesforcoreactivities", "ВидРасходовПоОсновнойДеятельности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofexpensesfornoncoreactivities", "ВидРасходовПоНеосновнойДеятельности"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofoperationofcommissionairesreport", "ВидОперацииОтчетаКоммисионера"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofpayment", "ТипОплаты"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofreserve", "ВидРезерва"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofresponsiblepersonbyline", "ВидОтветственногоЛицаСтрокой"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofresponsiblepersonselection", "ВидОтветственногоЛицаОтбор"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typeofvalidityperiod", "ТипПериодаДействия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("typesofcashregisterpaymentsystem", "ТипыПлатежнойСистемыККТ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("uisstatecontractstep", "ЭтапГосконтрактаЕИС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("underleaseagreement", "ПоДоговоруЛизинга"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("unitofmeasure", "ЕдиницаИзмерения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("unitoftraceability", "ЕдиницаИзмеренияПрослеживаемости"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("uploadformat", "ФорматВыгрузки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("urgencyofloanloan", "СрочностьКредитаЗайма"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("usecharacteristics", "ИспользоватьХарактеристики"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("usediscountsmarkups", "ИспользоватьСкидкиНаценки"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("usedmaterials", "Материалы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("usefullifebefore2009", "СрокИспользованияНУДо2009"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("usefullifemonthsac", "СрокПолезногоИспользованияБУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("usefullifemonthsta", "СрокПолезногоИспользованияНУ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("usepaymentbycards", "ИспользоватьОплатуПлатежнымиКартами"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("user", "Пользователь"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("useshelflifeonbatchregistration", "ИспользоватьСрокГодностиСерии"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("usetransportparametersemail", "ИспользоватьПараметрыТранспортаEMAIL"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("usetransportparametersfile", "ИспользоватьПараметрыТранспортаFILE"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("usetransportparametersftp", "ИспользоватьПараметрыТранспортаFTP"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("utii", "ЕНВД"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vacationproduced", "ОтпускПроизвел"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("validbefore", "ДействителенДо"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("validityperiod", "СрокДействия"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("validuntil_", "ГоденДо"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("valuechoiceformtitle", "ЗаголовокФормыВыбораЗначения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("valueformtitle", "ЗаголовокФормыЗначения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("valueofadditionalprops", "ЗначениеДополнительногоРеквизита"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vat", "НДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vat0", "НДС0"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vat10", "НДС10"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vat10_110", "НДС10_110"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vat18", "НДС18"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vat18_118", "НДС18_118"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vat20", "НДС20"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vat20_120", "НДС20_120"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vatamount", "СуммаНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vatamount10", "СуммаНДС10"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vatamount20", "СуммаНДС20"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vatamountbeforechange", "СуммаНДСДоИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vatinvoiceforpurchases", "СчетУчетаНДСПриЗакупке"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vatinvoiceforsales", "СчетУчетаНДСПриПродаже"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vatiscalculatedbybuyer", "НДСИсчисляетсяПокупателем"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vatrate", "СтавкаНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vatratebeforechange", "СтавкаНДСДоИзменения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vatrateofremuneration", "СтавкаНДСВознаграждения"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vattaxagent", "НалоговыйАгентПоНДС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vattaxationofseller", "НалогообложениеНДСПродавца"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vehicles", "ТранспортныеСредства"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vendor", "Поставщик"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vendorinvoicereceived", "СчетФактураПолученный"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vendorsarapaccounting", "РасчетыСПоставщиками"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("vetisdairyproducts", "МолочнаяПродукцияВЕТИС"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("volumeindecaliters", "ОбъемДАЛ"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("volumem3", "Объем"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("volumeofproductsworksforcalculatingdepreciationinphysicalunits", "ОбъемПродукцииРаботДляВычисленияАмортизации"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("waitingforconfirmationofcancellation", "ОжидаетсяПодтверждениеАннулирования"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("waitingforresponsetoinvitation", "ОжидаетсяОтветНаПриглашение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("warehouse", "Склад"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("warehousegroup_", "СкладГруппа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("warehouseinvoice", "СчетУчетаНаСкладе"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("warehousestore", "ТипСклада"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("wearaccrual", "НачислениеИзноса"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("webpage", "ВебСтраница"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("week", "Неделя"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("weight", "Вес"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("wheelchairs", "КреслаКоляски"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("whodecided", "КтоРешил"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("wholesale_1", "Оптовый"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("whostated", "КтоЗаявил"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("width", "Ширина"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("withcommissionagentforpurchase", "СКомиссионеромНаЗакупку"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("withconsignee", "СКомиссионером"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("withconsignor", "СКомитентом"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("withcustomer", "СПокупателем"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("withholdcommission", "УдержатьКомиссионноеВознаграждение"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("withvendor", "СПоставщиком"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("work_5", "Работа"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("workingphone", "ТелефонРабочий"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("workkind", "ВидРабот"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("workoutput", "ВыработкаСотрудников"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("works", "Работы"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("worldcountry", "СтранаМира"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("writeoff", "Списание"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("writeofffinancialdocuments", "СписаниеДенежныхДокументов"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("writeoffofgoodsforcommissions", "СписаниеТоваровНаКомиссии"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("wspassivemode", "WSПассивныйРежим"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("year", "Год"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("yes", "Да"); // @NON-NLS-1 @NON-NLS-2 + Словарь.Вставить("yookassa", "ЮКасса"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("zoomratio", "Коэффициент"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("zoomratio1", "Коэффициент1"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("zoomratio10", "Коэффициент10"); // @NON-NLS-1 @NON-NLS-2 @@ -1583,770 +2601,11 @@ Словарь.Вставить("zoomratio7", "Коэффициент7"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("zoomratio8", "Коэффициент8"); // @NON-NLS-1 @NON-NLS-2 Словарь.Вставить("zoomratio9", "Коэффициент9"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("annualdepreciationrate", "КоэффициентАмортизацииБУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("depreciationaccrualfactor", "КоэффициентБУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accelerationfactoraccounting", "КоэффициентУскоренияБУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tocustomerisdefinedbytransportationcompany", "КПолучателюОпределяетСлужбаДоставки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("crtr", "КПП"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("counterpartycrtr", "КППКонтрагента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("payercrtr", "КПППлательщика"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("recipientcrtr", "КПППолучателя"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sellercrtr", "КПППродавца"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentdeadline", "КрайнийСрокПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shorttermloans", "КраткосрочныеЗаймы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shorttermloans_", "КраткосрочныеКредиты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shortterm", "Краткосрочный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("multiplier_", "КратностьВзаиморасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentmultiplicity", "КратностьДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("conversionmultiplicity", "КратностьКонвертации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("credit", "Кредит"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountspayable", "КредиторскаяЗадолженность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("loansandborrowings", "КредитыИЗаймы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("loansreceived_", "КредитыПолученные"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("strength", "Крепость"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("wheelchairs", "КреслаКоляски"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("whostated", "КтоЗаявил"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("whodecided", "КтоРешил"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("resortfee", "КурортныйСбор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transactionrate", "КурсВзаиморасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentcourse", "КурсДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("conversionrate", "КурсКонвертации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("conversionrateofbonusesintocurrency", "КурсКонвертацииБонусовВВалюту"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("exchangerateofcentralbankondateofconversion", "КурсЦБНаДатуКонвертации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("courier", "Курьер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bycourier", "Курьером"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("lightindustrygoodsandclothes", "ЛегкаяПромышленность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("linear", "Линейный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("lotteryticket", "ЛотерейныйБилет"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("magneticcode", "МагнитныйКод"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("maximumsharepayablebypoints", "МаксимальныйПроцентОплатыБонусами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("brand", "Марка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("markedgoods", "МаркированныйТовар"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("packagemarking", "МаркировкаУпаковки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("packagemarkings", "МаркировкиУпаковок"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("labelled", "Маркируемый"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("route", "Маршрут"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("usedmaterials", "Материалы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("customermaterials", "МатериалыЗаказчика"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("manager", "Менеджер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("birthplace", "МестоРождения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("month", "Месяц"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("monthoftaxperiod", "МесяцНалоговогоПериода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("reusablepackage", "МногооборотнаяТара"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("multilineinputfield", "МногострочноеПолеВвода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("modernization", "Модернизация"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fixedassetscostadditions", "МодернизацияОС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("financiallyliableperson", "МОЛ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("milkandmilkproducts", "МолочнаяПродукция"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("singleproductpackage", "МонотоварнаяУпаковка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("masculine", "Мужской"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("multiproductpackaging", "МультитоварнаяУпаковка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("advancepayment", "НаАванс"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("set", "Набор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("onpaper", "НаБумажномНосителе"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("modernizationdocumentname", "НазваниеДокументаМодернизации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nameofrecognitiondocument", "НазваниеДокументаПринятияКУчету"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("advancepurpose", "НазначениеАванса"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentpurposes", "НазначениеПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("description", "Наименование"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("externaldocumentname", "НаименованиеВходящегоДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nameofcontactinformation", "НаименованиеКонтактнойИнформации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shortdescription1", "НаименованиеКраткое"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nameofpurposeofuse", "НаименованиеНазначенияИспользования"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("activitytype", "НаименованиеОКВЭД"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("activitytype2", "НаименованиеОКВЭД2"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("legalform", "НаименованиеОКОПФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ownershipform", "НаименованиеОКФС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("reportdescription1", "НаименованиеОтчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("descriptionfull", "НаименованиеПолное"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("abbreviateddescription", "НаименованиеСокращенное"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nameofmethodforreflectingexpenses", "НаименованиеСпособаОтраженияРасходов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pensionfundlocalauthorityname", "НаименованиеТерриториальногоОрганаПФР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ssflocalauthorityname", "НаименованиеТерриториальногоОрганаФСС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accumulateddepreciationaccounting", "НакопленнаяАмортизацияБУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accumulateddepreciationtd", "НакопленнаяАмортизацияВР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accumulateddepreciationtaxaccounting", "НакопленнаяАмортизацияНУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("permanentdifferenceinevaluationofaccumulateddepreciation", "НакопленнаяАмортизацияПР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashaccountpayment_", "Наличная"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashpayment", "Наличные"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vattaxagent", "НалоговыйАгентПоНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nonresidenttaxnumber", "НалоговыйНомерНерезидента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("taxation", "Налогообложение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vattaxationofseller", "НалогообложениеНДСПродавца"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("onotherincome", "НаПрочиеДоходы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("forotherexpenses", "НаПрочиеРасходы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("calculationsettings", "НастройкиРасчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("awaitingconfirmation", "НаУтверждении"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("markup", "Наценка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("startofmagneticcoderange", "НачалоДиапазонаМагнитногоКода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("startofbarcoderange", "НачалоДиапазонаШтрихкода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("beginofperiod", "НачалоПериода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("beginningofreportperiod", "НачалоПериодаОтчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("depreciationaccrual", "НачислениеАмортизации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bonuspointaccrual", "НачислениеБонусныхБаллов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("wearaccrual", "НачислениеИзноса"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accruewearasperufadr", "НачислениеИзносаПоЕНАОФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accruals", "Начисления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("depreciationaccrualaccounting", "НачислятьАмортизациюБУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("depreciationaccrualtaxaccounting", "НачислятьАмортизациюНУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ourowndeliveryfromsenderaddress", "НашимиСиламиСАдресаОтправителя"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vat", "НДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vat0", "НДС0"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vat10", "НДС10"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vat10_110", "НДС10_110"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vat18", "НДС18"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vat18_118", "НДС18_118"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vat20", "НДС20"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vat20_120", "НДС20_120"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("personalincometaxiscalculatedbythetaxagent", "НДСИсчисляетсяНалоговымАгентом"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vatiscalculatedbybuyer", "НДСИсчисляетсяПокупателем"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("personalincometax", "НДФЛ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nonautomatedpointofsale", "НеавтоматизированнаяТорговаяТочка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("week", "Неделя"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shortages", "Недостачи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("intangibleassets", "НематериальныеАктивы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("intangibleasset", "НематериальныйАктив"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("donotaccruepointswhenpayingwithbonuses", "НеНачислятьБаллыПриОплатеБонусами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("notsubjecttovat", "НеОблагаетсяНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("notpaid", "НеОплачен"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("notshipped_", "НеОтгружен"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("notreceived", "НеПолучен"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("notcalculating", "НеРассчитывается"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("notagreedupon", "НеСогласована"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("notgenerated1", "НеСформирован"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nicotinecontainingproducts", "НикотиносодержащаяПродукция"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("products", "Номенклатура"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("number", "Номер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("excisestampnumber", "НомерАкцизнойМарки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ticketnumber", "НомерБилета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("statementnumber", "НомерВедомости"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paysheetnumber", "НомерВедомостиНаВыплатуЗарплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberinprogram", "НомерВПрограмме"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("incomingdocumentnumber", "НомерВходящегоДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ccdnumber", "НомерГТД"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ccdnumberbeforechange", "НомерГТДДоИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("declarationno", "НомерДекларации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentnumber", "НомерДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("modernizationdocumentnumber", "НомерДокументаМодернизации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberofsignaturerightdocument", "НомерДокументаПраваПодписи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentofrecognitionnumber", "НомерДокументаПринятияКУчету"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("correctionnumber", "НомерИсправления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cardnumber", "НомерКарты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashshiftnumber", "НомерКассовойСмены"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("personalaccountnumber", "НомерЛицевогоСчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("passportnumber", "НомерПаспорта"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("settlementdocumentnumber", "НомерПлатежноРасчетногоДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sectionnumber", "НомерРаздела"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("linenumber", "НомерСтроки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentrownumber", "НомерСтрокиДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("invoicenumber", "НомерСФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountnumber", "НомерСчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("commissionagentstaxinvoicenumber", "НомерСчетаФактурыКомиссионера"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashregisterreceiptnumber", "НомерЧекаККМ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cashregistersalesreceiptnumber", "НомерЧекаККМПродажи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nominal", "Номинал"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("subjecttoenvd", "ОблагаетсяЕНВД"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("subjecttovat", "ОблагаетсяНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("subjecttovatatcustomer", "ОблагаетсяНДСУПокупателя"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("exchangecompleted", "ОбменЗавершен"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("branchoffice", "ОбособленноеПодразделение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shoesproducts", "Обувь"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shared3", "Общая"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shareddata", "ОбщиеДанные"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("object", "Объект"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("volumem3", "Объем"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("volumeindecaliters", "ОбъемДАЛ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("volumeofproductsworksforcalculatingdepreciationinphysicalunits", "ОбъемПродукцииРаботДляВычисленияАмортизации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("expecteddeliverydate", "ОжидаемаяДатаПоставки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("expecteddateofreceipt", "ОжидаемаяДатаПоступления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pendingreceiptnotification", "ОжидаетсяИзвещениеОПолучении"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pendingcorrection", "ОжидаетсяИсправление"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pendingtransfertoprovider", "ОжидаетсяПередачаОператору"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pendingconfirmation", "ОжидаетсяПодтверждение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pendingconfirmationofprovider", "ОжидаетсяПодтверждениеОператора"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rncps", "ОКАТО"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rncea", "ОКВЭД"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rncea2", "ОКВЭД2"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("endofreportperiod_", "ОкончаниеПериодаОтчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rncfi", "ОКОПФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("okpo", "ОКПО"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("roundup", "ОкруглятьВБольшуюСторону"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("municipalterritoriesclassifier", "ОКТМО"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("okfs", "ОКФС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("longdesc", "Описание"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentwithbonuspoints", "ОплатаБонуснымиБаллами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymenttocounterparties", "ОплатаКонтрагентам"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentforloan", "ОплатаКредита"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentfromclientbypaymentcard", "ОплатаОтКлиентаПлатежнойКартой"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentfromclientthroughpaymentsystem", "ОплатаОтКлиентаЧерезПлатежнуюСистему"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentwithpaymentcards", "ОплатаПлатежнымиКартами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentbycreditcardsforgiftcertificates", "ОплатаПлатежнымиКартамиПодарочныхСертификатов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentbycertificates", "ОплатаСертификатами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("payments", "Оплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("partiallypaid", "ОплаченЧастично"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("determinedbyallocation", "ОпределяетсяРаспределением"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("activityregistration", "ОприходованиеПодДеятельность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("wholesale_1", "Оптовый"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("organization", "Организация"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("companyfilter", "ОрганизацияОтбор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("senderorganization", "ОрганизацияОтправитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("companyrecipient", "ОрганизацияПолучатель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fiuauthority", "ОрганПФР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("basis", "Основание"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("maincurrency", "ОсновнаяВалюта"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("mainpicture", "ОсновнаяКартинка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("mainsystem", "ОсновнаяСистемаНалогообложения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fixedasset", "ОсновноеСредство"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("mainbankaccount", "ОсновнойБанковскийСчет"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fixedassets", "ОсновныеСредства"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("specialtaxationprocedure", "ОсобыйПорядокНалогообложения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("employeeincharge_", "ОтветственноеЛицо"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("employeeresponsible", "Ответственный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("assigneeformaintainingofaccountingregisters", "ОтветственныйЗаБухгалтерскиеРегистры"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("assigneeformaintainingoftaxregisters", "ОтветственныйЗаНалоговыеРегистры"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shipentireorder", "ОтгружатьЗаказЦеликом"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shipped_", "Отгружен"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("partiallyshipped", "ОтгруженЧастично"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shipmentwithouttransferofownership_inpath", "ОтгрузкаБезПереходаПравСобственности_ВПути"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shipmentwithouttransferofownership_implemented", "ОтгрузкаБезПереходаПравСобственности_Реализовано"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shipmenttocustomer", "ОтгрузкаКлиенту"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shipmentunderreturntovendor", "ОтгрузкаПоВозвратуПоставщику"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shipmentbytransfer", "ОтгрузкаПоПеремещению"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rejected", "Отклонен"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("isrejected", "Отклонена"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rolledback_", "Отменен"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("canceled", "Отменено"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fromsenderdeterminedbydeliveryservice", "ОтОтправителяОпределяетСлужбаДоставки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vacationproduced", "ОтпускПроизвел"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("deferredpayment", "ОтсрочкаПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("middlename", "Отчество"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("retailsalesreport", "ОтчетОРозничныхПродажах"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("provisions", "ОценочныеОбязательства"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rankinginpriority", "Очередность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountinwordsparameters", "ПараметрыПрописи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("minmorflotpassport", "ПаспортМинморфлота"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("seafarerspassport", "ПаспортМоряка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("passportofrussianfederation", "ПаспортРФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("passportofussr", "ПаспортСССР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("patent", "Патент"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("first", "Первая"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("initialcostlocalaccounting", "ПервоначальнаяСтоимостьБУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("initialcostta", "ПервоначальнаяСтоимостьНУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("carrier", "Перевозчик"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transfer_", "Передача"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transferwithoutpayment", "ПередачаБезОплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transfertocommissionagent", "ПередачаНаКомиссию"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transferwithfullpayment", "ПередачаСПолнойОплатой"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transferwithpartialpayment", "ПередачаСЧастичнойОплатой"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transferforactivity", "ПеремещениеПодДеятельность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("debttransfer_", "ПереносЗадолженности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("revaluation", "Переоценка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transferoftaxesandcontributions", "ПеречислениеВБюджет"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("period", "Период"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("periodfilter", "ПериодОтбор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("registrationperiod", "ПериодРегистрации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("periodasstring", "ПериодСтрокой"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("beerorbeerdrink", "Пиво"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentdisbursement", "ПлатежВыплата"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentcard", "ПлатежнаяКарта"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentlink_", "ПлатежнаяСсылка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentorder", "ПлатежноеПоручение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentdemand", "ПлатежноеТребование"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentandsettlementdocuments", "ПлатежноРасчетныеДокументы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("payingagent", "ПлатежныйАгент"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentwarrant", "ПлатежныйОрдер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("payingsubagent", "ПлатежныйСубагент"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("attorney", "Поверенный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("repaymentofdebt", "ПогашениеЗадолженности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("excisablegoods", "ПодакцизныйТовар"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("excisablegoodsmarkedbyidentificationtoolwithmarkingcode", "ПодакцизныйТоварМаркируемыйСИИмеющийКМ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("excisablegoodsmarkedbyidentificationtoolwithoutmarkingcode", "ПодакцизныйТоварМаркируемыйСИНеИмеющийКМ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("gift", "Подарок"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("giftcertificates", "ПодарочныеСертификаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("preparingforsale", "ПодготовкаКПередаче"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("supportsesfsspayment", "ПоддерживаетОплатуЭСФСС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("underleaseagreement", "ПоДоговоруЛизинга"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bydocument", "ПоДокументу"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("subreport", "Подотчет"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("advanceholder", "ПодотчетноеЛицо"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("signature", "Подпись"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("department", "Подразделение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("costdivision", "ПодразделениеЗатрат"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sendingdepartment", "ПодразделениеОтправитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("receivingbusinessunit", "ПодразделениеПолучатель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tooltip", "Подсказка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("confirmed_", "Подтвержден"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("byuniformdepreciationrates", "ПоЕНАОФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("byuniformdepreciationratesper1000kmofmileage", "ПоЕНАОФНа1000кмПробега"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("indicators", "Показатели"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dateindicator", "ПоказательДаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("indicatorbcc", "ПоказательКБК"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("runningtimevalue", "ПоказательНаработки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numberindicator", "ПоказательНомера"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("basisindicator", "ПоказательОснования"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("periodindicator", "ПоказательПериода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeindicator", "ПоказательТипа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("buyerissuesinvoiceforreturn", "ПокупателемВыставляетсяСчетФактураНаВозврат"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("buyers", "Покупатели"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("customer", "Покупатель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("purchase", "Покупка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("purchasefromsupplier_", "ПокупкаУПоставщика"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("purchases", "Покупки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("gender", "Пол"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("halfyear_", "Полугодье"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("receivingcash", "ПолучениеНаличных"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("premise", "Помещение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("byassetactivity", "ПоНаработке"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("instructionforshippingagentatpoint", "ПоручениеЭкспедиторуВПункте"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("instructionforshippingagenttowarehouse", "ПоручениеЭкспедиторуНаСклад"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("instructionforshippingagentfromwarehouse", "ПоручениеЭкспедиторуСоСклада"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sequencenumber", "ПорядковыйНомер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("order", "Порядок"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bydate", "ПоСроку"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vendor", "Поставщик"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("postpayment", "Постоплата"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("incomeforactivities", "ПоступлениеПодДеятельность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bysumofusefullifeyearnumbers", "ПоСуммеЧиселЛетИспользования"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("consumerpackaging", "ПотребительскаяУпаковка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("byactualusage", "ПоФактическомуИспользованию"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("mailaddress", "ПочтовыйАдрес"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pricelist", "ПрайсЛист"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("prepayment", "Предоплата"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fullprepayment", "ПредоплатаПолная"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("partialprepayment", "ПредоплатаЧастичная"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("presentation", "Представление"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("kindpresentaion", "ПредставлениеВида"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("presentationofsignaturerightsdocument", "ПредставлениеДокументаПраваПодписи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("periodpresentation", "ПредставлениеПериода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("invissubmitted", "ПредъявленСФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("prefix", "Префикс"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("receiptfromvendor", "ПриемкаОтПоставщика"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("receivingbyreturnfromacustomer", "ПриемкаПоВозвратуОтКлиента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("receivingbytransfer", "ПриемкаПоПеремещению"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("consignmentprocurement", "ПриемНаКомиссию"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("agentattribute", "ПризнакАгента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("settlementsubjectflag", "ПризнакПредметаРасчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("showscalculationmethod", "ПризнакСпособаРасчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("principal", "Принципал"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accepted", "Принят"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("recognition", "ПринятиеКУчету"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("recognitionwithcommissioning", "ПринятиеКУчетуСВводомВЭксплуатацию"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("receivedfrom", "ПринятоОт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("oncommissioning", "ПриПередаче"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("carryingoutnetting", "ПроведениеВзаимозачета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("loyaltyprogram_", "ПрограммаЛояльности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("seller", "Продавец"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sellers", "Продавцы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("exportsale", "ПродажаНаЭкспорт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("saleisnotsubjecttovat", "ПродажаНеОблагаетсяНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("saleissubjecttoutii", "ПродажаОблагаетсяЕНВД"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("saleissubjecttovat", "ПродажаОблагаетсяНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("salesbypatent", "ПродажаПоПатенту"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("manufacturedproduct", "Продукция"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("manufacturer", "Производитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("manufacturerimporter", "ПроизводительИмпортер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("byunitsofproduction", "ПропорциональноОбъемуПродукции"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tracedgoods", "ПрослеживаемыйТовар"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("percentageofcommission", "ПроцентКомиссионногоВознаграждения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("percentageofdifferencebetweensalesandreceipts", "ПроцентОтРазницыСуммПродажиИПоступления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("saleshare", "ПроцентОтСуммыПродажи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentpercentage", "ПроцентПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("discountpercentage", "ПроцентСкидки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("interests", "Проценты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("interestonlongtermloans_", "ПроцентыПоДолгосрочнымЗаймам"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("interestonlongtermloans", "ПроцентыПоДолгосрочнымКредитам"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("interestonshorttermloans_", "ПроцентыПоКраткосрочнымЗаймам"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("interestonshorttermloans", "ПроцентыПоКраткосрочнымКредитам"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("other", "Прочее"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("otherwriteoffs", "ПрочееСписание"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("otherexpenses", "ПрочиеРасходы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("otherinformation", "ПрочиеСведения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pensionfundfrombasetolimitvalue", "ПФРДоПредельнойВеличины"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pfemployedonundergroundandharmfuljobs", "ПФРЗаЗанятыхНаПодземныхИВредныхРаботах"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pfforemployedonheavyandotherjobs", "ПФРЗаЗанятыхНаТяжелыхИПрочихРаботах"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pensionfundbyoveralltariff", "ПФРПоСуммарномуТарифу"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pensionfundfrombaseinexcessoflimitvalue", "ПФРСПревышения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("work_5", "Работа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("works", "Работы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("disassembly", "Разборка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sections", "Разделы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("allowpartialpayment", "РазрешитьЧастичнуюОплату"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("expensesforallocation", "РаспределяемыеЗатраты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rdexpenses", "РасходыНаНИОКР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rate_", "Расценка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("estimated_", "Расчетный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("calculations", "Расчеты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("arapincurrency", "РасчетыВВалюте"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("calculationsinconventionalunits", "РасчетыВУсловныхЕдиницах"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("debtorsarapaccounting", "РасчетыСДебиторами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("customersarapaccounting", "РасчетыСКлиентами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("commissionagentsarapaccounting", "РасчетыСКомиссионерами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("consignorsarapaccounting", "РасчетыСКомитентами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("purchasesettlementswithconsignors", "РасчетыСКомитентамиПоЗакупке"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("creditorsarapaccounting", "РасчетыСКредиторами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("settlementswithlessors", "РасчетыСЛизингодателями"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vendorsarapaccounting", "РасчетыСПоставщиками"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("extension", "Расширение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transcriptofadditionalexpenses", "РасшифровкаДопРасходов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("arapdetails", "РасшифровкаПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("saletocustomer", "РеализацияКлиенту"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("goodssales", "РеализацияТоваров"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nonresidentregistrationnumber", "РегистрационныйНомерНерезидента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pensionfundregistrationnumber", "РегистрационныйНомерПФР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ssfregistrationnumber", "РегистрационныйНомерФСС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("registrationwithtaxauthority", "РегистрацияВНалоговомОргане"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("regulatedreporting", "РегламентированнаяОтчетность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("reserve", "Резерв"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("acreserve", "РезервБУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tareserve", "РезервНУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentdetails", "РеквизитыПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("reconstruction", "Реконструкция"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("productbatchid", "РНПТ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("retail_2", "Розничный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("director", "Руководитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("hrdirector", "РуководительКадровойСлужбы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("selfpickup", "Самовывоз"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("assembly", "Сборка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sertificatedateofissue", "СвидетельствоДатаВыдачи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("birthcertificate", "СвидетельствоОРождении"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("seriesandnumber", "СвидетельствоСерияНомер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("swiftbic", "СВИФТБИК"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("consolidatedcommission", "СводныйКомиссионный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("property", "Свойство"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cost_", "Себестоимость"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("serialnumber", "СерийныйНомер"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("series", "Серия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("productionseries_", "СерияПродукции"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("certificate", "Сертификат"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nspkcertificate", "СертификатНСПК"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("encryptioncertificates", "СертификатыШифрования"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bycarrier", "СиламиПеревозчика"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bycarriertoourwarehouse", "СиламиПеревозчикаДоНашегоСклада"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bycarriertotransferpoint", "СиламиПеревозчикаДоПунктаПередачи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("bycarriertoaddress", "СиламиПеревозчикаПоАдресу"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("byvendortoourwarehouse", "СиламиПоставщикаДоНашегоСклада"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("instantpayments", "СистемаБыстрыхПлатежей"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("taxationsystem", "СистемаНалогообложения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("discountsmarkups", "СкидкиНаценки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("warehouse", "Склад"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("warehousegroup_", "СкладГруппа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sourcewarehouse", "СкладОтправитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("destinationwarehouse", "СкладПолучатель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("withconsignee", "СКомиссионером"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("withcommissionagentforpurchase", "СКомиссионеромНаЗакупку"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("withconsignor", "СКомитентом"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("customerinvoiceoutsourcedsale", "СКомитентомНаЗакупку"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ownproducts", "СобственныеТовары"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("agreedupon", "Согласована"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("agreedchange", "СогласованноеИзменение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("content", "Содержание"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("contentbeforechange", "СодержаниеДоИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("compoundsettlementsubject", "СоставнойПредметРасчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("orderstate", "СостояниеЗаказа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("orderstatebyline", "СостояниеЗаказаСтрокой"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("stateofpayment", "СостояниеОплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("shipmentstatus", "СостояниеОтгрузки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("stateofelectronicdocument", "СостояниеЭлектронногоДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("employee", "Сотрудник"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("specialfactortaxaccounting", "СпециальныйКоэффициентНУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("alcohol", "Спирт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("alcoholcontainingnonfoodproducts", "СпиртосодержащаяНеПищеваяПродукция"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("alcoholcontainingfoodproducts", "СпиртосодержащаяПищеваяПродукция"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("writeoff", "Списание"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("debtcancellation", "СписаниеЗадолженности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("includinginexpensesonrecognition", "СписаниеПриПринятииКУчету"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("withcustomer", "СПокупателем"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("billingmethod", "СпособВыставления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("deliverymethod", "СпособДоставки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("methodofdebtrepayment", "СпособПогашенияЗадолженности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("methodofrepaymentofcostofinventory", "СпособПогашенияСтоимостиТМЦ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("receiptmethod", "СпособПоступления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("methodofcalculationofcommission", "СпособРасчетаКомиссионногоВознаграждения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("calculationmethod", "СпособРасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("withvendor", "СПоставщиком"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("assetrepair", "СреднийРемонт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("expirationdate_", "СрокГодности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("validityperiod", "СрокДействия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("usefullifebefore2009", "СрокИспользованияНУДо2009"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("usefullifemonthsac", "СрокПолезногоИспользованияБУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("usefullifemonthsta", "СрокПолезногоИспользованияНУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("servicelife", "СрокЭксплуатации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("urgencyofloanloan", "СрочностьКредитаЗайма"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ref", "Ссылка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("objectreference", "СсылкаНаОбъект"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("gamblingstake", "СтавкаАзартнойИгры"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vatrate", "СтавкаНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vatrateofremuneration", "СтавкаНДСВознаграждения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("retailndsrate", "СтавкаНДСВРознице"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vatratebeforechange", "СтавкаНДСДоИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dutyrate", "СтавкаПошлины"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("status", "Статус"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("authorstatus", "СтатусСоставителя"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("batchesindicationstatus", "СтатусУказанияСерий"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cfitem", "СтатьяДДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("incomeitem", "СтатьяДоходов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("costitem", "СтатьяЗатрат"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("expenseitem", "СтатьяРасходов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("cost", "Стоимость"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("costisnotredeemable", "СтоимостьНеПогашается"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("facost", "СтоимостьОС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("goodscost", "СтоимостьТоваров"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("country", "Страна"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("importingcountryisnotrf", "СтранаВвозаНеРФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("origincountry", "СтранаПроисхождения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("countryoforiginbeforechange", "СтранаПроисхожденияДоИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("registrationcountry", "СтранаРегистрации"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("insurancenumberofthefiu", "СтраховойНомерПФР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("insurancecontributions", "СтраховыеВзносы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sum", "Сумма"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountexcludingvat", "СуммаБезНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountofbonuspoints", "СуммаБонусныхБаллов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sumcurr", "СуммаВал"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountarap", "СуммаВзаиморасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountincludesvat", "СуммаВключаетНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("returnamount", "СуммаВозврата"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("commissionamount", "СуммаВознаграждения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("retailamount", "СуммаВРознице"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("totalofallpayments", "СуммаВсехПлатежей"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountofaccountsreceivable", "СуммаДебиторскойЗадолженности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountbeforechange", "СуммаДоИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountbeforeadjustment", "СуммаДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("documentamount", "СуммаДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("feeamount", "СуммаКомиссии"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountbankcommission", "СуммаКомиссияБанка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountofaccountspayable", "СуммаКредиторскойЗадолженности"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vatamount", "СуммаНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vatamount10", "СуммаНДС10"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vatamount20", "СуммаНДС20"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountvatremuneration", "СуммаНДСВознаграждения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vatamountbeforechange", "СуммаНДСДоИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountofvatbeforeadjustment", "СуммаНДСДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountnotsubjecttovat", "СуммаНеОблагаемаяНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("payamount", "СуммаОплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transferamount", "СуммаПередачи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountofrevaluation_", "СуммаПереоценки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentamount", "СуммаПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("orderreceiptamount", "СуммаПоступления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dutyamount", "СуммаПошлины"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sumcompl", "СуммаРегл"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("reserveamount_", "СуммаРезерва"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("discountamount", "СуммаСкидки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("amountaccounting_", "СуммаУчет"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sumreal", "СуммаФакт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("invoicesissuedtocustomers", "СчетаФактурыВыданныеПокупателям"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("revenueaccount", "СчетДоходов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountdr", "СчетДт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("expenseaccount_", "СчетЗатрат"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountcr", "СчетКт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transferaccount", "СчетПередачи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("expenseaccount", "СчетРасходов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("settlementaccount_", "СчетРасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("glaccount", "СчетУчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforadvancesissued", "СчетУчетаАвансовВыданных"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforadvancesreceived", "СчетУчетаАвансовПолученных"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("trackingaccountintransit", "СчетУчетаВПути"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("salesrevenueaccount", "СчетУчетаВыручкиОтПродаж"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("warehouseinvoice", "СчетУчетаНаСкладе"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("ndsvpathaccountingaccount", "СчетУчетаНДСВПути"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vatinvoiceforpurchases", "СчетУчетаНДСПриЗакупке"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vatinvoiceforsales", "СчетУчетаНДСПриПродаже"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("invoiceforunfactureddeliveries", "СчетУчетаНеотфактурованныеПоставки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountfortransfertocommission", "СчетУчетаПередачиНаКомиссию"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("account_settlement", "СчетУчетаРасчетов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("remunerationsettlementaccount", "СчетУчетаРасчетовПоВознаграждению"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("claimssettlementaccount", "СчетУчетаРасчетовПоПретензиям"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithdebtorscommission", "СчетУчетаРасчетовСДебиторамиКомиссия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithdebtorsprincipaldebt", "СчетУчетаРасчетовСДебиторамиОсновнойДолг"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithdebtorsinterest", "СчетУчетаРасчетовСДебиторамиПроценты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithcustomers", "СчетУчетаРасчетовСКлиентами"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithcustomerstare", "СчетУчетаРасчетовСКлиентамиТара"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithcounterparty", "СчетУчетаРасчетовСКонтрагентом"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithcreditorscommission", "СчетУчетаРасчетовСКредиторамиКомиссия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithcreditorsprincipaldebt", "СчетУчетаРасчетовСКредиторамиОсновнойДолг"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithcreditorsinterest", "СчетУчетаРасчетовСКредиторамиПроценты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithlessorleaseobligations", "СчетУчетаРасчетовСЛизингодателемАрендныеОбязательства"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithlessorrepurchaseofleaseditem", "СчетУчетаРасчетовСЛизингодателемВыкупПредметаЛизинга"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithlessorleasingservices", "СчетУчетаРасчетовСЛизингодателемЛизинговыеУслуги"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithlessorsecuritypayment", "СчетУчетаРасчетовСЛизингодателемОбеспечительныйПлатеж"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithsuppliers", "СчетУчетаРасчетовСПоставщиками"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountforsettlementswithsupplierstare", "СчетУчетаРасчетовСПоставщикамиТара"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("costofsalesaccount", "СчетУчетаСебестоимостиПродаж"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("taxinvoice", "СчетФактура"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("invoiceissued", "СчетФактураВыданный"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("invoiceissuedtobuyer", "СчетФактураВыданныйПокупателю"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("commodity", "СырьевойТовар"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tobacco", "Табак"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("customsvalue", "ТаможеннаяСтоимость"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("customsfee", "ТаможенныйСбор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("customspenalty", "ТаможенныйШтраф"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tara", "Тара"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("correspondenttext", "ТекстКорреспондента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("purposetext", "ТекстНазначения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("payersname", "ТекстПлательщика"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("recipienttext", "ТекстПолучателя"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("currentproducts", "ТекущаяНоменклатура"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("currentccostfinacc", "ТекущаяСтоимостьБУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("currentcosttd", "ТекущаяСтоимостьВР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("currentcosttaxaccounting", "ТекущаяСтоимостьНУ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("currentccostpd", "ТекущаяСтоимостьПР"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("assetmaintenance", "ТекущийРемонт"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("phone", "Телефон"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("homephonenumber", "ТелефонДомашний"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("workingphone", "ТелефонРабочий"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("phones", "Телефоны"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofexcisestamp", "ТипАкцизнойМарки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("inventorytype", "ТипЗапасов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("itemstype", "ТипНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofpayment", "ТипОплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typeofvalidityperiod", "ТипПериодаДействия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentdocumenttype", "ТипПлатежногоДокумента"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("warehousestore", "ТипСклада"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("scheduleamounttype", "ТипСуммыГрафика"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("packagetype", "ТипУпаковки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("servicetype", "ТипУслуги"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pricetype_", "ТипЦен"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("barcodetype", "ТипШтрихкода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("typesofcashregisterpaymentsystem", "ТипыПлатежнойСистемыККТ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("inventory", "ТМЦ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("owngoods", "Товар"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("goodsmarkedbyidentificationtoolwithmarkingcode", "ТоварМаркируемыйСИИмеющийКМ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("goodsmarkedbyidentificationtoolwithoutmarkingcode", "ТоварМаркируемыйСИНеИмеющийКМ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("goods", "Товары"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("goodsreturnsales", "ТоварыВозвратПродажи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("goodssale", "ТоварыПродажа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("auction12", "ТОРГ12"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("salescharge", "ТорговыйСбор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accuracyofunitofmeasure", "ТочностьЕдиницыИзмерения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("roundingprecision", "ТочностьОкругления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("vehicles", "ТранспортныеСредства"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("actionsarerequired", "ТребуютсяДействия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tcmif", "ТФОМС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("withholdcommission", "УдержатьКомиссионноеВознаграждение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("officerslicense", "УдостоверениеОфицера"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("reducedbalance", "УменьшаемогоОстатка"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("packagedwater", "УпакованнаяВода"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("productpackaging", "УпаковкаНоменклатуры"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("authorizedperson", "УполномоченноеЛицо"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("authorizedpersonselection", "УполномоченноеЛицоОтбор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("authorizedrepresentativeintaxauthority", "УполномоченныйПредставитель"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("simplifiedrevenue", "УпрощеннаяДоход"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("simplifiedrevenueminusexpense", "УпрощеннаяДоходМинусРасход"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("operationservice", "Услуга"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("rewardservice", "УслугаПоВознаграждению"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("services", "Услуги"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("approvedpaymentdate", "УтвержденнаяДатаПлатежа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("approvedformofpayment", "УтвержденнаяФормаОплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("nameclarification", "УточнениеНаименования"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("companyactsasavattaxagent", "УчетАгентскогоНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("accountingforrevenueinoperatingcashregister", "УчетВыручкиВОперационнойКассе"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("fax", "Факс"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("actualaddress", "ФактическийАдрес"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("lastname", "Фамилия"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("persons", "ФизическиеЛица"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("individual", "ФизическоеЛицо"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("individualselection", "ФизическоеЛицоОтбор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("lastfirstname", "ФИО"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentmethod", "ФормаОплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("uploadformat", "ФорматВыгрузки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("formatproperties", "ФорматСвойства"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("camerasandflashbulbs", "Фотоаппараты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("insurancecontributionstossf", "ФСС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("insurancecontributionstofcmif", "ФФОМС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("characteristic", "Характеристика"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("itemvariant", "ХарактеристикаПродукции"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("storedfile", "ХранимыйФайл"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("price", "Цена"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("priceincludesvat", "ЦенаВключаетНДС"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("retailprice", "ЦенаВРознице"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("retailpriceisold", "ЦенаВРозницеСтарая"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pricebeforechange", "ЦенаДоИзменения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pricebeforeadjustment", "ЦенаДоКорректировки"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("priceperpackaging", "ЦенаЗаУпаковку"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("transferprice", "ЦенаПередачи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("receiptprice", "ЦенаПоступления"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pricegroup", "ЦеноваяГруппа"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("pricegroups", "ЦеновыеГруппы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("numericcodefortaxinvoices", "ЦифровойИндексОбособленногоПодразделения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("partialdisposal", "ЧастичнаяЛиквидация"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("partialdisposalaccountingoption", "ЧастичноеВыбытиеВариантУчета"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("partialdisposalquantity", "ЧастичноеВыбытиеКоличество"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("magneticstripecardtemplate", "ШаблонМагнитнойКарты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("codetemplates", "ШаблоныКодов"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("tires", "Шины"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("width", "Ширина"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("codebyufadr", "ШифрПоЕНАОФ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("penalty", "Штраф"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("barcode", "Штрихкод"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("posterminal", "ЭквайринговыйТерминал"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("exportofnonresourcegoods", "ЭкспортНесырьевыхТоваров"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("commodityexports", "ЭкспортСырьевыхТоваров"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("electronically", "Электронно"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("digitalsignatures", "ЭлектронныеПодписи"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("digitalservices", "ЭлектронныеУслуги"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("paymentsteps", "ЭтапыОплаты"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("isadditionalinfo", "ЭтоДополнительноеСведение"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("thisisadditionalexpense", "ЭтоДопРасходы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("isrecordsset", "ЭтоНабор"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("yookassa", "ЮКасса"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("legaladdress", "ЮридическийАдрес"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("businessentity", "ЮридическоеЛицо"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("companyindividual", "ЮридическоеФизическоеЛицо"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("isrnpt", "ЯвляетсяРНПТ"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("isidentitydocument", "ЯвляетсяУдостоверяющимЛичность"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("userciother", "ПользовательскаяКИДругое"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("datasynchronizationviauniversalformat", "СинхронизацияДанныхЧерезУниверсальныйФормат"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("exchangemessagestransporttypes", "ВидыТранспортаСообщенийОбмена"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("wspassivemode", "WSПассивныйРежим"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("externalsystem", "ВнешняяСистема"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("exchangeplanname", "ИмяПланаОбмена"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("secondinfobasedescription", "НаименованиеВторойБазы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("thisinfobasedescription", "НаименованиеЭтойБазы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("secondinfobasenewnodecode", "КодНовогоУзлаВторойБазы"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("sourceinfobaseprefix", "ПрефиксИнформационнойБазыИсточника"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("exchangemessagestransportkind", "ВидТранспортаСообщенийОбмена"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("archivepasswordexchangemessages", "ПарольАрхиваСообщенияОбмена"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("filedataexchangedirectory", "FILEКаталогОбменаИнформацией"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("filecompressoutgoingmessagefile", "FILEСжиматьФайлИсходящегоСообщения"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("usetransportparametersemail", "ИспользоватьПараметрыТранспортаEMAIL"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("usetransportparametersfile", "ИспользоватьПараметрыТранспортаFILE"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("yes", "Да"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("none", "Нет"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("usetransportparametersftp", "ИспользоватьПараметрыТранспортаFTP"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("dataexchangeexecutionsettingsdescription", "НаименованиеНастройкиВыполненияОбмена"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("newnodecode", "КодНовогоУзла"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("predefinednodecode", "КодПредопределенногоУзла"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("exchangedatasettingsfileformatversion", "ВерсияФорматаФайлаНастроекОбменаДанными"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("own", "Собственные"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("agency", "Агентские"); // @NON-NLS-1 @NON-NLS-2 - Словарь.Вставить("barcodeselection", "ШтрихкодОтбор"); // @NON-NLS-1 @NON-NLS-2 - Массив = Новый Массив; - Массив.Добавить("Выдано"); // @NON-NLS-1 - Массив.Добавить("Выставлен"); // @NON-NLS-1 - Словарь.Вставить("issued", Массив); - - Массив = Новый Массив; - Массив.Добавить("ОГРН"); // @NON-NLS-1 - Массив.Добавить("РегистрационныйНомер"); // @NON-NLS-1 - Словарь.Вставить("registrationnumber", Массив); - - Массив = Новый Массив; - Массив.Добавить("Оплачен"); // @NON-NLS-1 - Массив.Добавить("Оплачено"); // @NON-NLS-1 - Словарь.Вставить("paid", Массив); - - Массив = Новый Массив; - Массив.Добавить("Приложение"); // @NON-NLS-1 - Массив.Добавить("Упаковка"); // @NON-NLS-1 - Словарь.Вставить("package", Массив); - - Массив = Новый Массив; - Массив.Добавить("Эквайер"); // @NON-NLS-1 - Массив.Добавить("Эквайрер"); // @NON-NLS-1 - Словарь.Вставить("acquirer", Массив); // АПК:1036-вкл не проверять текст на орфографию - + Возврат Словарь; - + КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl index 39108340a..45095c7b5 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl @@ -791,6 +791,10 @@ // Сохранение списка таблиц, по которым выполнялась регистрация. Для Каждого Регистратор Из Регистраторы Цикл ТипТаблицы = ТипЗнч(Регистратор); + Если Регистратор.Пустая() Тогда + Продолжить; + КонецЕсли; + Если ОсновныеПараметры.ЗарегистрированныеТаблицыРегистраторов[ТипТаблицы] = Неопределено Тогда ПолноеИмяТаблицы = Регистратор.Метаданные().ПолноеИмя(); ОсновныеПараметры.ЗарегистрированныеТаблицыРегистраторов.Вставить(ТипТаблицы, ПолноеИмяТаблицы); @@ -878,7 +882,7 @@ // Процедуры проверяют блокировку данных этих таблиц обработчиками меньших // очередей. Формат имен источников: <ИмяРеквизита> или // <ИмяТабличной>.<ИмяРеквизитаТабличнойЧасти>. Для удобства заполнения -// см. УстановитьИсточникДанных() и см. ПолучитьИсточникДанных(). +// см. УстановитьИсточникДанных(). // * ПоляУпорядочивания - Массив - имена полей независимого регистра сведений, используется для упорядочивания // результата запроса. // * МаксимумВыборки - Число - максимальное количество выбираемых записей. @@ -4609,6 +4613,10 @@ ПараметрыРегистрации = НовыеПараметрыРегистрации(Параметры, Узел, ВидДанных, ПолноеИмяОбъекта); Для Каждого Ссылка Из МассивЭлементов(Ссылки) Цикл + Если Ссылка.Пустая() Тогда + Продолжить; + КонецЕсли; + ЗарегистрироватьИзмененияЭлементаДанных(Ссылка, ПараметрыРегистрации); КонецЦикла; diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl index d018a9be2..875228b9d 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСД/Module.bsl @@ -39,7 +39,7 @@ Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "БиблиотекаСинхронизацииДанных"; - Описание.Версия = "1.0.2.187"; + Описание.Версия = "1.0.3.209"; Описание.ИдентификаторИнтернетПоддержки = "DSL"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "1.0.1.1"; diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl index 190c1eacb..391bf436f 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl @@ -45,7 +45,7 @@ Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "СтандартныеПодсистемы"; - Описание.Версия = "3.1.8.375"; + Описание.Версия = "3.1.9.74"; Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыГлобальный/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыГлобальный/Module.bsl index 3d34b97ab..5433bdc52 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыГлобальный/Module.bsl @@ -13,6 +13,12 @@ // Процедура ПроверитьСтатусОтложенногоОбновления() Экспорт +#Если МобильныйКлиент Тогда + Если ОсновнойСерверДоступен() = Ложь Тогда + Возврат; + КонецЕсли; +#КонецЕсли + ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); Если ПараметрыКлиента.Свойство("ПоказатьСообщениеОбОшибочныхОбработчиках") Тогда diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl index 9aa80aa5e..f9a9f60cd 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl @@ -279,6 +279,7 @@ Если Параметры.Форма <> Неопределено Тогда Параметры.Форма.ТолькоПросмотр = Ложь; + Параметры.Форма.Прочитать(); ОчиститьСообщения(); Иначе ТекстСообщения = НСтр("ru = 'Данные разблокированы. Для редактирования необходимо переоткрыть карточку объекта.'"); diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl index 898283a85..01d5ebf1e 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl @@ -2860,9 +2860,12 @@ КонецЕсли; ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификаторФормы); - ПараметрыВыполнения.ЗапуститьВФоне = Истина; ПараметрыВыполнения.ОжидатьЗавершение = 0; ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Фоновое обновление информационной базы'"); + // Обновление должно выполняться в фоне для возможности видеть прогресс выполнения. + // В режиме обновления запуск всех фоновых заданий прерывается специальной вставкой кода, поэтому + // в файловом режиме заметных задержек запуска не будет даже при отсутствии монопольного режима. + ПараметрыВыполнения.ЗапуститьВФоне = Истина; Результат = ДлительныеОперации.ВыполнитьВФоне("ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне", ПараметрыОбновленияИБ, ПараметрыВыполнения); @@ -9651,7 +9654,7 @@ И Обработчик.НачальноеЗаполнение = Истина Тогда ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'У обработчика не правильно заполнено свойство %1 или + НСтр("ru = 'У обработчика неправильно заполнено свойство %1 или |свойство %2.'"), "Опциональный", "НачальноеЗаполнение"); КонецЕсли; @@ -10714,6 +10717,11 @@ Свойства.Вставить("СтатистикаВыполнения", Новый ХранилищеЗначения(СтатистикаВыполнения)); УстановитьСвойстваОбработчика(ОбработчикОбновления.ИмяОбработчика, Свойства); + ОбрабатываемыеДанные = ОбработчикОбновления.ОбрабатываемыеДанные.Получить(); + Если ОбработчикОбновления.Многопоточный Тогда + ПроверитьПараметрыВыборки(ОбрабатываемыеДанные.ПараметрыВыборки); + КонецЕсли; + КонтекстОбработчика.НачалоОбработкиДанных = ТекущаяУниверсальнаяДатаВМиллисекундах(); Если ПараметрыОбновления.ПараллельныйРежим И ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl index ac10c74a2..f9324f5dd 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl @@ -945,16 +945,25 @@ Возврат; КонецЕсли; + ОбластиДанных = Результат.Выгрузить().ВыгрузитьКолонку("ОбластьДанных"); + Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ 1 + "ВЫБРАТЬ + | ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, | ВерсииПодсистемОбластейДанных.Версия КАК Версия |ИЗ | РегистрСведений.ВерсииПодсистемОбластейДанных КАК ВерсииПодсистемОбластейДанных |ГДЕ - | ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные = &ОбластьДанных + | ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные В (&ОбластьДанных) | И ВерсииПодсистемОбластейДанных.ИмяПодсистемы = &ИмяПодсистемы"; Запрос.УстановитьПараметр("ИмяПодсистемы", Метаданные.Имя); + Запрос.УстановитьПараметр("ОбластьДанных", ОбластиДанных); + ВерсииОбластей = Новый Соответствие; + ВерсииКонфигурацииВОбластях = Запрос.Выполнить().Выгрузить(); + Для Каждого Строка Из ВерсииКонфигурацииВОбластях Цикл + ВерсииОбластей.Вставить(Строка.ОбластьДанных, Строка.Версия); + КонецЦикла; ТребуетсяУстановитьЗапланированныйМоментЗапуска = Ложь; @@ -990,8 +999,6 @@ ОшибкаУстановкиБлокировки = Истина; ВызватьИсключение; КонецПопытки; - - Запрос.УстановитьПараметр("ОбластьДанных", Выборка.ОбластьДанных); Блокировка = Новый БлокировкаДанных; @@ -1008,15 +1015,11 @@ СтатусОбласти = МодульРаботаВМоделиСервиса.СтатусОбластиДанных(Выборка.ОбластьДанных); - Результаты = Запрос.Выполнить().Выгрузить(); - СтрокаВерсии = Неопределено; - Если Результаты.Количество() > 0 Тогда - СтрокаВерсии = Результаты[0]; - КонецЕсли; + ВерсияОбласти = ВерсииОбластей[Выборка.ОбластьДанных]; Если СтатусОбласти = Неопределено ИЛИ СтатусОбласти <> Перечисления["СтатусыОбластейДанных"].Используется - ИЛИ (СтрокаВерсии <> Неопределено И СтрокаВерсии.Версия = ВерсияМетаданных) Тогда + ИЛИ (ВерсияОбласти <> Неопределено И ВерсияОбласти = ВерсияМетаданных) Тогда // Записи не соответствуют исходному критерию. ЗафиксироватьТранзакцию(); @@ -1034,7 +1037,6 @@ Продолжить; КонецЕсли; - ЕстьРасширенияИзменяющиеСтруктуру = Ложь; ПараметрыЗапускаЗадания = Новый Массив; diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурацииВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурацииВызовСервера/Module.bsl index d363a8ab1..8fed65a2b 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурацииВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурацииВызовСервера/Module.bsl @@ -124,7 +124,7 @@ ПараметрыТекста["[Копирайт]"] = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = '© ООО ""1С-Софт"", 1996-%1'"), Формат(Год(ТекущаяДатаСеанса()), "ЧГ=0")); - Возврат ПодставитьПараметрыВТекст(ШаблонТекста, ПараметрыТекста);; + Возврат ПодставитьПараметрыВТекст(ШаблонТекста, ПараметрыТекста); КонецФункции diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl index 0b6d1343c..13fcb7dd5 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl @@ -35,7 +35,7 @@ Возврат Результат; КонецЕсли; - Если Не СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭтоАдминистраторСистемы Тогда + Если Не ПользователиКлиент.ЭтоПолноправныйПользователь(Истина) Тогда Результат.ОписаниеОшибки = НСтр("ru = 'Для установки обновления требуются права администрирования.'"); Возврат Результат; КонецЕсли; @@ -810,8 +810,7 @@ Функция СформироватьФайлыСкриптаОбновления(Знач ИнтерактивныйРежим, Параметры, ПараметрыАдминистрирования) - ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(); - ЭтоФайловаяБаза = ПараметрыРаботыКлиента.ИнформационнаяБазаФайловая; + ЭтоФайловаяБаза = ОбщегоНазначенияКлиент.ИнформационнаяБазаФайловая(); КаталогПлатформы = Неопределено; Параметры.Свойство("КаталогПлатформы", КаталогПлатформы); @@ -820,8 +819,10 @@ ИмяИсполняемогоФайлаКонфигуратора = КаталогПрограммы + СтандартныеПодсистемыКлиент.ИмяИсполняемогоФайлаПриложения(Истина); ИмяИсполняемогоФайлаКлиента = КаталогПрограммы + СтандартныеПодсистемыКлиент.ИмяИсполняемогоФайлаПриложения(); ПутьКCOMСоединителю = КаталогПрограммы() + "comcntr.dll"; + ИмяCOMСоединителя = ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя(); КодировкаЛогФайла = КодировкаЛогФайла(КаталогПрограммы); - ИспользоватьCOMСоединитель = Не (ПараметрыРаботыКлиента.ЭтоБазоваяВерсияКонфигурации Или ПараметрыРаботыКлиента.ЭтоУчебнаяПлатформа); + ИспользоватьCOMСоединитель = Не (СтандартныеПодсистемыКлиент.ЭтоБазоваяВерсияКонфигурации() + Или СтандартныеПодсистемыКлиент.ЭтоУчебнаяПлатформа()); ПараметрыСкрипта = ПолучитьПараметрыАутентификацииАдминистратораОбновления(ПараметрыАдминистрирования); СтрокаСоединенияИнформационнойБазы = ПараметрыСкрипта.СтрокаСоединенияИнформационнойБазы + ПараметрыСкрипта.СтрокаПодключения; @@ -880,7 +881,7 @@ ВставитьПараметрСкрипта("СобытиеЖурналаРегистрации" , СобытиеЖурналаРегистрации() , Истина, ОбластьПараметров); ВставитьПараметрСкрипта("АдресЭлектроннойПочты" , АдресЭлектроннойПочты , Истина, ОбластьПараметров); ВставитьПараметрСкрипта("ИмяАдминистратораОбновления" , ИмяПользователя , Истина, ОбластьПараметров); - ВставитьПараметрСкрипта("ИмяCOMСоединителя" , ПараметрыРаботыКлиента.ИмяCOMСоединителя , Истина, ОбластьПараметров); + ВставитьПараметрСкрипта("ИмяCOMСоединителя" , ИмяCOMСоединителя , Истина, ОбластьПараметров); ВставитьПараметрСкрипта("КаталогРезервнойКопии" , КаталогРезервнойКопии , Истина, ОбластьПараметров); ВставитьПараметрСкрипта("СоздаватьРезервнуюКопию" , СоздаватьРезервнуюКопию , Ложь , ОбластьПараметров); ВставитьПараметрСкрипта("ВосстанавливатьИнформационнуюБазу" , Параметры.ВосстанавливатьИнформационнуюБазу, Ложь , ОбластьПараметров); @@ -1082,8 +1083,7 @@ СтрокаUnicode(ПараметрыАдминистрирования.ПарольАдминистратораИнформационнойБазы), СтрокаUnicode(ПараметрыАдминистрирования.ПарольАдминистратораКластера)); - ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(); - Если ПараметрыКлиента.ЭтоБазоваяВерсияКонфигурации Тогда + Если СтандартныеПодсистемыКлиент.ЭтоБазоваяВерсияКонфигурации() Тогда ОбновлениеКонфигурацииВызовСервера.УдалитьИсправленияИзСкрипта(); КонецЕсли; КодВозврата = Неопределено; diff --git a/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl b/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl index d360a154c..338bad147 100644 --- a/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl @@ -114,10 +114,16 @@ // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт + Разрешения = Новый Массив; МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); Разрешение = МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("WSS", "1cdialog.com", 443, НСтр("ru = 'Сервис 1С:Диалог для системы взаимодействия (тематические обсуждения, переписка и видеозвонки между пользователями программы).'")); - Разрешения = Новый Массив; + Разрешения.Добавить(Разрешение); + Разрешение = МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("HTTPS", "*.s3storage.ru", 443, + НСтр("ru = 'Сервис 1С:Диалог для системы взаимодействия (Хранилище файлов сервиса).'")); + Разрешения.Добавить(Разрешение); + Разрешение = МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("HTTP", "clr.globalsign.com", 80, + НСтр("ru = 'Сервис 1С:Диалог для системы взаимодействия (Сервер проверки отзыва сертификатов).'")); Разрешения.Добавить(Разрешение); ЗапросыРазрешений.Добавить(МодульРаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(Разрешения)); @@ -128,7 +134,6 @@ Обработчик = Обработчики.Добавить(); Обработчик.Версия = "3.1.3.282"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.Идентификатор = Новый УникальныйИдентификатор("b3be68c5-708d-42c9-a019-818036d09d06"); Обработчик.Процедура = "ОбсужденияСлужебный.ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий"; Обработчик.РежимВыполнения = "Отложенно"; diff --git a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl index 2dbf8fdb0..3e54d289f 100644 --- a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl @@ -76,6 +76,7 @@ Сообщение = ОбщегоНазначенияСлужебныйКлиентСервер.СообщениеПользователю(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ, ЭтоОбъект); +#Если НЕ МобильныйАвтономныйСервер Тогда Если СтандартныеПодсистемыПовтИсп.ЭтоСеансДлительнойОперации() И Не ТранзакцияАктивна() Тогда @@ -83,6 +84,9 @@ Иначе Сообщение.Сообщить(); КонецЕсли; +#Иначе + Сообщение.Сообщить(); +#КонецЕсли КонецПроцедуры @@ -90,6 +94,8 @@ #КонецОбласти +#Если НЕ МобильныйАвтономныйСервер Тогда + #Область ДанныеВБазе //////////////////////////////////////////////////////////////////////////////// @@ -1264,7 +1270,7 @@ БылиОшибки = Результат.ЕстьОшибки; Результат.ЕстьОшибки = Ложь; - // @skip-check query-in-loop - Порционная обработка большого объема данных. + // @skip-check query-in-loop - Порционная обработка большого объема данных. ЗаменитьСсылкиКороткимиТранзакциями(Результат, ПараметрыВыполнения, Дубль, ТаблицаПоиска); Если НЕ Результат.ЕстьОшибки Тогда @@ -1272,9 +1278,12 @@ КонецЕсли; Результат.ЕстьОшибки = Результат.ЕстьОшибки ИЛИ БылиОшибки; + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("НомерСеанса", НомерСеансаИнформационнойБазы()); + ДополнительныеПараметры.Вставить("КоличествоОбработанных", Номер); ДлительныеОперации.СообщитьПрогресс(Номер, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Замена дублей... обработано %1 из %2.'"), - Номер, КоличествоДублей)); + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Замена дублей... обработано (%1 из %2)'"), + Номер, КоличествоДублей), ДополнительныеПараметры); Номер = Номер + 1; ДобавитьВСтатистикуЗаменыСсылок(Статистика, Дубль, Результат.ЕстьОшибки); @@ -1990,6 +1999,18 @@ КонецФункции +// Возвращает признак того, что информационная база является распределенной (РИБ). +// +// Возвращаемое значение: +// Булево +// +Функция ЭтоРаспределеннаяИнформационнаяБаза() Экспорт + + УстановитьПривилегированныйРежим(Истина); + Возврат СтандартныеПодсистемыПовтИсп.ИспользуетсяРИБ(); + +КонецФункции + // Определяет, что эта информационная база является подчиненным узлом // распределенной информационной базы (РИБ). // @@ -3392,8 +3413,8 @@ Возврат "181E893D-73A4-4722-B61D-D604B3D67D47"; КонецЕсли; - ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'На задан CLSID для класса %1'"), ИмяCOMСоединителя); - ВызватьИсключение ТекстИсключения; + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'На задан CLSID для класса %1.'"), + ИмяCOMСоединителя); КонецФункции @@ -3406,7 +3427,7 @@ // Возвращаемое значение: // Структура: // * Соединение - COMОбъект -// - Неопределено - указатель на COM-объект соединения или Неопределено в случае ошибки; +// - Неопределено - COM-объект соединения или Неопределено в случае ошибки; // * КраткоеОписаниеОшибки - Строка - краткое описание ошибки; // * ПодробноеОписаниеОшибки - Строка - подробное описание ошибки; // * ОшибкаПодключенияКомпоненты - Булево - флаг ошибки подключения COM. @@ -4801,7 +4822,7 @@ Результат = СвойстваОбъекта.ПредставлениеОбъекта; Иначе Результат = ОбъектМетаданных.Представление(); - КонецЕсли;; + КонецЕсли; Возврат Результат; @@ -5198,6 +5219,59 @@ #КонецОбласти +#Область СериализацияJSON + +// Преобразует значение в строку JSON при помощи метода глобального контекста ЗаписатьJSON. +// Допускаются не все типы значений, подробности см. в синтакс-помощнике. +// Даты преобразуются в формат ISO (YYYY-MM-DDThh:mm:ssZ). +// +// Параметры: +// Значение - Произвольный +// +// Возвращаемое значение: +// Строка +// +Функция ЗначениеВJSON(Знач Значение) Экспорт + + ЗаписьJSON = Новый ЗаписьJSON; + ЗаписьJSON.УстановитьСтроку(); + ЗаписатьJSON(ЗаписьJSON, Значение); + + Возврат ЗаписьJSON.Закрыть(); + +КонецФункции + +// Преобразует строку в формате JSON в значение при помощи метода глобального контекста ПрочитатьJSON. +// См. ограничения в синтакс-помощнике. +// Объекты JSON по умолчанию преобразует в значения типа Соответствие. +// Имена свойств со значением типа Дата необходимо явно указывать, чтобы было выполнено преобразование. +// Ожидаемый формат дат - ISO (YYYY-MM-DDThh:mm:ssZ). +// +// Параметры: +// Строка - Строка - значение в формате JSON. +// ИменаСвойствСоЗначениямиДата - Строка - имя свойства, содержащее значение типа Дата. Допустимо указывать несколько +// свойств через запятую. +// - Массив из Строка +// ПрочитатьВСоответствие - Булево - если Ложь, то объекты JSON будут преобразованы в значение типа Структура. +// +// Возвращаемое значение: +// Произвольный +// +Функция JSONВЗначение(Знач Строка, Знач ИменаСвойствСоЗначениямиДата = Неопределено, Знач ПрочитатьВСоответствие = Истина) Экспорт + + Если ТипЗнч(ИменаСвойствСоЗначениямиДата) = Тип("Строка") Тогда + ИменаСвойствСоЗначениямиДата = СтрРазделить(ИменаСвойствСоЗначениямиДата, ", " + Символы.ПС, Ложь); + КонецЕсли; + + ЧтениеJSON = Новый ЧтениеJSON; + ЧтениеJSON.УстановитьСтроку(Строка); + + Возврат ПрочитатьJSON(ЧтениеJSON, ПрочитатьВСоответствие, ИменаСвойствСоЗначениямиДата); + +КонецФункции + +#КонецОбласти + #Область ВебСервисы // Возвращает структуру параметров для функции СоздатьWSПрокси. @@ -6537,8 +6611,12 @@ #КонецОбласти +#КонецЕсли + #КонецОбласти +#Если НЕ МобильныйАвтономныйСервер Тогда + #Область СлужебныйПрограммныйИнтерфейс // Выгружает запрос в строку XML, которую можно вставить в Консоль запросов. @@ -9923,7 +10001,7 @@ // Рекомендуемая - Строка - номер версия платформы. // // Возвращаемое значение: -// Булево - Истина, если минимальная и рекомендуемая версия платформы заполнена не правильно. +// Булево - Истина, если минимальная и рекомендуемая версия платформы заполнена неправильно. // Функция МинимальнаяИРекомендуемаяВерсияПлатформыЗаполненаНеПравильно(Минимальная, Рекомендуемая) @@ -10002,4 +10080,6 @@ #КонецОбласти -#КонецОбласти \ No newline at end of file +#КонецОбласти + +#КонецЕсли diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl index 162bc74e3..54311126b 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl @@ -935,6 +935,8 @@ // который выполняет код встроенного языка; Неопределено - поддерживается поведение платформы по умолчанию: // изолированно - если компонентой поддерживается только этот режим, не изолированно - в остальных случаях. // См. https://its.1c.eu/db/v83doc#bookmark:dev:TI000001866 +// * ОбновлятьАвтоматически - Булево - (по умолчанию Истина) если ПредложитьЗагрузить = Истина, при загрузке +// внешней компоненты устанавливать признак ОбновлятьСПортала1СИТС // // // Пример: @@ -952,6 +954,7 @@ Параметры.Вставить("ТекстПояснения", ""); Параметры.Вставить("ИдентификаторыСозданияОбъектов", Новый Массив); Параметры.Вставить("Изолированно", Неопределено); + Параметры.Вставить("ОбновлятьАвтоматически", Истина); Возврат Параметры; @@ -1404,7 +1407,7 @@ // Блокирует возможность открытия файлов, расширение которых относятся к исполняемым файлам. // // Параметры: -// ПутьКФайлу - Строка - полный путь к файлу на диске, который требуется открыть. +// ПутьКФайлу - Строка - полный путь к файлу, который требуется открыть. // Оповещение - ОписаниеОповещения - оповещение о результате открытия. // если оповещение не задано, в случае ошибки будет показано предупреждение: // * ПриложениеЗапущено - Булево - Истина, если внешнее приложение не вызвало ошибок при открытии. @@ -1431,7 +1434,7 @@ // Если передан путь к файлу, то выполняет позиционирование курсора в проводнике на этом файле. // // Параметры: -// ПутьККаталогуИлиФайлу - Строка - полный путь к файлу или каталогу на диске. +// ПутьККаталогуИлиФайлу - Строка - полный путь к файлу или каталогу. // // Пример: // // Для Windows diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl index 461dd49ac..b90534c92 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl @@ -8,8 +8,14 @@ #Область ПрограммныйИнтерфейс -// Выполняется перед интерактивным началом работы пользователя с областью данных или в локальном режиме. -// Соответствует обработчику ПередНачаломРаботыСистемы. +// Возникает при запуске приложения до открытия главного окна. +// В процедуре-обработчике могут быть выполнены необходимые проверки и, при необходимости, установлен параметр отказа +// от запуска приложения. Соответствует обработчику ПередНачаломРаботыСистемы. +// +// При работе в модели сервиса обработчик вызывается также: +// - при запуске сеанса администратора без установленных значений разделителей; +// - при входе администратора в область данных из сеанса без установленных значений разделителей. +// Для проверки режима запуска см. функцию ОбщегоНазначенияКлиент.ДоступноИспользованиеРазделенныхДанных. // // Параметры: // Параметры - Структура: @@ -22,10 +28,10 @@ // // * ИнтерактивнаяОбработка - ОписаниеОповещения - возвращаемое значение. Для открытия окна, блокирующего вход в // программу, следует присвоить в этот параметр описание обработчика -// оповещения, который открывает окно. Смотри пример ниже. +// оповещения, который открывает окно. // // * ОбработкаПродолжения - ОписаниеОповещения - если открывается окно, блокирующее вход в программу, то в обработке -// закрытия этого окна необходимо выполнить оповещение ОбработкаПродолжения. Смотри пример ниже. +// закрытия этого окна необходимо выполнить оповещение ОбработкаПродолжения. // // * Модули - Массив - ссылки на модули, в которых нужно вызвать эту же процедуру после возврата. // Модули можно добавлять только в рамках вызова в процедуру переопределяемого модуля. @@ -58,8 +64,14 @@ КонецПроцедуры -// Выполняется при интерактивном начале работы пользователя с областью данных или в локальном режиме. -// Соответствует обработчику ПриНачалеРаботыСистемы. +// Возникает при запуске приложения после открытия главного окна. +// В процедуре-обработчике могут быть выполнены различные действия, необходимые при запуске программы, например, +// открыты некоторые формы. Соответствует обработчику ПриНачалеРаботыСистемы. +// +// При работе в модели сервиса обработчик вызывается также: +// - при запуске сеанса администратора без установленных значений разделителей; +// - при входе администратора в область данных из сеанса без установленных значений разделителей. +// Для проверки режима запуска см. функцию ОбщегоНазначенияКлиент.ДоступноИспользованиеРазделенныхДанных. // // Параметры: // Параметры - Структура: @@ -76,7 +88,6 @@ // // * ОбработкаПродолжения - ОписаниеОповещения - если открывается окно, блокирующее вход в программу, то в // обработке закрытия этого окна необходимо выполнить оповещение ОбработкаПродолжения. -// См. пример в ОбщегоНазначенияКлиентПереопределяемый.ПередНачаломРаботыСистемы. // // * Модули - Массив - ссылки на модули, в которых нужно вызвать эту же процедуру после возврата. // Модули можно добавлять только в рамках вызова в процедуру переопределяемого модуля. @@ -104,10 +115,9 @@ КонецПроцедуры -// Выполняется при интерактивном начале работы пользователя с областью данных или в локальном режиме. -// Вызывается после завершения действий ПриНачалеРаботыСистемы. +// Выполняется при запуске приложения после завершения действий ПриНачалеРаботыСистемы. // Используется для подключения обработчиков ожидания, которые не должны вызываться -// в случае интерактивных действий перед и при начале работы системы. +// перед и при начале работы системы. // // Начальная страница (рабочий стол) в этот момент еще не открыта, поэтому запрещено открывать // формы напрямую, а следует использовать для этих целей обработчик ожидания. @@ -118,9 +128,17 @@ КонецПроцедуры -// Выполняется перед интерактивном завершении работы пользователя с областью данных или в локальном режиме. -// Соответствует обработчику ПередЗавершениемРаботыСистемы. +// Возникает перед завершением работы приложения до закрытия главного окна. +// В процедуре-обработчике могут быть выполнены необходимые проверки и, при необходимости, может быть установлен +// параметр отказа от выхода из программы. // Позволяет определить список предупреждений, выводимых пользователю перед завершением работы. +// В процессе завершения работы приложения запрещены серверные вызовы и открытие окон. +// Соответствует обработчику ПередЗавершениемРаботыСистемы. +// +// При работе в модели сервиса обработчик вызывается также: +// - при завершении сеанса администратора без установленных значений разделителей; +// - при выходе администратора из области данных в сеанса без установленных значений разделителей. +// Для проверки режима запуска см. функцию ОбщегоНазначенияКлиент.ДоступноИспользованиеРазделенныхДанных. // // Параметры: // Отказ - Булево - если установить данному параметру значение Истина, то работа с программой не будет @@ -132,18 +150,18 @@ КонецПроцедуры -// Позволяет переопределить заголовок программы. +// Позволяет переопределить заголовок приложения. // // Параметры: -// ЗаголовокПриложения - Строка - текст заголовка программы; -// ПриЗапуске - Булево - Истина, если вызывается при начале работы программы. +// ЗаголовокПриложения - Строка - текст заголовка приложения; +// ПриЗапуске - Булево - Истина, если вызывается при начале работы приложения. // В этом случае недопустимо вызывать те серверные функции конфигурации, // которые рассчитывают на то, что запуск уже полностью завершен. // Например, вместо СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента // следует вызывать СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске. // // Пример: -// Для того чтобы в начале заголовка программы вывести название текущего проекта, следует определить параметр +// Для того чтобы в начале заголовка приложения вывести название текущего проекта, следует определить параметр // ТекущийПроект в процедуре ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента и вписать код: // // Если Не ОбщегоНазначенияКлиент.ДоступноИспользованиеРазделенныхДанных() Тогда diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl index caa8b121f..0ec462191 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl @@ -319,9 +319,10 @@ // параметра процедуры или функции. // ОжидаемыеТипыСвойств - Структура - если ожидаемый тип - структура, то // в этом параметре можно указать типы ее свойств. +// ОжидаемыеЗначения - Массив, Строка - допустимые значения параметра в виде массива или строки через запятую. // Процедура ПроверитьПараметр(Знач ИмяПроцедурыИлиФункции, Знач ИмяПараметра, Знач ЗначениеПараметра, - Знач ОжидаемыеТипы, Знач ОжидаемыеТипыСвойств = Неопределено) Экспорт + Знач ОжидаемыеТипы, Знач ОжидаемыеТипыСвойств = Неопределено, Знач ОжидаемыеЗначения = Неопределено) Экспорт Контекст = "ОбщегоНазначенияКлиентСервер.ПроверитьПараметр"; Проверить(ТипЗнч(ИмяПроцедурыИлиФункции) = Тип("Строка"), @@ -387,6 +388,19 @@ КонецЦикла; КонецЕсли; + Если ОжидаемыеЗначения <> Неопределено Тогда + Если ТипЗнч(ОжидаемыеЗначения) = Тип("Строка") Тогда + ОжидаемыеЗначения = СтрРазделить(ОжидаемыеЗначения, ","); + КонецЕсли; + Проверить(ОжидаемыеЗначения.Найти(ЗначениеПараметра) <> Неопределено, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |Ожидалось: %3; + |передано значение: %4 (тип %5).'"), + ИмяПараметра, ИмяПроцедурыИлиФункции, СтрСоединить(ОжидаемыеЗначения, ","), + ПредставлениеЗначенияПараметра, ТипЗнч(ЗначениеПараметра))); + КонецЕсли; + КонецПроцедуры // Дополняет таблицу значений - приемник данными из таблицы значений - источника. @@ -518,6 +532,76 @@ КонецПроцедуры +// Дополняет список значений СписокПриемник значениями списка СписокИсточник. +// При этом если в списке-приемнике уже есть элемент с добавляемым значением, то у него заменяется представление +// на новое из списка-источника. +// +// Параметры: +// СписокПриемник - СписокЗначений +// СписокИсточник - СписокЗначений +// ПропускатьЗначенияДругихТипов - Булево - если Истина, то не добавлять в список-приемник элементы списка-источника, +// у которых тип значений не совпадает с типами значений в списке-приемнике. +// По умолчанию пропускать. +// ДобавлятьНовые - Булево, Неопределено - если Истина, то добавлять в список-приемник элементы из списка-источника +// с теми значениями, которые отсутствуют в списке-приемнике. +// +// Возвращаемое значение: +// Структура: +// * Всего - Число - общее количество элементов в списке-источнике. +// * Добавлено - Число - если ДобавлятьНовые = Истина, то количество добавленных элементов в список-приемник. +// * Обновлено - Число - количество совпавших по значениям элементов, представления которых были заменены +// в списке-приемнике на новые из списка-источника. +// * Пропущено - Число - количество пропущенных элементов в списке-приемнике. +// +Функция ДополнитьСписок(Знач СписокПриемник, Знач СписокИсточник, Знач ПропускатьЗначенияДругихТипов = Неопределено, + Знач ДобавлятьНовые = Истина) Экспорт + + Результат = Новый Структура; + Результат.Вставить("Всего", 0); + Результат.Вставить("Добавлено", 0); + Результат.Вставить("Обновлено", 0); + Результат.Вставить("Пропущено", 0); + + Если СписокПриемник = Неопределено Или СписокИсточник = Неопределено Тогда + Возврат Результат; + КонецЕсли; + + ЗаменятьСуществующие = Истина; + ЗаменятьПредставление = ЗаменятьСуществующие И ДобавлятьНовые; + + Если ПропускатьЗначенияДругихТипов = Неопределено Тогда + ПропускатьЗначенияДругихТипов = (СписокПриемник.ТипЗначения <> СписокИсточник.ТипЗначения); + КонецЕсли; + Если ПропускатьЗначенияДругихТипов Тогда + ОписаниеТиповПриемника = СписокПриемник.ТипЗначения; + КонецЕсли; + Для Каждого ЭлементИсточник Из СписокИсточник Цикл + Результат.Всего = Результат.Всего + 1; + Значение = ЭлементИсточник.Значение; + Если ПропускатьЗначенияДругихТипов И Не ОписаниеТиповПриемника.СодержитТип(ТипЗнч(Значение)) Тогда + Результат.Пропущено = Результат.Пропущено + 1; + Продолжить; + КонецЕсли; + ЭлементПриемник = СписокПриемник.НайтиПоЗначению(Значение); + Если ЭлементПриемник = Неопределено Тогда + Если ДобавлятьНовые Тогда + Результат.Добавлено = Результат.Добавлено + 1; + ЗаполнитьЗначенияСвойств(СписокПриемник.Добавить(), ЭлементИсточник); + Иначе + Результат.Пропущено = Результат.Пропущено + 1; + КонецЕсли; + Иначе + Если ЗаменятьСуществующие Тогда + Результат.Обновлено = Результат.Обновлено + 1; + ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник, , ?(ЗаменятьПредставление, "", "Представление")); + Иначе + Результат.Пропущено = Результат.Пропущено + 1; + КонецЕсли; + КонецЕсли; + КонецЦикла; + Возврат Результат; +КонецФункции + // Проверяет наличие реквизита или свойства у произвольного объекта без обращения к метаданным. // // Параметры: @@ -1388,17 +1472,17 @@ // // Параметры: // ПутьКаталога - Строка - путь к каталогу. -// Платформа - ТипПлатформы - параметр устарел, больше не используется. +// УдалитьПлатформа - ТипПлатформы - параметр устарел, больше не используется. // // Возвращаемое значение: -// Строка - путь к каталогу с конечным символом-разделителем. +// Строка // // Пример: // Результат = ДобавитьКонечныйРазделительПути("C:\Мой каталог"); // возвращает "C:\Мой каталог\". // Результат = ДобавитьКонечныйРазделительПути("C:\Мой каталог\"); // возвращает "C:\Мой каталог\". // Результат = ДобавитьКонечныйРазделительПути("%APPDATA%"); // возвращает "%APPDATA%\". // -Функция ДобавитьКонечныйРазделительПути(Знач ПутьКаталога, Знач Платформа = Неопределено) Экспорт +Функция ДобавитьКонечныйРазделительПути(Знач ПутьКаталога, Знач УдалитьПлатформа = Неопределено) Экспорт Если ПустаяСтрока(ПутьКаталога) Тогда Возврат ПутьКаталога; КонецЕсли; @@ -1419,7 +1503,7 @@ // ИмяФайла - Строка - имя файла, без имени каталога. // // Возвращаемое значение: -// Строка - полное имя файла с учетом каталога. +// Строка // Функция ПолучитьПолноеИмяФайла(Знач ИмяКаталога, Знач ИмяФайла) Экспорт @@ -1447,12 +1531,12 @@ // ЭтоКаталог - Булево - признак того, что передано имя каталога. // // Возвращаемое значение: -// Структура - имя файла, разложенное на составные части(аналогично свойствам объекта Файл): -// ПолноеИмя - содержит полный путь к файлу, т.е. полностью соответствует входному параметру ПолноеИмяФайла. -// Путь - содержит путь к каталогу, в котором лежит файл. -// Имя - содержит имя файла с расширением, без пути к файлу. -// Расширение - содержит расширение файла. -// ИмяБезРасширения - содержит имя файла без расширения и без пути к файлу. +// Структура - имя файла, разложенное на составные части (аналогично свойствам объекта Файл): +// ПолноеИмя - Строка - полный путь к файлу, т.е. полностью соответствует входному параметру ПолноеИмяФайла. +// Путь -Строка - путь к каталогу, в котором находится файл. +// Имя - Строка - имя файла с расширением, без пути к файлу. +// Расширение - Строка - расширение файла с точкой вначале. +// ИмяБезРасширения - Строка - имя файла без расширения и без пути к файлу. // // Пример: // ПолноеИмяФайла = "c:\temp\test.txt"; @@ -1478,13 +1562,13 @@ КонецФункции -// Функция раскладывает строку в массив строк, используя "./\" как разделитель. +// Раскладывает строку в массив строк, используя "./\" как разделитель. // // Параметры: // Строка - Строка - исходная строка. // // Возвращаемое значение: -// Массив - коллекция фрагментов строки. +// Массив из Строка // Функция РазложитьСтрокуПоТочкамИСлэшам(Знач Строка) Экспорт @@ -1518,7 +1602,7 @@ // ИмяФайла - Строка - имя файла с именем каталога или без. // // Возвращаемое значение: -// Строка - расширение файла. +// Строка // Функция ПолучитьРасширениеИмениФайла(Знач ИмяФайла) Экспорт @@ -1537,7 +1621,7 @@ // Расширение - Строка - расширение для преобразования. // // Возвращаемое значение: -// Строка - преобразованное расширение. +// Строка // Функция РасширениеБезТочки(Знач Расширение) Экспорт @@ -1559,7 +1643,7 @@ // Расширение - Строка - расширение. // // Возвращаемое значение: -// Строка - имя файла с расширением. +// Строка // Функция ПолучитьИмяСРасширением(ИмяБезРасширения, Расширение) Экспорт @@ -1573,8 +1657,9 @@ // Возвращает строку недопустимых символов. // Согласно http://en.wikipedia.org/wiki/Filename - в разделе "Reserved characters and words". +// // Возвращаемое значение: -// Строка - строка недопустимых символов. +// Строка // Функция ПолучитьНедопустимыеСимволыВИмениФайла() Экспорт @@ -1590,8 +1675,8 @@ // ИмяФайла - Строка - имя файла. // // Возвращаемое значение: -// Массив - массив обнаруженных в имени файла недопустимых символов. -// Если недопустимых символов не обнаружено - возвращается пустой массив. +// Массив из Строка - обнаруженные в имени файла недопустимые символы. +// Если недопустимых символов не обнаружено, то массив пустой. // Функция НайтиНедопустимыеСимволыВИмениФайла(ИмяФайла) Экспорт @@ -1617,7 +1702,7 @@ // НаЧтоМенять - Строка - строка, на которую необходимо заменить недопустимые символы. // // Возвращаемое значение: -// Строка - преобразованное имя файла. +// Строка // Функция ЗаменитьНедопустимыеСимволыВИмениФайла(Знач ИмяФайла, НаЧтоМенять = " ") Экспорт @@ -1656,14 +1741,14 @@ Для Каждого Строка Из СтрРазделить(СписокАдресов, ";", Ложь) Цикл ЧастиПредставления = Новый Массив; - Для Каждого АдресСПредставлением Из СтрРазделить(Строка, ",", Ложь) Цикл + Для Каждого АдресСПредставлением Из СтрРазделить(СокрЛП(Строка), ",", Ложь) Цикл Если Не ЗначениеЗаполнено(АдресСПредставлением) Тогда ЧастиПредставления.Добавить(АдресСПредставлением); Продолжить; КонецЕсли; ЧастиСтроки = СтрРазделить(СокрП(АдресСПредставлением), " ", Истина); - Адрес = ЧастиСтроки[ЧастиСтроки.ВГраница()]; + Адрес = СокрЛП(ЧастиСтроки[ЧастиСтроки.ВГраница()]); Псевдоним = ""; ОписаниеОшибки = ""; @@ -1794,27 +1879,27 @@ КонецФункции -// Функция проверяет, что введенная строка с email-адресами введена правильно. +// Проверяет, что введенная строка с email-адресами введена правильно. // -// Формат строки: +// Формат строки: // Z = ИмяПользователя|[Имя Пользователя] [<]пользователь@почтовый_сервер[>], Строка = Z[<разделитель*>Z]. // -// Прим.: разделитель* - имеется ввиду любой разделитель адресов. +// Прим.: разделитель* - имеется ввиду любой разделитель адресов. // // Параметры: -// СтрокаПереданныхАдресов - Строка - правильная строка с почтовыми адресами. -// ВызыватьИсключение - Булево - необходимо передать Ложь, чтобы в случае неуспешного разбора не выдавалось исключение. +// Адреса - Строка - правильная строка с почтовыми адресами. +// ВызыватьИсключение - Булево - передать Ложь, чтобы в случае неуспешного разбора не выдавалось исключение. // // Возвращаемое значение: // Массив из Структура: // * Адрес - Строка - e-mail получателя. // * Представление - Строка - имя получателя. // -Функция РазобратьСтрокуСПочтовымиАдресами(Знач СтрокаПереданныхАдресов, ВызыватьИсключение = Истина) Экспорт +Функция РазобратьСтрокуСПочтовымиАдресами(Знач Адреса, ВызыватьИсключение = Истина) Экспорт Результат = Новый Массив; ОписанияОшибок = Новый Массив; - Адресаты = АдресаЭлектроннойПочтыИзСтроки(СтрокаПереданныхАдресов); + Адресаты = АдресаЭлектроннойПочтыИзСтроки(Адреса); Для Каждого Адресат Из Адресаты Цикл Если ЗначениеЗаполнено(Адресат.ОписаниеОшибки) Тогда @@ -1843,7 +1928,7 @@ // Возвращает имя COM-класса для работы с 1С:Предприятием 8 через COM-соединение. // // Возвращаемое значение: -// Строка - имя COM-класса для работы с 1С:Предприятием 8 через COM-соединение. +// Строка // Функция ИмяCOMСоединителя() Экспорт @@ -1853,24 +1938,32 @@ КонецФункции -// Конструктор параметра Параметры функций ОбщегоНазначения.УстановитьВнешнееСоединениеСБазой() -// и ОбщегоНазначенияКлиент.УстановитьВнешнееСоединениеСБазой() -// +// Конструктор параметра Параметры функций ОбщегоНазначения.УстановитьВнешнееСоединениеСБазой +// и ОбщегоНазначенияКлиент.УстановитьВнешнееСоединениеСБазой. +// // Возвращаемое значение: -// Структура - коллекция параметров. +// Структура: +// * ВариантРаботыИнформационнойБазы - Число - 0, если файловый вариант работы. +// * КаталогИнформационнойБазы - Строка - полный путь каталога информационной базы (для файловой ИБ). +// * ИмяСервера1СПредприятия - Строка - имя сервера (для клиент-серверной ИБ) +// * ИмяИнформационнойБазыНаСервере1СПредприятия - Строка - имя базы на сервере (для клиент-серверной ИБ) +// * АутентификацияОперационнойСистемы - Булево - указать Истина, если аутентификация операционной системы. +// Если Ложь, то нужно указать свойства ИмяПользователя и ПарольПользователя. +// * ИмяПользователя - Строка - имя пользователя для подключения к ИБ. +// * ПарольПользователя - Строка - пароль пользователя для подключения к ИБ. // Функция СтруктураПараметровДляУстановкиВнешнегоСоединения() Экспорт - СтруктураПараметров = Новый Структура; - СтруктураПараметров.Вставить("ВариантРаботыИнформационнойБазы", 0); - СтруктураПараметров.Вставить("КаталогИнформационнойБазы", ""); - СтруктураПараметров.Вставить("ИмяСервера1СПредприятия", ""); - СтруктураПараметров.Вставить("ИмяИнформационнойБазыНаСервере1СПредприятия", ""); - СтруктураПараметров.Вставить("АутентификацияОперационнойСистемы", Ложь); - СтруктураПараметров.Вставить("ИмяПользователя", ""); - СтруктураПараметров.Вставить("ПарольПользователя", ""); + Результат = Новый Структура; + Результат.Вставить("ВариантРаботыИнформационнойБазы", 0); + Результат.Вставить("КаталогИнформационнойБазы", ""); + Результат.Вставить("ИмяСервера1СПредприятия", ""); + Результат.Вставить("ИмяИнформационнойБазыНаСервере1СПредприятия", ""); + Результат.Вставить("АутентификацияОперационнойСистемы", Ложь); + Результат.Вставить("ИмяПользователя", ""); + Результат.Вставить("ПарольПользователя", ""); - Возврат СтруктураПараметров; + Возврат Результат; КонецФункции @@ -2042,7 +2135,7 @@ // СимволЗамены - Строка - строка, на которую требуется выполнить замену недопустимого символа в XML-строке. // // Возвращаемое значение: -// Строка - строка, полученная заменой недопустимых символов в XML-строке. +// Строка // Функция ЗаменитьНедопустимыеСимволыXML(Знач Текст, СимволЗамены = " ") Экспорт @@ -2091,7 +2184,7 @@ // Текст - Строка - строка, в которой требуется удалить недопустимые символы. // // Возвращаемое значение: -// Строка - строка, полученная при удалении недопустимых символов в XML-строке. +// Строка // Функция УдалитьНедопустимыеСимволыXML(Знач Текст) Экспорт @@ -2103,12 +2196,12 @@ #Область ТабличныйДокумент -// Процедура управляет состоянием поля табличного документа. +// Управляет состоянием поля табличного документа. // // Параметры: // ПолеТабличногоДокумента - ПолеФормы - поле формы с видом ПолеТабличногоДокумента, // для которого необходимо установить состояние. -// Состояние - Строка - задает вид состояния. +// Состояние - Строка - вид состояния: "НеИспользовать", "Неактуальность", "ФормированиеОтчета". // Процедура УстановитьСостояниеПоляТабличногоДокумента(ПолеТабличногоДокумента, Состояние = "НеИспользовать") Экспорт @@ -2124,17 +2217,27 @@ ОтображениеСостояния.Видимость = Истина; ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.Неактуальность; ОтображениеСостояния.Картинка = Новый Картинка; - ОтображениеСостояния.Текст = НСтр("ru = 'Отчет не сформирован. Нажмите ""Сформировать"" для получения отчета.'");; + ОтображениеСостояния.Текст = НСтр("ru = 'Отчет не сформирован. Нажмите ""Сформировать"" для получения отчета.'"); ИначеЕсли ВРег(Состояние) = "ФОРМИРОВАНИЕОТЧЕТА" Тогда ОтображениеСостояния.Видимость = Истина; ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.Неактуальность; ОтображениеСостояния.Картинка = БиблиотекаКартинок.ДлительнаяОперация48; ОтображениеСостояния.Текст = НСтр("ru = 'Отчет формируется...'"); Иначе - ВызватьИсключение(НСтр("ru = 'Недопустимое значение параметра (параметр номер ''2'')'")); + ПроверитьПараметр( + "ОбщегоНазначенияКлиентСервер.УстановитьСостояниеПоляТабличногоДокумента", "Состояние", Состояние, + Тип("Строка"),, "НеИспользовать,Неактуальность,ФормированиеОтчета"); КонецЕсли; Иначе - ВызватьИсключение(НСтр("ru = 'Недопустимое значение параметра (параметр номер ''1'')'")); + ПроверитьПараметр( + "ОбщегоНазначенияКлиентСервер.УстановитьСостояниеПоляТабличногоДокумента", "ПолеТабличногоДокумента", + ПолеТабличногоДокумента, Тип("ПолеФормы")); + Проверить(ПолеТабличногоДокумента.Вид = ВидПоляФормы.ПолеТабличногоДокумента, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |Ожидался вид: %3; передано значение: %4 (тип %5).'"), + "ПолеТабличногоДокумента", "ОбщегоНазначенияКлиентСервер.УстановитьСостояниеПоляТабличногоДокумента", + "ВидПоляФормы.ПолеТабличногоДокумента", ПолеТабличногоДокумента.Вид, ТипЗнч(ПолеТабличногоДокумента.Вид))); КонецЕсли; КонецПроцедуры @@ -2150,7 +2253,7 @@ // - см. ПараметрыРасчетаПоказателейЯчеек // // Возвращаемое значение: -// Структура - результаты расчета выделенных ячеек: +// Структура: // * Количество - Число - количество выделенных ячеек. // * КоличествоЧисловых - Число - количество числовых ячеек. // * Сумма - Число - сумма выделенных ячеек с числами. diff --git a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl index 4e1e0ea67..1c5bc3dea 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl @@ -73,7 +73,8 @@ // который выполняет код встроенного языка; Неопределено - поддерживается поведение платформы по умолчанию: // изолированно - если компонентой поддерживается только этот режим, не изолированно - в остальных случаях. // См. https://its.1c.eu/db/v83doc#bookmark:dev:TI000001866 -// +// * ОбновлятьАвтоматически - Булево - (по умолчанию Истина) если ПредложитьЗагрузить = Истина, при загрузке +// внешней компоненты устанавливать признак ОбновлятьСПортала1СИТС // Функция КонтекстПодключенияКомпоненты() Экспорт @@ -86,6 +87,7 @@ Контекст.Вставить("Кэшировать", Истина); Контекст.Вставить("ПредложитьУстановить", Истина); Контекст.Вставить("ПредложитьЗагрузить", Ложь); + Контекст.Вставить("ОбновлятьАвтоматически", Истина); Контекст.Вставить("ТекстПояснения", ""); Контекст.Вставить("ИдентификаторыСозданияОбъектов", Новый Массив); Контекст.Вставить("ВыполненПоискНовойВерсии", Ложь); @@ -160,6 +162,7 @@ КонтекстПроверкиКомпоненты.Версия = Неопределено; КонтекстПроверкиКомпоненты.ПредложитьУстановить = Контекст.ПредложитьУстановить; КонтекстПроверкиКомпоненты.ПредложитьЗагрузить = Контекст.ПредложитьЗагрузить; + КонтекстПроверкиКомпоненты.ОбновлятьАвтоматически = Контекст.ОбновлятьАвтоматически; КонтекстПроверкиКомпоненты.ТекстПояснения = Контекст.ТекстПояснения; КонтекстПроверкиКомпоненты.ИсходноеМестоположение = Контекст.ИсходноеМестоположение; КонтекстПроверкиКомпоненты.ИдентификаторыСозданияОбъектов = Контекст.ИдентификаторыСозданияОбъектов; @@ -278,6 +281,7 @@ КонтекстПроверкиКомпоненты.Версия = Неопределено; КонтекстПроверкиКомпоненты.ПредложитьУстановить = Контекст.ПредложитьУстановить; КонтекстПроверкиКомпоненты.ПредложитьЗагрузить = Контекст.ПредложитьЗагрузить; + КонтекстПроверкиКомпоненты.ОбновлятьАвтоматически = Контекст.ОбновлятьАвтоматически; КонтекстПроверкиКомпоненты.ТекстПояснения = Контекст.ТекстПояснения; КонтекстПроверкиКомпоненты.ИсходноеМестоположение = Контекст.ИсходноеМестоположение; КонтекстПроверкиКомпоненты.ИдентификаторыСозданияОбъектов = Контекст.ИдентификаторыСозданияОбъектов; @@ -1266,7 +1270,6 @@ КонецПроцедуры -// Получает из кэша объект - экземпляр внешней компоненты Функция ПолучитьОбъектКомпонентыИзКэша(КлючОбъекта) ПодключаемыйМодуль = Неопределено; @@ -1280,7 +1283,6 @@ КонецФункции -// Записывает в кэш экземпляр внешней компоненты Процедура ЗаписатьОбъектКомпонентыВКэш(КлючОбъекта, ПодключаемыйМодуль) Соответствие = Новый Соответствие; @@ -1403,10 +1405,9 @@ #Если ВебКлиент Или МобильныйКлиент Тогда Возврат Ложь; #Иначе - ПараметрыРаботыКлиентаПриЗапуске = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); Возврат Не ОбщегоНазначенияКлиент.КлиентПодключенЧерезВебСервер() - И Не ПараметрыРаботыКлиентаПриЗапуске.ЭтоБазоваяВерсияКонфигурации - И Не ПараметрыРаботыКлиентаПриЗапуске.ЭтоУчебнаяПлатформа; + И Не СтандартныеПодсистемыКлиент.ЭтоБазоваяВерсияКонфигурации() + И Не СтандартныеПодсистемыКлиент.ЭтоУчебнаяПлатформа(); #КонецЕсли КонецФункции diff --git a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl index 46a7ab364..341a68a24 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl @@ -8,6 +8,8 @@ #Область СлужебныйПрограммныйИнтерфейс +#Если НЕ МобильныйАвтономныйСервер Тогда + #Область ЗапускВнешнихПриложений // Параметры: @@ -236,6 +238,8 @@ #КонецОбласти +#КонецЕсли + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -272,6 +276,8 @@ #КонецОбласти +#Если НЕ МобильныйАвтономныйСервер Тогда + #Область ДанныеВБазе #Область ПредопределенныйЭлемент @@ -377,7 +383,7 @@ #Если МобильныйКлиент Тогда - СтрокаСообщенияОбОшибке = НСтр("ru = 'Подключение к другой программе не доступно в мобильном клиенте.'"); + СтрокаСообщенияОбОшибке = НСтр("ru = 'Подключение к другой программе недоступно в мобильном клиенте.'"); Результат.ОшибкаПодключенияКомпоненты = Истина; Результат.ПодробноеОписаниеОшибки = СтрокаСообщенияОбОшибке; @@ -421,7 +427,7 @@ Иначе Если ПустаяСтрока(Параметры.ИмяСервера1СПредприятия) Или ПустаяСтрока(Параметры.ИмяИнформационнойБазыНаСервере1СПредприятия) Тогда - СтрокаСообщенияОбОшибке = НСтр("ru = 'Не заданы обязательные параметры подключения: ""Имя сервера""; ""Имя информационной базы на сервере"".'"); + СтрокаСообщенияОбОшибке = НСтр("ru = 'Не заданы обязательные параметры подключения ""Имя сервера"" и ""Имя информационной базы на сервере"".'"); ОшибкаПроверкиЗаполнения = Истина; КонецЕсли; @@ -748,4 +754,6 @@ #КонецОбласти +#КонецЕсли + #КонецОбласти diff --git a/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl index b1d0aa572..8acd5db75 100644 --- a/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl @@ -70,7 +70,7 @@ Если ПараметрыРаботыКлиента.ДоступнаОтправкаSMS Тогда ВыполнитьОбработкуОповещения(ОбработчикРезультата, Истина); Иначе - Если ПараметрыРаботыКлиента.ЭтоПолноправныйПользователь Тогда + Если ПользователиКлиент.ЭтоПолноправныйПользователь() Тогда ОписаниеОповещения = Новый ОписаниеОповещения("ПослеНастройкиSMS", ЭтотОбъект, ОбработчикРезультата); ОткрытьФормуНастроек(ОписаниеОповещения); Иначе diff --git a/SSL/src/CommonModules/ОтправкаSMSЧерезSMSЦЕНТР/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSЧерезSMSЦЕНТР/Module.bsl index 0cdd452b1..028e56b21 100644 --- a/SSL/src/CommonModules/ОтправкаSMSЧерезSMSЦЕНТР/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSЧерезSMSЦЕНТР/Module.bsl @@ -52,10 +52,7 @@ Возврат Результат; КонецЕсли; - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(ТекстОтвета); - ОтветСервера = ПрочитатьJSON(ЧтениеJSON); - ЧтениеJSON.Закрыть(); + ОтветСервера = ОбщегоНазначения.JSONВЗначение(ТекстОтвета, , Ложь); Если ОтветСервера.Свойство("error") Тогда Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( @@ -110,10 +107,7 @@ Возврат "Ошибка"; КонецЕсли; - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(ТекстОтвета); - ОтветСервера = ПрочитатьJSON(ЧтениеJSON); - ЧтениеJSON.Закрыть(); + ОтветСервера = ОбщегоНазначения.JSONВЗначение(ТекстОтвета, , Ложь); Если ОтветСервера.Свойство("error") Тогда ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( diff --git a/SSL/src/CommonModules/ОтправкаSMSЧерезМТС/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSЧерезМТС/Module.bsl index f911c6ff1..7c0eb0733 100644 --- a/SSL/src/CommonModules/ОтправкаSMSЧерезМТС/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSЧерезМТС/Module.bsl @@ -273,19 +273,6 @@ КонецФункции -Функция ЗначениеВJSON(Значение) - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.УстановитьСтроку(); - ЗаписатьJSON(ЗаписьJSON, Значение); - Возврат ЗаписьJSON.Закрыть(); -КонецФункции - -Функция JSONВЗначение(Строка, ИменаСвойствСоЗначениямиДата = Неопределено) - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(Строка); - Возврат ПрочитатьJSON(ЧтениеJSON, Истина, ИменаСвойствСоЗначениямиДата); -КонецФункции - Функция ОтправитьSMSКоммуникатор(Получатели, Текст, ИмяОтправителя, Логин, Знач Пароль) Результат = Новый Структура("ОтправленныеСообщения,ОписаниеОшибки", Новый Массив, ""); @@ -341,7 +328,7 @@ ТекстОтвета = СокрЛП(РезультатЗапроса.ОтветСервера); Ответ = Новый Соответствие; Если СтрНачинаетсяС(ТекстОтвета, "{") И СтрЗаканчиваетсяНа(ТекстОтвета, "}") Тогда - Ответ = JSONВЗначение(ТекстОтвета); + Ответ = ОбщегоНазначения.JSONВЗначение(ТекстОтвета); КонецЕсли; КодОшибки = Ответ["code"]; @@ -386,7 +373,7 @@ МассивИдентификаторов.Добавить(ИдентификаторСообщения); ПараметрыЗапроса.Вставить("msg_ids", МассивИдентификаторов); - ТекстЗапроса = ЗначениеВJSON(Новый Структура("msg_ids", ПараметрыЗапроса.msg_ids)); + ТекстЗапроса = ОбщегоНазначения.ЗначениеВJSON(Новый Структура("msg_ids", ПараметрыЗапроса.msg_ids)); HTTPЗапрос = HTTPЗапросМаркетолог(АдресРесурсаМаркетолог() + "messages/info", ТекстЗапроса); РезультатЗапроса = ВыполнитьЗапрос(АдресСервераМаркетолог(), HTTPЗапрос, НастройкиОтправкиSMS.Логин, НастройкиОтправкиSMS.Пароль); @@ -394,7 +381,7 @@ Возврат Результат; КонецЕсли; - Ответ = JSONВЗначение(РезультатЗапроса.ОтветСервера, "event_at"); + Ответ = ОбщегоНазначения.JSONВЗначение(РезультатЗапроса.ОтветСервера, "event_at"); СтатусыСообщений = Ответ["events_info"]; Если СтатусыСообщений = Неопределено Тогда @@ -466,7 +453,7 @@ ОписаниеЗапроса.Вставить("options", ПараметрыОтправки); КонецЕсли; - ТекстЗапроса = ЗначениеВJSON(ОписаниеЗапроса); + ТекстЗапроса = ОбщегоНазначения.ЗначениеВJSON(ОписаниеЗапроса); Возврат ТекстЗапроса; diff --git a/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl index cf8ba7715..776d662a0 100644 --- a/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl @@ -592,6 +592,21 @@ Возврат ОписаниеИндекса.ПривестиЗначение(ИндексЭлемента); КонецФункции +#Область УстаревшиеПроцедурыИФункции + +// Устарела. Следует использовать ОбщегоНазначенияКлиентСервер.ДополнитьСписок. +Функция ДополнитьСписок(СписокПриемник, СписокИсточник, КонтролироватьТип = Неопределено, ДобавлятьНовые = Истина) Экспорт + + Если СписокПриемник = Неопределено Или СписокИсточник = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат ОбщегоНазначенияКлиентСервер.ДополнитьСписок(СписокПриемник, СписокИсточник, КонтролироватьТип, ДобавлятьНовые); + +КонецФункции + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -1819,53 +1834,6 @@ Возврат Список; КонецФункции -Функция ДополнитьСписок(СписокПриемник, СписокИсточник, КонтролироватьТип = Неопределено, ДобавлятьНовые = Истина) Экспорт - Если СписокПриемник = Неопределено Или СписокИсточник = Неопределено Тогда - Возврат Неопределено; - КонецЕсли; - - ЗаменятьСуществующие = Истина; - ЗаменятьПредставление = ЗаменятьСуществующие И ДобавлятьНовые; - - Результат = Новый Структура; - Результат.Вставить("Всего", 0); - Результат.Вставить("Добавлено", 0); - Результат.Вставить("Обновлено", 0); - Результат.Вставить("Пропущено", 0); - - Если КонтролироватьТип = Неопределено Тогда - КонтролироватьТип = (СписокПриемник.ТипЗначения <> СписокИсточник.ТипЗначения); - КонецЕсли; - Если КонтролироватьТип Тогда - ОписаниеТиповПриемника = СписокПриемник.ТипЗначения; - КонецЕсли; - Для Каждого ЭлементИсточник Из СписокИсточник Цикл - Результат.Всего = Результат.Всего + 1; - Значение = ЭлементИсточник.Значение; - Если КонтролироватьТип И Не ОписаниеТиповПриемника.СодержитТип(ТипЗнч(Значение)) Тогда - Результат.Пропущено = Результат.Пропущено + 1; - Продолжить; - КонецЕсли; - ЭлементПриемник = СписокПриемник.НайтиПоЗначению(Значение); - Если ЭлементПриемник = Неопределено Тогда - Если ДобавлятьНовые Тогда - Результат.Добавлено = Результат.Добавлено + 1; - ЗаполнитьЗначенияСвойств(СписокПриемник.Добавить(), ЭлементИсточник); - Иначе - Результат.Пропущено = Результат.Пропущено + 1; - КонецЕсли; - Иначе - Если ЗаменятьСуществующие Тогда - Результат.Обновлено = Результат.Обновлено + 1; - ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник, , ?(ЗаменятьПредставление, "", "Представление")); - Иначе - Результат.Пропущено = Результат.Пропущено + 1; - КонецЕсли; - КонецЕсли; - КонецЦикла; - Возврат Результат; -КонецФункции - Функция СтрЛевДоСимвола(Строка, Разделитель, Остаток = Неопределено) Позиция = СтрНайти(Строка, Разделитель); Если Позиция = 0 Тогда diff --git a/SSL/src/CommonModules/ОтчетыСервер/Module.bsl b/SSL/src/CommonModules/ОтчетыСервер/Module.bsl index 8752a1491..70a8d4077 100644 --- a/SSL/src/CommonModules/ОтчетыСервер/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыСервер/Module.bsl @@ -2191,9 +2191,8 @@ ПараметрыПодбора.Вставить(Элемент.ИндексНастройки, Поле.ФормаВыбора); КонецЕсли; - Результат = ОтчетыКлиентСервер.ДополнитьСписок( - Поле.СписокВыбора, Элемент.ДоступныеЗначения, Ложь, Истина); - Поле.РежимВыбораИзСписка = Не Элемент.ЭтоСписок И Результат <> Неопределено И Результат.Всего > 0; + Результат = ОбщегоНазначенияКлиентСервер.ДополнитьСписок(Поле.СписокВыбора, Элемент.ДоступныеЗначения, Ложь, Истина); + Поле.РежимВыбораИзСписка = Не Элемент.ЭтоСписок И Результат.Всего > 0; Если Поле.РастягиватьПоГоризонтали = Неопределено Тогда Поле.РастягиватьПоГоризонтали = Истина; @@ -3085,7 +3084,7 @@ Свойства = "ДоступныеТипы, ОграничениеТипа, АвтоОтметкаНезаполненного, СвязиПараметровВыбора, СвязьПоТипу"; ЗаполнитьЗначенияСвойств(ПолеЗначения, Поле, Свойства); - ОтчетыКлиентСервер.ДополнитьСписок(ПолеЗначения.СписокВыбора, Поле.СписокВыбора, Ложь, Истина); + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(ПолеЗначения.СписокВыбора, Поле.СписокВыбора, Ложь, Истина); ПараметрыРедактирования = Новый Структура("БыстрыйВыбор, ВыборГруппИЭлементов"); Если ОписаниеЭлементаНастройки.ОписаниеНастройки <> Неопределено Тогда @@ -3223,8 +3222,8 @@ ДоступныеЗначения = Поле.СписокВыбора; КонецЕсли; - ОтчетыКлиентСервер.ДополнитьСписок(Список, ДоступныеЗначения, Ложь, Истина); - ОтчетыКлиентСервер.ДополнитьСписок(Список, ВыбранныеЗначения, Ложь, Истина); + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(Список, ДоступныеЗначения, Ложь, Истина); + ОбщегоНазначенияКлиентСервер.ДополнитьСписок(Список, ВыбранныеЗначения, Ложь, Истина); Для Каждого ЭлементСписка Из Список Цикл Если Не ЗначениеЗаполнено(ЭлементСписка.Значение) Тогда diff --git a/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl index 0b3c11ef9..be90d0fa8 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl @@ -15,15 +15,15 @@ // Число - число длиной 14 символов, время UTC начала с точностью до миллисекунд. // Функция НачатьЗамерВремени() Экспорт - + ВремяНачала = 0; - + Если ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда ВремяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах(); КонецЕсли; - + Возврат ВремяНачала; - + КонецФункции // Завершает замер времени ключевой операции @@ -39,11 +39,12 @@ // - Соответствие - произвольная информация замера. // ВыполненСОшибкой - Булево - признак того, что замер не был выполнен до конца, // -Процедура ЗакончитьЗамерВремени(КлючеваяОперация, ВремяНачала, ВесЗамера = 1, Комментарий = Неопределено, ВыполненСОшибкой = Ложь) Экспорт - Если ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда +Процедура ЗакончитьЗамерВремени(КлючеваяОперация, ВремяНачала, ВесЗамера = 1, Комментарий = Неопределено, + ВыполненСОшибкой = Ложь) Экспорт + Если ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); - Длительность = (ВремяОкончания - ВремяНачала)/1000; - + Длительность = (ВремяОкончания - ВремяНачала) / 1000; + ПараметрыЗамера = Новый Структура; ПараметрыЗамера.Вставить("КлючеваяОперация", КлючеваяОперация); ПараметрыЗамера.Вставить("Длительность", Длительность); @@ -54,7 +55,7 @@ ПараметрыЗамера.Вставить("Технологический", Ложь); ПараметрыЗамера.Вставить("Длительная", Ложь); ПараметрыЗамера.Вставить("ВыполненСОшибкой", ВыполненСОшибкой); - + ЗафиксироватьДлительностьКлючевойОперации(ПараметрыЗамера); КонецЕсли; КонецПроцедуры @@ -71,11 +72,12 @@ // Комментарий - Строка // - Соответствие - произвольная информация замера. // -Процедура ЗакончитьЗамерВремениТехнологический(КлючеваяОперация, ВремяНачала, ВесЗамера = 1, Комментарий = Неопределено) Экспорт - Если ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда +Процедура ЗакончитьЗамерВремениТехнологический(КлючеваяОперация, ВремяНачала, ВесЗамера = 1, + Комментарий = Неопределено) Экспорт + Если ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); - Длительность = (ВремяОкончания - ВремяНачала)/1000; - + Длительность = (ВремяОкончания - ВремяНачала) / 1000; + ПараметрыЗамера = Новый Структура; ПараметрыЗамера.Вставить("КлючеваяОперация", КлючеваяОперация); ПараметрыЗамера.Вставить("Длительность", Длительность); @@ -86,7 +88,7 @@ ПараметрыЗамера.Вставить("Технологический", Истина); ПараметрыЗамера.Вставить("Длительная", Ложь); ПараметрыЗамера.Вставить("ВыполненСОшибкой", Ложь); - + ЗафиксироватьДлительностьКлючевойОперации(ПараметрыЗамера); КонецЕсли; КонецПроцедуры @@ -98,43 +100,44 @@ // Процедура СоздатьКлючевыеОперации(КлючевыеОперации) Экспорт Таблица = Новый ТаблицаЗначений; - Таблица.Колонки.Добавить("ИмяКлючевойОперации", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(1000))); - Таблица.Колонки.Добавить("ЦелевоеВремя", Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла(15,2))); - + Таблица.Колонки.Добавить("ИмяКлючевойОперации", Новый ОписаниеТипов("Строка", , , , + Новый КвалификаторыСтроки(1000))); + Таблица.Колонки.Добавить("ЦелевоеВремя", Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(15, 2))); + Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл ЗаполнитьЗначенияСвойств(Таблица.Добавить(), КлючеваяОперация); КонецЦикла; - + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ - | Таблица.ИмяКлючевойОперации КАК ИмяКлючевойОперации, - | Таблица.ЦелевоеВремя КАК ЦелевоеВремя - |ПОМЕСТИТЬ Таблица - |ИЗ - | &Таблица КАК Таблица - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ЕСТЬNULL(КлючевыеОперации.Ссылка, ЗНАЧЕНИЕ(Справочник.КлючевыеОперации.ПустаяСсылка)) КАК Ссылка, - | Таблица.ИмяКлючевойОперации КАК ИмяКлючевойОперации, - | Таблица.ЦелевоеВремя КАК ЦелевоеВремя - |ИЗ - | Таблица КАК Таблица - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючевыеОперации КАК КлючевыеОперации - | ПО Таблица.ИмяКлючевойОперации = КлючевыеОперации.Имя"; + | Таблица.ИмяКлючевойОперации КАК ИмяКлючевойОперации, + | Таблица.ЦелевоеВремя КАК ЦелевоеВремя + |ПОМЕСТИТЬ Таблица + |ИЗ + | &Таблица КАК Таблица + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ЕСТЬNULL(КлючевыеОперации.Ссылка, ЗНАЧЕНИЕ(Справочник.КлючевыеОперации.ПустаяСсылка)) КАК Ссылка, + | Таблица.ИмяКлючевойОперации КАК ИмяКлючевойОперации, + | Таблица.ЦелевоеВремя КАК ЦелевоеВремя + |ИЗ + | Таблица КАК Таблица + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючевыеОперации КАК КлючевыеОперации + | ПО Таблица.ИмяКлючевойОперации = КлючевыеОперации.Имя"; Запрос.УстановитьПараметр("Таблица", Таблица); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Возврат; КонецЕсли; Выборка = РезультатЗапроса.Выбрать(); - + Пока Выборка.Следующий() Цикл Если Выборка.Ссылка.Пустая() Тогда СоздатьКлючевуюОперацию(Выборка.ИмяКлючевойОперации, Выборка.ЦелевоеВремя); // @skip-check query-in-loop - создание ключевой операции в случае отсутствия. КонецЕсли; - КонецЦикла; + КонецЦикла; КонецПроцедуры // Устанавливает ключевой операции новое целевое время. @@ -142,63 +145,64 @@ // Параметры: // КлючевыеОперации - Массив - ключевые операции, элемент массива - Структура("ИмяКлючевойОперации, ЦелевоеВремя"). // -Процедура УстановитьЦелевоеВремя (КлючевыеОперации) Экспорт - +Процедура УстановитьЦелевоеВремя(КлючевыеОперации) Экспорт + Таблица = Новый ТаблицаЗначений; - Таблица.Колонки.Добавить("ИмяКлючевойОперации", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(1000))); - Таблица.Колонки.Добавить("ЦелевоеВремя", Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла(15,2))); - + Таблица.Колонки.Добавить("ИмяКлючевойОперации", Новый ОписаниеТипов("Строка", , , , + Новый КвалификаторыСтроки(1000))); + Таблица.Колонки.Добавить("ЦелевоеВремя", Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(15, 2))); + Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл ЗаполнитьЗначенияСвойств(Таблица.Добавить(), КлючеваяОперация); КонецЦикла; - + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ - | Таблица.ИмяКлючевойОперации КАК ИмяКлючевойОперации, - | Таблица.ЦелевоеВремя КАК ЦелевоеВремя - |ПОМЕСТИТЬ Таблица - |ИЗ - | &Таблица КАК Таблица - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | КлючевыеОперации.Ссылка КАК Ссылка, - | Таблица.ЦелевоеВремя КАК ЦелевоеВремя - |ИЗ - | Справочник.КлючевыеОперации КАК КлючевыеОперации - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица КАК Таблица - | ПО КлючевыеОперации.Имя = Таблица.ИмяКлючевойОперации - | - |УПОРЯДОЧИТЬ ПО - | Ссылка"; + | Таблица.ИмяКлючевойОперации КАК ИмяКлючевойОперации, + | Таблица.ЦелевоеВремя КАК ЦелевоеВремя + |ПОМЕСТИТЬ Таблица + |ИЗ + | &Таблица КАК Таблица + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | КлючевыеОперации.Ссылка КАК Ссылка, + | Таблица.ЦелевоеВремя КАК ЦелевоеВремя + |ИЗ + | Справочник.КлючевыеОперации КАК КлючевыеОперации + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица КАК Таблица + | ПО КлючевыеОперации.Имя = Таблица.ИмяКлючевойОперации + | + |УПОРЯДОЧИТЬ ПО + | Ссылка"; Запрос.УстановитьПараметр("Таблица", Таблица); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Возврат; КонецЕсли; Выборка = РезультатЗапроса.Выбрать(); - + НачатьТранзакцию(); - Попытка + Попытка Блокировка = Новый БлокировкаДанных; Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл ЭлементБлокировки = Блокировка.Добавить("Справочник.КлючевыеОперации"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.УстановитьЗначение("Имя", КлючеваяОперация.ИмяКлючевойОперации); КонецЦикла; - Блокировка.Заблокировать(); + Блокировка.Заблокировать(); Пока Выборка.Следующий() Цикл КлючеваяОперацияОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.КлючевыеОперации - КлючеваяОперацияОбъект.ЦелевоеВремя = Выборка.ЦелевоеВремя; - КлючеваяОперацияОбъект.Записать(); - КонецЦикла; + КлючеваяОперацияОбъект.ЦелевоеВремя = Выборка.ЦелевоеВремя; + КлючеваяОперацияОбъект.Записать(); + КонецЦикла; ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; - + КонецПроцедуры // Изменяет ключевые операции. @@ -211,52 +215,54 @@ // целевое время не изменяется. // Процедура ИзменитьКлючевыеОперации(КлючевыеОперации) Экспорт - + Таблица = Новый ТаблицаЗначений; - Таблица.Колонки.Добавить("ИмяКлючевойОперацииСтарое", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(1000))); - Таблица.Колонки.Добавить("ИмяКлючевойОперацииНовое", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(1000))); - Таблица.Колонки.Добавить("ЦелевоеВремя", Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла(15,2))); - + Таблица.Колонки.Добавить("ИмяКлючевойОперацииСтарое", Новый ОписаниеТипов("Строка", , , , + Новый КвалификаторыСтроки(1000))); + Таблица.Колонки.Добавить("ИмяКлючевойОперацииНовое", Новый ОписаниеТипов("Строка", , , , + Новый КвалификаторыСтроки(1000))); + Таблица.Колонки.Добавить("ЦелевоеВремя", Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(15, 2))); + Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл ЗаполнитьЗначенияСвойств(Таблица.Добавить(), КлючеваяОперация); КонецЦикла; - + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ - | Таблица.ИмяКлючевойОперацииСтарое КАК ИмяКлючевойОперацииСтарое, - | Таблица.ИмяКлючевойОперацииНовое КАК ИмяКлючевойОперацииНовое, - | Таблица.ЦелевоеВремя КАК ЦелевоеВремя - |ПОМЕСТИТЬ Таблица - |ИЗ - | &Таблица КАК Таблица - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | КлючевыеОперации.Ссылка КАК Ссылка, - | Таблица.ИмяКлючевойОперацииНовое КАК ИмяКлючевойОперацииНовое, - | ВЫБОР - | КОГДА Таблица.ЦелевоеВремя = 0 - | ТОГДА КлючевыеОперации.ЦелевоеВремя - | ИНАЧЕ Таблица.ЦелевоеВремя - | КОНЕЦ КАК ЦелевоеВремя - |ИЗ - | Справочник.КлючевыеОперации КАК КлючевыеОперации - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица КАК Таблица - | ПО КлючевыеОперации.Имя = Таблица.ИмяКлючевойОперацииСтарое - | - |УПОРЯДОЧИТЬ ПО - | Ссылка"; + | Таблица.ИмяКлючевойОперацииСтарое КАК ИмяКлючевойОперацииСтарое, + | Таблица.ИмяКлючевойОперацииНовое КАК ИмяКлючевойОперацииНовое, + | Таблица.ЦелевоеВремя КАК ЦелевоеВремя + |ПОМЕСТИТЬ Таблица + |ИЗ + | &Таблица КАК Таблица + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | КлючевыеОперации.Ссылка КАК Ссылка, + | Таблица.ИмяКлючевойОперацииНовое КАК ИмяКлючевойОперацииНовое, + | ВЫБОР + | КОГДА Таблица.ЦелевоеВремя = 0 + | ТОГДА КлючевыеОперации.ЦелевоеВремя + | ИНАЧЕ Таблица.ЦелевоеВремя + | КОНЕЦ КАК ЦелевоеВремя + |ИЗ + | Справочник.КлючевыеОперации КАК КлючевыеОперации + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица КАК Таблица + | ПО КлючевыеОперации.Имя = Таблица.ИмяКлючевойОперацииСтарое + | + |УПОРЯДОЧИТЬ ПО + | Ссылка"; Запрос.УстановитьПараметр("Таблица", Таблица); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Возврат; КонецЕсли; Выборка = РезультатЗапроса.Выбрать(); - + НачатьТранзакцию(); Попытка - + Блокировка = Новый БлокировкаДанных; Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл ЭлементБлокировки = Блокировка.Добавить("Справочник.КлючевыеОперации"); @@ -267,20 +273,20 @@ ЭлементБлокировки.УстановитьЗначение("Имя", КлючеваяОперация.ИмяКлючевойОперацииНовое); КонецЦикла; Блокировка.Заблокировать(); - - Пока Выборка.Следующий() Цикл + + Пока Выборка.Следующий() Цикл КлючеваяОперацияОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.КлючевыеОперации КлючеваяОперацияОбъект.Имя = Выборка.ИмяКлючевойОперацииНовое; - КлючеваяОперацияОбъект.Наименование = РазложитьСтрокуПоСловам(Выборка.ИмяКлючевойОперацииНовое); - КлючеваяОперацияОбъект.ЦелевоеВремя = Выборка.ЦелевоеВремя; - КлючеваяОперацияОбъект.Записать(); + КлючеваяОперацияОбъект.Наименование = РазложитьСтрокуПоСловам(Выборка.ИмяКлючевойОперацииНовое); + КлючеваяОперацияОбъект.ЦелевоеВремя = Выборка.ЦелевоеВремя; + КлючеваяОперацияОбъект.Записать(); КонецЦикла; ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; - + КонецПроцедуры // Начинает замер времени длительной ключевой операции. Закончить замер нужно явно вызовом @@ -300,8 +306,8 @@ // # ВесЗамера - Число - количество данных, обработанных в ходе выполнения действий. // # ВложенныеЗамеры - Соответствие - коллекция замеров вложенных шагов. // -Функция НачатьЗамерДлительнойОперации(КлючеваяОперация) Экспорт - +Функция НачатьЗамерДлительнойОперации(КлючеваяОперация) Экспорт + ОписаниеЗамера = Новый Соответствие; Если ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда ВремяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах(); @@ -311,9 +317,9 @@ ОписаниеЗамера.Вставить("ВесЗамера", 0); ОписаниеЗамера.Вставить("ВложенныеЗамеры", Новый Соответствие); КонецЕсли; - + Возврат ОписаниеЗамера; - + КонецФункции // Фиксирует замер вложенного шага длительной операции. @@ -324,13 +330,13 @@ // Комментарий - Строка - произвольное дополнительное описание замера. // Процедура ЗафиксироватьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанных, ИмяШага, Комментарий = "") Экспорт - - Если НЕ ЗначениеЗаполнено(ОписаниеЗамера) Тогда + + Если Не ЗначениеЗаполнено(ОписаниеЗамера) Тогда Возврат; КонецЕсли; - + ТекущееВремя = ТекущаяУниверсальнаяДатаВМиллисекундах(); - + Длительность = ТекущееВремя - ОписаниеЗамера["ВремяПоследнегоЗамера"]; КоличествоДанныхШага = ?(КоличествоДанных = 0, 1, КоличествоДанных); // Если вложенный замер выполняется первый раз, то инициализируем его. @@ -340,7 +346,7 @@ ШагВложенногоЗамера = ВложенныеЗамеры[ИмяШага]; ШагВложенногоЗамера.Вставить("Комментарий", Комментарий); ШагВложенногоЗамера.Вставить("ВремяНачала", ОписаниеЗамера["ВремяПоследнегоЗамера"]); - ШагВложенногоЗамера.Вставить("Длительность", 0.0); + ШагВложенногоЗамера.Вставить("Длительность", 0.0); ШагВложенногоЗамера.Вставить("ВесЗамера", 0); КонецЕсли; // Пишем данные вложенного замера. @@ -352,7 +358,7 @@ // Пишем данные длительного замера ОписаниеЗамера.Вставить("ВремяПоследнегоЗамера", ТекущееВремя); ОписаниеЗамера.Вставить("ВесЗамера", КоличествоДанныхШага + ОписаниеЗамера["ВесЗамера"]); - + КонецПроцедуры // Завершает замер длительной операции. @@ -364,11 +370,11 @@ // Комментарий - Строка - произвольное дополнительное описание замера. // Процедура ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанных, ИмяШага = "", Комментарий = "") Экспорт - - Если НЕ ЗначениеЗаполнено(ОписаниеЗамера) Тогда + + Если Не ЗначениеЗаполнено(ОписаниеЗамера) Тогда Возврат; КонецЕсли; - + Если ОписаниеЗамера["Клиентский"] = Истина Тогда Возврат; КонецЕсли; @@ -386,30 +392,32 @@ // Если не указано имя шага, но есть вложенные шаги, то имя по умолчанию "ПоследнийШаг". КоличествоДанныхШага = ?(КоличествоДанных = 0, 1, КоличествоДанных); - Если ЕстьВложенныеЗамеры Тогда - ЗафиксироватьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанныхШага, ?(ПустаяСтрока(ИмяШага), "ПоследнийШаг", ИмяШага), Комментарий); + Если ЕстьВложенныеЗамеры Тогда + ЗафиксироватьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанныхШага, ?(ПустаяСтрока(ИмяШага), + "ПоследнийШаг", ИмяШага), Комментарий); КонецЕсли; - - МассивЗамеровДляЗаписи = Новый Массив; - + + МассивЗамеровДляЗаписи = Новый Массив; + Для Каждого Замер Из ВложенныеЗамеры Цикл - ДанныеЗамера = Замер.Значение; + ДанныеЗамера = Замер.Значение; ВесВложенногоЗамера = ДанныеЗамера["ВесЗамера"]; ДлительностьВложенногоЗамера = ДанныеЗамера["Длительность"]; КлючеваяОперация = ИмяКлючевойОперации + "." + Замер.Ключ; - УдельноеВремя = ?(ВесВложенногоЗамера = 0, ДлительностьВложенногоЗамера, ДлительностьВложенногоЗамера / ВесВложенногоЗамера); + УдельноеВремя = ?(ВесВложенногоЗамера = 0, ДлительностьВложенногоЗамера, ДлительностьВложенногоЗамера + / ВесВложенногоЗамера); УдельноеВремяОбщее = УдельноеВремяОбщее + УдельноеВремя; - + ПараметрыЗамера = Новый Структура; ПараметрыЗамера.Вставить("КлючеваяОперация", КлючеваяОперация); - ПараметрыЗамера.Вставить("Длительность", УдельноеВремя/1000); + ПараметрыЗамера.Вставить("Длительность", УдельноеВремя / 1000); ПараметрыЗамера.Вставить("ДатаНачалаКлючевойОперации", ДанныеЗамера["ВремяНачала"]); ПараметрыЗамера.Вставить("ДатаОкончанияКлючевойОперации", ДанныеЗамера["ВремяОкончания"]); ПараметрыЗамера.Вставить("ВесЗамера", ВесВложенногоЗамера); ПараметрыЗамера.Вставить("Комментарий", ДанныеЗамера["Комментарий"]); ПараметрыЗамера.Вставить("Технологический", Ложь); ПараметрыЗамера.Вставить("Длительная", Истина); - + МассивЗамеровДляЗаписи.Добавить(ПараметрыЗамера); КонецЦикла; @@ -421,13 +429,13 @@ ПараметрыЗамера.Вставить("Комментарий", Комментарий); ПараметрыЗамера.Вставить("Технологический", Ложь); ПараметрыЗамера.Вставить("Длительная", Истина); - + Если ЕстьВложенныеЗамеры Тогда - ПараметрыЗамера.Вставить("Длительность", УдельноеВремяОбщее/1000); - ПараметрыЗамера.Вставить("ВесЗамера", ОписаниеЗамера["ВесЗамера"]); + ПараметрыЗамера.Вставить("Длительность", УдельноеВремяОбщее / 1000); + ПараметрыЗамера.Вставить("ВесЗамера", ОписаниеЗамера["ВесЗамера"]); Иначе // Если вложенных замеров не было, то фиксируется удельный замер. - ПараметрыЗамера.Вставить("Длительность", Длительность/1000/КоличествоДанныхШага); + ПараметрыЗамера.Вставить("Длительность", Длительность / 1000 / КоличествоДанныхШага); ПараметрыЗамера.Вставить("ВесЗамера", КоличествоДанныхШага); КонецЕсли; МассивЗамеровДляЗаписи.Добавить(ПараметрыЗамера); @@ -435,22 +443,22 @@ // Фиксация длительной ключевой операции. ПараметрыЗамера = Новый Структура; ПараметрыЗамера.Вставить("КлючеваяОперация", ИмяКлючевойОперации); - ПараметрыЗамера.Вставить("Длительность", (Длительность)/1000); + ПараметрыЗамера.Вставить("Длительность", (Длительность) / 1000); ПараметрыЗамера.Вставить("ДатаНачалаКлючевойОперации", ВремяНачалаЗамера); ПараметрыЗамера.Вставить("ДатаОкончанияКлючевойОперации", ТекущееВремя); Если ЕстьВложенныеЗамеры Тогда ПараметрыЗамера.Вставить("ВесЗамера", ОписаниеЗамера["ВесЗамера"]); Иначе - ПараметрыЗамера.Вставить("ВесЗамера", КоличествоДанныхШага); + ПараметрыЗамера.Вставить("ВесЗамера", КоличествоДанныхШага); КонецЕсли; ПараметрыЗамера.Вставить("Комментарий", Комментарий); ПараметрыЗамера.Вставить("Технологический", Ложь); ПараметрыЗамера.Вставить("Длительная", Ложь); - - МассивЗамеровДляЗаписи.Добавить(ПараметрыЗамера); - + + МассивЗамеровДляЗаписи.Добавить(ПараметрыЗамера); + ЗаписатьЗамерыВремени(МассивЗамеровДляЗаписи); - + КонецПроцедуры #Область УстаревшиеПроцедурыИФункции @@ -462,20 +470,20 @@ // КлючевыеОперации - Массив - ключевые операции, элемент массива - Структура("ИмяКлючевойОперации, Признак"). // Процедура УстановитьПризнакЗавершенияСОшибкой(КлючевыеОперации) Экспорт - + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 - | КлючевыеОперации.Ссылка КАК Ссылка - |ИЗ - | Справочник.КлючевыеОперации КАК КлючевыеОперации - |ГДЕ - | КлючевыеОперации.Имя = &Имя - |УПОРЯДОЧИТЬ ПО - | Ссылка"; - + | КлючевыеОперации.Ссылка КАК Ссылка + |ИЗ + | Справочник.КлючевыеОперации КАК КлючевыеОперации + |ГДЕ + | КлючевыеОперации.Имя = &Имя + |УПОРЯДОЧИТЬ ПО + | Ссылка"; + НачатьТранзакцию(); Попытка - + Блокировка = Новый БлокировкаДанных; Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл ЭлементБлокировки = Блокировка.Добавить("Справочник.КлючевыеОперации"); @@ -483,17 +491,17 @@ ЭлементБлокировки.УстановитьЗначение("Имя", КлючеваяОперация.ИмяКлючевойОперации); КонецЦикла; Блокировка.Заблокировать(); - + Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл Запрос.УстановитьПараметр("Имя", КлючеваяОперация.ИмяКлючевойОперации); РезультатЗапроса = Запрос.Выполнить(); // @skip-check query-in-loop - Устаревший код не подлежит исправлению. - Если НЕ РезультатЗапроса.Пустой() Тогда + Если Не РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); - Выборка.Следующий(); + Выборка.Следующий(); КлючеваяОперацияСсылка = Выборка.Ссылка; КлючеваяОперацияОбъект = КлючеваяОперацияСсылка.ПолучитьОбъект(); // СправочникОбъект.КлючевыеОперации КлючеваяОперацияОбъект.ЗавершенаСОшибкой = КлючеваяОперация.Признак; - + КлючеваяОперацияОбъект.Записать(); КонецЕсли; КонецЦикла; @@ -502,7 +510,7 @@ ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; - + КонецПроцедуры #КонецОбласти @@ -514,9 +522,9 @@ // Включает/выключает замеры производительности // Процедура ВключитьЗамерыПроизводительности(Параметр) Экспорт - + Константы.ВыполнятьЗамерыПроизводительности.Установить(Параметр); - + КонецПроцедуры #КонецОбласти @@ -534,38 +542,38 @@ // СправочникСсылка.КлючевыеОперации. // Функция СоздатьКлючевуюОперацию(ИмяКлючевойОперации, ЦелевоеВремя = 1, Длительная = Ложь) Экспорт - + УстановитьПривилегированныйРежим(Истина); - + НачатьТранзакцию(); - + Попытка Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("Справочник.КлючевыеОперации"); ЭлементБлокировки.УстановитьЗначение("Имя", ИмяКлючевойОперации); Блокировка.Заблокировать(); - + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 - | КлючевыеОперации.Ссылка КАК Ссылка - |ИЗ - | Справочник.КлючевыеОперации КАК КлючевыеОперации - |ГДЕ - | КлючевыеОперации.ИмяХеш = &ИмяХеш - | - |УПОРЯДОЧИТЬ ПО - | Ссылка"; - + | КлючевыеОперации.Ссылка КАК Ссылка + |ИЗ + | Справочник.КлючевыеОперации КАК КлючевыеОперации + |ГДЕ + | КлючевыеОперации.ИмяХеш = &ИмяХеш + | + |УПОРЯДОЧИТЬ ПО + | Ссылка"; + ХешMD5 = Новый ХешированиеДанных(ХешФункция.MD5); ХешMD5.Добавить(ИмяКлючевойОперации); ИмяХеш = ХешMD5.ХешСумма; - ИмяХеш = СтрЗаменить(Строка(ИмяХеш), " ", ""); - + ИмяХеш = СтрЗаменить(Строка(ИмяХеш), " ", ""); + Запрос.УстановитьПараметр("ИмяХеш", ИмяХеш); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Наименование = РазложитьСтрокуПоСловам(ИмяКлючевойОперации); - + НовыйЭлемент = ОценкаПроизводительностиСлужебный.СлужебныйЭлемент( Справочники.КлючевыеОперации); НовыйЭлемент.Имя = ИмяКлючевойОперации; @@ -580,15 +588,15 @@ Выборка.Следующий(); КлючеваяОперацияСсылка = Выборка.Ссылка; КонецЕсли; - + ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; - + Возврат КлючеваяОперацияСсылка; - + КонецФункции // Разбивает строку из нескольких объединенных слов в строку с отдельными словами. @@ -605,19 +613,18 @@ // РазложитьСтрокуПоСловам("одиндватри") - возвратит строку "одиндватри". // Функция РазложитьСтрокуПоСловам(Знач Строка) - + МассивСлов = Новый Массив; - + ПозицииСлов = Новый Массив; Для ПозицияСимвола = 1 По СтрДлина(Строка) Цикл ТекСимвол = Сред(Строка, ПозицияСимвола, 1); - Если ТекСимвол = ВРег(ТекСимвол) - И (ОценкаПроизводительностиКлиентСервер.ТолькоКириллицаВСтроке(ТекСимвол) - Или ОценкаПроизводительностиКлиентСервер.ТолькоЛатиницаВСтроке(ТекСимвол)) Тогда + Если ТекСимвол = ВРег(ТекСимвол) И (ОценкаПроизводительностиКлиентСервер.ТолькоКириллицаВСтроке(ТекСимвол) + Или ОценкаПроизводительностиКлиентСервер.ТолькоЛатиницаВСтроке(ТекСимвол)) Тогда ПозицииСлов.Добавить(ПозицияСимвола); КонецЕсли; КонецЦикла; - + Если ПозицииСлов.Количество() > 0 Тогда ПредыдущаяПозиция = 0; Для Каждого Позиция Из ПозицииСлов Цикл @@ -629,25 +636,25 @@ КонецЕсли; ПредыдущаяПозиция = Позиция; КонецЦикла; - + Подстрока = Сред(Строка, Позиция); Если Не ПустаяСтрока(Подстрока) Тогда МассивСлов.Добавить(СокрЛП(Подстрока)); КонецЕсли; КонецЕсли; - + Для Индекс = 1 По МассивСлов.ВГраница() Цикл МассивСлов[Индекс] = НРег(МассивСлов[Индекс]); КонецЦикла; - + Если МассивСлов.Количество() <> 0 Тогда Результат = СтрСоединить(МассивСлов, " "); Иначе Результат = Строка; КонецЕсли; - + Возврат Результат; - + КонецФункции // Текущее значение периода записи результатов замеров на сервере @@ -669,7 +676,7 @@ // ДатаНачалаКлючевойОперации - Дата. // Процедура ЗафиксироватьДлительностьКлючевойОперации(Параметры) - + КлючеваяОперация = Параметры.КлючеваяОперация; Длительность = Параметры.Длительность; ДатаНачалаКлючевойОперации = Параметры.ДатаНачалаКлючевойОперации; @@ -679,54 +686,53 @@ Технологический = Параметры.Технологический; Длительная = Параметры.Длительная; ВыполненСОшибкой = Параметры.ВыполненСОшибкой; - + Если Не ЗначениеЗаполнено(ДатаНачалаКлючевойОперации) Тогда - ЗаписьЖурналаРегистрации(НСтр("ru = 'Невозможно зафиксировать замер с пустой датой начала'", - ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация,,,Строка(КлючеваяОперация)); - + ЗаписьЖурналаРегистрации(НСтр("ru = 'Невозможно зафиксировать замер с пустой датой начала'", + ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Информация,,, Строка( + КлючеваяОперация)); + Возврат; КонецЕсли; - + УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); - + Если ТипЗнч(КлючеваяОперация) = Тип("Строка") Тогда - КлючеваяОперацияСсылка = ОценкаПроизводительностиПовтИсп.ПолучитьКлючевуюОперациюПоИмени(КлючеваяОперация, Длительная); + КлючеваяОперацияСсылка = ОценкаПроизводительностиПовтИсп.ПолучитьКлючевуюОперациюПоИмени(КлючеваяОперация, + Длительная); Иначе КлючеваяОперацияСсылка = КлючеваяОперация; КонецЕсли; - + Если Комментарий = Неопределено Тогда Комментарий = ПараметрыСеанса.КомментарийЗамераВремени; Иначе - ЧтениеJSON = Новый ЧтениеJSON(); - ЧтениеJSON.УстановитьСтроку(ПараметрыСеанса.КомментарийЗамераВремени); - КомментарийПоУмолчанию = ПрочитатьJSON(ЧтениеJSON, Истина); + КомментарийПоУмолчанию = ОбщегоНазначения.JSONВЗначение(ПараметрыСеанса.КомментарийЗамераВремени); КомментарийПоУмолчанию.Вставить("ДопИнф", Комментарий); - + ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет)); ЗаписатьJSON(ЗаписьJSON, КомментарийПоУмолчанию); Комментарий = ЗаписьJSON.Закрыть(); КонецЕсли; - - Если НЕ Технологический Тогда + + Если Не Технологический Тогда Запись = РегистрыСведений.ЗамерыВремени.СоздатьМенеджерЗаписи(); Иначе Запись = РегистрыСведений.ЗамерыВремениТехнологические.СоздатьМенеджерЗаписи(); КонецЕсли; - + Запись.КлючеваяОперация = КлючеваяОперацияСсылка; // Получаем дату в UTC Запись.ДатаНачалаЗамера = ДатаНачалаКлючевойОперации; Запись.НомерСеанса = НомерСеансаИнформационнойБазы(); - + Запись.ВремяВыполнения = ?(Длительность = 0, 0.001, Длительность); // Длительность меньше разрешения таймера Запись.ВесЗамера = ВесЗамера; - - Запись.ДатаЗаписи = Дата(1,1,1) + ТекущаяУниверсальнаяДатаВМиллисекундах()/1000; + + Запись.ДатаЗаписи = Дата(1, 1, 1) + ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000; Запись.ДатаЗаписиНачалоЧаса = НачалоЧаса(Запись.ДатаЗаписи); Если ДатаОкончанияКлючевойОперации <> Неопределено Тогда // Получаем дату в UTC @@ -735,12 +741,12 @@ Запись.Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); Запись.ДатаЗаписиЛокальная = ТекущаяДатаСеанса(); Запись.Комментарий = Комментарий; - Если НЕ Технологический Тогда + Если Не Технологический Тогда Запись.ВыполненСОшибкой = ВыполненСОшибкой; КонецЕсли; - + Запись.Записать(); - + КонецПроцедуры // Записывает переданный массив замеров. @@ -755,61 +761,60 @@ // Длительная - признак, что длительность замера рассчитана на единицу веса. // Процедура ЗаписатьЗамерыВремени(МассивЗамеров) - + Если МонопольныйРежим() Тогда Возврат; КонецЕсли; - + УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); - + НаборЗаписей = РегистрыСведений.ЗамерыВремени.СоздатьНаборЗаписей(); НомерСеанса = НомерСеансаИнформационнойБазы(); - ДатаЗаписи = Дата(1,1,1) + ТекущаяУниверсальнаяДатаВМиллисекундах()/1000; + ДатаЗаписи = Дата(1, 1, 1) + ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000; ДатаЗаписиНачалоЧаса = НачалоЧаса(ДатаЗаписи); Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); ДатаЗаписиЛокальная = ТекущаяДатаСеанса(); - + Для Каждого Замер Из МассивЗамеров Цикл - + Если Не ЗначениеЗаполнено(Замер.ДатаНачалаКлючевойОперации) Тогда - ЗаписьЖурналаРегистрации(НСтр("ru = 'Невозможно зафиксировать замер с пустой датой начала'", - ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация,,,Строка(Замер.КлючеваяОперация)); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Невозможно зафиксировать замер с пустой датой начала'", + ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Информация,,, Строка( + Замер.КлючеваяОперация)); Возврат; КонецЕсли; - + Если ТипЗнч(Замер.КлючеваяОперация) = Тип("Строка") Тогда - КлючеваяОперацияСсылка = ОценкаПроизводительностиПовтИсп.ПолучитьКлючевуюОперациюПоИмени(Замер.КлючеваяОперация, Замер.Длительная); + КлючеваяОперацияСсылка = ОценкаПроизводительностиПовтИсп.ПолучитьКлючевуюОперациюПоИмени( + Замер.КлючеваяОперация, Замер.Длительная); Иначе КлючеваяОперацияСсылка = Замер.КлючеваяОперация; КонецЕсли; - + Если Не ЗначениеЗаполнено(Замер.Комментарий) Тогда Комментарий = ПараметрыСеанса.КомментарийЗамераВремени; Иначе - ЧтениеJSON = Новый ЧтениеJSON(); - ЧтениеJSON.УстановитьСтроку(ПараметрыСеанса.КомментарийЗамераВремени); - КомментарийПоУмолчанию = ПрочитатьJSON(ЧтениеJSON, Истина); + КомментарийПоУмолчанию = ОбщегоНазначения.JSONВЗначение(ПараметрыСеанса.КомментарийЗамераВремени); КомментарийПоУмолчанию.Вставить("ДопИнф", Замер.Комментарий); - + ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет)); ЗаписатьJSON(ЗаписьJSON, КомментарийПоУмолчанию); Комментарий = ЗаписьJSON.Закрыть(); КонецЕсли; - - Запись = НаборЗаписей.Добавить(); - + + Запись = НаборЗаписей.Добавить(); + Запись.КлючеваяОперация = КлючеваяОперацияСсылка; // Получаем дату в UTC Запись.ДатаНачалаЗамера = Замер.ДатаНачалаКлючевойОперации; Запись.НомерСеанса = НомерСеанса; - + Запись.ВремяВыполнения = ?(Замер.Длительность = 0, 0.001, Замер.Длительность); // Длительность меньше разрешения таймера Запись.ВесЗамера = Замер.ВесЗамера; - + Запись.ДатаЗаписи = ДатаЗаписи; Запись.ДатаЗаписиНачалоЧаса = ДатаЗаписиНачалоЧаса; Если ЗначениеЗаполнено(Замер.ДатаОкончанияКлючевойОперации) Тогда @@ -819,22 +824,22 @@ Запись.Пользователь = Пользователь; Запись.ДатаЗаписиЛокальная = ДатаЗаписиЛокальная; Запись.Комментарий = Комментарий; - + КонецЦикла; - + Если НаборЗаписей.Количество() > 0 Тогда Попытка НаборЗаписей.Записать(Ложь); Исключение - ЗаписьЖурналаРегистрации(НСтр("ru = 'Оценка производительности.Ошибка сохранения замеров'", - ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,,ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Оценка производительности.Ошибка сохранения замеров'", + ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; - + УстановитьПривилегированныйРежим(Ложь); УстановитьОтключениеБезопасногоРежима(Ложь); - + КонецПроцедуры // Процедура обработки регламентного задания по выгрузке данных @@ -844,147 +849,150 @@ // ДопПараметры - Структура - дополнительные параметры. // Процедура ЭкспортОценкиПроизводительности(КаталогиЭкспорта, ДопПараметры = Неопределено) Экспорт - + Если ОценкаПроизводительностиСлужебный.ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность") Тогда МодульОбщегоНазначения = ОценкаПроизводительностиСлужебный.ОбщийМодуль("ОбщегоНазначения"); - МодульОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ЭкспортОценкиПроизводительности); + МодульОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания( + Метаданные.РегламентныеЗадания.ЭкспортОценкиПроизводительности); КонецЕсли; // Если система отключена, то выгрузку данных делать не будем. - Если ДопПараметры = Неопределено И Не ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда - Возврат; + Если ДопПараметры = Неопределено + И Не ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда + Возврат; КонецЕсли; - + Запрос = Новый Запрос; - Запрос.Текст = + Запрос.Текст = "ВЫБРАТЬ | МАКСИМУМ(Замеры.ДатаЗаписи) КАК ДатаЗамера |ИЗ | РегистрСведений.ЗамерыВремени КАК Замеры |ГДЕ | Замеры.ДатаЗаписи <= &ТекДата"; - + Если ДопПараметры = Неопределено Тогда Запрос.УстановитьПараметр("ТекДата", ТекущаяУниверсальнаяДата() - 1); Иначе Запрос.УстановитьПараметр("ТекДата", ДопПараметры.ДатаОкончания); КонецЕсли; - + Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() И Выборка.ДатаЗамера <> Null Тогда ВерхняяГраньДатыЗамеров = Выборка.ДатаЗамера; - Иначе - Возврат; + Иначе + Возврат; КонецЕсли; МассивыЗамеров = ЗамерыСРазделениемПоКлючевымОперациям(ВерхняяГраньДатыЗамеров, ДопПараметры); - + ПорядковыйНомерФайла = 0; ТекДата = ТекущаяУниверсальнаяДатаВМиллисекундах(); Если ДопПараметры <> Неопределено Тогда ВременныйКаталог = ПолучитьИмяВременногоФайла(); СоздатьКаталог(ВременныйКаталог); - + КаталогиЭкспорта = Новый Структура("ЛокальныйКаталогЭкспорта, FTPКаталогЭкспорта", Новый Массив, Новый Массив); КаталогиЭкспорта.ЛокальныйКаталогЭкспорта.Добавить(Истина); КаталогиЭкспорта.ЛокальныйКаталогЭкспорта.Добавить(ВременныйКаталог); КаталогиЭкспорта.FTPКаталогЭкспорта.Добавить(Ложь); КаталогиЭкспорта.FTPКаталогЭкспорта.Добавить(""); КонецЕсли; - + Для Каждого МассивЗамеров Из МассивыЗамеров Цикл ПорядковыйНомерФайла = ПорядковыйНомерФайла + 1; ВыгрузитьРезультаты(КаталогиЭкспорта, МассивЗамеров, ТекДата, ПорядковыйНомерФайла); КонецЦикла; - + Если ДопПараметры <> Неопределено Тогда ФайлыДанных = НайтиФайлы(ВременныйКаталог, "*.xml"); - ЗаписьZipФайла = Новый ЗаписьZipФайла(); + ЗаписьZipФайла = Новый ЗаписьZipФайла; ИмяАрхива = ПолучитьИмяВременногоФайла("zip"); - ЗаписьZipФайла.Открыть(ИмяАрхива,,,МетодСжатияZIP.Сжатие); + ЗаписьZipФайла.Открыть(ИмяАрхива,,, МетодСжатияZIP.Сжатие); Для Каждого ФайлДанных Из ФайлыДанных Цикл ЗаписьZipФайла.Добавить(ФайлДанных.ПолноеИмя); КонецЦикла; - ЗаписьZipФайла.Записать(); - + ЗаписьZipФайла.Записать(); + ДвоичныеДанныеАрхив = Новый ДвоичныеДанные(ИмяАрхива); ПоместитьВоВременноеХранилище(ДвоичныеДанныеАрхив, ДопПараметры.АдресХранилища); - + УдалитьФайлы(ВременныйКаталог); УдалитьФайлы(ИмяАрхива); КонецЕсли; - + КонецПроцедуры // Процедура обработки регламентного задания по очистке регистров замеров Процедура ОчиститьРегистрыЗамерыВремени() Экспорт - + Если ОценкаПроизводительностиСлужебный.ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность") Тогда МодульОбщегоНазначения = ОценкаПроизводительностиСлужебный.ОбщийМодуль("ОбщегоНазначения"); - МодульОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ЭкспортОценкиПроизводительности); + МодульОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания( + Метаданные.РегламентныеЗадания.ЭкспортОценкиПроизводительности); КонецЕсли; - - ГраницаУдаления = НачалоДня(ТекущаяУниверсальнаяДата() - 86400*Константы.ПериодХраненияЗамеров.Получить()); - + + ГраницаУдаления = НачалоДня(ТекущаяУниверсальнаяДата() - 86400 * Константы.ПериодХраненияЗамеров.Получить()); + ЗапросЗамерыВремени = Новый Запрос; ЗапросЗамерыВремени.Текст = " - |ВЫБРАТЬ - | МИНИМУМ(ДатаЗаписиНачалоЧаса) КАК ДатаЗаписиНачалоЧаса - |ИЗ - | РегистрСведений.ЗамерыВремени - |ГДЕ - | ДатаЗаписиНачалоЧаса < &ГраницаУдаления - |"; + |ВЫБРАТЬ + | МИНИМУМ(ДатаЗаписиНачалоЧаса) КАК ДатаЗаписиНачалоЧаса + |ИЗ + | РегистрСведений.ЗамерыВремени + |ГДЕ + | ДатаЗаписиНачалоЧаса < &ГраницаУдаления + |"; ЗапросЗамерыВремени.УстановитьПараметр("ГраницаУдаления", ГраницаУдаления); - + ЗапросЗамерыВремениТехнологические = Новый Запрос; ЗапросЗамерыВремениТехнологические.Текст = " - |ВЫБРАТЬ - | МИНИМУМ(ДатаЗаписиНачалоЧаса) КАК ДатаЗаписиНачалоЧаса - |ИЗ - | РегистрСведений.ЗамерыВремениТехнологические - |ГДЕ - | ДатаЗаписиНачалоЧаса < &ГраницаУдаления - |"; + |ВЫБРАТЬ + | МИНИМУМ(ДатаЗаписиНачалоЧаса) КАК ДатаЗаписиНачалоЧаса + |ИЗ + | РегистрСведений.ЗамерыВремениТехнологические + |ГДЕ + | ДатаЗаписиНачалоЧаса < &ГраницаУдаления + |"; ЗапросЗамерыВремениТехнологические.УстановитьПараметр("ГраницаУдаления", ГраницаУдаления); - + НаборЗаписей = РегистрыСведений.ЗамерыВремени.СоздатьНаборЗаписей(); НаборЗаписейТехнологические = РегистрыСведений.ЗамерыВремениТехнологические.СоздатьНаборЗаписей(); - + ЕстьУдаление = Истина; ЕстьУдалениеТехнологические = Истина; - Пока ЕстьУдаление ИЛИ ЕстьУдалениеТехнологические Цикл - + Пока ЕстьУдаление Или ЕстьУдалениеТехнологические Цикл + Если ЕстьУдаление Тогда ЕстьУдаление = Ложь; - + Результат = ЗапросЗамерыВремени.Выполнить(); // @skip-check query-in-loop - порционная обработка данных. Выборка = Результат.Выбрать(); Выборка.Следующий(); ДатаЗаписиНачалоЧаса = Выборка.ДатаЗаписиНачалоЧаса; - - Если НЕ ДатаЗаписиНачалоЧаса = Null Тогда + + Если Не ДатаЗаписиНачалоЧаса = Null Тогда НаборЗаписей.Отбор.ДатаЗаписиНачалоЧаса.Установить(ДатаЗаписиНачалоЧаса); НаборЗаписей.Записать(Истина); ЕстьУдаление = Истина; - КонецЕсли; + КонецЕсли; КонецЕсли; - + Если ЕстьУдалениеТехнологические Тогда ЕстьУдалениеТехнологические = Ложь; Результат = ЗапросЗамерыВремениТехнологические.Выполнить(); // @skip-check query-in-loop - порционная обработка данных. Выборка = Результат.Выбрать(); Выборка.Следующий(); ДатаЗаписиНачалоЧаса = Выборка.ДатаЗаписиНачалоЧаса; - Если НЕ ДатаЗаписиНачалоЧаса = Null Тогда + Если Не ДатаЗаписиНачалоЧаса = Null Тогда НаборЗаписейТехнологические.Отбор.ДатаЗаписиНачалоЧаса.Установить(ДатаЗаписиНачалоЧаса); НаборЗаписейТехнологические.Записать(Истина); ЕстьУдалениеТехнологические = Истина; КонецЕсли; КонецЕсли; - + КонецЦикла; - + КонецПроцедуры // Регламентное задание экспорта @@ -994,48 +1002,49 @@ // * ДатаОкончания - Дата - дата окончания замеров. // Функция ЗамерыСРазделениемПоКлючевымОперациям(ВерхняяГраньДатыЗамеров, ДопПараметры = Неопределено) - + Запрос = Новый Запрос; - + УровниПроизводительностиЧисло = Новый Соответствие; УровниПроизводительностиЧисло.Вставить(Перечисления.УровниПроизводительности.Отлично, 1); УровниПроизводительностиЧисло.Вставить(Перечисления.УровниПроизводительности.Хорошо, 0.94); УровниПроизводительностиЧисло.Вставить(Перечисления.УровниПроизводительности.Плохо, 0.85); УровниПроизводительностиЧисло.Вставить(Перечисления.УровниПроизводительности.ОченьПлохо, 0.70); УровниПроизводительностиЧисло.Вставить(Перечисления.УровниПроизводительности.Неприемлемо, 0.50); - + Если ДопПараметры = Неопределено Тогда ТекстЗапроса = ЗамерыВремениБезОтбораПоПрофилю(); - Запрос.УстановитьПараметр("ДатаПоследнейВыгрузки", Константы.ДатаПоследнейВыгрузкиЗамеровПроизводительностиUTC.Получить()); + Запрос.УстановитьПараметр("ДатаПоследнейВыгрузки", + Константы.ДатаПоследнейВыгрузкиЗамеровПроизводительностиUTC.Получить()); Запрос.УстановитьПараметр("ВерхняяГраньДатыЗамеров", ВерхняяГраньДатыЗамеров); Константы.ДатаПоследнейВыгрузкиЗамеровПроизводительностиUTC.Установить(ВерхняяГраньДатыЗамеров); Иначе Если ЗначениеЗаполнено(ДопПараметры.Профиль) Тогда ТекстЗапроса = ЗамерыВремениСОтборомПоПрофилю(); - Запрос.УстановитьПараметр("Профиль", ДопПараметры.Профиль); + Запрос.УстановитьПараметр("Профиль", ДопПараметры.Профиль); Иначе ТекстЗапроса = ЗамерыВремениБезОтбораПоПрофилю(); КонецЕсли; - Запрос.УстановитьПараметр("ДатаПоследнейВыгрузки", ДопПараметры.ДатаНачала); + Запрос.УстановитьПараметр("ДатаПоследнейВыгрузки", ДопПараметры.ДатаНачала); Запрос.УстановитьПараметр("ВерхняяГраньДатыЗамеров", ДопПараметры.ДатаОкончания); КонецЕсли; - + Запрос.Текст = ТекстЗапроса; - + Результат = Запрос.Выполнить(); - + КоличествоЗамеровВФайле = Константы.КоличествоЗамеровВПакетеЭкспорта.Получить(); КоличествоЗамеровВФайле = ?(КоличествоЗамеровВФайле <> 0, КоличествоЗамеровВФайле, 1000); - + ЗамерыПоФайлам = Новый Массив; - + ЗамерыСРазделением = Новый Соответствие; ТекКоличествоЗамеров = 0; - + Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл КлючеваяОперация = ЗамерыСРазделением.Получить(Выборка.КлючеваяОперация); - + Если КлючеваяОперация = Неопределено Тогда КлючеваяОперация = Новый Соответствие; КлючеваяОперация.Вставить("uid", Строка(Выборка.КлючеваяОперация.УникальныйИдентификатор())); @@ -1044,21 +1053,22 @@ КлючеваяОперация.Вставить("comments", Новый Соответствие); КлючеваяОперация.Вставить("priority", Выборка.КлючеваяОперацияПриоритет); КлючеваяОперация.Вставить("targetValue", Выборка.КлючеваяОперацияЦелевоеВремя); - КлючеваяОперация.Вставить("minimalApdexValue", УровниПроизводительностиЧисло[Выборка.КлючеваяОперация.МинимальноДопустимыйУровень]); + КлючеваяОперация.Вставить("minimalApdexValue", + УровниПроизводительностиЧисло[Выборка.КлючеваяОперация.МинимальноДопустимыйУровень]); КлючеваяОперация.Вставить("long", Выборка.Длительная); - + ЗамерыСРазделением.Вставить(Выборка.КлючеваяОперация, КлючеваяОперация); КонецЕсли; - + Комментарий = ЗамерыСРазделением[Выборка.КлючеваяОперация]["comments"][Выборка.Комментарий]; Если Комментарий = Неопределено Тогда Комментарий = Новый Соответствие; Комментарий.Вставить("Замеры", Новый Массив); КлючеваяОперация["comments"].Вставить(Выборка.Комментарий, Комментарий); КонецЕсли; - + КлючеваяОперацияЗамеры = Комментарий.Получить("Замеры"); // Массив - + ЗамерСтруктура = Новый Структура; ЗамерСтруктура.Вставить("value", Выборка.ВремяВыполнения); ЗамерСтруктура.Вставить("weight", Выборка.ВесЗамера); @@ -1068,11 +1078,11 @@ ЗамерСтруктура.Вставить("sessionNumber", Выборка.НомерСеанса); ЗамерСтруктура.Вставить("comment", Выборка.Комментарий); ЗамерСтруктура.Вставить("runningError", Выборка.ВыполненСОшибкой); - + КлючеваяОперацияЗамеры.Добавить(ЗамерСтруктура); - + ТекКоличествоЗамеров = ТекКоличествоЗамеров + 1; - + Если ТекКоличествоЗамеров = КоличествоЗамеровВФайле Тогда ЗамерыПоФайлам.Добавить(ЗамерыСРазделением); ЗамерыСРазделением = Новый Соответствие; @@ -1081,7 +1091,7 @@ КонецЕсли; КонецЦикла; ЗамерыПоФайлам.Добавить(ЗамерыСРазделением); - + Возврат ЗамерыПоФайлам; КонецФункции @@ -1093,10 +1103,10 @@ // МассивыЗамеров - структура со значением типа Массив. // Процедура ВыгрузитьРезультаты(КаталогиЭкспорта, МассивыЗамеров, ТекДата, ПорядковыйНомерФайла) - + ПространствоИмен = "www.v8.1c.ru/ssl/performace-assessment/apdexExport/1.0.0.4"; ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".xml"); - + ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ИмяВременногоФайла, "UTF-8"); ЗаписьXML.ЗаписатьОбъявлениеXML(); @@ -1104,16 +1114,16 @@ ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("prf", ПространствоИмен); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xs", "http://www.w3.org/2001/XMLSchema"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); - + ЗаписьXML.ЗаписатьАтрибут("version", ПространствоИмен, "1.0.0.4"); - ЗаписьXML.ЗаписатьАтрибут("period", ПространствоИмен, Строка(Дата(1,1,1) + ТекДата/1000)); - + ЗаписьXML.ЗаписатьАтрибут("period", ПространствоИмен, Строка(Дата(1, 1, 1) + ТекДата / 1000)); + ТипКлючеваяОперация = ФабрикаXDTO.Тип(ПространствоИмен, "KeyOperation"); ТипИзмерение = ФабрикаXDTO.Тип(ПространствоИмен, "Measurement"); - + Для Каждого ТекЗамер Из МассивыЗамеров Цикл КлючеваяОперацияЗамеры = ТекЗамер.Значение; - + Для Каждого Комментарий Из КлючеваяОперацияЗамеры["comments"] Цикл КлючеваяОперация = ФабрикаXDTO.Создать(ТипКлючеваяОперация); // см. XDTOПакет.ApdexExport.KeyOperation КлючеваяОперация.name = КлючеваяОперацияЗамеры["name"]; @@ -1123,7 +1133,7 @@ КлючеваяОперация.priority = КлючеваяОперацияЗамеры["priority"]; КлючеваяОперация.targetValue = КлючеваяОперацияЗамеры["targetValue"]; КлючеваяОперация.uid = КлючеваяОперацияЗамеры["uid"]; - + Замеры = Комментарий.Значение["Замеры"]; Для Каждого Замер Из Замеры Цикл ЗамерXML = ФабрикаXDTO.Создать(ТипИзмерение); @@ -1134,99 +1144,100 @@ ЗамерXML.tSaveUTC = Замер.tSaveUTC; ЗамерXML.sessionNumber = Замер.sessionNumber; ЗамерXML.runningError = Замер.runningError; - + КлючеваяОперация.measurement.Добавить(ЗамерXML); КонецЦикла; - + ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, КлючеваяОперация); КонецЦикла; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); - + Для Каждого КлючВыполнятьКаталог Из КаталогиЭкспорта Цикл ВыполнятьКаталог = КлючВыполнятьКаталог.Значение; Выполнять = ВыполнятьКаталог[0]; - Если НЕ Выполнять Тогда + Если Не Выполнять Тогда Продолжить; КонецЕсли; - + КаталогЭкспорта = ВыполнятьКаталог[1]; Ключ = КлючВыполнятьКаталог.Ключ; Если Ключ = ОценкаПроизводительностиКлиентСервер.ЛокальныйКаталогЭкспортаКлючЗадания() Тогда СоздатьКаталог(КаталогЭкспорта); КонецЕсли; - - КопироватьФайл(ИмяВременногоФайла, ПолноеИмяФайлаЭкспорта(КаталогЭкспорта, ТекДата, ПорядковыйНомерФайла, ".xml")); + + КопироватьФайл(ИмяВременногоФайла, ПолноеИмяФайлаЭкспорта(КаталогЭкспорта, ТекДата, ПорядковыйНомерФайла, + ".xml")); КонецЦикла; УдалитьФайлы(ИмяВременногоФайла); КонецПроцедуры Функция ЗамерыВремениБезОтбораПоПрофилю() Возврат " - |ВЫБРАТЬ - | Замеры.КлючеваяОперация КАК КлючеваяОперация, - | Замеры.ДатаНачалаЗамера КАК ДатаНачалаЗамера, - | Замеры.ВремяВыполнения КАК ВремяВыполнения, - | Замеры.ВесЗамера КАК ВесЗамера, - | Замеры.Пользователь КАК Пользователь, - | Замеры.ДатаЗаписи КАК ДатаЗаписи, - | Замеры.НомерСеанса КАК НомерСеанса, - | Замеры.Комментарий КАК Комментарий, - | КлючевыеОперации.Наименование КАК КлючеваяОперацияСтрока, - | КлючевыеОперации.Имя КАК КлючеваяОперацияИмя, - | КлючевыеОперации.Приоритет КАК КлючеваяОперацияПриоритет, - | КлючевыеОперации.ЦелевоеВремя КАК КлючеваяОперацияЦелевоеВремя, - | КлючевыеОперации.МинимальноДопустимыйУровень КАК МинимальноДопустимыйУровень, - | Замеры.ВыполненСОшибкой КАК ВыполненСОшибкой, - | КлючевыеОперации.Длительная КАК Длительная - |ИЗ - | РегистрСведений.ЗамерыВремени КАК Замеры - |ВНУТРЕННЕЕ СОЕДИНЕНИЕ - | Справочник.КлючевыеОперации КАК КлючевыеОперации - |ПО - | КлючевыеОперации.Ссылка = Замеры.КлючеваяОперация - |ГДЕ - | Замеры.ДатаЗаписи > &ДатаПоследнейВыгрузки - | И Замеры.ДатаЗаписи <= &ВерхняяГраньДатыЗамеров - |УПОРЯДОЧИТЬ ПО - | Замеры.КлючеваяОперация, - | Замеры.Комментарий - |"; + |ВЫБРАТЬ + | Замеры.КлючеваяОперация КАК КлючеваяОперация, + | Замеры.ДатаНачалаЗамера КАК ДатаНачалаЗамера, + | Замеры.ВремяВыполнения КАК ВремяВыполнения, + | Замеры.ВесЗамера КАК ВесЗамера, + | Замеры.Пользователь КАК Пользователь, + | Замеры.ДатаЗаписи КАК ДатаЗаписи, + | Замеры.НомерСеанса КАК НомерСеанса, + | Замеры.Комментарий КАК Комментарий, + | КлючевыеОперации.Наименование КАК КлючеваяОперацияСтрока, + | КлючевыеОперации.Имя КАК КлючеваяОперацияИмя, + | КлючевыеОперации.Приоритет КАК КлючеваяОперацияПриоритет, + | КлючевыеОперации.ЦелевоеВремя КАК КлючеваяОперацияЦелевоеВремя, + | КлючевыеОперации.МинимальноДопустимыйУровень КАК МинимальноДопустимыйУровень, + | Замеры.ВыполненСОшибкой КАК ВыполненСОшибкой, + | КлючевыеОперации.Длительная КАК Длительная + |ИЗ + | РегистрСведений.ЗамерыВремени КАК Замеры + |ВНУТРЕННЕЕ СОЕДИНЕНИЕ + | Справочник.КлючевыеОперации КАК КлючевыеОперации + |ПО + | КлючевыеОперации.Ссылка = Замеры.КлючеваяОперация + |ГДЕ + | Замеры.ДатаЗаписи > &ДатаПоследнейВыгрузки + | И Замеры.ДатаЗаписи <= &ВерхняяГраньДатыЗамеров + |УПОРЯДОЧИТЬ ПО + | Замеры.КлючеваяОперация, + | Замеры.Комментарий + |"; КонецФункции Функция ЗамерыВремениСОтборомПоПрофилю() Возврат " - |ВЫБРАТЬ - | Замеры.КлючеваяОперация КАК КлючеваяОперация, - | Замеры.ДатаНачалаЗамера КАК ДатаНачалаЗамера, - | Замеры.ВремяВыполнения КАК ВремяВыполнения, - | Замеры.ВесЗамера КАК ВесЗамера, - | Замеры.Пользователь КАК Пользователь, - | Замеры.ДатаЗаписи КАК ДатаЗаписи, - | Замеры.НомерСеанса КАК НомерСеанса, - | Замеры.Комментарий КАК Комментарий, - | КлючевыеОперации.КлючеваяОперация.Наименование КАК КлючеваяОперацияСтрока, - | КлючевыеОперации.КлючеваяОперация.Имя КАК КлючеваяОперацияИмя, - | КлючевыеОперации.Приоритет КАК КлючеваяОперацияПриоритет, - | КлючевыеОперации.ЦелевоеВремя КАК КлючеваяОперацияЦелевоеВремя, - | КлючевыеОперации.КлючеваяОперация.МинимальноДопустимыйУровень КАК МинимальноДопустимыйУровень, - | Замеры.ВыполненСОшибкой КАК ВыполненСОшибкой, - | КлючевыеОперации.КлючеваяОперация.Длительная КАК Длительная - |ИЗ - | РегистрСведений.ЗамерыВремени КАК Замеры - |ВНУТРЕННЕЕ СОЕДИНЕНИЕ - | Справочник.ПрофилиКлючевыхОпераций.КлючевыеОперацииПрофиля КАК КлючевыеОперации - |ПО - | КлючевыеОперации.КлючеваяОперация = Замеры.КлючеваяОперация - | И КлючевыеОперации.Ссылка = &Профиль - |ГДЕ - | Замеры.ДатаЗаписи > &ДатаПоследнейВыгрузки - | И Замеры.ДатаЗаписи <= &ВерхняяГраньДатыЗамеров - |УПОРЯДОЧИТЬ ПО - | Замеры.КлючеваяОперация, - | Замеры.Комментарий - |"; + |ВЫБРАТЬ + | Замеры.КлючеваяОперация КАК КлючеваяОперация, + | Замеры.ДатаНачалаЗамера КАК ДатаНачалаЗамера, + | Замеры.ВремяВыполнения КАК ВремяВыполнения, + | Замеры.ВесЗамера КАК ВесЗамера, + | Замеры.Пользователь КАК Пользователь, + | Замеры.ДатаЗаписи КАК ДатаЗаписи, + | Замеры.НомерСеанса КАК НомерСеанса, + | Замеры.Комментарий КАК Комментарий, + | КлючевыеОперации.КлючеваяОперация.Наименование КАК КлючеваяОперацияСтрока, + | КлючевыеОперации.КлючеваяОперация.Имя КАК КлючеваяОперацияИмя, + | КлючевыеОперации.Приоритет КАК КлючеваяОперацияПриоритет, + | КлючевыеОперации.ЦелевоеВремя КАК КлючеваяОперацияЦелевоеВремя, + | КлючевыеОперации.КлючеваяОперация.МинимальноДопустимыйУровень КАК МинимальноДопустимыйУровень, + | Замеры.ВыполненСОшибкой КАК ВыполненСОшибкой, + | КлючевыеОперации.КлючеваяОперация.Длительная КАК Длительная + |ИЗ + | РегистрСведений.ЗамерыВремени КАК Замеры + |ВНУТРЕННЕЕ СОЕДИНЕНИЕ + | Справочник.ПрофилиКлючевыхОпераций.КлючевыеОперацииПрофиля КАК КлючевыеОперации + |ПО + | КлючевыеОперации.КлючеваяОперация = Замеры.КлючеваяОперация + | И КлючевыеОперации.Ссылка = &Профиль + |ГДЕ + | Замеры.ДатаЗаписи > &ДатаПоследнейВыгрузки + | И Замеры.ДатаЗаписи <= &ВерхняяГраньДатыЗамеров + |УПОРЯДОЧИТЬ ПО + | Замеры.КлючеваяОперация, + | Замеры.Комментарий + |"; КонецФункции // Генерирует имя файла для экспорта @@ -1239,12 +1250,15 @@ // Строка - полный путь к файлу экспорта. // Функция ПолноеИмяФайлаЭкспорта(Каталог, ТекДата, ПорядковыйНомерФайла, РасширениеСТочкой) - - ДатаФормированияФайла = Дата(1,1,1) + ТекДата/1000; + + ДатаФормированияФайла = Дата(1, 1, 1) + ТекДата / 1000; ПорядковыйНомерФайлаФормат = Формат(ПорядковыйНомерФайла, "ЧЦ=5; ЧВН=; ЧГ=0"); - + Разделитель = ?(ВРег(Лев(Каталог, 3)) = "FTP", "/", ПолучитьРазделительПути()); - Возврат УбратьРазделителиНаКонцеИмениФайла(Каталог, Разделитель) + Разделитель + Формат(ДатаФормированияФайла, "ДФ='гггг-ММ-дд ЧЧ-мм-сс-" + ПорядковыйНомерФайлаФормат + "'") + РасширениеСТочкой; + // АПК:1367-выкл Фиксированный нелокализуемый шаблон имени файла. + Возврат УбратьРазделителиНаКонцеИмениФайла(Каталог, Разделитель) + Разделитель + Формат(ДатаФормированияФайла, + "ДФ='гггг-ММ-дд ЧЧ-мм-сс-" + ПорядковыйНомерФайлаФормат + "'") + РасширениеСТочкой; + // АПК:1367-вкл КонецФункции @@ -1255,29 +1269,29 @@ // Разделитель - Строка // Функция УбратьРазделителиНаКонцеИмениФайла(Знач ИмяФайла, Разделитель) - - ДлинаПути = СтрДлина(ИмяФайла); + + ДлинаПути = СтрДлина(ИмяФайла); Если ДлинаПути = 0 Тогда Возврат ИмяФайла; КонецЕсли; - + Пока ДлинаПути > 0 И СтрЗаканчиваетсяНа(ИмяФайла, Разделитель) Цикл ИмяФайла = Лев(ИмяФайла, ДлинаПути - 1); ДлинаПути = СтрДлина(ИмяФайла); КонецЦикла; - + Возврат ИмяФайла; - + КонецФункции Процедура ЗагрузитьФайлОценкиПроизводительности(ИмяФайла, АдресХранилища) Экспорт - + ФайлХранилища = ПолучитьИмяВременногоФайла("zip"); ДвоичныеДанныеАрхива = ПолучитьИзВременногоХранилища(АдресХранилища); // ДвоичныеДанные ДвоичныеДанныеАрхива.Записать(ФайлХранилища); - + КаталогФайлов = ДобавитьКонечныйРазделительПути(ПолучитьИмяВременногоФайла()); - + Попытка ЧтениеZIP = Новый ЧтениеZipФайла(ФайлХранилища); ЧтениеZIP.ИзвлечьВсе(КаталогФайлов, РежимВосстановленияПутейФайловZIP.НеВосстанавливать); @@ -1287,21 +1301,24 @@ УдалитьФайлы(КаталогФайлов); ОписаниеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ШаблонСтроки = НСтр("ru = 'Не удалось распаковать архив %1 %2'"); - ОписаниеИсключения = ОценкаПроизводительностиКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСтроки, ИмяФайла, ОписаниеОшибки); + ОписаниеИсключения = ОценкаПроизводительностиКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСтроки, ИмяФайла, + ОписаниеОшибки); ВызватьИсключение ОписаниеИсключения; КонецПопытки; - + Попытка СуществующиеКлючевыеОперации = СуществующиеКлючевыеОперации(); КлючевыеОперацииДляЗаписи = Новый Массив; СырыеЗамерыДляЗаписи = Новый Массив; - + Для Каждого Файл Из НайтиФайлы(КаталогФайлов, "*.XML") Цикл - ЧтениеXML = Новый ЧтениеXML; + ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(Файл.ПолноеИмя); ЧтениеXML.ПерейтиКСодержимому(); - - ЗагрузитьФайлОценкиПроизводительностиApdexExport(ЧтениеXML, СуществующиеКлючевыеОперации, КлючевыеОперацииДляЗаписи, СырыеЗамерыДляЗаписи); // @skip-check query-in-loop - порционная обработка данных. + + // @skip-check query-in-loop - порционная обработка данных. + ЗагрузитьФайлОценкиПроизводительностиApdexExport(ЧтениеXML, СуществующиеКлючевыеОперации, + КлючевыеОперацииДляЗаписи, СырыеЗамерыДляЗаписи); ЧтениеXML.Закрыть(); КонецЦикла; УдалитьФайлы(ФайлХранилища); @@ -1309,10 +1326,10 @@ Исключение ЧтениеXML.Закрыть(); УдалитьФайлы(ФайлХранилища); - УдалитьФайлы(КаталогФайлов); + УдалитьФайлы(КаталогФайлов); ВызватьИсключение; КонецПопытки; - + НачатьТранзакцию(); Попытка Для Каждого СыройЗамерДляЗаписи Из СырыеЗамерыДляЗаписи Цикл @@ -1321,51 +1338,52 @@ Запись[КлючИЗначение.Ключ] = КлючИЗначение.Значение; КонецЦикла; Запись.ДатаЗаписиНачалоЧаса = НачалоЧаса(Запись.ДатаЗаписи); - Запись.ДатаОкончания = Запись.ДатаНачалаЗамера + Запись.ВремяВыполнения*1000; + Запись.ДатаОкончания = Запись.ДатаНачалаЗамера + Запись.ВремяВыполнения * 1000; Запись.Записать(); КонецЦикла; ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; - КонецПопытки; + КонецПопытки; КонецПроцедуры -Процедура ЗагрузитьФайлОценкиПроизводительностиApdexExport(ЧтениеXML, СуществующиеКлючевыеОперации, КлючевыеОперацииДляЗаписи, СырыеЗамерыДляЗаписи) - +Процедура ЗагрузитьФайлОценкиПроизводительностиApdexExport(ЧтениеXML, СуществующиеКлючевыеОперации, + КлючевыеОперацииДляЗаписи, СырыеЗамерыДляЗаписи) + ПространствоИмен = ЧтениеXML.URIПространстваИмен; // С версии 1.0.0.4 факт выполнения замера с ошибкой хранится в самом замере, а не в ключевой операции. ПризнакОшибкиВЗамере = Метаданные.ПакетыXDTO.ApdexExport_1_0_0_4.ПространствоИмен = ПространствоИмен; - + Замеры = "measurement"; ТипКлючеваяОперация = ФабрикаXDTO.Тип(ПространствоИмен, "KeyOperation"); - + ЧтениеXML.Прочитать(); - + Пока ЧтениеXML.ТипУзла <> ТипУзлаXML.КонецЭлемента Цикл - + КлючеваяОперация = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ТипКлючеваяОперация); - + КлючеваяОперацияИмя = КлючеваяОперация.nameFull; ЦелевоеВремя = КлючеваяОперация.targetValue; Комментарий = КлючеваяОперация.comment; Длительная = КлючеваяОперация.long; - + КлючеваяОперацияСсылка = СуществующиеКлючевыеОперации[КлючеваяОперацияИмя]; Если КлючеваяОперацияСсылка = Неопределено Тогда КлючеваяОперацияСсылка = СоздатьКлючевуюОперацию(КлючеваяОперацияИмя, ЦелевоеВремя, Длительная); // @skip-check query-in-loop - создание операции в случае отсутствия. СуществующиеКлючевыеОперации.Вставить(КлючеваяОперацияИмя, КлючеваяОперацияСсылка); КонецЕсли; - + МаксимальнаяДатаЗамера = Неопределено; ЧислоЗамеров = КлючеваяОперация[Замеры].Количество(); НомерЗамера = 0; Пока НомерЗамера < ЧислоЗамеров Цикл Замер = КлючеваяОперация[Замеры].Получить(НомерЗамера); ДатаЗамера = Замер.tUTC; - Если МаксимальнаяДатаЗамера = Неопределено ИЛИ МаксимальнаяДатаЗамера < ДатаЗамера Тогда + Если МаксимальнаяДатаЗамера = Неопределено Или МаксимальнаяДатаЗамера < ДатаЗамера Тогда МаксимальнаяДатаЗамера = ДатаЗамера; КонецЕсли; Если ПризнакОшибкиВЗамере Тогда @@ -1373,7 +1391,7 @@ Иначе ВыполненСОшибкой = КлючеваяОперация.runningError; КонецЕсли; - + СыройЗамерДляЗаписи = Новый Соответствие; СыройЗамерДляЗаписи.Вставить("КлючеваяОперация", КлючеваяОперацияСсылка); СыройЗамерДляЗаписи.Вставить("ДатаНачалаЗамера", Замер.tUTC); @@ -1384,9 +1402,9 @@ СыройЗамерДляЗаписи.Вставить("НомерСеанса", Замер.sessionNumber); СыройЗамерДляЗаписи.Вставить("Комментарий", Комментарий); СыройЗамерДляЗаписи.Вставить("ВыполненСОшибкой", ВыполненСОшибкой); - + СырыеЗамерыДляЗаписи.Добавить(СыройЗамерДляЗаписи); - + НомерЗамера = НомерЗамера + 1; КонецЦикла; КонецЦикла; @@ -1396,10 +1414,10 @@ Функция СуществующиеКлючевыеОперации() СуществующиеКлючевыеОперации = Новый Соответствие; Запрос = Новый Запрос("ВЫБРАТЬ - | КлючевыеОперации.Ссылка КАК Ссылка, - | КлючевыеОперации.Имя КАК Имя - |ИЗ - | Справочник.КлючевыеОперации КАК КлючевыеОперации"); + | КлючевыеОперации.Ссылка КАК Ссылка, + | КлючевыеОперации.Имя КАК Имя + |ИЗ + | Справочник.КлючевыеОперации КАК КлючевыеОперации"); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл СуществующиеКлючевыеОперации.Вставить(Выборка.Имя, Выборка.Ссылка); @@ -1425,12 +1443,12 @@ Если ПустаяСтрока(ПутьКаталога) Тогда Возврат ПутьКаталога; КонецЕсли; - + ДобавляемыйСимвол = ПолучитьРазделительПути(); - + Если СтрЗаканчиваетсяНа(ПутьКаталога, ДобавляемыйСимвол) Тогда Возврат ПутьКаталога; - Иначе + Иначе Возврат ПутьКаталога + ДобавляемыйСимвол; КонецЕсли; КонецФункции diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl index e95ddbf9b..07bd65ad9 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl @@ -46,9 +46,7 @@ Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); ДатаЗаписиЛокальная = ТекущаяДатаСеанса(); - ЧтениеJSON = Новый ЧтениеJSON(); - ЧтениеJSON.УстановитьСтроку(ПараметрыСеанса.КомментарийЗамераВремени); - КомментарийПоУмолчанию = ПрочитатьJSON(ЧтениеJSON, Истина); + КомментарийПоУмолчанию = ОбщегоНазначения.JSONВЗначение(ПараметрыСеанса.КомментарийЗамераВремени); КомментарийПоУмолчанию.Вставить("ИнфКл", ИнформацияПрограммыПросмотра); ЗаписьJSON = Новый ЗаписьJSON; diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиГлобальный/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиГлобальный/Module.bsl index f086dfae8..e7f148c6c 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиГлобальный/Module.bsl @@ -13,6 +13,12 @@ // Процедура ЗакончитьЗамерВремениАвто() Экспорт +#Если МобильныйКлиент Тогда + Если ОсновнойСерверДоступен() = Ложь Тогда + Возврат; + КонецЕсли; +#КонецЕсли + ОценкаПроизводительностиКлиент.ЗавершитьЗамерВремениНаКлиентеАвто(); КонецПроцедуры @@ -22,6 +28,12 @@ // Процедура ЗаписатьРезультатыАвто() Экспорт +#Если МобильныйКлиент Тогда + Если ОсновнойСерверДоступен() = Ложь Тогда + Возврат; + КонецЕсли; +#КонецЕсли + ОценкаПроизводительностиКлиент.ЗаписатьРезультатыАвтоНеГлобальный(); КонецПроцедуры diff --git a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl index 7efbd099b..e454c0c10 100644 --- a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl +++ b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl @@ -61,54 +61,46 @@ КонецЕсли; НайденныеПереводы = НайтиПереводТекстов(Тексты, ЯзыкПеревода, ИсходныйЯзык); - ТекстыТребующиеПеревод = Новый Массив; + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСервисПереводаТекста") Тогда + Возврат НайденныеПереводы; + КонецЕсли; + + ТекстыТребующиеПеревод = Новый Соответствие; + МодульСервисаПереводаТекста = МодульСервисаПереводаТекста(); + МаксимальныйРазмерПорции = МодульСервисаПереводаТекста.МаксимальныйРазмерПорции(); Для Каждого Текст Из Тексты Цикл Если ЗначениеЗаполнено(НайденныеПереводы[Текст]) Тогда Продолжить; КонецЕсли; Если ЗначениеЗаполнено(Текст) Тогда - ТекстыТребующиеПеревод.Добавить(Текст); - Иначе - НайденныеПереводы.Вставить(Текст, Текст); + ТекстыТребующиеПеревод[Текст] = РазделитьТекстНаЧасти(Текст, МаксимальныйРазмерПорции, Символы.ПС + ".;!?, "); КонецЕсли; КонецЦикла; - Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСервисПереводаТекста") Тогда - Возврат НайденныеПереводы; - КонецЕсли; - - МодульСервисаПереводаТекста = МодульСервисаПереводаТекста(); - ОчередьПеревода = Новый Массив; Порция = Новый Массив; РазмерПорции = 0; - МаксимальныйРазмерПорции = МодульСервисаПереводаТекста.МаксимальныйРазмерПорции(); - Для Каждого Текст Из ТекстыТребующиеПеревод Цикл - Если РазмерПорции + СтрДлина(Текст) > МаксимальныйРазмерПорции И ЗначениеЗаполнено(Порция) Тогда - ОчередьПеревода.Добавить(Порция); - Порция = Новый Массив; - РазмерПорции = 0; - КонецЕсли; - Если СтрДлина(Текст) <= МаксимальныйРазмерПорции Тогда - Порция.Добавить(Текст); - РазмерПорции = РазмерПорции + СтрДлина(Текст); - Иначе - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Превышен максимально допустимый размер текста для перевода, перевод не выполнен. Разделите текст на несколько частей, не превышающих %1 символов. - |Длина переданного текста: %2 символов.'", - ОбщегоНазначения.КодОсновногоЯзыка()), - МаксимальныйРазмерПорции, - СтрДлина(Текст)); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Перевод текста'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, - Метаданные.Перечисления.СервисыПереводаТекста, Константы.СервисПереводаТекста.Получить(), ТекстОшибки); - КонецЕсли; + Для Каждого ОписаниеТекста Из ТекстыТребующиеПеревод Цикл + ФрагментыТекста = ОписаниеТекста.Значение; + Для Каждого Фрагмент Из ФрагментыТекста Цикл + Если РазмерПорции + СтрДлина(Фрагмент) > МаксимальныйРазмерПорции Тогда + ОчередьПеревода.Добавить(Порция); + Порция = Новый Массив; + РазмерПорции = 0; + КонецЕсли; + Порция.Добавить(Фрагмент); + РазмерПорции = РазмерПорции + СтрДлина(Фрагмент); + КонецЦикла; КонецЦикла; Если ЗначениеЗаполнено(Порция) Тогда ОчередьПеревода.Добавить(Порция); КонецЕсли; + ПереведенныеФрагменты = Новый Соответствие; + Для Каждого Порция Из ОчередьПеревода Цикл Попытка Переводы = МодульСервисаПереводаТекста.ПеревестиТексты(Порция, ЯзыкПеревода, ИсходныйЯзык); @@ -128,10 +120,22 @@ КонецПопытки; Для Каждого Перевод Из Переводы Цикл СохранитьПереводТекста(Перевод.Ключ, Перевод.Значение, ИсходныйЯзык, ЯзыкПеревода); - НайденныеПереводы.Вставить(Перевод.Ключ, Перевод.Значение); + ПереведенныеФрагменты.Вставить(Перевод.Ключ, Перевод.Значение); КонецЦикла; КонецЦикла; + Для Каждого ОписаниеТекста Из ТекстыТребующиеПеревод Цикл + Текст = ОписаниеТекста.Ключ; + ФрагментыТекста = ОписаниеТекста.Значение; + + ПереведенныеЧастиТекста = Новый Массив; + Для Каждого Фрагмент Из ФрагментыТекста Цикл + ПереведенныеЧастиТекста.Добавить(ПереведенныеФрагменты[Фрагмент]); + КонецЦикла; + + НайденныеПереводы.Вставить(Текст, СтрСоединить(ПереведенныеЧастиТекста, Символы.ПС)); + КонецЦикла; + Возврат НайденныеПереводы; КонецФункции @@ -300,7 +304,11 @@ Результат = Новый Соответствие; Для Каждого Текст Из Тексты Цикл - Результат.Вставить(Текст, ПереведенныеТексты[ИдентификаторыТекстов[Текст]]); + Если ЗначениеЗаполнено(Текст) Тогда + Результат.Вставить(Текст, ПереведенныеТексты[ИдентификаторыТекстов[Текст]]); + Иначе + Результат.Вставить(Текст, Текст); + КонецЕсли; КонецЦикла; Возврат Результат; @@ -487,4 +495,60 @@ КонецФункции +Функция РазделитьТекстНаЧасти(Знач Текст, Знач МаксимальныйРазмерЧастиТекста, Знач Разделители) + + Результат = Новый Массив; + + Разделитель = Лев(Разделители, 1); + Разделители = Сред(Разделители, 2); + + Фрагменты = Новый Массив; + ЧастиТекста = СтрРазделить(Текст, Разделитель, Истина); + + Для Индекс = 0 По ЧастиТекста.ВГраница() Цикл + ЭтоПоследнийФрагмент = Индекс = ЧастиТекста.ВГраница(); + Фрагмент = ЧастиТекста[Индекс] + ?(ЭтоПоследнийФрагмент, "", Разделитель); + РазмерФрагмента = СтрДлина(Фрагмент); + + Если РазмерФрагмента > МаксимальныйРазмерЧастиТекста Тогда + Если Разделители <> "" Тогда + ЧастиФрагмента = РазделитьТекстНаЧасти(Фрагмент, МаксимальныйРазмерЧастиТекста, Разделители); + Иначе + ВызватьИсключение НСтр("ru = 'Не удалось разделить текст на фрагменты.'"); + КонецЕсли; + + Для Каждого Фрагмент Из ЧастиФрагмента Цикл + Фрагменты.Добавить(Фрагмент); + КонецЦикла; + Иначе + Фрагменты.Добавить(Фрагмент); + КонецЕсли; + КонецЦикла; + + Порция = Новый Массив; + РазмерПорции = 0; + + Для Индекс = 0 По Фрагменты.ВГраница() Цикл + Фрагмент = Фрагменты[Индекс]; + РазмерФрагмента = СтрДлина(Фрагмент); + ЭтоПоследнийФрагмент = Индекс = Фрагменты.ВГраница(); + + Если РазмерПорции + РазмерФрагмента > МаксимальныйРазмерЧастиТекста Тогда + Результат.Добавить(СтрСоединить(Порция, "")); + Порция = Новый Массив; + РазмерПорции = 0; + КонецЕсли; + + Порция.Добавить(Фрагмент); + РазмерПорции = РазмерПорции + РазмерФрагмента; + КонецЦикла; + + Если ЗначениеЗаполнено(Порция) Тогда + Результат.Добавить(СтрСоединить(Порция, "")); + КонецЕсли; + + Возврат Результат; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl index 1c5e72a9c..e5f2abed9 100644 --- a/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl @@ -1143,7 +1143,9 @@ Возврат ОписаниеКоманды; КонецФункции -Функция ЗарегистрироватьПодменю(Элементы, СведенияОВсехПодменю, ИмяПодменю, ШаблонНового = Неопределено, КоманднаяПанель = Неопределено, ПодменюПоУмолчанию = Неопределено) +Функция ЗарегистрироватьПодменю(Элементы, СведенияОВсехПодменю, ИмяПодменю, ШаблонНового = Неопределено, + КоманднаяПанель = Неопределено, ПодменюПоУмолчанию = Неопределено) + ВыведеноКоманд = 0; Группы = Новый Структура; КартинкаПодменю = Неопределено; @@ -1154,7 +1156,8 @@ Возврат ПодменюПоУмолчанию; КонецЕсли; Подменю = Элементы.Добавить(ИмяПодменю, Тип("ГруппаФормы"), КоманднаяПанель); - Подменю.Вид = ?(ЗначениеЗаполнено(ШаблонНового.ВидГруппыФормы), ШаблонНового.ВидГруппыФормы, ВидГруппыФормы.Подменю); + Подменю.Вид = ?(ЗначениеЗаполнено(ШаблонНового.ВидГруппыФормы), ШаблонНового.ВидГруппыФормы, + ВидГруппыФормы.Подменю); Если ЗначениеЗаполнено(ШаблонНового.Отображение) Тогда Подменю.Отображение = ШаблонНового.Отображение; КонецЕсли; @@ -1270,7 +1273,7 @@ // Возвращаемое значение: // Структура: // * ЕстьИзменения - Булево - Истина когда обновление прошло не "в холостую". -// * ПодключенныеОбъекты - Соответствие из КлючЗначения - кэш для быстрого определения списка объектов, +// * ПодключенныеОбъекты - Соответствие из КлючИЗначение - кэш для быстрого определения списка объектов, // подключенных к объектам конфигурации: // ** Ключ - СправочникСсылка.ИдентификаторыОбъектовМетаданных, СправочникСсылка.ИдентификаторыОбъектовРасширений // ** Значение - Массив из Строка diff --git a/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl b/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl index 61c365b39..f042e96ed 100644 --- a/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl +++ b/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl @@ -763,7 +763,7 @@ ИзменяемыеРеквизиты = ИзменяемыеРеквизиты + ?(ПустаяСтрока(ИзменяемыеРеквизиты),Значение, ","+Значение); Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ВЫБОР КОГДА Замена%1.Оригинал IS NULL ТОГДА Таб.%1 ИНАЧЕ Замена%1.Дубль КОНЕЦ КАК %1", КлючевойРеквизит); - ЗначениеИзменяемыеРеквизиты = ЗначениеИзменяемыеРеквизиты + ?(ПустаяСтрока(ЗначениеИзменяемыеРеквизиты),Значение, ","+Значение);; + ЗначениеИзменяемыеРеквизиты = ЗначениеИзменяемыеРеквизиты + ?(ПустаяСтрока(ЗначениеИзменяемыеРеквизиты),Значение, ","+Значение); Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(" ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаЗамен КАК Замена%1 |ПО Таб.%1 = Замена%1.Оригинал", КлючевойРеквизит); diff --git a/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl index 666853ceb..9830ee463 100644 --- a/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl @@ -110,9 +110,8 @@ // ** Представление - Строка - текстовое описание правила-ограничения. // ** ДополнительныеПоля - Строка - список реквизитов через запятую, значения которых // необходимы для анализа в ПриПоискеДублей. -// * КоличествоЭлементовДляСравнения - Число - количество кандидатов в дубли, передаваемых одним вызовом -// в параметр ТаблицаКандидатов обработчика ПриПоискеДублей. -// По умолчанию, 1500. +// * КоличествоЭлементовДляСравнения - Число - количество дублей, передаваемых одним вызовом в параметр ДублиЭлементов +// обработчика ПриПоискеДублей. По умолчанию, 1500. // ДополнительныеПараметры - Произвольный - значение, переданное при вызове ПоискИУдалениеДублей.НайтиДублиЭлемента. // При вызове из обработки ПоискИУдалениеДублей равно Неопределено. // СтандартнаяОбработка - Булево - указать Ложь, если заполнен выходной параметр ПараметрыПоиска и необходим вызов @@ -126,23 +125,30 @@ КонецПроцедуры // Вызывается при поиске дублей по правилам, заданным в ПриОпределенииПараметровПоискаДублей. +// Можно дополнить список дублей или пересмотреть признак ЭтоДубли у уже найденных кандидатов. // // Параметры: // ИмяОбъектаМетаданных - Строка - полное имя ссылочного объекта метаданных, замена элементов которого производится. // Например, "Справочник.Контрагенты". -// ТаблицаКандидатов - ТаблицаЗначений - сведения о найденных кандидатах в дубли согласно заданным правилам поиска: +// ДублиЭлементов - ТаблицаЗначений - сведения о найденных вариантах дублей: // * Ссылка1 - ЛюбаяСсылка - ссылка на первый элемент. // * Ссылка2 - ЛюбаяСсылка - ссылка на второй элемент. // * ЭтоДубли - Булево - признак того, что кандидаты являются дублями. По умолчанию Ложь. // Может быть установлено в Истина, чтобы отметить дубли. -// * Поля1 - Структура - содержит поля Код, Наименование и дополнительные поля первого элемента, +// * Поля1 - Структура - значения реквизитов Код, Наименование и дополнительных полей первого элемента, // указанные в параметре ПараметрыПоиска.ОграниченияСравнения.ДополнительныеПоля -// обработчика ПриОпределенииПараметровПоискаДублей. -// * Поля2 - Структура - содержит аналогичные поля второго элемента. +// обработчика ПриОпределенииПараметровПоискаДублей: +// ** Код - Строка +// ** Наименование - Строка +// ** ПометкаУдаления - Булево +// * Поля2 - Структура - аналогичные реквизиты второго элемента: +// ** Код - Строка +// ** Наименование - Строка +// ** ПометкаУдаления - Булево // ДополнительныеПараметры - Произвольный - значение, переданное при вызове ПоискИУдалениеДублей.НайтиДублиЭлемента. // При вызове из обработки ПоискИУдалениеДублей равно Неопределено. // -Процедура ПриПоискеДублей(Знач ИмяОбъектаМетаданных, ТаблицаКандидатов, ДополнительныеПараметры) Экспорт +Процедура ПриПоискеДублей(Знач ИмяОбъектаМетаданных, Знач ДублиЭлементов, Знач ДополнительныеПараметры) Экспорт КонецПроцедуры diff --git a/SSL/src/CommonModules/ПользователиКлиент/Module.bsl b/SSL/src/CommonModules/ПользователиКлиент/Module.bsl index c77eb9d90..d4c7bd199 100644 --- a/SSL/src/CommonModules/ПользователиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПользователиКлиент/Module.bsl @@ -29,4 +29,22 @@ КонецФункции +// Проверяет, является ли текущий пользователь полноправным. +// +// Параметры: +// ПроверятьПраваАдминистрированияСистемы - см. Пользователи.ЭтоПолноправныйПользователь.ПроверятьПраваАдминистрированияСистемы +// +// Возвращаемое значение: +// Булево - если Истина, пользователь является полноправным. +// +Функция ЭтоПолноправныйПользователь(ПроверятьПраваАдминистрированияСистемы = Ложь) Экспорт + + Если ПроверятьПраваАдминистрированияСистемы Тогда + Возврат СтандартныеПодсистемыКлиент.ПараметрКлиента("ЭтоПолноправныйПользователь"); + Иначе + Возврат СтандартныеПодсистемыКлиент.ПараметрКлиента("ЭтоАдминистраторСистемы"); + КонецЕсли; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl index 78f5d8342..0a38d014d 100644 --- a/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl @@ -1508,6 +1508,7 @@ // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента. Процедура ПриДобавленииПараметровРаботыКлиента(Параметры) Экспорт + // Устарели. Для обратной совместимости. Следует использовать ПользователиКлиент.ЭтоПолноправныйПользователь. Параметры.Вставить("ЭтоПолноправныйПользователь", Пользователи.ЭтоПолноправныйПользователь()); Параметры.Вставить("ЭтоАдминистраторСистемы", Пользователи.ЭтоПолноправныйПользователь(, Истина)); @@ -6774,7 +6775,7 @@ КонецЕсли; ДобавляемыеНедоступныеРоли = ДобавляемыеНедоступныеРоли - + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстШаблона, Роль.Представление()) + Символы.ПС;; + + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстШаблона, Роль.Представление()) + Символы.ПС; КонецЦикла; ДобавляемыеНедоступныеРоли = СокрЛП(ДобавляемыеНедоступныеРоли); diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl index 9194f025d..1f03cc2aa 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl @@ -44,7 +44,7 @@ // обязательный реквизит шапки "Организация", с типом "СправочникСсылка.Организации". // // Параметры: -// Источник - Произвольные - источник события подписки. +// Источник - Произвольный - источник события подписки. // Любой объект из множества [Справочник, Документ, План видов характеристик, Бизнес процесс, Задача]. // СтандартнаяОбработка - Булево - флаг стандартной обработки подписки. // Префикс - Строка - префикс объекта, который нужно изменить. @@ -160,7 +160,7 @@ // Возвращает префикс организации. // // Параметры: -// Организация - СправочникСсылка.Организации - организация для которой надо получить префикс. +// Организация - ОпределяемыйТип.Организация - организация, для которой надо получить префикс. // ПрефиксОрганизации - Строка - префикс организации. // Процедура ПриОпределенииПрефиксаОрганизации(Знач Организация, ПрефиксОрганизации) Экспорт diff --git a/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияКлиент/Module.bsl b/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияКлиент/Module.bsl index e3e8d89b4..ef66b2b60 100644 --- a/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПроверкаЛегальностиПолученияОбновленияКлиент/Module.bsl @@ -20,7 +20,7 @@ // Процедура ПоказатьПроверкуЛегальностиПолученияОбновления(Оповещение, ЗавершатьРаботуСистемы = Ложь) Экспорт - Если СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭтоБазоваяВерсияКонфигурации Тогда + Если СтандартныеПодсистемыКлиент.ЭтоБазоваяВерсияКонфигурации() Тогда ВыполнитьОбработкуОповещения(Оповещение, Истина); Возврат; КонецЕсли; diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl index 404e3b28c..df6c73593 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl @@ -60,3 +60,19 @@ КонецПроцедуры #КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Проверяет необходимость отображения помощника настройки разрешений на использование +// внешних (относительно кластера серверов 1С:Предприятия) ресурсов. +// +// Возвращаемое значение: +// Булево +// +Функция ОтображатьПомощникНастройкиРазрешений() Экспорт + + Возврат СтандартныеПодсистемыКлиент.ПараметрКлиента("ОтображатьПомощникНастройкиРазрешений"); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl index a30f44867..8ced07b8e 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl @@ -232,6 +232,15 @@ КонецПроцедуры +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента +Процедура ПриДобавленииПараметровРаботыКлиента(Параметры) Экспорт + + УстановитьПривилегированныйРежим(Истина); + Параметры.Вставить("ОтображатьПомощникНастройкиРазрешений", ИспользуетсяИнтерактивныйРежимЗапросаРазрешений()); + +КонецПроцедуры + + // См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. Процедура ПриНастройкеВариантовОтчетов(Настройки) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/CommonModules/РаботаСАдресами/Module.bsl b/SSL/src/CommonModules/РаботаСАдресами/Module.bsl index 1540b84a6..34bb84593 100644 --- a/SSL/src/CommonModules/РаботаСАдресами/Module.bsl +++ b/SSL/src/CommonModules/РаботаСАдресами/Module.bsl @@ -1765,7 +1765,11 @@ // Преобразует формат из XML в JSON // -Функция КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Знач Тип = Неопределено, Представление = "", ОбновлятьИдентификаторы = Истина) Экспорт +Функция КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Знач Тип = Неопределено, НастройкиКонвертации = Неопределено) Экспорт + + Если НастройкиКонвертации = Неопределено Тогда + НастройкиКонвертации = УправлениеКонтактнойИнформацией.НастройкиКонвертацииКонтактнойИнформации(); + КонецЕсли; Если Тип <> Неопределено И ТипЗнч(Тип) <> Тип("ПеречислениеСсылка.ТипыКонтактнойИнформации") Тогда Тип = УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ТипВидаКонтактнойИнформации(Тип); @@ -1802,7 +1806,9 @@ Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВXML(КонтактнаяИнформация) Тогда // XML РезультатПреобразования = Новый Структура; - XDTOКонтактнаяИнформация = УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияИзXML(КонтактнаяИнформация, Тип, РезультатПреобразования, Представление); + + XDTOКонтактнаяИнформация = УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияИзXML(КонтактнаяИнформация, Тип, РезультатПреобразования, + НастройкиКонвертации); Результат.Value = XDTOКонтактнаяИнформация.Представление; Результат.Comment = XDTOКонтактнаяИнформация.Комментарий; Иначе @@ -1811,7 +1817,7 @@ АдресРФ = КонтактнаяИнформация; Иначе // ключ-значение формат - Результат = ПреобразоватьКлючЗначениеВСтруктуру(КонтактнаяИнформация, Представление); + Результат = ПреобразоватьКлючЗначениеВСтруктуру(КонтактнаяИнформация, НастройкиКонвертации.Представление); Возврат Результат; КонецЕсли; КонецЕсли; @@ -1988,7 +1994,7 @@ КонецЕсли; КонецЕсли; - Если ОбновлятьИдентификаторы И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + Если НастройкиКонвертации.ОбновлятьИдентификаторы И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); МодульАдресныйКлассификаторСлужебный.УстановитьИдентификаторыАдреса(Результат); КонецЕсли; @@ -2443,7 +2449,7 @@ НаименованиеРегиона = СокрЛП(АдресИзJSON["area"] + " " +АдресИзJSON["areaType"]); ЭтоНациональныйАдрес = ?(СтрСравнить(АдресИзJSON.Country, РаботаСАдресамиКлиентСервер.ОсновнаяСтрана().Наименование) = 0, Истина, Ложь); - АдресПоПолям.КодРегиона = ?(ЭтоНациональныйАдрес, КодРегиона(НаименованиеРегиона), "");; + АдресПоПолям.КодРегиона = ?(ЭтоНациональныйАдрес, КодРегиона(НаименованиеРегиона), ""); ИдентификаторАдресногоОбъекта = ""; МаксимальныйУровеньИдентификатора = 0; diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютКлиент/Module.bsl index badf32c41..5bf10e6af 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютКлиент/Module.bsl @@ -65,7 +65,7 @@ КонецЕсли; Настройки.НачалоДняПоследнегоОповещения = ДатаНачалаДня; - ПоказатьОповещениеПользователя( + ПоказатьОповещение( НСтр("ru = 'Курсы валют устарели'"), НавигационнаяСсылкаОбработки(), НСтр("ru = 'Обновить курсы валют'"), @@ -101,4 +101,16 @@ Возврат "e1cib/app/Обработка.ЗагрузкаКурсовВалют"; КонецФункции +Процедура ПоказатьОповещение(Текст, ДействиеПриНажатии, Пояснение, Картинка, СтатусОповещенияПользователя, КлючУникальности) + + ПоказатьОповещениеПользователя( + Текст, + ДействиеПриНажатии, + Пояснение, + Картинка, + СтатусОповещенияПользователя, + КлючУникальности); + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl index ae85f3196..d8063fd2e 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl @@ -115,7 +115,7 @@ Если ТипЗнч(УчетнаяЗапись) <> Тип("СправочникСсылка.УчетныеЗаписиЭлектроннойПочты") Или НЕ ЗначениеЗаполнено(УчетнаяЗапись) Тогда - ВызватьИсключение НСтр("ru = 'Учетная запись не заполнена или заполнена неправильно.'"); + ВызватьИсключение НСтр("ru = 'Почта не указана или заполнена неправильно.'"); КонецЕсли; Если ПараметрыПисьма = Неопределено Тогда @@ -156,12 +156,12 @@ КонецФункции -// Загружает сообщения с сервера электронной почты для указанной учетной записи. -// Предварительно проверяется корректность заполнения учетной записи. +// Загружает сообщения с сервера для указанной почты. +// Предварительно проверяется корректность заполнения настроек почты. // Функция может вызвать исключение, которое требуется обработать. // // Параметры: -// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись электронной почты. +// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - электронная почта, с которой загружаются письма. // // ПараметрыЗагрузки - Структура: // * Колонки - Массив - массив строк названий колонок @@ -202,7 +202,7 @@ ИспользоватьДляПолучения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УчетнаяЗапись, "ИспользоватьДляПолучения"); Если НЕ ИспользоватьДляПолучения Тогда - ВызватьИсключение НСтр("ru = 'Учетная запись не предназначена для получения сообщений.'"); + ВызватьИсключение НСтр("ru = 'Почта не предназначена для получения сообщений.'"); КонецЕсли; Если ПараметрыЗагрузки = Неопределено Тогда @@ -224,12 +224,12 @@ // Возвращаемое значение: // ТаблицаЗначений - описание учетных записей: // * Ссылка - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись; -// * Наименование - Строка - наименование учетной записи; +// * Наименование - Строка - наименование почты; // * Адрес - Строка - адрес электронной почты. // Функция ДоступныеУчетныеЗаписи(Знач ДляОтправки = Неопределено, - Знач ДляПолучения = Неопределено, - Знач ВключатьСистемнуюУчетнуюЗапись = Истина) Экспорт + Знач ДляПолучения = Неопределено, + Знач ВключатьСистемнуюУчетнуюЗапись = Истина) Экспорт Если Не ПравоДоступа("Чтение", Метаданные.Справочники.УчетныеЗаписиЭлектроннойПочты) Тогда Возврат Новый ТаблицаЗначений; @@ -293,10 +293,10 @@ КонецФункции -// Получает ссылку на учетную запись по виду назначения учетной записи. +// Получает настройки почты для рассылки различных уведомлений из программы. // // Возвращаемое значение: -// СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - системная учетная запись. +// СправочникСсылка.УчетныеЗаписиЭлектроннойПочты // Функция СистемнаяУчетнаяЗапись() Экспорт @@ -304,10 +304,10 @@ КонецФункции -// Проверяет, что системная учетная запись доступна (может быть использована). +// Проверяет, что почта для рассылки различных уведомлений доступна (может быть использована). // // Возвращаемое значение: -// Булево - Истина, если доступна. +// Булево // Функция ПроверитьСистемнаяУчетнаяЗаписьДоступна() Экспорт @@ -316,10 +316,10 @@ КонецФункции // Возвращает Истина, если доступна по меньшей мере одна настроенная учетная запись для отправки почты -// либо достаточно прав на настройку учетной записи. +// либо достаточно прав на настройку почты. // // Возвращаемое значение: -// Булево - Истина, если доступна. +// Булево // Функция ДоступнаОтправкаПисем() Экспорт @@ -379,12 +379,12 @@ КонецФункции -// Выполняет проверку настроек учетной записи электронной почты. +// Выполняет проверку настроек электронной почты. // // Параметры: -// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - проверяемая учетная запись; -// СообщениеОбОшибке - Строка - текст сообщения об ошибке либо пустая строка, если ошибок не было; -// ДополнительноеСообщение - Строка - сообщения о том, какие проверки были выполнены для учетной записи. +// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - проверяемая почта. +// СообщениеОбОшибке - Строка - текст сообщения об ошибке либо пустая строка, если ошибок не было. +// ДополнительноеСообщение - Строка - сообщения о том, какие проверки были выполнены для почты. // Процедура ПроверитьВозможностьОтправкиИПолученияЭлектроннойПочты(УчетнаяЗапись, СообщениеОбОшибке, ДополнительноеСообщение) Экспорт @@ -536,7 +536,7 @@ Если ТипЗнч(УчетнаяЗапись) <> Тип("СправочникСсылка.УчетныеЗаписиЭлектроннойПочты") Или НЕ ЗначениеЗаполнено(УчетнаяЗапись) Тогда - ВызватьИсключение НСтр("ru = 'Учетная запись не заполнена или заполнена неправильно.'"); + ВызватьИсключение НСтр("ru = 'Почта не указана или заполнена неправильно.'"); КонецЕсли; Если ПараметрыОтправки = Неопределено Тогда diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl index c91a725f9..280a2cff1 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl @@ -38,7 +38,7 @@ ОткрытьФорму("Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ПомощникНастройкиУчетнойЗаписи", Новый Структура("КонтекстныйРежим", Истина), , , , , ОбработчикРезультата); Иначе - ТекстСообщения = НСтр("ru = 'Для отправки письма требуется настройка учетной записи электронной почты. + ТекстСообщения = НСтр("ru = 'Для отправки письма настройте электронную почту. |Обратитесь к администратору.'"); ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьНаличиеУчетнойЗаписиДляОтправкиПочтыЗавершение", ЭтотОбъект, ОбработчикРезультата); ПоказатьПредупреждение(ОписаниеОповещения, ТекстСообщения); @@ -54,7 +54,7 @@ // * Отправитель - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись, с которой может // быть отправлено почтовое сообщение; // - СписокЗначений - список учетных записей, доступных для выбора в форме: -// ** Представление - Строка- наименование учетной записи; +// ** Представление - Строка - наименование почты; // ** Значение - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись. // // * Получатель - Строка - список адресов в формате: @@ -99,9 +99,9 @@ Возврат ПараметрыПисьма; КонецФункции -// Если у пользователя нет настроенной учетной записи для отправки писем, то в зависимости от прав либо показывает -// помощник настройки новой учетной записи, либо выводит сообщение о невозможности отправки. -// Предназначена для сценариев, в которых требуется выполнить настройку учетной записи перед запросом дополнительных +// Если у пользователя нет настроенной почты для отправки писем, то в зависимости от прав либо показывает +// помощник настройки новой почты, либо выводит сообщение о невозможности отправки. +// Предназначена для сценариев, в которых требуется выполнить настройку почты перед запросом дополнительных // параметров отправки. // // Параметры: diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl index 8a1288df6..ec8061ae8 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl @@ -55,7 +55,7 @@ // отображаемых в теле письма. // // * АдресОтвета - Соответствие - см. описание поля Кому. -// * Пароль - Строка - пароль для доступа к учетной записи. +// * Пароль - Строка - пароль для доступа к почте. // * ИдентификаторыОснований - Строка - идентификаторы оснований данного письма. // * ОбрабатыватьТексты - Булево - необходимость обрабатывать тексты письма при отправке. // * УведомитьОДоставке - Булево - необходимость запроса уведомления о доставке. diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl index 059e8cffa..108a9085b 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl @@ -8,10 +8,10 @@ #Область СлужебныйПрограммныйИнтерфейс -// Создает профиль переданной учетной записи для подключения к почтовому серверу. +// Создает профиль переданной почты для подключения к почтовому серверу. // // Параметры: -// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись. +// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты // // Возвращаемое значение: // ИнтернетПочтовыйПрофиль - профиль учетной записи; @@ -116,17 +116,18 @@ КонецФункции // Функция необходима для интеграции с подсистемой "Обмен данными". -// Возвращает ссылку на учетную запись электронной почты этой базы, соответствующую учетной записи +// Возвращает настройки электронной почты этой базы, соответствующие настройкам // электронной почты базы-корреспондента, с которой выполняется настройка обмена (см. параметры). // Выполняется поиск записи по имени предопределенного или по адресу или создание новой записи (если не найдена). -// Значения реквизитов учетной записи этой базы приводятся в соответствие значениям реквизитов учетной записи корреспондента. +// Настройки почты этой базы приводятся в соответствие с настройкой почты корреспондента. +// // Параметры: -// УзелПланаОбмена - СправочникОбъект.УчетныеЗаписиЭлектроннойПочты - учетная запись электронной почты, +// УчетнаяЗаписьКорреспондента - СправочникОбъект.УчетныеЗаписиЭлектроннойПочты - настройки электронной почты // базы-корреспондента, полученная из файла настройки синхронизации данных путем // десериализации с помощью метода ПрочитатьXML. // // Возвращаемое значение: -// СправочникОбъект.УчетныеЗаписиЭлектроннойПочты - ссылка на учетную запись этой информационной базы. +// СправочникОбъект.УчетныеЗаписиЭлектроннойПочты // Функция УчетнаяЗаписьЭтойБазыПоДаннымУчетнойЗаписиКорреспондента(УчетнаяЗаписьКорреспондента) Экспорт @@ -183,7 +184,7 @@ // Определяет, предусмотрено ли в программе получение писем. // // Возвращаемое значение: -// Булево - Истина, если предусмотрено. +// Булево // Функция ДоступноПолучениеПисем() Экспорт @@ -191,11 +192,11 @@ КонецФункции -// Возвращает настройки учетной записи подключения к почтовому серверу для отправки почты. -// Если не удалось получить учетную запись по ссылке, то будет возвращена пустая структура. +// Возвращает настройки подключения к почтовому серверу для отправки почты. +// Если настройки почты не существуют или не доступны по правам, то будет возвращена пустая структура. // // Параметры: -// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись. +// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - настройка почты. // // Возвращаемое значение: // Структура: @@ -284,7 +285,7 @@ Процедура СохранитьНастройкиУчетнойЗаписиДляВосстановленияПароля(Настройки) Экспорт Если ТипЗнч(Настройки) <> Тип("Структура") Тогда - ВызватьИсключение НСтр("ru='Неверный тип настроек учетной записи для восстановления пароля'"); + ВызватьИсключение НСтр("ru='Неверный тип настроек почты для восстановления пароля.'"); КонецЕсли; СведенияОбУчетнойЗаписи = ОписаниеНастроекУчетнойЗаписиДляВосстановленияПароля(); @@ -385,7 +386,6 @@ Обработчик.Идентификатор = Новый УникальныйИдентификатор("d57f7a36-46ca-4a52-baab-db960e3d376d"); Обработчик.Комментарий = НСтр("ru = 'Обновляет сведения об учетных записях электронной почты. |До завершения обработки список учетных записей электронной почты может быть неполным.'"); - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.УчетныеЗаписиЭлектроннойПочты.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; ЧитаемыеОбъекты = Новый Массив; @@ -913,8 +913,6 @@ КонецФункции -// Служебная функция используется для проверки учетной записи электронной почты. -// Процедура ПроверитьВозможностьОтправкиИПолученияЭлектроннойПочты(УчетнаяЗапись, СообщениеОбОшибке, ДополнительноеСообщение) Экспорт НастройкиУчетнойЗаписи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись, "ИспользоватьДляОтправки,ИспользоватьДляПолучения,ПротоколВходящейПочты"); @@ -1280,7 +1278,7 @@ ОписаниеВложения.Представление = Вложение.Представление; ДвоичныеДанные = Неопределено; Если ТипЗнч(Вложение.Значение) = Тип("ДвоичныеДанные") Тогда - ДвоичныеДанные = Вложение.Значение;; + ДвоичныеДанные = Вложение.Значение; Иначе Если ЭтоАдресВременногоХранилища(Вложение.Значение) Тогда ДвоичныеДанные = ПолучитьИзВременногоХранилища(Вложение.Значение); @@ -1323,7 +1321,7 @@ Фильтры.Добавить(ФильтрПоАтрибуту("src", "^(http|https)://")); Фильтр = ОбъединитьФильтры(Фильтры); - НайденныеУзлы = ДокументHTML.НайтиПоФильтру(ЗначениеВJSON(Фильтр)); + НайденныеУзлы = ДокументHTML.НайтиПоФильтру(ОбщегоНазначения.ЗначениеВJSON(Фильтр)); Возврат НайденныеУзлы.Количество() > 0; @@ -1342,11 +1340,11 @@ Фильтры.Добавить(ФильтрПоИмениАтрибута("onload")); Фильтр = ОбъединитьФильтры(Фильтры); - ДокументHTML.УдалитьПоФильтру(ЗначениеВJSON(Фильтр)); + ДокументHTML.УдалитьПоФильтру(ОбщегоНазначения.ЗначениеВJSON(Фильтр)); Если ОтключитьВнешниеРесурсы Тогда Фильтр = ФильтрПоАтрибуту("src", "^(http|https)://"); - НайденныеУзлы = ДокументHTML.НайтиПоФильтру(ЗначениеВJSON(Фильтр)); + НайденныеУзлы = ДокументHTML.НайтиПоФильтру(ОбщегоНазначения.ЗначениеВJSON(Фильтр)); Для Каждого Узел Из НайденныеУзлы Цикл Узел.Значение = ""; КонецЦикла; @@ -1410,16 +1408,6 @@ КонецФункции -Функция ЗначениеВJSON(Значение) - - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.УстановитьСтроку(); - ЗаписатьJSON(ЗаписьJSON, Значение); - - Возврат ЗаписьJSON.Закрыть(); - -КонецФункции - Функция ОтправитьПисьмо(УчетнаяЗапись, Письмо) Экспорт Письма = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Письмо); @@ -2123,12 +2111,6 @@ КонецФункции -Функция JSONВЗначение(Строка, ИменаСвойствСоЗначениямиДата = Неопределено) Экспорт - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(Строка); - Возврат ПрочитатьJSON(ЧтениеJSON, Истина, ИменаСвойствСоЗначениямиДата); -КонецФункции - Функция ОбновитьТокенДоступа(Знач УчетнаяЗапись, Знач ТокенОбновления) ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись, @@ -2178,7 +2160,7 @@ РезультатЗапроса = ВыполнитьЗапрос(АдресСервера, АдресРесурса, ПараметрыЗапроса); Попытка - ПараметрыОтвета = JSONВЗначение(РезультатЗапроса.ОтветСервера); + ПараметрыОтвета = ОбщегоНазначения.JSONВЗначение(РезультатЗапроса.ОтветСервера); Исключение ПараметрыОтвета = Новый Соответствие; КонецПопытки; diff --git a/SSL/src/CommonModules/РаботаСФайлами/Module.bsl b/SSL/src/CommonModules/РаботаСФайлами/Module.bsl index b14be93c9..b24d2f86e 100644 --- a/SSL/src/CommonModules/РаботаСФайлами/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайлами/Module.bsl @@ -398,7 +398,7 @@ // Параметры: // ВладелецФайлов - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - объект, к которому // требуется прикрепить добавляемый файл. -// ПутьКФайлуНаДиске - Строка - полный путь к файлу на диске, включающий имя и расширение файла. +// ПутьКФайлуНаДиске - Строка - полный путь к файлу, включающий имя и расширение файла. // Файл должен находиться на сервере. // // Возвращаемое значение: @@ -752,7 +752,8 @@ // * ПоказыватьПодсказкиПриРедактированииФайлов - Булево - а веб-клиенте показывать подсказки при // редактировании файлов. // * ПутьКЛокальномуКэшуФайлов - Строка - путь к локальному кэшу файлов. -// * ЭтоПолноправныйПользователь - Булево - Истина, если это полноправный пользователь. +// * ЭтоПолноправныйПользователь - Булево - устарел, следует использовать +// ПользователиКлиент.ЭтоПолноправныйПользователь. // * УдалятьФайлИзЛокальногоКэшаФайловПриЗавершенииРедактирования - Булево - удаление файлов из локального кэша при // завершении редактирования. // @@ -1393,8 +1394,7 @@ // Параметры: // ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. // -// СвойстваПодписи - Структура - содержит данные, которые возвращает процедура Подписать -// общего модуля ЭлектроннаяПодписьКлиент в качестве результата. +// СвойстваПодписи - см. ЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи // - Массив - массив описанных выше структур. // // ИдентификаторФормы - УникальныйИдентификатор - если указан, то используется при блокировке объекта. @@ -1460,6 +1460,126 @@ КонецФункции +// Получает настройки сканирования пользователя. +// +// Параметры: +// ИдентификаторКлиента - УникальныйИдентификатор - идентификатор клиента +// +// Возвращаемое значение: +// см. РаботаСФайламиКлиентСервер.НастройкиСканированияПользователя +// +Функция ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента) Экспорт + + НастройкиСканированияПользователя = РаботаСФайламиКлиентСервер.НастройкиСканированияПользователя(); + + НастройкиСканированияПользователя.ПоказыватьДиалогСканера = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/ПоказыватьДиалогСканера", + ИдентификаторКлиента, Истина); + + НастройкиСканированияПользователя.ИмяУстройства = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/ИмяУстройства", + ИдентификаторКлиента, ""); + + НастройкиСканированияПользователя.ФорматСканированногоИзображения = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/ФорматСканированногоИзображения", + ИдентификаторКлиента, Перечисления.ФорматыСканированногоИзображения.PNG); + + НастройкиСканированияПользователя.СохранятьВPDF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/СохранятьВPDF", + ИдентификаторКлиента, Ложь); + + НастройкиСканированияПользователя.ФорматХраненияМногостраничный = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/ФорматХраненияМногостраничный", + ИдентификаторКлиента, Перечисления.ФорматыХраненияМногостраничныхФайлов.TIF); + + НастройкиСканированияПользователя.Разрешение = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/Разрешение", + ИдентификаторКлиента); + + НастройкиСканированияПользователя.Цветность = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/Цветность", + ИдентификаторКлиента); + + НастройкиСканированияПользователя.Поворот = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/Поворот", + ИдентификаторКлиента); + + НастройкиСканированияПользователя.РазмерБумаги = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/РазмерБумаги", + ИдентификаторКлиента); + + НастройкиСканированияПользователя.ДвустороннееСканирование = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/ДвустороннееСканирование", + ИдентификаторКлиента); + + НастройкиСканированияПользователя.ИспользоватьImageMagickДляПреобразованияВPDF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/ИспользоватьImageMagickДляПреобразованияВPDF", + ИдентификаторКлиента); + + НастройкиСканированияПользователя.КачествоJPG = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/КачествоJPG", + ИдентификаторКлиента, 100); + + НастройкиСканированияПользователя.СжатиеTIFF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/СжатиеTIFF", + ИдентификаторКлиента, Перечисления.ВариантыСжатияTIFF.БезСжатия); + + НастройкиСканированияПользователя.ПутьКПрограммеКонвертации = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( + "НастройкиСканирования/ПутьКПрограммеКонвертации", + ИдентификаторКлиента, ""); // ImageMagick + + Возврат НастройкиСканированияПользователя; +КонецФункции + +// Сохраняет настройки сканирования пользователя. +// Параметры: +// НастройкиСканированияПользователя - см. РаботаСФайламиКлиентСервер.НастройкиСканированияПользователя +// ИдентификаторКлиента - УникальныйИдентификатор - идентификатор клиента +// +Процедура СохранитьНастройкиСканированияПользователя(НастройкиСканированияПользователя, ИдентификаторКлиента) Экспорт + + МассивСтруктур = Новый Массив; + + МассивСтруктур.Добавить(СформироватьНастройку("ПоказыватьДиалогСканера", + НастройкиСканированияПользователя.ПоказыватьДиалогСканера, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("ИмяУстройства", + НастройкиСканированияПользователя.ИмяУстройства, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("ФорматСканированногоИзображения", + НастройкиСканированияПользователя.ФорматСканированногоИзображения, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("СохранятьВPDF", + НастройкиСканированияПользователя.СохранятьВPDF, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("ФорматХраненияМногостраничный", + НастройкиСканированияПользователя.ФорматХраненияМногостраничный, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("Разрешение", + НастройкиСканированияПользователя.Разрешение, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("Цветность", + НастройкиСканированияПользователя.Цветность, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("Поворот", + НастройкиСканированияПользователя.Поворот, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("РазмерБумаги", + НастройкиСканированияПользователя.РазмерБумаги, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("ДвустороннееСканирование", + НастройкиСканированияПользователя.ДвустороннееСканирование, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("ИспользоватьImageMagickДляПреобразованияВPDF", + НастройкиСканированияПользователя.ИспользоватьImageMagickДляПреобразованияВPDF, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("КачествоJPG", + НастройкиСканированияПользователя.КачествоJPG, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("СжатиеTIFF", + НастройкиСканированияПользователя.СжатиеTIFF, ИдентификаторКлиента)); + МассивСтруктур.Добавить(СформироватьНастройку("ПутьКПрограммеКонвертации", + НастройкиСканированияПользователя.ПутьКПрограммеКонвертации, ИдентификаторКлиента)); + + Если ЗначениеЗаполнено(НастройкиСканированияПользователя.ФорматХраненияОдностраничный) Тогда + ФорматХраненияОдностраничный = НастройкиСканированияПользователя.ФорматХраненияОдностраничный; + Иначе + ФорматХраненияОдностраничный = РаботаСФайламиСлужебный.ПреобразоватьФорматСканированияВФорматХранения(НастройкиСканированияПользователя.ФорматСканированногоИзображения, + НастройкиСканированияПользователя.СохранятьВPDF); + КонецЕсли; + + МассивСтруктур.Добавить(СформироватьНастройку("ФорматХраненияОдностраничный", ФорматХраненияОдностраничный, ИдентификаторКлиента)); + + ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранитьМассив(МассивСтруктур, Истина); +КонецПроцедуры #Область ДляВызоваИзДругихПодсистем @@ -1491,7 +1611,7 @@ // Параметры: // ВладелецФайлов - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - папка файлов или объект, к которому // требуется прикрепить добавляемый файл. -// ПутьКФайлуНаДиске - Строка - полный путь к файлу на диске, включающий имя и расширение файла. +// ПутьКФайлуНаДиске - Строка - полный путь к файлу, включающий имя и расширение файла. // Файл должен находиться на сервере. // // Возвращаемое значение: @@ -2259,8 +2379,9 @@ ЗагрузитьФайл = Форма.Команды.Добавить("УправлениеПрисоединеннымиФайламиЗагрузитьФайл_" + НомерЭлемента); ЗагрузитьФайл.Действие = "Подключаемый_КомандаПанелиПрисоединенныхФайлов"; - ЗагрузитьФайл.Подсказка = НСтр("ru = 'Загрузить файл с диска'"); - ЗагрузитьФайл.Заголовок = НСтр("ru = 'Загрузить...'"); + ЗаголовокКоманды = НСтр("ru = 'Загрузить файл с компьютера'"); + ЗагрузитьФайл.Подсказка = ЗаголовокКоманды; + ЗагрузитьФайл.Заголовок = ЗаголовокКоманды + "..."; КнопкаЗагрузки = ДобавитьКнопкуНаФорму(Форма, "УправлениеПрисоединеннымиФайламиЗагрузитьФайл" + НомерЭлемента, ГруппаРазмещенияНаФорме, ЗагрузитьФайл.Имя); КнопкаЗагрузки.Картинка = БиблиотекаКартинок.Скрепка; @@ -2515,7 +2636,7 @@ ЗагрузитьФайл = Форма.Команды.Добавить("УправлениеПрисоединеннымиФайламиЗагрузитьФайл_" + ТолькоОдинФайлТекст + НомерЭлемента); ЗагрузитьФайл.Действие = "Подключаемый_КомандаПанелиПрисоединенныхФайлов"; - ЗагрузитьФайл.Подсказка = НСтр("ru = 'Загрузить файл с диска'"); + ЗагрузитьФайл.Подсказка = НСтр("ru = 'Загрузить файл с компьютера'"); Если ДобавляемыйЭлемент.ПоказыватьКоманднуюПанель Тогда @@ -2776,5 +2897,15 @@ Возврат Неопределено; КонецФункции + +Функция СформироватьНастройку(Имя, Значение, ИдентификаторКлиента) + + Элемент = Новый Структура; + Элемент.Вставить("Объект", "НастройкиСканирования/" + Имя); + Элемент.Вставить("Настройка", ИдентификаторКлиента); + Элемент.Вставить("Значение", Значение); + Возврат Элемент; + +КонецФункции #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl index ec9b30262..5d406fd9f 100644 --- a/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl @@ -99,12 +99,11 @@ // параметрам хранения в информационной базе. // // Параметры: -// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект -// - см. См. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла - элемент справочника -// присоединенных файлов, данные которого сохраняются в том -// или структура со свойствами, необходимыми для сохранения данных в том. +// ПрисоединенныйФайл - см. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла +// - ОпределяемыйТип.ПрисоединенныйФайлОбъект - элемент справочника +// присоединенных файлов или структура со свойствами, данные которой сохраняются в том, // ДвоичныеДанныеИлиПуть - ДвоичныеДанные -// - Строка - двоичные данные файла или полный путь к файлу на диске. +// - Строка - двоичные данные файла или полный путь к файлу. // ДатаДляРазмещенияВТоме - Дата - если не указано, то используется текущее время сеанса. // ЗаполнятьСлужебныйРеквизитХранилище - Булево - если параметр принимает значение Истина, двоичные данные // файла будут дополнительно помещены в служебный реквизит ФайлХранилище. @@ -132,12 +131,12 @@ // Выбрасывает исключения. // // Параметры: -// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект -// - см. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла - элемент справочника +// ПрисоединенныйФайл - см. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла +// - ОпределяемыйТип.ПрисоединенныйФайлОбъект - элемент справочника // присоединенных файлов, данные которого сохраняются // в том, или структура со свойствами, необходимыми для сохранения данных в том. // ДвоичныеДанныеИлиПуть - ДвоичныеДанные -// - Строка - двоичные данные файла или полный путь к файлу на диске. +// - Строка - двоичные данные файла или полный путь к файлу. // ДатаДляРазмещенияВТоме - Дата - если не указано, то используется текущее время сеанса. // ЗаполнятьСлужебныйРеквизитХранилище - Булево - если параметр принимает значение Истина, двоичные данные // файла будут дополнительно помещены в служебный реквизит ФайлХранилище. @@ -597,13 +596,13 @@ КонецФункции -// Проверяет наличие файла на диске. +// Проверяет наличие файла на компьютере. // // Параметры: -// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - элемент справочника с файлом. // // Возвращаемое значение: -// Булево - признак наличия файла на диске. +// Булево // Функция ПрисоединенныйФайлНаходитсяНаДиске(ПрисоединенныйФайл) Экспорт @@ -629,10 +628,10 @@ Проверка = Проверки.Добавить(); Проверка.ИдентификаторГруппы = "СистемныеПроверки"; Проверка.Наименование = НСтр("ru = 'Поиск ссылок на несуществующие файлы в томах хранения'"); - Проверка.Причины = НСтр("ru = 'Файл был физически удален или перемещен на диске вследствие работы антивирусных программ, + Проверка.Причины = НСтр("ru = 'Файл был физически удален или перемещен на компьютере вследствие работы антивирусных программ, |непреднамеренных действий администратора и.т.д.'"); Проверка.Рекомендация = НСтр("ru = '• Пометить файл в программе на удаление; - |• Или восстановить файл на диске в томе из резервной копии.'"); + |• Или восстановить файл в томе из резервной копии.'"); Проверка.Идентификатор = "СтандартныеПодсистемы.ПроверкаСсылокНаНесуществующиеФайлыВТоме"; Проверка.ОбработчикПроверки = "РаботаСФайламиВТомахСлужебный.ПроверкаСсылокНаНесуществующиеФайлыВТоме"; Проверка.КонтекстПроверокВеденияУчета = "СистемныеПроверки"; @@ -640,8 +639,6 @@ КонецПроцедуры -// Исполняет проверку несуществующих файлов на диске, в случае когда присоединенные файлы хранятся в томах. -// Процедура ПроверкаСсылокНаНесуществующиеФайлыВТоме(Проверка, ПараметрыПроверки) Экспорт Если ОбщегоНазначения.РазделениеВключено() @@ -686,10 +683,10 @@ #Область ПараметрыХранения -// Возвращает признак того, что файлы могут храниться в томах на диске. +// Возвращает признак того, что файлы могут храниться в томах. // // Возвращаемое значение: -// Булево - Истина, если указано хранить файлы в томах на диске, иначе - Ложь. +// Булево // Функция ХранитьФайлыВТомахНаДиске() Экспорт @@ -839,7 +836,7 @@ // Параметры: // ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект // ДвоичныеДанныеИлиПуть - ДвоичныеДанные -// - Строка - двоичные данные файла или полный путь к файлу на диске. +// - Строка - двоичные данные файла или полный путь к файлу. // Процедура ЗаписатьДанныеФайлаВТом(ПрисоединенныйФайл, ДвоичныеДанныеИлиПуть) @@ -1194,7 +1191,7 @@ КонтейнерСвойствФайла = ПараметрыДобавленияФайла(); КонтейнерСвойствФайла.Ссылка = Контекст.ПрисоединенныйФайл; ЗаполнитьЗначенияСвойств(КонтейнерСвойствФайла, Контекст.ПараметрыДобавленияФайла,,"Ссылка"); - КонтейнерСвойствФайла.ПутьКФайлу = ""; // Всегда будем создавать новую версию на диске, не затирая старую. + КонтейнерСвойствФайла.ПутьКФайлу = ""; // Всегда будем создавать новую версию в томе, не затирая старую. УстановитьОтключениеБезопасногоРежима(Истина); ДобавитьФайл(КонтейнерСвойствФайла, Контекст.ДанныеФайла); @@ -1258,10 +1255,10 @@ #Область НастройкиХраненияФайловВТомах -// Возвращает признак того, что файлы могут храниться и в томах на диске и в информационной базе. +// Возвращает признак того, что файлы могут храниться и в томах и в информационной базе. // // Возвращаемое значение: -// Булево - Истина, если файлы могут храниться и в томах на диске и в информационной базе, иначе - Ложь. +// Булево // Функция ХранитьФайлыВТомахНаДискеИИнформационнойБазе() @@ -1273,7 +1270,7 @@ // Возвращает признак того, что файлы в томах хранятся в подкаталогах с именем владельца. // // Возвращаемое значение: -// Булево - Истина, если файлы в томе хранятся в подкаталогах с именем объекта-владельца, иначе - Ложь. +// Булево // Функция СоздаватьПодкаталогиСИменамиВладельцев() @@ -1346,7 +1343,7 @@ // Добавляет файл в тома при выполнении команды "разместить файлы начального образа". // // Параметры: -// СоответствиеПутейФайлов - Соответствие - соответствие УникальногоИдентификатора файла и пути на диске к файлу. +// СоответствиеПутейФайлов - Соответствие - соответствие УникальногоИдентификатора файла и пути к файлу. // ТипХраненияФайла - ПеречислениеСсылка.ТипыХраненияФайлов - тип хранения файлов. // Процедура ДобавитьФайлыВТомаПриРазмещении(СоответствиеПутейФайлов, ТипХраненияФайла) @@ -1391,7 +1388,7 @@ Иначе - // В базе-приемнике файлы должны храниться в томах на диске - переместим разархивированный файл на том. + // В базе-приемнике файлы должны храниться в томах - переместим разархивированный файл на том. ФайлИсходный = Новый Файл(ПолныйПутьФайлаНаДиске); ИмяФайла = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(Объект.Наименование, Объект.Расширение); ОбщегоНазначения.СократитьИмяФайла(ИмяФайла); @@ -1440,7 +1437,7 @@ #Область ОчисткаНенужныхФайлов -// Конструктор таблицы, содержащей лишние файлы на диске. +// Конструктор таблицы, содержащей лишние файлы в томах. // // Возвращаемое значение: // ТаблицаЗначений: @@ -1585,9 +1582,9 @@ Если СтатусПроверки = "ОК" Тогда Возврат НСтр("ru = 'Целостные данные'"); ИначеЕсли СтатусПроверки = "ЛишнийФайлВТоме" Тогда - Возврат НСтр("ru = 'Лишние файлы (есть на диске, но сведения о них отсутствуют)'"); + Возврат НСтр("ru = 'Лишние файлы (есть в томе, но сведения о них отсутствуют)'"); ИначеЕсли СтатусПроверки = "НетФайлаВТоме" Тогда - Возврат НСтр("ru = 'Отсутствуют файлы в томе на диске'"); + Возврат НСтр("ru = 'Отсутствуют файлы в томе'"); КонецЕсли; КонецФункции @@ -1803,8 +1800,7 @@ Обработчик.Версия = "3.1.8.331"; Обработчик.Процедура = "Справочники.ВерсииФайлов.ОбработатьПутьХраненияВерсий"; Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; - Обработчик.Комментарий = НСтр("ru = 'Исправляет ошибочные пути хранения файлов в томе'"); + Обработчик.Комментарий = НСтр("ru = 'Исправляет ошибочные пути хранения файлов в томе.'"); Обработчик.Идентификатор = Новый УникальныйИдентификатор("06354049-b702-4f27-8e99-f49b86f7f152"); Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.БлокируемыеОбъекты = "Справочник.ВерсииФайлов"; diff --git a/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl index 67d7203ff..75e64efff 100644 --- a/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl @@ -104,7 +104,7 @@ // - Неопределено - показать диалог выбора режима создания файла. // - Число - создать файл указанным способом: // 1 - из шаблона (копированием другого файла); -// 2 - с диска (из файловой системы клиента); +// 2 - с компьютера (из файловой системы); // 3 - со сканера. // // ПараметрыДобавления - Структура - дополнительные параметры добавления файлов: @@ -574,24 +574,271 @@ Процедура ОткрытьФормуНастройкиСканирования() Экспорт Если Не РаботаСФайламиСлужебныйКлиент.ДоступноСканирование() Тогда - ТекстСообщения = НСтр("ru = 'Для сканирования необходимо использовать 32-битную версию программы для ОС Windows.'"); + ТекстСообщения = НСтр("ru = 'Сканирование возможно в программах для операционных систем Microsoft Windows x86 и х64.'"); ПоказатьПредупреждение(, ТекстСообщения); Возврат; КонецЕсли; - КомпонентаУстановлена = РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту(); + Обработчик = Новый ОписаниеОповещения("ОткрытьФормуНастройкиСканированияЗавершение", ЭтотОбъект); - Если Не КомпонентаУстановлена Тогда - ТекстВопроса = - НСтр("ru = 'Для продолжения работы установите компоненту сканирования. - |Установить компоненту?'"); - Обработчик = Новый ОписаниеОповещения("ПоказатьВопросУстановкиКомпонентыСканирования", - ЭтотОбъект, КомпонентаУстановлена); - ПоказатьВопрос(Обработчик, ТекстВопроса, РежимДиалогаВопрос.ДаНет); + РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту(Обработчик, Истина); + +КонецПроцедуры + +// Конструктор параметров параметров конвертации графических документов в PDF. +// +// Возвращаемое значение: +// Структура: +// * ТипРезультата - см. ТипРезультатаКонвертацииИмяФайла +// - см. ТипРезультатаКонвертацииДвоичныеДанные +// - см. ТипРезультатаКонвертацииПрисоединенныйФайл +// * ФорматРезультата - Строка - формат результирующего файла "pdf" или "tif" +// * ИмяФайлаРезультата - см. ТипРезультатаКонвертацииИмяФайла +// * ИспользоватьImageMagick - Булево - признак использования утилиты ImageMagick +// +Функция ПараметрыКонвертацииГрафическогоДокумента() Экспорт + + ПараметрыКонвертации = Новый Структура; + ПараметрыКонвертации.Вставить("ТипРезультата", ТипРезультатаКонвертацииИмяФайла()); + ПараметрыКонвертации.Вставить("ФорматРезультата", "pdf"); + ПараметрыКонвертации.Вставить("ИмяФайлаРезультата", ""); + + НастройкиСканированияПользователя = ПолучитьНастройкиСканированияПользователя(); + + ПараметрыКонвертации.Вставить("ИспользоватьImageMagick", + НастройкиСканированияПользователя.ИспользоватьImageMagickДляПреобразованияВPDF); + + Возврат ПараметрыКонвертации; + +КонецФункции + +// Возвращает тип результата конвертации в файл на клиенте. +// +// Возвращаемое значение: +// Строка +// +Функция ТипРезультатаКонвертацииИмяФайла() Экспорт + + Возврат РаботаСФайламиСлужебныйКлиент.ТипРезультатаКонвертацииИмяФайла(); + +КонецФункции + +// Возвращает тип результата конвертации в двоичные данные. +// +// Возвращаемое значение: +// Строка +// +Функция ТипРезультатаКонвертацииДвоичныеДанные() Экспорт + + Возврат РаботаСФайламиСлужебныйКлиент.ТипРезультатаКонвертацииДвоичныеДанные(); + +КонецФункции + +// Обозначает тип результата конвертации в присоединенный файл. +// +// Возвращаемое значение: +// Строка +// +Функция ТипРезультатаКонвертацииПрисоединенныйФайл() Экспорт + + Возврат РаботаСФайламиСлужебныйКлиент.ТипРезультатаКонвертацииПрисоединенныйФайл(); + +КонецФункции + + +// Объединить массив переданных документов в один, с возможностью конвертации. +// +// Параметры: +// ОповещениеВозврата - ОписаниеОповещения - процедура, которая будет выполнена после объединения файлов. +// ОбъектыДляОбъединения - Массив из ДвоичныеДанные, ОпределяемыйТип.ПрисоединенныйФайл, Строка - +// Объекты могут поступать в виде двоичных данных, ссылки на присоединенный файл, пути к файлам +// на клиенте. +// ПараметрыКонвертацииГрафическогоДокумента - см. РаботаСФайламиКлиент.ПараметрыКонвертацииГрафическогоДокумента. +// +Процедура ОбъединитьВМногостраничныйФайл(ОповещениеВозврата, ОбъектыДляОбъединения, ПараметрыКонвертацииГрафическогоДокумента) Экспорт + + Результат = РезультатОбъединенияВМногостраничныйДокумент(); + НастройкиСканированияПользователя = ПолучитьНастройкиСканированияПользователя(); + + ИспользоватьImageMagick = ПараметрыКонвертацииГрафическогоДокумента.ИспользоватьImageMagick; + ПутьКПрограммеКонвертации = НастройкиСканированияПользователя.ПутьКПрограммеКонвертации; + + Контекст = Новый Структура; + Контекст.Вставить("ОповещениеВозврата", ОповещениеВозврата); + Контекст.Вставить("ОбъектыДляОбъединения", ОбъектыДляОбъединения); + Контекст.Вставить("ПараметрыКонвертацииГрафическогоДокумента", ПараметрыКонвертацииГрафическогоДокумента); + Контекст.Вставить("НастройкиСканированияПользователя", НастройкиСканированияПользователя); + + Если ОбъектыДляОбъединения.Количество() = 0 Тогда + Результат.ОписаниеОшибки = НСтр("ru='Не указаны изображения для объединения.'"); + ВыполнитьОбработкуОповещения(ОповещениеВозврата, Результат); + Возврат; + ИначеЕсли ИспользоватьImageMagick И Не ЗначениеЗаполнено(ПутьКПрограммеКонвертации) Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Не указан путь к программе %1. + |Объединение многостраничных документов выполняется штатными средствами.'"), "ImageMagick"); + + ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(СобытиеЖурналаРегистрации(), + "Предупреждение", ТекстОшибки,, Истина); + Контекст.ПараметрыКонвертацииГрафическогоДокумента.ИспользоватьImageMagick = Ложь; + ОбъединитьВМногостраничныйФайлПродолжение(Контекст); Возврат; КонецЕсли; - ОткрытьФормуНастройкиСканированияЗавершение(КомпонентаУстановлена, Неопределено); + #Если Не ВебКлиент И Не МобильныйКлиент Тогда + + Если ИспользоватьImageMagick Тогда + ОповещениеРезультата = Новый ОписаниеОповещения("ПослеПроверкиНаличияПрограммыКонвертации", ЭтотОбъект, Контекст); + НачатьПроверкуНаличияПрограммыКонвертации(ПутьКПрограммеКонвертации, ОповещениеРезультата); + Возврат; + КонецЕсли; + + ОбъединитьВМногостраничныйФайлПродолжение(Контекст); + + #КонецЕсли +КонецПроцедуры + +// Конструктор параметров для сканирования. +// +// Параметры: +// Заполнить - Булево - заполнять текущими сохраненными для пользователя значениями. +// +// Возвращаемое значение: +// Структура: +// * ПоказыватьДиалог - Булево - признак открытия диалога сканирования (поставляемый драйвером сканера) с возможностью +// настроек разрешения и пр. +// * ВыбранноеУстройство - Строка - имя сканера. +// * ФорматКартинки - Строка - формат картинки запрашиваемый у драйвера. +// * Разрешение - Число - разрешение DPI. +// * Цветность - Число - принимает значения 0 (черно-белое), 1 (оттенки серого), 2 (цветное). +// * Поворот - Число - угол поворота в градусах, допустимы значения 0, 90, 180, 270. Не все сканеры поддерживают эту настройку. +// * РазмерБумаги - Число - не все сканеры поддерживают эту настройку. Принимает значения: +// 0 - не задано +// 11 - А3 +// 1 - А4 +// 5 - А5 +// 6 - B4 +// 2 - B5 +// 7 - B6 +// 14 - C4 +// 15 - C5 +// 16 - C6 +// 3 - USLetter +// 4 - USLegal +// 10 - USExecutive +// * КачествоJPG - Число - для формата JPG передается качество (от 1 до 100, 100 - максимальное качество и +// максимальный размер). +// * СжатиеTIFF - Число - сжатие, значения: +// 2 - LZW +// 3 - CCITT3 +// 4 - CCITT4 +// 5 - RLE +// 6 - без сжатия +// * ДвустороннееСканирование - Булево - использовать двустороннее сканирование +// * СохранятьВPDF - Булево +// * ИспользоватьImageMagickДляПреобразованияВPDF - Булево +// +Функция ПараметрыСканирования(Заполнить = Ложь) Экспорт + СистемнаяИнформация = Новый СистемнаяИнформация(); + ИдентификаторКлиента = СистемнаяИнформация.ИдентификаторКлиента; + ПараметрыСканирования = РаботаСФайламиСлужебныйВызовСервера.ПараметрыСканирования(Заполнить, ИдентификаторКлиента); + Возврат ПараметрыСканирования; + +КонецФункции + +// Конструктор параметров добавления со сканера. +// +// Возвращаемое значение: +// Структура: +// * ОбработчикРезультата - Неопределено, ОписаниеОповещения - оповещение, которое будет вызвано после получения изображений. +// * ВладелецФайла - Неопределено, ОпределяемыйТип.ВладелецФайлов - владелец файла, для получения изображений в +// присоединенные файлы. +// * ФормаВладелец - Неопределено, Форма - форма из которой вызывается добавление файла. +// * НеОткрыватьКарточкуПослеСозданияИзФайла - Булево - для режима создания присоединенных файлов. +// * ЭтоФайл - Булево +// * ТипРезультата - см. ТипРезультатаКонвертацииИмяФайла +// - см. ТипРезультатаКонвертацииДвоичныеДанные +// - см. ТипРезультатаКонвертацииПрисоединенныйФайл +// * ТолькоОдинФайл - Булево - сканировать только одно изображение. +// +Функция ПараметрыДобавленияСоСканера() Экспорт + ПараметрыДобавления = Новый Структура; + ПараметрыДобавления.Вставить("ОбработчикРезультата", Неопределено); + ПараметрыДобавления.Вставить("ВладелецФайла", Неопределено); + ПараметрыДобавления.Вставить("ФормаВладелец", Неопределено); + ПараметрыДобавления.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", Истина); + ПараметрыДобавления.Вставить("ЭтоФайл", Истина); + ПараметрыДобавления.Вставить("ТипРезультата", ТипРезультатаКонвертацииПрисоединенныйФайл()); + ПараметрыДобавления.Вставить("ТолькоОдинФайл", Ложь); + Возврат ПараметрыДобавления; +КонецФункции + +// Добавить со сканера. Если работа со сканером не была предварительно настроена, +// то будут вызвана форма настроек сканирования. +// +// Параметры: +// ПараметрыДобавления - см. ПараметрыДобавленияСоСканера +// ПараметрыСканирования - см. ПараметрыСканирования +// +Процедура ДобавитьСоСканера(ПараметрыДобавления, ПараметрыСканирования = Неопределено) Экспорт + + РаботаСФайламиСлужебныйКлиент.ДобавитьСоСканера(ПараметрыДобавления, ПараметрыСканирования); + +КонецПроцедуры + +// Проверяет, ограничения клиента для работы со сканером. +// +// Возвращаемое значение: +// см. РаботаСФайламиСлужебныйКлиент.ДоступноСканирование +// +Функция ДоступноСканирование() Экспорт + Возврат РаботаСФайламиСлужебныйКлиент.ДоступноСканирование(); +КонецФункции + +// Проверяет установлена ли компонента сканирования и есть ли хоть один подключенный сканер. +// +// Параметры: +// ОповещениеРезультата - ОписаниеОповещения - процедура куда будет передан результат проверки: +// * Результат - Булево - признак доступности сканирования. +// * ДополнительныеПараметры - Произвольный - значение, указанное при создании описания оповещения. +// +Процедура ДоступнаКомандаСканировать(ОповещениеРезультата) Экспорт + ОписаниеОповещения = Новый ОписаниеОповещения("ДоступнаКомандаСканироватьЗавершение", ЭтотОбъект, ОповещениеРезультата); + РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту(ОписаниеОповещения); +КонецПроцедуры + +// Получает настройки сканирования пользователя. +// +// Параметры: +// ИдентификаторКлиента - УникальныйИдентификатор - идентификатор клиента +// +// Возвращаемое значение: +// см. РаботаСФайламиКлиентСервер.НастройкиСканированияПользователя +// +Функция ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента = Неопределено) Экспорт + + Если ИдентификаторКлиента = Неопределено Тогда + СистемнаяИнформация = Новый СистемнаяИнформация(); + ИдентификаторКлиента = СистемнаяИнформация.ИдентификаторКлиента; + КонецЕсли; + + Возврат РаботаСФайламиСлужебныйВызовСервера.ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента); + +КонецФункции + +// Сохраняет настройки сканирования пользователя. +// +// Параметры: +// НастройкиСканированияПользователя - см. РаботаСФайламиКлиентСервер.НастройкиСканированияПользователя +// ИдентификаторКлиента - УникальныйИдентификатор - идентификатор клиента +// +Процедура СохранитьНастройкиСканированияПользователя(НастройкиСканированияПользователя, ИдентификаторКлиента = Неопределено) Экспорт + + Если ИдентификаторКлиента = Неопределено Тогда + СистемнаяИнформация = Новый СистемнаяИнформация(); + ИдентификаторКлиента = СистемнаяИнформация.ИдентификаторКлиента; + КонецЕсли; + + РаботаСФайламиСлужебныйВызовСервера.СохранитьНастройкиСканированияПользователя(НастройкиСканированияПользователя, ИдентификаторКлиента); КонецПроцедуры @@ -604,12 +851,10 @@ // Отказ - Булево - стандартный параметр события ПриОткрытии управляемой формы. // Процедура ПриОткрытии(Форма, Отказ) Экспорт - - НаличиеСканера = РаботаСФайламиСлужебныйКлиентПовтИсп.ДоступнаКомандаСканировать(); + НаличиеСканера = РаботаСФайламиСлужебныйКлиент.ДоступноСканирование(); Если Не НаличиеСканера Тогда ИзменитьВидимостьДополнительныхКоманд(Форма); КонецЕсли; - КонецПроцедуры // Обработчик события ОбработкаОповещения управляемой формы владельца файла. @@ -693,7 +938,7 @@ // Элемент - ПолеФормы - поле предпросмотра. // СтандартнаяОбработка - Булево - стандартный параметр события Нажатие поля формы. // Просмотр - Булево - если параметр принимает значение Истина, открывает файл -// для просмотра. Иначе - загружает файл с диска. +// для просмотра. Иначе - загружает файл с компьютера. // Значение по умолчанию - Ложь. // Процедура ПолеПредпросмотраНажатие(Форма, Элемент, СтандартнаяОбработка, Просмотр = Ложь) Экспорт @@ -922,7 +1167,7 @@ КонецЕсли; КонецПроцедуры -// Процедура печати Файла после получения на диск +// Процедура печати Файла после получения на компьютер. // // Параметры: // Результат - Структура: @@ -963,18 +1208,12 @@ КонецПроцедуры -Процедура ПоказатьВопросУстановкиКомпонентыСканирования(Результат, КомпонентаУстановлена) Экспорт +Процедура ОткрытьФормуНастройкиСканированияЗавершение(РезультатПроверкиИнициализации, ПараметрыВыполнения) Экспорт - Если Результат = КодВозвратаДиалога.Да Тогда - Обработчик = Новый ОписаниеОповещения("ОткрытьФормуНастройкиСканированияЗавершение", ЭтотОбъект); - РаботаСФайламиСлужебныйКлиент.УстановитьКомпоненту(Обработчик); - КонецЕсли; - -КонецПроцедуры - -Процедура ОткрытьФормуНастройкиСканированияЗавершение(КомпонентаУстановлена, ПараметрыВыполнения) Экспорт + КомпонентаУстановлена = РезультатПроверкиИнициализации.Подключено; Если Не КомпонентаУстановлена Тогда + ПоказатьПредупреждение(, РезультатПроверкиИнициализации.ОписаниеОшибки); Возврат; КонецЕсли; @@ -997,6 +1236,237 @@ КонецПроцедуры +Функция ИзображенияДляОбъединения(ОбъектыДляОбъединения, ИспользоватьImageMagick = Ложь) + + ИзображенияДляОбъединения = Новый Массив; + + Если ИспользоватьImageMagick Тогда + Для Каждого ОбъектДляОбъединения Из ОбъектыДляОбъединения Цикл + ИмяФайла = Неопределено; + #Если Не ВебКлиент И Не МобильныйКлиент Тогда + // АПК:441-выкл файл является результатом метода + ИмяВременногоФайла = ПолучитьИмяВременногоФайла(); + // АПК:441-вкл + #Иначе + ИмяВременногоФайла = Неопределено; + #КонецЕсли + + Если ОбъектДляОбъединения = Неопределено Тогда + Продолжить; + ИначеЕсли ТипЗнч(ОбъектДляОбъединения) = Тип("ДвоичныеДанные") Тогда + ИмяФайла = ИмяВременногоФайла; + ОбъектДляОбъединения.Записать(ИмяФайла); + ИначеЕсли ТипЗнч(ОбъектДляОбъединения) = Тип("Строка") Тогда + Если ЭтоАдресВременногоХранилища(ОбъектДляОбъединения) Тогда + СодержимоеАдреса = ПолучитьИзВременногоХранилища(ОбъектДляОбъединения); + Если ТипЗнч(СодержимоеАдреса) = Тип("ДвоичныеДанные") Тогда + ИмяФайла = ИмяВременногоФайла; + СодержимоеАдреса.Записать(ИмяФайла); + ИначеЕсли ТипЗнч(СодержимоеАдреса) = Тип("Картинка") Тогда + ДанныеКартинки = СодержимоеАдреса.ПолучитьДвоичныеДанные(); + ИмяФайла = ИмяВременногоФайла; + ДанныеКартинки.Записать(ИмяФайла); + КонецЕсли; + Иначе + ИмяФайла = ОбъектДляОбъединения; + КонецЕсли; + ИначеЕсли РаботаСФайламиСлужебныйВызовСервера.ЭтоЭлементРаботаСФайлами(ОбъектДляОбъединения) Тогда + ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ОбъектДляОбъединения); + СодержимоеАдреса = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); + ИмяФайла = ИмяВременногоФайла; + СодержимоеАдреса.Записать(ИмяФайла); + КонецЕсли; + + Если ИмяФайла <> Неопределено Тогда + ИзображенияДляОбъединения.Добавить(ИмяФайла); + КонецЕсли; + + КонецЦикла; + Иначе + Для Каждого ОбъектДляОбъединения Из ОбъектыДляОбъединения Цикл + Изображение = Неопределено; + Если ОбъектДляОбъединения = Неопределено Тогда + Продолжить; + ИначеЕсли ТипЗнч(ОбъектДляОбъединения) = Тип("ДвоичныеДанные") Тогда + Изображение = Новый Картинка(ОбъектДляОбъединения); + ИначеЕсли ТипЗнч(ОбъектДляОбъединения) = Тип("Строка") Тогда + Если ЭтоАдресВременногоХранилища(ОбъектДляОбъединения) Тогда + СодержимоеАдреса = ПолучитьИзВременногоХранилища(ОбъектДляОбъединения); + Если ТипЗнч(СодержимоеАдреса) = Тип("ДвоичныеДанные") Тогда + Изображение = Новый Картинка(СодержимоеАдреса); + ИначеЕсли ТипЗнч(СодержимоеАдреса) = Тип("Картинка") Тогда + Изображение = СодержимоеАдреса; + КонецЕсли; + Иначе + Изображение = Новый Картинка(ОбъектДляОбъединения); + КонецЕсли; + ИначеЕсли РаботаСФайламиСлужебныйВызовСервера.ЭтоЭлементРаботаСФайлами(ОбъектДляОбъединения) Тогда + ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ОбъектДляОбъединения); + СодержимоеАдреса = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); + Изображение = Новый Картинка(СодержимоеАдреса); + КонецЕсли; + + Если Изображение <> Неопределено Тогда + ИзображенияДляОбъединения.Добавить(Изображение); + КонецЕсли; + + КонецЦикла; + КонецЕсли; + + Возврат ИзображенияДляОбъединения; +КонецФункции + +Функция РезультатОбъединенияВМногостраничныйДокумент() + Результат = Новый Структура; + Результат.Вставить("ИмяФайлаРезультата", ""); + Результат.Вставить("ДвоичныеДанные"); + Результат.Вставить("ОписаниеОшибки", ""); + Результат.Вставить("Успешно", Ложь); + Возврат Результат; +КонецФункции + +Процедура ОбъединитьВМногостраничныйФайлПослеВыполненияКоманды(РезультатImageMagick, Контекст) Экспорт + + ФайлыИзображений = Контекст.ФайлыИзображений; + ТипРезультата = Контекст.ТипРезультата; + ИмяФайлаРезультата = Контекст.ИмяФайлаРезультата; + ОповещениеВозврата = Контекст.ОповещениеВозврата; + + Результат = РезультатОбъединенияВМногостраничныйДокумент(); + + Если РезультатImageMagick.КодВозврата <> 0 Тогда + Результат.ОписаниеОшибки = РезультатImageMagick.ОписаниеОшибки; + ВыполнитьОбработкуОповещения(ОповещениеВозврата, Результат); + Возврат; + КонецЕсли; + + Для Каждого ФайлИзображения Из ФайлыИзображений Цикл + УдалитьФайлы(ФайлИзображения); + КонецЦикла; + + Если ТипРезультата = ТипРезультатаКонвертацииИмяФайла() Тогда + Результат.ИмяФайлаРезультата = ИмяФайлаРезультата; + ИначеЕсли ТипРезультата = ТипРезультатаКонвертацииДвоичныеДанные() Тогда + ДанныеPDF = Новый ДвоичныеДанные(ИмяФайлаРезультата); + УдалитьФайлы(ИмяФайлаРезультата); + Результат.ДвоичныеДанные = ДанныеPDF; + КонецЕсли; + Результат.Успешно = Истина; + + ВыполнитьОбработкуОповещения(ОповещениеВозврата, Результат); + +КонецПроцедуры + +Процедура ДоступнаКомандаСканироватьЗавершение(РезультатПроверкиИнициализации, ОповещениеРезультата) Экспорт + КомпонентаПроинициализирована = РезультатПроверкиИнициализации.Подключено; + ВыполнитьОбработкуОповещения(ОповещениеРезультата, КомпонентаПроинициализирована); +КонецПроцедуры + +Процедура ПослеПроверкиНаличияПрограммыКонвертации(РезультатЗапуска, Контекст) Экспорт + Если СтрНайти(РезультатЗапуска.ПотокВывода, "ImageMagick") = 0 Тогда + НастройкиСканированияПользователя = Контекст.НастройкиСканированияПользователя; + ПутьКПрограммеКонвертации = НастройкиСканированияПользователя.ПутьКПрограммеКонвертации; + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Ошибочно указан путь к программе %1. + |Объединение многостраничных документов выполняется штатными средствами. + |Указан путь: %2'"), "ImageMagick", ПутьКПрограммеКонвертации); + ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(СобытиеЖурналаРегистрации(), + "Предупреждение", ТекстОшибки,, Истина); + Контекст.ПараметрыКонвертацииГрафическогоДокумента.ИспользоватьImageMagick = Ложь; + КонецЕсли; + ОбъединитьВМногостраничныйФайлПродолжение(Контекст); +КонецПроцедуры + +Процедура ОбъединитьВМногостраничныйФайлПродолжение(Контекст) + ОповещениеВозврата = Контекст.ОповещениеВозврата; + ОбъектыДляОбъединения = Контекст.ОбъектыДляОбъединения; + ПараметрыКонвертацииГрафическогоДокумента = Контекст.ПараметрыКонвертацииГрафическогоДокумента; + НастройкиСканированияПользователя = Контекст.НастройкиСканированияПользователя; + + ИспользоватьImageMagick = ПараметрыКонвертацииГрафическогоДокумента.ИспользоватьImageMagick; + ПутьКПрограммеКонвертации = НастройкиСканированияПользователя.ПутьКПрограммеКонвертации; + + Результат = РезультатОбъединенияВМногостраничныйДокумент(); + + #Если Не ВебКлиент И Не МобильныйКлиент Тогда + ИмяФайлаРезультата = ПараметрыКонвертацииГрафическогоДокумента.ИмяФайлаРезультата; + + Если Не ЗначениеЗаполнено(ИмяФайлаРезультата) Тогда + // АПК:441-выкл файл не удаляется, если является результатом метода + ИмяФайлаРезультата = ПолучитьИмяВременногоФайла(ПараметрыКонвертацииГрафическогоДокумента.ФорматРезультата); + // АПК:441-вкл + КонецЕсли; + + Если Не ИспользоватьImageMagick Тогда + ИзображенияДляОбъединения = ИзображенияДляОбъединения(ОбъектыДляОбъединения); + Если ПараметрыКонвертацииГрафическогоДокумента.ФорматРезультата = "pdf" Тогда + ТабличныйДокумент = РаботаСФайламиСлужебныйВызовСервера.НовыйТабличныйДокументНаСервере(ИзображенияДляОбъединения.Количество()); + Поток = Новый ПотокВПамяти(); + ТабличныйДокумент.Записать(Поток, ТипФайлаТабличногоДокумента.PDF); + + ДокументPDF = Новый ДокументPDF(); + ДокументPDF.Прочитать(Поток); + Для ИндексОбъекта = 0 По ИзображенияДляОбъединения.ВГраница() Цикл + Описание = Новый ОписаниеОтображаемогоОбъектаPDF; + Описание.Имя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Изображение № %1'"), ИндексОбъекта); + Изображение = ИзображенияДляОбъединения[ИндексОбъекта]; + Ширина = Изображение.Ширина(); + Высота = Изображение.Высота(); + ОтношениеА4 = 210/297; + + Если ОтношениеА4*Высота > Ширина Тогда + Описание.Высота = 269; //297 + Описание.Ширина = Описание.Высота * Ширина/Высота; //210 + Иначе + Описание.Ширина = 190; //210 + Описание.Высота = Описание.Ширина * Высота/Ширина; //297 + КонецЕсли; + Описание.Лево = 0; + Описание.Верх = 0; + Описание.НомерСтраницы = ИндексОбъекта+1; + Описание.Объект = Изображение; + ДокументPDF.ДобавитьОтображаемыйОбъект(Описание); + КонецЦикла; + ДокументPDF.Записать(Поток); + ДанныеРезультата = Поток.ЗакрытьИПолучитьДвоичныеДанные(); + ИначеЕсли ПараметрыКонвертацииГрафическогоДокумента.ФорматРезультата = "tif" Тогда + ИзображениеTif = РаботаСФайламиСлужебныйВызовСервера.ОбъединитьИзображенияВTifФайл(ИзображенияДляОбъединения); + ДанныеРезультата = ИзображениеTif.ПолучитьДвоичныеДанные(); + КонецЕсли; + + Если ПараметрыКонвертацииГрафическогоДокумента.ТипРезультата = ТипРезультатаКонвертацииИмяФайла() Тогда + ДанныеРезультата.Записать(ИмяФайлаРезультата); + Результат.ИмяФайлаРезультата = ИмяФайлаРезультата; + Результат.Успешно = Истина; + ИначеЕсли ПараметрыКонвертацииГрафическогоДокумента.ТипРезультата = ТипРезультатаКонвертацииДвоичныеДанные() Тогда + Результат.ДвоичныеДанные = ДанныеРезультата; + Результат.Успешно = Истина; + КонецЕсли; + + ВыполнитьОбработкуОповещения(ОповещениеВозврата, Результат); + Иначе + ФайлыИзображений = ИзображенияДляОбъединения(ОбъектыДляОбъединения, Истина); + + СтрокаФайловИзображений = """" + СтрСоединить(ФайлыИзображений, """" + " " + """") + """"; + КомандыСистемы = """" + ПутьКПрограммеКонвертации + """" +" "+ СтрокаФайловИзображений + " " +""""+ ИмяФайлаРезультата+""""; + + Контекст = Новый Структура; + Контекст.Вставить("ФайлыИзображений", ФайлыИзображений); + Контекст.Вставить("ТипРезультата", ПараметрыКонвертацииГрафическогоДокумента.ТипРезультата); + Контекст.Вставить("ИмяФайлаРезультата", ИмяФайлаРезультата); + Контекст.Вставить("ОповещениеВозврата", ОповещениеВозврата); + + ПараметрыЗапускаПрограммы = ФайловаяСистемаКлиент.ПараметрыЗапускаПрограммы(); + ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина; + ПараметрыЗапускаПрограммы.Оповещение = Новый ОписаниеОповещения("ОбъединитьВМногостраничныйФайлПослеВыполненияКоманды", + ЭтотОбъект, Контекст); + ФайловаяСистемаКлиент.ЗапуститьПрограмму(КомандыСистемы, ПараметрыЗапускаПрограммы); + + КонецЕсли; + + #КонецЕсли +КонецПроцедуры + #Область УправлениеПрисоединеннымиФайлами Функция ПараметрыКомандыУправления(Форма) @@ -1101,31 +1571,71 @@ Форма.ПараметрыРаботыСФайлами.ОписанияЭлементовФормы[НомерЭлемента].ФильтрДиалогаВыбора); ПараметрыДобавленияФайла.Вставить("НеОткрыватьКарточку", Истина); + // ИнтеграцияС1СДокументооборотом + ИспользоватьДОДляХраненияФайловОбъекта = Ложь; + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда + ВерсияБИД = "1.0.0.0"; + СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().Свойство("ВерсияБИД", ВерсияБИД); + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБИД, "3.0.2.4") >= 0 Тогда + МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль( + "ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент"); + ИспользоватьДОДляХраненияФайловОбъекта = + МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ИспользоватьДОДляХраненияФайловОбъекта( + Форма, + Команда, + ВладелецПрисоединенныхФайлов); + КонецЕсли; + КонецЕсли; + // Конец ИнтеграцияС1СДокументооборотом + Если СтрНачинаетсяС(ИмяКоманды, "ОткрытьСписок") Тогда - ПараметрыФормы = Новый Структура(); - ПараметрыФормы.Вставить("ВладелецФайла", ВладелецПрисоединенныхФайлов); - ПараметрыФормы.Вставить("СкрыватьВладельца", Истина); - ПараметрыФормы.Вставить("ТекущаяСтрока", Форма.УникальныйИдентификатор); - ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ПрисоединенныеФайлы", ПараметрыФормы); + Если ИспользоватьДОДляХраненияФайловОбъекта Тогда + + // ИнтеграцияС1СДокументооборотом + МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ОткрытьПрисоединенныеФайлы( + ВладелецПрисоединенныхФайлов); + // Конец ИнтеграцияС1СДокументооборотом + + Иначе + + ПараметрыФормы = Новый Структура(); + ПараметрыФормы.Вставить("ВладелецФайла", ВладелецПрисоединенныхФайлов); + ПараметрыФормы.Вставить("СкрыватьВладельца", Истина); + ПараметрыФормы.Вставить("ТекущаяСтрока", Форма.УникальныйИдентификатор); + ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ПрисоединенныеФайлы", ПараметрыФормы); + + КонецЕсли; ИначеЕсли СтрНачинаетсяС(ИмяКоманды, "ЗагрузитьФайл") Тогда - ИмяКоманды = СтрЗаменить(ИмяКоманды, "ЗагрузитьФайл", ""); - ФайлыВладельца = РаботаСФайламиСлужебныйВызовСервера.КоличествоПрисоединенныхФайлов(ВладелецПрисоединенныхФайлов, Истина); - Если СтрНачинаетсяС(ИмяКоманды, "ТолькоОдинФайл") - И ФайлыВладельца.Количество > 0 Тогда + Если ИспользоватьДОДляХраненияФайловОбъекта Тогда - ДанныеФайла = ФайлыВладельца.ДанныеФайла; // См. РаботаСФайлами.ДанныеФайла - - ПараметрыВыполнения.Действие = "ЗаменитьФайл"; - ПараметрыВыполнения.Вставить("ФайлКартинки", ДанныеФайла.Ссылка); - - РаботаСФайламиСлужебныйКлиент.ОбновитьИзФайлаНаДискеСОповещением(ОбработчикЗавершения, - ДанныеФайла, Форма.УникальныйИдентификатор, ПараметрыДобавленияФайла); + // ИнтеграцияС1СДокументооборотом + МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ДобавитьФайлСДискаКОбъектуИС( + ВладелецПрисоединенныхФайлов, + Форма.УникальныйИдентификатор); + // Конец ИнтеграцияС1СДокументооборотом Иначе - ДобавитьФайл(ОбработчикЗавершения, ВладелецПрисоединенныхФайлов, Форма, 2, ПараметрыДобавленияФайла); + + ИмяКоманды = СтрЗаменить(ИмяКоманды, "ЗагрузитьФайл", ""); + ФайлыВладельца = РаботаСФайламиСлужебныйВызовСервера.КоличествоПрисоединенныхФайлов(ВладелецПрисоединенныхФайлов, Истина); + Если СтрНачинаетсяС(ИмяКоманды, "ТолькоОдинФайл") + И ФайлыВладельца.Количество > 0 Тогда + + ДанныеФайла = ФайлыВладельца.ДанныеФайла; // См. РаботаСФайлами.ДанныеФайла + + ПараметрыВыполнения.Действие = "ЗаменитьФайл"; + ПараметрыВыполнения.Вставить("ФайлКартинки", ДанныеФайла.Ссылка); + + РаботаСФайламиСлужебныйКлиент.ОбновитьИзФайлаНаДискеСОповещением(ОбработчикЗавершения, + ДанныеФайла, Форма.УникальныйИдентификатор, ПараметрыДобавленияФайла); + + Иначе + ДобавитьФайл(ОбработчикЗавершения, ВладелецПрисоединенныхФайлов, Форма, 2, ПараметрыДобавленияФайла); + КонецЕсли; + КонецЕсли; ИначеЕсли СтрНачинаетсяС(ИмяКоманды, "ЗаголовокПрисоединенногоФайла") Тогда @@ -1502,6 +2012,25 @@ КонецПроцедуры +Процедура НачатьПроверкуНаличияПрограммыКонвертации(ПутьКПрограммеКонвертации, ОповещениеРезультата) Экспорт + + КомандыСистемы = """" + ПутьКПрограммеКонвертации + """ -version"; + + ПараметрыЗапускаПрограммы = ФайловаяСистемаКлиент.ПараметрыЗапускаПрограммы(); + ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина; + ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина; + ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина; + + ПараметрыЗапускаПрограммы.Оповещение = ОповещениеРезультата; + ФайловаяСистемаКлиент.ЗапуститьПрограмму(КомандыСистемы, ПараметрыЗапускаПрограммы); +КонецПроцедуры + +Функция СобытиеЖурналаРегистрации() + + Возврат НСтр("ru = 'Файлы'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()); + +КонецФункции + #КонецОбласти #КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl index a72dbd741..6c4fa969e 100644 --- a/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl @@ -57,6 +57,46 @@ КонецПроцедуры +// Настройки сканирования пользователя. +// +// Возвращаемое значение: +// Структура - настройки сканирования пользователя: +// * ПоказыватьДиалогСканера - Булево +// * ИмяУстройства - Строка - НаименованиеСканера +// * ФорматСканированногоИзображения - ПеречислениеСсылка.ФорматыСканированногоИзображения +// * СохранятьВPDF - Булево +// * ФорматХраненияМногостраничный - ПеречислениеСсылка.ФорматыХраненияМногостраничныхФайлов +// * Разрешение - ПеречислениеСсылка.РазрешенияСканированногоИзображения +// * Цветность - ПеречислениеСсылка.ЦветностиИзображения +// * Поворот - ПеречислениеСсылка.СпособыПоворотаИзображения +// * РазмерБумаги - ПеречислениеСсылка.РазмерыБумаги +// * ДвустороннееСканирование - Булево +// * ИспользоватьImageMagickДляПреобразованияВPDF - Булево +// * КачествоJPG - Число +// * СжатиеTIFF - ПеречислениеСсылка.ВариантыСжатияTIFF +// * ПутьКПрограммеКонвертации - Строка +// * ФорматХраненияОдностраничный - ПеречислениеСсылка.ФорматыХраненияОдностраничныхФайлов +// +Функция НастройкиСканированияПользователя() Экспорт + НастройкиСканированияПользователя = Новый Структура; + НастройкиСканированияПользователя.Вставить("ПоказыватьДиалогСканера", Ложь); + НастройкиСканированияПользователя.Вставить("ИмяУстройства", ""); + НастройкиСканированияПользователя.Вставить("ФорматСканированногоИзображения"); + НастройкиСканированияПользователя.Вставить("СохранятьВPDF", Ложь); + НастройкиСканированияПользователя.Вставить("ФорматХраненияМногостраничный"); + НастройкиСканированияПользователя.Вставить("Разрешение"); + НастройкиСканированияПользователя.Вставить("Цветность"); + НастройкиСканированияПользователя.Вставить("Поворот"); + НастройкиСканированияПользователя.Вставить("РазмерБумаги"); + НастройкиСканированияПользователя.Вставить("ДвустороннееСканирование", Ложь); + НастройкиСканированияПользователя.Вставить("ИспользоватьImageMagickДляПреобразованияВPDF", Ложь); + НастройкиСканированияПользователя.Вставить("КачествоJPG", 0); + НастройкиСканированияПользователя.Вставить("СжатиеTIFF"); + НастройкиСканированияПользователя.Вставить("ПутьКПрограммеКонвертации", ""); + НастройкиСканированияПользователя.Вставить("ФорматХраненияОдностраничный"); + Возврат НастройкиСканированияПользователя; +КонецФункции + #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl index 825369bba..c1da40858 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl @@ -178,6 +178,7 @@ СпрашиватьРежимРедактированияПриОткрытииФайла()); ПерсональныеНастройки.Вставить("ВариантОткрытияФайла", ВариантОткрытияФайла()); + // Устарел. Следует использовать ПользователиКлиент.ЭтоПолноправныйПользователь. ПерсональныеНастройки.Вставить("ЭтоПолноправныйПользователь", Пользователи.ЭтоПолноправныйПользователь(,, Ложь)); @@ -920,6 +921,23 @@ КонецФункции +// Возвращает Истина, если это элемент данных, относящийся к подсистеме РаботаСФайлами. +// +Функция ЭтоЭлементРаботаСФайлами(ЭлементДанных) Экспорт + + ТипЭлементаДанных = ТипЗнч(ЭлементДанных); + Если ТипЭлементаДанных = Тип("УдалениеОбъекта") Тогда + Возврат Ложь; + КонецЕсли; + + МетаданныеЭлемента = ЭлементДанных.Метаданные(); + + Возврат ОбщегоНазначения.ЭтоСправочник(МетаданныеЭлемента) + И (Метаданные.ОпределяемыеТипы.ПрисоединенныйФайлОбъект.Тип.СодержитТип(ТипЭлементаДанных) + ИЛИ (Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип.СодержитТип(ТипЭлементаДанных))); + +КонецФункции + #КонецОбласти #Область РаботаСТомамиФайлов @@ -1247,10 +1265,14 @@ // Процедура ЗаписатьИнформациюОШифровании(ФайлСсылка, ПараметрыЗаписиИнформацииОШифровании) Экспорт + ТекущаяВерсияФайла = ТекущаяВерсия(ФайлСсылка); + + АдресВременногоХранилищаТекстаТекущейВерсии = ""; + АдресВременногоХранилищаОсновногоФайла = ""; + НачатьТранзакцию(); Попытка - АдресВременногоХранилищаТекстаТекущейВерсии = ""; - АдресВременногоХранилищаОсновногоФайла = ""; + Для Каждого ДанныеДляЗаписиНаСервере Из ПараметрыЗаписиИнформацииОШифровании.МассивДанныхДляЗанесенияВБазу Цикл Если ТипЗнч(ДанныеДляЗаписиНаСервере.ВерсияСсылка) <> Тип("СправочникСсылка.ВерсииФайлов") Тогда @@ -1262,7 +1284,7 @@ ВерсияСсылка = ДанныеДляЗаписиНаСервере.ВерсияСсылка; // СправочникСсылка.ВерсииФайлов АдресВременногоХранилищаТекста = ДанныеДляЗаписиНаСервере.АдресВременногоХранилищаТекста; - Если ВерсияСсылка = ФайлСсылка.ТекущаяВерсия Тогда + Если ВерсияСсылка = ТекущаяВерсияФайла Тогда АдресВременногоХранилищаТекстаТекущейВерсии = АдресВременногоХранилищаТекста; КонецЕсли; @@ -1304,7 +1326,7 @@ // @skip-check query-in-loop - По-объектная запись данных. ОбновитьВерсиюФайла(ФайлСсылка, СведенияОФайле, ВерсияСсылка, ПараметрыЗаписиИнформацииОШифровании.УникальныйИдентификатор); - // Для варианта с хранением файлов на диске (на сервере) удаляем Файл из временного хранилища после получения. + // Для варианта с хранением файлов в томах удаляем Файл из временного хранилища после получения. Если Не ПустаяСтрока(ДанныеДляЗаписиНаСервере.АдресФайла) И ЭтоАдресВременногоХранилища(ДанныеДляЗаписиНаСервере.АдресФайла) Тогда УдалитьИзВременногоХранилища(ДанныеДляЗаписиНаСервере.АдресФайла); КонецЕсли; @@ -1356,7 +1378,7 @@ МетаданныеФайла = Метаданные.НайтиПоТипу(ТипЗнч(ФайлСсылка)); ВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеФайла); - Если Не ФайлОбъект.ХранитьВерсии Или (ВозможностьХранитьВерсии И Не ЗначениеЗаполнено(ФайлОбъект.ТекущаяВерсия)) Тогда + Если Не ФайлОбъект.ХранитьВерсии Или (ВозможностьХранитьВерсии И Не ЗначениеЗаполнено(ТекущаяВерсияФайла)) Тогда ОбновитьДвоичныеДанныеФайлаНаСервере(ФайлОбъект, АдресВременногоХранилищаОсновногоФайла); КонецЕсли; @@ -1379,6 +1401,7 @@ КонецПроцедуры + #КонецОбласти #Область КонтрольВеденияУчета @@ -1942,7 +1965,7 @@ #Область ОбработчикиРегламентныхЗаданий // Обработчик регламентного задания ИзвлечениеТекста. -// Извлекает текст из файлов на диске. +// Извлекает текст из файлов для полнотекстового поиска. // Процедура ИзвлечьТекстИзФайловНаСервере() Экспорт @@ -2075,6 +2098,30 @@ КонецФункции +Функция ПреобразоватьФорматСканированияВФорматХранения(ФорматСканирования, СохранятьВPDF) Экспорт + + Если СохранятьВPDF Тогда + Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.PDF; + ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.BMP Тогда + Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.BMP; + ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.GIF Тогда + Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.GIF; + ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.JPG Тогда + Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.JPG; + ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.PNG Тогда + Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG; + ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.TIF Тогда + Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.TIF; + КонецЕсли; + + Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG; + +КонецФункции + +Функция КомандаСканироватьЛист() Экспорт + Возврат "e1cib/command/Обработка.Сканирование.Команда.СканироватьЛист"; +КонецФункции + #КонецОбласти #Область ОчисткаНенужныхФайлов @@ -2386,7 +2433,6 @@ Обработчик.Идентификатор = Новый УникальныйИдентификатор("d70f378a-41f5-4b0a-a1a7-f4ba27c7f91b"); Обработчик.Процедура = "РаботаСФайлами.ПеренестиЭлектронныеПодписиИСертификатыШифрованияВРегистрыСведений"; Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РаботаСФайламиСлужебный.ЗарегистрироватьОбъектыДляПереносаЭлектронныхПодписейИСертификатовШифрования"; Обработчик.ЧитаемыеОбъекты = СтрСоединить(ПолныеИменаСправочниковПрисоединенныхФайлов(), ", "); Обработчик.ИзменяемыеОбъекты = ИзменяемыеОбъектыПриПереносеЭлектронныхПодписейИСертификатовШифрования() + "," + СтрСоединить(ПолныеИменаСправочниковПрисоединенныхФайлов(), ", "); @@ -2419,7 +2465,6 @@ Обработчик.ЧитаемыеОбъекты = "Справочник.Файлы"; Обработчик.ИзменяемыеОбъекты = "Справочник.Файлы,РегистрСведений.НаличиеФайлов"; Обработчик.БлокируемыеОбъекты = "Справочник.Файлы"; - Обработчик.ОчередьОтложеннойОбработки = 3; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); @@ -2448,7 +2493,6 @@ Обработчик.ЧитаемыеОбъекты = "Справочник.Файлы"; Обработчик.ИзменяемыеОбъекты = "Справочник.Файлы,РегистрСведений.СведенияОФайлах"; Обработчик.БлокируемыеОбъекты = "Справочник.Файлы,Справочник.ВерсииФайлов"; - Обработчик.ОчередьОтложеннойОбработки = 5; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.Файлы.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); @@ -2474,7 +2518,6 @@ Обработчик.РежимВыполнения = "Отложенно"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("5137a43e-75aa-4a68-ba2f-525a3a646af8"); Обработчик.Многопоточный = Истина; - Обработчик.ОчередьОтложеннойОбработки = 4; Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.СведенияОФайлах.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.Комментарий = НСтр("ru = 'Перенос информации о файлах в регистр сведений Сведения о файлах.'"); @@ -2518,7 +2561,6 @@ Обработчик.Процедура = "РегистрыСведений.ДвоичныеДанныеФайлов.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.Версия = "3.1.3.260"; Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 6; Обработчик.Идентификатор = Новый УникальныйИдентификатор("84e58943-94fe-4f92-99b3-91be534d3754"); Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.ДвоичныеДанныеФайлов.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; @@ -3255,7 +3297,7 @@ // Файлы с версиями // Файлы в справочниках ПрисоединенныеФайлы - // Копируем файл из тома на диске в каталог создания начального образа. + // Копируем файл из тома в каталог создания начального образа. НовыйПутьФайла = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( Строка(ХранилищеОбщихНастроек.Загрузить("ОбменФайлами", "ВременныйКаталог")), ЭлементДанных.Ссылка.Метаданные().Имя + "." + ЭлементДанных.Ссылка.УникальныйИдентификатор()); @@ -3415,22 +3457,6 @@ КонецПроцедуры -// Возвращает Истина, если это элемент данных, относящийся к подсистеме РаботаСФайлами. -// -Функция ЭтоЭлементРаботаСФайлами(ЭлементДанных) - - ТипЭлементаДанных = ТипЗнч(ЭлементДанных); - Если ТипЭлементаДанных = Тип("УдалениеОбъекта") Тогда - Возврат Ложь; - КонецЕсли; - - МетаданныеЭлемента = ЭлементДанных.Метаданные(); - - Возврат ОбщегоНазначения.ЭтоСправочник(МетаданныеЭлемента) - И (Метаданные.ОпределяемыеТипы.ПрисоединенныйФайлОбъект.Тип.СодержитТип(ТипЭлементаДанных) - ИЛИ (Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип.СодержитТип(ТипЭлементаДанных))); - -КонецФункции // Записывает двоичные данные файла в информационную базу. // @@ -4139,12 +4165,13 @@ КонецФункции -// Делает ПоместитьВоВременноеХранилище (если файл хранится на диске) и возвращает нужную ссылку. +// Делает ПоместитьВоВременноеХранилище (если файл хранится в томе) и возвращает нужную ссылку. +// // Параметры: // ВерсияСсылка - СправочникСсылка.ВерсииФайлов - версия файла. // ИдентификаторФормы - УникальныйИдентификатор // - Неопределено - уникальный идентификатор формы. -// ВыбрасыватьИсключение - Булево - выбрасывать исключение, если тип хранения "В томах на диске" +// ВыбрасыватьИсключение - Булево - выбрасывать исключение, если тип хранения "В томах" // и во время получения файла возникла ошибка. // // Возвращаемое значение: @@ -4305,6 +4332,16 @@ КонецФункции +// Параметры: +// ФайлСсылка - СправочникСсылка.Файлы +// +// Возвращаемое значение: +// СправочникСсылка.ВерсииФайлов +// +Функция ТекущаяВерсия(ФайлСсылка) + Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлСсылка, "ТекущаяВерсия"); +КонецФункции + // Добавляет элементы отбора компоновки данных в динамические списки файлов. // // Параметры: @@ -4534,7 +4571,7 @@ Если ЭлементДанных.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - // Помещаем данные файла из тома на диске в служебный реквизит справочника. + // Помещаем данные файла из тома в служебный реквизит справочника. РаботаСФайламиВТомахСлужебный.ПоместитьФайлВРеквизитСправочника(ЭлементДанных); Иначе @@ -4765,7 +4802,7 @@ ИначеЕсли ТипХраненияФайловШаблона = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске И ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - // И шаблон, и новый Файл - на диске - просто копируем файл. + // И шаблон, и новый файл в томе - просто копируем файл. Если Не СведенияОФайле.СсылкаНаВерсиюИсточник.Том.Пустая() Тогда ПолныйПутьФайлаШаблона = РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме( РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме(СведенияОФайле.СсылкаНаВерсиюИсточник)); @@ -4775,20 +4812,20 @@ ИначеЕсли ТипХраненияФайловШаблона = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе И ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - // Шаблон в базе, новый Файл - на диске. + // Шаблон в базе, новый файл в томе. // В этом случае в АдресВременногоХранилищаФайла находится ХранилищеЗначения с файлом. РаботаСФайламиВТомахСлужебный.ДобавитьФайл(Версия, СведенияОФайле.АдресВременногоХранилищаФайла.Получить()); ИначеЕсли ТипХраненияФайловШаблона = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске И ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - // Шаблон на диске, новый Файл - в базе. + // Шаблон в томе, новый файл - в базе. Если Не СведенияОФайле.СсылкаНаВерсиюИсточник.Том.Пустая() Тогда ДвоичныеДанныеИлиПуть = РаботаСФайламиВТомахСлужебный.ДанныеФайла(СведенияОФайле.СсылкаНаВерсиюИсточник); КонецЕсли; КонецЕсли; - Иначе // Создание объекта Файл на основе выбранного файла с диска. + Иначе // Создание объекта Файл на основе выбранного файла с компьютера. Если ЭтоАдресВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла) Тогда @@ -4945,8 +4982,8 @@ ВерсияСсылкаДляСравненияРазмера = ВерсияСсылка; Если ВерсияСсылка <> Неопределено Тогда ВерсияСсылкаДляСравненияРазмера = ВерсияСсылка; - ИначеЕсли ВозможностьХранитьВерсии И ЗначениеЗаполнено(ФайлСсылка.ТекущаяВерсия)Тогда - ВерсияСсылкаДляСравненияРазмера = ФайлСсылка.ТекущаяВерсия; + ИначеЕсли ВозможностьХранитьВерсии И ЗначениеЗаполнено(ТекущаяВерсия(ФайлСсылка))Тогда + ВерсияСсылкаДляСравненияРазмера = ТекущаяВерсия(ФайлСсылка); Иначе ВерсияСсылкаДляСравненияРазмера = ФайлСсылка; КонецЕсли; @@ -4982,18 +5019,20 @@ ЗаголовокОшибки = НСтр("ru = 'Ошибка при записи новой версии присоединенных файлов.'"); ОкончаниеОшибки = НСтр("ru = 'В этом случае запись версии файла невозможна.'"); + ЗначенияРеквизитовФайла = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлСсылка, "ВладелецФайла,ТекущаяВерсия"); + ИмяСправочникаХранилищаВерсийФайлов = ИмяСправочникаХраненияВерсийФайлов( - ТипЗнч(ФайлСсылка.ВладелецФайла), "", ЗаголовокОшибки, ОкончаниеОшибки); + ТипЗнч(ЗначенияРеквизитовФайла.ВладелецФайла), "", ЗаголовокОшибки, ОкончаниеОшибки); Версия = Справочники[ИмяСправочникаХранилищаВерсийФайлов].СоздатьЭлемент(); - Версия.РодительскаяВерсия = ФайлСсылка.ТекущаяВерсия; + Версия.РодительскаяВерсия = ЗначенияРеквизитовФайла.ТекущаяВерсия; Версия.НомерВерсии = МаксимальныйНомерВерсии(ФайлСсылка) + 1; СсылкаНаВерсию = Справочники[ИмяСправочникаХранилищаВерсийФайлов].ПолучитьСсылку(Новый УникальныйИдентификатор()); Версия.УстановитьСсылкуНового(СсылкаНаВерсию); Иначе - СсылкаНаВерсию = ?(ВерсияСсылка = Неопределено, ФайлСсылка.ТекущаяВерсия, ВерсияСсылка); + СсылкаНаВерсию = ?(ВерсияСсылка = Неопределено, ТекущаяВерсия(ФайлСсылка), ВерсияСсылка); Версия = СсылкаНаВерсию.ПолучитьОбъект(); БлокироватьВерсию = Истина; @@ -7628,6 +7667,7 @@ КонецЕсли; МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись"); + МодульЭлектроннаяПодписьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСервер"); ПодписиВФайле = МодульЭлектроннаяПодпись.УстановленныеПодписи(ФайлСсылка); ОшибкаНеУдалосьПрочитатьДанныеПодписи = ""; @@ -7680,13 +7720,21 @@ Продолжить; КонецЕсли; - ОписаниеОшибки = ""; - ДанныеПодписи = МодульЭлектроннаяПодпись.ПрочитатьДанныеПодписи(Подпись, ОписаниеОшибки); + ДанныеПодписи = МодульЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи(); + ДанныеПодписи.Подпись = Подпись; - Если Не ПустаяСтрока(ОписаниеОшибки) И ПустаяСтрока(ОшибкаНеУдалосьПрочитатьДанныеПодписи) Тогда - ТекстСобытия = НСтр("ru = 'Не удалось прочитать данные подписей файла %1: %2'"); - ОшибкаНеУдалосьПрочитатьДанныеПодписи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ТекстСобытия, ИмяФайла, ОписаниеОшибки); + РезультатЧтенияСвойствПодписи = МодульЭлектроннаяПодпись.СвойстваПодписи(Подпись); + + Если РезультатЧтенияСвойствПодписи.Успех <> Ложь Тогда + ЗаполнитьЗначенияСвойств(ДанныеПодписи, РезультатЧтенияСвойствПодписи); + ДанныеПодписи.Вставить("ДатаПодписиИзМетки", РезультатЧтенияСвойствПодписи.ДатаПодписиИзМетки); + ДанныеПодписи.Вставить("НеподтвержденнаяДатаПодписи", РезультатЧтенияСвойствПодписи.НеподтвержденнаяДатаПодписи); + Иначе + Если ПустаяСтрока(ОшибкаНеУдалосьПрочитатьДанныеПодписи) Тогда + ТекстСобытия = НСтр("ru = 'Не удалось прочитать данные подписей файла %1: %2'"); + ОшибкаНеУдалосьПрочитатьДанныеПодписи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ТекстСобытия, ИмяФайла, РезультатЧтенияСвойствПодписи.ТекстОшибки); + КонецЕсли; КонецЕсли; ПодписиДляДобавления.Добавить(ДанныеПодписи); @@ -8611,6 +8659,7 @@ |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТВиртуальныеКорневыеПапки.ФайлСсылка КАК ФайлСсылка, + | ЕСТЬNULL(ИдентификаторыОбъектовМетаданных.Синоним, """") КАК Синоним, | ВТВиртуальныеКорневыеПапки.ЭтоФайл КАК ЭтоФайл, | ЛОЖЬ КАК ПометкаУдаления, | ИСТИНА КАК ЭтоПапка, @@ -8628,6 +8677,8 @@ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыСинхронизацииФайловСОблачнымСервисом КАК СтатусыСинхронизацииФайловСОблачнымСервисом | ПО ВТВиртуальныеКорневыеПапки.УчетнаяЗапись = СтатусыСинхронизацииФайловСОблачнымСервисом.УчетнаяЗапись | И ВТВиртуальныеКорневыеПапки.ФайлСсылка = СтатусыСинхронизацииФайловСОблачнымСервисом.Файл + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных + | ПО ВТВиртуальныеКорневыеПапки.ФайлСсылка = ИдентификаторыОбъектовМетаданных.Ссылка |ГДЕ | ВТВиртуальныеКорневыеПапки.ФайлСсылка В (&ВладельцыФайлов) |; @@ -8651,7 +8702,7 @@ МассивВиртуальныхПапок.Добавить(ВыборкаДетальныеЗаписи.ФайлСсылка); СтрокаВиртуальнойКорневойПапки = ТаблицаФайлов.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаВиртуальнойКорневойПапки, ВыборкаДетальныеЗаписи); - СтрокаВиртуальнойКорневойПапки.Наименование = СтрЗаменить(ВыборкаДетальныеЗаписи.ФайлСсылка.Синоним, ":", ""); + СтрокаВиртуальнойКорневойПапки.Наименование = СтрЗаменить(ВыборкаДетальныеЗаписи.Синоним, ":", ""); КонецЦикла; Возврат ТаблицаФайлов; @@ -9133,14 +9184,14 @@ КонецФункции -// Получает полный путь к файлу на диске. +// Получает полный путь к файлу. // // Параметры: // ОбъектСсылка - ОпределяемыйТип.ПрисоединенныйФайлОбъект - элемент справочника с файлами, -// для которого необходимо получить путь к файлу на диске. +// для которого необходимо получить путь к файлу. // // Возвращаемое значение: -// Строка - полный путь к файлу на диске. +// Строка // Функция ИмяФайлаСДвоичнымиДанными(ОбъектСсылка) diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl index 56e5eaaca..575bd3401 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl @@ -47,10 +47,9 @@ МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(ФайлИлиВерсияСсылка)); ЭтоСправочникФайлов = ОбщегоНазначения.ЕстьРеквизитОбъекта("ВладелецФайла", МетаданныеОбъекта); ВозможностьХранитьВерсии = ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъекта); - ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; - + Если ВозможностьХранитьВерсии И ЗначениеЗаполнено(ФайлИлиВерсияСсылка.ТекущаяВерсия) Тогда @@ -58,7 +57,7 @@ ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка, ВерсияСсылка, ПараметрыДанныхФайла); ИначеЕсли ЭтоСправочникФайлов Тогда ВерсияСсылка = ФайлИлиВерсияСсылка; - ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка,, ПараметрыДанныхФайла); + ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка, , ПараметрыДанныхФайла); Иначе ВерсияСсылка = ФайлИлиВерсияСсылка; ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка.Владелец, ВерсияСсылка, ПараметрыДанныхФайла); @@ -221,10 +220,11 @@ ВерсииФайлов = Новый Соответствие; + ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; + Для Каждого ПрисоединенныйФайл Из Файлы Цикл РаботаСФайламиСлужебный.ОсвободитьФайл(ПрисоединенныйФайл); - ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); - ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; ДанныеФайла = ДанныеФайла(ПрисоединенныйФайл,,ПараметрыДанныхФайла); ВерсииФайлов.Вставить(ПрисоединенныйФайл, ДанныеФайла.ТекущаяВерсия); КонецЦикла; @@ -319,13 +319,16 @@ // Функция ДанныеФайловДляПодписания(Знач Файлы, ИдентификаторФормы = Неопределено) Экспорт + Если ТипЗнч(Файлы) <> Тип("Массив") Тогда + ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы; + ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; + Возврат ДанныеФайла(Файлы,,ПараметрыДанныхФайла); + КонецЕсли; + ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы; - Если ТипЗнч(Файлы) <> Тип("Массив") Тогда - Возврат ДанныеФайла(Файлы,,ПараметрыДанныхФайла); - КонецЕсли; - ДанныеФайлов = Новый Массив; Для Каждого Файл Из Файлы Цикл ДанныеФайлов.Добавить(ДанныеФайла(Файл,,ПараметрыДанныхФайла)); @@ -341,11 +344,10 @@ // ФайлСсылка - см. РаботаСФайлами.ДвоичныеДанныеФайла.ПрисоединенныйФайл. // ВерсияСсылка - СправочникСсылка.ВерсииФайлов - версия файла по которой формируются данные, если не указан то по // текущей версии или файлу. -// ПараметрыДанныхФайла - см. РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла -// +// ПараметрыДанныхФайла - см. РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла. // // Возвращаемое значение: -// Структура -Данные файла: +// Структура: // * Автор - СправочникСсылка.Пользователи // * АвторТекущейВерсии - СправочникСсылка.Пользователи // * ВРабочемКаталогеНаЧтение - Булево @@ -542,9 +544,10 @@ ВерсияСсылка = ФайлСсылка.ТекущаяВерсия; КонецЕсли; - + ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы; + ДанныеФайла = ДанныеФайла(ФайлСсылка, ВерсияСсылка, ПараметрыДанныхФайла); Если РабочийКаталогВладельца = Неопределено Тогда РабочийКаталогВладельца = РабочийКаталогПапки(ДанныеФайла.Владелец); @@ -661,10 +664,12 @@ КоличествоФайлов = ТаблицаФайлов.Количество(); ФайлыВладельца.КоличествоФайлов = КоличествоФайлов; + + ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; + ПараметрыДанныхФайла.ВызыватьИсключение = Ложь; + Если ВозвращатьДанныеФайлов И КоличествоФайлов > 0 Тогда - ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); - ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; - ПараметрыДанныхФайла.ВызыватьИсключение = Ложь; Если РеквизитРазмещения = Неопределено Или Не ЗначениеЗаполнено(ВладелецФайлов[РеквизитРазмещения]) Тогда ФайлыВладельца.ДанныеФайла = ДанныеФайла(ТаблицаФайлов[0].Файл, , ПараметрыДанныхФайла); Иначе @@ -678,6 +683,134 @@ КонецФункции +Функция ЭтоЭлементРаботаСФайлами(ЭлементДанных) Экспорт + Возврат РаботаСФайламиСлужебный.ЭтоЭлементРаботаСФайлами(ЭлементДанных); +КонецФункции + +Функция НовыйТабличныйДокументНаСервере(КоличествоСтраниц) Экспорт + ТабличныйДокумент =Новый ТабличныйДокумент; + ПустаяОбласть = ТабличныйДокумент.ПолучитьОбласть(1,1,1,1); + Для ИндексОбъекта = 1 По КоличествоСтраниц Цикл + ТабличныйДокумент.Вывести(ПустаяОбласть); + ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); + КонецЦикла; + Возврат ТабличныйДокумент; +КонецФункции + +Функция КонвертироватьНастройкиСканирования(ВходящиеНастройки) Экспорт + НастройкиПеречислениями = Новый Структура("Разрешение, Цветность, Поворот, РазмерБумаги, СжатиеTIFF"); + Результат = Новый Структура("Разрешение, Цветность, Поворот, РазмерБумаги, СжатиеTIFF"); + + ЗаполнитьЗначенияСвойств(НастройкиПеречислениями, ВходящиеНастройки); + + Результат.Разрешение = -1; + Если НастройкиПеречислениями.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi200 Тогда + Результат.Разрешение = 200; + ИначеЕсли НастройкиПеречислениями.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi300 Тогда + Результат.Разрешение = 300; + ИначеЕсли НастройкиПеречислениями.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi600 Тогда + Результат.Разрешение = 600; + ИначеЕсли НастройкиПеречислениями.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi1200 Тогда + Результат.Разрешение = 1200; + КонецЕсли; + + Результат.Цветность = -1; + Если НастройкиПеречислениями.Цветность = Перечисления.ЦветностиИзображения.Монохромное Тогда + Результат.Цветность = 0; + ИначеЕсли НастройкиПеречислениями.Цветность = Перечисления.ЦветностиИзображения.ГрадацииСерого Тогда + Результат.Цветность = 1; + ИначеЕсли НастройкиПеречислениями.Цветность = Перечисления.ЦветностиИзображения.Цветное Тогда + Результат.Цветность = 2; + КонецЕсли; + + Результат.Поворот = 0; + Если НастройкиПеречислениями.Поворот = Перечисления.СпособыПоворотаИзображения.НетПоворота Тогда + Результат.Поворот = 0; + ИначеЕсли НастройкиПеречислениями.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа90 Тогда + Результат.Поворот = 90; + ИначеЕсли НастройкиПеречислениями.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа180 Тогда + Результат.Поворот = 180; + ИначеЕсли НастройкиПеречислениями.Поворот = Перечисления.СпособыПоворотаИзображения.ВлевоНа90 Тогда + Результат.Поворот = 270; + КонецЕсли; + + Результат.РазмерБумаги = 0; + Если НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.НеЗадано Тогда + Результат.РазмерБумаги = 0; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.A3 Тогда + Результат.РазмерБумаги = 11; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.A4 Тогда + Результат.РазмерБумаги = 1; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.A5 Тогда + Результат.РазмерБумаги = 5; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.B4 Тогда + Результат.РазмерБумаги = 6; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.B5 Тогда + Результат.РазмерБумаги = 2; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.B6 Тогда + Результат.РазмерБумаги = 7; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.C4 Тогда + Результат.РазмерБумаги = 14; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.C5 Тогда + Результат.РазмерБумаги = 15; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.C6 Тогда + Результат.РазмерБумаги = 16; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.USLetter Тогда + Результат.РазмерБумаги = 3; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.USLegal Тогда + Результат.РазмерБумаги = 4; + ИначеЕсли НастройкиПеречислениями.РазмерБумаги = Перечисления.РазмерыБумаги.USExecutive Тогда + Результат.РазмерБумаги = 10; + КонецЕсли; + + Результат.СжатиеTIFF = 6; // БезСжатия + Если НастройкиПеречислениями.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.LZW Тогда + Результат.СжатиеTIFF = 2; + ИначеЕсли НастройкиПеречислениями.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.RLE Тогда + Результат.СжатиеTIFF = 5; + ИначеЕсли НастройкиПеречислениями.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.БезСжатия Тогда + Результат.СжатиеTIFF = 6; + ИначеЕсли НастройкиПеречислениями.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.CCITT3 Тогда + Результат.СжатиеTIFF = 3; + ИначеЕсли НастройкиПеречислениями.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.CCITT4 Тогда + Результат.СжатиеTIFF = 4; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ПараметрыСканирования(Заполнить = Ложь, ИдентификаторКлиента = Неопределено) Экспорт + ПараметрыСканирования = Новый Структура; + ПараметрыСканирования.Вставить("ПоказыватьДиалог", Истина); + ПараметрыСканирования.Вставить("ВыбранноеУстройство", ""); + ПараметрыСканирования.Вставить("ФорматКартинки", "png"); + ПараметрыСканирования.Вставить("Разрешение", 200); + ПараметрыСканирования.Вставить("Цветность", 1); + ПараметрыСканирования.Вставить("Поворот", 0); + ПараметрыСканирования.Вставить("РазмерБумаги", 1); + ПараметрыСканирования.Вставить("КачествоJPG", 100); + ПараметрыСканирования.Вставить("СжатиеTIFF", 6); + ПараметрыСканирования.Вставить("ДвустороннееСканирование", Ложь); + ПараметрыСканирования.Вставить("СохранятьВPDF", Ложь); + ПараметрыСканирования.Вставить("ИспользоватьImageMagickДляПреобразованияВPDF", Ложь); + + Если Заполнить И ИдентификаторКлиента <> Неопределено Тогда + НастройкиСканированияПользователя = РаботаСФайлами.ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента); + ЗаполнитьЗначенияСвойств(ПараметрыСканирования, НастройкиСканированияПользователя); + КонецЕсли; + + Возврат ПараметрыСканирования; +КонецФункции + +Функция ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента) Экспорт + Возврат РаботаСФайлами.ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента); +КонецФункции + +Процедура СохранитьНастройкиСканированияПользователя(НастройкиСканированияКлиента, ИдентификаторКлиента) Экспорт + РаботаСФайлами.СохранитьНастройкиСканированияПользователя(НастройкиСканированияКлиента, ИдентификаторКлиента); +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -898,7 +1031,7 @@ Версия.ПутьКФайлу = ""; Версия.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); - Иначе // хранение на диске + Иначе // хранение в томе Если Версия.Размер = 0 Тогда Версия.Размер = ДвоичныеДанные.Размер(); @@ -994,7 +1127,7 @@ ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; - ДанныеФайлаТекущие = ДанныеФайла(ДанныеФайла.Ссылка,, ПараметрыДанныхФайла); + ДанныеФайлаТекущие = ДанныеФайла(ДанныеФайла.Ссылка,,ПараметрыДанныхФайла); Если Не ДанныеФайлаТекущие.ФайлРедактируетТекущийПользователь И НЕ ФайлСинхронизируетсяОблачнымСервисом(ДанныеФайла.Ссылка) Тогда ВызватьИсключение НСтр("ru = 'Файл не занят текущим пользователем'"); КонецЕсли; @@ -1046,6 +1179,7 @@ ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; + ДанныеФайла = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла); ВерсияСоздана = СохранитьИзмененияИОсвободитьФайл(ДанныеФайла, СведенияОФайле, Ложь, ПолныйПутьКФайлу, РабочийКаталогПользователя, УникальныйИдентификаторФормы); @@ -1076,7 +1210,6 @@ ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; - ДанныеФайлаТекущие = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла); Если Не ДанныеФайлаТекущие.ФайлРедактируетТекущийПользователь И НЕ ФайлСинхронизируетсяОблачнымСервисом(ФайлСсылка) Тогда ВызватьИсключение НСтр("ru = 'Файл не занят текущим пользователем'"); @@ -1263,11 +1396,12 @@ Функция ПеренестиФайлы(ОбъектыСсылка, Папка) Экспорт ДанныеФайлов = Новый Массив; + + ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; Для Каждого ФайлСсылка Из ОбъектыСсылка Цикл ПеренестиФайл(ФайлСсылка, Папка); - ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); - ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; ДанныеФайла = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла); ДанныеФайлов.Добавить(ДанныеФайла); КонецЦикла; @@ -1405,10 +1539,11 @@ КонецФункции -// Выполняет ПоместитьВоВременноеХранилище (если файл хранится на диске) и возвращает нужную ссылку. +// Выполняет ПоместитьВоВременноеХранилище (если файл хранится в томе) и возвращает нужную ссылку. +// // Параметры: // ВерсияСсылка - версия файла. -// ИдентификаторФормы - уникальный идентификатор формы. +// ИдентификаторФормы - уникальный идентификатор формы. // // Возвращаемое значение: // Строка - навигационная ссылка во временном хранилище. @@ -1450,10 +1585,11 @@ ТекущаяВерсия = ?(Не ВозможностьХранитьВерсии, Неопределено, ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлСсылка, "ТекущаяВерсия")); + ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; - - ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка,, ПараметрыДанныхФайла); + + ДанныеФайла = ДанныеФайла(ФайлИлиВерсияСсылка,,ПараметрыДанныхФайла); Если РабочийКаталогВладельца = Неопределено Тогда РабочийКаталогВладельца = РабочийКаталогПапки(ДанныеФайла.Владелец); КонецЕсли; @@ -1491,7 +1627,7 @@ ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; - + ДанныеФайла = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла); КоличествоВерсий = ПолучитьКоличествоВерсий(ФайлСсылка); ДанныеФайла.Вставить("КоличествоВерсий", КоличествоВерсий); @@ -1537,6 +1673,7 @@ ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; + ДанныеФайла = ДанныеФайла(ФайлСсылка,,ПараметрыДанныхФайла); Если Не ДанныеФайла.ФайлРедактируетТекущийПользователь Тогда ВызватьИсключение НСтр("ru = 'Файл не занят текущим пользователем'"); @@ -1549,7 +1686,8 @@ КонецФункции -// Получает синтетический рабочий каталог папки на диске (он может прийти от родительской папки). +// Получает синтетический рабочий каталог папки на компьютере (он может прийти от родительской папки). +// // Параметры: // СсылкаПапки - СправочникСсылка.ПапкиФайлов - владелец файла. // @@ -1715,7 +1853,7 @@ КонецПроцедуры -// Находит запись в регистре сведений ФайлыВРабочемКаталоге по пути файла на диске (относительному). +// Находит запись в регистре сведений ФайлыВРабочемКаталоге по относительному пути файла. // // Параметры: // ИмяФайла - Строка - имя файла с относительным путем (без пути к рабочему каталогу). @@ -2166,9 +2304,9 @@ Выборка = Результат.Выбрать(); ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); - ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; ПараметрыДанныхФайла.ВызыватьИсключение = Ложь; - + ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; + МассивВозврата = Новый Массив; Пока Выборка.Следующий() Цикл @@ -2398,7 +2536,7 @@ КонецЕсли; // Изменяем путь к файлу, чтобы он был уникален. - // Т.к. данные с диска удалены, то корректность расширения не сохраняем. + // Т.к. данные на компьютере удалены, то корректность расширения не сохраняем. ФайлИлиВерсияОбъект.ПутьКФайлу = ФайлИлиВерсияОбъект.ПутьКФайлу + "_remove";//@Non-NLS Иначе РаботаСФайламиСлужебный.УдалитьЗаписьИзРегистраДвоичныеДанныеФайлов(ФайлИлиВерсия); @@ -2984,13 +3122,13 @@ КонецФункции -// Проверяет наличие файла на диске. +// Проверяет наличие файла на компьютере. // // Параметры: -// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - проверяемый элемент справочника с файлом. // // Возвращаемое значение: -// Булево - признак наличия файла на диске. +// Булево // Функция ПрисоединенныйФайлНаходитсяНаДиске(ПрисоединенныйФайл) @@ -3026,4 +3164,9 @@ КонецЕсли; КонецФункции +Функция ОбъединитьИзображенияВTifФайл(Изображения) Экспорт + ОбрабатываемаяКартинка = Новый ОбрабатываемаяКартинка(Изображения, ФорматКартинки.TIFF); + Возврат ОбрабатываемаяКартинка.ПолучитьКартинку(); +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl index 5839114fb..39167688f 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl @@ -35,7 +35,7 @@ КонецПроцедуры -// На основе переданного пути к файлу на диске создает Файл его и открывает карточку. +// На основе переданного пути к файлу создает файл в программе и открывает карточку. // // Параметры: // ПараметрыВыполнения - Структура: @@ -71,7 +71,7 @@ КонецПроцедуры -// На основе переданного пути к файлу на диске создает Файл его и открывает карточку. +// На основе переданного пути к файлу создает файл в программе и открывает карточку. // // Параметры: // ПараметрыВыполнения - Структура: @@ -356,12 +356,10 @@ #Если Не ВебКлиент И НЕ МобильныйКлиент Тогда - ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(); - Путь = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить("ИмяПапкиВыгрузки", "ИмяПапкиВыгрузки"); Если Путь = Неопределено Тогда - Если НЕ ПараметрыКлиента.ЭтоБазоваяВерсияКонфигурации Тогда + Если Не СтандартныеПодсистемыКлиент.ЭтоБазоваяВерсияКонфигурации() Тогда Путь = КаталогМоиДокументы(); ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить( "ИмяПапкиВыгрузки", "ИмяПапкиВыгрузки", Путь); @@ -770,27 +768,20 @@ #Область Сканирование -// Проверяет установлена ли компонента сканирования и есть ли хоть один сканер. -Функция ДоступнаКомандаСканировать() Экспорт - -#Если МобильныйКлиент Тогда - Возврат СредстваМультимедиа.ПоддерживаетсяФотоснимок(); -#Иначе - Если Не ПроинициализироватьКомпоненту(Ложь) Тогда - Возврат Ложь; - КонецЕсли; - - Если ПараметрыПриложения["СтандартныеПодсистемы.КомпонентаTwain"].ЕстьУстройства() Тогда - Возврат Истина; - КонецЕсли; - - Возврат Ложь; -#КонецЕсли - -КонецФункции // Открывает диалог сканирования и просмотра картинки. -Процедура ДобавитьСоСканера(ПараметрыВыполнения) Экспорт +// +// Параметры: +// ПараметрыВыполнения - Структура: +// * ОбработчикРезультата - Неопределено, ОписаниеОповещения. +// * ВладелецФайла - Неопределено, ОпределяемыйТип.ВладелецФайлов. +// * ФормаВладелец - Неопределено, Форма. +// * ЭтоФайл - Булево. +// ПараметрыСканирования - см. РаботаСФайламиКлиент.ПараметрыСканирования. +// +Процедура ДобавитьСоСканера(ПараметрыВыполнения, ПараметрыСканирования = Неопределено) Экспорт + + ТипРезультата = ПараметрыВыполнения.ТипРезультата; #Если МобильныйКлиент Тогда @@ -802,26 +793,48 @@ ИмяБезРасширения = "img_" + Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=yyyyMMdd_hhmmss"); - ПараметрыФайла = РаботаСФайламиСлужебныйКлиентСервер.ПараметрыДобавленияФайла(); - ПараметрыФайла.ВладелецФайлов = ПараметрыВыполнения.ВладелецФайла; - ПараметрыФайла.ИмяБезРасширения = ИмяБезРасширения; - ПараметрыФайла.РасширениеБезТочки = ДанныеМультимедиа.РасширениеФайла; - - АдресФайла = ПоместитьВоВременноеХранилище(ДанныеМультимедиа.ПолучитьДвоичныеДанные(), - ПараметрыВыполнения.ФормаВладелец.УникальныйИдентификатор); + РезультатСканирования = РезультатСканирования(); - Результат = Новый Структура; - Результат.Вставить("ФайлДобавлен", Истина); - Результат.Вставить("ФайлСсылка", РаботаСФайламиСлужебныйВызовСервера.ДобавитьФайл(ПараметрыФайла, АдресФайла)); - ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Результат); + Если ТипРезультата = ТипРезультатаКонвертацииДвоичныеДанные() Тогда + РезультатСканирования.ДвоичныеДанные = ДанныеМультимедиа.ПолучитьДвоичныеДанные(); + ВыполнитьОбработкуОповещения(ПараметрыВыполнения.ОбработчикРезультата, РезультатСканирования); + ИначеЕсли ТипРезультата = ТипРезультатаКонвертацииИмяФайла() Тогда + ДанныеИзображения = ДанныеМультимедиа.ПолучитьДвоичныеДанные(); + // АПК:441-выкл Является результатом метода + ИмяВременногоФайла = ПолучитьИмяВременногоФайла(ДанныеМультимедиа.РасширениеФайла); + // АПК:441-вкл + ДанныеИзображения.Записать(ИмяВременногоФайла); + РезультатСканирования.ИмяФайла = ИмяВременногоФайла; + + ВыполнитьОбработкуОповещения(ПараметрыВыполнения.ОбработчикРезультата, РезультатСканирования); + Иначе + + ПараметрыФайла = РаботаСФайламиСлужебныйКлиентСервер.ПараметрыДобавленияФайла(); + ПараметрыФайла.ВладелецФайлов = ПараметрыВыполнения.ВладелецФайла; + ПараметрыФайла.ИмяБезРасширения = ИмяБезРасширения; + ПараметрыФайла.РасширениеБезТочки = ДанныеМультимедиа.РасширениеФайла; + + АдресФайла = ПоместитьВоВременноеХранилище(ДанныеМультимедиа.ПолучитьДвоичныеДанные(), + ПараметрыВыполнения.ФормаВладелец.УникальныйИдентификатор); + + РезультатСканирования.Вставить("ФайлДобавлен", Истина); + РезультатСканирования.Вставить("ФайлСсылка", РаботаСФайламиСлужебныйВызовСервера.ДобавитьФайл(ПараметрыФайла, АдресФайла)); + ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, РезультатСканирования); + КонецЕсли; #Иначе - - СистемнаяИнформация = Новый СистемнаяИнформация(); - ПараметрыФормы = Новый Структура("ВладелецФайла, ЭтоФайл, НеОткрыватьКарточкуПослеСозданияИзФайла, ТолькоОдинФайл"); + СистемнаяИнформация = Новый СистемнаяИнформация(); + ИдентификаторКлиента = СистемнаяИнформация.ИдентификаторКлиента; + + Если ПараметрыСканирования = Неопределено Тогда + ПараметрыСканирования = РаботаСФайламиСлужебныйВызовСервера.ПараметрыСканирования(Истина, ИдентификаторКлиента); + КонецЕсли; + + ПараметрыФормы = Новый Структура("ВладелецФайла, ЭтоФайл, НеОткрыватьКарточкуПослеСозданияИзФайла, ТолькоОдинФайл, ТипРезультата"); ЗаполнитьЗначенияСвойств(ПараметрыФормы, ПараметрыВыполнения); - ПараметрыФормы.Вставить("ИдентификаторКлиента", СистемнаяИнформация.ИдентификаторКлиента); + ПараметрыФормы.Вставить("ИдентификаторКлиента", ИдентификаторКлиента); + ПараметрыФормы.Вставить("ПараметрыСканирования", ПараметрыСканирования); ОписаниеОповещенияОЗакрытии = ОбработчикЗавершения(ПараметрыВыполнения.ОбработчикРезультата); ОткрытьФорму("Обработка.Сканирование.Форма.РезультатСканирования", ПараметрыФормы, @@ -831,6 +844,44 @@ КонецПроцедуры +// Возвращаемое значение: +// Строка - обозначение типа результата конвертации - конвертация в файл на клиенте. +// +Функция ТипРезультатаКонвертацииИмяФайла() Экспорт + + Возврат "Файл"; + +КонецФункции + +// Возвращаемое значение: +// Строка - обозначение типа результата конвертации - конвертация в двоичные данные +// +Функция ТипРезультатаКонвертацииДвоичныеДанные() Экспорт + + Возврат "ДвоичныеДанные"; + +КонецФункции + +// Возвращаемое значение: +// Строка - обозначение типа результата конвертации - сохранение результата в присоединенный файл +// +Функция ТипРезультатаКонвертацииПрисоединенныйФайл() Экспорт + + Возврат "ПрисоединенныйФайл"; + +КонецФункции + + +Функция РезультатСканирования() Экспорт + Результат = Новый Структура; + Результат.Вставить("ТекстОшибки", ""); + Результат.Вставить("ФайлДобавлен", Ложь); + Результат.Вставить("ФайлСсылка"); + Результат.Вставить("ДвоичныеДанные"); + Результат.Вставить("ИмяФайла"); + Возврат Результат; +КонецФункции + #КонецОбласти //////////////////////////////////////////////////////////////////////////////// @@ -915,8 +966,7 @@ Возврат; КонецЕсли; - // Для варианта с хранением файлов на диске (на сервере) - // удаление Файла из временного хранилища после получения. + // Для варианта с хранением файлов в томах удаляем файл из временного хранилища после получения. Если ЭтоАдресВременногоХранилища(АдресФайла) Тогда УдалитьИзВременногоХранилища(АдресФайла); КонецЕсли; @@ -1473,10 +1523,10 @@ КонецПроцедуры -// Помещает файлы с диска в хранилище присоединенных файлов. +// Помещает файлы с компьютера в хранилище присоединенных файлов. // // Параметры: -// ВыбранныеФайлы - Массив - пути к файлам на диске. +// ВыбранныеФайлы - Массив из Строка - пути к файлам. // ВладелецФайла - ОпределяемыйТип.ВладелецФайлов - ссылка на владельца файла. // НастройкиРаботыСФайлами - Структура. // ПрисоединенныеФайлыМассив - Массив из ОпределяемыйТип.ПрисоединенныйФайл - возвращаемое значение. заполняется ссылками @@ -1589,7 +1639,7 @@ КонецПроцедуры -// Помещает файл с диска в хранилище присоединенных файлов (веб-клиент). +// Помещает файл с компьютера в хранилище присоединенных файлов (веб-клиент). // // Параметры: // ОбработчикРезультата - ОписаниеОповещения - процедура, в которую необходимо передать управление при завершении. @@ -1702,7 +1752,7 @@ Строка(ОбъектСсылка)); Возврат Ложь; Иначе - Если ПерсональныеНастройкиРаботыСФайлами().ЭтоПолноправныйПользователь Тогда + Если ПользователиКлиент.ЭтоПолноправныйПользователь() Тогда Возврат Истина; КонецЕсли; @@ -1986,7 +2036,7 @@ ПараметрыВыполнения.ПолныйПутьКФайлу = ДанныеФайла.ПолноеИмяФайлаВРабочемКаталоге; КонецЕсли; - // Проверка наличия файла на диске. + // Проверка наличия файла. ПараметрыВыполнения.Вставить("ФайлНовойВерсии", Новый Файл(ПараметрыВыполнения.ПолныйПутьКФайлу)); Если Не ЗначениеЗаполнено(ПараметрыВыполнения.ПолныйПутьКФайлу) @@ -2115,21 +2165,18 @@ Процедура ЗакончитьРедактированиеСРасширениемПослеПроверкиНовойВерсии(ПараметрыВыполнения) Если Не ПараметрыВыполнения.ДанныеФайла.Зашифрован Тогда - ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован(Неопределено, ПараметрыВыполнения); + ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован(ПараметрыВыполнения); Возврат; КонецЕсли; // Файл с признаком шифрован снова шифруется для тех же сертификатов. - ПараметрыВыполнения.Вставить("ОповещениеПослеШифрования", Новый ОписаниеОповещения( - "ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован", ЭтотОбъект, ПараметрыВыполнения)); - ЗашифроватьФайлПередПомещениемВХранилищеФайлов(ПараметрыВыполнения); КонецПроцедуры // Продолжение процедуры (см. выше). -Процедура ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован(Неопределен, ПараметрыВыполнения) Экспорт +Процедура ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован(ПараметрыВыполнения) СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией", ПараметрыВыполнения.ФайлНовойВерсии); СведенияОФайле.Комментарий = ПараметрыВыполнения.КомментарийКВерсии; @@ -2226,7 +2273,7 @@ // Процедура ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрованПовтор(Результат, Параметр) Экспорт Если Результат = КодВозвратаДиалога.Повторить Тогда - ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован(Неопределено, Параметр); + ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован(Параметр); КонецЕсли; КонецПроцедуры @@ -2287,7 +2334,7 @@ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось поместить файл ""%1"" - |с диска на компьютере в программу по причине: + |с компьютере в программу по причине: |%2.'"), Строка(ПараметрыВыполнения.ДанныеФайла.Ссылка), ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); @@ -2308,7 +2355,7 @@ Возврат; КонецЕсли; - ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован(Неопределено, ПараметрыВыполнения); + ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован(ПараметрыВыполнения); КонецПроцедуры @@ -2579,7 +2626,7 @@ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось поместить файл ""%1"" - |с диска на компьютере в программу по причине + |с компьютера в программу по причине |""%2"". | |Повторить операцию?'"), @@ -2603,7 +2650,7 @@ //////////////////////////////////////////////////////////////////////////////// // Выбор файла и создание из него новой версии. -// Выбирает на диске файл и создает из него новую версию. +// Загружает файл и создает новую версию. // // Параметры: // ОбработчикРезультата - ОписаниеОповещения @@ -2972,8 +3019,7 @@ ПараметрыВыполнения.ДанныеФайла.Расширение = ОбщегоНазначенияКлиентСервер.РасширениеБезТочки( ПараметрыВыполнения.РасширениеФайлаНаДиске); - // Помещение в рабочий каталог из выбранного файла на диске, - // т.к. указано свойство ПутьОбновленияИзФайлаНаДиске. + // Помещаем в рабочий каталог выбранный файл, т.к. указано свойство ПутьОбновленияИзФайлаНаДиске. Обработчик = Новый ОписаниеОповещения("ОбновитьИзФайлаНаДискеПослеПолученияФайлаВРабочийКаталог", ЭтотОбъект, ПараметрыВыполнения); ПолучитьФайлВерсииВРабочийКаталог(Обработчик, ПараметрыВыполнения.ДанныеФайла, НовоеПолноеИмяФайла, @@ -3591,12 +3637,11 @@ ПараметрыВыполнения.Вставить("ПродолжитьРаботу", Истина); Если ПараметрыВыполнения.ХранитьВерсии = Неопределено Тогда - ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла( - ?(ПараметрыВыполнения.ОбъектСсылка <> Неопределено, ПараметрыВыполнения.ОбъектСсылка, ПараметрыВыполнения.Версия),, ПараметрыДанныхФайла); + ?(ПараметрыВыполнения.ОбъектСсылка <> Неопределено, ПараметрыВыполнения.ОбъектСсылка, ПараметрыВыполнения.Версия),,ПараметрыДанныхФайла); Если НЕ ЗначениеЗаполнено(ПараметрыВыполнения.ОбъектСсылка) Тогда ПараметрыВыполнения.ОбъектСсылка = ДанныеФайла.Ссылка; @@ -3735,13 +3780,13 @@ ПараметрыВыполнения.ПолныйПутьКФайлу = ДанныеФайла.ПолноеИмяФайлаВРабочемКаталоге; КонецЕсли; - // Проверка наличия файла на диске. + // Проверка наличия файла на компьютере. ПараметрыВыполнения.Вставить("ФайлНовойВерсии", Новый Файл(ПараметрыВыполнения.ПолныйПутьКФайлу)); Если Не ПараметрыВыполнения.ФайлНовойВерсии.Существует() Тогда Если Не ПустаяСтрока(ПараметрыВыполнения.ПолныйПутьКФайлу) Тогда СтрокаПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось поместить файл ""%1"" - |в программу, так как он не существует на диске на компьютере: + |в программу, так как он не существует на компьютере: |%2. | |Освободить файл?'"), @@ -3750,7 +3795,7 @@ Иначе СтрокаПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось поместить файл ""%1"" - |в программу, так как он не существует на диске на компьютере. + |в программу, так как он не существует на компьютере. | |Освободить файл?'"), Строка(ДанныеФайла.Ссылка)); @@ -3850,15 +3895,12 @@ Процедура СохранитьИзмененияФайлаСРасширениемПослеПроверкиНовойВерсии(ПараметрыВыполнения) Если Не ПараметрыВыполнения.ДанныеФайла.Зашифрован Тогда - СохранитьИзмененияФайлаСРасширениемПослеПроверкиЗашифрован(Неопределено, ПараметрыВыполнения); + СохранитьИзмененияФайлаСРасширениемПослеПроверкиЗашифрован(ПараметрыВыполнения); Возврат; КонецЕсли; // Файл с признаком шифрован снова шифруется для тех же сертификатов. - ПараметрыВыполнения.Вставить("ОповещениеПослеШифрования", Новый ОписаниеОповещения( - "СохранитьИзмененияФайлаСРасширениемПослеПроверкиЗашифрован", ЭтотОбъект, ПараметрыВыполнения)); - ЗашифроватьФайлПередПомещениемВХранилищеФайлов(ПараметрыВыполнения); КонецПроцедуры @@ -3869,7 +3911,7 @@ // ПараметрыВыполнения - Структура: // * ДанныеФайла - см. РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаИРабочийКаталог // -Процедура СохранитьИзмененияФайлаСРасширениемПослеПроверкиЗашифрован(Неопределен, ПараметрыВыполнения) Экспорт +Процедура СохранитьИзмененияФайлаСРасширениемПослеПроверкиЗашифрован(ПараметрыВыполнения) СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией", ПараметрыВыполнения.ФайлНовойВерсии); СведенияОФайле.Комментарий = ПараметрыВыполнения.КомментарийКВерсии; @@ -3965,7 +4007,7 @@ ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; - ПараметрыВыполнения.ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ПараметрыВыполнения.ОбъектСсылка,, ПараметрыДанныхФайла); + ПараметрыВыполнения.ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ПараметрыВыполнения.ОбъектСсылка,,ПараметрыДанныхФайла); ПараметрыВыполнения.ХранитьВерсии = ПараметрыВыполнения.ДанныеФайла.ХранитьВерсии; ПараметрыВыполнения.ФайлРедактируетТекущийПользователь = ПараметрыВыполнения.ДанныеФайла.ФайлРедактируетТекущийПользователь; ПараметрыВыполнения.Редактирует = ПараметрыВыполнения.ДанныеФайла.Редактирует; @@ -4228,7 +4270,7 @@ ПараметрыВыполнения.Вставить("АдресПослеШифрования", Адрес); - ВыполнитьОбработкуОповещения(ПараметрыВыполнения.ОповещениеПослеШифрования); + ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован(ПараметрыВыполнения); КонецПроцедуры @@ -4507,13 +4549,13 @@ КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// -// Получение файла из программы на диск. +// Получение файла из программы на компьютер. -// Получить Файл из информационной базы на локальный диск и возвращает путь к этому файлу. +// Получить файл из программы на компьютер и возвращает путь к этому файлу. // // Параметры: // ОбработчикРезультата - ОписаниеОповещения -// - Неопределено - описание процедуры, принимающей результат работы метода. +// - Неопределено - описание процедуры, принимающей результат работы процедуры. // ДанныеФайла - Структура // ПолноеИмяФайла - Строка - здесь возвращается полное имя файла. // ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы. @@ -4959,7 +5001,7 @@ ОткрытьПроводникСФайлом(ПараметрыВыполнения.ПолноеИмяФайла); КонецЕсли; - // Для варианта с хранением файлов на диске (на сервере) удаляем Файл из временного хранилища после получения. + // Для варианта с хранением файлов в томах удаляем Файл из временного хранилища после получения. Если ЭтоАдресВременногоХранилища(ПараметрыВыполнения.ДанныеФайла.НавигационнаяСсылкаТекущейВерсии) Тогда УдалитьИзВременногоХранилища(ПараметрыВыполнения.ДанныеФайла.НавигационнаяСсылкаТекущейВерсии); КонецЕсли; @@ -4967,9 +5009,9 @@ КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// -// Удаление файла с диска и из регистра сведений. +// Удаление файла с компьютера и из регистра сведений. -// Удалить с диска и из регистра сведений. +// Удалить с компьютера и из регистра сведений. // // Параметры: // ОбработчикРезультата - ОписаниеОповещения @@ -5532,13 +5574,12 @@ Возврат; КонецЕсли; - // Для варианта с хранением файлов на диске (на сервере) - // файл удаляется из временного хранилища после получения. + // Для варианта с хранением файлов в томах файл удаляется из временного хранилища после получения. Если ЭтоАдресВременногоХранилища(АдресФайла) Тогда УдалитьИзВременногоХранилища(АдресФайла); КонецЕсли; - // Установим время изменения файла таким, как оно стоит в текущей версии. + // Установим время изменения файла таким, как оно указано в текущей версии. УстановитьУниверсальноеВремяИзменения(ПараметрыВыполнения.ПолноеИмяФайла, ПараметрыВыполнения.ДанныеФайла.ДатаМодификацииУниверсальная); @@ -5551,7 +5592,7 @@ ФайлНаДиске = Новый Файл(ПараметрыВыполнения.ПолноеИмяФайла); - // Т.к. размер на диске может отличаться от размера в базе (при добавлении из веб клиента). + // Т.к. размер на компьютере может отличаться от размера в базе (при добавлении в веб-клиенте). РазмерФайла = ФайлНаДиске.Размер(); ФайлНаДиске.УстановитьТолькоЧтение(ПараметрыВыполнения.НаЧтение); @@ -6496,9 +6537,9 @@ КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// -// Сохранение Файла на диск +// Сохранение файла на компьютер -// Сохранение на диск файла. +// Сохранение файла на компьютер. // // Параметры: // ОбработчикРезультата - ОписаниеОповещения @@ -6702,7 +6743,6 @@ КонецЕсли; КонецЕсли; - // Выбираем путь к файлу на диске. ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); ВыборФайла.МножественныйВыбор = Ложь; ВыборФайла.ПолноеИмяФайла = ИмяСРасширением; @@ -6745,10 +6785,9 @@ ПутьКФайлу = Файл.Путь; ПутьКФайлу = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПутьКФайлу); - // Сохраним Файл из БД на диск. Если ПолучитьФайлы(ПередаваемыеФайлы,, ПутьКФайлу, Ложь) Тогда - // Для варианта с хранением файлов на диске (на сервере) удаляем Файл из временного хранилища после получения. + // Для варианта с хранением файлов в томах удаляем Файл из временного хранилища после получения. Если ЭтоАдресВременногоХранилища(АдресФайла) Тогда УдалитьИзВременногоХранилища(АдресФайла); КонецЕсли; @@ -7557,9 +7596,9 @@ КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// -// Показывает диалог выбора файла на диске, загружает выбранный файл в программу как версию и рассылает оповещение. +// Показывает диалог выбора файла, загружает выбранный файл в программу как версию и рассылает оповещение. -// Выбирает на диске файл и создает из него новую версию. +// Выбирает файл и создает из него новую версию. Процедура ОбновитьИзФайлаНаДискеСОповещением( ОбработчикРезультата, ДанныеФайла, @@ -7933,9 +7972,14 @@ ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("РежимСоздания", РежимСоздания); - ПараметрыФормы.Вставить("ДоступнаКомандаСканировать", РаботаСФайламиСлужебныйКлиентПовтИсп.ДоступнаКомандаСканировать()); - ОткрытьФорму("Справочник.Файлы.Форма.ФормаНового", ПараметрыФормы, , , , , Обработчик); + Контекст = Новый Структура; + Контекст.Вставить("ПараметрыФормы", ПараметрыФормы); + Контекст.Вставить("Обработчик", Обработчик); + + ПараметрыФормы.Вставить("ДоступнаКомандаСканировать", ДоступноСканирование()); + + ОткрытьФорму("Справочник.Файлы.Форма.ФормаНового", ПараметрыФормы, , , , , Контекст.Обработчик); КонецПроцедуры @@ -7956,7 +8000,7 @@ // Параметры: // РежимСоздания - Число - режим создания файла. // 1 - из шаблона (копированием другого файла), -// 2 - с диска (из файловой системы клиента), +// 2 - с компьютера (из файловой системы), // 3 - со сканера. // ПараметрыВыполнения - Структура - типы значений и описания см. в РаботаСФайламиКлиент.ДобавитьФайл(). // * ОбработчикРезультата. @@ -7977,7 +8021,9 @@ ДобавитьИзФайловойСистемыБезРасширения(ПараметрыВыполнения); КонецЕсли; ИначеЕсли РежимСоздания = 3 Тогда // Считать со сканера. - ДобавитьСоСканера(ПараметрыВыполнения); + ПараметрыДобавления = РаботаСФайламиКлиент.ПараметрыДобавленияСоСканера(); + ЗаполнитьЗначенияСвойств(ПараметрыДобавления, ПараметрыВыполнения); + ДобавитьСоСканера(ПараметрыДобавления); Иначе ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Неопределено); КонецЕсли; @@ -8448,7 +8494,7 @@ КонецПроцедуры -// Добавляет электронные подписи к файлу-объекту из файлов-подписей на диске. +// Добавляет электронные подписи к файлу в программе из файлов-подписей на компьютере. Процедура ДобавитьПодписьИзФайла(Файл, ИдентификаторФормы, ОбработчикЗавершения) Экспорт СвойстваФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаИДвоичныеДанные(Файл, , ИдентификаторФормы); @@ -8628,7 +8674,7 @@ КонецФункции //////////////////////////////////////////////////////////////////////////////// -// Загружает структуру файлов и каталогов с диска в программу. +// Загружает структуру файлов и каталогов с компьютера в программу. // Возвращаемое значение: // Структура: @@ -8666,7 +8712,7 @@ Возврат ПараметрыВыполнения; КонецФункции -// Рекурсивная функция импорта файлов с диска - принимает массив файлов (или каталогов) +// Рекурсивная функция импорта файлов - принимает массив файлов (или каталогов) // - если файл, просто добавляет его, если каталог - создает группу и рекурсивно вызывает саму себя. // // Параметры: @@ -8776,7 +8822,7 @@ КонецПроцедуры -// Рекурсивная функция импорта файлов с диска - принимает массив файлов (или каталогов) +// Рекурсивная функция импорта файлов - принимает массив файлов (или каталогов) // - если файл, просто добавляет его, если каталог - создает группу и рекурсивно вызывает саму себя. // // Параметры: @@ -8794,7 +8840,7 @@ Если Не ВыбранныйФайл.Существует() Тогда Запись = Новый Структура; Запись.Вставить("ИмяФайла", ВыбранныйФайл.ПолноеИмя); - Запись.Вставить("Ошибка", НСтр("ru = 'Файл отсутствует на диске.'")); + Запись.Вставить("Ошибка", НСтр("ru = 'Файл отсутствует на компьютере.'")); ПараметрыВыполнения.МассивИменФайловСОшибками.Добавить(Запись); Продолжить; КонецЕсли; @@ -8813,7 +8859,7 @@ НовыйПуть = НовыйПуть + Строка(ВыбранныйФайл.Имя); МассивФайлов = НайтиФайлыПсевдо(ПараметрыВыполнения.ПсевдоФайловаяСистема, НовыйПуть); - // Создаем группу в справочнике - эквивалент папки на диске. + // Создаем группу в справочнике - эквивалент каталога на компьютере. Если МассивФайлов.Количество() <> 0 Тогда ИмяФайла = ВыбранныйФайл.Имя; @@ -8861,7 +8907,7 @@ ВыбранныйФайл.Имя, РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМб)); - ТекстСостояния = НСтр("ru = 'Импорт файлов с диска...'"); + ТекстСостояния = НСтр("ru = 'Загрузка файлов с компьютера...'"); Состояние(ТекстСостояния, ПараметрыВыполнения.Индикатор, @@ -8965,8 +9011,7 @@ //////////////////////////////////////////////////////////////////////////////// // Прочие служебные процедуры и функции. -// При переименовании Файл и ВерсияФайла обновляет информацию -// в рабочем каталоге (имя файла на диске и в регистре). +// При переименовании файла обновляет информацию в рабочем каталоге (имя файла на компьютере и в регистре). // // Параметры: // ТекущаяВерсия - СправочникСсылка.ВерсииФайлов - версия файла. @@ -9219,8 +9264,8 @@ ОтносительныйПуть = Сред(ВыбранныйФайл.ПолноеИмя, СтрДлина(ИмяКаталога) + 1); - // Если не найдем на диске - то минимальная дата - // будет самой старой - и удалится при очистке из рабочего каталога самых старых файлов. + // Если не найдем на компьютере, то минимальная дата будет самой старой, + // и удалится при очистке из рабочего каталога самых старых файлов. ДатаПомещения = Дата('00010101'); НайденныеСвойства = РаботаСФайламиСлужебныйВызовСервера.НайтиВРегистреПоПути(ОтносительныйПуть); @@ -9255,13 +9300,13 @@ КонецПроцедуры // Получает относительный путь к файлу в рабочем каталоге - если есть в регистре сведений - оттуда, -// если нет - сгенерируем - и запишем в регистр сведений. +// если нет - сгенерируем и запишем в регистр сведений. // // Параметры: // ДанныеФайла - Структура // // Возвращаемое значение: -// Строка - путь файла +// Строка // Функция ПолучитьПутьФайлаВРабочемКаталоге(ДанныеФайла) @@ -9269,18 +9314,15 @@ ПолноеИмяФайла = ""; ИмяКаталога = РабочийКаталогПользователя(); - // Сперва пытаемся найти такую запись в регистре сведений. ПолноеИмяФайла = ДанныеФайла.ПолноеИмяФайлаВРабочемКаталоге; Если ПолноеИмяФайла <> "" Тогда - // Тут надо еще на наличие на диске проверять. ФайлНаДиске = Новый Файл(ПолноеИмяФайла); Если ФайлНаДиске.Существует() Тогда Возврат ПолноеИмяФайла; КонецЕсли; КонецЕсли; - // Формирование имени файла с расширением. ИмяФайла = ДанныеФайла.ПолноеНаименованиеВерсии; Расширение = ДанныеФайла.Расширение; Если Не ПустаяСтрока(Расширение) Тогда @@ -10477,95 +10519,52 @@ //////////////////////////////////////////////////////////////////////////////// // Процедуры и функция для работы со сканером. -// Инициализация компоненты сканирования. -Функция ПроинициализироватьКомпоненту(ПопытатьсяУстановитьКомпоненту = Истина) Экспорт +Процедура ПроинициализироватьКомпоненту(ОповещениеВозврата, ПредложитьУстановить = Ложь) Экспорт Если Не ДоступноСканирование() Тогда - Возврат Ложь; - КонецЕсли; - - ИмяПараметра = "СтандартныеПодсистемы.КомпонентаTwain"; - Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда - - // АПК:472-выкл - // АПК:150-выкл Вызов метода ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета не требуется, - // т.к. внешняя компонента подключается из макета и сканирование не доступно в веб-клиенте. - КодВозврата = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаTWAIN", "twain"); - Если Не КодВозврата Тогда - - Если Не ПопытатьсяУстановитьКомпоненту Тогда - Возврат Ложь; - КонецЕсли; - - УстановитьВнешнююКомпоненту("ОбщийМакет.КомпонентаTWAIN"); - Возврат ПроинициализироватьКомпоненту(Ложь); // Рекурсивно. - - КонецЕсли; - // АПК:150-вкл - // АПК:472-вкл - - ПараметрыПриложения.Вставить(ИмяПараметра, Новый("AddIn.twain.AddInNativeExtension")); - КонецЕсли; - - Возврат Истина; - -КонецФункции - -Функция ДоступноСканирование() Экспорт - -#Если ВебКлиент Или МобильныйКлиент Тогда - Возврат Ложь; -#Иначе - Возврат ОбщегоНазначенияКлиент.ТипПлатформыКлиента() = ТипПлатформы.Windows_x86; -#КонецЕсли - -КонецФункции - -// Установка компоненты сканирования. -// -// Параметры: -// ОбработчикРезультата - ОписаниеОповещения -// - Неопределено - описание процедуры, принимающей результат работы метода. -// -// См. также: -// Переменную глобального контекста КомпонентаTwain. -// -Процедура УстановитьКомпоненту(ОбработчикРезультата) Экспорт - - Если ПроинициализироватьКомпоненту() Тогда - ВернутьРезультат(ОбработчикРезультата, Истина); + РезультатПодключенияКомпоненты = ОбщегоНазначенияСлужебныйКлиент.РезультатПодключенияКомпоненты(); + РезультатПодключенияКомпоненты.Подключено = Ложь; + РезультатПодключенияКомпоненты.ОписаниеОшибки = НСтр("ru = 'Сканирование возможно в программах для операционных систем Microsoft Windows x86 и х64'"); + ВыполнитьОбработкуОповещения(ОповещениеВозврата, РезультатПодключенияКомпоненты); Возврат; КонецЕсли; - ПараметрыВыполнения = Новый Структура; - ПараметрыВыполнения.Вставить("ОбработчикРезультата", ОбработчикРезультата); - Обработчик = Новый ОписаниеОповещения("УстановитьКомпонентуЗавершение", ЭтотОбъект, ПараметрыВыполнения); - - // АПК:472-выкл Вызов метода ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета не требуется, - // т.к. внешняя компонента подключается из макета и сканирование не доступно в веб-клиенте. - НачатьУстановкуВнешнейКомпоненты(Обработчик, "ОбщийМакет.КомпонентаTWAIN"); - // АПК:472-вкл + ПараметрыПодключения = ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты(); + ПараметрыПодключения.ТекстПояснения = НСтр("ru = 'Для продолжения требуется подключить внешнюю компоненту сканирования.'"); + ПараметрыПодключения.ПредложитьУстановить = ПредложитьУстановить; + + ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета(ОповещениеВозврата, "AddInNativeExtension", "ОбщийМакет.КомпонентаTWAIN", ПараметрыПодключения); КонецПроцедуры -// Продолжение процедуры (см. выше). -Процедура УстановитьКомпонентуЗавершение(ПараметрыВыполнения) Экспорт +Функция ДоступноСканирование(ЭтоПроверкаНастроек = Ложь) Экспорт - КомпонентаПодключена = ПроинициализироватьКомпоненту(); - ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, КомпонентаПодключена); + Если ЭтоПроверкаНастроек Тогда +#Если МобильныйКлиент Тогда + Возврат СредстваМультимедиа.ПоддерживаетсяФотоснимок(); +#ИначеЕсли ВебКлиент Тогда + Возврат Ложь; +#Иначе + Возврат ОбщегоНазначенияКлиент.ТипПлатформыКлиента() = ТипПлатформы.Windows_x86 + Или ОбщегоНазначенияКлиент.ТипПлатформыКлиента() = ТипПлатформы.Windows_x86_64; +#КонецЕсли + Иначе +#Если МобильныйКлиент ИЛИ ВебКлиент Тогда + Возврат Ложь; +#Иначе + Возврат ОбщегоНазначенияКлиент.ТипПлатформыКлиента() = ТипПлатформы.Windows_x86 + Или ОбщегоНазначенияКлиент.ТипПлатформыКлиента() = ТипПлатформы.Windows_x86_64; +#КонецЕсли + КонецЕсли; -КонецПроцедуры +КонецФункции // Возвращает устройства TWAIN (массив строк). -Функция ПолучитьУстройства() Экспорт +Функция ПолучитьУстройства(ПодключаемыйМодуль) Экспорт Массив = Новый Массив; - Если Не ПроинициализироватьКомпоненту() Тогда - Возврат Массив; - КонецЕсли; - - СтрокаУстройств = ПараметрыПриложения["СтандартныеПодсистемы.КомпонентаTwain"].ПолучитьУстройства(); + СтрокаУстройств = ПодключаемыйМодуль.ПолучитьУстройства(); Для Индекс = 1 По СтрЧислоСтрок(СтрокаУстройств) Цикл Строка = СтрПолучитьСтроку(СтрокаУстройств, Индекс); @@ -10579,6 +10578,7 @@ // Возвращает настройку сканера по имени. // // Параметры: +// ПодключаемыйМодуль - компонента сканирования // ИмяУстройства - Строка - имя сканера. // ИмяНастройки - Строка - имя настройки, // например "XRESOLUTION", или "PIXELTYPE", или "ROTATION", или "SUPPORTEDSIZES". @@ -10586,14 +10586,14 @@ // Возвращаемое значение: // Число - значение настройки сканера. // -Функция ПолучитьНастройку(ИмяУстройства, ИмяНастройки) Экспорт +Функция ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, ИмяНастройки) Экспорт - Если Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда + Если Не ДоступноСканирование(Истина) Тогда Возврат -1; КонецЕсли; Попытка - Возврат ПараметрыПриложения["СтандартныеПодсистемы.КомпонентаTwain"].ПолучитьНастройку(ИмяУстройства, ИмяНастройки); + Возврат ПодключаемыйМодуль.ПолучитьНастройку(ИмяУстройства, ИмяНастройки); Исключение Возврат -1; КонецПопытки; @@ -10859,7 +10859,7 @@ СоздатьКаталог(КаталогСохранения); Исключение СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - СообщениеОбОшибке = НСтр("ru = 'Ошибка создания каталога на диске:'") + " " + СообщениеОбОшибке; + СообщениеОбОшибке = НСтр("ru = 'Ошибка создания каталога на компьютере:'") + " " + СообщениеОбОшибке; ОбщегоНазначенияКлиент.СообщитьПользователю(СообщениеОбОшибке); Возврат Ложь; КонецПопытки; @@ -10938,6 +10938,18 @@ КонецПроцедуры +Функция ГотовностьКСканированию(ПодключаемыйМодуль) Экспорт + Если ПодключаемыйМодуль.ЕстьУстройства() Тогда + Попытка + ПодключаемыйМодуль.ПолучитьУстройства(); + Возврат Истина; + Исключение + Возврат Ложь; + КонецПопытки; + КонецЕсли; + Возврат Ложь; +КонецФункции + #Область УдалениеДанныхФайловИВерсий Процедура УдалитьДанные(ОбработчикЗавершения, ФайлИлиВерсия, УникальныйИдентификатор) Экспорт diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl index 452bba025..fdd17673b 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl @@ -8,13 +8,6 @@ #Область СлужебныеПроцедурыИФункции -// Проверяет установлена ли компонента сканирования и есть ли хоть один сканер. -Функция ДоступнаКомандаСканировать() Экспорт - - Возврат РаботаСФайламиСлужебныйКлиент.ДоступнаКомандаСканировать(); - -КонецФункции - // Возвращает параметр сеанса ПутьКРабочемуКаталогуПользователя. Функция РабочийКаталогПользователя() Экспорт diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl index 950082116..a0818e1ed 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентСервер/Module.bsl @@ -347,7 +347,7 @@ // Параметры занятия файла на редактирование. // // Возвращаемое значение: -// Структура +// Структура: // * УникальныйИдентификатор - уникальный идентификатор формы. // * Пользователь - СправочникСсылка.Пользователи // * ДополнительныеСвойства - Структура - дополнительные свойства для записи файла. @@ -597,7 +597,7 @@ // Автоматически определяет и возвращает кодировку текстового файла. // // Параметры: -// ДанныеДляАнализа - ДвоичныеДанные, Строка - Данные для определения кодировки или адрес данных. +// ДанныеДляАнализа - ДвоичныеДанные, Строка - данные для определения кодировки или адрес данных. // Расширение - Строка - расширение файла. // // Возвращаемое значение: diff --git a/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl index 8df4c9e05..dc112319f 100644 --- a/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl @@ -59,6 +59,7 @@ Если ЗапускЗафиксирован <> Истина Тогда // Регистрация запуска (запущена, но не выполнена). РегистрыСведений.СостоянияРассылокОтчетов.ЗафиксироватьЗапускРассылки(Рассылка); + ЗапускЗафиксирован = Истина; КонецЕсли; // Форматы по умолчанию @@ -85,6 +86,7 @@ Стр = ТаблицаОтчетов.Добавить(); Стр.Отчет = СтрокаОтчет.Отчет; Стр.ОтправлятьЕслиПустой = СтрокаОтчет.ОтправлятьЕслиПустой; + Стр.ШаблонНаименования = СтрокаОтчет.ШаблонНаименования; // Настройки Настройки = СтрокаОтчет.Настройки.Получить(); @@ -118,6 +120,12 @@ ПараметрыДоставки.ТранслитерироватьИменаФайлов = РассылкаОбъект.ТранслитерироватьИменаФайлов; ПараметрыДоставки.Личная = РассылкаОбъект.Личная; + ТаблицаТиповПолучателей = РассылкаОтчетовПовтИсп.ТаблицаТиповПолучателей(); + Найденные = ТаблицаТиповПолучателей.НайтиСтроки(Новый Структура("ИдентификаторОбъектаМетаданных", РассылкаОбъект.ТипПолучателейРассылки)); + Если Найденные.Количество() = 1 Тогда + ПараметрыДоставки.ТипПолучателейРассылки = Найденные[0].ТипПолучателей; + КонецЕсли; + // Проверки отмеченных способов доставки. Если Не ПараметрыДоставки.ИспользоватьПапку И Не ПараметрыДоставки.ИспользоватьСетевойКаталог @@ -156,10 +164,9 @@ ПараметрыДоставки.ПассивноеСоединение = РассылкаОбъект.FTPПассивноеСоединение; КонецЕсли; - ПараметрыДоставки.ВключатьДатуВИмяФайла = РассылкаОбъект.ВключатьДатуВИмяФайла - И (ПараметрыДоставки.ИспользоватьПапку - Или ПараметрыДоставки.ИспользоватьСетевойКаталог - Или ПараметрыДоставки.ИспользоватьFTPРесурс); + ПараметрыДоставки.ВставлятьОтчетыВТекстПисьма = РассылкаОбъект.ВставлятьОтчетыВТекстПисьма; + ПараметрыДоставки.ПрикреплятьОтчетыВоВложения = РассылкаОбъект.ПрикреплятьОтчетыВоВложения; + ПараметрыДоставки.УстановитьПаролиЗашифровать = РассылкаОбъект.УстановитьПаролиЗашифровать; // Подготовка параметров доставки по электронной почте. Если ПараметрыДоставки.ИспользоватьЭлектроннуюПочту Тогда @@ -179,6 +186,9 @@ ПараметрыДоставки.ПараметрыПисьма.ТипТекста = ?(РассылкаОбъект.ПисьмоВФорматеHTML, "HTML", "ПростойТекст"); ПараметрыДоставки.ПараметрыПисьма.АдресОтвета = РассылкаОбъект.АдресОтвета; + ПараметрыДоставки.ПараметрыПисьма.Важность = ?(ЗначениеЗаполнено(РассылкаОбъект.ВажностьПисьма), + ВажностьИнтернетПочтовогоСообщения[РассылкаОбъект.ВажностьПисьма], + ВажностьИнтернетПочтовогоСообщения.Обычная); Если Рассылка.ПисьмоВФорматеHTML Тогда КартинкиПисьмаВФорматеHTML = Рассылка.КартинкиПисьмаВФорматеHTML.Получить(); @@ -189,12 +199,16 @@ КонецЕсли; - Если Не ПараметрыДоставки.ЗапускЗафиксирован Тогда + Если НЕ ЗапускЗафиксирован Тогда РегистрыСведений.СостоянияРассылокОтчетов.ЗафиксироватьЗапускРассылки(Рассылка); + ЗапускЗафиксирован = Истина; КонецЕсли; + ПараметрыДоставки.ЗапускЗафиксирован = ЗапускЗафиксирован; + Результат = ВыполнитьРассылку(ТаблицаОтчетов, ПараметрыДоставки, Рассылка, ПараметрыЖурнала); РегистрыСведений.СостоянияРассылокОтчетов.ЗафиксироватьРезультатВыполненияРассылки(Рассылка, ПараметрыДоставки); + Возврат Результат; КонецФункции @@ -205,6 +219,7 @@ // Отчеты - см. РассылкаОтчетов.ОтчетыДляРассылки. // ПараметрыДоставки - см. РассылкаОтчетов.ПараметрыДоставки. // НаименованиеРассылки - Строка - выводится в тему и сообщение, а также для вывода ошибок. +// - СправочникСсылка.РассылкиОтчетов // ПараметрыЖурнала - см. РассылкаОтчетов.ПараметрыЖурнала. // // Возвращаемое значение: @@ -212,9 +227,26 @@ // Функция ВыполнитьРассылку(Отчеты, ПараметрыДоставки, НаименованиеРассылки = "", ПараметрыЖурнала = Неопределено) Экспорт + ЭтоСправочникРассылкаОтчетов = Ложь; + Если ТипЗнч(НаименованиеРассылки) = Тип("СправочникСсылка.РассылкиОтчетов") + И ЗначениеЗаполнено(НаименованиеРассылки) Тогда + ЭтоСправочникРассылкаОтчетов = Истина; + КонецЕсли; + + Если ЭтоСправочникРассылкаОтчетов Тогда + МенеджерЗаписи = РегистрыСведений.СостоянияРассылокОтчетов.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.Рассылка = ПараметрыЖурнала.Данные; + МенеджерЗаписи.Прочитать(); + ДатаВыполнения = МенеджерЗаписи.ПоследнийЗапускНачало; + Иначе + ДатаВыполнения = ТекущаяДатаСеанса(); + КонецЕсли; + ПараметрыДоставкиПоУмолчанию = ПараметрыДоставки(); ЗаполнитьЗначенияСвойств(ПараметрыДоставкиПоУмолчанию, ПараметрыДоставки); - ПараметрыДоставки = ПараметрыДоставкиПоУмолчанию; + ПараметрыДоставки = ПараметрыДоставкиПоУмолчанию; + + ЭтоАвтоПовторнаяРассылка = ПараметрыДоставки.ДеревоОтчетов <> Неопределено; // Добавление дерева сформированных отчетов - табличных документов и отчетов, сохраненных в форматы (файлов). ДеревоОтчетов = СоздатьДеревоОтчетов(); @@ -224,8 +256,7 @@ Возврат Ложь; КонецЕсли; - // Строка дерева общих (не персонализированных по получателям) отчетов. - ПараметрыДоставки.СтрокаОбщихОтчетов = ОпределитьСтрокуДереваДляПолучателя(ДеревоОтчетов, Неопределено, ПараметрыДоставки); + ПараметрыДоставки.ДатаВыполнения = ДатаВыполнения; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Инициализирована рассылка ''%1'', автор: ''%2'''"), @@ -233,75 +264,36 @@ ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения); - // Формирование и сохранение отчетов. - НомерОтчета = 1; - Для Каждого СтрокаОтчет Из Отчеты Цикл - ТекстЖурнала = НСтр("ru = 'Отчет ''%1'' формируется'"); - Если СтрокаОтчет.Настройки = Неопределено Тогда - ТекстЖурнала = ТекстЖурнала + Символы.ПС + НСтр("ru = '(пользовательские настройки не заданы)'"); - КонецЕсли; - - ПредставлениеОтчета = Строка(СтрокаОтчет.Отчет); - - ЗаписьЖурнала(ПараметрыЖурнала, - УровеньЖурналаРегистрации.Примечание, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстЖурнала, ПредставлениеОтчета)); - - // Инициализация отчета. - ПараметрыОтчета = Новый Структура("Отчет, Настройки, Форматы, ОтправлятьЕслиПустой"); - ЗаполнитьЗначенияСвойств(ПараметрыОтчета, СтрокаОтчет); - Если Не ИнициализироватьОтчет(ПараметрыЖурнала, ПараметрыОтчета, ПараметрыДоставки.Персонализирована) Тогда - Продолжить; - КонецЕсли; - - Если ПараметрыДоставки.Персонализирована И НЕ ПараметрыОтчета.Персонализирован Тогда - ПараметрыОтчета.Ошибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Отчет ''%1'' не может сформирован, так как в его настройках не указан отбор по получателю рассылки.'"), - ПредставлениеОтчета); - - ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, ПараметрыОтчета.Ошибки); - Продолжить; - КонецЕсли; - - // Формирование табличных документов и сохранение в форматы. - Попытка - Если ПараметрыОтчета.Персонализирован Тогда - // В разрезе получателей - Для Каждого КлючИЗначение Из ПараметрыДоставки.Получатели Цикл - СформироватьИСохранитьОтчет( - ПараметрыЖурнала, - ПараметрыОтчета, - ДеревоОтчетов, - ПараметрыДоставки, - КлючИЗначение.Ключ); - КонецЦикла; - Иначе - // Без персонализации - СформироватьИСохранитьОтчет( - ПараметрыЖурнала, - ПараметрыОтчета, - ДеревоОтчетов, - ПараметрыДоставки, - Неопределено); + Если ЭтоАвтоПовторнаяРассылка Тогда + ДеревоОтчетов = ПараметрыДоставки.ДеревоОтчетов; + КоличествоСтрок = ДеревоОтчетов.Строки.Количество(); + Для Позиция = -КоличествоСтрок + 1 По 0 Цикл + Если ДеревоОтчетов.Строки[-Позиция] = ПараметрыДоставки.СтрокаОбщихОтчетов Тогда + Продолжить; // Пропустить строку дерева общих отчетов. КонецЕсли; - - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Отчет ''%1'' успешно сформирован'"), ПредставлениеОтчета); - - ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Примечание, ТекстСообщения); + Если ПараметрыДоставки.Получатели.Получить(ДеревоОтчетов.Строки[-Позиция].Ключ) = Неопределено Тогда + ДеревоОтчетов.Строки.Удалить(-Позиция); + КонецЕсли; + КонецЦикла; + Иначе + ДеревоОтчетов = ВыполнитьФормированиеОтчетовВНесколькоПотоков(Отчеты, ПараметрыДоставки, НаименованиеРассылки, ПараметрыЖурнала); + КонецЕсли; - НомерОтчета = НомерОтчета + 1; - Исключение - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Отчет ''%1'' не сформирован:'"), ПредставлениеОтчета); - - ЗаписьЖурнала(ПараметрыЖурнала, , ТекстСообщения, ОбработкаОшибок.ПодробноеПредставлениеОшибки( - ИнформацияОбОшибке())); - КонецПопытки; - КонецЦикла; + Если ТипЗнч(ПараметрыЖурнала.Метаданные) = Тип("Строка") И ЗначениеЗаполнено(ПараметрыЖурнала.Метаданные) Тогда + ПараметрыЖурнала.Метаданные = ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(ПараметрыЖурнала.Метаданные); + КонецЕсли; + + Если ДеревоОтчетов.Строки.Количество() = 0 Тогда + + ЗаписьЖурнала(ПараметрыЖурнала, + УровеньЖурналаРегистрации.Предупреждение, + НСтр("ru = 'Рассылка отчетов не выполнена, так как отчеты пустые или не сформированы из-за ошибок.'")); + Возврат Ложь; + КонецЕсли; // Проверка на количество сохраненных отчетов. - Если ДеревоОтчетов.Строки.Найти(3, "Уровень", Истина) = Неопределено Тогда + Если ДеревоОтчетов.Строки.Найти(3, "Уровень", Истина) = Неопределено + И ПараметрыДоставки.ОтчетыДляТекстаПисьма.Количество() = 0 Тогда ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Предупреждение, НСтр("ru = 'Рассылка отчетов не выполнена, так как отчеты пустые или не сформированы из-за ошибок.'")); @@ -348,6 +340,8 @@ НСтр("ru = 'Начало доставки отчетов получателям.'")); // Отправка личных отчетов (персонализированных). + КоличествоКОтправке = ДеревоОтчетов.Строки.Количество(); + КоличествоОтправлено = 0; Для Каждого СтрокаПолучатель Из ДеревоОтчетов.Строки Цикл Если СтрокаПолучатель = ПараметрыДоставки.СтрокаОбщихОтчетов Тогда Продолжить; // Пропустить строку дерева общих отчетов. @@ -357,53 +351,75 @@ ЛичныеВложения = СтрокаПолучатель.Строки.НайтиСтроки(Новый Структура("Уровень", 3), Истина); // Проверка на количество сохраненных персональных отчетов. - Если ЛичныеВложения.Количество() = 0 Тогда + Если ЛичныеВложения.Количество() = 0 И ПараметрыДоставки.ОтчетыДляТекстаПисьма.Количество() = 0 Тогда Продолжить; КонецЕсли; - // Объединение общих и личных вложений. - ВложенияПолучателя = ОбъединитьМассивы(ОбщиеВложения, ЛичныеВложения); - - // Формирование представления отчетов. - СформироватьПредставлениеОтчетовДляПолучателя(ПараметрыДоставки, СтрокаПолучатель); + Если ПараметрыДоставки.ПрикреплятьОтчетыВоВложения Тогда - // Получение индивидуального пароля на архив и сертификата для шифрования - Если ПараметрыДоставки.Архивировать Тогда - ПарольАрхива = ПаролиАрхивовПолучателей.Получить(СтрокаПолучатель.Ключ); - ПараметрыДоставки.ПарольАрхива = ""; - Если ПарольАрхива <> Неопределено Тогда - ПараметрыДоставки.ПарольАрхива = ПарольАрхива; - КонецЕсли; + // Объединение общих и личных вложений. + ВложенияПолучателя = ОбъединитьМассивы(ОбщиеВложения, ЛичныеВложения); + + // Формирование представления отчетов. + СформироватьПредставлениеОтчетовДляПолучателя(ПараметрыДоставки, СтрокаПолучатель); + + Если ПараметрыДоставки.УстановитьПаролиЗашифровать Тогда + // Получение индивидуального пароля на архив и сертификата для шифрования + Если ПараметрыДоставки.Архивировать Тогда + ПарольАрхива = ПаролиАрхивовПолучателей.Получить(СтрокаПолучатель.Ключ); + ПараметрыДоставки.ПарольАрхива = ""; + Если ПарольАрхива <> Неопределено Тогда + ПараметрыДоставки.ПарольАрхива = ПарольАрхива; + КонецЕсли; + КонецЕсли; + + Если ДоступноШифрованиеВложений() Тогда + ПараметрыОтбора = Новый Структура("ПолучательРассылки", СтрокаПолучатель.Ключ); + НайденныеСтроки = СертификатыШифрованияПолучателей.НайтиСтроки(ПараметрыОтбора); + ПараметрыДоставки.СертификатДляШифрования = ?(НайденныеСтроки.Количество() > 0, + НайденныеСтроки[0].СертификатДляШифрования, Неопределено); + КонецЕсли; + + // Шифрование каждого файла, если не выбрано архивирование + Если ЗначениеЗаполнено(ПараметрыДоставки.СертификатДляШифрования) И Не ПараметрыДоставки.Архивировать Тогда + ЗашифрованныеВложения = Новый Соответствие; + Для Каждого Вложение Из ВложенияПолучателя Цикл + МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись"); + ВложениеДвоичныеДанные = МодульЭлектроннаяПодпись.Зашифровать( + Новый ДвоичныеДанные(Вложение.Значение), ПараметрыДоставки.СертификатДляШифрования); + ВложениеДвоичныеДанные.Записать(Вложение.Значение); + + КоличествоСимволовДоРасширения = СтрНайти(Вложение.Ключ, ".", НаправлениеПоиска.СКонца); + ИмяЗашифрованногоФайла = Лев(Вложение.Ключ, КоличествоСимволовДоРасширения-1) + " " + НСтр( + "ru = '(Необходимо расшифровать)'") + Сред(Вложение.Ключ, КоличествоСимволовДоРасширения); + ЗашифрованныеВложения.Вставить(ИмяЗашифрованногоФайла, Вложение.Значение); + КонецЦикла; + ВложенияПолучателя = ЗашифрованныеВложения; + КонецЕсли; + Иначе + ПараметрыДоставки.ПарольАрхива = ""; + ПараметрыДоставки.СертификатДляШифрования = Неопределено; + КонецЕсли; + + // Архивация вложений. + АрхивацияВложений(ВложенияПолучателя, ПараметрыДоставки, СтрокаПолучатель.Значение); + + Иначе + ВложенияПолучателя = Новый Массив; КонецЕсли; - Если ДоступноШифрованиеВложений() Тогда - ПараметрыОтбора = Новый Структура("ПолучательРассылки", СтрокаПолучатель.Ключ); - НайденныеСтроки = СертификатыШифрованияПолучателей.НайтиСтроки(ПараметрыОтбора); - ПараметрыДоставки.СертификатДляШифрования = ?(НайденныеСтроки.Количество() > 0, - НайденныеСтроки[0].СертификатДляШифрования, Неопределено); - КонецЕсли; - - // Шифрование каждого файла, если не выбрано архивирование - Если ЗначениеЗаполнено(ПараметрыДоставки.СертификатДляШифрования) И НЕ ПараметрыДоставки.Архивировать Тогда - Для Каждого Вложение Из ВложенияПолучателя Цикл - МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись"); - ВложениеДвоичныеДанные = МодульЭлектроннаяПодпись.Зашифровать(Новый ДвоичныеДанные(Вложение.Значение), - ПараметрыДоставки.СертификатДляШифрования); - ВложениеДвоичныеДанные.Записать(Вложение.Значение); - КонецЦикла; - КонецЕсли; - - // Архивация вложений. - АрхивацияВложений(ВложенияПолучателя, ПараметрыДоставки, СтрокаПолучатель.Значение); - АдресПолучателя = ПараметрыДоставки.Получатели[СтрокаПолучатель.Ключ]; ПредставлениеПолучателя = Строка(СтрокаПолучатель.Ключ) + " (" + АдресПолучателя + ")"; // Доставка. - Попытка + Попытка ОтправитьОтчетыПолучателю(ВложенияПолучателя, ПараметрыДоставки, ПараметрыЖурнала, СтрокаПолучатель); РассылкаВыполнена = Истина; - ПараметрыДоставки.ВыполненаПоЭлектроннойПочте = Истина; + ПараметрыДоставки.ВыполненаПоЭлектроннойПочте = Истина; + КоличествоОтправлено = КоличествоОтправлено + 1; + ТекстПрогресса = ТекстПрогрессаВыполненияРассылкиОтчетов(ПараметрыДоставки, КоличествоОтправлено, КоличествоКОтправке); + ПроцентВыполнения = Окр(КоличествоОтправлено * 100 / КоличествоКОтправке); + ДлительныеОперации.СообщитьПрогресс(ПроцентВыполнения, ТекстПрогресса); ДополнительныеСведения = ""; Если ОтправлятьСкрытыеКопииОтправителю Тогда @@ -422,7 +438,8 @@ ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка()); ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения, РасширенноеПредставлениеОшибки); - Если НЕ ИспользуетсяПочтовыйКлиент() Тогда + Если НЕ ИспользуетсяПочтовыйКлиент() И ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") + И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, СтрокаПолучатель.Ключ, ПараметрыДоставки.ДатаВыполнения); ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; ПоляИстории.АдресЭП = СтрокаПолучатель.Значение; @@ -442,38 +459,55 @@ КонецЦикла; // Отправка общих отчетов. - Если ОбщиеВложения.Количество() > 0 Тогда + Если ОбщиеВложения.Количество() > 0 Или ПараметрыДоставки.ОтчетыДляТекстаПисьма.Количество() > 0 Тогда // Представление отчетов. СформироватьПредставлениеОтчетовДляПолучателя(ПараметрыДоставки, СтрокаПолучатель); - УстановитьПривилегированныйРежим(Истина); - ПараметрыДоставки.ПарольАрхива = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища( - ПараметрыЖурнала.Данные, "ПарольАрхива"); - УстановитьПривилегированныйРежим(Ложь); - - Если ДоступноШифрованиеВложений() И ПараметрыДоставки.Личная Тогда - СписокПолучателей = Новый Массив(); - Для Каждого СтрокаПолучатель Из ПараметрыДоставки.Получатели Цикл - СписокПолучателей.Добавить(СтрокаПолучатель.Ключ); - КонецЦикла; - СертификатыШифрованияПолучателей = ПолучитьСертификатыШифрованияПолучателейРассылки(СписокПолучателей); - ПараметрыДоставки.СертификатДляШифрования = ?( СертификатыШифрованияПолучателей.Количество() > 0, - СертификатыШифрованияПолучателей[0].СертификатДляШифрования, Неопределено); + Если (ПараметрыДоставки.ИспользоватьЭлектроннуюПочту И ПараметрыДоставки.ПрикреплятьОтчетыВоВложения) + Или ПараметрыДоставки.ИспользоватьПапку Или ПараметрыДоставки.ИспользоватьСетевойКаталог + Или ПараметрыДоставки.ИспользоватьFTPРесурс Тогда - Если Не ПараметрыДоставки.Архивировать Тогда - // Шифрование каждого файла, если не выбрано архивирование - Для Каждого Вложение Из ОбщиеВложения Цикл - МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись"); - ВложениеДвоичныеДанные = МодульЭлектроннаяПодпись.Зашифровать( - Новый ДвоичныеДанные(Вложение.Значение), ПараметрыДоставки.СертификатДляШифрования); - ВложениеДвоичныеДанные.Записать(Вложение.Значение); + УстановитьПривилегированныйРежим(Истина); + ПараметрыДоставки.ПарольАрхива = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища( + ПараметрыЖурнала.Данные, "ПарольАрхива"); + УстановитьПривилегированныйРежим(Ложь); + + Если ДоступноШифрованиеВложений() И ПараметрыДоставки.Личная Тогда + СписокПолучателей = Новый Массив; + Для Каждого СтрокаПолучатель Из ПараметрыДоставки.Получатели Цикл + СписокПолучателей.Добавить(СтрокаПолучатель.Ключ); КонецЦикла; + СертификатыШифрованияПолучателей = ПолучитьСертификатыШифрованияПолучателейРассылки(СписокПолучателей); + ПараметрыДоставки.СертификатДляШифрования = ?( СертификатыШифрованияПолучателей.Количество() > 0, + СертификатыШифрованияПолучателей[0].СертификатДляШифрования, Неопределено); + ПараметрыДоставки.УстановитьПаролиЗашифровать = ?(ЗначениеЗаполнено(ПараметрыДоставки.СертификатДляШифрования),Истина, Ложь); + + Если Не ПараметрыДоставки.Архивировать И ПараметрыДоставки.УстановитьПаролиЗашифровать Тогда + // Шифрование каждого файла, если не выбрано архивирование + ЗашифрованныеВложения = Новый Соответствие; + Для Каждого Вложение Из ОбщиеВложения Цикл + МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись"); + ВложениеДвоичныеДанные = МодульЭлектроннаяПодпись.Зашифровать( + Новый ДвоичныеДанные(Вложение.Значение), ПараметрыДоставки.СертификатДляШифрования); + ВложениеДвоичныеДанные.Записать(Вложение.Значение); + + КоличествоСимволовДоРасширения = СтрНайти(Вложение.Ключ, ".", НаправлениеПоиска.СКонца); + ИмяЗашифрованногоФайла = Лев(Вложение.Ключ, КоличествоСимволовДоРасширения-1) + " " + НСтр( + "ru = '(Необходимо расшифровать)'") + Сред(Вложение.Ключ, КоличествоСимволовДоРасширения); + ЗашифрованныеВложения.Вставить(ИмяЗашифрованногоФайла, Вложение.Значение); + КонецЦикла; + ОбщиеВложения = ЗашифрованныеВложения; + КонецЕсли; + КонецЕсли; + + // Архивация вложений. + АрхивацияВложений(ОбщиеВложения, ПараметрыДоставки, ПараметрыДоставки.КаталогВременныхФайлов); + + Иначе + ОбщиеВложения = Новый Массив; КонецЕсли; - // Архивация вложений. - АрхивацияВложений(ОбщиеВложения, ПараметрыДоставки, ПараметрыДоставки.КаталогВременныхФайлов); - // Доставка. Если ВыполнитьДоставку(ПараметрыЖурнала, ПараметрыДоставки, ОбщиеВложения) Тогда РассылкаВыполнена = Истина; @@ -506,6 +540,11 @@ ЗаписьЖурнала(ПараметрыЖурнала, , НСтр("ru = 'Рассылка не выполнена'")); КонецЕсли; + Если НЕ ЭтоАвтоПовторнаяРассылка И ЭтоСправочникРассылкаОтчетов Тогда + ПараметрыДоставки.ДеревоОтчетов = ДеревоОтчетов; + ОтправитьПовторноПоЭлектроннойПочте(Отчеты, ПараметрыДоставки, ПараметрыЖурнала.Данные, ПараметрыЖурнала); + КонецЕсли; + ФайловаяСистема.УдалитьВременныйКаталог(ПараметрыДоставки.КаталогВременныхФайлов); // Результат. @@ -557,10 +596,10 @@ // Примечание. Настройки, с которыми должен сформироваться отчет. // * Форматы - Массив из ПеречислениеСсылка.ФорматыСохраненияОтчетов - форматы, в которых необходимо сохранить и // отправить отчет. +// * ШаблонНаименования - Строка - для формирования имени файла отчета // Функция ОтчетыДляРассылки() Экспорт - ТаблицаОтчетов = Новый ТаблицаЗначений; ТаблицаОтчетов = Новый ТаблицаЗначений; ТаблицаОтчетов.Колонки.Добавить("Отчет", Метаданные.Справочники.РассылкиОтчетов.ТабличныеЧасти.Отчеты.Реквизиты.Отчет.Тип); ТаблицаОтчетов.Колонки.Добавить("ОтправлятьЕслиПустой", Новый ОписаниеТипов("Булево")); @@ -572,6 +611,7 @@ ТаблицаОтчетов.Колонки.Добавить("Настройки", Новый ОписаниеТипов(МассивТиповНастроек)); ТаблицаОтчетов.Колонки.Добавить("Форматы", Новый ОписаниеТипов("Массив")); + ТаблицаОтчетов.Колонки.Добавить("ШаблонНаименования", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(150))); Возврат ТаблицаОтчетов; КонецФункции @@ -675,7 +715,8 @@ ПараметрыДоставки = РассылкаОтчетовКлиентСервер.ПараметрыДоставки(); ПараметрыДоставки.ДатаВыполнения = ТекущаяДатаСеанса(); ПараметрыДоставки.Автор = Пользователи.ТекущийПользователь(); - ПараметрыДоставки.КаталогВременныхФайлов = ФайловаяСистема.СоздатьВременныйКаталог("RP"); + ПараметрыДоставки.КаталогВременныхФайлов = ФайловаяСистема.СоздатьВременныйКаталог("RP"); + ПараметрыДоставки.ПараметрыПисьма.Важность = ВажностьИнтернетПочтовогоСообщения.Обычная; Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда ПараметрыДоставки.ПараметрыПисьма.УведомитьОДоставке = Истина; @@ -1164,15 +1205,16 @@ Обработчик.НачальноеЗаполнение = Истина; Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "3.1.8.59"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("0c8c6c46-5ae3-4893-af67-a0c930ab2d50"); + Обработчик.Версия = "3.1.9.21"; + Обработчик.Идентификатор = Новый УникальныйИдентификатор("a3675668-c1c4-4012-a007-8df47dbed76d"); Обработчик.Процедура = "Справочники.РассылкиОтчетов.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.РассылкиОтчетов.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ИзменяемыеОбъекты = "Справочник.РассылкиОтчетов"; Обработчик.БлокируемыеОбъекты = "Справочник.РассылкиОтчетов"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; - Обработчик.Комментарий = НСтр("ru = 'Обновление форматов рассылок отчетов с HTML4 на HTML5.'"); + Обработчик.Комментарий = НСтр("ru = 'Установка шаблонов наименований отчетов по умолчанию в рассылках отчетов, + |установка флага ""Прикреплять отчеты во вложения"". До завершения обработки, не рекомендуется использовать рассылки отчетов.'"); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); @@ -1782,10 +1824,10 @@ ПараметрыОтчета.Вставить("ДоступныеРеквизиты", Неопределено); ПараметрыОтчета.Вставить("КомпоновщикНастроекКД", Неопределено); - ПараметрыПодключения = Новый Структура; - ПараметрыПодключения.Вставить("СсылкаВарианта", ПараметрыОтчета.Отчет); - ПараметрыПодключения.Вставить("ИдентификаторФормы", УникальныйИдентификаторФормы); - ПараметрыПодключения.Вставить("ПользовательскиеНастройкиКД", ПараметрыОтчета.Настройки); + ПараметрыПодключения = ВариантыОтчетов.ПараметрыФормированияОтчета(); + ПараметрыПодключения.СсылкаВарианта = ПараметрыОтчета.Отчет; + ПараметрыПодключения.ИдентификаторФормы = УникальныйИдентификаторФормы; + ПараметрыПодключения.ПользовательскиеНастройкиКД = ПараметрыОтчета.Настройки; Если ТипЗнч(ПараметрыПодключения.ПользовательскиеНастройкиКД) <> Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда ПараметрыПодключения.ПользовательскиеНастройкиКД = Новый ПользовательскиеНастройкиКомпоновкиДанных; КонецЕсли; @@ -1936,7 +1978,7 @@ Функция ПараметрыФормированияОтчета(ПараметрыОтчета, Получатель) - ПараметрыФормирования = Новый Структура; + ПараметрыФормированияОтчета = Новый Структура; // Заполнение персонализированных данных получателей. Если Получатель <> Неопределено И ПараметрыОтчета.Свойство("ПерсональныеОтборы") Тогда @@ -1953,7 +1995,7 @@ КонецЕсли; КонецЦикла; - ПараметрыФормирования.Вставить("ПользовательскиеНастройкиКД", ПользовательскиеНастройкиКД); + ПараметрыФормированияОтчета.Вставить("ПользовательскиеНастройкиКД", ПользовательскиеНастройкиКД); Иначе Для Каждого КлючИЗначение Из ПараметрыОтчета.ПерсональныеОтборы Цикл ПараметрыОтчета.Объект[КлючИЗначение.Ключ] = Получатель; @@ -1964,13 +2006,15 @@ ДополнительныеПараметры = Новый Структура("Отчет, Объект, СКД, КомпоновщикНастроекКД"); ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ПараметрыОтчета); - РассылкаОтчетовПереопределяемый.ПриПодготовкеПараметровФормированияОтчета(ПараметрыФормирования, ДополнительныеПараметры); - + РассылкаОтчетовПереопределяемый.ПриПодготовкеПараметровФормированияОтчета(ПараметрыФормированияОтчета, ДополнительныеПараметры); + + Результат = ВариантыОтчетов.ПараметрыФормированияОтчета(); + ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Результат, ПараметрыФормированияОтчета, Истина); + ЗаполнитьЗначенияСвойств(ПараметрыОтчета, ДополнительныеПараметры); + Результат.Подключение = ПараметрыОтчета; - ПараметрыФормирования.Вставить("Подключение", ПараметрыОтчета); - - Возврат ПараметрыФормирования; + Возврат Результат; КонецФункции @@ -2009,6 +2053,8 @@ ВсеПолучатели = СформироватьМассивПолучателейРассылки(ПараметрыЖурнала.Данные, ПараметрыЖурнала); Попытка + КоличествоОтправлено = 0; + КоличествоКОтправке = Вложения.Количество(); Для Каждого Вложение Из Вложения Цикл КопироватьФайл(Вложение.Значение, СетевойКаталогСервера + Вложение.Ключ); Если ПараметрыДоставки.ДобавлятьСсылки <> "" Тогда @@ -2017,6 +2063,10 @@ Вложение.Значение, ПараметрыДоставки.СетевойКаталогWindows + Вложение.Ключ); КонецЕсли; + КоличествоОтправлено = КоличествоОтправлено + 1; + ТекстПрогресса = ТекстПрогрессаВыполненияРассылкиОтчетов(ПараметрыДоставки, КоличествоОтправлено, КоличествоКОтправке); + ПроцентВыполнения = Окр(КоличествоОтправлено * 100 / КоличествоКОтправке); + ДлительныеОперации.СообщитьПрогресс(ПроцентВыполнения, ТекстПрогресса); КонецЦикла; Результат = Истина; ПараметрыДоставки.ВыполненаВСетевойКаталог = Истина; @@ -2027,7 +2077,8 @@ КонецЦикла; КонецЕсли; - Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда + Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") + И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( "ru = 'Отчеты помещены в сетевой каталог ''%1''.'"), СетевойКаталогСервера); Для Каждого Получатель Из ВсеПолучатели Цикл @@ -2043,18 +2094,19 @@ КонецЦикла; КонецЕсли; Исключение - ЗаписьЖурнала(ПараметрыЖурнала, , ШаблонСообщенияОбОшибке, ИнформацияОбОшибке()); - Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда - Для Каждого Получатель Из ВсеПолучатели Цикл + ЗаписьЖурнала(ПараметрыЖурнала, , ШаблонСообщенияОбОшибке, ИнформацияОбОшибке()); + Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") + И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда + Для Каждого Получатель Из ВсеПолучатели Цикл ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, Получатель, ПараметрыДоставки.ДатаВыполнения); - ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; + ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; ПоляИстории.Комментарий = ШаблонСообщенияОбОшибке; ПоляИстории.Выполнена = Ложь; ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, Получатель); ПоляИстории.ИдентификаторПисьма = ""; РегистрыСведений.ИсторияРассылкиОтчетов.ЗафиксироватьРезультатВыполненияРассылкиПолучателю(ПоляИстории); - КонецЦикла; + КонецЦикла; КонецЕсли; КонецПопытки; @@ -2091,6 +2143,8 @@ ПараметрыДоставки.ПассивноеСоединение, 15); Соединение.УстановитьТекущийКаталог(ПараметрыДоставки.Каталог); + КоличествоОтправлено = 0; + КоличествоКОтправке = Вложения.Количество(); Для Каждого Вложение Из Вложения Цикл Соединение.Записать(Вложение.Значение, ПараметрыДоставки.Каталог + Вложение.Ключ); Если ПараметрыДоставки.ДобавлятьСсылки <> "" Тогда @@ -2098,6 +2152,10 @@ ПараметрыДоставки.ПредставлениеОтчетовПолучателя, Вложение.Значение, Цель + Вложение.Ключ); + КоличествоОтправлено = КоличествоОтправлено + 1; + ТекстПрогресса = ТекстПрогрессаВыполненияРассылкиОтчетов(ПараметрыДоставки, КоличествоОтправлено, КоличествоКОтправке); + ПроцентВыполнения = Окр(КоличествоОтправлено * 100 / КоличествоКОтправке); + ДлительныеОперации.СообщитьПрогресс(ПроцентВыполнения, ТекстПрогресса); КонецЕсли; КонецЦикла; @@ -2110,12 +2168,13 @@ КонецЦикла; КонецЕсли; - Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда + Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") + И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( "ru = 'Отчеты опубликованы на ''%1''.'"), Цель); - Для Каждого Получатель Из ВсеПолучатели Цикл + Для Каждого Получатель Из ВсеПолучатели Цикл ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, Получатель, ПараметрыДоставки.ДатаВыполнения); - ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; + ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; ПоляИстории.Комментарий = ТекстСообщения; ПоляИстории.Выполнена = Истина; ПоляИстории.ДатаДоставки = ТекущаяДатаСеанса(); @@ -2126,11 +2185,12 @@ КонецЦикла; КонецЕсли; Исключение - ЗаписьЖурнала(ПараметрыЖурнала, , ШаблонСообщенияОбОшибке, ИнформацияОбОшибке()); - Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда - Для Каждого Получатель Из ВсеПолучатели Цикл + ЗаписьЖурнала(ПараметрыЖурнала, , ШаблонСообщенияОбОшибке, ИнформацияОбОшибке()); + Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") + И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда + Для Каждого Получатель Из ВсеПолучатели Цикл ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, Получатель, ПараметрыДоставки.ДатаВыполнения); - ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; + ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; ПоляИстории.Комментарий = ШаблонСообщенияОбОшибке; ПоляИстории.Выполнена = Ложь; ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, Получатель); @@ -2154,14 +2214,15 @@ МодульРаботаСФайламиСлужебный.ПриВыполненииДоставкиВПапку(ПараметрыДоставки, Вложения); Результат = Истина; ПараметрыДоставки.ВыполненаВПапку = Истина; - Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда + Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") + И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( "ru = 'Отчеты помещены в папку ''%1''.'"), Строка(ПараметрыДоставки.Папка)); - Для Каждого Получатель Из ВсеПолучатели Цикл + Для Каждого Получатель Из ВсеПолучатели Цикл ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, Получатель, ПараметрыДоставки.ДатаВыполнения); - ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; + ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; ПоляИстории.Комментарий = ТекстСообщения; - ПоляИстории.Выполнена = Истина; + ПоляИстории.Выполнена = Истина; ПоляИстории.ДатаДоставки = ТекущаяДатаСеанса(); ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, Получатель); ПоляИстории.ИдентификаторПисьма = ""; @@ -2172,10 +2233,11 @@ КонецЕсли; Исключение ЗаписьЖурнала(ПараметрыЖурнала, , ШаблонСообщенияОбОшибке, ИнформацияОбОшибке()); - Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда - Для Каждого Получатель Из ВсеПолучатели Цикл + Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") + И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда + Для Каждого Получатель Из ВсеПолучатели Цикл ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, Получатель, ПараметрыДоставки.ДатаВыполнения); - ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; + ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; ПоляИстории.Комментарий = ШаблонСообщенияОбОшибке; ПоляИстории.Выполнена = Ложь; ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, Получатель); @@ -2198,6 +2260,8 @@ Если ПараметрыДоставки.ТолькоУведомить Тогда ШаблонСообщенияОбОшибке = НСтр("ru = 'Невозможно отправить уведомление о рассылке по электронной почте:'"); ВложенияПисьма = Новый Соответствие; + ИначеЕсли НЕ ПараметрыДоставки.ПрикреплятьОтчетыВоВложения Тогда + ВложенияПисьма = Новый Соответствие; Иначе ШаблонСообщенияОбОшибке = НСтр("ru = 'Невозможно отправить отчет по электронной почте:'"); ВложенияПисьма = Вложения; @@ -2219,7 +2283,8 @@ ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, ШаблонСообщенияОбОшибке, РасширенноеПредставлениеОшибки); - Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") И НЕ ИспользуетсяПочтовыйКлиент() Тогда + Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") И НЕ ИспользуетсяПочтовыйКлиент() + И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда Для Каждого СтрокаПолучатель Из ПараметрыДоставки.Получатели Цикл АдресаПолучателя = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(СтрокаПолучатель.Значение); Для Каждого АдресЭП Из АдресаПолучателя Цикл @@ -2442,6 +2507,63 @@ КонецФункции +Функция ПолучателиПовторнойРассылкиОтчетов(Рассылка, ПоследнийЗапускНачало, НомерСеанса) Экспорт + + Получатели = Новый Соответствие; + + Запрос = Новый Запрос; + Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | ИсторияРассылкиОтчетов.Получатель КАК Получатель, + | ИсторияРассылкиОтчетов.АдресЭП КАК АдресЭП, + | МАКСИМУМ(ИсторияРассылкиОтчетов.Выполнена) КАК Выполнена + |ПОМЕСТИТЬ ВТ_Получатели + |ИЗ + | РегистрСведений.ИсторияРассылкиОтчетов КАК ИсторияРассылкиОтчетов + |ГДЕ + | ИсторияРассылкиОтчетов.РассылкаОтчетов = &РассылкаОтчетов + | И ИсторияРассылкиОтчетов.ЗапускРассылки = &ЗапускРассылки + | И ИсторияРассылкиОтчетов.НомерСеанса = &НомерСеанса + | И ИсторияРассылкиОтчетов.АдресЭП <> """" + | + |СГРУППИРОВАТЬ ПО + | ИсторияРассылкиОтчетов.Получатель, + | ИсторияРассылкиОтчетов.АдресЭП + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВТ_Получатели.Получатель КАК Получатель, + | ВТ_Получатели.АдресЭП КАК АдресЭлектроннойПочты + |ИЗ + | ВТ_Получатели КАК ВТ_Получатели + |ГДЕ + | НЕ ВТ_Получатели.Выполнена + |ИТОГИ ПО + | Получатель"; + + Запрос.УстановитьПараметр("РассылкаОтчетов",Рассылка); + Запрос.УстановитьПараметр("ЗапускРассылки", ПоследнийЗапускНачало); + Запрос.УстановитьПараметр("НомерСеанса", НомерСеанса); + + РезультатЗапроса = Запрос.Выполнить(); + + ВыборкаПолучатели = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); + + Пока ВыборкаПолучатели.Следующий() Цикл + Выборка = ВыборкаПолучатели.Выбрать(); + АдресЭлектроннойПочты = ""; + Пока Выборка.Следующий() Цикл + ТекущийАдрес = ?(ПустаяСтрока(АдресЭлектроннойПочты), "", + АдресЭлектроннойПочты + "; "); + АдресЭлектроннойПочты = ТекущийАдрес + Выборка.АдресЭлектроннойПочты; + КонецЦикла; + Получатели.Вставить(ВыборкаПолучатели.Получатель, АдресЭлектроннойПочты); + КонецЦикла; + + Возврат Получатели; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Локальные служебные процедуры и функции. @@ -2453,7 +2575,7 @@ // * Префикс - Строка - префикс для имени события журнала регистрации. // * Метаданные - ОбъектМетаданных - метаданные для записи в журнал регистрации. // * Данные - Произвольный - данные для записи в журнал регистрации. -// ПараметрыОтчета - Структура - см. ВыполнитьРассылку(), параметр ТаблицаОтчетов. +// ПараметрыОтчета - см. ВыполнитьРассылку.Отчеты // ДеревоОтчетов - ДеревоЗначений - отчеты и результат формирования. // ПараметрыДоставки - см. ПараметрыДоставки // ПолучательСсылка - СправочникСсылка - ссылка получателя. @@ -2477,7 +2599,8 @@ // Проверка результата Если Не Результат.Сформирован Или (Результат.Пустой И Не ПараметрыОтчета.ОтправлятьЕслиПустой) Тогда - Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда + Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") + И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда Если Результат.Сформирован Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( "ru = '- ""%1"" не был отправлен, так как пустой.'"), Строка(ПараметрыОтчета.Отчет)); @@ -2500,8 +2623,8 @@ ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, ПолучательСсылка, Кому.Адрес); РегистрыСведений.ИсторияРассылкиОтчетов.ЗафиксироватьРезультатВыполненияРассылкиПолучателю(ПоляИстории); - КонецЦикла; - КонецЕсли; + КонецЦикла; + КонецЕсли; Иначе Для Каждого Получатель Из ПараметрыДоставки.Получатели Цикл АдресаПолучателя = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(Получатель.Значение); @@ -2514,9 +2637,9 @@ ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, Получатель.Ключ, Кому.Адрес); РегистрыСведений.ИсторияРассылкиОтчетов.ЗафиксироватьРезультатВыполненияРассылкиПолучателю(ПоляИстории); - КонецЦикла; - КонецЦикла; - КонецЕсли; + КонецЦикла; + КонецЦикла; + КонецЕсли; КонецЕсли; Возврат; @@ -2532,123 +2655,158 @@ СтрокаОтчет.Уровень = 2; СтрокаОтчет.Ключ = Строка(ПараметрыОтчета.Отчет); СтрокаОтчет.Значение = Результат.ТабДок; - СтрокаОтчет.Настройки = ПараметрыОтчета; + СтрокаОтчет.Настройки = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыОтчета); + + // Для корректной передачи в длительные операции, подготовим строку дерева. Иначе возникает ошибка: + // "Переданное значение не может быть помещено в ХранилищеЗначения, + // поскольку не сериализуется или содержит вложенный несериализуемый элемент". + СтрокаОтчет.Настройки.Удалить("Объект"); + СтрокаОтчет.Настройки.Удалить("КомпоновщикНастроекКД"); + Если СтрокаОтчет.Настройки.Свойство("Метаданные") Тогда + СтрокаОтчет.Настройки.Метаданные = СтрокаОтчет.Настройки.Метаданные.ПолноеИмя(); + КонецЕсли; ПредставлениеОтчета = СокрЛП(СтрокаОтчет.Ключ); + Если ПараметрыДоставки.ИспользоватьЭлектроннуюПочту И ПараметрыДоставки.ВставлятьОтчетыВТекстПисьма + И Не ПараметрыДоставки.ПрикреплятьОтчетыВоВложения И Не ПараметрыДоставки.ИспользоватьПапку + И Не ПараметрыДоставки.ИспользоватьСетевойКаталог И Не ПараметрыДоставки.ИспользоватьFTPРесурс Тогда + + ПараметрыОтчетаДляТекстаПисьма = ПараметрыОтчетаДляТекстаПисьма(КаталогПолучателя, ПредставлениеОтчета, + ПараметрыОтчета.ШаблонНаименования, ПолучательСсылка, СтрокаОтчет.Значение); + ПодготовитьОтчетДляТекстаПисьма(ПараметрыДоставки, ПараметрыОтчетаДляТекстаПисьма, ПараметрыЖурнала); + Иначе + Период = ПолучитьПериодИзПользовательскихНастроек(ПараметрыОтчета.ПользовательскиеНастройкиКД); + ОтчетПодготовленДляТекстаПисьма = Ложь; // Сохранение табличного документа в форматы. - ПредставлениеФорматов = ""; - Для Каждого Формат Из ПараметрыОтчета.Форматы Цикл - - ПараметрыФормата = ПараметрыДоставки.ПараметрыФорматов.Получить(Формат); - - Если ПараметрыФормата = Неопределено Тогда - Продолжить; - КонецЕсли; - - ПолноеИмяФайла = ПолноеИмяФайлаПоШаблону( - КаталогПолучателя, СтрокаОтчет.Ключ, ПараметрыФормата, ПараметрыДоставки); - - НайтиСвободноеИмяФайла(ПолноеИмяФайла); - - СтандартнаяОбработка = Истина; - - // Механизм расширения - РассылкаОтчетовПереопределяемый.ПередСохранениемТабличногоДокументаВФормат( - СтандартнаяОбработка, - СтрокаОтчет.Значение, - Формат, - ПолноеИмяФайла); - - // Сохранение отчета встроенными средствами подсистемы. - Если СтандартнаяОбработка = Истина Тогда - ЗаголовокОшибки = НСтр("ru = 'Ошибка записи отчета ''%1'' в формат ''%2'':'"); - - Если ПараметрыФормата.ТипФайла = Неопределено Тогда - ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗаголовокОшибки, СтрокаОтчет.Ключ, ПараметрыФормата.Имя), - НСтр("ru = 'Формат не поддерживается.'")); + ПредставлениеФорматов = ""; + Для Каждого Формат Из ПараметрыОтчета.Форматы Цикл + + ПараметрыФормата = ПараметрыДоставки.ПараметрыФорматов.Получить(Формат); + + Если ПараметрыФормата = Неопределено Тогда Продолжить; КонецЕсли; - - ДокументРезультат = СтрокаОтчет.Значение; // ТабличныйДокумент - - Попытка - ДокументРезультат.Записать(ПолноеИмяФайла, ПараметрыФормата.ТипФайла); - Исключение - ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗаголовокОшибки, СтрокаОтчет.Ключ, ПараметрыФормата.Имя), - ИнформацияОбОшибке()); - Продолжить; - КонецПопытки; - КонецЕсли; + + ПолноеИмяФайла = ПолноеИмяФайлаПоШаблону( + КаталогПолучателя, СтрокаОтчет.Ключ, ПараметрыФормата, ПараметрыДоставки, + ПараметрыОтчета.ШаблонНаименования, Период); + + НайтиСвободноеИмяФайла(ПолноеИмяФайла); + + СтандартнаяОбработка = Истина; + + // Механизм расширения + РассылкаОтчетовПереопределяемый.ПередСохранениемТабличногоДокументаВФормат( + СтандартнаяОбработка, СтрокаОтчет.Значение, Формат, ПолноеИмяФайла); + + // Сохранение отчета встроенными средствами подсистемы. + Если СтандартнаяОбработка = Истина Тогда + ЗаголовокОшибки = НСтр("ru = 'Ошибка записи отчета ''%1'' в формат ''%2'':'"); + + Если ПараметрыФормата.ТипФайла = Неопределено Тогда + ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗаголовокОшибки, СтрокаОтчет.Ключ, + ПараметрыФормата.Имя), НСтр("ru = 'Формат не поддерживается.'")); + Продолжить; + КонецЕсли; + + ДокументРезультат = СтрокаОтчет.Значение; // ТабличныйДокумент + + Попытка + ДокументРезультат.Записать(ПолноеИмяФайла, ПараметрыФормата.ТипФайла); + Исключение + ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗаголовокОшибки, СтрокаОтчет.Ключ, + ПараметрыФормата.Имя), ИнформацияОбОшибке()); + Продолжить; + КонецПопытки; + КонецЕсли; // Проверки и регистрация результата. - ВременныйФайл = Новый Файл(ПолноеИмяФайла); - Если Не ВременныйФайл.Существует() Тогда - ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗаголовокОшибки + Символы.ПС + НСтр("ru = 'Файл ''%3'' не существует.'"), - СтрокаОтчет.Ключ, ПараметрыФормата.Имя, ВременныйФайл.ПолноеИмя)); - Продолжить; - КонецЕсли; + ВременныйФайл = Новый Файл(ПолноеИмяФайла); + Если Не ВременныйФайл.Существует() Тогда + ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗаголовокОшибки + Символы.ПС + НСтр( + "ru = 'Файл ''%3'' не существует.'"), СтрокаОтчет.Ключ, ПараметрыФормата.Имя, + ВременныйФайл.ПолноеИмя)); + Продолжить; + КонецЕсли; // Регистрация конечного результата - сохраненного отчета во временном каталоге. // 3 - Файлы получателей // Ключ - имя файла // Значение - полный путь к файлу. // Настройки - настройки файла. - СтрокаФайл = СтрокаОтчет.Строки.Добавить(); - СтрокаФайл.Уровень = 3; - СтрокаФайл.Ключ = ВременныйФайл.Имя; - СтрокаФайл.Значение = ВременныйФайл.ПолноеИмя; - - СтрокаФайл.Настройки = Новый Структура("ФайлСКаталогом, ИмяФайла, ПолноеИмяФайла, ИмяКаталога, ПолноеИмяКаталога, - |Формат, Имя, Расширение, ТипФайла, Ссылка"); - - СтрокаФайл.Настройки.Формат = Формат; - ЗаполнитьЗначенияСвойств(СтрокаФайл.Настройки, ПараметрыФормата, "Имя, Расширение, ТипФайла"); - - СтрокаФайл.Настройки.ИмяФайла = ВременныйФайл.Имя; - СтрокаФайл.Настройки.ПолноеИмяФайла = ВременныйФайл.ПолноеИмя; - СтрокаФайл.Настройки.ИмяКаталога = ВременныйФайл.ИмяБезРасширения + "_files"; - СтрокаФайл.Настройки.ПолноеИмяКаталога = ВременныйФайл.Путь + СтрокаФайл.Настройки.ИмяКаталога + "\"; - - КаталогФайла = Новый Файл(СтрокаФайл.Настройки.ПолноеИмяКаталога); - - СтрокаФайл.Настройки.ФайлСКаталогом = (КаталогФайла.Существует() И КаталогФайла.ЭтоКаталог()); - - Если СтрокаФайл.Настройки.ФайлСКаталогом И Не ПараметрыДоставки.Архивировать Тогда + СтрокаФайл = СтрокаОтчет.Строки.Добавить(); + СтрокаФайл.Уровень = 3; + СтрокаФайл.Ключ = ВременныйФайл.Имя; + СтрокаФайл.Значение = ВременныйФайл.ПолноеИмя; + + СтрокаФайл.Настройки = Новый Структура("ФайлСКаталогом, ИмяФайла, ПолноеИмяФайла, ИмяКаталога, ПолноеИмяКаталога, + |Формат, Имя, Расширение, ТипФайла, Ссылка"); + + СтрокаФайл.Настройки.Формат = Формат; + ЗаполнитьЗначенияСвойств(СтрокаФайл.Настройки, ПараметрыФормата, "Имя, Расширение, ТипФайла"); + + СтрокаФайл.Настройки.ИмяФайла = ВременныйФайл.Имя; + СтрокаФайл.Настройки.ПолноеИмяФайла = ВременныйФайл.ПолноеИмя; + СтрокаФайл.Настройки.ИмяКаталога = ВременныйФайл.ИмяБезРасширения + "_files"; + СтрокаФайл.Настройки.ПолноеИмяКаталога = ВременныйФайл.Путь + СтрокаФайл.Настройки.ИмяКаталога + "\"; + + КаталогФайла = Новый Файл(СтрокаФайл.Настройки.ПолноеИмяКаталога); + + СтрокаФайл.Настройки.ФайлСКаталогом = (КаталогФайла.Существует() И КаталогФайла.ЭтоКаталог()); + + Если СтрокаФайл.Настройки.ФайлСКаталогом И Не ПараметрыДоставки.Архивировать Тогда // Каталог вместе с файлом архивируются, а вместо файла отправляется архив файла с каталогом. - ИмяАрхива = ВременныйФайл.ИмяБезРасширения + ".zip"; - ПолноеИмяАрхива = КаталогПолучателя + ИмяАрхива; - - РежимСохранения = РежимСохраненияПутейZIP.СохранятьОтносительныеПути; - РежимОбработки = РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно; - - ЗаписьZipФайла = Новый ЗаписьZipФайла(ПолноеИмяАрхива); - ЗаписьZipФайла.Добавить(СтрокаФайл.Настройки.ПолноеИмяФайла, РежимСохранения, РежимОбработки); - ЗаписьZipФайла.Добавить(СтрокаФайл.Настройки.ПолноеИмяКаталога, РежимСохранения, РежимОбработки); - ЗаписьZipФайла.Записать(); - - СтрокаФайл.Ключ = ИмяАрхива; - СтрокаФайл.Значение = ПолноеИмяАрхива; - КонецЕсли; - - КаталогФайла = Неопределено; - ВременныйФайл = Неопределено; - - ПредставлениеФорматов = ПредставлениеФорматов - + ?(ПредставлениеФорматов = "", "", ", ") - + ?(ПараметрыДоставки.ДобавлятьСсылки = "КФорматам", "<a href = '" + СтрокаФайл.Значение + "'>", "") - + ПараметрыФормата.Имя - + ?(ПараметрыДоставки.ДобавлятьСсылки = "КФорматам", "</a>", ""); + ИмяАрхива = ВременныйФайл.ИмяБезРасширения + ".zip"; + ПолноеИмяАрхива = КаталогПолучателя + ИмяАрхива; + + РежимСохранения = РежимСохраненияПутейZIP.СохранятьОтносительныеПути; + РежимОбработки = РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно; + + ЗаписьZipФайла = Новый ЗаписьZipФайла(ПолноеИмяАрхива); + ЗаписьZipФайла.Добавить(СтрокаФайл.Настройки.ПолноеИмяФайла, РежимСохранения, РежимОбработки); + ЗаписьZipФайла.Добавить(СтрокаФайл.Настройки.ПолноеИмяКаталога, РежимСохранения, РежимОбработки); + ЗаписьZipФайла.Записать(); + + СтрокаФайл.Ключ = ИмяАрхива; + СтрокаФайл.Значение = ПолноеИмяАрхива; + КонецЕсли; + + КаталогФайла = Неопределено; + ВременныйФайл = Неопределено; + + ПредставлениеФорматов = ПредставлениеФорматов + ?(ПредставлениеФорматов = "", "", ", ") + ?( + ПараметрыДоставки.ДобавлятьСсылки = "КФорматам", "<a href = '" + СтрокаФайл.Значение + "'>", "") + + ПараметрыФормата.Имя + ?(ПараметрыДоставки.ДобавлятьСсылки = "КФорматам", "</a>", ""); // - Если ПараметрыДоставки.ДобавлятьСсылки = "ПослеОтчетов" Тогда - ПредставлениеОтчета = ПредставлениеОтчета + Символы.ПС + "<" + СтрокаФайл.Значение + ">"; - КонецЕсли; + Если ПараметрыДоставки.ДобавлятьСсылки = "ПослеОтчетов" Тогда + ПредставлениеОтчета = ПредставлениеОтчета + Символы.ПС + "<" + СтрокаФайл.Значение + ">"; + КонецЕсли; + + Если ПараметрыДоставки.ИспользоватьЭлектроннуюПочту И ПараметрыДоставки.ВставлятьОтчетыВТекстПисьма Тогда + Если (ПараметрыДоставки.ПисьмоВФорматеHTML И Формат = Перечисления.ФорматыСохраненияОтчетов.HTML) + Или (НЕ ПараметрыДоставки.ПисьмоВФорматеHTML И Формат = Перечисления.ФорматыСохраненияОтчетов.TXT) Тогда + ПараметрыОтчетаДляТекстаПисьма = ПараметрыОтчетаДляТекстаПисьма(КаталогПолучателя, ПредставлениеОтчета, + ПараметрыОтчета.ШаблонНаименования, ПолучательСсылка, СтрокаОтчет.Значение); + ПодготовитьОтчетДляТекстаПисьма(ПараметрыДоставки, ПараметрыОтчетаДляТекстаПисьма, + ПараметрыЖурнала, ПолноеИмяФайла); + ОтчетПодготовленДляТекстаПисьма = Истина; + КонецЕсли; + КонецЕсли; + + КонецЦикла; - КонецЦикла; + Если ПараметрыДоставки.ИспользоватьЭлектроннуюПочту И ПараметрыДоставки.ВставлятьОтчетыВТекстПисьма И НЕ ОтчетПодготовленДляТекстаПисьма Тогда + ПараметрыОтчетаДляТекстаПисьма = ПараметрыОтчетаДляТекстаПисьма(КаталогПолучателя, ПредставлениеОтчета, + ПараметрыОтчета.ШаблонНаименования, ПолучательСсылка, СтрокаОтчет.Значение); + ПодготовитьОтчетДляТекстаПисьма(ПараметрыДоставки, ПараметрыОтчетаДляТекстаПисьма, ПараметрыЖурнала); + КонецЕсли; + + КонецЕсли; // Представление конкретного отчета. ПредставлениеОтчета = СтрЗаменить(ПредставлениеОтчета, "[ПредставлениеФорматов]", ПредставлениеФорматов); @@ -2656,6 +2814,74 @@ КонецПроцедуры +Функция ПараметрыОтчетаДляТекстаПисьма(КаталогПолучателя, ПредставлениеОтчета, ШаблонНаименования, Получатель, ТабличныйДокумент) + + ПараметрыОтчета = Новый Структура("КаталогПолучателя, ПредставлениеОтчета, ШаблонНаименования, Получатель, ТабличныйДокумент"); + ПараметрыОтчета.КаталогПолучателя = КаталогПолучателя; + ПараметрыОтчета.ПредставлениеОтчета = ПредставлениеОтчета; + ПараметрыОтчета.ШаблонНаименования = ШаблонНаименования; + ПараметрыОтчета.Получатель = Получатель; + ПараметрыОтчета.ТабличныйДокумент = ТабличныйДокумент; + + Возврат ПараметрыОтчета; + +КонецФункции + +Процедура ПодготовитьОтчетДляТекстаПисьма(ПараметрыДоставки, ПараметрыОтчета, ПараметрыЖурнала, ПолноеИмяФайла = Неопределено) + + Если ПолноеИмяФайла = Неопределено Тогда + ПолноеИмяФайла = ПутьКВременномуФайлаОтчетаДляТекстаПисьма(ПараметрыДоставки, ПараметрыОтчета, ПараметрыЖурнала); + КонецЕсли; + + КлючСоответствия = ?(ПараметрыОтчета.Получатель = Неопределено, "Ключ", ПараметрыОтчета.Получатель); + ОтчетыДляТекста = ПараметрыДоставки.ОтчетыДляТекстаПисьма.Получить(КлючСоответствия); + Если ОтчетыДляТекста = Неопределено Тогда + СтруктураФайла = Новый Структура("ПолноеИмяФайла, Представление", ПолноеИмяФайла, ПараметрыОтчета.ПредставлениеОтчета); + ОтчетыДляТекста = Новый Массив; + ОтчетыДляТекста.Добавить(СтруктураФайла); + ПараметрыДоставки.ОтчетыДляТекстаПисьма.Вставить(КлючСоответствия, ОтчетыДляТекста); + Иначе + СтруктураФайла = Новый Структура("ПолноеИмяФайла, Представление", ПолноеИмяФайла, ПараметрыОтчета.ПредставлениеОтчета); + ОтчетыДляТекста.Добавить(СтруктураФайла); + КонецЕсли; + +КонецПроцедуры + +Функция ПутьКВременномуФайлаОтчетаДляТекстаПисьма(ПараметрыДоставки, ПараметрыОтчета, ПараметрыЖурнала) + + Формат = ?(ПараметрыДоставки.ПисьмоВФорматеHTML, Перечисления.ФорматыСохраненияОтчетов.HTML, + Перечисления.ФорматыСохраненияОтчетов.TXT); + + ПараметрыФормата = ПараметрыДоставки.ПараметрыФорматов.Получить(Формат); + Если ПараметрыФормата = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + ПолноеИмяФайла = ПолноеИмяФайлаПоШаблону(ПараметрыОтчета.КаталогПолучателя, ПараметрыОтчета.ПредставлениеОтчета, + ПараметрыФормата, ПараметрыДоставки, ПараметрыОтчета.ШаблонНаименования, Неопределено); + + НайтиСвободноеИмяФайла(ПолноеИмяФайла); + ЗаголовокОшибки = НСтр("ru = 'Ошибка записи отчета ''%1'' в формат ''%2'':'"); + Если ПараметрыФормата.ТипФайла = Неопределено Тогда + ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗаголовокОшибки, ПараметрыОтчета.ПредставлениеОтчета, + ПараметрыФормата.Имя), НСтр("ru = 'Формат не поддерживается.'")); + Возврат Неопределено; + КонецЕсли; + + Попытка + ПараметрыОтчета.ТабличныйДокумент.Записать(ПолноеИмяФайла, ПараметрыФормата.ТипФайла); + Исключение + ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗаголовокОшибки, ПараметрыОтчета.ПредставлениеОтчета, + ПараметрыФормата.Имя), ИнформацияОбОшибке()); + Возврат Неопределено; + КонецПопытки; + + Возврат ПолноеИмяФайла; + +КонецФункции + // Вспомогательная процедура для функции ВыполнитьРассылку - заполняет значения по умолчанию для параметров, // которые не были переданы явно. // Также подготавливает и заполняет параметры, необходимые для рассылки. @@ -2767,7 +2993,7 @@ Если ПараметрыДоставки.ИспользоватьЭлектроннуюПочту И Не ЗначениеЗаполнено(ПараметрыДоставки.УчетнаяЗапись) Тогда ПараметрыДоставки.ИспользоватьЭлектроннуюПочту = Ложь; ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, - НСтр("ru = 'Учетная запись не выбрана, доставка по электронной почте отключена.'")); + НСтр("ru = 'Почта не выбрана, доставка по электронной почте отключена.'")); КонецЕсли; Если ПараметрыДоставки.Персонализирована Тогда @@ -2945,52 +3171,69 @@ // Тема и тело сообщения КлючАдресаДоставки = ?(ПараметрыДоставки.СкрытыеКопии, "СкрытыеКопии", "Кому"); + Если ПараметрыДоставки.Личная Тогда + ВидРассылки = "Личная"; + ИначеЕсли ПараметрыДоставки.Персонализирована Тогда + ВидРассылки = "Персонализирована"; + Иначе + ВидРассылки = "Общая"; + КонецЕсли; + ДополнительныеПараметрыТекста = Новый Структура; + РассылкаОтчетовПереопределяемый.ПриОпределенииПараметровТекстаПисьма(ВидРассылки, + ПараметрыДоставки.ТипПолучателейРассылки, ДополнительныеПараметрыТекста); + РассылкаОтчетовПереопределяемый.ПриПолученииПараметровТекстаПисьма(ВидРассылки, + ПараметрыДоставки.ТипПолучателейРассылки, Получатель, ДополнительныеПараметрыТекста); + Для Каждого КлючИЗначение Из ДополнительныеПараметрыТекста Цикл + Параметр = "[" + КлючИЗначение.Ключ + "]"; + ПараметрыПисьма.Тема = СтрЗаменить(ПараметрыПисьма.Тема, Параметр, Строка(КлючИЗначение.Значение)); + ПараметрыПисьма.Тело = СтрЗаменить(ПараметрыПисьма.Тело, Параметр, Строка(КлючИЗначение.Значение)); + КонецЦикла; + + // Отчеты в теле письма + Если ПараметрыДоставки.ВставлятьОтчетыВТекстПисьма Тогда + ТекстВсехОтчетов = ""; + КлючСоответствия = ?(Получатель = Неопределено, "Ключ", Получатель); + ОтчетыДляТекста = ПараметрыДоставки.ОтчетыДляТекстаПисьма.Получить(КлючСоответствия); + Если ОтчетыДляТекста <> Неопределено И ОтчетыДляТекста.Количество() > 0 Тогда + Для Каждого Отчет Из ОтчетыДляТекста Цикл + Текст = Новый ТекстовыйДокумент; + Текст.Прочитать(Отчет.ПолноеИмяФайла); + ТекстОтчета = Текст.ПолучитьТекст(); + Если ПараметрыДоставки.ПисьмоВФорматеHTML Тогда + ТекстВсехОтчетов = ТекстВсехОтчетов + Символы.ПС + "<br>" + "<br>" + ТекстОтчета; + Иначе + ТекстВсехОтчетов = ТекстВсехОтчетов + Символы.ПС + Символы.ПС + Символы.ПС + + "------------------------------------------" + Символы.ПС + ТекстОтчета; + КонецЕсли; + КонецЦикла; + ПараметрыПисьма.Тело = ПараметрыПисьма.Тело + Символы.ПС + ТекстВсехОтчетов; + КонецЕсли; + КонецЕсли; + Если Получатель = Неопределено Тогда Если ПараметрыДоставки.Получатели.Количество() = 0 Тогда Возврат; КонецЕсли; - // Доставка всем получателям - Если ПараметрыДоставки.ЗаполнитьПолучателяВШаблонеТемы Или ПараметрыДоставки.ЗаполнитьПолучателяВШаблонеСообщения Тогда - // Шаблоны персонализированы - доставка каждому получателю. - Письма = Новый Массив; - Для Каждого КлючИЗначение Из ПараметрыДоставки.Получатели Цикл - // Тема и тело сообщения - Если ПараметрыДоставки.ЗаполнитьПолучателяВШаблонеТемы Тогда - ПараметрыПисьма.Тема = СтрЗаменить(ШаблонТемы, "[Получатель]", Строка(КлючИЗначение.Ключ)); - КонецЕсли; - Если ПараметрыДоставки.ЗаполнитьПолучателяВШаблонеСообщения Тогда - ПараметрыПисьма.Тело = СтрЗаменить(ШаблонТекста, "[Получатель]", Строка(КлючИЗначение.Ключ)); - КонецЕсли; - - // Получатель - ПараметрыПисьма.Вставить(КлючАдресаДоставки, КлючИЗначение.Значение); - - // Отправляем письмо - Письма.Добавить(ПодготовитьПисьмо(ПараметрыДоставки, ПараметрыПисьма)); - КонецЦикла; - РаботаСПочтовымиСообщениями.ОтправитьПисьма(ПараметрыДоставки.УчетнаяЗапись, Письма); - Иначе - // Шаблоны не персонализированы - склеивание E-Mail адресов получателей и совместная доставка. - Кому = ""; - Для Каждого КлючИЗначение Из ПараметрыДоставки.Получатели Цикл - Кому = Кому + ?(Кому = "", "", ", ") + КлючИЗначение.Значение; - КонецЦикла; + // Шаблоны не персонализированы - склеивание E-Mail адресов получателей и совместная доставка. + Кому = ""; + Для Каждого КлючИЗначение Из ПараметрыДоставки.Получатели Цикл + Кому = Кому + ?(Кому = "", "", ", ") + КлючИЗначение.Значение; + КонецЦикла; + + ПараметрыПисьма.Вставить(КлючАдресаДоставки, Кому); - ПараметрыПисьма.Вставить(КлючАдресаДоставки, Кому); - - // Отправляем письмо - ОтправитьПочтовоеСообщение(ПараметрыДоставки, ПараметрыПисьма, СтрокаПолучатель, ПараметрыЖурнала); - КонецЕсли; + // Отправляем письмо + ОтправитьПочтовоеСообщение(ПараметрыДоставки, ПараметрыПисьма, СтрокаПолучатель, ПараметрыЖурнала); Иначе // Доставка конкретному получателю. // Тема и тело сообщения Если ПараметрыДоставки.ЗаполнитьПолучателяВШаблонеТемы Тогда - ПараметрыПисьма.Тема = СтрЗаменить(ШаблонТемы, "[Получатель]", Строка(Получатель)); + ПараметрыПисьма.Тема = СтрЗаменить(ПараметрыПисьма.Тема, "[Получатель]", Строка(Получатель)); КонецЕсли; Если ПараметрыДоставки.ЗаполнитьПолучателяВШаблонеСообщения Тогда - ПараметрыПисьма.Тело = СтрЗаменить(ШаблонТекста, "[Получатель]", Строка(Получатель)); + ПараметрыПисьма.Тело = СтрЗаменить(ПараметрыПисьма.Тело, "[Получатель]", Строка(Получатель)); КонецЕсли; // Получатель @@ -3004,13 +3247,18 @@ Процедура ОтправитьПочтовоеСообщение(ПараметрыДоставки, ПараметрыПисьма, СтрокаПолучатель, ПараметрыЖурнала) + Если НЕ ТипЗнч(ПараметрыПисьма.Важность) = Тип("ВажностьИнтернетПочтовогоСообщения") Тогда + ПараметрыПисьма.Важность = ВажностьИнтернетПочтовогоСообщения.Обычная + КонецЕсли; + Если ИспользуетсяПочтовыйКлиент() И ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда ОтправитьПисьмоВзаимодействие(ПараметрыДоставки, ПараметрыПисьма, СтрокаПолучатель, ПараметрыЖурнала); Иначе Письмо = ПодготовитьПисьмо(ПараметрыДоставки, ПараметрыПисьма); РезультатОтправки = РаботаСПочтовымиСообщениями.ОтправитьПисьмо(ПараметрыДоставки.УчетнаяЗапись, Письмо); - Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда + Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") + И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда ПредставлениеОтправителя = Строка(ПараметрыДоставки.УчетнаяЗапись); Если ПараметрыДоставки.Получатель <> Неопределено Тогда @@ -3077,7 +3325,11 @@ Сообщение = ПараметрыСообщенияДляПодсистемыВзаимодействия(ПараметрыДоставки, ПараметрыПисьма); РезультатОтправки = МодульВзаимодействия.СоздатьПисьмо(Сообщение, ПараметрыДоставки.УчетнаяЗапись, Истина); - + + Если ТипЗнч(ПараметрыЖурнала.Данные) <> Тип("СправочникСсылка.РассылкиОтчетов")Тогда + Возврат; + КонецЕсли; + Если РезультатОтправки.Отправлено Тогда Если ЗначениеЗаполнено(ПараметрыДоставки.УчетнаяЗапись) Тогда @@ -3136,7 +3388,7 @@ ТекстСообщения = ТекстУспешнойОтправкиОтчетов(ПараметрыДоставки, СтрокаПолучатель, ПредставлениеПолучателя, ПредставлениеОтправителя, ДополнительныеСведения); КонецЕсли; ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, Получатель.Ключ, ПараметрыДоставки.ДатаВыполнения); - ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; + ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись; ПоляИстории.АдресЭП = Кому.Адрес; ТекстОшибкиПолучателя = РезультатОтправки.ОшибочныеПолучатели.Получить(Кому.Адрес); Если ТекстОшибкиПолучателя <> Неопределено Тогда @@ -3148,10 +3400,10 @@ КонецЕсли; ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, Получатель.Ключ, Кому.Адрес); ПоляИстории.ЭлектронноеПисьмоИсходящее = РезультатОтправки.СсылкаНаПисьмо; - ПоляИстории.ИдентификаторПисьма = РезультатОтправки.ИдентификаторПисьма; + ПоляИстории.ИдентификаторПисьма = РезультатОтправки.ИдентификаторПисьма; РегистрыСведений.ИсторияРассылкиОтчетов.ЗафиксироватьРезультатВыполненияРассылкиПолучателю(ПоляИстории); - КонецЦикла; + КонецЦикла; КонецЦикла; КонецЕсли; @@ -3201,7 +3453,8 @@ МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия"); Сообщение = МодульВзаимодействия.ПараметрыПисьма(); Сообщение.Тема = ПараметрыПисьма.Тема; - Сообщение.Текст = ПараметрыПисьма.Тело; + Сообщение.Текст = ПараметрыПисьма.Тело; + Сообщение.Важность = ПараметрыПисьма.Важность; Сообщение.ДополнительныеПараметры.УведомитьОДоставке = ПараметрыПисьма.УведомитьОДоставке; Сообщение.ДополнительныеПараметры.УведомитьОПрочтении = ПараметрыПисьма.УведомитьОПрочтении; @@ -3325,7 +3578,7 @@ // // Параметры: // Вложения - Соответствие -// - СтрокаДереваЗначений - см. СоздатьДеревоОтчетов(), возвращаемое значение, 3й уровень. +// - СтрокаДереваЗначений - см. СоздатьДеревоОтчетов, возвращаемое значение, 3й уровень. // ПараметрыДоставки - см. ВыполнитьРассылку.ПараметрыДоставки // КаталогВременныхФайлов - Строка - каталог, в который будет выполнена архивация. // @@ -3334,6 +3587,16 @@ Возврат; КонецЕсли; + Если ПараметрыДоставки.УстановитьПаролиЗашифровать И ЗначениеЗаполнено(ПараметрыДоставки.СертификатДляШифрования) Тогда + ПодсказкаДляИмениАрхива = НСтр("ru = '(Необходимо расшифровать)'"); + Если НРег(Прав(ПараметрыДоставки.ИмяАрхива, 4)) <> ".zip" Тогда + ПараметрыДоставки.ИмяАрхива = ПараметрыДоставки.ИмяАрхива + " " + ПодсказкаДляИмениАрхива +".zip"; + Иначе + ЧислоСимволов = СтрДлина(ПараметрыДоставки.ИмяАрхива) - 4; + ПараметрыДоставки.ИмяАрхива = Лев(ПараметрыДоставки.ИмяАрхива, ЧислоСимволов) + " " + ПодсказкаДляИмениАрхива +".zip"; + КонецЕсли; + КонецЕсли; + // Каталог вместе с файлом архивируются, а имя файла меняется на имя архива. ПолноеИмяФайла = КаталогВременныхФайлов + ПараметрыДоставки.ИмяАрхива; @@ -3351,7 +3614,7 @@ ЗаписьZipФайла.Записать(); - Если ЗначениеЗаполнено(ПараметрыДоставки.СертификатДляШифрования) Тогда + Если ПараметрыДоставки.УстановитьПаролиЗашифровать И ЗначениеЗаполнено(ПараметрыДоставки.СертификатДляШифрования) Тогда МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись"); АрхивДвоичныеДанные = МодульЭлектроннаяПодпись.Зашифровать(Новый ДвоичныеДанные(ПолноеИмяФайла), ПараметрыДоставки.СертификатДляШифрования); @@ -3404,7 +3667,7 @@ // * ТипФайла - ТипФайлаТабличногоДокумента - формат сохранения табличного документа. // Используется для определения параметра <ТипФайлаТаблицы> метода "ТабличныйДокумент.Записать". // -Функция ПараметрыЗаписиТабличногоДокументаВФормат(Формат) +Функция ПараметрыЗаписиТабличногоДокументаВФормат(Формат) Экспорт Результат = Новый Структура("Расширение, ТипФайла"); Если Формат = Перечисления.ФорматыСохраненияОтчетов.XLSX Тогда Результат.Расширение = ".xlsx"; @@ -3457,23 +3720,25 @@ Возврат Результат; КонецФункции -Функция ПолноеИмяФайлаПоШаблону(Каталог, НаименованиеОтчета, Формат, ПараметрыДоставки) +Функция ПолноеИмяФайлаПоШаблону(Каталог, НаименованиеОтчета, Формат, ПараметрыДоставки, ШаблонНаименования, Период) Экспорт ПараметрыИмениФайла = Новый Структура("НаименованиеОтчета, ФорматОтчета, ДатаРассылки, РасширениеФайла"); ПараметрыИмениФайла.НаименованиеОтчета = НаименованиеОтчета; ПараметрыИмениФайла.ФорматОтчета = Формат.Имя; ПараметрыИмениФайла.РасширениеФайла = ?(Формат.Расширение = Неопределено, "", Формат.Расширение); - Если ПараметрыДоставки.ВключатьДатуВИмяФайла Тогда - ПараметрыИмениФайла.ДатаРассылки = Формат(ТекущаяДатаСеанса(), НСтр("ru = 'ДФ=yyyy-MM-dd'")); - - ШаблонИмениФайла = "[НаименованиеОтчета] ([ФорматОтчета]) [ДатаРассылки][РасширениеФайла]"; // АПК:1297 Это шаблон. + Если ЗначениеЗаполнено(ШаблонНаименования) Тогда + ШаблонИмениФайла = ШаблонНаименования + "[РасширениеФайла]"; + ПараметрыИмениФайла.ДатаРассылки = ТекущаяДатаСеанса(); + Если Период <> Неопределено Тогда + ПараметрыИмениФайла.Вставить("Период", Период); + КонецЕсли; + ИмяФайла = РассылкаОтчетовКлиентСервер.ЗаполнитьШаблон(ШаблонИмениФайла, ПараметрыИмениФайла); Иначе ШаблонИмениФайла = "[НаименованиеОтчета] ([ФорматОтчета])[РасширениеФайла]"; // АПК:1297 Это шаблон. + ИмяФайла = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(ШаблонИмениФайла, ПараметрыИмениФайла); КонецЕсли; - ИмяФайла = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(ШаблонИмениФайла, ПараметрыИмениФайла); - Возврат Каталог + ПривестиИмяФайла(ИмяФайла, ПараметрыДоставки.ТранслитерироватьИменаФайлов); КонецФункции @@ -3701,7 +3966,7 @@ ПараметрыДоставки.ПредставлениеОтчетовПолучателя = СокрЛП(СформированныеОтчеты); -КонецПроцедуры +КонецПроцедуры // Формирует текст о успешной отправки отчетов для записи в РегистрСведений.ИсторияРассылкиОтчетов. Функция ТекстУспешнойОтправкиОтчетов(ПараметрыДоставки, СтрокаПолучатель, ПредставлениеПолучателя, ПредставлениеОтправителя, ДополнительныеСведения = "") @@ -4158,7 +4423,7 @@ Возврат МодульЭлектроннаяПодпись.ИспользоватьШифрование(); КонецЕсли; -КонецФункции +КонецФункции // Возвращает шаблон тела сообщения по умолчанию для доставки по электронной почте. Функция ШаблонТекста() Экспорт @@ -4173,5 +4438,532 @@ |[ЗаголовокСистемы] |[ДатаВыполнения(ДЛФ='DD')]"); КонецФункции + +Функция ПолучитьПериодИзПользовательскихНастроек(ПользовательскиеНастройкиКД) Экспорт + Если ПользовательскиеНастройкиКД = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + ИскомыйПараметрПериод = Новый ПараметрКомпоновкиДанных("Период"); + ИскомыйПараметрПериодОтчета = Новый ПараметрКомпоновкиДанных("ПериодОтчета"); + Для Каждого Элемент Из ПользовательскиеНастройкиКД.Элементы Цикл + Если ТипЗнч(Элемент) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") + И (Элемент.Параметр = ИскомыйПараметрПериод ИЛИ Элемент.Параметр = ИскомыйПараметрПериодОтчета) Тогда + Возврат Элемент.Значение; + КонецЕсли; + КонецЦикла; + Возврат Неопределено; + +КонецФункции + +Процедура ДобавитьКомандыДобавленияДополнительныхПараметровТекста(Форма) Экспорт + + Если Форма.ДополнительныеПараметрыТекстаПисьма = Неопределено Тогда + Форма.ДополнительныеПараметрыТекстаПисьма = Новый Структура; + Иначе + Для Каждого Параметр Из Форма.ДополнительныеПараметрыТекстаПисьма Цикл + Форма.Команды.Удалить(Форма.Команды[Параметр.Значение.ИмяКоманды]); + Форма.Элементы.Удалить(Форма.Элементы[Параметр.Значение.ИмяКнопкиТекста]); + Форма.Элементы.Удалить(Форма.Элементы[Параметр.Значение.ИмяКнопкиHTML]); + Форма.Элементы.Удалить(Форма.Элементы[Параметр.Значение.ИмяКнопкиТемы]); + КонецЦикла; + Форма.ДополнительныеПараметрыТекстаПисьма = Новый Структура; + КонецЕсли; + + ДополнительныеПараметрыТекстаПисьма = Новый Структура; + + ТипПолучателейРассылки = ?(Форма.ВидРассылки = "Личная", Неопределено, Форма.ТипПолучателейРассылки); + РассылкаОтчетовПереопределяемый.ПриОпределенииПараметровТекстаПисьма(Форма.ВидРассылки, + ТипПолучателейРассылки, ДополнительныеПараметрыТекстаПисьма); + + Если ДополнительныеПараметрыТекстаПисьма.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Для Каждого ПараметрТекста Из ДополнительныеПараметрыТекстаПисьма Цикл + + ИмяКоманды = "ДобавитьШаблон" + СтрЗаменить(ТРег(ПараметрТекста.Ключ), Символы.НПП, ""); + Команда = Форма.Команды.Добавить(ИмяКоманды); + Команда.Заголовок = ПараметрТекста.Значение; + Команда.Подсказка = ПараметрТекста.Значение; + Команда.Действие = "Подключаемый_ДобавитьДополнительныйПараметрТекстаПисьма"; + + ГруппаПараметры = Форма.Элементы.ТекстПисьмаДобавитьПараметрШаблона; + ИмяКнопкиТекст = "ДобавитьШаблон" + ИмяКоманды; + Кнопка = Форма.Элементы.Добавить(ИмяКнопкиТекст, Тип("КнопкаФормы"), ГруппаПараметры); + Кнопка.Заголовок = ПараметрТекста.Значение; + Кнопка.ИмяКоманды = ИмяКоманды; + Форма.Элементы.Переместить(Кнопка, ГруппаПараметры, Форма.Элементы.ДобавитьШаблонПоУмолчанию); + + ГруппаПараметры = Форма.Элементы.ТекстПисьмаФорматированныйДокументДобавитьПараметрШаблона; + ИмяКнопкиHTML = "ТекстПисьмаФорматированныйДокументДобавитьШаблон" + ИмяКоманды; + Кнопка = Форма.Элементы.Добавить(ИмяКнопкиHTML, Тип("КнопкаФормы"), ГруппаПараметры); + Кнопка.Заголовок = ПараметрТекста.Значение; + Кнопка.ИмяКоманды = ИмяКоманды; + + Форма.Элементы.Переместить(Кнопка, ГруппаПараметры, Форма.Элементы.ТекстПисьмаФорматированныйДокументДобавитьШаблонПоУмолчанию); + + ГруппаПараметры = Форма.Элементы.ТемаПисьмаКонтекстноеМенюПодменюПараметр; + ИмяКнопкиКонтекстноеМенюТемы = "ТемаПисьмаКонтекстноеМенюДобавитьШаблон" + ИмяКоманды; + Кнопка = Форма.Элементы.Добавить(ИмяКнопкиКонтекстноеМенюТемы, Тип("КнопкаФормы"), ГруппаПараметры); + Кнопка.Заголовок = ПараметрТекста.Значение; + Кнопка.ИмяКоманды = ИмяКоманды; + Форма.Элементы.Переместить(Кнопка, ГруппаПараметры, Форма.Элементы.ТемаПисьмаКонтекстноеМенюДобавитьШаблонПоУмолчанию); + + ОписаниеПараметра = Новый Структура(); + ОписаниеПараметра.Вставить("Имя", ПараметрТекста.Ключ); + ОписаниеПараметра.Вставить("Представление", ПараметрТекста.Значение); + ОписаниеПараметра.Вставить("ИмяКоманды", ИмяКоманды); + ОписаниеПараметра.Вставить("ИмяКнопкиТекста", ИмяКнопкиТекст); + ОписаниеПараметра.Вставить("ИмяКнопкиHTML", ИмяКнопкиHTML); + ОписаниеПараметра.Вставить("ИмяКнопкиТемы", ИмяКнопкиКонтекстноеМенюТемы); + + Форма.ДополнительныеПараметрыТекстаПисьма.Вставить(ИмяКоманды, ОписаниеПараметра); + КонецЦикла; + +КонецПроцедуры + +Функция ТекстПрогрессаВыполненияРассылкиОтчетов(ПараметрыДоставки, КоличествоОтправлено, КоличествоКОтправке) + + Если ПараметрыДоставки.ИспользоватьСетевойКаталог Тогда + Текст = НСтр("ru = 'Выполняется рассылка отчетов. + |Отчеты помещены в сетевой каталог %1 из %2. + |Пожалуйста, подождите...'"); + ИначеЕсли ПараметрыДоставки.ИспользоватьFTPРесурс Тогда + Текст = НСтр("ru = 'Выполняется рассылка отчетов. + |Отчеты опубликованы на FTP %1 из %2. + |Пожалуйста, подождите...'"); + Иначе + Текст = НСтр("ru = 'Выполняется рассылка отчетов. + |Отправлено %1 из %2. + |Пожалуйста, подождите...'"); + КонецЕсли; + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Текст, + Формат(КоличествоОтправлено, "ЧН=0; ЧГ="), + Формат(КоличествоКОтправке, "ЧН=0; ЧГ=")); + +КонецФункции + +Функция ПринадлежитГруппеЛичныхРассылок(Группа) Экспорт + + ГруппаЛичныхРассылок = Справочники.РассылкиОтчетов.ЛичныеРассылки; + + Если НЕ ЗначениеЗаполнено(Группа) Тогда + Возврат Ложь; + ИначеЕсли Группа = ГруппаЛичныхРассылок Тогда + Возврат Истина; + КонецЕсли; + + Возврат Группа.ПринадлежитЭлементу(ГруппаЛичныхРассылок); + +КонецФункции + +Функция ПолучитьСостояниеРассылкиОтчетов(Рассылка) Экспорт + + СостояниеРассылки = Новый Структура; + СостояниеРассылки.Вставить("Рассылка", Справочники.РассылкиОтчетов.ПустаяСсылка()); + СостояниеРассылки.Вставить("ПоследнийЗапускНачало", Дата(1, 1, 1)); + СостояниеРассылки.Вставить("ПоследнийЗапускЗавершение", Дата(1, 1, 1)); + СостояниеРассылки.Вставить("УспешныйЗапуск", Дата(1, 1, 1)); + СостояниеРассылки.Вставить("Выполнена", Ложь); + СостояниеРассылки.Вставить("СОшибками", Ложь); + СостояниеРассылки.Вставить("НомерСеанса", 0); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | СостоянияРассылокОтчетов.Рассылка КАК Рассылка, + | СостоянияРассылокОтчетов.ПоследнийЗапускНачало КАК ПоследнийЗапускНачало, + | СостоянияРассылокОтчетов.ПоследнийЗапускЗавершение КАК ПоследнийЗапускЗавершение, + | СостоянияРассылокОтчетов.УспешныйЗапуск КАК УспешныйЗапуск, + | СостоянияРассылокОтчетов.Выполнена КАК Выполнена, + | СостоянияРассылокОтчетов.СОшибками КАК СОшибками, + | СостоянияРассылокОтчетов.НомерСеанса КАК НомерСеанса + |ПОМЕСТИТЬ ВТ_СостояниеРассылки + |ИЗ + | РегистрСведений.СостоянияРассылокОтчетов КАК СостоянияРассылокОтчетов + |ГДЕ + | СостоянияРассылокОтчетов.Рассылка = &РассылкаОтчетов + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ИсторияРассылкиОтчетов.Получатель КАК Получатель, + | ИсторияРассылкиОтчетов.АдресЭП КАК АдресЭП, + | МАКСИМУМ(ИсторияРассылкиОтчетов.Выполнена) КАК Выполнена, + | ВТ_СостояниеРассылки.Рассылка КАК Рассылка + |ПОМЕСТИТЬ ВТ_Получатели + |ИЗ + | ВТ_СостояниеРассылки КАК ВТ_СостояниеРассылки + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияРассылкиОтчетов КАК ИсторияРассылкиОтчетов + | ПО ВТ_СостояниеРассылки.Рассылка = ИсторияРассылкиОтчетов.РассылкаОтчетов + | И ВТ_СостояниеРассылки.ПоследнийЗапускНачало = ИсторияРассылкиОтчетов.ЗапускРассылки + | И ВТ_СостояниеРассылки.НомерСеанса = ИсторияРассылкиОтчетов.НомерСеанса + |ГДЕ + | ИсторияРассылкиОтчетов.РассылкаОтчетов = &РассылкаОтчетов + | И ИсторияРассылкиОтчетов.АдресЭП <> """" + | + |СГРУППИРОВАТЬ ПО + | ИсторияРассылкиОтчетов.Получатель, + | ИсторияРассылкиОтчетов.АдресЭП, + | ВТ_СостояниеРассылки.Рассылка + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВТ_Получатели.Рассылка КАК Рассылка, + | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_Получатели.АдресЭП) КАК Количество + |ПОМЕСТИТЬ ВТ_НеДоставлены + |ИЗ + | ВТ_Получатели КАК ВТ_Получатели + |ГДЕ + | НЕ ВТ_Получатели.Выполнена + | + |СГРУППИРОВАТЬ ПО + | ВТ_Получатели.Рассылка + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВТ_СостояниеРассылки.Рассылка КАК Рассылка, + | ВТ_СостояниеРассылки.ПоследнийЗапускНачало КАК ПоследнийЗапускНачало, + | ВТ_СостояниеРассылки.ПоследнийЗапускЗавершение КАК ПоследнийЗапускЗавершение, + | ВТ_СостояниеРассылки.УспешныйЗапуск КАК УспешныйЗапуск, + | ВТ_СостояниеРассылки.Выполнена КАК Выполнена, + | ВТ_СостояниеРассылки.НомерСеанса КАК НомерСеанса, + | ВЫБОР + | КОГДА ЕСТЬNULL(ВТ_НеДоставлены.Количество, 0) = 0 + | ТОГДА ЛОЖЬ + | ИНАЧЕ ИСТИНА + | КОНЕЦ КАК СОшибками + |ИЗ + | ВТ_СостояниеРассылки КАК ВТ_СостояниеРассылки + | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_НеДоставлены КАК ВТ_НеДоставлены + | ПО ВТ_СостояниеРассылки.Рассылка = ВТ_НеДоставлены.Рассылка"; + + Запрос.УстановитьПараметр("РассылкаОтчетов", Рассылка); + + РезультатЗапроса = Запрос.Выполнить(); + + Выборка = РезультатЗапроса.Выбрать(); + + Если Выборка.Следующий() Тогда + ЗаполнитьЗначенияСвойств(СостояниеРассылки, Выборка); + КонецЕсли; + + Возврат СостояниеРассылки; + +КонецФункции + +Процедура ОтправитьПовторноПоЭлектроннойПочте(ТаблицаОтчетов, ПараметрыДоставки, Рассылка, ПараметрыЖурнала) + + Если Не ПараметрыДоставки.ИспользоватьЭлектроннуюПочту ИЛИ ПараметрыДоставки.Личная ИЛИ ПараметрыДоставки.ТолькоУведомить Тогда + Возврат; + КонецЕсли; + + МенеджерЗаписи = РегистрыСведений.СостоянияРассылокОтчетов.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.Рассылка = Рассылка; + МенеджерЗаписи.Прочитать(); + + Если МенеджерЗаписи.НомерСеанса <> НомерСеансаИнформационнойБазы() Тогда + Возврат; + КонецЕсли; + + ПолучателиПовторнойРассылки = ПолучателиПовторнойРассылкиОтчетов(Рассылка, + МенеджерЗаписи.ПоследнийЗапускНачало, МенеджерЗаписи.НомерСеанса); + + Если ПолучателиПовторнойРассылки.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ПараметрыДоставки.Получатели = ПолучателиПовторнойРассылки; + ПараметрыДоставки.ИспользоватьПапку = Ложь; + ПараметрыДоставки.ИспользоватьСетевойКаталог = Ложь; + ПараметрыДоставки.ИспользоватьFTPРесурс = Ложь; + ПараметрыДоставки.ПредставлениеОтчетовПолучателя = ""; + ПараметрыДоставки.Получатель = Неопределено; + ПараметрыДоставки.Картинки = Новый Структура; + ПараметрыДоставки.ПараметрыПисьма.Вложения = Новый Соответствие; + + ЗаписьЖурнала(ПараметрыЖурнала, + УровеньЖурналаРегистрации.Примечание, + НСтр("ru = 'Повторная доставка на электронную почту.'")); + + ВыполнитьРассылку(ТаблицаОтчетов, ПараметрыДоставки, Рассылка, ПараметрыЖурнала); + +КонецПроцедуры + +#Область ФормированиеОтчетовВНесколькоПотоков + +Функция ВыполнитьФормированиеОтчетовВНесколькоПотоков(Отчеты, ПараметрыДоставки, НаименованиеРассылки, ПараметрыЖурнала) + + ИдентификаторЗадания = Новый УникальныйИдентификатор(); + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторЗадания); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Рассылка отчетов'"); + + ПерсонализированныеОтчеты = Новый Соответствие; + НеПерсонализированныеОтчеты = Новый Массив; + + // Формирование и сохранение отчетов. + НомерОтчета = 1; + Для Каждого СтрокаОтчет Из Отчеты Цикл + + ТекстЖурнала = НСтр("ru = 'Отчет ''%1'' формируется'"); + Если СтрокаОтчет.Настройки = Неопределено Тогда + ТекстЖурнала = ТекстЖурнала + Символы.ПС + НСтр("ru = '(пользовательские настройки не заданы)'"); + КонецЕсли; + + ПредставлениеОтчета = Строка(СтрокаОтчет.Отчет); + + ЗаписьЖурнала(ПараметрыЖурнала, + УровеньЖурналаРегистрации.Примечание, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстЖурнала, ПредставлениеОтчета)); + + // Инициализация отчета. + ПараметрыОтчета = Новый Структура("Отчет, Настройки, Форматы, ОтправлятьЕслиПустой, ШаблонНаименования"); + ЗаполнитьЗначенияСвойств(ПараметрыОтчета, СтрокаОтчет); + Если Не ИнициализироватьОтчет(ПараметрыЖурнала, ПараметрыОтчета, ПараметрыДоставки.Персонализирована) Тогда + Продолжить; + КонецЕсли; + + Если ПараметрыДоставки.Персонализирована И НЕ ПараметрыОтчета.Персонализирован Тогда + ПараметрыОтчета.Ошибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Отчет ''%1'' не может сформирован, так как в его настройках не указан отбор по получателю рассылки.'"), + ПредставлениеОтчета); + + ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, ПараметрыОтчета.Ошибки); + Продолжить; + КонецЕсли; + + Если ПараметрыОтчета.Персонализирован Тогда + Для Каждого КлючИЗначение Из ПараметрыДоставки.Получатели Цикл + СтруктураПараметровОтчета = Новый Структура("Отчет, Настройки, Форматы, ОтправлятьЕслиПустой, ШаблонНаименования"); + ЗаполнитьЗначенияСвойств(СтруктураПараметровОтчета, СтрокаОтчет); + + Если ПерсонализированныеОтчеты.Получить(КлючИЗначение.Ключ) = Неопределено Тогда + ПерсонализированныеОтчеты.Вставить(КлючИЗначение.Ключ, Новый Массив); + КонецЕсли; + ПерсонализированныеОтчеты[КлючИЗначение.Ключ].Добавить(СтруктураПараметровОтчета); + КонецЦикла; + + Иначе + СтруктураПараметровОтчета = Новый Структура("Отчет, Настройки, Форматы, ОтправлятьЕслиПустой, ШаблонНаименования"); + ЗаполнитьЗначенияСвойств(СтруктураПараметровОтчета, СтрокаОтчет); + + НеПерсонализированныеОтчеты.Добавить(СтруктураПараметровОтчета); + КонецЕсли; + + КонецЦикла; + + ПараметрыМетода = Новый Соответствие; + + // Формируем ПараметрыМетода для персонализированных отчетов. + Для Каждого КлючИЗначение Из ПерсонализированныеОтчеты Цикл + МассивПараметров = Новый Массив; + МассивПараметров.Добавить(КлючИЗначение.Значение); + МассивПараметров.Добавить(ПараметрыЖурнала); + МассивПараметров.Добавить(ПараметрыДоставки); + МассивПараметров.Добавить(КлючИЗначение.Ключ); + + ПараметрыМетода.Вставить(КлючИЗначение.Ключ, МассивПараметров); + КонецЦикла; + + Если (ПараметрыЖурнала <> Неопределено) И ПараметрыЖурнала.Свойство("Метаданные") Тогда + ПараметрыЖурнала.Метаданные = ПараметрыЖурнала.Метаданные.ПолноеИмя(); + КонецЕсли; + + // Дополняем ПараметрыМетода порциями не персонализированных отчетов. + НомерОтчета = 0; + НомерПорции = 1; + РазмерПорции = 2; + Порция = Новый Массив; + КоличествоОтчетов = НеПерсонализированныеОтчеты.Количество(); + Для Каждого Отчет Из НеПерсонализированныеОтчеты Цикл + Порция.Добавить(Отчет); + НомерОтчета = НомерОтчета + 1; + + Если НомерОтчета % РазмерПорции = 0 ИЛИ КоличествоОтчетов = НомерОтчета Тогда + МассивПараметров = Новый Массив; + МассивПараметров.Добавить(Порция); + МассивПараметров.Добавить(ПараметрыЖурнала); + МассивПараметров.Добавить(ПараметрыДоставки); + + ПараметрыМетода.Вставить(НомерПорции, МассивПараметров); + + Порция = Новый Массив; + НомерПорции = НомерПорции + 1; + КонецЕсли; + КонецЦикла; + + АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор()); + ПараметрыВыполнения.Вставить("АдресРезультата", АдресРезультата); + + РезультатВыполнения = ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков( + "РассылкаОтчетов.РезультатФормированияПорцииОтчетов", + ПараметрыВыполнения, + ПараметрыМетода); + + СтатусВыполняется = "Выполняется"; + ИдентификаторЗадания = РезультатВыполнения.ИдентификаторЗадания; + + Если (РезультатВыполнения.Статус = СтатусВыполняется) И (Не ПустаяСтрока(ИдентификаторЗадания)) Тогда + ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания); + ФоновоеЗадание = ФоновоеЗадание.ОжидатьЗавершенияВыполнения(); + КонецЕсли; + + ДеревоОтчетов = СоздатьДеревоОтчетов(); + + // Строка дерева общих (не персонализированных по получателям) отчетов. + ПараметрыДоставки.СтрокаОбщихОтчетов = ОпределитьСтрокуДереваДляПолучателя(ДеревоОтчетов, Неопределено, ПараметрыДоставки); + + АдресаРезультатовПроверок = ПолучитьИзВременногоХранилища(РезультатВыполнения.АдресРезультата); + + Если АдресаРезультатовПроверок = Неопределено Тогда + Возврат ДеревоОтчетов; + КонецЕсли; + + Для Каждого АдресРезультатаПроверки Из АдресаРезультатовПроверок Цикл + + РезультатыИзПотока = ПолучитьИзВременногоХранилища(АдресРезультатаПроверки.Значение.АдресРезультата); + Если ТипЗнч(РезультатыИзПотока) = Тип("Структура")Тогда + Если РезультатыИзПотока.Свойство("ДеревоОтчетов") И ТипЗнч(РезультатыИзПотока.ДеревоОтчетов) = Тип("ДеревоЗначений") Тогда + ДобавитьСформированныеОтчетыВДерево(ДеревоОтчетов, РезультатыИзПотока.ДеревоОтчетов); + КонецЕсли; + Если РезультатыИзПотока.Свойство("ОтчетыДляТекстаПисьма") И ТипЗнч(РезультатыИзПотока.ОтчетыДляТекстаПисьма) = Тип("Соответствие") Тогда + ОбъединитьОтчетыДляТекстаПисьмаИзНесколькихПотоков(ПараметрыДоставки, РезультатыИзПотока.ОтчетыДляТекстаПисьма); + КонецЕсли; + КонецЕсли; + + КонецЦикла; + + Возврат ДеревоОтчетов; + +КонецФункции + +// Формирует отчеты. +// +// Параметры: см. ВыполнитьРассылку +// +// Возвращаемое значение: +// Структура: +// * ДеревоОтчетов - см. СоздатьДеревоОтчетов +// * ОтчетыДляТекстаПисьма - Массив из Соответствие. +// +// АПК:299-выкл, АПК:581-выкл Экспортная, так как вызывается из фонового задания. +// +Функция РезультатФормированияПорцииОтчетов(Отчеты, ПараметрыЖурнала, ПараметрыДоставки, Получатель = Неопределено) Экспорт + + ПараметрыЖурнала.Метаданные = ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(ПараметрыЖурнала.Метаданные); + + // Добавление дерева сформированных отчетов - табличных документов и отчетов, сохраненных в форматы (файлов). + ДеревоОтчетов = СоздатьДеревоОтчетов(); + + Для Каждого СтрокаОтчет Из Отчеты Цикл + ПредставлениеОтчета = Строка(СтрокаОтчет.Отчет); + + // Инициализация отчета. + ПараметрыОтчета = Новый Структура("Отчет, Настройки, Форматы, ОтправлятьЕслиПустой, ШаблонНаименования"); + ЗаполнитьЗначенияСвойств(ПараметрыОтчета, СтрокаОтчет); + Если Не ИнициализироватьОтчет(ПараметрыЖурнала, ПараметрыОтчета, ПараметрыДоставки.Персонализирована) Тогда + Продолжить; + КонецЕсли; + + Если ПараметрыДоставки.Персонализирована И НЕ ПараметрыОтчета.Персонализирован Тогда + ПараметрыОтчета.Ошибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Отчет ''%1'' не может сформирован, так как в его настройках не указан отбор по получателю рассылки.'"), + ПредставлениеОтчета); + + ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка, ПараметрыОтчета.Ошибки); + Возврат Неопределено; + КонецЕсли; + + // Формирование табличных документов и сохранение в форматы. + Попытка + Если ПараметрыОтчета.Персонализирован Тогда + // В разрезе получателей. + СформироватьИСохранитьОтчет( + ПараметрыЖурнала, + ПараметрыОтчета, + ДеревоОтчетов, + ПараметрыДоставки, + Получатель); + Иначе + // Без персонализации. + СформироватьИСохранитьОтчет( + ПараметрыЖурнала, + ПараметрыОтчета, + ДеревоОтчетов, + ПараметрыДоставки, + Неопределено); + КонецЕсли; + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Отчет ''%1'' успешно сформирован'"), ПредставлениеОтчета); + + ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Примечание, ТекстСообщения); + Исключение + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Отчет ''%1'' не сформирован:'"), ПредставлениеОтчета); + + ЗаписьЖурнала(ПараметрыЖурнала, , ТекстСообщения, ОбработкаОшибок.ПодробноеПредставлениеОшибки( + ИнформацияОбОшибке())); + КонецПопытки; + КонецЦикла; + + Результат = Новый Структура; + Результат.Вставить("ДеревоОтчетов", ДеревоОтчетов); + Результат.Вставить("ОтчетыДляТекстаПисьма", ПараметрыДоставки.ОтчетыДляТекстаПисьма); + + Возврат Результат; + +КонецФункции +// АПК:299-вкл, АПК:581-вкл + +Процедура ДобавитьСформированныеОтчетыВДерево(ДеревоРезультат, ДеревоСформированныхОтчетов) + + Для Каждого СтрокаДереваСформированныхОтчетов Из ДеревоСформированныхОтчетов.Строки Цикл + + СтрокаДереваРезультат = Неопределено; + + Для Каждого СтрокаДерева Из ДеревоРезультат.Строки Цикл + Если СтрокаДерева.Значение = СтрокаДереваСформированныхОтчетов.Значение Тогда + СтрокаДереваРезультат = СтрокаДерева; + Прервать; + КонецЕсли; + КонецЦикла; + + Если СтрокаДереваРезультат = Неопределено Тогда + СтрокаДереваРезультат = ДеревоРезультат.Строки.Добавить(); + ЗаполнитьЗначенияСвойств(СтрокаДереваРезультат, СтрокаДереваСформированныхОтчетов); + КонецЕсли; + + Если СтрокаДереваСформированныхОтчетов.Строки.Количество() > 0 Тогда + ДобавитьСформированныеОтчетыВДерево(СтрокаДереваРезультат, СтрокаДереваСформированныхОтчетов); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура ОбъединитьОтчетыДляТекстаПисьмаИзНесколькихПотоков(ПараметрыДоставки, ОтчетыДляТекстаПисьма) + + Для Каждого ОтчетыПоПолучателям Из ОтчетыДляТекстаПисьма Цикл + ОтчетыДляТекста = ПараметрыДоставки.ОтчетыДляТекстаПисьма.Получить(ОтчетыПоПолучателям.Ключ); + + Если ОтчетыДляТекста = Неопределено Тогда + ПараметрыДоставки.ОтчетыДляТекстаПисьма.Вставить(ОтчетыПоПолучателям.Ключ, ОтчетыПоПолучателям.Значение); + Иначе + Для Каждого СтруктураФайла Из ОтчетыДляТекстаПисьма Цикл + ОтчетыДляТекста.Добавить(ОтчетыПоПолучателям.Значение); + КонецЦикла; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти diff --git a/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl index 0c7fd3571..5835bae71 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl @@ -231,6 +231,7 @@ НастройкиОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Параметры.Форма); НастройкиОжидания.ВыводитьОкноОжидания = Истина; НастройкиОжидания.ТекстСообщения = ТекстСостояния; + НастройкиОжидания.ВыводитьПрогрессВыполнения = Истина; Обработчик = Новый ОписаниеОповещения("ВыполнитьСейчасВФонеЗавершение", ЭтотОбъект, Параметры); ДлительныеОперацииКлиент.ОжидатьЗавершение(Задание, Обработчик, НастройкиОжидания); @@ -419,7 +420,7 @@ // Параметры - Структура: // * КоличествоНеОтправлено - Число // * ПодготовленныеSMS - Массив из Структура: -// ** НомераТелефонов - Массив из строк +// ** НомераТелефонов - Массив из Строка - номера телефонов получателя рассылки // ** ТекстSMS - Строка // ** Получатель - ОпределяемыйТип.ПолучательРассылки // * Форма - ФормаКлиентскогоПриложения: diff --git a/SSL/src/CommonModules/РассылкаОтчетовКлиентСервер/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовКлиентСервер/Module.bsl index 1ab9703ee..fc53129f3 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовКлиентСервер/Module.bsl @@ -43,7 +43,16 @@ КонецЕсли; ФорматнаяСтрока = Сред(Результат, Позиция1 + ДлинаФорматЛевый, Позиция2 - Позиция1 - ДлинаФорматЛевый); Попытка - НаЧтоЗаменить = ?(ВырезатьОбрамление, "", НачалоПараметра) + Формат(КлючИЗначение.Значение, ФорматнаяСтрока) + ?(ВырезатьОбрамление, "", КонецПараметра); + Если ТипЗнч(КлючИЗначение.Значение) = Тип("СтандартныйПериод") Тогда + ЗначениеСФорматом = НСтр("ru = '%ДатаНачала% - %ДатаОкончания%'"); + ЗначениеСФорматом = СтрЗаменить(ЗначениеСФорматом, "%ДатаНачала%", Формат( + КлючИЗначение.Значение.ДатаНачала, ФорматнаяСтрока)); + ЗначениеСФорматом = СтрЗаменить(ЗначениеСФорматом, "%ДатаОкончания%", Формат( + КлючИЗначение.Значение.ДатаОкончания, ФорматнаяСтрока)); + Иначе + ЗначениеСФорматом = Формат(КлючИЗначение.Значение, ФорматнаяСтрока); + КонецЕсли; + НаЧтоЗаменить = ?(ВырезатьОбрамление, "", НачалоПараметра) + ЗначениеСФорматом + ?(ВырезатьОбрамление, "", КонецПараметра); Исключение НаЧтоЗаменить = ?(ВырезатьОбрамление, "", НачалоПараметра) + КлючИЗначение.Значение + ?(ВырезатьОбрамление, "", КонецПараметра); КонецПопытки; @@ -258,6 +267,8 @@ // * ТранслитерироватьИменаФайлов - Булево - признак необходимости транслитерации имен файлов отчетов рассылки. // * СертификатДляШифрования - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - если внедрена // подсистема ЭлектроннаяПодпись - Неопределено +// * ТипПолучателейРассылки - ОписаниеТипов +// - Неопределено // // Необязательные свойства, когда ИспользоватьЭлектроннуюПочту = Истина: // * Персонализирована - Булево - рассылка персонализирована получателями. @@ -277,13 +288,17 @@ // *** ТипФайла - ТипФайлаТабличногоДокумента // *** Имя - Строка // * ПараметрыПисьма - см. ПараметрыОтправкиПисьма +// * ВставлятьОтчетыВТекстПисьма - Булево +// * ПрикреплятьОтчетыВоВложения - Булево +// * УстановитьПаролиЗашифровать - Булево +// * ОтчетыДляТекстаПисьма - Массив из Соответствие // Функция ПараметрыДоставки() Экспорт ПараметрыДоставки = Новый Структура; ПараметрыДоставки.Вставить("ДатаВыполнения", Неопределено); ПараметрыДоставки.Вставить("Соединение", Неопределено); - ПараметрыДоставки.Вставить("ЗапускЗафиксирован", Истина); + ПараметрыДоставки.Вставить("ЗапускЗафиксирован", Ложь); ПараметрыДоставки.Вставить("Автор", Неопределено); ПараметрыДоставки.Вставить("ПараметрыПисьма", ПараметрыОтправкиПисьма()); @@ -307,7 +322,6 @@ ПараметрыДоставки.Вставить("СетевойКаталогWindows", Неопределено); ПараметрыДоставки.Вставить("СетевойКаталогLinux", Неопределено); ПараметрыДоставки.Вставить("КаталогВременныхФайлов", ""); - ПараметрыДоставки.Вставить("ВключатьДатуВИмяФайла", Ложь); ПараметрыДоставки.Вставить("Владелец", Неопределено); ПараметрыДоставки.Вставить("Сервер", Неопределено); @@ -346,6 +360,12 @@ ПараметрыДоставки.Вставить("Получатель", Неопределено); ПараметрыДоставки.Вставить("Картинки", Новый Структура); ПараметрыДоставки.Вставить("Личная", Ложь); + ПараметрыДоставки.Вставить("ТипПолучателейРассылки", Неопределено); + ПараметрыДоставки.Вставить("ВставлятьОтчетыВТекстПисьма", Истина); + ПараметрыДоставки.Вставить("ПрикреплятьОтчетыВоВложения", Ложь); + ПараметрыДоставки.Вставить("УстановитьПаролиЗашифровать", Ложь); + ПараметрыДоставки.Вставить("ОтчетыДляТекстаПисьма", Новый Соответствие); + ПараметрыДоставки.Вставить("ДеревоОтчетов", Неопределено); Возврат ПараметрыДоставки; @@ -395,6 +415,7 @@ // Отображается "как есть" (значение по умолчанию). // РазмеченныйТекст/ТипыТекстовЭлектронныхПисем.РазмеченныйТекст - текст почтового сообщения в формате // Rich Text. +// * Важность - ВажностьИнтернетПочтовогоСообщения // Функция ПараметрыОтправкиПисьма() Экспорт @@ -412,6 +433,7 @@ ПараметрыПисьма.Вставить("УведомитьОДоставке", Ложь); ПараметрыПисьма.Вставить("УведомитьОПрочтении", Ложь); ПараметрыПисьма.Вставить("ТипТекста", "ПростойТекст"); + ПараметрыПисьма.Вставить("Важность", ""); Возврат ПараметрыПисьма; diff --git a/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl index 137eecb6a..22dffdb1c 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl @@ -53,7 +53,6 @@ КонецПроцедуры - // Позволяет определить свой обработчик для сохранения табличного документа в формат. // Важно: // Если используется нестандартная обработка (СтандартнаяОбработка меняется на Ложь), @@ -133,6 +132,56 @@ +КонецПроцедуры + +// Позволяет добавить дополнительные параметры для формирования темы и текста рассылки отчетов +// Используется вместе с ПриПолученииПараметровТекстаПисьма. +// +// Параметры: +// ВидРассылки - Строка - вид рассылки отчетов. Варианты: "Общая", "Персонализирована", "Личная". +// ТипПолучателейРассылки - ОписаниеТипов +// - Неопределено - когда ВидРассылки = "Личная" +// ДополнительныеПараметрыТекста - Структура - описание дополнительных параметров темы и текста письма, где: +// * Ключ - Строка - имя параметра; +// * Значение - Строка - представление параметра. +// +// Пример: +// Если ВидРассылки = "Персонализирована" И ТипПолучателейРассылки +// = Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица") Тогда +// ДополнительныеПараметрыТекста.Вставить("Имя", НСтр("ru='Имя'")); +// ДополнительныеПараметрыТекста.Вставить("Отчество", НСтр("ru='Отчество'")); +// КонецЕсли; +// +Процедура ПриОпределенииПараметровТекстаПисьма(ВидРассылки, ТипПолучателейРассылки, ДополнительныеПараметрыТекста) Экспорт + + + +КонецПроцедуры + +// Позволяет установить произвольные значения дополнительных параметров текста для формирования темы и текста рассылки отчетов +// Используется вместе с ПриОпределенииПараметровТекстаПисьма. +// +// Параметры: +// ВидРассылки - Строка - вид рассылки отчетов. Варианты: "Общая", "Персонализирована", "Личная". +// ТипПолучателейРассылки - ОписаниеТипов +// Получатель - ОпределяемыйТип.ПолучательРассылки - когда ВидРассылки = "Персонализирована"; +// - Неопределено - когда ВидРассылки = "Личная" или "Общая". +// ДополнительныеПараметрыТекста - Структура - описание дополнительных параметров темы и текста письма, где: +// * Ключ - Строка - имя параметра; +// * Значение - Строка - представление параметра. +// +// Пример: +// Если ВидРассылки = "Персонализирована" И ТипПолучателейРассылки +// = Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица") И Получатель <> Неопределено Тогда +// РеквизитыФизическогоЛица = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Получатель, "Имя, Отчество"); +// ДополнительныеПараметрыТекста.Имя = РеквизитыФизическогоЛица.Имя; +// ДополнительныеПараметрыТекста.Отчество = РеквизитыФизическогоЛица.Отчество; +// КонецЕсли; +// +Процедура ПриПолученииПараметровТекстаПисьма(ВидРассылки, ТипПолучателейРассылки, Получатель, ДополнительныеПараметрыТекста) Экспорт + + + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl index e3a4aaf8b..9873cb18f 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl @@ -297,8 +297,7 @@ // Функция СобытиеЖурналаРегистрации() Экспорт - Возврат НСтр("ru = 'Резервное копирование информационной базы'", - СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске().КодОсновногоЯзыка); + Возврат НСтр("ru = 'Резервное копирование информационной базы'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()); КонецФункции diff --git a/SSL/src/CommonModules/СерверныеОповещенияГлобальный/Module.bsl b/SSL/src/CommonModules/СерверныеОповещенияГлобальный/Module.bsl index 3bd175aea..1cc3eae06 100644 --- a/SSL/src/CommonModules/СерверныеОповещенияГлобальный/Module.bsl +++ b/SSL/src/CommonModules/СерверныеОповещенияГлобальный/Module.bsl @@ -9,7 +9,13 @@ #Область СлужебныеПроцедурыИФункции Процедура ОбработчикПроверкиПолученияСерверныхОповещений() Экспорт - + +#Если МобильныйКлиент Тогда + Если ОсновнойСерверДоступен() = Ложь Тогда + Возврат; + КонецЕсли; +#КонецЕсли + СерверныеОповещенияКлиент.ПроверитьПолучитьСерверныеОповещения(); КонецПроцедуры diff --git a/SSL/src/CommonModules/СервисКриптографииDSS/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSS/Module.bsl index f8e1762d5..5e20cd769 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSS/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSS/Module.bsl @@ -2671,7 +2671,7 @@ МассивДокументов = СервисКриптографииDSSКлиентСервер.ЗначениеВМассиве(ДанныеДокументов, ЭтоМассив); ДокументыДляОбработки = СервисКриптографииDSSКлиентСервер.ПодготовитьПакетДляПодписи(МассивДокументов); - ТипРезультата = Новый Массив;; + ТипРезультата = Новый Массив; Для Каждого СтрокаМассива Из ДокументыДляОбработки Цикл ТипРезультата.Добавить(СтрокаМассива.ВернутьКак); Если ЗначениеЗаполнено(СтрокаМассива.RefId) Тогда @@ -2843,7 +2843,7 @@ МассивДокументов = СервисКриптографииDSSКлиентСервер.ЗначениеВМассиве(ДанныеДокумента, ЭтоМассив); ДокументыДляОбработки = СервисКриптографииDSSКлиентСервер.ПодготовитьПакетДляПодписи(МассивДокументов); - ТипРезультата = Новый Массив;; + ТипРезультата = Новый Массив; Для Каждого СтрокаМассива Из ДокументыДляОбработки Цикл ТипРезультата.Добавить(СтрокаМассива.ВернутьКак); Если ЗначениеЗаполнено(СтрокаМассива.RefId) Тогда @@ -3243,7 +3243,7 @@ // СервисПодписи - СправочникСсылка.ЭкземплярыСервераDSS - получает полный список авторизации с учетом ограничений // // Возвращаемое значение: -// Массив - содержит значения из ПеречисленияСсылка.СпособыАвторизацииDSS +// Массив - содержит значения из ПеречислениеСсылка.СпособыАвторизацииDSS // Функция СписокПервичнойАвторизации(СервисПодписи) Экспорт @@ -3274,7 +3274,7 @@ // СервисПодписи - СправочникСсылка.ЭкземплярыСервераDSS - получает полный список авторизации с учетом ограничений // // Возвращаемое значение: -// Массив - содержит значения из ПеречисленияСсылка.СпособыАвторизацииDSS +// Массив - содержит значения из ПеречислениеСсылка.СпособыАвторизацииDSS // Функция СписокВторичнойАвторизации(СервисПодписи) Экспорт @@ -3831,7 +3831,7 @@ Если ТипЗнч(СодержимоеНастроек) = Тип("Строка") Тогда Попытка - СодержимоеНастроек = СервисКриптографииDSSСлужебный.JsonВСтруктуру(СодержимоеНастроек); + СодержимоеНастроек = ОбщегоНазначения.JSONВЗначение(СодержимоеНастроек, , Ложь); Исключение СодержимоеНастроек = Неопределено; КонецПопытки; @@ -3878,7 +3878,7 @@ // ЛогинУчетнойЗаписи - Строка // ПарольУчетнойЗаписи - Строка // СпособАвторизации - Неопределено -// - ПеречисленияСсылка.СпособыАвторизацииDSS +// - ПеречислениеСсылка.СпособыАвторизацииDSS // // Возвращаемое значение: // см. НастройкиПользователяПоУмолчанию @@ -4692,7 +4692,7 @@ ПодготовленныйТекст = ПодготовленныйТекст + "=="; ПредставлениеТокена = ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(ПодготовленныйТекст)); - КлючевыеПоля = СервисКриптографииDSSСлужебный.JsonВСтруктуру(ПредставлениеТокена, Истина); + КлючевыеПоля = ОбщегоНазначения.JSONВЗначение(ПредставлениеТокена); Результат.Логин = КлючевыеПоля["unique_name"]; Результат.Идентификатор = КлючевыеПоля["nameid"]; Результат.Телефон = КлючевыеПоля["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone"]; diff --git a/SSL/src/CommonModules/СервисКриптографииDSSСлужебный/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSСлужебный/Module.bsl index ff5339dc8..47d452d11 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSСлужебный/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSСлужебный/Module.bsl @@ -2992,7 +2992,7 @@ // Перечисляет список допустимых способов первичной аутентификации (авторизации) // // Возвращаемое значение: -// Массив - содержит значения из ПеречисленияСсылка.СпособыАвторизацииDSS +// Массив - содержит значения из ПеречислениеСсылка.СпособыАвторизацииDSS // Функция ДоступныеСпособыПервичнойАвторизации() Экспорт @@ -3009,7 +3009,7 @@ // Перечисляет список допустимых способов вторичной авторизации (подтверждения операций) // // Возвращаемое значение: -// Массив - содержит значения из ПеречисленияСсылка.СпособыАвторизацииDSS +// Массив - содержит значения из ПеречислениеСсылка.СпособыАвторизацииDSS // Функция ДоступныеСпособыВторичнойАвторизации() Экспорт @@ -3027,7 +3027,7 @@ // Получает список способов авторизации (первичная и вторичная), которые указаны в настройках сервера // // Возвращаемое значение: -// Массив - содержит значения из ПеречисленияСсылка.СпособыАвторизацииDSS +// Массив - содержит значения из ПеречислениеСсылка.СпособыАвторизацииDSS // Функция СпособыАвторизацииСОграничениями(СервисПодписи) Экспорт @@ -3792,7 +3792,7 @@ ИначеЕсли ТипСодержания = "text" Тогда ПараметрыЗапроса = СтруктураВСтроку(ПараметрыМетода); ИначеЕсли Сред(ТипСодержания, 1, 4) = "json" Тогда - ПараметрыЗапроса = JsonИзСтруктуры(ПараметрыМетода); + ПараметрыЗапроса = ОбщегоНазначения.ЗначениеВJSON(ПараметрыМетода); КонецЕсли; Если ЗначениеЗаполнено(ПараметрыЗапроса) @@ -3842,9 +3842,9 @@ Если СтрНайти(ТипКонтента, "application/json") > 0 И НЕ ПустаяСтрока(ДанныеОтвета) Тогда Если ТипСодержания = "json_list" Тогда - ТелоОтвета = JsonВСтруктуру(ДанныеОтвета, Истина); + ТелоОтвета = ОбщегоНазначения.JSONВЗначение(ДанныеОтвета); Иначе - ТелоОтвета = JsonВСтруктуру(ДанныеОтвета, Ложь); + ТелоОтвета = ОбщегоНазначения.JSONВЗначение(ДанныеОтвета, , Ложь); КонецЕсли; ИначеЕсли СтрНайти(ТипКонтента, "multipart/byteranges") > 0 Тогда ТелоОтвета = ПолучитьРазделыОтвета(ТипКонтента, ТелоОтвета); @@ -3926,60 +3926,6 @@ КонецФункции -// Преобразует строку в формате JSON в соответствие. -// -// Параметры: -// СтрокаJSON - Строка - строка в формате JSON. -// КакСоответствие - Булево - сформировать результат как соответствие. -// -// Возвращаемое значение: -// Структура, Соответствие - сформированное структура полей -// -Функция JsonВСтруктуру(СтрокаJSON, КакСоответствие = Ложь) Экспорт - - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(СтрокаJSON); - - Объект = ПрочитатьJSON(ЧтениеJSON, КакСоответствие); - - ЧтениеJSON.Закрыть(); - - Возврат Объект; - -КонецФункции - -// Преобразует структуру или соответствие в строку JSON. Двоичные данные преобразуются в строки Base64. -// -// Параметры: -// СтрокаJSON - Структура, Соответствие - структура, которую необходимо преобразовать в строку JSON. -// ОграничитьДлину - Булево - ограничить длину значения не более 100 символов -// -// Возвращаемое значение: -// Строка - текстовое представление JSON -// -Функция JsonИзСтруктуры(Объект, ОграничитьДлину = Ложь) - - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.УстановитьСтроку(); - - Если ОграничитьДлину Тогда - НовыйОбъект = СкопироватьСтруктуру(Объект); - Для каждого СтрокаКлюча Из НовыйОбъект Цикл - Если ТипЗнч(СтрокаКлюча.Значение) = Тип("Строка") Тогда - НовыйОбъект.Вставить(СтрокаКлюча.Ключ, Сред(СтрокаКлюча.Значение, 1, 100)); - ИначеЕсли ТипЗнч(СтрокаКлюча.Значение) = Тип("ДвоичныеДанные") Тогда - НовыйОбъект.Вставить(СтрокаКлюча.Ключ, Сред(Base64Значение(СтрокаКлюча.Значение), 1, 100)); - КонецЕсли; - КонецЦикла; - ЗаписатьJSON(ЗаписьJSON, НовыйОбъект); - Иначе - ЗаписатьJSON(ЗаписьJSON, Объект); - КонецЕсли; - - Возврат ЗаписьJSON.Закрыть(); - -КонецФункции - // Разбирает адресную строку содержащую параметры в Соответствие // // Параметры: @@ -4025,7 +3971,7 @@ // Функция ПодготовитьЗаголовокПотока(ПараметрыЗапроса) Экспорт - ПредставлениеЗаголовка = JsonИзСтруктуры(ПараметрыЗапроса); + ПредставлениеЗаголовка = ОбщегоНазначения.ЗначениеВJSON(ПараметрыЗапроса); ПредставлениеЗаголовка = НормализоватьСтрокуПараметров(ПредставлениеЗаголовка, Ложь); ПредставлениеЗаголовка = СтрЗаменить(ПредставлениеЗаголовка, """: ", """:"); ПредставлениеЗаголовка = Base64URL(ПредставлениеЗаголовка); @@ -4134,7 +4080,7 @@ Если СтрНайти(ТипКонтента, "application/json") > 0 И НЕ ПустаяСтрока(ДанныеОтвета) Тогда Попытка - ТелоОтвета = JsonВСтруктуру(ДанныеОтвета, Истина); + ТелоОтвета = ОбщегоНазначения.JSONВЗначение(ДанныеОтвета); Исключение ОбъектОшибки = ИнформацияОбОшибке(); ПротоколОшибкиПриВызове( diff --git a/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl index 1468cef16..e3fc8bc08 100644 --- a/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/СервисКриптографииDSSСлужебныйКлиент/Module.bsl @@ -82,7 +82,7 @@ // 8. Многие операции сопровождаются интерактивными формами, для отображения дополнительных пояснений на этих формах // предусмотрено поле "ПояснениеОперации" с типом строка // -// 9. Часть ошибок возникающих при работе, таких "Не правильный пароль", "Не правильный пин-код" и прочее, обрабатывает сама. +// 9. Часть ошибок возникающих при работе, таких "Неправильный пароль", "Неправильный пин-код" и прочее, обрабатывает сама. // Если такое поведение не требуется, то нужно передать параметр: // - ОбработкаОшибок - Булево, если Ложь, то происходит прекращение выполнения цикла криптооперации // diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl index ddadae0b5..19271869a 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl @@ -315,7 +315,7 @@ // Склоняет переданные фразы по всем падежам. // // Параметры: -// Представления - Массив из строк - строки для склонения. +// Представления - Массив из Строка - строки для склонения. // ПараметрыСклонения - см. СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения // ПоказыватьСообщения - Булево - признак, определяющий нужно ли показывать пользователю сообщения об ошибках. // @@ -444,7 +444,7 @@ Запрос = HTTPЗапросКСервисуСклонения(СклоняемыйТекст); Попытка Ответ = ВыполнитьЗапросСервисуСклонений(Соединение, Запрос); - СтруктураОтвета = СтруктураОтветаСервисаСклонений(Ответ); + СтруктураОтвета = ОбщегоНазначения.JSONВЗначение(Ответ.ПолучитьТелоКакСтроку(), , Ложь); СтруктураСклонения = СклонениеПредставленийОбъектовКлиентСервер.СтруктураСклонения(); СтруктураСклонения.Именительный = СклоняемыйТекст; СтруктураСклонения.Родительный = СтруктураОтвета.Р; @@ -535,17 +535,6 @@ КонецФункции -Функция СтруктураОтветаСервисаСклонений(Ответ) - - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку()); - Результат = ПрочитатьJSON(ЧтениеJSON); - ЧтениеJSON.Закрыть(); - - Возврат Результат; - -КонецФункции - Процедура ЗарегистрироватьОшибкуСервисаСклонений(ИнформацияОбОшибке, ПоказыватьСообщения) // АПК:154-выкл Ошибка при вызове сервиса склонений не является критичной. diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl index 794b1b5d5..d26283d9f 100644 --- a/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl @@ -81,7 +81,8 @@ Исключение // Отмечаем в управляющем приложении ошибку выполнения операции - ОтправитьСообщениеОшибкаПриСозданииОбмена(Число(КодЭтогоУзла), Число(КодНовогоУзла), ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Отправитель); + ОтправитьСообщениеОшибкаПриСозданииОбмена(Число(КодЭтогоУзла), Число(КодНовогоУзла), + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Отправитель); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); @@ -143,7 +144,8 @@ ОтменитьТранзакцию(); // Отмечаем в управляющем приложении ошибку выполнения операции - ОтправитьСообщениеОшибкаПриСозданииОбмена(Число(КодЭтогоУзла), Число(КодНовогоУзла), ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Отправитель); + ОтправитьСообщениеОшибкаПриСозданииОбмена(Число(КодЭтогоУзла), Число(КодНовогоУзла), + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Отправитель); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl index db32baa82..e1889192c 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl @@ -210,6 +210,22 @@ КонецПроцедуры +// См. СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации +Функция ЭтоБазоваяВерсияКонфигурации() Экспорт + + Возврат ПараметрКлиента("ЭтоБазоваяВерсияКонфигурации"); + +КонецФункции + +// См. СтандартныеПодсистемыСервер.ЭтоУчебнаяПлатформа +Функция ЭтоУчебнаяПлатформа() Экспорт + + Возврат ПараметрКлиента("ЭтоУчебнаяПлатформа"); + +КонецФункции + +#Область ОбработкаСобытийПриложения + // Отключает выдачу предупреждения пользователю при завершении работы программы. // Процедура ПропуститьПредупреждениеПередЗавершениемРаботыСистемы() Экспорт @@ -479,6 +495,8 @@ КонецФункции +#КонецОбласти + #Область ДляВызоваИзДругихПодсистем // Вызывается при получении оповещений от сервера. @@ -559,7 +577,11 @@ ПараметрыПриложения[ИмяПараметра] = Новый Структура; ПараметрыПриложения[ИмяПараметра].Вставить("РазделениеВключено"); ПараметрыПриложения[ИмяПараметра].Вставить("ИнформационнаяБазаФайловая"); + ПараметрыПриложения[ИмяПараметра].Вставить("ЭтоБазоваяВерсияКонфигурации"); + ПараметрыПриложения[ИмяПараметра].Вставить("ЭтоУчебнаяПлатформа"); ПараметрыПриложения[ИмяПараметра].Вставить("ЭтоСеансВнешнегоПользователя"); + ПараметрыПриложения[ИмяПараметра].Вставить("ЭтоПолноправныйПользователь"); + ПараметрыПриложения[ИмяПараметра].Вставить("ЭтоАдминистраторСистемы"); ПараметрыПриложения[ИмяПараметра].Вставить("АвторизованныйПользователь"); ПараметрыПриложения[ИмяПараметра].Вставить("ЗапрашиватьПодтверждениеПриЗавершенииПрограммы"); ПараметрыПриложения[ИмяПараметра].Вставить("ДоступноИспользованиеРазделенныхДанных"); @@ -567,6 +589,7 @@ ПараметрыПриложения[ИмяПараметра].Вставить("ПерсональныеНастройкиРаботыСФайлами"); ПараметрыПриложения[ИмяПараметра].Вставить("КоличествоЗанятыхФайлов"); ПараметрыПриложения[ИмяПараметра].Вставить("РезервноеКопированиеИБПриЗавершенииРаботы"); + ПараметрыПриложения[ИмяПараметра].Вставить("ОтображатьПомощникНастройкиРазрешений"); ПараметрыПриложения[ИмяПараметра].Вставить("ПоправкаКВремениСеанса"); ПараметрыПриложения[ИмяПараметра].Вставить("ПоправкаКУниверсальномуВремени"); ПараметрыПриложения[ИмяПараметра].Вставить("СмещениеСтандартногоВремени"); @@ -651,8 +674,7 @@ КонецЕсли; #КонецЕсли - ЭтоУчебнаяПлатформа = ПараметрыРаботыКлиентаПриЗапуске().ЭтоУчебнаяПлатформа; - Возврат СтрЗаменить(ШаблонИмениФайла, "[УчебнаяПлатформа]", ?(ЭтоУчебнаяПлатформа, "t", "")); + Возврат СтрЗаменить(ШаблонИмениФайла, "[УчебнаяПлатформа]", ?(ЭтоУчебнаяПлатформа(), "t", "")); КонецФункции @@ -928,14 +950,10 @@ Текст = СтрЗаменить(Текст, "[ВерсияБСП]", СтандартныеПодсистемыВызовСервера.ВерсияБиблиотеки()); Текст = СтрЗаменить(Текст, "[ОперационнаяСистема]", СистемнаяИнформация.ВерсияОС); Текст = СтрЗаменить(Текст, "[ОперативнаяПамять]", СистемнаяИнформация.ОперативнаяПамять); - Текст = СтрЗаменить(Текст, "[ИмяCOMСоединителя]", - ?(Параметры.Свойство("ИмяCOMСоединителя"), Параметры.ИмяCOMСоединителя, ТекстНедоступно)); - Текст = СтрЗаменить(Текст, "[ЭтоБазоваяВерсияКонфигурации]", - ?(Параметры.Свойство("ЭтоБазоваяВерсияКонфигурации"), Параметры.ЭтоБазоваяВерсияКонфигурации, ТекстНедоступно)); - Текст = СтрЗаменить(Текст, "[ЭтоПолноправныйПользователь]", - ?(Параметры.Свойство("ЭтоПолноправныйПользователь"), Параметры.ЭтоПолноправныйПользователь, ТекстНедоступно)); - Текст = СтрЗаменить(Текст, "[ЭтоУчебнаяПлатформа]", - ?(Параметры.Свойство("ЭтоУчебнаяПлатформа"), Параметры.ЭтоУчебнаяПлатформа, ТекстНедоступно)); + Текст = СтрЗаменить(Текст, "[ИмяCOMСоединителя]", ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()); + Текст = СтрЗаменить(Текст, "[ЭтоБазоваяВерсияКонфигурации]", ЭтоБазоваяВерсияКонфигурации()); + Текст = СтрЗаменить(Текст, "[ЭтоПолноправныйПользователь]", ПользователиКлиент.ЭтоПолноправныйПользователь()); + Текст = СтрЗаменить(Текст, "[ЭтоУчебнаяПлатформа]", ЭтоУчебнаяПлатформа()); Текст = СтрЗаменить(Текст, "[КонфигурацияИзменена]", ?(Параметры.Свойство("НастройкиОбновления"), Параметры.НастройкиОбновления.КонфигурацияИзменена, ТекстНедоступно)); @@ -1608,6 +1626,9 @@ // ПередЗавершениемРаботыСистемы // Только для внутреннего использования. +// +// Параметры: +// Пересоздать - Булево // // Возвращаемое значение: // Структура: @@ -1618,9 +1639,17 @@ // НепрерывноеВыполнение - Булево // ОбработкаЗавершения - ОписаниеОповещения // -Функция ПараметрыДействийПередЗавершениемРаботыСистемы() Экспорт +Функция ПараметрыДействийПередЗавершениемРаботыСистемы(Пересоздать = Ложь) Экспорт - Параметры = Новый Структура; + ИмяПараметра = "СтандартныеПодсистемы.ПараметрыДействийПередЗавершениемРаботыСистемы"; + Если Пересоздать Или ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда + ПараметрыПриложения.Вставить(ИмяПараметра, Новый Структура); + КонецЕсли; + Параметры = ПараметрыПриложения[ИмяПараметра]; + + Если Не Пересоздать Тогда + Возврат Параметры; + КонецЕсли; // Внешние параметры описания результата. Параметры.Вставить("Отказ", Ложь); @@ -1633,7 +1662,7 @@ // Внутренние параметры. Параметры.Вставить("ОбработкаЗавершения", Новый ОписаниеОповещения( - "ДействияПередЗавершениемРаботыСистемыОбработкаЗавершения", СтандартныеПодсистемыКлиент, Параметры)); + "ДействияПередЗавершениемРаботыСистемыОбработкаЗавершения", СтандартныеПодсистемыКлиент)); Возврат Параметры; КонецФункции @@ -1670,6 +1699,7 @@ // Процедура ДействияПередЗавершениемРаботыСистемыОбработкаЗавершения(Неопределен, Параметры) Экспорт + Параметры = ПараметрыДействийПередЗавершениемРаботыСистемы(); Параметры.ОбработкаПродолжения = Неопределено; Параметры.ОбработкаЗавершения = Неопределено; ИмяПараметра = "СтандартныеПодсистемы.ПропуститьЗавершениеРаботыСистемыПослеОбработкиПредупреждений"; @@ -1689,14 +1719,12 @@ // // Параметры: // Неопределен - Неопределено -// ДополнительныеПараметры - Структура: -// * Параметры - см. СтандартныеПодсистемыКлиент.ПараметрыДействийПередЗавершениемРаботыСистемы -// * ОбработкаПродолжения - ОписаниеОповещения +// ОбработкаПродолжения - ОписаниеОповещения // -Процедура ДействияПередЗавершениемРаботыСистемыПослеОбработкиОшибки(Неопределен, ДополнительныеПараметры) Экспорт +Процедура ДействияПередЗавершениемРаботыСистемыПослеОбработкиОшибки(Неопределен, ОбработкаПродолжения) Экспорт - Параметры = ДополнительныеПараметры.Параметры; - Параметры.ОбработкаПродолжения = ДополнительныеПараметры.ОбработкаПродолжения; + Параметры = ПараметрыДействийПередЗавершениемРаботыСистемы(); + Параметры.ОбработкаПродолжения = ОбработкаПродолжения; Если Параметры.Отказ Тогда Параметры.Отказ = Ложь; @@ -1762,7 +1790,7 @@ КонецЕсли; Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Текущая, Минимальная) < 0 Тогда - Если ПараметрыКлиента.ЕстьДоступДляОбновленияВерсииПлатформы Тогда + Если ПользователиКлиент.ЭтоПолноправныйПользователь(Истина) Тогда ТекстСообщения = НСтр("ru = 'Вход в программу невозможен. |Предварительно обновите версию платформы 1С:Предприятие.'"); @@ -1772,7 +1800,7 @@ |Обратитесь к администратору для обновления версии платформы 1С:Предприятие.'"); КонецЕсли; Иначе - Если ПараметрыКлиента.ЕстьДоступДляОбновленияВерсииПлатформы Тогда + Если ПользователиКлиент.ЭтоПолноправныйПользователь(Истина) Тогда ТекстСообщения = НСтр("ru = 'Рекомендуется завершить работу программы и обновить версию платформы 1С:Предприятия. |Новая версия платформы содержит исправления ошибок, которые позволят программе работать более стабильно. @@ -2016,7 +2044,7 @@ // Процедура ПослеЗакрытияФормыПредупрежденийПриЗавершенииРаботы(Результат, ДополнительныеПараметры) Экспорт - Параметры = ДополнительныеПараметры.Параметры; + Параметры = ПараметрыДействийПередЗавершениемРаботыСистемы(); Если ДополнительныеПараметры.ВариантФормы = "Вопрос" Тогда @@ -2720,7 +2748,6 @@ Процедура ОткрытьФормуПредупрежденийПриЗавершенииРаботы(Параметры) ДополнительныеПараметры = Новый Структура; - ДополнительныеПараметры.Вставить("Параметры", Параметры); ДополнительныеПараметры.Вставить("ВариантФормы", "Вопрос"); ОбработкаОтвета = Новый ОписаниеОповещения("ПослеЗакрытияФормыПредупрежденийПриЗавершенииРаботы", @@ -2734,21 +2761,10 @@ ИмяФормы = "ОбщаяФорма.ПредупрежденияПриЗавершенииРаботы"; - Если Предупреждения.Количество() = 1 Тогда - Если Не ПустаяСтрока(Предупреждения[0].ТекстФлажка) Тогда - ДополнительныеПараметры.Вставить("ВариантФормы", "СтандартнаяФорма"); - ПараметрыОткрытияФормы = Новый Структура; - ПараметрыОткрытияФормы.Вставить("ИмяФормы", ИмяФормы); - ПараметрыОткрытияФормы.Вставить("ПараметрыФормы", ПараметрыФормы); - ПараметрыОткрытияФормы.Вставить("ОбработкаОтвета", ОбработкаОтвета); - ПараметрыОткрытияФормы.Вставить("РежимОткрытияОкна", Неопределено); - Параметры.ИнтерактивнаяОбработка = Новый ОписаниеОповещения( - "ИнтерактивнаяОбработкаПредупрежденийПриЗавершенииРаботы", ЭтотОбъект, ПараметрыОткрытияФормы); - Иначе - ДополнительныеПараметры.Вставить("ВариантФормы", "ПрикладнаяФорма"); - ОткрытьПрикладнуюФормуПредупреждения(Параметры, ОбработкаОтвета, Предупреждения[0], ИмяФормы, ПараметрыФормы); - КонецЕсли; - Иначе + Если Предупреждения.Количество() = 1 И ПустаяСтрока(Предупреждения[0].ТекстФлажка) Тогда + ДополнительныеПараметры.Вставить("ВариантФормы", "ПрикладнаяФорма"); + ОткрытьПрикладнуюФормуПредупреждения(Параметры, ОбработкаОтвета, Предупреждения[0], ИмяФормы, ПараметрыФормы); + Иначе ДополнительныеПараметры.Вставить("ВариантФормы", "СтандартнаяФорма"); ПараметрыОткрытияФормы = Новый Структура; ПараметрыОткрытияФормы.Вставить("ИмяФормы", ИмяФормы); @@ -2873,11 +2889,8 @@ Параметры.ОбработкаПродолжения = Параметры.ОбработкаЗавершения; КонецЕсли; Иначе - ДополнительныеПараметры = Новый Структура("Параметры, ОбработкаПродолжения", - Параметры, Параметры.ОбработкаПродолжения); - Параметры.ОбработкаПродолжения = Новый ОписаниеОповещения( - "ДействияПередЗавершениемРаботыСистемыПослеОбработкиОшибки", ЭтотОбъект, ДополнительныеПараметры); + "ДействияПередЗавершениемРаботыСистемыПослеОбработкиОшибки", ЭтотОбъект, Параметры.ОбработкаПродолжения); КонецЕсли; СтандартныеПодсистемыВызовСервера.ЗаписатьОшибкуВЖурналРегистрацииПриЗапускеИлиЗавершении( diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl index 67de7eca1..eb91749c8 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl @@ -239,11 +239,7 @@ // Функция ИспользуетсяРИБ(ФильтрПоНазначению = "") Экспорт - Если УзлыРИБ(ФильтрПоНазначению).Количество() > 0 Тогда - Возврат Истина; - Иначе - Возврат Ложь; - КонецЕсли; + Возврат УзлыРИБ(ФильтрПоНазначению).Количество() > 0; КонецФункции diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl index 50f0fbccc..24aa97e74 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl @@ -29,6 +29,8 @@ // имена уже установленных параметров сеанса сохраняются в массиве УстановленныеПараметры. УстановленныеПараметры = Новый Массив; +#Если НЕ МобильныйАвтономныйСервер Тогда + Если ИменаПараметровСеанса <> Неопределено И ИменаПараметровСеанса.Найти("ПараметрыКлиентаНаСервере") <> Неопределено Тогда @@ -93,10 +95,14 @@ ИнтеграцияПодсистемБСП.ПриУстановкеПараметровСеанса(ИменаПараметровСеанса); +#КонецЕсли + Возврат УстановленныеПараметры; КонецФункции +#Если НЕ МобильныйАвтономныйСервер Тогда + // Возвращает признак того, является ли конфигурация базовой. // Базовые версии конфигураций могут иметь программные ограничения, действие которых // можно предусмотреть с помощью этой функции. @@ -115,6 +121,28 @@ КонецФункции +// Возвращает признак того, что выполнение происходит на учебной платформе. +// Используется, когда нужно поддержать работу кода, который зависит +// от ограничений учебной версии платформы. +// +// Возвращаемое значение: +// Булево - Истина, если выполнение происходит на учебной платформе. +// +Функция ЭтоУчебнаяПлатформа() Экспорт + + УстановитьПривилегированныйРежим(Истина); + ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); + + Попытка + ПользовательОС = ТекущийПользователь.ПользовательОС; + Исключение + // В учебной версии платформы недоступно получение свойства ПользовательОС. + Возврат Истина; + КонецПопытки; + Возврат Ложь; + +КонецФункции + // Обновляет кэши свойств метаданных, позволяющие ускорить // открытие сеанса, а также обновление ИБ, особенно в модели сервиса. // Их обновление происходит до обновления ИБ. @@ -548,8 +576,12 @@ #КонецОбласти +#КонецЕсли + #КонецОбласти +#Если НЕ МобильныйАвтономныйСервер Тогда + #Область СлужебныйПрограммныйИнтерфейс // Отправляет оповещение всем сеансам об устаревании повторно используемых значений. @@ -1329,26 +1361,6 @@ КонецПроцедуры -// Возвращаемое значение: -// Булево - Истина, если выполнение происходит на учебной платформе, -// на которой, например, недоступно получение свойства ПользовательОС. -// -Функция ЭтоУчебнаяПлатформа() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); - - Попытка - ПользовательОС = ТекущийПользователь.ПользовательОС; - Исключение - ПользовательОС = Неопределено; - КонецПопытки; - - Возврат ПользовательОС = Неопределено; - -КонецФункции - //////////////////////////////////////////////////////////////////////////////// // Обработчики отправки и получения данных для обмена в распределенной ИБ. @@ -2513,12 +2525,14 @@ Параметры.Вставить("ДоступноИспользованиеРазделенныхДанных", ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()); Параметры.Вставить("ЭтоРазделеннаяКонфигурация", ЭтоРазделеннаяКонфигурация); + // Устарел. Для обратной совместимости. Следует использовать ПользователиКлиент.ЭтоПолноправныйПользователь. Параметры.Вставить("ЕстьДоступДляОбновленияВерсииПлатформы", Пользователи.ЭтоПолноправныйПользователь(,Истина)); Параметры.Вставить("ИменаПодсистем", СтандартныеПодсистемыПовтИсп.ИменаПодсистем()); Параметры.Вставить("ЭтоБазоваяВерсияКонфигурации", ЭтоБазоваяВерсияКонфигурации()); Параметры.Вставить("ЭтоУчебнаяПлатформа", ЭтоУчебнаяПлатформа()); Параметры.Вставить("ИмяТекущегоПользователя", ТекущийПользователь().Имя); + // Устарел. Для обратной совместимости. Следует использовать ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя. Параметры.Вставить("ИмяCOMСоединителя", ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()); Параметры.Вставить("КодОсновногоЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); @@ -2527,7 +2541,7 @@ ОбщиеПараметры = ОбщегоНазначения.ОбщиеПараметрыБазовойФункциональности(); Параметры.Вставить("МинимальнаяВерсияПлатформы", ОбщиеПараметры.МинимальнаяВерсияПлатформы); Параметры.Вставить("РекомендуемаяВерсияПлатформы", ОбщиеПараметры.РекомендуемаяВерсияПлатформы); - // Устарели. Для обратной совместимости. + // Устарели. Для обратной совместимости. Следует использовать два предыдущих параметра. Параметры.Вставить("МинимальноНеобходимаяВерсияПлатформы", ОбщиеПараметры.МинимальноНеобходимаяВерсияПлатформы); Параметры.Вставить("РаботаВПрограммеЗапрещена", ОбщиеПараметры.РаботаВПрограммеЗапрещена); @@ -2536,6 +2550,8 @@ И Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ТекущиеДела")); Параметры.Вставить("ЭтоСеансВнешнегоПользователя", Пользователи.ЭтоСеансВнешнегоПользователя()); + Параметры.Вставить("ЭтоПолноправныйПользователь", Пользователи.ЭтоПолноправныйПользователь()); + Параметры.Вставить("ЭтоАдминистраторСистемы", Пользователи.ЭтоПолноправныйПользователь(, Истина)); Параметры.Вставить("ИнформационнаяБазаФайловая", ОбщегоНазначения.ИнформационнаяБазаФайловая()); Если ИспользуетсяНедопустимаяВерсияПлатформы() Тогда @@ -2743,8 +2759,11 @@ ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()); Параметры.Вставить("РазделениеВключено", ОбщегоНазначения.РазделениеВключено()); + // Устарел. Следует использовать СтандартныеПодсистемыКлиент.ЭтоБазоваяВерсияКонфигурации. Параметры.Вставить("ЭтоБазоваяВерсияКонфигурации", ЭтоБазоваяВерсияКонфигурации()); + // Устарел. Следует использовать СтандартныеПодсистемыКлиент.ЭтоУчебнаяПлатформа. Параметры.Вставить("ЭтоУчебнаяПлатформа", ЭтоУчебнаяПлатформа()); + // Устарел. Следует использовать ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя. Параметры.Вставить("ИмяCOMСоединителя", ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()); Параметры.Вставить("ЭлементыСтиля", НаборЭлементовСтиля()); @@ -3513,13 +3532,13 @@ НулеваяВерсия = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Метаданные.Версия, "0.0.0.0") = 0; Исключение ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не правильно заполнено свойство конфигурации Версия: ""%1"". + НСтр("ru = 'Неправильно заполнено свойство конфигурации Версия: ""%1"". |Правильный формат, например: ""1.2.3.45"".'"), Метаданные.Версия); КонецПопытки; Если НулеваяВерсия Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не правильно заполнено свойство конфигурации Версия: ""%1"". + НСтр("ru = 'Неправильно заполнено свойство конфигурации Версия: ""%1"". |Версия не может быть нулевой.'"), Метаданные.Версия); КонецЕсли; @@ -4491,4 +4510,6 @@ КонецФункции -#КонецОбласти \ No newline at end of file +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl b/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl index 6ca7a556a..fe047d64d 100644 --- a/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl @@ -927,7 +927,7 @@ КонецЕсли; Если ЗначениеДатаМассивом.Количество() = 2 Тогда - Месяц = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[1]);; + Месяц = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[1]); ИначеЕсли ЗначениеДатаМассивом.Количество() > 2 Тогда Месяц = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[1]); Если ГодВНачале Тогда diff --git a/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl b/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl index 7f3404ee7..c4c657450 100644 --- a/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl @@ -13,13 +13,13 @@ // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных. Процедура ПриДобавленииПереименованийОбъектовМетаданных(Итог) Экспорт - + Библиотека = "СтандартныеПодсистемы"; - + СтароеИмя = "Роль.ИспользованиеСтруктурыПодчиненности"; НовоеИмя = "Роль.ПросмотрСвязанныеДокументы"; ОбщегоНазначения.ДобавитьПереименование(Итог, "2.3.3.5", СтароеИмя, НовоеИмя, Библиотека); - + КонецПроцедуры // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту @@ -28,7 +28,7 @@ // ВидыПодключаемыхКоманд - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииВидовПодключаемыхКоманд.ВидыПодключаемыхКоманд // Процедура ПриОпределенииВидовПодключаемыхКоманд(ВидыПодключаемыхКоманд) Экспорт - + Вид = ВидыПодключаемыхКоманд.Добавить(); Вид.Имя = "СвязанныеДокументы"; Вид.ИмяПодменю = "ПодменюОтчеты"; @@ -36,22 +36,22 @@ Вид.Порядок = 50; Вид.Картинка = БиблиотекаКартинок.Отчет; Вид.Отображение = ОтображениеКнопки.КартинкаИТекст; - + КонецПроцедуры // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт - + МетаданныеФормы = Метаданные.ОбщиеФормы.СвязанныеДокументы; Если Не ПравоДоступа("Просмотр", МетаданныеФормы) Тогда Возврат; КонецЕсли; - + ТипПараметраКоманды = ТипПараметраКоманды(Источники); - Если ТипПараметраКоманды = Неопределено Тогда + Если ТипПараметраКоманды = Неопределено Тогда Возврат; КонецЕсли; - + Команда = Команды.Добавить(); Команда.Представление = НСтр("ru = 'Связанные документы'"); Команда.Вид = "СвязанныеДокументы"; @@ -62,7 +62,7 @@ Команда.ТипПараметра = ТипПараметраКоманды; Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.S, Ложь, Истина, Истина); Команда.Картинка = БиблиотекаКартинок.СтруктураПодчиненности; - + КонецПроцедуры #КонецОбласти @@ -70,67 +70,67 @@ #Область СлужебныеПроцедурыИФункции Функция ТипПараметраКоманды(Источники) - + ТипыИсточников = Новый Массив; ЗаполнитьТипыИсточников(ТипыИсточников, Источники.Строки); ТипыИсточников = ОбщегоНазначенияКлиентСервер.СвернутьМассив(ТипыИсточников); - + ИндексТиповСвязанныхОбъектов = ИндексТиповСвязанныхОбъектов(); - + Индекс = ТипыИсточников.ВГраница(); Пока Индекс >= 0 Цикл - + ТипИсточника = ТипыИсточников[Индекс]; - Если ИндексТиповСвязанныхОбъектов[ТипИсточника] = Неопределено Тогда + Если ИндексТиповСвязанныхОбъектов[ТипИсточника] = Неопределено Тогда ТипыИсточников.Удалить(Индекс); КонецЕсли; - + Индекс = Индекс - 1; - + КонецЦикла; - + Возврат ?(ТипыИсточников.Количество() > 0, Новый ОписаниеТипов(ТипыИсточников), Неопределено); - + КонецФункции Процедура ЗаполнитьТипыИсточников(ТипыИсточников, Источники) - - Для Каждого Источник Из Источники Цикл - + + Для Каждого Источник Из Источники Цикл + Если ТипЗнч(Источник.ТипСсылкиДанных) = Тип("Тип") Тогда - + ТипыИсточников.Добавить(Источник.ТипСсылкиДанных); - + ИначеЕсли ТипЗнч(Источник.ТипСсылкиДанных) = Тип("ОписаниеТипов") Тогда - + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ТипыИсточников, Источник.ТипСсылкиДанных.Типы()); - + КонецЕсли; - + ЗаполнитьТипыИсточников(ТипыИсточников, Источник.Строки); - + КонецЦикла; - + КонецПроцедуры Функция ИндексТиповСвязанныхОбъектов() - + Индекс = Новый Соответствие; - + МетаданныеСвязанныхОбъектов = Метаданные.КритерииОтбора.СвязанныеДокументы; ТипыСвязанныхОбъектов = МетаданныеСвязанныхОбъектов.Тип.Типы(); ТипПараметраКоманды = Метаданные.ОбщиеКоманды.СвязанныеДокументы.ТипПараметраКоманды; - - Для Каждого ТипСвязанногоОбъекта Из ТипыСвязанныхОбъектов Цикл - - Если Не ТипПараметраКоманды.СодержитТип(ТипСвязанногоОбъекта) Тогда + + Для Каждого ТипСвязанногоОбъекта Из ТипыСвязанныхОбъектов Цикл + + Если Не ТипПараметраКоманды.СодержитТип(ТипСвязанногоОбъекта) Тогда Индекс.Вставить(ТипСвязанногоОбъекта, Истина); КонецЕсли; - + КонецЦикла; - + Возврат Индекс; - + КонецФункции -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl index 7be3c77cf..4ccdb0021 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl @@ -9,23 +9,23 @@ #Область ПрограммныйИнтерфейс // Безвозвратно удаляет объекты, помеченные на удаление, выполняя при этом контроль ссылочной целостности. +// Следует вызывать вне транзакции, т.к. функция сама управляет транзакциями и порционностью. // // Параметры: -// УдаляемыеОбъекты - Массив из ПланОбменаСсылка - объекты для удаления. +// УдаляемыеОбъекты - Массив из ПланОбменаСсылка // - Массив из СправочникСсылка // - Массив из ДокументСсылка // - Массив из ПланСчетовСсылка // - Массив из ПланВидовРасчетаСсылка // - Массив из БизнесПроцессСсылка -// - Массив из ЗадачаСсылка +// - Массив из ЗадачаСсылка - объекты для удаления. // РежимУдаления - Строка - способ удаления, может принимать значения: // "Стандартный" - удаление объектов с контролем ссылочной целостности и сохранением возможности -// многопользовательской работы. +// многопользовательской работы. // "Монопольный" - удаление объектов с контролем ссылочной целостности с установкой монопольного режима. // Если монопольный режим установить не удалось, то будет вызвано исключение. // "Упрощенный" - удаление объектов, при котором контроль ссылочной целостности выполняется только в непомеченных -// на удаление объектах. В помеченных на удаление объектах ссылки на удаляемые объекты -// будут очищены. +// на удаление объектах. В помеченных на удаление объектах ссылки на удаляемые объекты будут очищены. // // Возвращаемое значение: // Структура: @@ -66,15 +66,15 @@ // Массив из ЛюбаяСсылка // Функция ПомеченныеНаУдаление(Знач ОтборМетаданных = Неопределено, ИскатьТехнологическиеОбъекты = Ложь) Экспорт - + ЭтоМодельСервиса = ОбщегоНазначения.РазделениеВключено(); ВОбластиДанных = ?(ЭтоМодельСервиса, ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(), Ложь); ОтборМетаданных = ?(ОтборМетаданных <> Неопределено И ОтборМетаданных.Количество() > 0, ОтборМетаданных.ВыгрузитьЗначения(), Неопределено); - + ИсключенияПоискаУдаляемых = Новый Массив; ИсключенияПоиска = Новый Соответствие; - Если НЕ ИскатьТехнологическиеОбъекты Тогда + Если Не ИскатьТехнологическиеОбъекты Тогда ИсключенияПоискаСсылок = ОбщегоНазначения.ИсключенияПоискаСсылок(); Для Каждого ИсключениеПоиска Из ИсключенияПоискаСсылок Цикл Если ИсключениеПоиска.Значение = "*" Тогда @@ -83,34 +83,34 @@ КонецЕсли; КонецЦикла; КонецЕсли; - + ПомеченныеНаУдаление = Новый Массив; Для Каждого Элемент Из НайтиПомеченныеНаУдаление( , ОтборМетаданных, ИсключенияПоискаУдаляемых) Цикл - Если Не СоответствуетОтборуМетаданных(ОтборМетаданных, Элемент) - Или ИсключенияПоиска[Элемент.Метаданные()] <> Неопределено Тогда + Если Не СоответствуетОтборуМетаданных(ОтборМетаданных, Элемент) Или ИсключенияПоиска[Элемент.Метаданные()] + <> Неопределено Тогда Продолжить; КонецЕсли; - + ПомеченныеНаУдаление.Добавить(Элемент); КонецЦикла; Результат = Новый Массив; ЭтоПредопределенныеЭлементы = ОбщегоНазначения.ЭтоПредопределенныеЭлементы(ПомеченныеНаУдаление); ИнформацияОТипах = УдалениеПомеченныхОбъектовСлужебный.ИнформацияОТипах(ПомеченныеНаУдаление); - + Для Каждого Элемент Из ПомеченныеНаУдаление Цикл - Если Не СоответствуетОтборуМетаданных(ОтборМетаданных, Элемент) - Или ИсключенияПоиска[Элемент.Метаданные()] <> Неопределено Тогда + Если Не СоответствуетОтборуМетаданных(ОтборМетаданных, Элемент) Или ИсключенияПоиска[Элемент.Метаданные()] + <> Неопределено Тогда Продолжить; - КонецЕсли; - + КонецЕсли; + Информация = ИнформацияОТипах[ТипЗнч(Элемент)]; ЭтоПредопределенный = ЭтоПредопределенныеЭлементы[Элемент]; ЭтоНеразделенныйОбъектВОбластиДанных = ВОбластиДанных И Не Информация.Разделенный; - ОбъектПодлежитУдалению = НЕ ЭтоПредопределенный И НЕ ЭтоНеразделенныйОбъектВОбластиДанных - И (НЕ Информация.Технический ИЛИ ИскатьТехнологическиеОбъекты); + ОбъектПодлежитУдалению = Не ЭтоПредопределенный И Не ЭтоНеразделенныйОбъектВОбластиДанных + И (Не Информация.Технический Или ИскатьТехнологическиеОбъекты); Если ОбъектПодлежитУдалению Тогда Результат.Добавить(Элемент); КонецЕсли; @@ -224,13 +224,13 @@ Функция СсылкиНаУдаляемыеОбъекты(Источник) Экспорт СсылкиНаУдаляемыеОбъекты = Новый Соответствие; МетаданныеИсточника = Источник.Метаданные(); - + Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Источник, "Ссылка") Тогда ОписанияСсылок = СсылкаНаУдаляемыеОбъектыВОбъекте(ОписаниеОбъекта(Источник, МетаданныеИсточника), МетаданныеИсточника); ИначеЕсли ОбщегоНазначения.ЭтоКонстанта(МетаданныеИсточника) Тогда ЗначениеКонстанты = Источник.Значение; - Если ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ЗначениеКонстанты)) Тогда + Если ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ЗначениеКонстанты)) Тогда ОписанияСсылок = НовыйСсылкиВОбъекте(); ОписаниеСсылки = ОписанияСсылок.Добавить(); ОписаниеСсылки.Ссылка = ЗначениеКонстанты; @@ -239,20 +239,19 @@ КонецЕсли; ИначеЕсли ЭтоНезависимыйРегистрСведений(МетаданныеИсточника) Тогда ОписанияСсылок = СсылкиНаУдаляемыеОбъектыВНаборе( - ОписаниеНабора(Источник, МетаданныеИсточника), - МетаданныеИсточника); + ОписаниеНабора(Источник, МетаданныеИсточника), МетаданныеИсточника); Иначе Возврат Новый Соответствие; - КонецЕсли; - + КонецЕсли; + УдаляемыеСсылки = ЗаблокированныеУдаляемыеСсылки(ОписанияСсылок.ВыгрузитьКолонку("Ссылка")); УдаляемыеСсылкиПометкиУдаления = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(УдаляемыеСсылки, "ПометкаУдаления"); ДобавленныеСсылки = СсылкиДобавленныеПриИзмененииОбъекта(ОписанияСсылок, УдаляемыеСсылкиПометкиУдаления); - Для каждого ОписаниеСсылки Из ДобавленныеСсылки Цикл + Для Каждого ОписаниеСсылки Из ДобавленныеСсылки Цикл СсылкиНаУдаляемыеОбъекты.Вставить(ОписаниеСсылки.Ссылка, ОписаниеСсылки.Представление); КонецЦикла; - + Возврат СсылкиНаУдаляемыеОбъекты; КонецФункции @@ -343,7 +342,7 @@ // * ПараметрыУдаленияПомеченных - Структура // Процедура СоздатьРеквизитХраненияНастроек(Форма) - + ИмяРеквизита = "ПараметрыУдаленияПомеченных"; ЗначенияСвойств = Новый Структура(ИмяРеквизита, Null); ЗаполнитьЗначенияСвойств(ЗначенияСвойств, Форма); @@ -354,7 +353,7 @@ Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); Форма.ПараметрыУдаленияПомеченных = Новый Структура; КонецЕсли; - + КонецПроцедуры // Удаляет отбор по полю ПометкаУдаления из сохраненных пользовательских настроек @@ -430,20 +429,22 @@ Возврат ЗначенияСсылочныхТипов; КонецФункции -Функция СсылкиНаУдаляемыеОбъектовВТабличныхЧастях(ОписаниеИсточника, ТабличныеЧасти, ИмяКоллекцииРеквизитов = "Реквизиты") +Функция СсылкиНаУдаляемыеОбъектовВТабличныхЧастях(ОписаниеИсточника, ТабличныеЧасти, + ИмяКоллекцииРеквизитов = "Реквизиты") ЗначенияСсылочныхТипов = НовыйСсылкиВОбъекте(); Для Каждого ТабличнаяЧасть Из ТабличныеЧасти Цикл - - Если НЕ ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ОписаниеИсточника.Источник, ТабличнаяЧасть.Имя) Тогда + + Если Не ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ОписаниеИсточника.Источник, + ТабличнаяЧасть.Имя) Тогда Продолжить; КонецЕсли; - + Для Каждого СтрокаТЧ Из ОписаниеИсточника.Источник[ТабличнаяЧасть.Имя] Цикл ОписаниеТабличнойЧасти = ОбщегоНазначения.СкопироватьРекурсивно(ОписаниеИсточника); ОписаниеТабличнойЧасти.Источник = СтрокаТЧ; ОписаниеТабличнойЧасти.Таблица = ОписаниеИсточника.Таблица + "." + ТабличнаяЧасть.Имя; - + ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу( СсылкиНаУдаляемыеОбъектыВРеквизитах(ОписаниеТабличнойЧасти, ТабличнаяЧасть[ИмяКоллекцииРеквизитов]), ЗначенияСсылочныхТипов); @@ -459,14 +460,13 @@ Для Каждого Запись Из ОписаниеИсточника.Источник Цикл ОписаниеЗаписи = ОбщегоНазначения.СкопироватьРекурсивно(ОписаниеИсточника); ОписаниеЗаписи.Источник = Запись; - - Для каждого УсловиеОтбора Из ОписаниеИсточника.УсловиеОтбора Цикл - ОписаниеЗаписи.УсловиеОтбора.Вставить(УсловиеОтбора.Ключ, Запись[УсловиеОтбора.Ключ]); + + Для Каждого УсловиеОтбора Из ОписаниеИсточника.УсловиеОтбора Цикл + ОписаниеЗаписи.УсловиеОтбора.Вставить(УсловиеОтбора.Ключ, Запись[УсловиеОтбора.Ключ]); КонецЦикла; - + ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу( - СсылкиНаУдаляемыеОбъектыВРеквизитах(ОписаниеЗаписи, Реквизиты), - ЗначенияСсылочныхТипов); + СсылкиНаУдаляемыеОбъектыВРеквизитах(ОписаниеЗаписи, Реквизиты), ЗначенияСсылочныхТипов); КонецЦикла; Возврат ЗначенияСсылочныхТипов; @@ -480,17 +480,17 @@ // Функция СформироватьРеквизитыРегистровБухгалтерииСКорреспонденцией(Знач Реквизиты) РеквизитыРегистраСКорреспонденцией = Новый Массив; - + Для Каждого Реквизит Из Реквизиты Цикл Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Реквизит, "Балансовый") - И (Реквизит.Балансовый) Тогда + И (Реквизит.Балансовый) Тогда РеквизитыРегистраСКорреспонденцией.Добавить(Новый Структура("Имя", Реквизит.Имя)); Иначе - РеквизитыРегистраСКорреспонденцией.Добавить(Новый Структура("Имя", Реквизит.Имя + "Дт")); - РеквизитыРегистраСКорреспонденцией.Добавить(Новый Структура("Имя", Реквизит.Имя + "Кт")); + РеквизитыРегистраСКорреспонденцией.Добавить(Новый Структура("Имя", Реквизит.Имя + "Дт")); + РеквизитыРегистраСКорреспонденцией.Добавить(Новый Структура("Имя", Реквизит.Имя + "Кт")); КонецЕсли; КонецЦикла; - + Возврат РеквизитыРегистраСКорреспонденцией; КонецФункции @@ -498,13 +498,13 @@ Функция СсылкаНаУдаляемыеОбъектыВОбъекте(Источник, МетаданныеИсточника) ЗначенияСсылочныхТипов = НовыйСсылкиВОбъекте(); - + Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "СтандартныеРеквизиты") Тогда ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу( СсылкиНаУдаляемыеОбъектыВРеквизитах(Источник, МетаданныеИсточника.СтандартныеРеквизиты), ЗначенияСсылочныхТипов); КонецЕсли; - + Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "РеквизитыАдресации") Тогда ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу( СсылкиНаУдаляемыеОбъектыВРеквизитах(Источник, МетаданныеИсточника.РеквизитыАдресации), @@ -513,8 +513,7 @@ Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "Реквизиты") Тогда ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу( - СсылкиНаУдаляемыеОбъектыВРеквизитах(Источник, МетаданныеИсточника.Реквизиты), - ЗначенияСсылочныхТипов); + СсылкиНаУдаляемыеОбъектыВРеквизитах(Источник, МетаданныеИсточника.Реквизиты), ЗначенияСсылочныхТипов); КонецЕсли; Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "ТабличныеЧасти") Тогда @@ -523,50 +522,47 @@ ЗначенияСсылочныхТипов); КонецЕсли; - Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника,"СтандартныеТабличныеЧасти") Тогда + Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "СтандартныеТабличныеЧасти") Тогда ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу( - СсылкиНаУдаляемыеОбъектовВТабличныхЧастях(Источник, МетаданныеИсточника.СтандартныеТабличныеЧасти, "СтандартныеРеквизиты"), - ЗначенияСсылочныхТипов); + СсылкиНаУдаляемыеОбъектовВТабличныхЧастях(Источник, МетаданныеИсточника.СтандартныеТабличныеЧасти, + "СтандартныеРеквизиты"), ЗначенияСсылочныхТипов); КонецЕсли; - + Возврат ЗначенияСсылочныхТипов; КонецФункции Функция СсылкиНаУдаляемыеОбъектыВНаборе(Источник, МетаданныеИсточника) ЗначенияСсылочныхТипов = НовыйСсылкиВОбъекте(); ЭтоРегистрБухгалтерии = ОбщегоНазначения.ЭтоРегистрБухгалтерии(МетаданныеИсточника); - + Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "Измерения") Тогда Если ОбщегоНазначения.ЭтоРегистрБухгалтерии(МетаданныеИсточника) И МетаданныеИсточника.Корреспонденция Тогда Реквизиты = СформироватьРеквизитыРегистровБухгалтерииСКорреспонденцией( МетаданныеИсточника.Измерения); - Иначе + Иначе Реквизиты = МетаданныеИсточника.Измерения; КонецЕсли; ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу( - СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, Реквизиты, ЭтоРегистрБухгалтерии), - ЗначенияСсылочныхТипов); + СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, Реквизиты, ЭтоРегистрБухгалтерии), ЗначенияСсылочныхТипов); КонецЕсли; Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "Ресурсы") Тогда Если ОбщегоНазначения.ЭтоРегистрБухгалтерии(МетаданныеИсточника) И МетаданныеИсточника.Корреспонденция Тогда Реквизиты = СформироватьРеквизитыРегистровБухгалтерииСКорреспонденцией( МетаданныеИсточника.Ресурсы); - Иначе + Иначе Реквизиты = МетаданныеИсточника.Ресурсы; КонецЕсли; ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу( - СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, Реквизиты, ЭтоРегистрБухгалтерии), - ЗначенияСсылочныхТипов); + СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, Реквизиты, ЭтоРегистрБухгалтерии), ЗначенияСсылочныхТипов); КонецЕсли; - - Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника,"СтандартныеРеквизиты") Тогда + + Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "СтандартныеРеквизиты") Тогда Если ЭтоРегистрБухгалтерии Тогда Реквизиты = СформироватьСтандартныеРеквизитыРегистраБухгалтерии(МетаданныеИсточника); Иначе Реквизиты = МетаданныеИсточника.СтандартныеРеквизиты; - КонецЕсли; + КонецЕсли; ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу( - СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, Реквизиты, ЭтоРегистрБухгалтерии), - ЗначенияСсылочныхТипов); + СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, Реквизиты, ЭтоРегистрБухгалтерии), ЗначенияСсылочныхТипов); КонецЕсли; Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "Реквизиты") Тогда @@ -574,7 +570,7 @@ СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, МетаданныеИсточника.Реквизиты, ЭтоРегистрБухгалтерии), ЗначенияСсылочныхТипов); КонецЕсли; - + Возврат ЗначенияСсылочныхТипов; КонецФункции @@ -586,46 +582,46 @@ // Функция СформироватьСтандартныеРеквизитыРегистраБухгалтерии(МетаданныеИсточника) СтандартныеРеквизиты = Новый Массив; - + СтандартныеРеквизиты.Добавить(Новый Структура("Имя", "Регистратор")); Если МетаданныеИсточника.Корреспонденция Тогда - СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СчетДт")); - СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СчетКт")); - Иначе - СтандартныеРеквизиты.Добавить(Новый Структура("Имя","Счет")); + СтандартныеРеквизиты.Добавить(Новый Структура("Имя", "СчетДт")); + СтандартныеРеквизиты.Добавить(Новый Структура("Имя", "СчетКт")); + Иначе + СтандартныеРеквизиты.Добавить(Новый Структура("Имя", "Счет")); КонецЕсли; - + Если МетаданныеИсточника.ПланСчетов.МаксКоличествоСубконто > 0 Тогда Если МетаданныеИсточника.Корреспонденция Тогда - СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СубконтоДт")); - СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СубконтоКт")); + СтандартныеРеквизиты.Добавить(Новый Структура("Имя", "СубконтоДт")); + СтандартныеРеквизиты.Добавить(Новый Структура("Имя", "СубконтоКт")); Иначе - СтандартныеРеквизиты.Добавить(Новый Структура("Имя","Субконто")); + СтандартныеРеквизиты.Добавить(Новый Структура("Имя", "Субконто")); КонецЕсли; КонецЕсли; - + Возврат СтандартныеРеквизиты; КонецФункции -Функция СоответствуетОтборуМетаданных( ОтборМетаданных, Элемент) - Возврат (НЕ ЗначениеЗаполнено(ОтборМетаданных) - ИЛИ ОтборМетаданных.Найти(Элемент.Метаданные().ПолноеИмя()) <> Неопределено); +Функция СоответствуетОтборуМетаданных(ОтборМетаданных, Элемент) + Возврат (Не ЗначениеЗаполнено(ОтборМетаданных) Или ОтборМетаданных.Найти(Элемент.Метаданные().ПолноеИмя()) + <> Неопределено); КонецФункции Функция ЭтоНезависимыйРегистрСведений(МетаданныеИсточника) Результат = Истина; - - Если НЕ ОбщегоНазначения.ЭтоРегистрСведений(МетаданныеИсточника) Тогда + + Если Не ОбщегоНазначения.ЭтоРегистрСведений(МетаданныеИсточника) Тогда Возврат Ложь; КонецЕсли; - - Для каждого СтандартныйРеквизит Из МетаданныеИсточника.СтандартныеРеквизиты Цикл + + Для Каждого СтандартныйРеквизит Из МетаданныеИсточника.СтандартныеРеквизиты Цикл Если СтандартныйРеквизит.Имя = "Регистратор" Тогда Результат = Ложь; Прервать; КонецЕсли; КонецЦикла; - + Возврат Результат; КонецФункции @@ -635,7 +631,7 @@ Таблица.Колонки.Добавить("Таблица", Новый ОписаниеТипов("Строка")); Таблица.Колонки.Добавить("Поле", Новый ОписаниеТипов("Строка")); Таблица.Колонки.Добавить("УсловиеОтбора", Новый ОписаниеТипов("Соответствие")); - + Возврат Таблица; КонецФункции @@ -658,11 +654,11 @@ Описание.Вставить("Источник", Источник); Описание.Вставить("Таблица", МетаданныеИсточника.ПолноеИмя()); Описание.Вставить("УсловиеОтбора", Новый Соответствие); - Для каждого Измерение Из МетаданныеИсточника.Измерения Цикл + Для Каждого Измерение Из МетаданныеИсточника.Измерения Цикл Описание.УсловиеОтбора.Вставить(Измерение.Имя); КонецЦикла; - - Для каждого Реквизит Из МетаданныеИсточника.СтандартныеРеквизиты Цикл + + Для Каждого Реквизит Из МетаданныеИсточника.СтандартныеРеквизиты Цикл Если СтрСравнить(Реквизит.Имя, "Период") Тогда Описание.УсловиеОтбора.Вставить(Реквизит.Имя); Прервать; @@ -673,47 +669,47 @@ КонецФункции Функция СсылкиДобавленныеПриИзмененииОбъекта(ОписаниеСсылок, СсылкиПометкиУдаления) - + Результат = Новый ТаблицаЗначений; Результат.Колонки.Добавить("Ссылка"); Результат.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); - + РазделительЗапросовПакета = Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС; - + ШаблонЗапроса = " - |ВЫБРАТЬ - | &ЗначениеСсылки КАК Ссылка, - | ПРЕДСТАВЛЕНИЕ(&ЗначениеСсылки) КАК Представление - |ГДЕ - | НЕ ИСТИНА В ( - | ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА - | ИЗ - | #ИмяТаблицы КАК Таблица - | ГДЕ - | &УсловияОтбораСсылки)"; - + |ВЫБРАТЬ + | &ЗначениеСсылки КАК Ссылка, + | ПРЕДСТАВЛЕНИЕ(&ЗначениеСсылки) КАК Представление + |ГДЕ + | НЕ ИСТИНА В ( + | ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА + | ИЗ + | #ИмяТаблицы КАК Таблица + | ГДЕ + | &УсловияОтбораСсылки)"; + СчПараметрыСсылок = 0; СчПараметрыОтбора = 0; - + Запрос = Новый Запрос; - Для каждого ОбъектЗначениеПометки Из СсылкиПометкиУдаления Цикл - - Если НЕ ОбъектЗначениеПометки.Значение Тогда + Для Каждого ОбъектЗначениеПометки Из СсылкиПометкиУдаления Цикл + + Если Не ОбъектЗначениеПометки.Значение Тогда Продолжить; КонецЕсли; - + ЗначениеСсылки = ОбъектЗначениеПометки.Ключ; - + ОписанияСсылки = ОписаниеСсылок.НайтиСтроки(Новый Структура("Ссылка", ЗначениеСсылки)); - Для каждого УдаляемаяСсылка Из ОписанияСсылки Цикл + Для Каждого УдаляемаяСсылка Из ОписанияСсылки Цикл ПараметрСсылки = "ЗначениеСсылки" + XMLСтрока(СчПараметрыСсылок); ТекстЗапроса = СтрЗаменить(ШаблонЗапроса, "&ЗначениеСсылки", "&" + ПараметрСсылки); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяТаблицы", УдаляемаяСсылка.Таблица); Запрос.Параметры.Вставить(ПараметрСсылки, ЗначениеСсылки); - + ТекстУсловия= Новый Массив; - Для каждого Условие Из УдаляемаяСсылка.УсловиеОтбора Цикл + Для Каждого Условие Из УдаляемаяСсылка.УсловиеОтбора Цикл ТекстУсловия.Добавить("Таблица." + Условие.Ключ + " = &Параметр" + СчПараметрыОтбора); Запрос.Параметры.Вставить("Параметр" + XMLСтрока(СчПараметрыОтбора), Условие.Значение); СчПараметрыОтбора= СчПараметрыОтбора + 1; @@ -721,16 +717,14 @@ ТекстУсловия.Добавить("Таблица." + УдаляемаяСсылка.Поле + " = &" + ПараметрСсылки); ТекстОтбора = СтрСоединить(ТекстУсловия, Символы.ПС + "И" + Символы.НПП); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловияОтбораСсылки", ТекстОтбора); - - Запрос.Текст = Запрос.Текст - + ?(НЕ ПустаяСтрока(Запрос.Текст), РазделительЗапросовПакета, "") - + ТекстЗапроса; + + Запрос.Текст = Запрос.Текст + ?(Не ПустаяСтрока(Запрос.Текст), РазделительЗапросовПакета, "") + ТекстЗапроса; СчПараметрыСсылок = СчПараметрыСсылок + 1; КонецЦикла; - + КонецЦикла; - - Если НЕ ПустаяСтрока(Запрос.Текст) Тогда + + Если Не ПустаяСтрока(Запрос.Текст) Тогда РезультатЗапроса = Запрос.Выполнить(); Результат = РезультатЗапроса.Выгрузить(); КонецЕсли; @@ -739,21 +733,21 @@ КонецФункции Функция ЗаблокированныеУдаляемыеСсылки(УдаляемыеСсылки) - + ВремяСнятияБлокировки = ТекущаяДатаСеанса() - УдалениеПомеченныхОбъектовСлужебный.ВремяЖизниБлокировки(); Запрос = Новый Запрос("ВЫБРАТЬ - | УдаляемыеОбъекты.Объект КАК Ссылка - |ИЗ - | РегистрСведений.УдаляемыеОбъекты КАК УдаляемыеОбъекты - |ГДЕ - | УдаляемыеОбъекты.Объект В(&УдаляемыеОбъекты) - | И УдаляемыеОбъекты.Период >= &ВремяСнятияБлокировки"); - + | УдаляемыеОбъекты.Объект КАК Ссылка + |ИЗ + | РегистрСведений.УдаляемыеОбъекты КАК УдаляемыеОбъекты + |ГДЕ + | УдаляемыеОбъекты.Объект В(&УдаляемыеОбъекты) + | И УдаляемыеОбъекты.Период >= &ВремяСнятияБлокировки"); + Запрос.УстановитьПараметр("УдаляемыеОбъекты", УдаляемыеСсылки); Запрос.УстановитьПараметр("ВремяСнятияБлокировки", ВремяСнятияБлокировки); - + Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ССылка"); - + КонецФункции #КонецОбласти diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl index e656a3067..5ad624283 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl @@ -18,7 +18,7 @@ Обработчик.НачальноеЗаполнение = Истина; Обработчик.Процедура = "УдалениеПомеченныхОбъектовСлужебный.ВключитьУдалениеПомеченныхОбъектов"; Обработчик.РежимВыполнения = "Оперативно"; - + Обработчик = Обработчики.Добавить(); Обработчик.Версия = "3.1.6.79"; Обработчик.Процедура = "УдалениеПомеченныхОбъектовСлужебный.УстановитьРасписаниеУдаленияПомеченных"; @@ -38,26 +38,26 @@ // См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт - + ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов.Имя); ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов.Имя); - + КонецПроцедуры // См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт - + СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов.ИмяМетода); СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов.ИмяМетода); - + КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт - + ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.УдаляемыеОбъекты); ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.НеудаленныеОбъекты); - + КонецПроцедуры // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. @@ -133,28 +133,27 @@ // ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт - Если НЕ Пользователи.ЭтоПолноправныйПользователь() Тогда + Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда Возврат; КонецЕсли; - + Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ - | ISNULL(КОЛИЧЕСТВО(НеудаленныеОбъекты.Объект),0) КАК Всего - |ИЗ - | РегистрСведений.НеудаленныеОбъекты КАК НеудаленныеОбъекты - |ГДЕ - | НеудаленныеОбъекты.КоличествоПопыток > 3"; - + "ВЫБРАТЬ + | ISNULL(КОЛИЧЕСТВО(НеудаленныеОбъекты.Объект),0) КАК Всего + |ИЗ + | РегистрСведений.НеудаленныеОбъекты КАК НеудаленныеОбъекты + |ГДЕ + | НеудаленныеОбъекты.КоличествоПопыток > 3"; + РезультатЗапроса = Запрос.Выполнить(); КоличествоНеудаленныхОбъектов = РезультатЗапроса.Выбрать(); КоличествоНеудаленныхОбъектов.Следующий(); - + МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер"); - + Подсистема = Метаданные.Подсистемы.Найти("Администрирование"); - Если Подсистема = Неопределено - Или Не ПравоДоступа("Просмотр", Подсистема) + Если Подсистема = Неопределено Или Не ПравоДоступа("Просмотр", Подсистема) Или Не ОбщегоНазначения.ОбъектМетаданныхДоступенПоФункциональнымОпциям(Подсистема) Тогда Разделы = МодульТекущиеДелаСервер.РазделыДляОбъекта("Обработка.УдалениеПомеченных"); Иначе @@ -163,8 +162,8 @@ КонецЕсли; ИдентификаторЗадания = "НеудаленныеОбъекты"; - Для каждого Раздел Из Разделы Цикл - + Для Каждого Раздел Из Разделы Цикл + Дело = ТекущиеДела.Добавить(); Дело.Идентификатор = ИдентификаторЗадания; Дело.ЕстьДела = КоличествоНеудаленныхОбъектов.Всего > 0; @@ -172,17 +171,16 @@ Дело.Количество = КоличествоНеудаленныхОбъектов.Всего; Дело.Форма = "РегистрСведений.НеудаленныеОбъекты.ФормаСписка"; Дело.Владелец = Раздел; - + КонецЦикла; - + КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. Процедура ПриДобавленииОбработчиковУстановкиПараметровСеанса(Обработчики) Экспорт - - Обработчики.Вставить("ВыполняетсяУдалениеОбъектов", - "УдалениеПомеченныхОбъектовСлужебный.УстановкаПараметровСеанса"); - + + Обработчики.Вставить("ВыполняетсяУдалениеОбъектов", "УдалениеПомеченныхОбъектовСлужебный.УстановкаПараметровСеанса"); + КонецПроцедуры // Параметры: @@ -207,10 +205,10 @@ // См. ИнтерфейсODataПереопределяемый.ПриЗаполненииЗависимыхТаблицДляВыгрузкиЗагрузкиOData Процедура ПриЗаполненииЗависимыхТаблицДляВыгрузкиЗагрузкиOData(Таблицы) Экспорт - + Таблицы.Добавить(Метаданные.РегистрыСведений.НеудаленныеОбъекты.ПолноеИмя()); Таблицы.Добавить(Метаданные.РегистрыСведений.УдаляемыеОбъекты.ПолноеИмя()); - + КонецПроцедуры #КонецОбласти @@ -244,7 +242,7 @@ #КонецОбласти Функция ДопустимыеРежимыУдаления() Экспорт - + ДопустимыеРежимы = Новый Массив; ДопустимыеРежимы.Добавить("Стандартный"); ДопустимыеРежимы.Добавить("Монопольный"); @@ -258,26 +256,26 @@ КонецПроцедуры Процедура УстановитьРасписаниеУдаленияПомеченных() Экспорт - + Если ОбщегоНазначения.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - + Возврат; + КонецЕсли; + Расписание = Новый РасписаниеРегламентногоЗадания; Расписание.ПериодПовтораДней = 1; Расписание.ПериодНедель = 1; Расписание.ВремяНачала = '00010101040000'; // в 04:00 Расписание.ВремяКонца = '00010101060000'; // в 06:00 Расписание.ВремяЗавершения = '00010101060000'; // 06:00 - + ПараметрыЗадания = Новый Структура; ПараметрыЗадания.Вставить("Расписание", Расписание); ПараметрыЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", 10); ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); - - РегламентныеЗаданияСервер.УстановитьПараметрыРегламентногоЗадания(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов, - ПараметрыЗадания); - + + РегламентныеЗаданияСервер.УстановитьПараметрыРегламентногоЗадания( + Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов, ПараметрыЗадания); + КонецПроцедуры // Точка входа регламентного задания. @@ -285,7 +283,7 @@ Процедура УдалениеПомеченныхПоРасписанию() Экспорт ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов); - УдаляемыеОбъекты = УдалениеПомеченныхОбъектов.ПомеченныеНаУдаление(,Истина); + УдаляемыеОбъекты = УдалениеПомеченныхОбъектов.ПомеченныеНаУдаление(, Истина); УдалитьПомеченныеОбъектыСлужебный(УдаляемыеОбъекты, "Стандартный",, Истина); КонецПроцедуры @@ -299,8 +297,8 @@ // Булево // Функция ЭтоПростойТип(Тип) Экспорт - Возврат (Тип = Неопределено Или Тип = Тип("Строка") Или Тип = Тип("Число") Или Тип = Тип("Булево") - Или Тип = Тип("Дата")); + Возврат (Тип = Неопределено Или Тип = Тип("Строка") Или Тип = Тип("Число") Или Тип = Тип("Булево") Или Тип = Тип( + "Дата")); КонецФункции // Формирует список объектов метаданных, в которых разрешено наличие битых ссылок. @@ -318,73 +316,75 @@ // в случае аварийного завершения сеанса удаления помеченных объектов. // Процедура КонтрольУдаленияПомеченныхОбъектов() Экспорт - ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов); + ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания( + Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов); УстановитьПривилегированныйРежим(Истина); - Если НЕ ПроверятьИспользованиеУдаляемыхОбъектов() Тогда + Если Не ПроверятьИспользованиеУдаляемыхОбъектов() Тогда Возврат; КонецЕсли; ВремяЖизниБлокировки = ВремяЖизниБлокировки(); ВремяСнятияБлокировки = ТекущаяДатаСеанса() - ВремяЖизниБлокировки; - + ТекстЗапроса = - "ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1000 - | УдаляемыеОбъекты.ИдентификаторСеанса КАК ИдентификаторСеанса, - | УдаляемыеОбъекты.Период КАК ВремяБлокировки - |ИЗ - | РегистрСведений.УдаляемыеОбъекты КАК УдаляемыеОбъекты - |ГДЕ - | УдаляемыеОбъекты.Период <= &ВремяСнятияБлокировки - | И &Условие - | - |УПОРЯДОЧИТЬ ПО - | ВремяБлокировки"; + "ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1000 + | УдаляемыеОбъекты.ИдентификаторСеанса КАК ИдентификаторСеанса, + | УдаляемыеОбъекты.Период КАК ВремяБлокировки + |ИЗ + | РегистрСведений.УдаляемыеОбъекты КАК УдаляемыеОбъекты + |ГДЕ + | УдаляемыеОбъекты.Период <= &ВремяСнятияБлокировки + | И &Условие + | + |УПОРЯДОЧИТЬ ПО + | ВремяБлокировки"; УсловиеПоВремени = "УдаляемыеОбъекты.Период > &ВремяБлокировки"; ТекстЗапросаСУсловием = СтрЗаменить(ТекстЗапроса, "&Условие", УсловиеПоВремени); - + Запрос = Новый Запрос(СтрЗаменить(ТекстЗапроса, "&Условие", "ИСТИНА")); Запрос.УстановитьПараметр("ВремяСнятияБлокировки", ВремяСнятияБлокировки); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); - + ОбработанныеСеансы = Новый Соответствие; Пока РезультатЗапроса.Количество() > 0 Цикл - + Для Каждого ВыборкаДетальныеЗаписи Из РезультатЗапроса Цикл СеансУдаленияОбработан = ОбработанныеСеансы[ВыборкаДетальныеЗаписи.ИдентификаторСеанса]; Если СеансУдаленияОбработан = Истина Тогда Продолжить; КонецЕсли; - + Если СеансУдаленияОбработан = Неопределено Тогда - ЕстьСеансУдаления = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ВыборкаДетальныеЗаписи.ИдентификаторСеанса) <> Неопределено; + ЕстьСеансУдаления = ФоновыеЗадания.НайтиПоУникальномуИдентификатору( + ВыборкаДетальныеЗаписи.ИдентификаторСеанса) <> Неопределено; ОбработанныеСеансы[ВыборкаДетальныеЗаписи.ИдентификаторСеанса] = Не ЕстьСеансУдаления; Иначе ЕстьСеансУдаления = Истина; КонецЕсли; Попытка // @skip-check query-in-loop - Порционная обработка больших объемов данных. - СнятьБлокировкуИспользованияУдаляемыхОбъектов(ВыборкаДетальныеЗаписи.ИдентификаторСеанса, - ?(ЕстьСеансУдаления, ВыборкаДетальныеЗаписи.ВремяБлокировки, Неопределено)); + СнятьБлокировкуИспользованияУдаляемыхОбъектов(ВыборкаДетальныеЗаписи.ИдентификаторСеанса, ?( + ЕстьСеансУдаления, ВыборкаДетальныеЗаписи.ВремяБлокировки, Неопределено)); Исключение ЗаписьЖурналаРегистрации( НСтр("ru = 'Удаление помеченных'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , - НСтр("ru='Не удалось отключить проверку удаляемых объектов по причине:'") - + Символы.ПС + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, НСтр( + "ru='Не удалось отключить проверку удаляемых объектов по причине:'") + Символы.ПС + + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЦикла; - + ОбработанныеСеансы = Новый Соответствие; Запрос.Текст = ТекстЗапросаСУсловием; Запрос.УстановитьПараметр("ВремяБлокировки", ВыборкаДетальныеЗаписи.ВремяБлокировки); Запрос.УстановитьПараметр("ВремяСнятияБлокировки", ВремяСнятияБлокировки); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); // @skip-check query-in-loop - Порционная обработка больших объемов данных. - + КонецЦикла; - ПопробоватьОтключитьКонтрольУдаленияПомеченныхОбъектов(); - + ПопробоватьОтключитьКонтрольУдаленияПомеченныхОбъектов(); + КонецПроцедуры // Возвращает максимальное количество секунд, в течение которого должен быть установлен @@ -394,7 +394,7 @@ // Число // Функция ВремяЖизниБлокировки() Экспорт - + Возврат 3 * 60 * 60; КонецФункции @@ -409,10 +409,10 @@ // Строка // Функция КлючНастроек(ИмяФормы, ИмяСписка) Экспорт - + Ключ = "ПоказыватьПомеченныеНаУдаление/" + ИмяФормы + "/" + ИмяСписка; Возврат Ключ; - + КонецФункции // Параметры: @@ -429,29 +429,29 @@ // * Разделенный - Булево - заполняется только при работе в модели сервиса. // Функция ИнформацияОТипе(ТипОбъекта, ДополняемаяИнформацияОТипах = Неопределено) Экспорт - + Если ДополняемаяИнформацияОТипах = Неопределено Тогда - ДополняемаяИнформацияОТипах = Новый Соответствие; + ДополняемаяИнформацияОТипах = Новый Соответствие; КонецЕсли; - + Информация = ДополняемаяИнформацияОТипах[ТипОбъекта]; Если Информация <> Неопределено Тогда Возврат Информация; КонецЕсли; - + Информация = Новый Структура("ПолноеИмя, ПредставлениеЭлемента, ПредставлениеСписка, - |Вид, Ссылочный, Технический, Разделенный"); + |Вид, Ссылочный, Технический, Разделенный"); ДополняемаяИнформацияОТипах[ТипОбъекта] = Информация; ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипОбъекта); - + Информация.ПолноеИмя = ВРег(ОбъектМетаданных.ПолноеИмя()); Информация.Вид = Лев(Информация.ПолноеИмя, СтрНайти(Информация.ПолноеИмя, ".") - 1); Информация.ПредставлениеЭлемента = ОбщегоНазначения.ПредставлениеОбъекта(ОбъектМетаданных); Информация.ПредставлениеСписка = ОбщегоНазначения.ПредставлениеСписка(ОбъектМетаданных); Информация.Ссылочный = ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(ОбъектМетаданных); Информация.Технический = ЭтоТехническийОбъект(Информация.ПолноеИмя); - + Если ОбщегоНазначения.РазделениеВключено() Тогда Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда @@ -477,29 +477,29 @@ // Значение - см. ИнформацияОТипе // Функция ИнформацияОТипах(Объекты, ДополняемаяИнформацияОТипах = Неопределено) Экспорт - - Результат = ?(ТипЗнч(ДополняемаяИнформацияОТипах) = Тип("Соответствие"), ДополняемаяИнформацияОТипах, + + Результат = ?(ТипЗнч(ДополняемаяИнформацияОТипах) = Тип("Соответствие"), ДополняемаяИнформацияОТипах, Новый Соответствие); - - Для каждого ОбъектСсылка Из Объекты Цикл + + Для Каждого ОбъектСсылка Из Объекты Цикл ТипОбъекта = ТипЗнч(ОбъектСсылка); Если Результат[ТипОбъекта] = Неопределено Тогда Результат[ТипОбъекта] = ИнформацияОТипе(ТипОбъекта); КонецЕсли; КонецЦикла; Возврат Результат; - + КонецФункции Функция ОбъединениеТаблиц(Таблица1, Таблица2, СохранятьПорядок = Ложь) Экспорт - Если СохранятьПорядок ИЛИ Таблица1.Количество() >= Таблица2.Количество() Тогда + Если СохранятьПорядок Или Таблица1.Количество() >= Таблица2.Количество() Тогда Приемник = Таблица1.Скопировать(); Источник = Таблица2; Иначе Приемник = Таблица2.Скопировать(); Источник = Таблица1; КонецЕсли; - + Для Каждого Элемент Из Источник Цикл ЗаполнитьЗначенияСвойств(Приемник.Добавить(), Элемент); КонецЦикла; @@ -517,7 +517,7 @@ // Функция ЧислоДополнительныхРеквизитов(Настройки) Экспорт Результат = 0; - ПромежуточнаяТаблица = Настройки.Скопировать( , "Метаданные,Реквизит"); + ПромежуточнаяТаблица = Настройки.Скопировать(, "Метаданные,Реквизит"); ПромежуточнаяТаблица.Колонки.Добавить("Счетчик", Новый ОписаниеТипов("Число")); ПромежуточнаяТаблица.ЗаполнитьЗначения(1, "Счетчик"); ПромежуточнаяТаблица.Свернуть("Метаданные", "Счетчик"); @@ -545,19 +545,18 @@ // см. РезультатОбработкиУдаляемыхОбъектов // Функция ВыполнитьОбработкуПричинНеудаления(ТаблицаДействий) Экспорт - + Результат = РезультатОбработкиУдаляемыхОбъектов(); ПарыЗамен = Новый Соответствие; ОчередьПометкиКУдалению = Новый Массив; Для Каждого Действие Из ТаблицаДействий Цикл - - Если Действие.Действие <> "ЗаменитьСсылку" - И (Не ЗначениеЗаполнено(Действие.Источник.ВерсияДанных) - ИЛИ Не ЗначениеЗаполнено(Действие.ОбнаруженныйСсылка) - ИЛИ Не ЗначениеЗаполнено(Значение(Действие.ОбнаруженныйСсылка, "ВерсияДанных"))) Тогда - + + Если Действие.Действие <> "ЗаменитьСсылку" И (Не ЗначениеЗаполнено(Действие.Источник.ВерсияДанных) + Или Не ЗначениеЗаполнено(Действие.ОбнаруженныйСсылка) Или Не ЗначениеЗаполнено(Значение( + Действие.ОбнаруженныйСсылка, "ВерсияДанных"))) Тогда + Продолжить; КонецЕсли; @@ -592,7 +591,7 @@ КонецЕсли; Возврат Результат; - + КонецФункции // Удаляет отмеченные на форме Обработки.УдалениеПомеченныхОбъектов.ОсновнаяФорма объекты @@ -619,22 +618,22 @@ РезультатПредыдущегоШага, ИдентификаторЗадания) Экспорт Если ТипЗнч(ИсточникУдаляемыхОбъектов) = Тип("СписокЗначений") Тогда - ИсточникУдаляемыхОбъектов = ДеревоПомеченныхНаУдаление(ИсточникУдаляемыхОбъектов.ВыгрузитьЗначения(), + ИсточникУдаляемыхОбъектов = ДеревоПомеченныхНаУдаление(ИсточникУдаляемыхОбъектов.ВыгрузитьЗначения(), НастройкиДополнительныхРеквизитов, Новый Массив); ИначеЕсли ИсточникУдаляемыхОбъектов = Неопределено Тогда - ИсточникУдаляемыхОбъектов = ДеревоПомеченныхНаУдаление(УдалениеПомеченныхОбъектов.ПомеченныеНаУдаление(, Истина), + ИсточникУдаляемыхОбъектов = ДеревоПомеченныхНаУдаление(УдалениеПомеченныхОбъектов.ПомеченныеНаУдаление(, Истина), НастройкиДополнительныхРеквизитов, Новый Массив); КонецЕсли; - + РезультатПредыдущегоШага = РезультатШагаДополнительнойОбработки(РезультатПредыдущегоШага); УдаляемыеОбъекты = УдаляемыеОбъектыИзРезультатаДополнительнойОбработки(РезультатПредыдущегоШага); - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(УдаляемыеОбъекты, - УдаляемыеОбъектыИзДанныхФормы(ИсточникУдаляемыхОбъектов, РезультатПредыдущегоШага)); - - РезультатУдаления = УдалитьПомеченныеОбъектыСлужебный(УдаляемыеОбъекты, РежимУдаления, ИдентификаторЗадания); - Результат = ДанныеФормыИзРезультатаУдаления(ИсточникУдаляемыхОбъектов, РезультатУдаления, + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(УдаляемыеОбъекты, УдаляемыеОбъектыИзДанныхФормы( + ИсточникУдаляемыхОбъектов, РезультатПредыдущегоШага)); + + РезультатУдаления = УдалитьПомеченныеОбъектыСлужебный(УдаляемыеОбъекты, РежимУдаления, ИдентификаторЗадания); + Результат = ДанныеФормыИзРезультатаУдаления(ИсточникУдаляемыхОбъектов, РезультатУдаления, НастройкиДополнительныхРеквизитов, РезультатПредыдущегоШага); - + Возврат Результат; КонецФункции @@ -645,16 +644,16 @@ // Не используется для неразделенного сеанса в модели сервиса. // Процедура УстановитьБлокировкуИспользованияУдаляемыхОбъектов(Пакет, ИдентификаторСеанса) Экспорт - + ЭтоМодельСервиса = ОбщегоНазначения.РазделениеВключено(); ВОбластиДанных = ?(ЭтоМодельСервиса, ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(), Ложь); - Если ЭтоМодельСервиса И НЕ ВОбластиДанных Тогда + Если ЭтоМодельСервиса И Не ВОбластиДанных Тогда Возврат; КонецЕсли; - + НаборЗаписей = РегистрыСведений.УдаляемыеОбъекты.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ИдентификаторСеанса.Установить(ИдентификаторСеанса); - + ВремяНачалаУдаления = ТекущаяДатаСеанса(); Для Каждого Элемент Из Пакет Цикл Запись = НаборЗаписей.Добавить(); @@ -662,23 +661,23 @@ Запись.Объект = Элемент.УдаляемыйСсылка; Запись.Период = ВремяНачалаУдаления; КонецЦикла; - + НачатьТранзакцию(); Попытка - Блокировка = Новый БлокировкаДанных(); + Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.УдаляемыеОбъекты"); ЭлементБлокировки.УстановитьЗначение("ИдентификаторСеанса", ИдентификаторСеанса); Блокировка.Заблокировать(); - + Константы.ПроверятьИспользованиеУдаляемыхОбъектов.Установить(Истина); НаборЗаписей.Записать(); - + Фильтр = Новый Структура("Метаданные", Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов); УстановитьПривилегированныйРежим(Истина); ЗаданиеПроверки = РегламентныеЗаданияСервер.НайтиЗадания(Фильтр); Для Каждого Задание Из ЗаданиеПроверки Цикл - РегламентныеЗаданияСервер.ИзменитьЗадание(Задание.УникальныйИдентификатор, - Новый Структура("Использование", Истина)); + РегламентныеЗаданияСервер.ИзменитьЗадание(Задание.УникальныйИдентификатор, Новый Структура("Использование", + Истина)); КонецЦикла; ЗафиксироватьТранзакцию(); Исключение @@ -696,37 +695,38 @@ // ВремяСнятияБлокировки - Дата // Процедура СнятьБлокировкуИспользованияУдаляемыхОбъектов(ИдентификаторСеанса, ВремяСнятияБлокировки = Неопределено) Экспорт - Если ОбщегоНазначения.РазделениеВключено() И НЕ ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Если ОбщегоНазначения.РазделениеВключено() И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Возврат; КонецЕсли; - + НаборЗаписей = РегистрыСведений.УдаляемыеОбъекты.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ИдентификаторСеанса.Установить(ИдентификаторСеанса); Если ВремяСнятияБлокировки <> Неопределено Тогда НаборЗаписей.Отбор.Период.Установить(ВремяСнятияБлокировки); КонецЕсли; НаборЗаписей.Записать(); - + Если ВремяСнятияБлокировки = Неопределено Тогда - ПопробоватьОтключитьКонтрольУдаленияПомеченныхОбъектов(); + ПопробоватьОтключитьКонтрольУдаленияПомеченныхОбъектов(); КонецЕсли; - + КонецПроцедуры Процедура ПопробоватьОтключитьКонтрольУдаленияПомеченныхОбъектов() НачатьТранзакцию(); Попытка - Блокировка = Новый БлокировкаДанных(); + Блокировка = Новый БлокировкаДанных; Блокировка.Добавить("Константа.ПроверятьИспользованиеУдаляемыхОбъектов"); Блокировка.Заблокировать(); - + Если Константы.ПроверятьИспользованиеУдаляемыхОбъектов.Получить() Тогда Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1 Таб.ИдентификаторСеанса ИЗ РегистрСведений.УдаляемыеОбъекты КАК Таб"); Если Запрос.Выполнить().Пустой() Тогда Константы.ПроверятьИспользованиеУдаляемыхОбъектов.Установить(Ложь); - - Фильтр = Новый Структура("Метаданные", Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов); + + Фильтр = Новый Структура("Метаданные", + Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов); УстановитьПривилегированныйРежим(Истина); ЗаданиеПроверки = РегламентныеЗаданияСервер.НайтиЗадания(Фильтр); Для Каждого Задание Из ЗаданиеПроверки Цикл @@ -774,42 +774,42 @@ Результат.Колонки.Добавить("Ссылка"); Результат.Колонки.Добавить("НовоеЗначениеПометкиУдаления"); ИтоговоеЗначениеПометкиУдаления = Ложь; - + ЗначенияПометкиУдаления = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Ссылки, "ПометкаУдаления"); - + КоличествоНепомеченныхНаУдаление = 0; - Для каждого СсылкаЗначениеРеквизита Из ЗначенияПометкиУдаления Цикл + Для Каждого СсылкаЗначениеРеквизита Из ЗначенияПометкиУдаления Цикл Если СсылкаЗначениеРеквизита.Значение = Ложь Тогда КоличествоНепомеченныхНаУдаление = КоличествоНепомеченныхНаУдаление + 1; КонецЕсли; КонецЦикла; - + Если КоличествоНепомеченныхНаУдаление = ЗначенияПометкиУдаления.Количество() Тогда ИтоговоеЗначениеПометкиУдаления = Истина; КонецЕсли; - + НачатьТранзакцию(); Попытка - - Для каждого СсылкаЗначениеРеквизита Из ЗначенияПометкиУдаления Цикл - + + Для Каждого СсылкаЗначениеРеквизита Из ЗначенияПометкиУдаления Цикл + Если СсылкаЗначениеРеквизита.Значение <> ИтоговоеЗначениеПометкиУдаления Тогда СтрокаРезультата = Результат.Добавить(); СтрокаРезультата.Ссылка = СсылкаЗначениеРеквизита.Ключ; - + Объект = СсылкаЗначениеРеквизита.Ключ.ПолучитьОбъект(); Объект.УстановитьПометкуУдаления(ИтоговоеЗначениеПометкиУдаления); СтрокаРезультата.НовоеЗначениеПометкиУдаления = ИтоговоеЗначениеПометкиУдаления; КонецЕсли; - + КонецЦикла; ЗафиксироватьТранзакцию(); - + Исключение ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; - + Возврат Результат; КонецФункции @@ -831,7 +831,7 @@ ДеревоЗначений = НовоеДеревоУдаляемыхОбъектов(ЧислоДополнительныхРеквизитов(Настройки)); УзлыПервогоУровня = Новый Соответствие; - + ИнформацияОТипах = ИнформацияОТипах(УдаляемыеОбъекты); Для Каждого УдаляемыйСсылка Из УдаляемыеОбъекты Цикл ТипУдаляемогоОбъекта = ТипЗнч(УдаляемыйСсылка); @@ -962,11 +962,11 @@ ОбъектыСОшибками = Новый Массив; Для Каждого Элемент Из ОчередьПометкиКУдалению Цикл - + Описание = Результат.Добавить(); Описание.УдаляемыйСсылка = Элемент; Описание.ТребуетсяУдаление = Истина; - + НачатьТранзакцию(); Попытка Блокировка = Новый БлокировкаДанных; @@ -984,28 +984,27 @@ Ошибка = ИнформацияОбОшибке(); Описание.ТребуетсяУдаление = Ложь; Описание.ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(Ошибка); - + ПредставленияОшибок[Элемент] = ОбработкаОшибок.ПодробноеПредставлениеОшибки(Ошибка); ОбъектыСОшибками.Добавить(Элемент); КонецПопытки; - + КонецЦикла; - + Если ПредставленияОшибок.Количество() > 0 Тогда - + ТекстОшибки = Новый Массив; ПредставленияОбъектов = ОбщегоНазначения.ПредметыСтрокой(ОбъектыСОшибками); - Для каждого Объект Из ОбъектыСОшибками Цикл + Для Каждого Объект Из ОбъектыСОшибками Цикл ТекстОшибки.Добавить(ПредставленияОбъектов[Объект] + ":" + Символы.ПС + ПредставленияОшибок[Объект]); КонецЦикла; ЗаписьЖурналаРегистрации( - НСтр("ru = 'Удаление помеченных'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , - НСтр("ru='Не удалось установить пометку удаления для объектов:'") + Символы.ПС - + СтрСоединить(ТекстОшибки, Символы.ПС + Символы.ПС)); - + НСтр("ru = 'Удаление помеченных'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, + ,, НСтр("ru='Не удалось установить пометку удаления для объектов:'") + Символы.ПС + СтрСоединить( + ТекстОшибки, Символы.ПС + Символы.ПС)); + КонецЕсли; - + Возврат Результат; КонецФункции @@ -1017,40 +1016,40 @@ // ОбменДанными.Загрузка = Истина не устанавливается, т.к. необходимо выполнение // при загрузке из внешних источников - + Если МонопольныйРежим() Тогда Возврат; КонецЕсли; - - Если Источник.ДополнительныеСвойства.Свойство("НеВыполнятьКонтрольУдаляемых") - ИЛИ ПараметрыСеанса.ВыполняетсяУдалениеОбъектов Тогда + + Если Источник.ДополнительныеСвойства.Свойство("НеВыполнятьКонтрольУдаляемых") + Или ПараметрыСеанса.ВыполняетсяУдалениеОбъектов Тогда Возврат; КонецЕсли; - + Если ОбщегоНазначения.ЭтоКонстанта(Источник.Метаданные()) Тогда ТипЗначений = ТипЗнч(Источник.Значение); - - Если НЕ ОбщегоНазначения.ЭтоСсылка(ТипЗначений) Тогда + + Если Не ОбщегоНазначения.ЭтоСсылка(ТипЗначений) Тогда Возврат; КонецЕсли; КонецЕсли; - + УстановитьПривилегированныйРежим(Истина); - + Если Не ПроверятьИспользованиеУдаляемыхОбъектов() Тогда Возврат; КонецЕсли; - + Если ИсключенияПоискаСсылокРазрешающихУдаление().Найти(Источник.Метаданные()) <> Неопределено Тогда Возврат; КонецЕсли; - + ТипИсточника = ТипЗнч(Источник); - Если ТипИсточника = Тип("РегистрСведенийНаборЗаписей.УдаляемыеОбъекты") - Или ТипИсточника = Тип("РегистрСведенийНаборЗаписей.НеудаленныеОбъекты") Тогда + Если ТипИсточника = Тип("РегистрСведенийНаборЗаписей.УдаляемыеОбъекты") Или ТипИсточника = Тип( + "РегистрСведенийНаборЗаписей.НеудаленныеОбъекты") Тогда Возврат; КонецЕсли; - + СсылкиНаУдаляемыеОбъекты = Новый Массив; Попытка СсылкиНаУдаляемыеОбъекты = УдалениеПомеченныхОбъектов.СсылкиНаУдаляемыеОбъекты(Источник); @@ -1058,39 +1057,37 @@ Ошибка = ИнформацияОбОшибке(); ЗаписьЖурналаРегистрации( НСтр("ru = 'Удаление помеченных'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , - НСтр("ru='Не удалось выполнить контроль удаляемых объектов:'") + ОбработкаОшибок.ПодробноеПредставлениеОшибки(Ошибка)); + УровеньЖурналаРегистрации.Ошибка,,, НСтр("ru='Не удалось выполнить контроль удаляемых объектов:'") + + ОбработкаОшибок.ПодробноеПредставлениеОшибки(Ошибка)); КонецПопытки; - + ТекстСообщения = ""; Если СсылкиНаУдаляемыеОбъекты.Количество() = 1 Тогда ПредставлениеСсылки = ""; Для Каждого УдаляемаяСсылка Из СсылкиНаУдаляемыеОбъекты Цикл ПредставлениеСсылки = ОбщегоНазначения.ПредметСтрокой(УдаляемаяСсылка.Ключ); КонецЦикла; - + ТекстСообщения = НСтр("ru = 'Выбранный элемент %1 в данный момент удаляется, т.к. был помечен на удаление. - |Выберите другое значение.'"); + |Выберите другое значение.'"); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ТекстСообщения, - ПредставлениеСсылки); - + ТекстСообщения, ПредставлениеСсылки); + ИначеЕсли СсылкиНаУдаляемыеОбъекты.Количество() > 1 Тогда - + ПредставлениеСсылок = Новый Массив; Для Каждого УдаляемаяСсылка Из СсылкиНаУдаляемыеОбъекты Цикл ПредставлениеСсылок.Добавить(ОбщегоНазначения.ПредметСтрокой(УдаляемаяСсылка.Ключ)); КонецЦикла; - + ТекстСообщения = НСтр("ru = 'Выбранные элементы в данный момент удаляются, т.к. были помечены на удаление. - |Выберите другие значения. - |%1'"); - + |Выберите другие значения. + |%1'"); + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ТекстСообщения, - СтрСоединить(ПредставлениеСсылок, "-" + Символы.ПС)); + ТекстСообщения, СтрСоединить(ПредставлениеСсылок, "-" + Символы.ПС)); КонецЕсли; - + Если СсылкиНаУдаляемыеОбъекты.Количество() > 0 Тогда ВызватьИсключение ТекстСообщения; КонецЕсли; @@ -1109,12 +1106,12 @@ // * ДеревоПомеченныхНаУдаление - см. НовоеДеревоУдаляемыхОбъектов // * НеУдаленные - см. НовоеДеревоУдаляемыхОбъектов // -Функция ДанныеФормыИзРезультатаУдаления(ДеревоУдаляемых, РезультатУдаления, НастройкиДополнительныхРеквизитов, +Функция ДанныеФормыИзРезультатаУдаления(ДеревоУдаляемых, РезультатУдаления, НастройкиДополнительныхРеквизитов, РезультатПредыдущегоШага) - - ДеревоПомеченныхНаУдаление = ДеревоФормыВУниверсальноеДерево(ДеревоУдаляемых, - ЧислоДополнительныхРеквизитов(НастройкиДополнительныхРеквизитов)); - + + ДеревоПомеченныхНаУдаление = ДеревоФормыВУниверсальноеДерево(ДеревоУдаляемых, ЧислоДополнительныхРеквизитов( + НастройкиДополнительныхРеквизитов)); + Результат = Новый Структура; Результат.Вставить("Удаленные", Новый Массив(Новый ФиксированныйМассив(РезультатУдаления.Удаленные))); Результат.Вставить("НеУдаленные", НовоеДеревоУдаляемыхОбъектов()); @@ -1122,29 +1119,28 @@ Результат.Вставить("СвязиНеудаленных", СвязиНеудаленных()); Результат.Вставить("КоличествоУдаленных", 0); Результат.Вставить("КоличествоНеУдаленных", 0); - + ПрепятствующиеУдалению = РезультатУдаления.ПрепятствующиеУдалению.ВыгрузитьКолонку("УдаляемыйСсылка"); ИнформацияОТипах = ИнформацияОТипах(ПрепятствующиеУдалению); - + ИменаРеквизитов = Новый Массив; ИменаРеквизитов.Добавить("ПометкаУдаления"); ИменаРеквизитов.Добавить("Проведен"); Реквизиты = СтандартныеПодсистемыСервер.ЗначенияРеквизитовОбъектовЕслиСуществуют( РезультатУдаления.ПрепятствующиеУдалению.ВыгрузитьКолонку("МестоИспользования"), ИменаРеквизитов); - + Для Каждого ПрепятствующийУдалению Из РезультатУдаления.ПрепятствующиеУдалению Цикл ДобавитьСтрокуДерева(Результат.НеУдаленные, ПрепятствующийУдалению.УдаляемыйСсылка, ИнформацияОТипах); ДобавитьСтрокуДерева(Результат.ДеревоПомеченныхНаУдаление, ПрепятствующийУдалению.УдаляемыйСсылка, ИнформацияОТипах); ДобавитьСтрокуСвязейНеудаленных(Результат.СвязиНеудаленных, ПрепятствующийУдалению, ИнформацияОТипах, Реквизиты); КонецЦикла; - + Результат.ДеревоПомеченныхНаУдаление.Строки.Сортировать("Представление", Истина); - Результат.СвязиНеудаленных.Сортировать("УдаляемыйСсылка", Новый СравнениеЗначений()); - + Результат.СвязиНеудаленных.Сортировать("УдаляемыйСсылка", Новый СравнениеЗначений); + Результат.ДеревоПомеченныхНаУдаление = ДеревоПомеченныхНаУдалениеБезУдаленных( - Результат.ДеревоПомеченныхНаУдаление, - РезультатУдаления.Удаленные); + Результат.ДеревоПомеченныхНаУдаление, РезультатУдаления.Удаленные); ИзмененныеСтрокиДерева = Результат.ДеревоПомеченныхНаУдаление.Строки.НайтиСтроки( Новый Структура("Модифицированность", Истина)); @@ -1157,19 +1153,17 @@ Результат.ДеревоПомеченныхНаУдаление, НастройкиДополнительныхРеквизитов); Результат.СвязиНеудаленных = ОбъединениеТаблиц( - ОшибкиПредыдущегоШага(РезультатПредыдущегоШага), - Результат.СвязиНеудаленных); + ОшибкиПредыдущегоШага(РезультатПредыдущегоШага), Результат.СвязиНеудаленных); Результат.КоличествоНеУдаленных = РезультатУдаления.НеУдаленные.Количество(); Результат.КоличествоУдаленных = РезультатУдаления.Удаленные.Количество(); - + Возврат Результат КонецФункции Функция РезультатШагаДополнительнойОбработки(РезультатПредыдущегоШагаПромежуточный) Возврат ?(ТипЗнч(РезультатПредыдущегоШагаПромежуточный) <> Тип("ТаблицаЗначений"), - РезультатОбработкиУдаляемыхОбъектов(), - РезультатПредыдущегоШагаПромежуточный); + РезультатОбработкиУдаляемыхОбъектов(), РезультатПредыдущегоШагаПромежуточный); КонецФункции Функция ДеревоФормыВУниверсальноеДерево(ДеревоУдаляемых, КоличествоДополнительныхРеквизитов) @@ -1186,25 +1180,25 @@ // Функция ОшибкиПредыдущегоШага(РезультатПредыдущегоШага) СвязиНеудаленных = СвязиНеудаленных(); - + Для Каждого Элемент Из РезультатПредыдущегоШага Цикл Если ПустаяСтрока(Элемент.ТекстОшибки) Тогда Продолжить; КонецЕсли; - + ОшибкаПредыдущегоШага = СвязиНеудаленных.Добавить(); - Если НЕ (Элемент.ТребуетсяУдаление) Тогда + Если Не (Элемент.ТребуетсяУдаление) Тогда ОшибкаПредыдущегоШага.УдаляемыйСсылка = Элемент.ОбнаруженныйСсылка; ОшибкаПредыдущегоШага.Представление = Элемент.ТекстОшибки; ОшибкаПредыдущегоШага.ОбнаруженныйСсылка = Элемент.ТекстОшибки; - Иначе + Иначе ЗаполнитьЗначенияСвойств(ОшибкаПредыдущегоШага, Элемент); КонецЕсли; - + ОшибкаПредыдущегоШага.ЭтоОшибка = Истина; ОшибкаПредыдущегоШага.НомерКартинки = 11; КонецЦикла; - + Возврат СвязиНеудаленных; КонецФункции @@ -1221,10 +1215,10 @@ // Массив из ЛюбаяСсылка // Функция УдаляемыеОбъектыИзДанныхФормы(ИсточникУдаляемыхОбъектов, РезультатОбработкиОшибок = Неопределено) - + Если РезультатОбработкиОшибок = Неопределено Тогда ЗапрещенныеКУдалению = РезультатОбработкиУдаляемыхОбъектов(); - Иначе + Иначе ЗапрещенныеКУдалению = РезультатОбработкиОшибок.Скопировать(Новый Структура("ТребуетсяУдаление", Ложь)); КонецЕсли; @@ -1236,34 +1230,34 @@ Результат.Добавить(СтрокаДерева.УдаляемыйСсылка); КонецЕсли; КонецЦикла; - + Возврат Результат; - + КонецФункции Функция УдаляемыеОбъектыИзРезультатаДополнительнойОбработки(РезультатОбработкиОшибок) - + Результат = Новый Массив; Для Каждого Элемент Из РезультатОбработкиОшибок.НайтиСтроки(Новый Структура("ТребуетсяУдаление", Истина)) Цикл Результат.Добавить(Элемент.УдаляемыйСсылка); КонецЦикла; Возврат Результат; - + КонецФункции Функция ДеревоПомеченныхНаУдалениеБезУдаленных(ПомеченныеНаУдаление, Удаленные) Результат = ПомеченныеНаУдаление.Скопировать(); - + МодифицированныеРодители = Новый Соответствие; УдаляемыеОбъекты = Результат.Строки.НайтиСтроки(Новый Структура("Пометка", 1), Истина); Для Каждого Элемент Из УдаляемыеОбъекты Цикл Если Элемент.Родитель <> Неопределено И (Удаленные.Найти(Элемент.УдаляемыйСсылка) <> Неопределено - ИЛИ НЕ Элемент.ЭтоОписаниеОбъектаМетаданных И Элемент.Технический) Тогда + Или Не Элемент.ЭтоОписаниеОбъектаМетаданных И Элемент.Технический) Тогда МодифицированныеРодители.Вставить(Элемент.Родитель); Элемент.Родитель.Строки.Удалить(Элемент); КонецЕсли; КонецЦикла; - + Для Каждого ЗначениеРодитель Из МодифицированныеРодители Цикл Родитель = ЗначениеРодитель.Ключ; Если Родитель.Строки.Количество() = 0 Тогда @@ -1277,19 +1271,16 @@ КонецФункции Процедура ДобавитьСтрокуДерева(ДеревоНеУдаленные, УдаляемыйСсылка, ИнформацияОТипах) - + ИнформацияОТипе = ИнформацияОТипах[ТипЗнч(УдаляемыйСсылка)]; // см. ИнформацияОТипе - СтрокиУдаляемых = ДеревоНеУдаленные.Строки.НайтиСтроки(Новый Структура("УдаляемыйСсылка", УдаляемыйСсылка), - Истина); + СтрокиУдаляемых = ДеревоНеУдаленные.Строки.НайтиСтроки(Новый Структура("УдаляемыйСсылка", УдаляемыйСсылка), Истина); СтрокаДерева = ?(СтрокиУдаляемых.Количество() = 0, Неопределено, СтрокиУдаляемых[0]); Если СтрокаДерева = Неопределено И Не ИнформацияОТипе.Технический Тогда ГруппаНеУдаленного = ДеревоНеУдаленные.Строки.НайтиСтроки( Новый Структура("УдаляемыйСсылка", ИнформацияОТипе.ПолноеИмя)); - ГруппаНеУдаленного = ?(ГруппаНеУдаленного.Количество() = 0, - Неопределено, - ГруппаНеУдаленного[0]); - + ГруппаНеУдаленного = ?(ГруппаНеУдаленного.Количество() = 0, Неопределено, ГруппаНеУдаленного[0]); + Если ГруппаНеУдаленного = Неопределено Тогда ГруппаНеУдаленного = ДеревоНеУдаленные.Строки.Добавить(); ГруппаНеУдаленного.НомерКартинки = -1; @@ -1311,36 +1302,35 @@ СтрокаДерева.Пометка = Истина; СтрокаДерева.КоличествоСвязей = СтрокаДерева.КоличествоСвязей + 1; КонецЕсли; - + КонецПроцедуры Процедура ДобавитьСтрокуСвязейНеудаленных(ТаблицаСвязиНеУдаленных, Причина, ИнформацияОТипах, Реквизиты) - + НомерКартинки = 0; Вид = ""; ОбнаруженныйСтатус = ""; - + Если Причина.Метаданные <> Неопределено И Метаданные.Константы.Содержит(Причина.Метаданные) Тогда ТипОбъекта = Тип("КонстантаМенеджерЗначения." + Причина.Метаданные.Имя); Иначе ТипОбъекта = ТипЗнч(Причина.МестоИспользования); КонецЕсли; - + СтрокаТаблицы = ТаблицаСвязиНеУдаленных.Добавить(); СтрокаТаблицы.УдаляемыйСсылка = Причина.УдаляемыйСсылка; СтрокаТаблицы.ЭтоОшибка = ЗначениеЗаполнено(Причина.ОписаниеОшибки); - СтрокаТаблицы.ОбнаруженныйСсылка = ?(СтрокаТаблицы.ЭтоОшибка, - Причина.ОписаниеОшибки, Причина.МестоИспользования); + СтрокаТаблицы.ОбнаруженныйСсылка = ?(СтрокаТаблицы.ЭтоОшибка, Причина.ОписаниеОшибки, Причина.МестоИспользования); - Если СтрокаТаблицы.ЭтоОшибка ИЛИ Причина.Метаданные = Неопределено Тогда + Если СтрокаТаблицы.ЭтоОшибка Или Причина.Метаданные = Неопределено Тогда СтрокаТаблицы.Представление = Причина.ПодробноеОписаниеОшибки; СтрокаТаблицы.НомерКартинки = 11; ИначеЕсли Причина.МестоИспользования = Неопределено Тогда СтрокаТаблицы.ОбнаруженныйСсылка = Причина.Метаданные.ПолноеИмя(); СтрокаТаблицы.ЭтоКонстанта = Истина; СтрокаТаблицы.СсылочногоТипа = Ложь; - СтрокаТаблицы.Представление = ОбщегоНазначения.ПредставлениеОбъекта(Причина.Метаданные) - + " (" + НСтр("ru = 'Константа'") + ")"; + СтрокаТаблицы.Представление = ОбщегоНазначения.ПредставлениеОбъекта(Причина.Метаданные) + " (" + НСтр( + "ru = 'Константа'") + ")"; Вид = "КОНСТАНТА"; Иначе ИнформацияОТипе = ИнформацияОТипе(ТипОбъекта, ИнформацияОТипах); @@ -1350,31 +1340,30 @@ ИначеЕсли ИнформацияОТипе.Ссылочный Тогда Значения = Реквизиты[Причина.МестоИспользования]; ОбнаруженныйСтатус = ?(Значения.ПометкаУдаления, "Удален", ""); - КонецЕсли; - + КонецЕсли; + СтрокаТаблицы.СсылочногоТипа = ИнформацияОТипе.Ссылочный; Если ОбщегоНазначения.ЭтоРегистр(Причина.Метаданные) Тогда - СтрокаТаблицы.Представление = ОбщегоНазначения.ПредставлениеОбъекта(Причина.Метаданные) - + " (" + НСтр("ru = 'Регистр'") + ")"; - Иначе + СтрокаТаблицы.Представление = ОбщегоНазначения.ПредставлениеОбъекта(Причина.Метаданные) + " (" + НСтр( + "ru = 'Регистр'") + ")"; + Иначе СтрокаТаблицы.Представление = Строка(Причина.МестоИспользования) + " (" + ИнформацияОТипе.ПредставлениеЭлемента + ")"; КонецЕсли; ИнформацияОбУдаляемом = ИнформацияОТипе(ТипЗнч(Причина.УдаляемыйСсылка), ИнформацияОТипах); Если ИнформацияОбУдаляемом.Технический Тогда // для оптимизации СтрокаТаблицы.ПредставлениеУдаляемый = ИнформацияОбУдаляемом.ПредставлениеЭлемента; - Иначе + Иначе СтрокаТаблицы.ПредставлениеУдаляемый = Строка(Причина.УдаляемыйСсылка); КонецЕсли; Вид = ИнформацияОТипе.Вид; КонецЕсли; - + НомерКартинки = СтрокаТаблицы.НомерКартинки; - СтрокаТаблицы.НомерКартинки = ?(НомерКартинки <> 0, НомерКартинки, - НомерКартинки(СтрокаТаблицы.ОбнаруженныйСсылка, СтрокаТаблицы.СсылочногоТипа, - Вид, ОбнаруженныйСтатус)); - + СтрокаТаблицы.НомерКартинки = ?(НомерКартинки <> 0, НомерКартинки, НомерКартинки(СтрокаТаблицы.ОбнаруженныйСсылка, + СтрокаТаблицы.СсылочногоТипа, Вид, ОбнаруженныйСтатус)); + КонецПроцедуры // Параметры: @@ -1395,52 +1384,50 @@ // * НеУдаленные - Массив из ЛюбаяСсылка // * Успешно - Булево // -Функция УдалитьПомеченныеОбъектыСлужебный(УдаляемыеОбъекты, РежимУдаления = "Стандартный", +Функция УдалитьПомеченныеОбъектыСлужебный(УдаляемыеОбъекты, РежимУдаления = "Стандартный", ИдентификаторЗадания = Неопределено, ЭтоРегламентноеЗадание = Ложь) Экспорт - + ДопустимыеРежимы = ДопустимыеРежимыУдаления(); Если ДопустимыеРежимы.Найти(РежимУдаления) = Неопределено Тогда ТекстОшибки = НСтр("ru = 'Недопустимое значение параметра %1 в %2. - |Ожидалось: %3; - |передано значение: %4 (тип %5).'"); - - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, - "РежимУдаления", - "УдалитьПомеченныеОбъекты", - СтрСоединить(ДопустимыеРежимы, Символы.ПС+"-"), - РежимУдаления, - ТипЗнч(РежимУдаления)); + |Ожидалось: %3; + |передано значение: %4 (тип %5).'"); + + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, "РежимУдаления", + "УдалитьПомеченныеОбъекты", СтрСоединить(ДопустимыеРежимы, Символы.ПС + "-"), РежимУдаления, ТипЗнч( + РежимУдаления)); ВызватьИсключение ТекстОшибки; КонецЕсли; - + Результат = Новый Структура("ПрепятствующиеУдалению, Удаленные, НеУдаленные, Успешно"); - - ПараметрыУдаления = Обработки.УдалениеПомеченныхОбъектов.ПараметрыУдаления(); + + ПараметрыУдаления = Обработки.УдалениеПомеченныхОбъектов.ПараметрыУдаления(); ПараметрыУдаления.ПользовательскиеОбъекты = УдаляемыеОбъекты; Если РежимУдаления = "Монопольный" Тогда УстановитьМонопольныйРежимПриНеобходимости(Истина, ИдентификаторЗадания); ПараметрыУдаления.Монопольно = Истина; - ИначеЕсли РежимУдаления = "Упрощенный" Тогда + ИначеЕсли РежимУдаления = "Упрощенный" Тогда ПараметрыУдаления.ОчищатьСсылкиВМестахИспользования = Истина; КонецЕсли; ПараметрыУдаления.Режим = РежимУдаления; ПараметрыУдаления.ЭтоРегламентноеЗадание = ЭтоРегламентноеЗадание; - + Попытка - РезультатУдаления = Обработки.УдалениеПомеченныхОбъектов.УдалитьПомеченныеОбъекты(ПараметрыУдаления, ИдентификаторЗадания); + РезультатУдаления = Обработки.УдалениеПомеченныхОбъектов.УдалитьПомеченныеОбъекты(ПараметрыУдаления, + ИдентификаторЗадания); Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыУдаления, "Монопольно", Ложь) И МонопольныйРежим() Тогда - УстановитьМонопольныйРежимПриНеобходимости(Ложь, ИдентификаторЗадания); + УстановитьМонопольныйРежимПриНеобходимости(Ложь, ИдентификаторЗадания); КонецЕсли; Исключение Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыУдаления, "Монопольно", Ложь) Тогда - УстановитьМонопольныйРежимПриНеобходимости(Ложь, ИдентификаторЗадания); + УстановитьМонопольныйРежимПриНеобходимости(Ложь, ИдентификаторЗадания); КонецЕсли; ВызватьИсключение; КонецПопытки; - + ЗаполнитьЗначенияСвойств(Результат, РезультатУдаления); Результат.Успешно = Результат.НеУдаленные.Количество() = 0; - + Возврат Результат; КонецФункции @@ -1475,14 +1462,14 @@ Возврат Истина; КонецЕсли; КонецЕсли; - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный"); Если МодульРаботаСФайламиСлужебный.ЭтоТехническийОбъект(ПолноеИмяОбъекта) Тогда Возврат Истина; КонецЕсли; КонецЕсли; - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"); Если МодульОбменДаннымиСервер.ЭтоТехническийОбъект(ПолноеИмяОбъекта) Тогда @@ -1490,9 +1477,8 @@ КонецЕсли; КонецЕсли; - Возврат ПолноеИмяОбъекта = ВРег("Справочник.ИдентификаторыОбъектовМетаданных") - Или ПолноеИмяОбъекта = ВРег("Справочник.ИдентификаторыОбъектовРасширений") - Или ПолноеИмяОбъекта = ВРег("Справочник.ВерсииРасширений"); + Возврат ПолноеИмяОбъекта = ВРег("Справочник.ИдентификаторыОбъектовМетаданных") Или ПолноеИмяОбъекта = ВРег( + "Справочник.ИдентификаторыОбъектовРасширений") Или ПолноеИмяОбъекта = ВРег("Справочник.ВерсииРасширений"); КонецФункции @@ -1508,11 +1494,10 @@ // Число - номер картинки // Функция НомерКартинки(Знач СсылкаИлиДанные, Знач СсылочногоТипа, Знач Вид, Знач Статус) Экспорт - + Вид = ВРег(Вид); Если СсылочногоТипа Тогда - Если Вид = "СПРАВОЧНИК" - Или Вид = "ПЛАНВИДОВХАРАКТЕРИСТИК" Тогда + Если Вид = "СПРАВОЧНИК" Или Вид = "ПЛАНВИДОВХАРАКТЕРИСТИК" Тогда НомерКартинки = 3; ИначеЕсли Вид = "ДОКУМЕНТ" Тогда НомерКартинки = 12; @@ -1551,7 +1536,7 @@ НомерКартинки = 8; КонецЕсли; КонецЕсли; - + Возврат НомерКартинки; КонецФункции @@ -1559,28 +1544,28 @@ Если ЗначениеЗаполнено(ИдентификаторЗадания) Тогда // Управление монопольным режимом осуществляется на форме. Возврат; - КонецЕсли; - + КонецЕсли; + Если МонопольныйРежим() <> ЗначениеМонопольногоРежима Тогда УстановитьМонопольныйРежим(ЗначениеМонопольногоРежима); КонецЕсли; КонецПроцедуры -Функция ПроверятьИспользованиеУдаляемыхОбъектов() +Функция ПроверятьИспользованиеУдаляемыхОбъектов() ЭтоМодельСервиса = ОбщегоНазначения.РазделениеВключено(); ВОбластиДанных = ?(ЭтоМодельСервиса, ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(), Ложь); Если ЭтоМодельСервиса И Не ВОбластиДанных Тогда Возврат Ложь; КонецЕсли; - + ПериодОбновленияЗначения = 60000; - + ДанныеКонстанты = УдалениеПомеченныхОбъектовПовтИсп.ПроверятьИспользованиеУдаляемыхОбъектов(); Если ТекущаяУниверсальнаяДатаВМиллисекундах() - ДанныеКонстанты.МеткаВремени > ПериодОбновленияЗначения Тогда ДанныеКонстанты.Значение = Константы.ПроверятьИспользованиеУдаляемыхОбъектов.Получить(); ДанныеКонстанты.МеткаВремени = ТекущаяУниверсальнаяДатаВМиллисекундах(); КонецЕсли; - + Возврат ДанныеКонстанты.Значение; КонецФункции @@ -1627,7 +1612,7 @@ // Функция НовоеДеревоУдаляемыхОбъектов(ЧислоДополнительныхРеквизитов = 0) Результат = Новый ДеревоЗначений; - Результат.Колонки.Добавить("Пометка", Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла(1,0))); + Результат.Колонки.Добавить("Пометка", Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(1, 0))); Результат.Колонки.Добавить("УдаляемыйСсылка"); Результат.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Результат.Колонки.Добавить("ПредставлениеУдаляемый", Новый ОписаниеТипов("Строка")); @@ -1665,7 +1650,7 @@ Таблица.Колонки.Добавить("СсылочногоТипа", Новый ОписаниеТипов("Булево")); Таблица.Колонки.Добавить("ЭтоОшибка", Новый ОписаниеТипов("Булево")); Таблица.Колонки.Добавить("ЭтоКонстанта", Новый ОписаниеТипов("Булево")); - + Таблица.Индексы.Добавить("УдаляемыйСсылка"); Возврат Таблица; @@ -1688,7 +1673,7 @@ Таблица.Колонки.Добавить("ОбнаруженныйСсылка"); Таблица.Колонки.Добавить("ПредставлениеУдаляемый", Новый ОписаниеТипов("Строка")); Таблица.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); - + Таблица.Индексы.Добавить("УдаляемыйСсылка"); Возврат Таблица; @@ -1704,4 +1689,4 @@ #КонецОбласти -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl index af70789c9..c8b72604f 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl @@ -19,17 +19,18 @@ // Булево // Процедура УстановитьРежимУдалятьПоРасписанию(Изменения) Экспорт - + Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда ВызватьИсключение НСтр("ru = 'Недостаточно прав для совершения операции.'"); КонецЕсли; - + Параметры = Новый Структура; Параметры.Вставить("Использование", Изменения.Использование); Параметры.Вставить("Расписание", Изменения.Расписание); - ИдентификаторЗадания = РегламентныеЗаданияСервер.УникальныйИдентификатор(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов); + ИдентификаторЗадания = РегламентныеЗаданияСервер.УникальныйИдентификатор( + Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов); РегламентныеЗаданияСервер.ИзменитьЗадание(ИдентификаторЗадания, Параметры); - + КонецПроцедуры // Возвращает расписание регламентного задания. @@ -43,9 +44,10 @@ Функция РежимУдалятьПоРасписанию() Экспорт Результат = Новый Структура; Результат.Вставить("Использование", Ложь); - Результат.Вставить("Расписание", ОбщегоНазначенияКлиентСервер.РасписаниеВСтруктуру(Новый РасписаниеРегламентногоЗадания())); + Результат.Вставить("Расписание", ОбщегоНазначенияКлиентСервер.РасписаниеВСтруктуру( + Новый РасписаниеРегламентногоЗадания)); Результат.Вставить("РазделениеВключено", ОбщегоНазначения.РазделениеВключено()); - + Отбор = Новый Структура; Отбор.Вставить("Метаданные", Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов); Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор); @@ -53,12 +55,13 @@ Задания = Задания[0]; Результат.Использование = Задания.Использование; Если Результат.РазделениеВключено Тогда - Результат.Расписание = Задания.Расписание; - Иначе - Результат.Расписание = РегламентныеЗаданияСервер.РасписаниеРегламентногоЗадания(Задания.УникальныйИдентификатор, Истина); + Результат.Расписание = Задания.Расписание; + Иначе + Результат.Расписание = РегламентныеЗаданияСервер.РасписаниеРегламентногоЗадания( + Задания.УникальныйИдентификатор, Истина); КонецЕсли; КонецЕсли; - + Возврат Результат; КонецФункции diff --git a/SSL/src/CommonModules/УправлениеДоступом/Module.bsl b/SSL/src/CommonModules/УправлениеДоступом/Module.bsl index d8190578a..633bef1ae 100644 --- a/SSL/src/CommonModules/УправлениеДоступом/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступом/Module.bsl @@ -390,7 +390,8 @@ Возврат Истина; КонецЕсли; - Если Не ОграничиватьДоступНаУровнеЗаписей() Тогда + Если Не ОграничиватьДоступНаУровнеЗаписей() + Или УправлениеДоступомСлужебныйПовтИсп.ЭтоПользовательБезОграниченияДоступа(Пользователь) Тогда Возврат Истина; КонецЕсли; @@ -2382,13 +2383,12 @@ Обработчик = Обработчики.Добавить(); Обработчик.Версия = Версия; - Обработчик.Процедура = "РегистрыСведений.ПараметрыОграниченияДоступа.ОбработатьДанныеДляПереходаНаНовуюВерсию3"; + Обработчик.Процедура = "РегистрыСведений.ПараметрыОграниченияДоступа.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина; Обработчик.Комментарий = НСтр("ru = 'Включение универсального ограничения доступа на уровне записей.'"); Обработчик.Идентификатор = Новый УникальныйИдентификатор("74cb1992-c9ac-4b46-90db-810544dee86c"); - Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.ПараметрыОграниченияДоступа.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию3"; - Обработчик.ОчередьОтложеннойОбработки = 2; + Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.ПараметрыОграниченияДоступа.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ЧитаемыеОбъекты = "РегистрСведений.ПараметрыОграниченияДоступа"; Обработчик.ИзменяемыеОбъекты = "РегистрСведений.ПараметрыОграниченияДоступа"; diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl index ae7a21c5b..94bc5726e 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl @@ -553,6 +553,7 @@ КонецЕсли; СтандартныеРолиРасширений = УправлениеДоступомСлужебныйПовтИсп.ОписаниеСтандартныхРолейРасширенийСеанса().РолиСеанса; ДополнительныеРолиАдминистратора = Новый Соответствие(СтандартныеРолиРасширений.ДополнительныеРолиАдминистратора); + ПриПодготовкеДополнительныхРолейАдминистратора(ДополнительныеРолиАдминистратора); ДополнительныеРолиАдминистратора.Вставить("ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок", Истина); // Будущий итог после цикла. @@ -1725,7 +1726,6 @@ Обработчик.Идентификатор = Новый УникальныйИдентификатор("b73c2481-f789-4b2d-b705-8219aea0e75d"); Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ГруппыДоступа.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЧитаемыеОбъекты = "Справочник.ГруппыДоступа"; Обработчик.ИзменяемыеОбъекты = "РегистрСведений.ТаблицыГруппДоступа,РегистрСведений.ЗначенияГруппДоступа,РегистрСведений.ЗначенияГруппДоступаПоУмолчанию"; @@ -1743,7 +1743,6 @@ Обработчик.Комментарий = НСтр("ru = 'Обновление данных по изменениям программы.'"); Обработчик.Идентификатор = Новый УникальныйИдентификатор("b3cb643e-d5cf-40b7-9db3-6315a88c063d"); Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.ГруппыЗначенийДоступа.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЧитаемыеОбъекты = "РегистрСведений.ГруппыЗначенийДоступа"; Обработчик.ИзменяемыеОбъекты = "РегистрСведений.ГруппыЗначенийДоступа"; @@ -1754,7 +1753,6 @@ Обработчик.Комментарий = НСтр("ru = 'Обновление вспомогательных данных настроек прав.'"); Обработчик.Идентификатор = Новый УникальныйИдентификатор("40d1c62f-c3f1-4608-8985-2dc618c3d758"); Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.НастройкиПравОбъектов.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЧитаемыеОбъекты = "РегистрСведений.НастройкиПравОбъектов"; Обработчик.ИзменяемыеОбъекты = "РегистрСведений.НастройкиПравОбъектов"; @@ -6303,6 +6301,17 @@ // Для процедуры ОбновитьРолиПользователей. +// Для тестирования. +// +// Параметры: +// ДополнительныеРоли - Соответствие из КлючИЗначение: +// * Ключ - Строка - имя роли, которую можно назначить администратору. +// * Значение - Булево - Истина. +// +Процедура ПриПодготовкеДополнительныхРолейАдминистратора(ДополнительныеРоли) + Возврат; +КонецПроцедуры + Функция ТекущиеСвойстваПользователей(МассивПользователей) Запрос = Новый Запрос; @@ -9437,6 +9446,10 @@ Возврат Ложь; КонецЕсли; + Если УправлениеДоступомСлужебныйПовтИсп.ЭтоПользовательБезОграниченияДоступа(Пользователь) Тогда + Возврат Истина; + КонецЕсли; + ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); Если Не ПроизводительныйВариант Тогда @@ -9987,6 +10000,7 @@ КонецЕсли; ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь() + Или УправлениеДоступомСлужебныйПовтИсп.ЭтоПользовательБезОграниченияДоступа() Или Не УправлениеДоступом.ПроизводительныйВариант(); Источник.ДополнительныеСвойства.Вставить("УправлениеДоступомИдентификаторТранзакции", @@ -10017,6 +10031,7 @@ КонецЕсли; ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь() + Или УправлениеДоступомСлужебныйПовтИсп.ЭтоПользовательБезОграниченияДоступа() Или Не УправлениеДоступом.ПроизводительныйВариант(); // Проверка доступа к новой версии. @@ -17001,7 +17016,9 @@ Возврат Неопределено; КонецЕсли; ТипКолонки = Новый ОписаниеТипов(Колонка.ТипЗначения,, "Null"); - Если ТипыПоля.Получить() <> ТипКолонки Тогда + Если ТипыПоля.Получить() <> ТипКолонки + Или СтрокаДанныхДляХеширования(Колонка.ТипЗначения) + <> СтрокаДанныхДляХеширования(Новый ОписаниеТипов(Колонка.ТипЗначения.Типы())) Тогда Возврат Неопределено; КонецЕсли; КонецЦикла; @@ -37824,10 +37841,10 @@ КонецЦикла; ИндексыСтрокРазделителя.Добавить(ТаблицаНаборовСимволов.Количество() - 1); - СвойстваЧастей = Новый Массив; // Массив Из см. НовыеСвойстваЧасти + СвойстваЧастей = Новый Массив; // Массив из см. НовыеСвойстваЧасти ИндексСтроки = 0; Для Каждого ИндексСтрокиРазделителя Из ИндексыСтрокРазделителя Цикл - СтрокиЧасти = Новый Массив; // см. ТаблицаНаборовСимволов + СтрокиЧасти = Новый Массив; // Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов Пока ИндексСтроки < ИндексСтрокиРазделителя Цикл СтрокаЧасти = ТаблицаНаборовСимволов[ИндексСтроки]; Если СтрокаЧасти.Вид <> "НедопустимыйСимвол" Тогда @@ -37975,10 +37992,50 @@ КонецФункции +// Процедура: +// Родитель - СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов +// - Структура +// Строка - СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов +// Контекст - Структура: +// * Таблица - см. ТаблицаНаборовСимволов +// +Процедура СтрокаДобавить(Родитель, Строка, Контекст) + + Если ТипЗнч(Строка) = Тип("СтрокаТаблицыЗначений") Тогда + Родитель.Строки.Добавить(Контекст.ТаблицаНаборовСимволов.Индекс(Строка)); + Иначе + Родитель.Строки.Добавить(Строка); + КонецЕсли; + +КонецПроцедуры + +// Параметры: +// ОписаниеСтроки - Число - индекс таблицы значений. +// - СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов +// - Структура - см. ДополнительнаяСтрока +// Контекст - Структура: +// * Таблица - см. ТаблицаНаборовСимволов +// +// Возвращаемое значение: +// СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов +// см. ДополнительнаяСтрока +// +Функция СтрокаТаблицы(ОписаниеСтроки, Контекст) + + Если ТипЗнч(ОписаниеСтроки) = Тип("Число") Тогда + Строка = Контекст.ТаблицаНаборовСимволов[ОписаниеСтроки]; + Иначе + Строка = ОписаниеСтроки; + КонецЕсли; + + Возврат Строка; + +КонецФункции + // Возвращаемое значение: // Структура: -// * Строки - Массив из СтрокаТаблицыЗначений -// * СтрокаРазделителя - СтрокаТаблицыЗначений +// * Строки - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов +// * СтрокаРазделителя - СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // * Имя - Строка // * Представление - Строка // @@ -38140,6 +38197,10 @@ КонецПроцедуры // Для функции ЧастиОграничения, процедур РазобратьДополнительныеТаблицы, РазобратьУсловиеОграничения. +// Параметры: +// СвойстваЧасти - см. НовыеСвойстваЧасти +// ТекстОшибки - Строка +// Процедура УстановитьОшибкуНачалаЧасти(СвойстваЧасти, ТекстОшибки) Если ТипЗнч(СвойстваЧасти) = Тип("ТаблицаЗначений") Тогда @@ -38159,6 +38220,11 @@ КонецПроцедуры // Для процедуры РазобратьСоединение. +// Параметры: +// Строки - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов +// ИндексСтроки - Число +// ТекстОшибки - Строка +// Процедура УстановитьОшибкуВнутриЧасти(Строки, ИндексСтроки, ТекстОшибки) Если ИндексСтроки < Строки.Количество() Тогда @@ -38211,7 +38277,7 @@ // Для процедуры РазобратьЧастьОграничения. Процедура РазобратьДополнительныеТаблицы(СвойстваЧасти, ВнутренниеДанные) - СтрокиЧасти = СвойстваЧасти.Строки; // см. ТаблицаНаборовСимволов + СтрокиЧасти = СвойстваЧасти.Строки; // Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов Если СтрокиЧасти.Количество() < 2 Или СтрокиЧасти[1].Вид <> "КлючевоеСлово" @@ -38253,7 +38319,7 @@ // Разделение описания на группы левых соединений. Соединения = Новый Массив; - ТекущееСоединение = Новый Массив; + ТекущееСоединение = Новый Массив; // Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов Для Индекс = 4 По СтрокиЧасти.Количество()-1 Цикл СтрокаЧасти = СтрокиЧасти[Индекс]; @@ -38308,7 +38374,7 @@ // Для процедуры РазобратьДополнительныеТаблицы. // // Параметры: -// Соединение - см. ТаблицаНаборовСимволов +// Соединение - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // Процедура РазобратьСоединение(Соединение, СвойстваЧасти, ВнутренниеДанные) @@ -38876,9 +38942,14 @@ КонецПроцедуры // Для процедуры РазобратьЧастьОграничения. +// +// Параметры: +// СвойстваЧасти - см. НовыеСвойстваЧасти +// ВнутренниеДанные - см. НовыеВнутренниеДанные +// Процедура РазобратьУсловиеОграничения(СвойстваЧасти, ВнутренниеДанные) - СтрокиЧасти = СвойстваЧасти.Строки; // см. ТаблицаНаборовСимволов + СтрокиЧасти = СвойстваЧасти.Строки; ИзменитьВидКлючевогоСловаСписокНаИмя(СтрокиЧасти); Если СтрокиЧасти.Количество() < 2 @@ -38957,7 +39028,7 @@ // Процедура РазобратьУсловие(Условие, Состав, ВнутренниеДанные) - ВыраженияВСкобкахВоВложениях = ВыраженияВСкобкахВоВложениях(Условие); + ВыраженияВСкобкахВоВложениях = ВыраженияВСкобкахВоВложениях(Условие, ВнутренниеДанные); ФункцииСВыражениямиВСкобках = ФункцииСВыражениямиВСкобках( ВыраженияВСкобкахВоВложениях, ВнутренниеДанные); @@ -39007,7 +39078,7 @@ // Для процедур РазобратьУсловие, РазобратьФункцию, РазобратьВыбор. // // Параметры: -// Условие - см. ТаблицаНаборовСимволов +// Условие - Массив из см. СтрокаТаблицы.ОписаниеСтроки // Процедура РазобратьВыражение(Условие, Состав, ТекущийКонтекст, ВложенноеВыражение = Истина) @@ -39017,7 +39088,8 @@ Контекст.Вставить("Описание"); Контекст.Вставить("Строка"); - Для Каждого Строка Из Условие Цикл + Для Каждого ОписаниеСтроки Из Условие Цикл + Строка = СтрокаТаблицы(ОписаниеСтроки, ТекущийКонтекст); Контекст.Строка = Строка; Если Строка.Вид = "Имя" @@ -39202,11 +39274,11 @@ НовоеОписание.Вставить("Искомое", Неопределено); НовоеОписание.Вставить("Значения", Новый Массив); - СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка); + СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка, Контекст); // Ошибка отсутствия параметров уже установлена в функции ФункцииСВыражениямиВСкобках. Для Каждого ОписаниеПараметра Из СоставПараметров Цикл - СтрокиОписанияПараметра = ОписаниеПараметра.Строки; // см. ТаблицаНаборовСимволов + СтрокиОписанияПараметра = ОписаниеПараметра.Строки; // Массив Из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов Для Каждого Подстрока Из СтрокиОписанияПараметра Цикл РазобратьЗначениеСоединителяВ(Контекст, Подстрока, НовоеОписание); @@ -39461,7 +39533,7 @@ НовоеОписание.Вставить("ПроверятьТипыКромеУказанных", Ложь); НовоеОписание.Вставить("УточненияСравнения", Новый Соответствие); - СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка); + СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка, Контекст); Если СоставПараметров.Количество() = 0 Тогда Возврат; // Ошибка отсутствия параметров уже установлена в функции ФункцииСВыражениямиВСкобках. @@ -39479,8 +39551,8 @@ // Для процедуры РазобратьПараметрыПроверочнойФункции. // // Параметры: -// ПервыйПараметр - Структура: -// * Строки - см. ТаблицаНаборовСимволов +// ПервыйПараметр - Структура: +// * Строки - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // Процедура РазобратьПервыйПараметрПроверочнойФункции(Контекст, ПервыйПараметр, НовоеОписание) @@ -39512,7 +39584,7 @@ И ПервыйПараметр.Строки[0].Уточнение = "Выразить" И НовоеОписание.Поле.Вложение = Неопределено Тогда - УстановитьОшибкуВСтроке(ПервыйПараметр.Строки[0].КонечнаяСтрока, + УстановитьОшибкуВСтроке(СтрокаТаблицы(ПервыйПараметр.Строки[0].КонечнаяСтрока, Контекст), ПодставитьКлючевыеСловаВСтроку(Контекст, НСтр("ru = 'После вложенной функции ""%3"" должно быть указано имя поля через точку, |если в параметре функции ""%4"" используется ключевое слово ""%1"" или ""%2""'"), @@ -39563,7 +39635,7 @@ Возврат; КонецЕсли; - СоставПараметров = ПараметрыРазделенныеЗапятыми(ПервыйПараметр.Строки[2]); + СоставПараметров = ПараметрыРазделенныеЗапятыми(ПервыйПараметр.Строки[2], Контекст); Если СоставПараметров.Количество() = 0 Тогда Возврат; // Ошибка отсутствия параметров уже установлена в функции ФункцииСВыражениямиВСкобках. @@ -39586,8 +39658,8 @@ // Для процедуры РазобратьПараметрыПроверочнойФункции. // // Параметры: -// Параметр - Структура: -// * Строки - см. ТаблицаНаборовСимволов +// Параметр - Структура: +// * Строки - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // Процедура РазобратьДополнительныйПараметрПроверочнойФункции(Контекст, Параметр, НовоеОписание) @@ -39668,7 +39740,7 @@ НовоеОписание.Вставить("Имя", Неопределено); - СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка); + СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка, Контекст); Если СоставПараметров.Количество() = 0 Тогда Возврат; // Ошибка отсутствия параметров уже установлена в функции ФункцииСВыражениямиВСкобках. @@ -39716,7 +39788,7 @@ НовоеОписание.Вставить("ИмяРоли", Неопределено); - СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка); + СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка, Контекст); Если СоставПараметров.Количество() = 0 Тогда Возврат; // Ошибка отсутствия параметров уже установлена в функции ФункцииСВыражениямиВСкобках. @@ -39750,7 +39822,7 @@ НовоеОписание.Вставить("ИмяПрава", Неопределено); НовоеОписание.Вставить("ПолноеИмяОбъектаМетаданных", Неопределено); - СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка); + СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка, Контекст); Если СоставПараметров.Количество() = 0 Тогда Возврат; // Ошибка отсутствия параметров уже установлена в функции ФункцииСВыражениямиВСкобках. @@ -39807,7 +39879,7 @@ Строка = Контекст.Строка; НовоеОписание.Вставить("Аргумент", Неопределено); - СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка); + СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка, Контекст); Если СоставПараметров.Количество() = 0 Тогда Возврат; // Ошибка отсутствия параметров уже установлена в функции ФункцииСВыражениямиВСкобках. @@ -39839,7 +39911,7 @@ И Параметр.Строки[0].Уточнение = "Выразить" И НовоеОписание.Аргумент.Вложение = Неопределено Тогда - УстановитьОшибкуВСтроке(Параметр.Строки[0].КонечнаяСтрока, + УстановитьОшибкуВСтроке(СтрокаТаблицы(Параметр.Строки[0].КонечнаяСтрока, Контекст), ПодставитьКлючевыеСловаВСтроку(Контекст, НСтр("ru = 'После вложенной функции ""%1"" должно быть указано имя поля через точку'"), Параметр.Строки[0].Символы), @@ -39868,7 +39940,7 @@ НовоеОписание = ОписаниеУзлаПоле(Строка); Если Строка.Строки.Количество() > 0 Тогда - ПоследняяСтрока = Строка.Строки[Строка.Строки.Количество() - 1]; + ПоследняяСтрока = СтрокаТаблицы(Строка.Строки[Строка.Строки.Количество() - 1], Контекст); Если ПоследняяСтрока.Тип = "ДополнениеКВыразить" Тогда Строка.Строки.Удалить(Строка.Строки.Количество() - 1); НовоеОписание.Имя = Сред(ПоследняяСтрока.Символы, 2); @@ -39878,7 +39950,7 @@ КонецЕсли; КонецЕсли; - СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка); + СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка, Контекст); Если СоставПараметров.Количество() = 0 Тогда // Ошибка отсутствия параметров уже установлена в функции ФункцииСВыражениямиВСкобках. @@ -39896,7 +39968,7 @@ НовоеОписание.Вложение = ОписаниеУзлаПолеИзФункцииВыразить(ПервыйПараметр.Строки[0], Контекст); Если НовоеОписание.Вложение.Вложение = Неопределено Тогда - УстановитьОшибкуВСтроке(ПервыйПараметр.Строки[0].КонечнаяСтрока, + УстановитьОшибкуВСтроке(СтрокаТаблицы(ПервыйПараметр.Строки[0].КонечнаяСтрока, Контекст), СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'После вложенной функции ""%1"" должно быть указано имя поля через точку'"), ПервыйПараметр.Строки[0].Символы), @@ -39971,7 +40043,7 @@ НовоеОписание = ОписаниеУзлаПоле(Строка); НовоеОписание.ЕстьNullИсточник = Строка; - СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка); + СоставПараметров = ПараметрыРазделенныеЗапятыми(Строка, Контекст); Если СоставПараметров.Количество() = 0 Тогда // Ошибка отсутствия параметров уже установлена в функции ФункцииСВыражениямиВСкобках. @@ -40042,13 +40114,17 @@ // РазобратьПараметрыФункцииЗначениеИлиФункцииТип, РазобратьПараметрыФункцииТипЗначения и // для функций ОписаниеУзлаПолеИзФункцииВыразить, ОписаниеУзлаПолеИзФункцииЕстьNull. // +// Параметры: +// ОписаниеСтроки - см. СтрокаТаблицы.ОписаниеСтроки +// // Возвращаемое значение: // Массив из Структура: -// * Строки - см. ТаблицаНаборовСимволов +// * Строки - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // -Функция ПараметрыРазделенныеЗапятыми(Строка) +Функция ПараметрыРазделенныеЗапятыми(ОписаниеСтроки, Контекст) СоставПараметров = Новый Массив; + Строка = СтрокаТаблицы(ОписаниеСтроки, Контекст); Если Строка.Строки.Количество() = 0 Тогда Возврат СоставПараметров; @@ -40057,11 +40133,11 @@ ОписаниеПараметра = Новый Структура("Строки, КонечнаяСтрока", Новый Массив); ПредыдущаяПодстрокаЭтоЧастьАргумента = Ложь; - Для Каждого Подстрока Из Строка.Строки Цикл - + Для Каждого ОписаниеПодстроки Из Строка.Строки Цикл + Подстрока = СтрокаТаблицы(ОписаниеПодстроки, Контекст); Если Подстрока.Символы = "," Тогда Если Не ПредыдущаяПодстрокаЭтоЧастьАргумента Тогда - Если Строка.Строки[0] = Подстрока Тогда + Если Строка.Строки[0] = ОписаниеПодстроки Тогда УстановитьОшибкуВСтроке(Подстрока, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Перед запятой не указан параметр'"), Подстрока.Символы)); ОписаниеПараметра.Строки.Добавить(ДополнительнаяСтрока(Подстрока, "")); @@ -40086,7 +40162,7 @@ Если ОписаниеПараметра.Строки.Количество() > 0 Тогда СоставПараметров.Добавить(ОписаниеПараметра); - ОписаниеПараметра.КонечнаяСтрока = Строка.КонечнаяСтрока; + ОписаниеПараметра.КонечнаяСтрока = СтрокаТаблицы(Строка.КонечнаяСтрока, Контекст); Иначе УстановитьОшибкуВСтроке(Подстрока, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Лишняя запятая или после запятой не указан параметр'"), Подстрока.Символы), Истина); @@ -40101,7 +40177,7 @@ // Параметры: // Контекст - Структура: // * Строка - Структура: -// ** Строки - см. ТаблицаНаборовСимволов +// ** Строки - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // Процедура РазобратьВыбор(Контекст) @@ -40113,57 +40189,66 @@ ПропуститьАнализКогда = Ложь; - Выбор = Строка.Строки[0]; // см. ДополнительнаяСтрока + Выбор = СтрокаТаблицы(Строка.Строки[0], Контекст); Если Выбор.Строки.Количество() > 0 Тогда - Если Выбор.Строки[0].Вид = "Имя" Тогда - НовоеОписание.Выбор = ОписаниеУзлаПолеИлиУзлаКонстанта(Выбор.Строки[0]); + ПерваяСтрокаВыбора = СтрокаТаблицы(Выбор.Строки[0], Контекст); + Если ПерваяСтрокаВыбора.Вид = "Имя" Тогда + НовоеОписание.Выбор = ОписаниеУзлаПолеИлиУзлаКонстанта(ПерваяСтрокаВыбора); Иначе ПропуститьАнализКогда = Истина; - УстановитьОшибкуВСтроке(Выбор.Строки[0], СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + УстановитьОшибкуВСтроке(ПерваяСтрокаВыбора, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Когда аргумент ключевого слова ""%1"" указан, то это может быть только имя поля'"), Строка.Символы)); КонецЕсли; КонецЕсли; Индекс = 1; - Пока Строка.Строки[Индекс].Уточнение = "Когда" Цикл + Пока Истина Цикл + СледующаяСтрока = СтрокаТаблицы(Строка.Строки[Индекс], Контекст); + Если СледующаяСтрока.Уточнение <> "Когда" Тогда + Прервать; + КонецЕсли; ОписаниеКогдаТогда = Новый Структура("Условие, Значение"); НовоеОписаниеКогда = НовоеОписание.Когда; // Массив НовоеОписаниеКогда.Добавить(ОписаниеКогдаТогда); - Когда = Строка.Строки[Индекс]; // СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов + Когда = СледующаяСтрока; Если Не ПропуститьАнализКогда Тогда + ПерваяПодстрокаКогда = ?(Когда.Строки.Количество() = 0, Неопределено, + СтрокаТаблицы(Когда.Строки[0], Контекст)); + Если НовоеОписание.Выбор = Неопределено Тогда РазобратьВыражение(Когда.Строки, ОписаниеКогдаТогда.Условие, Контекст); ИначеЕсли Когда.Строки.Количество() = 0 Тогда Если ЗначениеЗаполнено(Когда.Символы) Тогда - УстановитьОшибкуВСтроке(Когда.Строки[0], СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + УстановитьОшибкуВСтроке(Когда, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Так как после ключевого слова ""%1"" указано поле, то после ключевого слова ""%2"" |должно быть указано, либо предопределенное значение, либо константа'"), Строка.Символы, Когда.Символы)); КонецЕсли; - ИначеЕсли Когда.Строки[0].Вид = "Число" - Или Когда.Строки[0].Вид = "ПроизвольнаяСтрока" - Или Когда.Строки[0].Вид = "КлючевоеСлово" - И ( Когда.Строки[0].Уточнение = "Истина" - Или Когда.Строки[0].Уточнение = "Ложь" - Или Когда.Строки[0].Уточнение = "Неопределено" - Или Когда.Строки[0].Уточнение = "Значение" ) Тогда + ИначеЕсли ПерваяПодстрокаКогда.Вид = "Число" + Или ПерваяПодстрокаКогда.Вид = "ПроизвольнаяСтрока" + Или ПерваяПодстрокаКогда.Вид = "КлючевоеСлово" + И ( ПерваяПодстрокаКогда.Уточнение = "Истина" + Или ПерваяПодстрокаКогда.Уточнение = "Ложь" + Или ПерваяПодстрокаКогда.Уточнение = "Неопределено" + Или ПерваяПодстрокаКогда.Уточнение = "Значение" ) Тогда - Если Когда.Строки[0].Уточнение = "Значение" Тогда + Если ПерваяПодстрокаКогда.Уточнение = "Значение" Тогда ОписаниеКогдаТогда.Условие = Новый Структура("Источник, Узел", - Когда.Строки[0], Когда.Строки[0].Уточнение); + ПерваяПодстрокаКогда, ПерваяПодстрокаКогда.Уточнение); - РазобратьПараметрыФункцииЗначениеИлиФункцииТип(Когда.Строки[0], ОписаниеКогдаТогда.Условие, Истина, Контекст); + РазобратьПараметрыФункцииЗначениеИлиФункцииТип(ПерваяПодстрокаКогда, + ОписаниеКогдаТогда.Условие, Истина, Контекст); Иначе - ОписаниеКогдаТогда.Условие = ОписаниеУзлаПолеИлиУзлаКонстанта(Когда.Строки[0]); + ОписаниеКогдаТогда.Условие = ОписаниеУзлаПолеИлиУзлаКонстанта(ПерваяПодстрокаКогда); КонецЕсли; ИначеЕсли ЗначениеЗаполнено(Когда.Символы) Тогда - УстановитьОшибкуВСтроке(Когда.Строки[0], СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + УстановитьОшибкуВСтроке(ПерваяПодстрокаКогда, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Так как после ключевого слова ""%1"" указано поле, то после ключевого слова ""%2"" |должно быть указано, либо предопределенное значение, либо константа'"), Строка.Символы, @@ -40171,19 +40256,19 @@ КонецЕсли; КонецЕсли; - СоставТогда = Строка.Строки[Индекс + 1]; + СоставТогда = СтрокаТаблицы(Строка.Строки[Индекс + 1], Контекст); Если СоставТогда.Строки.Количество() > 0 Тогда РазобратьВыражение(СоставТогда.Строки, ОписаниеКогдаТогда.Значение, Контекст); ИначеЕсли ЗначениеЗаполнено(СоставТогда.Символы) Тогда - УстановитьОшибкуВСтроке(Когда.Строки[0], СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + УстановитьОшибкуВСтроке(ПерваяПодстрокаКогда, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'После ключевого слова ""%1"" должно быть указано логическое выражение'"), СоставТогда.Символы)); КонецЕсли; Индекс = Индекс + 2; КонецЦикла; - РазобратьВыражение(Строка.Строки[Индекс].Строки, НовоеОписание.Иначе, Контекст); + РазобратьВыражение(СледующаяСтрока.Строки, НовоеОписание.Иначе, Контекст); ДобавитьАргументФункциюВыборОператор(Контекст, НовоеОписание); @@ -40310,7 +40395,7 @@ // Возвращаемое значение: // Массив из СтрокаТаблицыЗначений // -Функция ВыраженияВСкобкахВоВложениях(Строки) +Функция ВыраженияВСкобкахВоВложениях(Строки, Контекст) Результат = Новый Массив; @@ -40320,17 +40405,17 @@ Для Каждого Строка Из Строки Цикл Если Строка.Символы = "(" Тогда - ДобавитьВложение(Строка, Вложения, ТекущееВложение); + ДобавитьВложение(Строка, Вложения, ТекущееВложение, Контекст); ИначеЕсли Строка.Символы = ")" Тогда Если Вложения.Количество() = 1 Тогда УстановитьОшибкуВСтроке(Строка, НСтр("ru = 'Указана закрывающаяся скобка до открывающейся скобки'")); Иначе - УдалитьПоследнееВложение(Вложения, ТекущееВложение, Строка); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст, Строка); КонецЕсли; Иначе - ТекущееВложение.Строки.Добавить(Строка); + СтрокаДобавить(ТекущееВложение, Строка, Контекст); КонецЕсли; КонецЦикла; @@ -40350,7 +40435,7 @@ // Для процедуры РазобратьУсловие. // // Параметры: -// Строки - см. ТаблицаНаборовСимволов +// Строки - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // Функция ВыраженияВыборКогдаТогдаВоВложениях(Строки, Контекст) @@ -40360,16 +40445,16 @@ Вложения = Новый Массив; Вложения.Добавить(ТекущееВложение); - Для Каждого Строка Из Строки Цикл + Для Каждого ОписаниеСтроки Из Строки Цикл + Строка = СтрокаТаблицы(ОписаниеСтроки, Контекст); Если Строка.Вид <> "КлючевоеСлово" Или Строка.Тип <> "СловоВыбора" Тогда Если ТекущееВложение.Уточнение = "Выбор" Тогда - СтрокиВыбора = ТекущееВложение.Строки[0].Строки; // Массив - СтрокиВыбора.Добавить(Строка); + СтрокаДобавить(СтрокаТаблицы(ТекущееВложение.Строки[0], Контекст), Строка, Контекст); Иначе - ТекущееВложение.Строки.Добавить(Строка); + СтрокаДобавить(ТекущееВложение, Строка, Контекст); Если Строка.Символы = "(" Тогда Строка.Строки = ВыраженияВыборКогдаТогдаВоВложениях(Строка.Строки, Контекст); КонецЕсли; @@ -40384,7 +40469,7 @@ ВосстановитьСтруктуруВыбора(ТекущееВложение, Вложения, ТекущееВложение, "Когда", Контекст); КонецЕсли; КонецЕсли; - ДобавитьВложение(Строка, Вложения, ТекущееВложение); + ДобавитьВложение(Строка, Вложения, ТекущееВложение, Контекст); ТекущееВложение.Строки.Добавить(ДополнительнаяСтрока(ТекущееВложение, "Выбор", Контекст)); ИначеЕсли Строка.Уточнение = "Когда" Тогда @@ -40403,14 +40488,14 @@ ВосстановитьСтруктуруВыбора(ТекущееВложение, Вложения, ТекущееВложение, "Тогда", Контекст); ИначеЕсли ТекущееВложение.Уточнение = "Тогда" Тогда - УдалитьПоследнееВложение(Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); Иначе // ТекущееВложение.Уточнение = "Иначе" УстановитьОшибкуВСтроке(Строка, ПодставитьКлючевыеСловаВСтроку(Контекст, НСтр("ru = 'Ключевое слово ""%1"" должно быть до ключевого слова ""%2""'"), "Когда,Иначе")); - УдалитьПоследнееВложение(Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); КонецЕсли; - ДобавитьВложение(Строка, Вложения, ТекущееВложение); + ДобавитьВложение(Строка, Вложения, ТекущееВложение, Контекст); ИначеЕсли Строка.Уточнение = "Тогда" Тогда @@ -40435,11 +40520,11 @@ Иначе // ТекущееВложение.Уточнение = "Иначе" УстановитьОшибкуВСтроке(Строка, ПодставитьКлючевыеСловаВСтроку(Контекст, НСтр("ru = 'Ключевое слово ""%1"" должно быть до ключевого слова ""%2""'"), "Тогда,Иначе")); - УдалитьПоследнееВложение(Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); ВосстановитьСтруктуруВыбора(Строка, Вложения, ТекущееВложение, "Когда", Контекст); КонецЕсли; - УдалитьПоследнееВложение(Вложения, ТекущееВложение); - ДобавитьВложение(Строка, Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); + ДобавитьВложение(Строка, Вложения, ТекущееВложение, Контекст); ИначеЕсли Строка.Уточнение = "Иначе" Тогда @@ -40456,7 +40541,7 @@ ИначеЕсли ТекущееВложение.Уточнение = "Когда" Тогда УстановитьОшибкуВСтроке(Строка, ПодставитьКлючевыеСловаВСтроку(Контекст, НСтр("ru = 'Ключевое слово ""%1"" указано до ключевого слова ""%2""'"), "Иначе,Тогда")); - УдалитьПоследнееВложение(Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); ВосстановитьСтруктуруВыбора(Строка, Вложения, ТекущееВложение, "Тогда", Контекст); ИначеЕсли ТекущееВложение.Уточнение = "Тогда" Тогда @@ -40466,8 +40551,8 @@ УстановитьОшибкуВСтроке(Строка, ПодставитьКлючевыеСловаВСтроку(Контекст, НСтр("ru = 'Ключевое слово ""%1"" указано повторно'"), "Иначе")); КонецЕсли; - УдалитьПоследнееВложение(Вложения, ТекущееВложение); - ДобавитьВложение(Строка, Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); + ДобавитьВложение(Строка, Вложения, ТекущееВложение, Контекст); Иначе // Строка.Уточнение = "Конец" @@ -40484,20 +40569,20 @@ ИначеЕсли ТекущееВложение.Уточнение = "Когда" Тогда УстановитьОшибкуВСтроке(Строка, ПодставитьКлючевыеСловаВСтроку(Контекст, НСтр("ru = 'Ключевое слово ""%1"" указано до ключевых слов ""%2"" и ""%3""'"), "Конец,Тогда,Иначе")); - УдалитьПоследнееВложение(Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); ВосстановитьСтруктуруВыбора(Строка, Вложения, ТекущееВложение, "Тогда,Иначе", Контекст); ИначеЕсли ТекущееВложение.Уточнение = "Тогда" Тогда УстановитьОшибкуВСтроке(Строка, ПодставитьКлючевыеСловаВСтроку(Контекст, НСтр("ru = 'Ключевое слово ""%1"" указано до ключевого слова ""%2""'"), "Конец,Иначе")); - УдалитьПоследнееВложение(Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); ВосстановитьСтруктуруВыбора(Строка, Вложения, ТекущееВложение, "Иначе", Контекст); Иначе // ТекущееВложение.Уточнение = "Иначе". // Стандартная обработка после условия. КонецЕсли; - УдалитьПоследнееВложение(Вложения, ТекущееВложение); - УдалитьПоследнееВложение(Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); КонецЕсли; КонецЦикла; @@ -40512,13 +40597,13 @@ ИначеЕсли ТекущееВложение.Уточнение = "Когда" Тогда ТекстОшибки = ПодставитьКлючевыеСловаВСтроку(Контекст, НСтр("ru = 'После ключевого слова ""%1"" не указаны ключевые слова ""%2"", ""%3"", ""%4""'"), "Когда,Тогда,Иначе,Конец"); - УдалитьПоследнееВложение(Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); ВосстановитьСтруктуруВыбора(ТекущееВложение, Вложения, ТекущееВложение, "Тогда,Иначе", Контекст); ИначеЕсли ТекущееВложение.Уточнение = "Тогда" Тогда ТекстОшибки = ПодставитьКлючевыеСловаВСтроку(Контекст, НСтр("ru = 'После ключевого слова ""%1"" не указаны ключевые слова ""%2"" и ""%3""'"), "Тогда,Иначе,Конец"); - УдалитьПоследнееВложение(Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); ВосстановитьСтруктуруВыбора(ТекущееВложение, Вложения, ТекущееВложение, "Иначе", Контекст); Иначе // ТекущееВложение.Уточнение = "Иначе" @@ -40526,8 +40611,8 @@ НСтр("ru = 'После ключевого слова ""%1"" не указано ключевое слово ""%2""'"), "Иначе,Конец"); КонецЕсли; УстановитьОшибкуВСтроке(ТекущееВложение, ТекстОшибки, Истина); - УдалитьПоследнееВложение(Вложения, ТекущееВложение); - УдалитьПоследнееВложение(Вложения, ТекущееВложение); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); + УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст); КонецЦикла; Возврат Результат; @@ -40537,18 +40622,20 @@ // Для процедуры РазобратьУсловие. // // Параметры: -// Строки - см. ТаблицаНаборовСимволов +// Строки - Массив из см. СтрокаТаблицы.ОписаниеСтроки // Функция ФункцииСВыражениямиВСкобках(Строки, ВнутренниеДанные) Результат = Новый Массив; + СтрокаРезультата = Новый Структура("Строки", Результат); + КоличествоСтрок = Строки.Количество(); Строка = Неопределено; Индекс = 0; Пока Индекс < КоличествоСтрок Цикл ПредыдущаяСтрока = Строка; // СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов - Строка = Строки[Индекс]; + Строка = СтрокаТаблицы(Строки[Индекс], ВнутренниеДанные); Если Строка.Символы = "(" Тогда Строка.Строки = ФункцииСВыражениямиВСкобках(Строка.Строки, ВнутренниеДанные); @@ -40557,12 +40644,15 @@ И ( Строка.Тип = "Функция" Или Строка.Уточнение = "В" ) Тогда + СледующаяСтрока = ?(Индекс + 1 < Строки.Количество(), + СтрокаТаблицы(Строки[Индекс + 1], ВнутренниеДанные), Неопределено); + Если Индекс + 1 < Строки.Количество() - И Строки[Индекс + 1].Символы = "(" Тогда + И СледующаяСтрока.Символы = "(" Тогда Индекс = Индекс + 1; - Строка.Строки = ФункцииСВыражениямиВСкобках(Строки[Индекс].Строки, ВнутренниеДанные); - Строка.КонечнаяСтрока = Строки[Индекс].КонечнаяСтрока; + Строка.Строки = ФункцииСВыражениямиВСкобках(СледующаяСтрока.Строки, ВнутренниеДанные); + Строка.КонечнаяСтрока = СледующаяСтрока.КонечнаяСтрока; Если Строка.Строки.Количество() = 0 Тогда Если Строка.Тип = "Функция" Тогда @@ -40587,12 +40677,15 @@ ИначеЕсли Строка.Вид = "КлючевоеСлово" И Строка.Уточнение = "Есть" Тогда + СледующаяСтрока = ?(Индекс + 1 < Строки.Количество(), + СтрокаТаблицы(Строки[Индекс + 1], ВнутренниеДанные), Неопределено); + Если Индекс + 1 < Строки.Количество() - И Строки[Индекс + 1].Вид = "КлючевоеСлово" - И Строки[Индекс + 1].Уточнение = "Null" Тогда + И СледующаяСтрока.Вид = "КлючевоеСлово" + И СледующаяСтрока.Уточнение = "Null" Тогда Индекс = Индекс + 1; - Строка.Строки.Добавить(Строки[Индекс]); + СтрокаДобавить(Строка, СледующаяСтрока, ВнутренниеДанные); Иначе Строка.Строки = Новый Массив; УстановитьОшибкуВСтроке(Строка, ПодставитьКлючевыеСловаВСтроку(ВнутренниеДанные, @@ -40611,8 +40704,7 @@ И ПредыдущаяСтрока.Уточнение = "Выразить" Тогда Строка.Тип = "ДополнениеКВыразить"; - ПредыдущаяСтрокаСтроки = ПредыдущаяСтрока.Строки; // Массив - ПредыдущаяСтрокаСтроки.Добавить(Строка); + СтрокаДобавить(ПредыдущаяСтрока, Строка, ВнутренниеДанные); Индекс = Индекс + 1; Продолжить; Иначе @@ -40621,7 +40713,7 @@ КонецЕсли; КонецЕсли; - Результат.Добавить(Строка); + СтрокаДобавить(СтрокаРезультата, Строка, ВнутренниеДанные); Индекс = Индекс + 1; КонецЦикла; @@ -40630,29 +40722,29 @@ КонецФункции // Для функций ВыраженияВСкобкахВоВложениях, ВыраженияВыборКогдаТогдаВоВложениях. -Процедура ДобавитьВложение(Строка, Вложения, ТекущееВложение) +Процедура ДобавитьВложение(Строка, Вложения, ТекущееВложение, Контекст) - ТекущееВложение.Строки.Добавить(Строка); + СтрокаДобавить(ТекущееВложение, Строка, Контекст); ТекущееВложение = Строка; Вложения.Добавить(ТекущееВложение); КонецПроцедуры // Для функций ВыраженияВСкобкахВоВложениях, ВыраженияВыборКогдаТогдаВоВложениях. -Процедура УдалитьПоследнееВложение(Вложения, ТекущееВложение, КонечнаяСтрока = Неопределено) +Процедура УдалитьПоследнееВложение(Вложения, ТекущееВложение, Контекст, КонечнаяСтрока = Неопределено) Если КонечнаяСтрока = Неопределено Тогда Если ТекущееВложение.Строки.Количество() = 0 Тогда КонечнаяСтрока = ТекущееВложение; Иначе - КонечнаяСтрока = ТекущееВложение.Строки[ТекущееВложение.Строки.Количество() - 1]; + КонечнаяСтрока = СтрокаТаблицы(ТекущееВложение.Строки[ТекущееВложение.Строки.Количество() - 1], Контекст); Если КонечнаяСтрока.КонечнаяСтрока <> Неопределено Тогда - КонечнаяСтрока = КонечнаяСтрока.КонечнаяСтрока; + КонечнаяСтрока = СтрокаТаблицы(КонечнаяСтрока.КонечнаяСтрока, Контекст); КонецЕсли; КонецЕсли; КонецЕсли; - ТекущееВложение.КонечнаяСтрока = КонечнаяСтрока; + ТекущееВложение.КонечнаяСтрока = Контекст.ТаблицаНаборовСимволов.Индекс(КонечнаяСтрока); ИндексПоследнегоВложения = Вложения.Количество() - 1; Вложения.Удалить(ИндексПоследнегоВложения); @@ -40692,11 +40784,8 @@ // * Тип - Строка // * Приоритет - Число // * Уточнение - Строка -// * ИсходнаяСтрока - Структура: -// ** Строки - Массив из см. ТаблицаНаборовСимволов -// ** Уточнение - Строка -// * Строки - Массив из см. ТаблицаНаборовСимволов -// * КонечнаяСтрока - СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов +// * Строки - Массив из Число - индексы строк ТаблицаНаборовСимволов +// * КонечнаяСтрока - Число - индекс строки ТаблицаНаборовСимволов // * ПозицияОшибки - Число // * ТекстОшибки - Строка // @@ -40707,9 +40796,8 @@ НоваяСтрока.Вставить("Вид"); НоваяСтрока.Вставить("Тип"); НоваяСтрока.Вставить("Приоритет"); - НоваяСтрока.Вставить("Уточнение", Уточнение); - НоваяСтрока.Вставить("ИсходнаяСтрока", Строка); - НоваяСтрока.Вставить("Строки", Новый Массив); + НоваяСтрока.Вставить("Уточнение", Уточнение); + НоваяСтрока.Вставить("Строки", Новый Массив); НоваяСтрока.Вставить("КонечнаяСтрока"); НоваяСтрока.Вставить("ПозицияОшибки"); НоваяСтрока.Вставить("ТекстОшибки"); @@ -40730,7 +40818,7 @@ // Для процедур РазобратьДополнительныеТаблицы, РазобратьУсловиеОграничения. // // Параметры: -// СтрокиЧасти - см. ТаблицаНаборовСимволов +// СтрокиЧасти - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // Процедура ИзменитьВидКлючевогоСловаСписокНаИмя(СтрокиЧасти, ИсключаемаяСтрока = Неопределено) @@ -40749,7 +40837,7 @@ // Для процедур РазобратьДополнительныеТаблицы, РазобратьСоединение. // // Параметры: -// СтрокиЧасти - см. ТаблицаНаборовСимволов +// СтрокиЧасти - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // Процедура УстановитьПсевдоним(СтрокаЧасти, ОписаниеСоединения, ВнутренниеДанные) @@ -40785,7 +40873,7 @@ // Для процедуры РазобратьСоединение. // // Параметры: -// СтрокиЧасти - см. ТаблицаНаборовСимволов +// СтрокиЧасти - Массив из СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // Процедура УстановитьИмяТаблицы(СтрокаЧасти, ОписаниеСоединения, ВнутренниеДанные) diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl index de9a41bc9..41e1a117f 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl @@ -471,6 +471,52 @@ КонецФункции +// Параметры: +// Пользователь - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// - Неопределено - проверить для текущего пользователя. +// +// Возвращаемое значение: +// Булево +// +Функция ЭтоПользовательБезОграниченияДоступа(Пользователь = Неопределено) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ИнтерфейсOData") Тогда + Возврат Ложь; + КонецЕсли; + + МодульИнтерфейсODataСлужебный = ОбщегоНазначения.ОбщийМодуль("ИнтерфейсODataСлужебный"); + РольИнтерфейсаOData = МодульИнтерфейсODataСлужебный.РольИнтерфейсаOData(); + + Если Пользователь = Неопределено + Или Пользователь = Пользователи.АвторизованныйПользователь() Тогда + Возврат ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(РольИнтерфейсаOData); + КонецЕсли; + + Если Не ЗначениеЗаполнено(Пользователь) + Или ТипЗнч(Пользователь) <> Тип("СправочникСсылка.Пользователи") + И ТипЗнч(Пользователь) <> Тип("СправочникСсылка.ВнешниеПользователи") Тогда + Возврат Ложь; + КонецЕсли; + + ИдентификаторПользователяИБ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователь, + "ИдентификаторПользователяИБ"); + + Если ТипЗнч(ИдентификаторПользователяИБ) <> Тип("УникальныйИдентификатор") Тогда + Возврат Ложь; + КонецЕсли; + + ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору( + ИдентификаторПользователяИБ); + + Если ПользовательИБ = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ПользовательИБ.Роли.Содержит(РольИнтерфейсаOData); + +КонецФункции + // Возвращаемое значение: // ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl index 21901c50d..c58cbe256 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl @@ -643,7 +643,8 @@ Возврат Результат; КонецЕсли; - ТелефонПоПолям = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Перечисления.ТипыКонтактнойИнформации.Телефон); + ТелефонПоПолям = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, + Перечисления.ТипыКонтактнойИнформации.Телефон); Результат.Представление = Строка(ТелефонПоПолям.Value); Результат.КодСтраны = Строка(ТелефонПоПолям.CountryCode); @@ -716,7 +717,10 @@ Возврат КонтактнаяИнформация; КонецЕсли; - КонтактнаяИнформацияПоПолям = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, ОжидаемыйВид,, Ложь); + НастройкиКонвертации = НастройкиКонвертацииКонтактнойИнформации(); + НастройкиКонвертации.ОбновлятьИдентификаторы = Ложь; + + КонтактнаяИнформацияПоПолям = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, ОжидаемыйВид, НастройкиКонвертации); Возврат УправлениеКонтактнойИнформациейСлужебный.СтруктураВСтрокуJSON(КонтактнаяИнформацияПоПолям); КонецФункции @@ -1788,6 +1792,8 @@ ПараметрыВыводаКонтактнойИнформации.Вставить("РазмещеныНаФорме", РазмещеныНаФорме); ПараметрыВыводаКонтактнойИнформации.Вставить("РазрешитьДобавлениеПолей", РазрешитьДобавлениеПолей); ПараметрыВыводаКонтактнойИнформации.Вставить("ОбработкаНавигационнойСсылки", ОбработкаНавигационнойСсылки); + ПараметрыВыводаКонтактнойИнформации.Вставить("ПоложениеКнопкиДобавить", НастройкиКИ.ПоложениеКнопкиДобавить); + ПараметрыВыводаКонтактнойИнформации.Вставить("ШиринаПоляКомментарий", НастройкиКИ.ШиринаПоляКомментарий); СкрытьКонтактнуюИнформацию(Форма, ДобавляемыеРеквизиты, ПараметрыВыводаКонтактнойИнформации); @@ -1888,6 +1894,8 @@ ДополнительныеПараметры = ДополнительныеПараметрыВыводаКонтактнойИнформации(НастройкиКИ.ОписаниеКоманд, НастройкиКИ.ОтображатьИконки, РазмещеныНаФорме, РазрешитьДобавлениеПолей, ИсключаемыеВиды, СкрываемыеВиды); + ДополнительныеПараметры.ПоложениеКнопкиДобавить = НастройкиКИ.ПоложениеКнопкиДобавить; + ДополнительныеПараметры.ШиринаПоляКомментарий = НастройкиКИ.ШиринаПоляКомментарий; ПараметрыКонтактнойИнформации = ПараметрыВыводаКонтактнойИнформации(Форма, ИмяЭлементаДляРазмещения, ПоложениеЗаголовкаКИ, ОтложеннаяИнициализация, ДополнительныеПараметры); @@ -1920,7 +1928,7 @@ ГруппаЗначенияКомандыКИ.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; ГруппаЗначенияКомандыКИ.ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеЭлемента.Право; ГруппаЗначенияКомандыКИ.РастягиватьПоГоризонтали = Ложь; - ГруппаЗначенияКомандыКИ.Объединенная = Ложь; + ГруппаЗначенияКомандыКИ.Объединенная = Ложь; КонецЕсли; ИмяГруппы = "ГруппаЗначенияКИ"+ИмяЭлементаДляРазмещения; @@ -2948,7 +2956,7 @@ // страны в представление адреса. // ** ПроверятьКорректность - Булево - для типа АдресЭлектроннойПочты .Если Истина, если требуется запрещать // пользователю записывать некорректный адрес электронной почты. -// ** ТелефонCДобавочнымНомером - Булево - для типа Телефон или Факс. Если Истина, то телефон/факс содержит +// ** ТелефонСДобавочнымНомером - Булево - для типа Телефон или Факс. Если Истина, то телефон/факс содержит // добавочный номер. // ** ВводитьНомерПоМаске - Булево - для типа Телефон или Факс. Если Истина, если требуется ввод телефона по маске. // ** МаскаНомераТелефона - Строка - для типа Телефон или Факс. Содержит посимвольную строку маски @@ -3004,6 +3012,10 @@ НастройкиПроверки = НастройкиПроверкиПараметровКонтактнойИнформации(Параметры.Тип); Если ПроверятьНастройки Тогда + Если Параметры.НастройкиПроверки.Свойство("ТелефонCДобавочнымНомером") + И Параметры.НастройкиПроверки.ТелефонCДобавочнымНомером Тогда + НастройкиПроверки.ТелефонСДобавочнымНомером = Параметры.НастройкиПроверки.ТелефонCДобавочнымНомером; + КонецЕсли; ЗаполнитьЗначенияСвойств(НастройкиПроверки, Параметры.НастройкиПроверки); КонецЕсли; @@ -3012,7 +3024,7 @@ ИначеЕсли ПроверятьНастройки И Параметры.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда УстановитьЗначенияРеквизитовПроверки(Объект, НастройкиПроверки); ИначеЕсли ПроверятьНастройки И Параметры.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда - Объект.ТелефонCДобавочнымНомером = НастройкиПроверки.ТелефонCДобавочнымНомером; + Объект.ТелефонСДобавочнымНомером = НастройкиПроверки.ТелефонСДобавочнымНомером; Объект.МаскаНомераТелефона = НастройкиПроверки.МаскаНомераТелефона; Объект.ВводитьНомерПоМаске = НастройкиПроверки.ВводитьНомерПоМаске; Иначе @@ -3176,7 +3188,7 @@ // ** УказыватьОКТМО - Булево - для типа Адрес. признак возможности ручного ввода кода ОКМТО в форме ввода адреса. // ** ПроверятьКорректность - Булево - для типа АдресЭлектроннойПочты. Если Истина, то запрещается пользователю ввод // некорректный адрес электронной почты. Значение по умолчанию - Ложь. -// ** ТелефонCДобавочнымНомером - Булево - для типа Телефон и Факс. Если Истина, то в форме ввода телефона +// ** ТелефонСДобавочнымНомером - Булево - для типа Телефон и Факс. Если Истина, то в форме ввода телефона // доступен ввод добавочного номера. Значение по умолчанию - Истина. // Функция ПараметрыВидаКонтактнойИнформации(ТипИлиВидКонтактнойИнформации = Неопределено) Экспорт @@ -4057,7 +4069,7 @@ КонецЦикла; Иначе - + Если ОбъектКонтактнойИнформации.ЭтоИсторическаяКонтактнаяИнформация Тогда СкорректироватьКонтактнуюИнформацию(Форма, ОбъектКонтактнойИнформации); Продолжить; @@ -4138,6 +4150,10 @@ ДополнительныеПараметры = ДополнительныеПараметрыВыводаКонтактнойИнформации(ПараметрыВывода.ОписаниеКоманд, ПараметрыВывода.ОтображатьИконки, ПараметрыВывода.РазмещеныНаФорме, ПараметрыВывода.РазрешитьДобавлениеПолей, ПараметрыВывода.ИсключаемыеВиды, ПараметрыВывода.СкрываемыеВиды); + + ДополнительныеПараметры.ПоложениеКнопкиДобавить = ПараметрыВывода.ПоложениеКнопкиДобавить; + ДополнительныеПараметры.ШиринаПоляКомментарий = ПараметрыВывода.ШиринаПоляКомментарий; + ПараметрыКонтактнойИнформации = ПараметрыВыводаКонтактнойИнформации(Форма, ПараметрыВывода.ИмяЭлементаДляРазмещения, ПараметрыВывода.ПоложениеЗаголовкаКИ, ПараметрыВывода.ОтложеннаяИнициализация, ДополнительныеПараметры); @@ -4152,11 +4168,19 @@ Процедура ДобавитьКнопкуДополнительногоПоляКонтактнойИнформации(Знач Форма, Знач ИмяЭлементаДляРазмещения) + ПараметрыКонтактнойИнформацииЭлемента = Форма.ПараметрыКонтактнойИнформации[ИмяЭлементаДляРазмещения]; // см. ПараметрыВыводаКонтактнойИнформации + Описание = НСтр("ru = 'Добавить дополнительное поле контактной информации'"); ГруппаКоманды = Группа("ГруппаКонтактнаяИнформацияДобавитьПолеВвода" + ИмяЭлементаДляРазмещения, Форма, Описание, ИмяЭлементаДляРазмещения, "ГруппаЗначенияКомандыКИ"+ИмяЭлементаДляРазмещения); ГруппаКоманды.Отображение = ОтображениеОбычнойГруппы.ОбычноеВыделение; - ГруппаКоманды.ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеЭлемента.Право; + Если ПараметрыКонтактнойИнформацииЭлемента.ПоложениеКнопкиДобавить = "Авто" + Или ПараметрыКонтактнойИнформацииЭлемента.ПоложениеКнопкиДобавить = "Право" Тогда + ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеЭлемента.Право; + Иначе + ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеЭлемента.Лево; + КонецЕсли; + ГруппаКоманды.ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеВГруппе; ИмяКоманды = "КонтактнаяИнформацияДобавитьПолеВвода" + ИмяЭлементаДляРазмещения; Команда = Форма.Команды.Добавить(ИмяКоманды); @@ -4167,7 +4191,6 @@ КонецЕсли; Команда.Действие = "Подключаемый_КонтактнаяИнформацияВыполнитьКоманду"; - ПараметрыКонтактнойИнформацииЭлемента = Форма.ПараметрыКонтактнойИнформации[ИмяЭлементаДляРазмещения]; // см. ПараметрыВыводаКонтактнойИнформации ПараметрыКонтактнойИнформацииЭлемента.ДобавленныеЭлементы.Добавить(ИмяКоманды, 9, Истина); Кнопка = Форма.Элементы.Добавить(ИмяКоманды,Тип("КнопкаФормы"), ГруппаКоманды); @@ -4175,11 +4198,11 @@ Кнопка.Заголовок = "+ " + НСтр("ru = 'Телефон, адрес'"); Команда.ИзменяетСохраняемыеДанные = Истина; Кнопка.ИмяКоманды = ИмяКоманды; - Кнопка.ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеЭлемента.Право; + Кнопка.ГоризонтальноеПоложениеВГруппе = ГоризонтальноеПоложениеВГруппе; Кнопка.ПоложениеКартинки = ПоложениеКартинкиКнопкиФормы.Право; ПараметрыКонтактнойИнформацииЭлемента.ДобавленныеЭлементы.Добавить(ИмяКоманды, 2, Ложь); - Если НЕ ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + Если НЕ ОбщегоНазначения.ЭтоМобильныйКлиент() И ПараметрыКонтактнойИнформацииЭлемента.ПоложениеКнопкиДобавить = "Авто" Тогда // Определение варианта отображения кнопки (Слева, с отступом, без отступа) // Обработка ситуации, когда на форме выводится одновременно динамическая и статическая контактная информация. ЭлементыГруппыДляРазмещения = Форма.Элементы[ИмяЭлементаДляРазмещения].ПодчиненныеЭлементы; @@ -4487,7 +4510,11 @@ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 поле, комментарий'"), ДобавляемыйВид.Наименование), ИмяЭлементаДляРазмещения, "Группа" + ИмяРеквизита, 4); Иначе - ГруппаПолеКомментарий = ГруппаСтроки; + ГруппаПолеКомментарий = ГруппаСтроки; + КонецЕсли; + + Если ПараметрыКонтактнойИнформации.ГруппаДляРазмещенияОграниченаШириной Тогда + Форма.Элементы[ИмяЭлементаДляРазмещения].РастягиватьПоГоризонтали = Ложь; КонецЕсли; ПолеВвода = СоздатьПолеВвода(Форма, ГруппаПолеКомментарий, ИнформацияОВидеКИ, ИмяРеквизита, ИмяЭлементаДляРазмещения, ЭтоНовыйВидКИ, ОбязательноеЗаполнение); @@ -4505,8 +4532,9 @@ ПолеКомментарий.ПропускатьПриВводе = Истина; ПолеКомментарий.ПодсказкаВвода = НСтр("ru='Примечание'"); ПолеКомментарий.АвтоМаксимальнаяШирина = Ложь; - ПолеКомментарий.МаксимальнаяШирина = 30; - ПолеКомментарий.Ширина = 30; + ШиринаПоляКомментарий = ?(ПараметрыКонтактнойИнформации.ГруппаДляРазмещенияОграниченаШириной, ПараметрыКонтактнойИнформации.ШиринаПоляКомментарий, 30); + ПолеКомментарий.МаксимальнаяШирина = ШиринаПоляКомментарий; + ПолеКомментарий.Ширина = ШиринаПоляКомментарий; ПолеКомментарий.РастягиватьПоГоризонтали = Ложь; ПолеКомментарий.РастягиватьПоВертикали = Ложь; ПолеКомментарий.УстановитьДействие("ПриИзменении", "Подключаемый_КонтактнаяИнформацияПриИзменении"); @@ -4558,6 +4586,8 @@ Элемент = Форма.Элементы.Добавить(ИмяРеквизита, Тип("ПолеФормы"), Родитель); // ПолеФормы, РасширениеПоляФормыДляПоляВвода, РасширениеПоляФормыДляПоляНадписи Элемент.ПутьКДанным = ИмяРеквизита; + ГруппаДляРазмещенияОграниченаШириной = ПараметрыКонтактнойИнформации.ГруппаДляРазмещенияОграниченаШириной; + Если ИнформацияОВидеКИ.ВидРедактирования = "Диалог" И ИнформацияОВидеКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда Элемент.Вид = ВидПоляФормы.ПолеНадписи; @@ -4638,7 +4668,6 @@ Если НайденныеСтроки.Количество() > 0 Тогда НайденныеСтроки[0].Маска = ИнформацияОВидеКИ.МаскаНомераТелефона; КонецЕсли; - КонецЕсли; ИначеЕсли ИнформацияОВидеКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Другое Тогда @@ -4661,14 +4690,8 @@ Иначе Элемент.Ширина = 40; КонецЕсли; - ИначеЕсли ИнформацияОВидеКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Skype Тогда - Элемент.Ширина = 40; Иначе - Если ИнформацияОВидеКИ.ВидРедактирования = "ПолеВвода" Тогда - Элемент.Ширина = 40; - Иначе - Элемент.Ширина = 35; - КонецЕсли; + Элемент.Ширина = 40; КонецЕсли; Если Не ЭтоНовыйВидКИ Тогда @@ -4732,6 +4755,13 @@ КонецЕсли; + Если ГруппаДляРазмещенияОграниченаШириной Тогда + Элемент.Ширина = 0; + Элемент.МаксимальнаяШирина = 0; + Элемент.АвтоМаксимальнаяШирина = Ложь; + Элемент.РастягиватьПоГоризонтали = Истина + КонецЕсли; + Возврат Элемент; КонецФункции @@ -4764,6 +4794,8 @@ ИЛИ ГруппаСтроки.Родитель = Форма.Элементы["ГруппаЗначенияКИ"+ИмяЭлементаДляРазмещения] Тогда Форма.Элементы.Переместить(ГруппаСтроки, Форма.Элементы["ГруппаЗначенияКИ"+ИмяЭлементаДляРазмещения]); КонецЕсли; + ПараметрыКонтактнойИнформации = ПараметрыКонтактнойИнформацииФормы(Форма.ПараметрыКонтактнойИнформации, ИмяЭлементаДляРазмещения); + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Если Форма.Элементы.Найти(СтрокаКИ.ИмяРеквизита) <> Неопределено Тогда @@ -4779,8 +4811,7 @@ ГруппаСтрокиЗаголовокКартинка = Группа("ГруппаЗаголовокКартинка" + СтрокаКИ.ИмяРеквизита, Форма, ГруппаСтроки.Заголовок, ИмяЭлементаДляРазмещения, "ГруппаЗаголовок" + СтрокаКИ.ИмяРеквизита); - ПараметрыКонтактнойИнформации = ПараметрыКонтактнойИнформацииФормы(Форма.ПараметрыКонтактнойИнформации, ИмяЭлементаДляРазмещения); - + ИмяЭлементаКартинка = "Картинка" + СтрокаКИ.ИмяРеквизита; Если Форма.Элементы.Найти(ИмяЭлементаКартинка) <> Неопределено Тогда ЭлементКартинка = Форма.Элементы[ИмяЭлементаКартинка]; @@ -4813,6 +4844,23 @@ Иначе + Если ПараметрыКонтактнойИнформации.ГруппаДляРазмещенияОграниченаШириной Тогда + Если Форма.Элементы.Найти(СтрокаКИ.ИмяРеквизита) <> Неопределено Тогда + ПолеВвода = Форма.Элементы[СтрокаКИ.ИмяРеквизита]; + ПолеВвода.Ширина = 0; + ПолеВвода.МаксимальнаяШирина = 0; + ПолеВвода.АвтоМаксимальнаяШирина = Ложь; + ПолеВвода.РастягиватьПоГоризонтали = Истина; + КонецЕсли; + + ИмяЭлементаКомментарий = "Комментарий" + СтрокаКИ.ИмяРеквизита; + Если Форма.Элементы.Найти(ИмяЭлементаКомментарий) <> Неопределено Тогда + ПолеКомментарий = Форма.Элементы[ИмяЭлементаКомментарий]; + ПолеКомментарий.МаксимальнаяШирина = ПараметрыКонтактнойИнформации.ШиринаПоляКомментарий; + ПолеКомментарий.Ширина = ПараметрыКонтактнойИнформации.ШиринаПоляКомментарий; + КонецЕсли; + КонецЕсли; + ИмяЭлементаКартинка = "Картинка" + СтрокаКИ.ИмяРеквизита; Если ОтображатьИконки И Форма.Элементы.Найти(ИмяЭлементаКартинка) = Неопределено Тогда Если ГруппаСтроки.Родитель = Форма.Элементы["ГруппаЗначенияКИ"+ИмяЭлементаДляРазмещения] Тогда @@ -5267,7 +5315,6 @@ КонецПроцедуры - Процедура КонвертацияКонтактнойИнформацииВJSON(КонтактнаяИнформация) // Конвертация @@ -5275,14 +5322,20 @@ Если ПустаяСтрока(СтрокаКИ.Значение) Тогда Если ЗначениеЗаполнено(СтрокаКИ.ЗначенияПолей) Тогда + НастройкиКонвертации = НастройкиКонвертацииКонтактнойИнформации(); + НастройкиКонвертации.ОбновлятьИдентификаторы = Ложь; + НастройкиКонвертации.ВосстанавливатьКонтактнуюИнформацию = Ложь; + НастройкиКонвертации.Представление = СтрокаКИ.Представление; + КонтактнаяИнформацияПоПолям = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияВСтруктуруJSON(СтрокаКИ.ЗначенияПолей, - СтрокаКИ.Тип, СтрокаКИ.Представление, Ложь); + СтрокаКИ.Тип, НастройкиКонвертации); + + Если СтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес + И УправлениеКонтактнойИнформациейКлиентСервер.ЭтоАдресВСвободнойФорме(КонтактнаяИнформацияПоПолям.AddressType) Тогда + Продолжить; + КонецЕсли; СтрокаКИ.Значение = УправлениеКонтактнойИнформациейСлужебный.СтруктураВСтрокуJSON(КонтактнаяИнформацияПоПолям); - ИначеЕсли ЗначениеЗаполнено(СтрокаКИ.Представление) Тогда - - СтрокаКИ.Значение = КонтактнаяИнформацияПоПредставлению(СтрокаКИ.Представление, СтрокаКИ.Тип); - КонецЕсли; КонецЕсли; @@ -5295,6 +5348,16 @@ КонецПроцедуры +Функция НастройкиКонвертацииКонтактнойИнформации() Экспорт + + Результат = Новый Структура(); + Результат.Вставить("ОбновлятьИдентификаторы", Истина); + Результат.Вставить("ВосстанавливатьКонтактнуюИнформацию", Истина); + Результат.Вставить("Представление", ""); + Возврат Результат; + +КонецФункции + Процедура СоздатьЭлементыТабличнойЧасти(Знач Форма, Знач ИмяОбъекта, ИмяЭлементаДляРазмещения, Знач СтрокаКонтактнойИнформации, Знач ДанныеВидаКонтактнойИнформации) @@ -5469,7 +5532,12 @@ Если УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ДоступенМодульЛокализации() Тогда МодульУправлениеКонтактнойИнформациейЛокализация = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформациейЛокализация"); - Результат = МодульУправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияИзXML(СтрокаКИ.ЗначенияПолей, СтрокаКИ.Вид, РезультатПреобразования, СтрокаКИ.Представление); + НастройкиКонвертации = НастройкиКонвертацииКонтактнойИнформации(); + НастройкиКонвертации.Представление = СтрокаКИ.Представление; + НастройкиКонвертации.ВосстанавливатьКонтактнуюИнформацию = Ложь; + + Результат = МодульУправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияИзXML(СтрокаКИ.ЗначенияПолей, + СтрокаКИ.Вид, РезультатПреобразования, НастройкиКонвертации); СтрокаКИ.Комментарий = ?(ЗначениеЗаполнено(Результат.Комментарий), Результат.Комментарий, ""); Если РезультатПреобразования.Количество() = 0 Тогда @@ -5659,19 +5727,8 @@ // - ПоложениеЗаголовкаЭлементаФормы // ОтложеннаяИнициализация - Массив // - Булево -// ДополнительныеПараметры - Структура: -// * ОписаниеКоманд - см. ОписаниеКоманд -// * ОтображатьИконки - Булево -// * РазмещеныНаФорме - Соответствие из КлючИЗначение: -// * Ключ - СправочникСсылка.ВидыКонтактнойИнформации -// * Значение - Булево. -// - Неопределено -// * РазрешитьДобавлениеПолей - Булево -// * ИсключаемыеВиды - Массив -// - Неопределено -// * СкрываемыеВиды - Массив -// - Неопределено -// +// ДополнительныеПараметры - см. ДополнительныеПараметрыВыводаКонтактнойИнформации +// // Возвращаемое значение: // Структура: // * ГруппаДляРазмещения - Строка @@ -5698,6 +5755,9 @@ // * Значение - Булево // - Неопределено // * РазрешитьДобавлениеПолей - Булево +// * ШиринаПоляКомментарий - Число +// * ПоложениеКнопкиДобавить - Строка - может принимать следующие значения: "Лево", "Право", "Авто". +// * ГруппаДляРазмещенияОграниченаШириной - Булево // Функция ПараметрыВыводаКонтактнойИнформации(Форма, ИмяЭлементаДляРазмещения, ПоложениеЗаголовкаКИ, ОтложеннаяИнициализация, ДополнительныеПараметры) @@ -5730,6 +5790,9 @@ ПараметрыКонтактнойИнформации.Вставить("ОтображатьИконки", ДополнительныеПараметры.ОтображатьИконки); ПараметрыКонтактнойИнформации.Вставить("РазмещеныНаФорме", ДополнительныеПараметры.РазмещеныНаФорме); ПараметрыКонтактнойИнформации.Вставить("РазрешитьДобавлениеПолей", ДополнительныеПараметры.РазрешитьДобавлениеПолей); + ПараметрыКонтактнойИнформации.Вставить("ШиринаПоляКомментарий", ДополнительныеПараметры.ШиринаПоляКомментарий); + ПараметрыКонтактнойИнформации.Вставить("ПоложениеКнопкиДобавить", Строка(ДополнительныеПараметры.ПоложениеКнопкиДобавить)); + ПараметрыКонтактнойИнформации.Вставить("ГруппаДляРазмещенияОграниченаШириной", ГруппаДляРазмещенияОграниченаШириной(Форма.Элементы[ИмяЭлементаДляРазмещения])); ПараметрыАдреса = Новый Структура("ТипПомещения, Страна, Индекс", "Квартира"); ПараметрыКонтактнойИнформации.Вставить("ПараметрыАдреса", ПараметрыАдреса); @@ -5739,6 +5802,30 @@ КонецФункции +// Проверяет наличие ограничения по ширине в группе, включая всех родителей группы. +// Ограничением читается ширина меньше 90 +// +Функция ГруппаДляРазмещенияОграниченаШириной(Группа) + + ОграничениеПоШирине = Ложь; + ПроверитьГруппуНаОграничениеПоШиринеРекурсивно(Группа, ОграничениеПоШирине); + + Возврат ОграничениеПоШирине; + +КонецФункции + +Процедура ПроверитьГруппуНаОграничениеПоШиринеРекурсивно(Группа, ОграничениеПоШирине) + + Если Группа.Ширина <> 0 И Группа.Ширина < 90 Тогда + ОграничениеПоШирине = Истина; + КонецЕсли; + + Если ТипЗнч(Группа) <> Тип("ФормаКлиентскогоПриложения") Тогда + ПроверитьГруппуНаОграничениеПоШиринеРекурсивно(Группа.Родитель, ОграничениеПоШирине); + КонецЕсли; + +КонецПроцедуры + Функция ГруппаВидовКонтактнойИнформацииОбъекта(Знач ПолноеИмяОбъектаМетаданных) Возврат ВидКонтактнойИнформацииПоИмени(СтрЗаменить(ПолноеИмяОбъектаМетаданных, ".", "")); @@ -5816,6 +5903,13 @@ КоличествоКоманд = КомандыДляВывода.Количество(); Если КоличествоКоманд = 0 Тогда + Если ПараметрыКИ.ГруппаДляРазмещенияОграниченаШириной Тогда + Декорация = Форма.Элементы.Добавить("Отступ" + ИмяРеквизита, Тип("ДекорацияФормы"), ГруппаДействий); + Декорация.Вид = ВидДекорацииФормы.Картинка; + Декорация.Ширина = 3; + Декорация.Заголовок = НСтр("ru='Отступ'"); + Декорация.Высота = 1; + КонецЕсли; Возврат; КонецЕсли; @@ -6027,9 +6121,6 @@ ПредставлениеАдреса = ""; Иначе ДанныеАдреса = Новый Структура("Представление, Адрес", ПредставлениеАдреса, Адрес.Значение); - Если СтрокаКИ.МеждународныйФорматАдреса Тогда - ДанныеАдреса.Адрес = КонтактнаяИнформацияПоПредставлению(ПредставлениеАдреса, Адрес.Тип); - КонецЕсли; СписокАдресовВПодменю.Вставить(ВРег(Адрес.Представление), ДанныеАдреса); КонецЕсли; @@ -6207,7 +6298,7 @@ | ВидыКонтактнойИнформации.ВидРедактирования КАК ВидРедактирования, | ВидыКонтактнойИнформации.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания, | ВидыКонтактнойИнформации.СкрыватьНеактуальныеАдреса КАК СкрыватьНеактуальныеАдреса, - | ВидыКонтактнойИнформации.ТелефонCДобавочнымНомером КАК ТелефонCДобавочнымНомером, + | ВидыКонтактнойИнформации.ТелефонСДобавочнымНомером КАК ТелефонСДобавочнымНомером, | ВидыКонтактнойИнформации.МаскаНомераТелефона КАК МаскаНомераТелефона, | ВидыКонтактнойИнформации.ВводитьНомерПоМаске КАК ВводитьНомерПоМаске, | ВидыКонтактнойИнформации.Тип КАК Тип, @@ -6249,7 +6340,7 @@ ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда ПараметрыВида.НастройкиПроверки.ПроверятьКорректность = ТекущиеПараметры.ПроверятьКорректность; ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда - ПараметрыВида.НастройкиПроверки.ТелефонCДобавочнымНомером = ТекущиеПараметры.ТелефонCДобавочнымНомером; + ПараметрыВида.НастройкиПроверки.ТелефонСДобавочнымНомером = ТекущиеПараметры.ТелефонСДобавочнымНомером; ПараметрыВида.НастройкиПроверки.МаскаНомераТелефона = ТекущиеПараметры.МаскаНомераТелефона; ПараметрыВида.НастройкиПроверки.ВводитьНомерПоМаске = ТекущиеПараметры.ВводитьНомерПоМаске; ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Другое Тогда @@ -6279,6 +6370,7 @@ ИначеЕсли ТипКонтактнойИнформации = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда НастройкиПроверки = Новый Структура; НастройкиПроверки.Вставить("ТелефонCДобавочнымНомером", Истина); + НастройкиПроверки.Вставить("ТелефонСДобавочнымНомером", Истина); НастройкиПроверки.Вставить("ВводитьНомерПоМаске", Ложь); НастройкиПроверки.Вставить("МаскаНомераТелефона", ""); КонецЕсли; @@ -6396,7 +6488,7 @@ // ** УказыватьОКТМО - Булево - для типа Адрес. признак возможности ручного ввода кода ОКМТО в форме ввода адреса. // ** ПроверятьКорректность - Булево - для типа АдресЭлектроннойПочты. Если Истина, то запрещается пользователю ввод // некорректный адрес электронной почты. Значение по умолчанию - Ложь. -// ** ТелефонCДобавочнымНомером - Булево - для типа Телефон или Факс. Если Истина, то в форме ввода телефона +// ** ТелефонСДобавочнымНомером - Булево - для типа Телефон или Факс. Если Истина, то в форме ввода телефона // доступен ввод добавочного номера. Значение по умолчанию - Истина. // Функция ОписаниеПараметровКонтактнойИнформации(Знач ТипКонтактнойИнформации) @@ -6754,6 +6846,8 @@ // - Неопределено // * СкрываемыеВиды - Массив // - Неопределено +// * ШиринаПоляКомментарий - Число +// * ПоложениеКнопкиДобавить - ГоризонтальноеПоложениеЭлемента // Функция ДополнительныеПараметрыВыводаКонтактнойИнформации(ОписаниеКоманд, ОтображатьИконки, РазмещеныНаФорме, РазрешитьДобавлениеПолей, ИсключаемыеВиды, СкрываемыеВиды) @@ -6765,6 +6859,8 @@ ДополнительныеПараметры.Вставить("РазрешитьДобавлениеПолей", РазрешитьДобавлениеПолей); ДополнительныеПараметры.Вставить("ИсключаемыеВиды", ИсключаемыеВиды); ДополнительныеПараметры.Вставить("СкрываемыеВиды", СкрываемыеВиды); + ДополнительныеПараметры.Вставить("ШиринаПоляКомментарий", 30); + ДополнительныеПараметры.Вставить("ПоложениеКнопкиДобавить", ГоризонтальноеПоложениеЭлемента.Лево); Возврат ДополнительныеПараметры; @@ -6775,6 +6871,8 @@ Настройки = Новый Структура; Настройки.Вставить("ОтображатьИконки", Ложь); Настройки.Вставить("ОписаниеКоманд", ОписаниеКоманд()); + Настройки.Вставить("ПоложениеКнопкиДобавить", ГоризонтальноеПоложениеЭлемента.Лево); + Настройки.Вставить("ШиринаПоляКомментарий", 30); УправлениеКонтактнойИнформациейПереопределяемый.ПриОпределенииНастроек(Настройки); diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl index 9aa0f2da9..5132539bd 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl @@ -1842,14 +1842,14 @@ // // Параметры: // Представление - Строка - представление контактной информации. -// Значение - Строка - значение полей контактной информации в формате JSON или ХML. +// Значение - Строка - значение полей контактной информации в формате JSON или XML. // Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации // Вид - СправочникСсылка.ВидыКонтактнойИнформации // // Возвращаемое значение: // Структура: // * Представление - Строка - представление контактной информации. -// * Значение - Строка - значение полей контактной информации в формате JSON или ХML. +// * Значение - Строка - значение полей контактной информации в формате JSON или XML. // * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации // * Вид - СправочникСсылка.ВидыКонтактнойИнформации // @@ -2056,8 +2056,8 @@ // Удаляет префикс строки. // // Параметры: -// ИсходнаяСтрока - Строка; -// Префикс - Строка. +// ИсходнаяСтрока - Строка +// Префикс - Строка // // Возвращаемое значение: // Строка @@ -2078,8 +2078,8 @@ // Удаляет постфикс строки. // // Параметры: -// ИсходнаяСтрока - Строка; -// Постфикс - Строка. +// ИсходнаяСтрока - Строка +// Постфикс - Строка // // Возвращаемое значение: // Строка diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl index ed74d6a6b..d48d12038 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl @@ -393,7 +393,7 @@ // * Значение - Булево // * ИсключаемыеВиды - Массив - устарело. Следует использовать РазмещеныНаФорме. // * РазрешитьДобавлениеПолей - Булево -// Тип - ПеречислениеСсылка.ТипКонтактнойИнформации +// Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации // Вид - СправочникСсылка.ВидыКонтактнойИнформации // ХранитьИсторию - Булево // diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl index e2ec4de9c..784b7ab11 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейЛокализация/Module.bsl @@ -8,10 +8,16 @@ #Область СлужебныеПроцедурыИФункции +// Параметры: +// Текст - Строка +// ОжидаемыйВид - ПеречислениеСсылка.ТипыКонтактнойИнформации, Неопределено +// РезультатПреобразования - Структура, Неопределено +// НастройкиКонвертации - см. УправлениеКонтактнойИнформацией.НастройкиКонвертацииКонтактнойИнформации +// // Возвращаемое значение: // см. XDTOПакет.КонтактнаяИнформация.КонтактнаяИнформация // -Функция КонтактнаяИнформацияИзXML(Знач Текст, Знач ОжидаемыйВид = Неопределено, РезультатПреобразования = Неопределено, Знач Представление = "") Экспорт +Функция КонтактнаяИнформацияИзXML(Знач Текст, Знач ОжидаемыйВид = Неопределено, РезультатПреобразования = Неопределено, НастройкиКонвертации = Неопределено) Экспорт ОжидаемыйТип = УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ТипВидаКонтактнойИнформации(ОжидаемыйВид); @@ -20,6 +26,13 @@ КонецЕсли; РезультатПреобразования.Вставить("СведенияИсправлены", Ложь); + Если НастройкиКонвертации = Неопределено Тогда + НастройкиКонвертации = УправлениеКонтактнойИнформацией.НастройкиКонвертацииКонтактнойИнформации(); + КонецЕсли; + + Представление = НастройкиКонвертации.Представление; + ВосстанавливатьКонтактнуюИнформацию = НастройкиКонвертации.ВосстанавливатьКонтактнуюИнформацию; + ПеречислениеАдрес = Перечисления.ТипыКонтактнойИнформации.Адрес; ПеречислениеАдресЭлектроннойПочты = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты; ПеречислениеSkype = Перечисления.ТипыКонтактнойИнформации.Skype; @@ -49,7 +62,7 @@ Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация")); // см. XDTOПакет.КонтактнаяИнформация.КонтактнаяИнформация Если ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Адрес И КонтактнаяИнформацияXDTOПустая(Результат) Тогда - НеобходимоВосстановитьКонтактнуюИнформацию = Истина; + НеобходимоВосстановитьКонтактнуюИнформацию = Истина; ИначеЕсли ПустаяСтрока(Результат.Представление) Тогда Результат.Представление = УправлениеКонтактнойИнформацией.ПредставлениеКонтактнойИнформации(Результат, ОжидаемыйВид); КонецЕсли; @@ -60,7 +73,8 @@ КонецПопытки; - Если НеобходимоВосстановитьКонтактнуюИнформацию Тогда + Если ВосстанавливатьКонтактнуюИнформацию И НеобходимоВосстановитьКонтактнуюИнформацию Тогда + ОписаниеПричиныОшибки = НСтр("ru = 'Сведения контактной информации были восстановлены после сбоя.'"); Если ЗначениеЗаполнено(Представление) Тогда Результат = КонтактнаяИнформацияXDTOПоПредставлению(Представление, ОжидаемыйВид); @@ -669,15 +683,17 @@ Возврат Результат; КонецФункции -Функция КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Тип, Представление) Экспорт +Функция КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Тип, НастройкиКонвертации) Экспорт Результат = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеНовойКонтактнойИнформации(Тип); Если ТипЗнч(КонтактнаяИнформация) = Тип("Строка") Тогда Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВXML(КонтактнаяИнформация) Тогда + РезультатПреобразования = Новый Структура; - XDTOКонтактнаяИнформация = КонтактнаяИнформацияИзXML(КонтактнаяИнформация, Тип, РезультатПреобразования, Представление); + + XDTOКонтактнаяИнформация = КонтактнаяИнформацияИзXML(КонтактнаяИнформация, Тип, РезультатПреобразования, НастройкиКонвертации); Иначе Если СтрЧислоВхождений(КонтактнаяИнформация, ",") = 9 Тогда @@ -685,7 +701,7 @@ Возврат Результат; Иначе - XDTOКонтактнаяИнформация = КонтактнаяИнформацияИзXML(КонтактнаяИнформация, Тип,, Представление); + XDTOКонтактнаяИнформация = КонтактнаяИнформацияИзXML(КонтактнаяИнформация, Тип,, НастройкиКонвертации); КонецЕсли; КонецЕсли; Иначе @@ -796,11 +812,8 @@ Возврат "http://www.v8.1c.ru/ssl/contactinfo"; // @Non-NLS КонецФункции - #Область СлужебныеПроцедурыИФункцииПоРаботеСXML - - Функция СтрокаСоставаКонтактнойИнформации(Знач Текст, Знач НовоеЗначение = Неопределено) Экспорт Чтение = Новый ЧтениеXML; Чтение.УстановитьСтроку(Текст); @@ -899,7 +912,7 @@ Иначе Если ТипЗнч(Данные) = Тип("Структура") Тогда - ЗначенияПолей = ?(Данные.Свойство("ЗначенияПолей"), Данные.ЗначенияПолей, "");; + ЗначенияПолей = ?(Данные.Свойство("ЗначенияПолей"), Данные.ЗначенияПолей, ""); Комментарий = ?(Данные.Свойство("Комментарий"), Данные.Комментарий, ""); Если Данные.Свойство("ВидКонтактнойИнформации") И Данные.ВидКонтактнойИнформации <> Неопределено Тогда diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl index 8a9eecc6e..ef7452051 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl @@ -9,17 +9,34 @@ #Область ПрограммныйИнтерфейс // Изменяет, добавляет, удаляет стандартные команды контактной информации, отображаемые в справочниках и документах, -// Вкл./Выкл. отображение иконок контактной информации слева от заголовка вида контактной информации +// Вкл./Выкл. отображение иконок контактной информации слева от заголовка вида контактной информации, +// Изменяет положение кнопки Добавить дополнительное поле контактной информации, +// Изменяет ширину поля комментарий для полей контактной информации с типами Телефон, АдресЭлектроннойПочты, Skype, +// ВебСтраница, Факс // // Параметры: // Настройки - Структура: // * ОтображатьИконки - Булево // * ОписаниеКоманд - см. УправлениеКонтактнойИнформацией.ОписаниеКоманд -// +// * ПоложениеКнопкиДобавить - ГоризонтальноеПоложениеЭлемента - допустимые значения: Лево, Право, Авто. +// Лево - Безусловное положение слева. +// Право - Безусловное положение слева. +// Авто - Располагается справа, когда контактная +// информация в виде поля. Располагается слева, +// когда контактная информация в виде +// гиперссылки, или ни одно поле контактной +// информации не выведено в группе. +// * ШиринаПоляКомментарий - Число - ширина поля комментарий для полей контактной информации с типами Телефон, АдресЭлектроннойПочты, +// Skype, ВебСтраница, Факс. Данный параметр устанавливается только когда группа +// контактной информации ограничена по ширине. +// // Пример: -// Настройки.ОтображатьИконки = Истина; -// Адрес = Перечисления.ТипыКонтактнойИнформации.Адрес; -// Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Заголовок = НСтр("ru='Встреча'"); +// Настройки.ОтображатьИконки = Истина; +// Настройки.ШиринаПоляКомментарий = 10; +// Настройки.ПоложениеКнопкиДобавить = ГоризонтальноеПоложениеЭлемента.Авто; +// +// Адрес = Перечисления.ТипыКонтактнойИнформации.Адрес; +// Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Заголовок = НСтр("ru='Встреча'"); // Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Подсказка = НСтр("ru='Создать событие встречи'"); // Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Картинка = БиблиотекаКартинок.ЗапланированноеВзаимодействие; // Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Действие = "_ДемоСтандартныеПодсистемыКлиент.ОткрытьФормуДокументаВстреча"; @@ -33,7 +50,7 @@ // КонтактнаяИнформация - Структура: // * Представление - Строка // * Значение - Строка -// * Тип - ПеречислениеСсылка.ТипКонтактнойИнформации +// * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации // * Вид - СправочникСсылка.ВидыКонтактнойИнформации // ДополнительныеПараметры - Структура: // * ВладелецКонтактнойИнформации - ОпределяемыйТип.ВладелецКонтактнойИнформации. @@ -56,7 +73,7 @@ // КонецПроцедуры // Процедура ПриОпределенииНастроек(Настройки) Экспорт - + КонецПроцедуры diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl index 593dbf8ab..4a9bff86c 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl @@ -239,7 +239,6 @@ Обработчик.Процедура = "Справочники.ВидыКонтактнойИнформации.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ВидыКонтактнойИнформации.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЧитаемыеОбъекты = "Справочник.ВидыКонтактнойИнформации"; Обработчик.ИзменяемыеОбъекты = "Справочник.ВидыКонтактнойИнформации"; Обработчик.БлокируемыеОбъекты = "Справочник.ВидыКонтактнойИнформации"; @@ -260,7 +259,6 @@ Обработчик.Процедура = "Справочники.СтраныМира.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.СтраныМира.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ЧитаемыеОбъекты = "Справочник.СтраныМира"; Обработчик.ИзменяемыеОбъекты = "Справочник.СтраныМира"; Обработчик.БлокируемыеОбъекты = "Справочник.СтраныМира"; @@ -868,7 +866,7 @@ Процедура ОбновитьНастройкуДобавочногоНомераТелефона() Экспорт - // Устанавливает флаг ТелефонCДобавочнымНомером для обратной совместимости. + // Устанавливает флаг ТелефонСДобавочнымНомером для обратной совместимости. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ @@ -890,7 +888,7 @@ Пока РезультатЗапроса.Следующий() Цикл ВидКонтактнойИнформации = РезультатЗапроса.Ссылка.ПолучитьОбъект(); - ВидКонтактнойИнформации.ТелефонCДобавочнымНомером = Истина; + ВидКонтактнойИнформации.ТелефонСДобавочнымНомером = Истина; ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВидКонтактнойИнформации); КонецЦикла; @@ -2125,7 +2123,7 @@ МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(Объект)); Если МетаданныеОбъекта = Неопределено Или МетаданныеОбъекта.ТабличныеЧасти.Найти("КонтактнаяИнформация") = Неопределено Тогда - ВызватьИсключение НСтр("ru = 'Добавление контактной информации невозможно, у объекта нет таблицы с контактной информацией.'");; + ВызватьИсключение НСтр("ru = 'Добавление контактной информации невозможно, у объекта нет таблицы с контактной информацией.'"); КонецЕсли; Если ЭтоКонтактнаяИнформацияВСтруктуреJSON Тогда @@ -2886,7 +2884,12 @@ КонецФункции #КонецОбласти -Функция КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Знач Тип = Неопределено, Представление = "", ОбновлятьИдентификаторы = Истина) Экспорт + +Функция КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Знач Тип = Неопределено, НастройкиКонвертации = Неопределено) Экспорт + + Если НастройкиКонвертации = Неопределено Тогда + НастройкиКонвертации = УправлениеКонтактнойИнформацией.НастройкиКонвертацииКонтактнойИнформации(); + КонецЕсли; Если Тип <> Неопределено И ТипЗнч(Тип) <> Тип("ПеречислениеСсылка.ТипыКонтактнойИнформации") Тогда Тип = УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ТипВидаКонтактнойИнформации(Тип); @@ -2917,7 +2920,7 @@ Если УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ДоступныМодулиРаботаСАдресами() И Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); - Возврат МодульРаботаСАдресами.КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Тип, Представление, ОбновлятьИдентификаторы); + Возврат МодульРаботаСАдресами.КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Тип, НастройкиКонвертации); КонецЕсли; @@ -2956,7 +2959,7 @@ Если УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ДоступенМодульЛокализации() Тогда МодульУправлениеКонтактнойИнформациейЛокализация = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформациейЛокализация"); - Результат = МодульУправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Тип, Представление); + Результат = МодульУправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация, Тип, НастройкиКонвертации); КонецЕсли; Возврат Результат; diff --git a/SSL/src/CommonModules/УправлениеПечатью/Module.bsl b/SSL/src/CommonModules/УправлениеПечатью/Module.bsl index 6cdeec7dd..d20ade60f 100644 --- a/SSL/src/CommonModules/УправлениеПечатью/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатью/Module.bsl @@ -1685,7 +1685,7 @@ КонецПроцедуры -// Удаляет из дерева значений не используемые атрибуты. +// Удаляет из дерева значений неиспользуемые атрибуты. // // Параметры: // Дерево - см. УправлениеПечатьюСлужебный.ПрочитатьXMLВДерево @@ -2205,7 +2205,6 @@ Обработчик.Версия = "3.0.1.60"; Обработчик.Процедура = "РегистрыСведений.ПользовательскиеМакетыПечати.ОбработатьПользовательскиеМакеты"; Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.Комментарий = НСтр("ru = 'Очищает пользовательские макеты, в которых нет изменений по сравнению с соответствующими поставляемыми макетами. |Отключает пользовательские макеты, которые не совместимы с текущей версией конфигурации.'"); Обработчик.Идентификатор = Новый УникальныйИдентификатор("e5b0d876-c766-40a0-a0cf-ffccc83a193f"); @@ -6149,6 +6148,9 @@ ТекстЗапроса = ""; Для Каждого ИмяРеквизита Из СтруктураОбъектов.Реквизиты Цикл + Если СтрНачинаетсяС(ИмяРеквизита, "Удалить") Тогда + Продолжить; + КонецЕсли; Если Не ПустаяСтрока(ТекстЗапроса) Тогда ТекстЗапроса = ТекстЗапроса + "," + Символы.ПС; КонецЕсли; @@ -6157,6 +6159,9 @@ Для Каждого ТабличнаяЧасть Из СтруктураОбъектов.ТабличныеЧасти Цикл ИмяТабличнойЧасти = ТабличнаяЧасть.Ключ; + Если СтрНачинаетсяС(ИмяТабличнойЧасти, "Удалить") Тогда + Продолжить; + КонецЕсли; ТекстЗапроса = ТекстЗапроса + "," + Символы.ПС + ПсевдонимТаблицы + "." + ИмяТабличнойЧасти + ".("; СтрокаРеквизитов = "НомерСтроки"; diff --git a/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl index bfbff5f50..bbdef4d52 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl @@ -291,8 +291,14 @@ // Открывает форму с инструкцией как сделать факсимильную подпись и печать. Процедура ПоказатьИнструкциюПоСозданиюФаксимильнойПодписиИПечати() Экспорт + ДоступноСканирование = Ложь; + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда + МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент"); + ДоступноСканирование = МодульРаботаСФайламиКлиент.ДоступноСканирование(); + КонецЕсли; + ПараметрыФормирования = Новый Структура ("ДоступноСканирование", ДоступноСканирование); ВыполнитьКомандуПечати("РегистрСведений.ОбщиеПоставляемыеМакетыПечати", "ИнструкцияПоСозданиюФаксимильнойПодписиИПечати", - ПредопределенноеЗначение("Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка"), Неопределено, Новый Структура); + ПредопределенноеЗначение("Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка"), Неопределено, ПараметрыФормирования); КонецПроцедуры @@ -1112,4 +1118,5 @@ КонецЕсли; КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl index 27e3a0001..53a1a6321 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl @@ -170,7 +170,7 @@ Расширение = ОпределитьРасширениеФайлаДанныхПоСигнатуре(ДвоичныеДанныеМакета); Если Расширение <> "docx" Тогда - ТекстОшибки = НСтр("ru = 'Макет шаблона офисного документа имеет не верный формат.'"); + ТекстОшибки = НСтр("ru = 'Макет шаблона офисного документа имеет неверный формат.'"); ЗаписатьСобытияВЖурналРегистрации(СобытиеЖурналаРегистрации(), "Ошибка", ТекстОшибки); ВызватьИсключение ТекстОшибки; КонецЕсли; @@ -215,7 +215,7 @@ Расширение = ОпределитьРасширениеФайлаДанныхПоСигнатуре(ДвоичныеДанныеМакета); Если Расширение <> "docx" Тогда - ТекстОшибки = НСтр("ru = 'Макет шаблона офисного документа имеет не верный формат.'"); + ТекстОшибки = НСтр("ru = 'Макет шаблона офисного документа имеет неверный формат.'"); ЗаписатьСобытияВЖурналРегистрации(СобытиеЖурналаРегистрации(), "Ошибка", ТекстОшибки); ВызватьИсключение ТекстОшибки; КонецЕсли; diff --git a/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl index 7423f7f34..2a22b1283 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl @@ -245,8 +245,8 @@ ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыполнитьОткрытиеПечатнойФормыФормированияПечатныхФорм", ЭтотОбъект, ПараметрыОткрытия); ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания(Форма)); -КонецПроцедуры - +КонецПроцедуры + Процедура ВыполнитьОткрытиеПечатнойФормыФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия) Экспорт Если РезультатФоновойОперации <> Неопределено Тогда Если РезультатФоновойОперации.Статус = "Ошибка" Тогда @@ -300,6 +300,7 @@ КонецФункции + // Синхронный аналог ОбщегоНазначенияКлиент.СоздатьВременныйКаталог для обратной совместимости. // Функция СоздатьВременныйКаталог(Знач Расширение = "") Экспорт diff --git a/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl index f3376d161..e0e2872e2 100644 --- a/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl @@ -9,7 +9,7 @@ #Область ПрограммныйИнтерфейс //////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции для стандартной обработки дополнительных реквизитов. +// Процедуры и функции для стандартной обработки свойств. // Создает основные реквизиты и поля формы, необходимые для работы. // Заполняет дополнительные реквизиты, если используются. @@ -51,6 +51,8 @@ // При вызове процедуры ПередЗаписьюНаСервере в режиме скрытия удаленных удаленные значения // очищаются (не переносятся обратно в объект), а режим СкрытьУдаленные устанавливается Ложь. // +// * ПараметрыОтображенияМеток - см. ПараметрыОтображенияМеток. +// Процедура ПриСозданииНаСервере(Форма, ДополнительныеПараметры = Неопределено) Экспорт Если Не ИспользуютсяСвойства(Форма, ДополнительныеПараметры) Тогда @@ -64,6 +66,7 @@ Контекст.Вставить("ПроизвольныйОбъект", Ложь); Контекст.Вставить("ИмяЭлементаКоманднойПанели", ""); Контекст.Вставить("СкрытьУдаленные", Неопределено); + Контекст.Вставить("ПараметрыОтображенияМеток", ПараметрыОтображенияМеток()); Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда ЗаполнитьЗначенияСвойств(Контекст, ДополнительныеПараметры); @@ -117,6 +120,11 @@ ЗаполнитьДополнительныеРеквизитыВФорме(Форма, ОписаниеОбъекта, , Контекст.СкрытьУдаленные); КонецЕсли; + ЗаполнитьМеткиОбъекта(Форма, ОписаниеОбъекта, Контекст.ПроизвольныйОбъект); + Если Контекст.ПроизвольныйОбъект Тогда + ЗаполнитьЛегендуМеток(Форма, ОписаниеОбъекта); + КонецЕсли; + КонецПроцедуры // Заполняет объект из реквизитов, созданных в форме. @@ -312,7 +320,7 @@ НаборСвойствОбъект.Используется = Истина; КонецЕсли; - НаборСвойствОбъект.Наименование = ВидОбъекта.Наименование; + НаборСвойствОбъект.Наименование = СтрЗаменить(ВидОбъекта.Наименование, ".", ""); НаборСвойствОбъект.ПометкаУдаления = ВидОбъекта.ПометкаУдаления; НаборСвойствОбъект.Родитель = РодительНабора; НаборСвойствОбъект.Записать(); @@ -321,7 +329,61 @@ КонецПроцедуры -// Обновляет отображаемые данные на форме объекта со свойствами. +// Удаляет зависимые наборы дополнительных реквизитов и сведений при удалении вида объектов со свойствами. +// +// Параметры: +// ВидОбъекта - СправочникОбъектИмяСправочника - например, вид номенклатуры. +// ИмяРеквизитаНабораСвойств - Строка - используется, когда наборов свойств несколько или +// используется имя реквизита основного набора, отличное от "НаборСвойств". +// +Процедура ПередУдалениемВидаОбъекта(ВидОбъекта, ИмяРеквизитаНабораСвойств = "НаборСвойств") Экспорт + + УстановитьПривилегированныйРежим(Истина); + НаборСвойств = ВидОбъекта[ИмяРеквизитаНабораСвойств]; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("НаборСвойств", НаборСвойств); + Запрос.Текст = + "ВЫБРАТЬ + | ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка + |ИЗ + | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения + |ГДЕ + | ДополнительныеРеквизитыИСведения.НаборСвойств = &НаборСвойств"; + Результат = Запрос.Выполнить().Выгрузить(); + ДополнительныеРеквизиты = Результат.ВыгрузитьКолонку("Ссылка"); + Для Каждого ДополнительныйРеквизит Из ДополнительныеРеквизиты Цикл + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", ДополнительныйРеквизит); + Попытка + Блокировка.Заблокировать(); + + ДополнительныйРеквизитОбъект = ДополнительныйРеквизит.ПолучитьОбъект(); + ДополнительныйРеквизитОбъект.НаборСвойств = Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка(); + ДополнительныйРеквизитОбъект.Записать(); + Исключение + ВызватьИсключение; + КонецПопытки; + + КонецЦикла; + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.НаборыДополнительныхРеквизитовИСведений"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", НаборСвойств); + Попытка + Блокировка.Заблокировать(); + + НаборСвойствОбъект = НаборСвойств.ПолучитьОбъект(); + НаборСвойствОбъект.Удалить(); + Исключение + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +// Обновляет отображаемые данные дополнительных реквизитов на форме объекта со свойствами. // // Параметры: // Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. @@ -344,9 +406,88 @@ Процедура ОбновитьЭлементыДополнительныхРеквизитов(Форма, Объект = Неопределено, СкрытьУдаленные = Неопределено) Экспорт УправлениеСвойствамиСлужебный.ПеренестиЗначенияИзРеквизитовФормыВОбъект(Форма, Объект); - ЗаполнитьДополнительныеРеквизитыВФорме(Форма, Объект, , СкрытьУдаленные); + УправлениеСвойствамиСлужебный.ПеренестиУстановленныеМеткиВОбъект(Форма, Объект); + ЗаполнитьМеткиОбъекта(Форма, Объект); + +КонецПроцедуры + +// В форме списка выводит колонки с метками. +// Вызывается из события ПриПолученииДанныхНаСервере формы списка. +// +// Параметры: +// Настройки - НастройкиКомпоновкиДанных - содержит копию полных настроек динамического списка, +// Строки - СтрокиДинамическогоСписка - коллекция содержит данные и оформление всех строк, +// ИмяВладельца - Строка - реквизит строки динамического списка, который будет +// использован для получения свойств. Если Неопределено +// используется ключи строк. +// +Процедура ПриПолученииДанныхНаСервере(Настройки, Строки, ИмяВладельца = Неопределено) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда + Возврат; + КонецЕсли; + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеРеквизитыИСведения") Тогда + Возврат; + КонецЕсли; + + Ключи = Строки.ПолучитьКлючи(); + Если Ключи.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Для каждого Ключ Из Ключи Цикл + Если ИмяВладельца <> Неопределено Тогда + Владелец = Ключ[ИмяВладельца]; + Иначе + Владелец = Ключ; + КонецЕсли; + Если ЗначениеЗаполнено(Владелец) Тогда + ВидОбъектов = Владелец.Метаданные().ПолноеИмя(); + Прервать; + КонецЕсли; + КонецЦикла; + + СписокСвойствДляВидаОбъектов = УправлениеСвойствамиСлужебный.СписокСвойствДляВидаОбъектов(ВидОбъектов, "Метки"); + Если СписокСвойствДляВидаОбъектов = Неопределено Тогда + Возврат; + КонецЕсли; + + Метки = СписокСвойствДляВидаОбъектов.ВыгрузитьКолонку("Свойство"); + РеквизитыМеток = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(Метки, "ЦветСвойств, ПометкаУдаления"); + + Для каждого Строка Из Строки Цикл + КлючСтроки = Строка.Ключ; + ДанныеСтроки = Строки.Получить(КлючСтроки); + Если ИмяВладельца <> Неопределено Тогда + Владелец = КлючСтроки[ИмяВладельца]; + Иначе + Владелец = КлючСтроки; + КонецЕсли; + Если Не ЗначениеЗаполнено(Владелец) Тогда + Продолжить; + КонецЕсли; + ДополнительныеРеквизиты = Владелец.ДополнительныеРеквизиты.Выгрузить(); + Метки = СвойстваПоВидуДополнительныхРеквизитов(ДополнительныеРеквизиты, Перечисления.ВидыСвойств.Метки); + НомерМетки = 1; + Для каждого Метка Из Метки Цикл + РеквизитыМетки = РеквизитыМеток.Получить(Метка); + Если РеквизитыМетки = Неопределено Или РеквизитыМетки.ПометкаУдаления Тогда + Продолжить; + КонецЕсли; + ИмяСвойства = СтрШаблон("Метка%1", НомерМетки); + Если ДанныеСтроки.Данные.Свойство(ИмяСвойства) Тогда + ДанныеСтроки.Данные[ИмяСвойства] = + Перечисления.ЦветаСвойств.Индекс(РеквизитыМетки.ЦветСвойств) + 1; + НомерМетки = НомерМетки + 1; + Иначе + Прервать; + КонецЕсли; + КонецЦикла; + КонецЦикла; + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -490,8 +631,8 @@ КонецПроцедуры -// Добавляет доступное значение для реквизита с типом ЗначениеСвойствОбъекта -// или ЗначениеСвойствОбъектаИерархия. +// Добавляет доступное значение для реквизита с типом ЗначенияСвойствОбъектов +// или ЗначенияСвойствОбъектовИерархия. // // Параметры: // Владелец - Строка - имя дополнительного реквизита. @@ -501,8 +642,8 @@ // Иерархия - Булево // // Возвращаемое значение: -// СправочникСсылка.ЗначениеСвойствОбъекта -// СправочникСсылка.ЗначениеСвойствОбъектаИерархия +// СправочникСсылка.ЗначенияСвойствОбъектов +// СправочникСсылка.ЗначенияСвойствОбъектовИерархия // Функция ДобавитьЗначениеСвойства(Знач Владелец, Параметры, Иерархия = Ложь) Экспорт @@ -602,8 +743,8 @@ // Структура: // * Наименование - Строка - обязательно для заполнения. // * ПолноеНаименование - Строка -// * Родитель - СправочникСсылка.ЗначениеСвойствОбъекта -// - СправочникСсылка.ЗначениеСвойствОбъектаИерархия +// * Родитель - СправочникСсылка.ЗначенияСвойствОбъектов +// - СправочникСсылка.ЗначенияСвойствОбъектовИерархия // * ЭтоГруппа - Булево // Функция ПараметрыДобавленияЗначенияСвойства() Экспорт @@ -696,10 +837,11 @@ ОбновитьКлючНазначенияФормы(Форма, КлючНазначения); + ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеРеквизиты; ОписаниеСвойств = УправлениеСвойствамиСлужебный.ЗначенияСвойств( ОписаниеОбъекта.ДополнительныеРеквизиты.Выгрузить(), Форма.Свойства_НаборыДополнительныхРеквизитовОбъекта, - Ложь); + ВидСвойств); ОписаниеСвойств.Колонки.Добавить("ИмяРеквизитаЗначение"); ОписаниеСвойств.Колонки.Добавить("СтрокаСсылочногоТипа"); @@ -1143,7 +1285,7 @@ КонецПроцедуры -// Возвращает дополнительные реквизиты и сведения у указанного объекта. +// Возвращает свойства у указанного объекта. // // Параметры: // ВладелецСвойств - ЛюбаяСсылка - например: СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... @@ -1155,7 +1297,9 @@ // Возвращаемое значение: // Массив из ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения // -Функция СвойстваОбъекта(ВладелецСвойств, ПолучатьДопРеквизиты = Истина, ПолучатьДопСведения = Истина) Экспорт +Функция СвойстваОбъекта(ВладелецСвойств, + ПолучатьДопРеквизиты = Истина, + ПолучатьДопСведения = Истина) Экспорт Если НЕ (ПолучатьДопРеквизиты ИЛИ ПолучатьДопСведения) Тогда Возврат Новый Массив; @@ -1187,21 +1331,23 @@ | ТаблицаСвойств.Ссылка В (&МассивНаборовСвойствОбъекта)"; Запрос = Новый Запрос; - - Если ПолучатьДопРеквизиты И ПолучатьДопСведения Тогда - - Запрос.Текст = ТекстЗапросаДопСведения + " - | - | ОБЪЕДИНИТЬ ВСЕ - |" + ТекстЗапросаДопРеквизиты; - - ИначеЕсли ПолучатьДопРеквизиты Тогда - Запрос.Текст = ТекстЗапросаДопРеквизиты; - - ИначеЕсли ПолучатьДопСведения Тогда - Запрос.Текст = ТекстЗапросаДопСведения; + ТекстЗапроса = ""; + Если ПолучатьДопСведения Тогда + ТекстЗапроса = ТекстЗапросаДопСведения; КонецЕсли; + Если ПолучатьДопРеквизиты Тогда + Если ЗначениеЗаполнено(ТекстЗапроса) Тогда + ТекстЗапроса = ТекстЗапроса + " + | + | ОБЪЕДИНИТЬ ВСЕ + |" + ТекстЗапросаДопРеквизиты; + Иначе + ТекстЗапроса = ТекстЗапросаДопРеквизиты; + КонецЕсли; + КонецЕсли; + + Запрос.Текст = ТекстЗапроса; Запрос.Параметры.Вставить("МассивНаборовСвойствОбъекта", МассивНаборовСвойствОбъекта); Результат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Свойство"); @@ -1280,7 +1426,7 @@ | ТаблицаСвойств.Ссылка КАК ВладелецСвойств, | ДополнительныеРеквизитыИСведения.Имя КАК ИмяСвойства |ИЗ - | &ИмяОбъектаСоСвойствами КАК ТаблицаСвойств + | &ИмяОбъектаСДополнительнымиРеквизитами КАК ТаблицаСвойств | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения | ПО ДополнительныеРеквизитыИСведения.Ссылка = ТаблицаСвойств.Свойство |ГДЕ @@ -1305,21 +1451,25 @@ | ИЛИ ДополнительныеРеквизитыИСведения.Имя В (&Свойства))"; Запрос = Новый Запрос; + ТекстЗапроса = ""; + Если ПолучатьДопРеквизиты Тогда + ТекстЗапроса = ТекстЗапросаДопРеквизиты; + КонецЕсли; - Если ПолучатьДопРеквизиты И ПолучатьДопСведения Тогда - ТекстЗапроса = ТекстЗапросаДопРеквизиты + " + Если ПолучатьДопСведения Тогда + Если ЗначениеЗаполнено(ТекстЗапроса) Тогда + ТекстЗапроса = ТекстЗапроса + " | | ОБЪЕДИНИТЬ ВСЕ |" + СтрЗаменить(ТекстЗапросаДопСведения, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1, @Query-part-2 - - ИначеЕсли ПолучатьДопРеквизиты Тогда - ТекстЗапроса = ТекстЗапросаДопРеквизиты; - - ИначеЕсли ПолучатьДопСведения Тогда - ТекстЗапроса = ТекстЗапросаДопСведения; + Иначе + ТекстЗапроса = ТекстЗапросаДопСведения; + КонецЕсли; КонецЕсли; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяОбъектаСоСвойствами", ИмяОбъектаСоСвойствами + ".ДополнительныеРеквизиты"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяОбъектаСДополнительнымиРеквизитами", + ИмяОбъектаСоСвойствами + ".ДополнительныеРеквизиты"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяОбъектаСМетками", ИмяОбъектаСоСвойствами + ".Метки"); Запрос.Параметры.Вставить("ОбъектыСоСвойствами", ОбъектыСоСвойствами); Запрос.Параметры.Вставить("Свойства", Свойства); @@ -1367,7 +1517,8 @@ // Произвольный - любое значение, допустимое для свойства. // Функция ЗначениеСвойства(Объект, Свойство, КодЯзыка = "") Экспорт - ПолучатьРеквизиты = УправлениеСвойствамиСлужебный.ЭтоОбъектМетаданныхСДополнительнымиРеквизитами(Объект.Метаданные()); + + ПолучатьРеквизиты = УправлениеСвойствамиСлужебный.ЭтоОбъектМетаданныхСоСвойствами(Объект.Метаданные(), "ДополнительныеРеквизиты"); Результат = ЗначенияСвойств(Объект, ПолучатьРеквизиты, Истина, Свойство, КодЯзыка); Если Результат.Количество() = 1 Тогда @@ -1496,6 +1647,7 @@ КонецЦикла; КонецЕсли; + ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); @@ -1612,6 +1764,249 @@ Возврат Результат; КонецФункции +//////////////////////////////////////////////////////////////////////////////// +// Метки + +// Устанавливает видимость легенды меток в рамках сеанса работы. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. +// +Процедура УстановитьВидимостьЛегендыМеток(Форма) Экспорт + + Если Форма.Элементы["ГруппаСкрываемаяЧастьЛегенды"].Видимость Тогда + Форма.Элементы["ГруппаСкрываемаяЧастьЛегенды"].Видимость = Ложь; + Форма.Элементы["ПоказатьЛегенду"].Картинка = БиблиотекаКартинок.СтрелкаВнизЗеленая; + ВидимостьЛегендыМеток = Ложь; + Иначе + Форма.Элементы["ГруппаСкрываемаяЧастьЛегенды"].Видимость = Истина; + Форма.Элементы["ПоказатьЛегенду"].Картинка = БиблиотекаКартинок.СтрелкаВправоЗеленая; + ВидимостьЛегендыМеток = Истина; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + ТекущиеПараметры = Новый Соответствие(ПараметрыСеанса.ПараметрыКлиентаНаСервере); + ТекущиеПараметры.Вставить("ВидимостьЛегендыМеток", ВидимостьЛегендыМеток); + ПараметрыСеанса.ПараметрыКлиентаНаСервере = Новый ФиксированноеСоответствие(ТекущиеПараметры); + УстановитьПривилегированныйРежим(Ложь); + ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("Свойства", "ВидимостьЛегендыМеток", ВидимостьЛегендыМеток); + +КонецПроцедуры + +// Заполняет/перезаполняет метки в форме владельца свойств. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. +// +// Объект - Неопределено - взять объект из реквизита формы "Объект". +// - СправочникОбъектИмяСправочника +// - ДокументОбъектИмяДокумента +// - ПланВидовХарактеристикОбъектИмяПланаВидовХарактеристик +// - БизнесПроцессОбъектИмяБизнесПроцесса +// - ЗадачаОбъектИмяЗадачи +// - ПланВидовРасчетаОбъектИмяПланаВидовРасчета +// - ПланСчетовОбъектИмяПланаСчетов +// - ДанныеФормыСтруктура +// +// ПроизвольныйОбъект - Булево - если Истина, тогда в форме нельзя редактировать метки. +// +Процедура ЗаполнитьМеткиОбъекта(Форма, Объект = Неопределено, ПроизвольныйОбъект = Ложь) Экспорт + + Если НЕ Форма.Свойства_ИспользоватьСвойства + ИЛИ НЕ Форма.Свойства_ИспользоватьДопРеквизиты Тогда + Возврат; + КонецЕсли; + + Если Объект = Неопределено Тогда + Если ПроизвольныйОбъект Тогда + Возврат; + КонецЕсли; + ОписаниеОбъекта = Форма.Объект; + Иначе + ОписаниеОбъекта = Объект; + КонецЕсли; + + ИмяЭлементаДляРазмещенияМеток = Форма.Свойства_ИмяЭлементаДляРазмещенияМеток; + Если Не ЗначениеЗаполнено(ИмяЭлементаДляРазмещенияМеток) Тогда + Возврат; + КонецЕсли; + + Если Форма.Элементы.Найти("РедактироватьМетки") = Неопределено Тогда + НовыйЭлемент = Форма.Элементы.Добавить("РедактироватьМетки", Тип("ДекорацияФормы"), + Форма.Элементы[ИмяЭлементаДляРазмещенияМеток]); + НовыйЭлемент.Вид = ВидДекорацииФормы.Картинка; + НовыйЭлемент.Гиперссылка = Истина; + НовыйЭлемент.Картинка = БиблиотекаКартинок.РедактироватьМетки; + НовыйЭлемент.УстановитьДействие("Нажатие", "Подключаемый_СвойстваВыполнитьКоманду"); + НовыйЭлемент.Подсказка = НСтр("ru = 'Редактировать метки'"); + КонецЕсли; + + Метки = СвойстваПоВидуДополнительныхРеквизитов( + ОписаниеОбъекта.ДополнительныеРеквизиты.Выгрузить(), + Перечисления.ВидыСвойств.Метки); + Если Форма.Свойства_УстановленныеМетки.Количество() = 0 Тогда + Форма.Свойства_УстановленныеМетки.ЗагрузитьЗначения(Метки); + КонецЕсли; + + ГруппаМетки = Форма.Элементы[ИмяЭлементаДляРазмещенияМеток]; + ПодчиненныеЭлементы = ГруппаМетки.ПодчиненныеЭлементы; + ИменаМетокНаУдаление = Новый Массив; + Для каждого ПодчиненныйЭлемент Из ПодчиненныеЭлементы Цикл + Если ПодчиненныйЭлемент = Форма.Элементы["РедактироватьМетки"] Тогда + Продолжить; + КонецЕсли; + ИменаМетокНаУдаление.Добавить(ПодчиненныйЭлемент.Имя); + КонецЦикла; + + Для каждого Метка Из ИменаМетокНаУдаление Цикл + Форма.Элементы.Удалить(Форма.Элементы[Метка]); + КонецЦикла; + + СкрытьМеток = 0; + КоличествоМеток = Метки.Количество(); + МаксимумМетокНаФорме = Форма.ПараметрыСвойств.МаксимумМетокНаФорме; + Если МаксимумМетокНаФорме <> Неопределено И МаксимумМетокНаФорме < КоличествоМеток Тогда + СкрытьМеток = КоличествоМеток - МаксимумМетокНаФорме; + КоличествоМеток = МаксимумМетокНаФорме; + КонецЕсли; + ВариантОтображенияМеток = Форма.ПараметрыСвойств.ВариантОтображенияМеток; + + ОтображеноМеток = 0; + РеквизитыМеток = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(Метки, + "Имя, ЦветСвойств, Наименование, ПометкаУдаления, Подсказка"); + Если ВариантОтображенияМеток = Перечисления.ВариантыОтображенияМеток.Надпись Тогда + Для Индекс = 0 По КоличествоМеток - 1 Цикл + Метка = РеквизитыМеток.Получить(Метки[Индекс]); + Если Метка = Неопределено Или Метка.ПометкаУдаления Тогда + Продолжить; + КонецЕсли; + НовыйЭлемент = Форма.Элементы.Добавить("Метка" + Метка.Имя, Тип("ДекорацияФормы"), ГруппаМетки); + НовыйЭлемент.Вид = ВидДекорацииФормы.Надпись; + НовыйЭлемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Центр; + НовыйЭлемент.Высота = 1; + НовыйЭлемент.Заголовок = Метка.Наименование; + НовыйЭлемент.ЦветТекста = Метаданные.ЭлементыСтиля.ЦветТекстаМетки.Значение; + НовыйЭлемент.ЦветФона = ЭлементСтиляПоЦвету(Метка.ЦветСвойств); + НовыйЭлемент.Шрифт = Метаданные.ЭлементыСтиля.ШрифтМеток.Значение; + НовыйЭлемент.Подсказка = Метка.Подсказка; + Если Не ПроизвольныйОбъект Тогда + НовыйЭлемент.Гиперссылка = Истина; + НовыйЭлемент.УстановитьДействие("Нажатие", "Подключаемый_СвойстваВыполнитьКоманду"); + КонецЕсли; + ДлинаНаименования = СтрДлина(Метка.Наименование); + Если ДлинаНаименования > 8 Тогда + НовыйЭлемент.Ширина = ДлинаНаименования; + Иначе + НовыйЭлемент.Ширина = 8; + КонецЕсли; + ОтображеноМеток = ОтображеноМеток + 1; + КонецЦикла; + Иначе + Для Индекс = 0 По КоличествоМеток - 1 Цикл + Метка = РеквизитыМеток.Получить(Метки[Индекс]); + Если Метка = Неопределено Или Метка.ПометкаУдаления Тогда + Продолжить; + КонецЕсли; + НовыйЭлемент = Форма.Элементы.Добавить("Метка" + Метка.Имя, Тип("ДекорацияФормы"), ГруппаМетки); + НовыйЭлемент.Вид = ВидДекорацииФормы.Картинка; + Если Не ПроизвольныйОбъект Тогда + НовыйЭлемент.Гиперссылка = Истина; + КонецЕсли; + НовыйЭлемент.Картинка = КартинкаМеткиПоЦвету(Метка.ЦветСвойств); + НовыйЭлемент.УстановитьДействие("Нажатие", "Подключаемый_СвойстваВыполнитьКоманду"); + НовыйЭлемент.Подсказка = Метка.Наименование; + НовыйЭлемент.Заголовок = Метка.Наименование; + ОтображеноМеток = ОтображеноМеток + 1; + КонецЦикла; + КонецЕсли; + + Если ЗначениеЗаполнено(СкрытьМеток) Тогда + НовыйЭлемент = Форма.Элементы.Добавить("ОстальныеМетки", Тип("ДекорацияФормы"), ГруппаМетки); + НовыйЭлемент.Вид = ВидДекорацииФормы.Надпись; + НовыйЭлемент.Гиперссылка = Истина; + НовыйЭлемент.УстановитьДействие("Нажатие", "Подключаемый_СвойстваВыполнитьКоманду"); + НовыйЭлемент.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'и еще %1'"), СкрытьМеток); + НовыйЭлемент.Подсказка = НСтр("ru = 'Остальные метки'"); + КонецЕсли; + + Если ПроизвольныйОбъект Или ОтображеноМеток <> 0 Тогда + Форма.Элементы["РедактироватьМетки"].Видимость = Ложь; + Иначе + Форма.Элементы["РедактироватьМетки"].Видимость = Истина; + КонецЕсли; + +КонецПроцедуры + +// Возвращает структуру параметров для отображения меток на форме. +// +// Возвращаемое значение: +// Структура: +// +// * ИмяЭлементаДляРазмещенияМеток - Строка - имя группы формы, в которой будут размещены метки. +// +// * ИмяЭлементаДляРазмещенияЛегендыМеток - Строка - имя группы формы, в которой будет размещена легенда меток. +// +// * МаксимумМетокНаФорме - Число - максимальное количество отображаемых меток на форме. По умолчанию, ограничений нет. +// +// * ОтборМеток - Булево - возможность отбирать объекты в списке по меткам. +// +// * ВариантОтображенияМеток - ПеречислениеСсылка.ВариантыОтображенияМеток - вариант отображения меток на форме. +// Миниатюрные цветные картинки для форм с небольшим количеством свободного места или +// надписи с цветным фоном для быстрого ознакомления с текстом меток. +// По умолчанию, используется вариант Картинка. +// +// * ВидОбъектов - Строка - полное имя объекта метаданных для отображения легенды меток в форме списка. +// +Функция ПараметрыОтображенияМеток() Экспорт + + ПараметрыОтображенияМеток = Новый Структура; + ПараметрыОтображенияМеток.Вставить("ИмяЭлементаДляРазмещенияМеток", ""); + ПараметрыОтображенияМеток.Вставить("ИмяЭлементаДляРазмещенияЛегендыМеток", ""); + ПараметрыОтображенияМеток.Вставить("ВариантОтображенияМеток", Перечисления.ВариантыОтображенияМеток.Картинка); + ПараметрыОтображенияМеток.Вставить("МаксимумМетокНаФорме"); + ПараметрыОтображенияМеток.Вставить("ОтборМеток", Ложь); + ПараметрыОтображенияМеток.Вставить("ВидОбъектов", ""); + + Возврат ПараметрыОтображенияМеток; + +КонецФункции + +// Возвращает свойства определенного вида. +// +// Параметры: +// Свойства - ТаблицаЗначений - таблица свойств. +// +// ВидСвойств - ПеречислениеСсылка.ВидыСвойств - вид свойств, дополнительные реквизиты или метки. +// +// Возвращаемое значение: +// Массив - массив свойств определенного вида. +// +Функция СвойстваПоВидуДополнительныхРеквизитов(Свойства, ВидСвойств) Экспорт + + СвойстваПоВиду = Новый Массив; + СписокСвойств = Свойства.ВыгрузитьКолонку("Свойство"); + ВидыСвойствОбъектов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(СписокСвойств, "ВидСвойств"); + Если ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеРеквизиты Тогда + Для Каждого Свойство Из СписокСвойств Цикл + ВидСвойствОбъекта = ВидыСвойствОбъектов.Получить(Свойство).ВидСвойств; + Если Не ЗначениеЗаполнено(ВидСвойствОбъекта) Или ВидСвойствОбъекта = ВидСвойств Тогда + СвойстваПоВиду.Добавить(Свойство); + КонецЕсли; + КонецЦикла; + ИначеЕсли ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + Для Каждого Свойство Из СписокСвойств Цикл + ВидСвойствОбъекта = ВидыСвойствОбъектов.Получить(Свойство).ВидСвойств; + Если ВидСвойствОбъекта = ВидСвойств Тогда + СвойстваПоВиду.Добавить(Свойство); + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Возврат СвойстваПоВиду; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Обновление информационной базы. @@ -1952,6 +2347,14 @@ ИмяЭлементаДляРазмещения = Контекст.ИмяЭлементаДляРазмещения; ИмяЭлементаКоманднойПанели = Контекст.ИмяЭлементаКоманднойПанели; ОтложеннаяИнициализация = Контекст.ОтложеннаяИнициализация; + ПроизвольныйОбъект = Контекст.ПроизвольныйОбъект; + + ИмяЭлементаДляРазмещенияМеток = Контекст.ПараметрыОтображенияМеток.ИмяЭлементаДляРазмещенияМеток; + ИмяЭлементаДляРазмещенияЛегендыМеток = Контекст.ПараметрыОтображенияМеток.ИмяЭлементаДляРазмещенияЛегендыМеток; + ВариантОтображенияМеток = Контекст.ПараметрыОтображенияМеток.ВариантОтображенияМеток; + МаксимумМетокНаФорме = Контекст.ПараметрыОтображенияМеток.МаксимумМетокНаФорме; + ВидОбъектов = Контекст.ПараметрыОтображенияМеток.ВидОбъектов; + ОтборМеток = Контекст.ПараметрыОтображенияМеток.ОтборМеток; Реквизиты = Новый Массив; @@ -2061,6 +2464,31 @@ Реквизиты.Добавить(Новый РеквизитФормы( "Свойства_ИмяЭлементаДляРазмещения", Новый ОписаниеТипов())); + // Метки + Реквизиты.Добавить(Новый РеквизитФормы("Свойства_ИмяЭлементаДляРазмещенияМеток", + Новый ОписаниеТипов("Строка"))); + + Реквизиты.Добавить(Новый РеквизитФормы("Свойства_УстановленныеМетки", + Новый ОписаниеТипов("СписокЗначений"))); + + Если ПроизвольныйОбъект Тогда + Реквизиты.Добавить(Новый РеквизитФормы("Свойства_ИмяЭлементаДляРазмещенияЛегендыМеток", + Новый ОписаниеТипов("Строка"))); + + // Добавление реквизита описания создаваемых меток. + ИмяОписания = "Свойства_ОписаниеЛегендыМеток"; + Реквизиты.Добавить(Новый РеквизитФормы(ИмяОписания, Новый ОписаниеТипов("ТаблицаЗначений"))); + + Реквизиты.Добавить(Новый РеквизитФормы("Метка", + Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения"), ИмяОписания)); + + Реквизиты.Добавить(Новый РеквизитФормы("ИмяМетки", Новый ОписаниеТипов("Строка"), ИмяОписания)); + + Если ОтборМеток Тогда + Реквизиты.Добавить(Новый РеквизитФормы("ОтборПоМетке", Новый ОписаниеТипов("Булево"), ИмяОписания)); + КонецЕсли; + КонецЕсли; + // Добавление команды формы, если установлена роль "ДобавлениеИзменениеДополнительныхРеквизитовИСведений" или это // полноправный пользователь. Если ПравоДоступа("Изменение", Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений) Тогда @@ -2109,6 +2537,22 @@ Если ОпцияИспользоватьСвойства И СоздатьОписаниеДополнительныхРеквизитов Тогда Форма.Свойства_ИмяЭлементаДляРазмещения = ИмяЭлементаДляРазмещения; + + Форма.Свойства_ИмяЭлементаДляРазмещенияМеток = ИмяЭлементаДляРазмещенияМеток; + Форма.ПараметрыСвойств.Вставить("ВариантОтображенияМеток", ВариантОтображенияМеток); + Форма.ПараметрыСвойств.Вставить("МаксимумМетокНаФорме", МаксимумМетокНаФорме); + + Если ПроизвольныйОбъект Тогда + Форма.Свойства_ИмяЭлементаДляРазмещенияЛегендыМеток = ИмяЭлементаДляРазмещенияЛегендыМеток; + + Форма.ПараметрыСвойств.Вставить("ВидОбъектов", ВидОбъектов); + Форма.ПараметрыСвойств.Вставить("ОтборМеток", ОтборМеток); + + Команда = Форма.Команды.Добавить("ЛегендаМеток"); + Команда.Действие = "Подключаемый_УстановитьВидимостьЛегендыМеток"; + Команда.Картинка = БиблиотекаКартинок.Метка; + Команда.Отображение = ОтображениеКнопки.КартинкаИТекст; + КонецЕсли; КонецЕсли; // Если дополнительные реквизиты расположены на отдельной странице, включена @@ -2185,6 +2629,112 @@ КонецПроцедуры +// Заполняет легенду меток в форме владельца свойств. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. +// +// Объект - Неопределено - взять объект из реквизита формы "Объект". +// - СправочникОбъектИмяСправочника +// - ДокументОбъектИмяДокумента +// - ПланВидовХарактеристикОбъектИмяПланаВидовХарактеристик +// - БизнесПроцессОбъектИмяБизнесПроцесса +// - ЗадачаОбъектИмяЗадачи +// - ПланВидовРасчетаОбъектИмяПланаВидовРасчета +// - ПланСчетовОбъектИмяПланаСчетов +// - ДанныеФормыСтруктура +// +Процедура ЗаполнитьЛегендуМеток(Форма, Объект) + + Если НЕ Форма.Свойства_ИспользоватьСвойства + ИЛИ НЕ Форма.Свойства_ИспользоватьДопРеквизиты Тогда + Возврат; + КонецЕсли; + + ИмяЭлементаДляРазмещенияЛегендыМеток = Форма.Свойства_ИмяЭлементаДляРазмещенияЛегендыМеток; + Если Не ЗначениеЗаполнено(ИмяЭлементаДляРазмещенияЛегендыМеток) Тогда + Возврат; + КонецЕсли; + + Метки = УправлениеСвойствамиСлужебный.СписокСвойствДляВидаОбъектов( + Форма.ПараметрыСвойств.ВидОбъектов, "Метки").ВыгрузитьКолонку("Свойство"); + Если Метки.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ВидимостьЛегендыМеток = ХранилищеОбщихНастроек.Загрузить("Свойства", "ВидимостьЛегендыМеток"); + + Если ВидимостьЛегендыМеток = Неопределено Тогда + ВидимостьЛегендыМеток = Ложь; + ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("Свойства", "ВидимостьЛегендыМеток", ВидимостьЛегендыМеток); + КонецЕсли; + + НовыйЭлемент = Форма.Элементы.Добавить("ПоказатьЛегенду", Тип("ДекорацияФормы"), + Форма.Элементы[ИмяЭлементаДляРазмещенияЛегендыМеток]); + НовыйЭлемент.Вид = ВидДекорацииФормы.Картинка; + НовыйЭлемент.Гиперссылка = Истина; + НовыйЭлемент.УстановитьДействие("Нажатие", "Подключаемый_УстановитьВидимостьЛегендыМеток"); + Если ВидимостьЛегендыМеток Тогда + НовыйЭлемент.Картинка = БиблиотекаКартинок.СтрелкаВправоЗеленая; + Иначе + НовыйЭлемент.Картинка = БиблиотекаКартинок.СтрелкаВнизЗеленая; + КонецЕсли; + + ГруппаСкрываемаяЧастьЛегенды = Форма.Элементы.Добавить("ГруппаСкрываемаяЧастьЛегенды", Тип("ГруппаФормы"), + Форма.Элементы[ИмяЭлементаДляРазмещенияЛегендыМеток]); + ГруппаСкрываемаяЧастьЛегенды.Вид = ВидГруппыФормы.ОбычнаяГруппа; + ГруппаСкрываемаяЧастьЛегенды.Видимость = ВидимостьЛегендыМеток; + ГруппаСкрываемаяЧастьЛегенды.ОтображатьЗаголовок = Ложь; + ГруппаСкрываемаяЧастьЛегенды.Группировка = Форма.Элементы[ИмяЭлементаДляРазмещенияЛегендыМеток].Группировка; + + ОтборМеток = Форма.ПараметрыСвойств.ОтборМеток; + РеквизитыМеток = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(Метки, + "Ссылка, Имя, Наименование, ЦветСвойств, ПометкаУдаления"); + Если ОтборМеток Тогда + Реквизиты = Новый Массив; + Для Каждого Метка Из Метки Цикл + РеквизитыМетки = РеквизитыМеток.Получить(Метка); + Если РеквизитыМетки = Неопределено Тогда + Продолжить; + КонецЕсли; + Реквизиты.Добавить(Новый РеквизитФормы("ОтборМетка_" + РеквизитыМетки.Имя, + Новый ОписаниеТипов("Булево"))); + КонецЦикла; + Форма.ИзменитьРеквизиты(Реквизиты); + КонецЕсли; + + Для Каждого Метка Из Метки Цикл + Метка = РеквизитыМеток.Получить(Метка); + Если Метка = Неопределено Или Метка.ПометкаУдаления Тогда + Продолжить; + КонецЕсли; + + Группа = Форма.Элементы.Добавить("Группа" + Метка.Имя, Тип("ГруппаФормы"), ГруппаСкрываемаяЧастьЛегенды); + Группа.Вид = ВидГруппыФормы.ОбычнаяГруппа; + Группа.ОтображатьЗаголовок = Ложь; + Группа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда; + + МеткаЛегенды = Форма.Свойства_ОписаниеЛегендыМеток.Добавить(); + МеткаЛегенды.Метка = Метка.Ссылка; + МеткаЛегенды.ИмяМетки = Метка.Имя; + + Если ОтборМеток Тогда + НовыйЭлемент = Форма.Элементы.Добавить("ОтборМетка_" + Метка.Имя, Тип("ПолеФормы"), Группа); + НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка; + НовыйЭлемент.ПутьКДанным = "ОтборМетка_" + Метка.Имя; + НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + НовыйЭлемент.УстановитьДействие("ПриИзменении", "Подключаемый_ОбработчикОтбораПоМеткам"); + КонецЕсли; + + НовыйЭлемент = Форма.Элементы.Добавить("Легенда_" + Метка.Имя, Тип("ДекорацияФормы"), Группа); + НовыйЭлемент.Вид = ВидДекорацииФормы.Картинка; + НовыйЭлемент.Картинка = КартинкаМеткиПоЦвету(Метка.ЦветСвойств); + НовыйЭлемент.Подсказка = Метка.Наименование; + НовыйЭлемент.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСправа; + КонецЦикла; + +КонецПроцедуры + Функция СтраницаРодитель(ГруппаФормы) Родитель = ГруппаФормы.Родитель; @@ -2440,4 +2990,60 @@ КонецФункции +Функция КартинкаМеткиПоЦвету(ЦветСвойств) + + Если ЦветСвойств = Перечисления.ЦветаСвойств.Голубой Тогда + Картинка = БиблиотекаКартинок.МеткаГолубая; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Желтый Тогда + Картинка = БиблиотекаКартинок.МеткаЖелтая; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Зеленый Тогда + Картинка = БиблиотекаКартинок.МеткаЗеленая; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Лаймовый Тогда + Картинка = БиблиотекаКартинок.МеткаЛаймовая; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Красный Тогда + Картинка = БиблиотекаКартинок.МеткаКрасная; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Оранжевый Тогда + Картинка = БиблиотекаКартинок.МеткаОранжевая; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Розовый Тогда + Картинка = БиблиотекаКартинок.МеткаРозовая; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Синий Тогда + Картинка = БиблиотекаКартинок.МеткаСиняя; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Фиолетовый Тогда + Картинка = БиблиотекаКартинок.МеткаФиолетовая; + Иначе + Картинка = БиблиотекаКартинок.МеткаСерая; + КонецЕсли; + + Возврат Картинка; + +КонецФункции + +Функция ЭлементСтиляПоЦвету(ЦветСвойств) + + Если ЦветСвойств = Перечисления.ЦветаСвойств.Лаймовый Тогда + ЭлементСтиля = Метаданные.ЭлементыСтиля.ЦветМеткиЛаймовый.Значение; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Красный Тогда + ЭлементСтиля = Метаданные.ЭлементыСтиля.ЦветМеткиКрасный.Значение; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Оранжевый Тогда + ЭлементСтиля = Метаданные.ЭлементыСтиля.ЦветМеткиОранжевый.Значение; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Желтый Тогда + ЭлементСтиля = Метаданные.ЭлементыСтиля.ЦветМеткиЖелтый.Значение; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Зеленый Тогда + ЭлементСтиля = Метаданные.ЭлементыСтиля.ЦветМеткиЗеленый.Значение; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Синий Тогда + ЭлементСтиля = Метаданные.ЭлементыСтиля.ЦветМеткиСиний.Значение; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Голубой Тогда + ЭлементСтиля = Метаданные.ЭлементыСтиля.ЦветМеткиГолубой.Значение; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Фиолетовый Тогда + ЭлементСтиля = Метаданные.ЭлементыСтиля.ЦветМеткиФиолетовый.Значение; + ИначеЕсли ЦветСвойств = Перечисления.ЦветаСвойств.Розовый Тогда + ЭлементСтиля = Метаданные.ЭлементыСтиля.ЦветМеткиРозовый.Значение; + Иначе + ЭлементСтиля = Метаданные.ЭлементыСтиля.ЦветМеткиСерый.Значение; + КонецЕсли; + + Возврат ЭлементСтиля; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl index 4e4d4bd52..804d3796a 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl @@ -45,9 +45,18 @@ Или Не Параметр.Свойство("Ссылка") Тогда Возврат Истина; Иначе - Отбор = Новый Структура("Свойство", Параметр.Ссылка); - Возврат Форма.Свойства_ОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор).Количество() > 0; + Отбор = Новый Структура("Свойство", Параметр.Ссылка); + Если Форма.Свойства_ОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор).Количество() > 0 + Или Форма.Свойства_УстановленныеМетки.НайтиПоЗначению(Параметр.Ссылка) <> Неопределено Тогда + Возврат Истина; + Иначе + Возврат Ложь; + КонецЕсли; КонецЕсли; + ИначеЕсли ИмяСобытия = "Запись_ИзменениеМеток" И Форма = Параметр.Владелец Тогда + Форма.Свойства_УстановленныеМетки.ЗагрузитьЗначения(Параметр.УстановленныеМетки); + Форма.Модифицированность = Истина; + Возврат Истина; КонецЕсли; Возврат Ложь; @@ -160,13 +169,21 @@ // - КомандаФормы - элемент, нажатие которого необходимо обработать. // СтандартнаяОбработка - Булево - возвращаемый параметр, если необходимо выполнить интерактивные // действия с пользователем, то устанавливается в значение Ложь. +// Объект - ДанныеФормыСтруктура - описание объекта, к которому подключены свойства, +// если свойство не указано или Неопределено, то +// объект будет взят из реквизита формы "Объект". // -Процедура ВыполнитьКоманду(Форма, Элемент = Неопределено, СтандартнаяОбработка = Неопределено) Экспорт +Процедура ВыполнитьКоманду(Форма, + Элемент = Неопределено, + СтандартнаяОбработка = Неопределено, + Объект = Неопределено) Экспорт Если Элемент = Неопределено Тогда ИмяКоманды = "РедактироватьСоставДополнительныхРеквизитов"; ИначеЕсли ТипЗнч(Элемент) = Тип("КомандаФормы") Тогда ИмяКоманды = Элемент.Имя; + ИначеЕсли ТипЗнч(Элемент) = Тип("ДекорацияФормы") Тогда + ИмяКоманды = Элемент.Имя; Иначе ЗначениеРеквизита = Форма[Элемент.Имя]; Если Не ЗначениеЗаполнено(ЗначениеРеквизита) Тогда @@ -180,23 +197,115 @@ РедактироватьСоставСвойств(Форма); ИначеЕсли ИмяКоманды = "РедактироватьГиперссылкуРеквизита" Тогда РедактироватьГиперссылкуРеквизита(Форма); + ИначеЕсли ИмяКоманды = "РедактироватьМетки" + Или ИмяКоманды = "ОстальныеМетки" + Или СтрНайти(ИмяКоманды, "Метка") = 1 Тогда + РедактироватьМетки(Форма, Объект); КонецЕсли; + +КонецПроцедуры + +// Открывает форму редактирования меток для объекта. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения - обрабатываемая форма. +// Объект - ДанныеФормыСтруктура - описание объекта, к которому подключены свойства, +// если свойство не указано или Неопределено, то +// объект будет взят из реквизита формы "Объект". +// +Процедура РедактироватьМетки(Форма, Объект = Неопределено) Экспорт + + Если Объект = Неопределено Тогда + ОписаниеОбъекта = Форма.Объект; + Иначе + ОписаниеОбъекта = Объект; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ОписаниеОбъекта", ОписаниеОбъекта); + + ОткрытьФорму("ОбщаяФорма.РедактированиеМеток", ПараметрыФормы, Форма, Форма,,,, + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +// Устанавливает отбор в списке по метке. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения - обрабатываемая форма. +// ИмяКоманды - Строка - имя команды установки отбора по метке. +// +Процедура УстановитьОтборПоМетке(Форма, ИмяКоманды) Экспорт + + ЭлементыОтбора = Форма.Список.Отбор.Элементы; + ГруппаОтбора = Неопределено; + Для Каждого ЭлементОтбора Из ЭлементыОтбора Цикл + Если ЭлементОтбора.ИдентификаторПользовательскойНастройки = "ОтборПоМеткам" Тогда + ГруппаОтбора = ЭлементОтбора; + Прервать; + КонецЕсли; + КонецЦикла; + + ИмяМетки = СтрЗаменить(ИмяКоманды, "ОтборМетка_", ""); + ОписаниеЛегендыМеток = Форма.Свойства_ОписаниеЛегендыМеток; + МеткиЛегенды = ОписаниеЛегендыМеток.НайтиСтроки(Новый Структура("ИмяМетки", ИмяМетки)); + + Если МеткиЛегенды.Количество() = 0 Тогда + Возврат; + Иначе + ОтобраннаяМетка = МеткиЛегенды[0]; + КонецЕсли; + + Если ГруппаОтбора = Неопределено Тогда + ОтобранныеМетки = Новый Массив; + ОтобранныеМетки.Добавить(ОтобраннаяМетка.Метка); + Иначе + ОтобранныеМетки = ГруппаОтбора.ПравоеЗначение; + ИндексМетки = ОтобранныеМетки.Найти(ОтобраннаяМетка.Метка); + Если ИндексМетки <> Неопределено Тогда + ОтобранныеМетки.Удалить(ИндексМетки); + ОтобраннаяМетка.ОтборПоМетке = Ложь; + Иначе + ОтобранныеМетки.Добавить(ОтобраннаяМетка.Метка); + ОтобраннаяМетка.ОтборПоМетке = Истина; + КонецЕсли; + КонецЕсли; + + Если ОтобранныеМетки.Количество() = 0 Тогда + ГруппаОтбора.Использование = Ложь; + Возврат; + КонецЕсли; + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( + Форма.Список, + "ДополнительныеРеквизиты.Свойство", + ОтобранныеМетки, + ВидСравненияКомпоновкиДанных.ВСписке,, + Истина, + РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный, + "ОтборПоМеткам"); + КонецПроцедуры #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс -Процедура ОткрытьСписокСвойств(ДополнительныеРеквизиты = Ложь) Экспорт +Процедура ОткрытьСписокСвойств(ИмяКоманды) Экспорт + + Если ИмяКоманды = "ДополнительныеРеквизиты" Тогда + ВидСвойств = ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеРеквизиты"); + ИначеЕсли ИмяКоманды = "ДополнительныеСведения" Тогда + ВидСвойств = ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеСведения"); + ИначеЕсли ИмяКоманды = "Метки" Тогда + ВидСвойств = ПредопределенноеЗначение("Перечисление.ВидыСвойств.Метки"); + Иначе + ВидСвойств = ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеРеквизиты"); + КонецЕсли; ПараметрыФормы = Новый Структура; - Если ДополнительныеРеквизиты Тогда - ПараметрыФормы.Вставить("ПоказатьДополнительныеРеквизиты"); - Иначе - ПараметрыФормы.Вставить("ПоказатьДополнительныеСведения"); - КонецЕсли; - ОткрытьФорму("Справочник.НаборыДополнительныхРеквизитовИСведений.ФормаСписка", - ПараметрыФормы, , ?(ДополнительныеРеквизиты, "ДополнительныеРеквизиты", "ДополнительныеСведения")); + ПараметрыФормы.Вставить("ВидСвойств", ВидСвойств); + ОткрытьФорму("Справочник.НаборыДополнительныхРеквизитовИСведений.ФормаСписка", ПараметрыФормы,, ВидСвойств); КонецПроцедуры @@ -223,7 +332,8 @@ Иначе ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("ПоказатьДополнительныеРеквизиты"); + ПараметрыФормы.Вставить("ВидСвойств", + ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеРеквизиты")); ОткрытьФорму("Справочник.НаборыДополнительныхРеквизитовИСведений.ФормаСписка", ПараметрыФормы); @@ -231,6 +341,8 @@ ПараметрыПерехода.Вставить("Набор", Наборы[0].Значение); ПараметрыПерехода.Вставить("Свойство", Неопределено); ПараметрыПерехода.Вставить("ЭтоДополнительноеСведение", Ложь); + ПараметрыПерехода.Вставить("ВидСвойств", + ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеРеквизиты")); ДлинаНачала = СтрДлина("ДополнительныйРеквизитЗначение_"); ЭтоПолеФормы = (ТипЗнч(Форма.ТекущийЭлемент) = Тип("ПолеФормы")); diff --git a/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl index f5fa41855..e2ab22441 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl @@ -37,6 +37,7 @@ ВидыСвойствНабора = Новый Структура; ВидыСвойствНабора.Вставить("ДополнительныеРеквизиты", Ложь); ВидыСвойствНабора.Вставить("ДополнительныеСведения", Ложь); + ВидыСвойствНабора.Вставить("Метки", Ложь); ТипСсылки = Неопределено; МетаданныеВладельца = УправлениеСвойствамиСлужебный.МетаданныеВладельцаЗначенийСвойствНабора(Ссылка, УчитыватьПометкуУдаления, ТипСсылки); @@ -49,7 +50,7 @@ ВидыСвойствНабора.Вставить( "ДополнительныеРеквизиты", МетаданныеВладельца <> Неопределено - И МетаданныеВладельца.ТабличныеЧасти.Найти("ДополнительныеРеквизиты") <> Неопределено ); + И МетаданныеВладельца.ТабличныеЧасти.Найти("ДополнительныеРеквизиты") <> Неопределено); // Проверка использования дополнительных сведений. ВидыСвойствНабора.Вставить( @@ -57,6 +58,13 @@ Метаданные.ОбщиеКоманды.Найти("ДополнительныеСведенияКоманднаяПанель") <> Неопределено И Метаданные.ОбщиеКоманды.ДополнительныеСведенияКоманднаяПанель.ТипПараметраКоманды.СодержитТип(ТипСсылки)); + // Проверка использования меток. + ВладельцыМеток = Метаданные.ОпределяемыеТипы.ВладелецМеток.Тип; + ВидыСвойствНабора.Вставить( + "Метки", + МетаданныеВладельца <> Неопределено + И ВладельцыМеток.СодержитТип(ТипСсылки)); + Возврат Новый ФиксированнаяСтруктура(ВидыСвойствНабора); КонецФункции diff --git a/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl index b694658f5..962c97e88 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl @@ -12,7 +12,7 @@ // // Параметры: // ВидОбъектов - Строка - полное имя объекта метаданных; -// ВидСвойств - Строка - "ДополнительныеРеквизиты" или "ДополнительныеСведения". +// ВидСвойств - Строка - "ДополнительныеРеквизиты" или "ДополнительныеСведения" или "Метки". // // Возвращаемое значение: // ТаблицаЗначений - свойство, Наименование, ТипЗначения, ФорматСвойства. @@ -61,13 +61,29 @@ |ИЗ | &ТаблицаСвойств КАК ТаблицаСвойств |ГДЕ - | ТаблицаСвойств.Ссылка В ИЕРАРХИИ(&Ссылка)"; + | ТаблицаСвойств.Ссылка В ИЕРАРХИИ (&Ссылка) + | И ТаблицаСвойств.Свойство.ВидСвойств В (&ВидыСвойств)"; - ПолноеИмяТаблицы = "Справочник.НаборыДополнительныхРеквизитовИСведений." + ВидСвойств; + ВидыСвойств = Новый Массив; + Если ВидСвойств = "ДополнительныеРеквизиты" Тогда + ПолноеИмяТаблицы = "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты"; + ВидыСвойств.Добавить(Перечисления.ВидыСвойств.ПустаяСсылка()); + ВидыСвойств.Добавить(Перечисления.ВидыСвойств.ДополнительныеРеквизиты); + ИначеЕсли ВидСвойств = "ДополнительныеСведения" Тогда + ПолноеИмяТаблицы = "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения"; + ВидыСвойств.Добавить(Перечисления.ВидыСвойств.ПустаяСсылка()); + ВидыСвойств.Добавить(Перечисления.ВидыСвойств.ДополнительныеСведения); + ИначеЕсли ВидСвойств = "Метки" Тогда + ПолноеИмяТаблицы = "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты"; + ВидыСвойств.Добавить(Перечисления.ВидыСвойств.Метки); + Иначе + Возврат Неопределено; + КонецЕсли; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаСвойств", ПолноеИмяТаблицы); Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", НаборСсылка); + Запрос.УстановитьПараметр("ВидыСвойств", ВидыСвойств); Результат = Запрос.Выполнить().Выгрузить(); Результат.Свернуть("Свойство,Наименование,ТипЗначения,ФорматСвойства"); @@ -789,7 +805,16 @@ КонецЕсли; СтарыеЗначения = ОписаниеОбъекта.ДополнительныеРеквизиты.Выгрузить(); - ОписаниеОбъекта.ДополнительныеРеквизиты.Очистить(); + ДополнительныеРеквизиты = УправлениеСвойствами.СвойстваПоВидуДополнительныхРеквизитов( + ОписаниеОбъекта.ДополнительныеРеквизиты.Выгрузить(), + Перечисления.ВидыСвойств.ДополнительныеРеквизиты); + Для каждого ДополнительныйРеквизит Из ДополнительныеРеквизиты Цикл + Свойства = ОписаниеОбъекта.ДополнительныеРеквизиты.НайтиСтроки( + Новый Структура("Свойство", ДополнительныйРеквизит)); + Для каждого Свойство Из Свойства Цикл + ОписаниеОбъекта.ДополнительныеРеквизиты.Удалить(Свойство); + КонецЦикла; + КонецЦикла; Для каждого Строка Из Форма.Свойства_ОписаниеДополнительныхРеквизитов Цикл @@ -843,6 +868,37 @@ КонецПроцедуры +Процедура ПеренестиУстановленныеМеткиВОбъект(Форма, Объект = Неопределено) Экспорт + + Если НЕ Форма.Свойства_ИспользоватьСвойства + ИЛИ НЕ Форма.Свойства_ИспользоватьДопРеквизиты Тогда + Возврат; + КонецЕсли; + + Если Объект = Неопределено Тогда + ОписаниеОбъекта = Форма.Объект; + Иначе + ОписаниеОбъекта = Объект; + КонецЕсли; + + Метки = УправлениеСвойствами.СвойстваПоВидуДополнительныхРеквизитов( + ОписаниеОбъекта.ДополнительныеРеквизиты.Выгрузить(), + Перечисления.ВидыСвойств.Метки); + Для каждого Метка Из Метки Цикл + Свойства = ОписаниеОбъекта.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", Метка)); + Для каждого Свойство Из Свойства Цикл + ОписаниеОбъекта.ДополнительныеРеквизиты.Удалить(Свойство); + КонецЦикла; + КонецЦикла; + + Для каждого УстановленнаяМетка Из Форма.Свойства_УстановленныеМетки Цикл + Метка = ОписаниеОбъекта.ДополнительныеРеквизиты.Добавить(); + Метка.Свойство = УстановленнаяМетка.Значение; + Метка.Значение = Истина; + КонецЦикла; + +КонецПроцедуры + // Возвращает таблицу наборов доступных свойств владельца. // // Параметры: @@ -914,13 +970,13 @@ // Параметры: // ДополнительныеСвойстваОбъекта - ТаблицаЗначений // Наборы - ТаблицаЗначений -// ЭтоДополнительноеСведение - Булево +// ВидСвойств - ПеречислениеСсылка.ВидыСвойств // -Функция ЗначенияСвойств(ДополнительныеСвойстваОбъекта, Наборы, ЭтоДополнительноеСведение) Экспорт +Функция ЗначенияСвойств(ДополнительныеСвойстваОбъекта, Наборы, ВидСвойств) Экспорт Если ДополнительныеСвойстваОбъекта.Количество() = 0 Тогда // Предварительная быстрая проверка использования дополнительных свойств. - СвойстваНеНайдены = ДополнительныеРеквизитыИСведенияНеНайдены(Наборы, ЭтоДополнительноеСведение); + СвойстваНеНайдены = ДополнительныеРеквизитыИСведенияНеНайдены(Наборы, ВидСвойств); Если СвойстваНеНайдены Тогда ОписаниеСвойств = Новый ТаблицаЗначений; @@ -934,6 +990,7 @@ ОписаниеСвойств.Колонки.Добавить("МногострочноеПолеВвода"); ОписаниеСвойств.Колонки.Добавить("Удалено"); ОписаниеСвойств.Колонки.Добавить("Значение"); + ОписаниеСвойств.Колонки.Добавить("НомерКартинки"); Возврат ОписаниеСвойств; КонецЕсли; КонецЕсли; @@ -959,6 +1016,7 @@ Запрос.УстановитьПараметр("НаборыСвойств", НаборыСвойств); Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык()); Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка); + Запрос.УстановитьПараметр("ВидСвойств", ВидСвойств); Запрос.Текст = "ВЫБРАТЬ @@ -1046,22 +1104,42 @@ | Условие КАК Условие, | Значение КАК Значение, | НаборСвойств КАК НаборСвойств - | ) КАК ЗависимостиДополнительныхРеквизитов + | ) КАК ЗависимостиДополнительныхРеквизитов, + | ВЫБОР + | КОГДА ДополнительныеРеквизитыИСведения.ПометкаУдаления = ИСТИНА + | ТОГДА 12 + | КОГДА ДополнительныеРеквизитыИСведения.ВидСвойств = ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.Метки) + | ТОГДА ДополнительныеРеквизитыИСведения.ЦветСвойств.Порядок + 1 + | ИНАЧЕ 11 + | КОНЕЦ КАК НомерКартинки |ИЗ | ВсеСвойства КАК ВсеСвойства | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения | ПО ВсеСвойства.Свойство = ДополнительныеРеквизитыИСведения.Ссылка + |ГДЕ + | ДополнительныеРеквизитыИСведения.ЭтоДополнительноеСведение = &ЭтоНаборыДополнительныхСведений + | И ДополнительныеРеквизитыИСведения.ВидСвойств В (ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.ПустаяСсылка), &ВидСвойств) |УПОРЯДОЧИТЬ ПО | Удалено, | ВсеСвойства.ПорядокНабора, | ВсеСвойства.ПорядокСвойства"; - Если ЭтоДополнительноеСведение Тогда + Если ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения Тогда Запрос.Текст = СтрЗаменить( Запрос.Текст, "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты", "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения"); + ЭтоНаборыДополнительныхСведений = Истина; + ИначеЕсли ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + Запрос.Текст = СтрЗаменить( + Запрос.Текст, + "В (ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.ПустаяСсылка), &ВидСвойств)", + "= ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.Метки)"); + ЭтоНаборыДополнительныхСведений = Ложь; + Иначе + ЭтоНаборыДополнительныхСведений = Ложь; КонецЕсли; + Запрос.УстановитьПараметр("ЭтоНаборыДополнительныхСведений", ЭтоНаборыДополнительныхСведений); СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); Если СуффиксТекущегоЯзыка = Неопределено Тогда @@ -1114,7 +1192,7 @@ ОписаниеСвойства = ОписаниеСвойств.Найти(Строка.Свойство, "Свойство"); Если ОписаниеСвойства <> Неопределено Тогда // Поддержка строк неограниченной длины. - Если НЕ ЭтоДополнительноеСведение Тогда + Если ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеРеквизиты Тогда ИспользоватьСтрокуВВидеСсылки = ИспользоватьСтрокуВВидеСсылки( ОписаниеСвойства.ТипЗначения, ОписаниеСвойства.ВыводитьВВидеГиперссылки, @@ -1150,7 +1228,7 @@ // Только для внутреннего использования. // -Функция ДополнительныеРеквизитыИСведенияНеНайдены(Наборы, ЭтоДополнительноеСведение, ОтложеннаяИнициализация = Ложь) +Функция ДополнительныеРеквизитыИСведенияНеНайдены(Наборы, ВидСвойств, ОтложеннаяИнициализация = Ложь) Запрос = Новый Запрос; Запрос.УстановитьПараметр("НаборыСвойств", Наборы.ВыгрузитьЗначения()); @@ -1163,7 +1241,7 @@ | СвойстваНаборов.Ссылка В(&НаборыСвойств) | И НЕ СвойстваНаборов.ПометкаУдаления"; - Если ЭтоДополнительноеСведение Тогда + Если ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения Тогда Запрос.Текст = СтрЗаменить( Запрос.Текст, "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты", @@ -1470,7 +1548,7 @@ Для каждого ВидОбъектовМетаданных Из ВидыОбъектовМетаданных Цикл Для каждого ОбъектМетаданных Из Метаданные[ВидОбъектовМетаданных] Цикл - Если ЭтоОбъектМетаданныхСДополнительнымиРеквизитами(ОбъектМетаданных) Тогда + Если ЭтоОбъектМетаданныхСоСвойствами(ОбъектМетаданных, "ДополнительныеРеквизиты") Тогда ТаблицыОбъектов.Добавить(ОбъектМетаданных.ПолноеИмя()); КонецЕсли; @@ -1496,17 +1574,17 @@ КонецФункции -// Проверяет использует ли объект метаданных дополнительные реквизиты. +// Проверяет использует ли объект метаданных свойства определенного вида (кроме доп. сведений). // Проверка предназначена для контроля ссылочной целостности, поэтому // проверка встраивания пропускается. // -Функция ЭтоОбъектМетаданныхСДополнительнымиРеквизитами(ОбъектМетаданных) Экспорт +Функция ЭтоОбъектМетаданныхСоСвойствами(ОбъектМетаданных, ВидСвойств) Экспорт Если ОбъектМетаданных = Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений Тогда Возврат Ложь; КонецЕсли; - ТабличнаяЧасть = ОбъектМетаданных.ТабличныеЧасти.Найти("ДополнительныеРеквизиты"); + ТабличнаяЧасть = ОбъектМетаданных.ТабличныеЧасти.Найти(ВидСвойств); Если ТабличнаяЧасть = Неопределено Тогда Возврат Ложь; КонецЕсли; @@ -2274,12 +2352,13 @@ // Используется в форме списка справочника НаборыДополнительныхРеквизитовИСведений // и плана видов характеристик ДополнительныеРеквизитыИСведения. // -Процедура ОбновитьСписокСвойствТекущегоНабора(Форма, Набор, ЭтоСведения, ТекущаяДоступность = Неопределено) Экспорт +Процедура ОбновитьСписокСвойствТекущегоНабора(Форма, Набор, ВидСвойств, ТекущаяДоступность = Неопределено) Экспорт Запрос = Новый Запрос; Запрос.УстановитьПараметр("Набор", Набор); Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык()); Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка); + Запрос.УстановитьПараметр("ВидСвойств", ВидСвойств); Если Не Форма.ПоказатьНеиспользуемыеРеквизиты Тогда Запрос.Текст = @@ -2293,9 +2372,11 @@ | Свойства.ТипЗначения КАК ТипЗначения, | ИСТИНА КАК Общее, | ВЫБОР - | КОГДА СвойстваНаборов.ПометкаУдаления = ИСТИНА - | ТОГДА 4 - | ИНАЧЕ 3 + | КОГДА Свойства.ПометкаУдаления = ИСТИНА + | ТОГДА 12 + | КОГДА Свойства.ВидСвойств = ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.Метки) + | ТОГДА Свойства.ЦветСвойств.Порядок + 1 + | ИНАЧЕ 11 | КОНЕЦ КАК НомерКартинки, | Свойства.Подсказка КАК Подсказка, | Свойства.ЗаголовокФормыЗначения КАК ЗаголовокФормыЗначения, @@ -2305,7 +2386,9 @@ | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства | ПО СвойстваНаборов.Свойство = Свойства.Ссылка |ГДЕ - | СвойстваНаборов.Ссылка = &Набор + | СвойстваНаборов.Свойство.ЭтоДополнительноеСведение = &ЭтоНаборыДополнительныхСведений + | И СвойстваНаборов.Свойство.ВидСвойств В (ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.ПустаяСсылка), &ВидСвойств) + | И СвойстваНаборов.Ссылка = &Набор | |УПОРЯДОЧИТЬ ПО | СвойстваНаборов.НомерСтроки @@ -2329,8 +2412,10 @@ | ИСТИНА КАК Общее, | ВЫБОР | КОГДА Свойства.ПометкаУдаления = ИСТИНА - | ТОГДА 4 - | ИНАЧЕ 3 + | ТОГДА 12 + | КОГДА Свойства.ВидСвойств = ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.Метки) + | ТОГДА Свойства.ЦветСвойств.Порядок + 1 + | ИНАЧЕ 11 | КОНЕЦ КАК НомерКартинки, | Свойства.Подсказка КАК Подсказка, | Свойства.ЗаголовокФормыЗначения КАК ЗаголовокФормыЗначения, @@ -2339,28 +2424,36 @@ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Представления КАК СвойстваПредставления | ПО Свойства.Ссылка = СвойстваПредставления.Ссылка - | И СвойстваПредставления.КодЯзыка = &КодЯзыка + | И СвойстваПредставления.КодЯзыка = &КодЯзыка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК СоставНабора | ПО Свойства.Ссылка = СоставНабора.Свойство |ГДЕ - | Свойства.ЭтоДополнительноеСведение = &ЭтоДополнительноеСведение + | Свойства.ЭтоДополнительноеСведение = &ЭтоНаборыДополнительныхСведений + | И Свойства.ВидСвойств В (ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.ПустаяСсылка), &ВидСвойств) | И СоставНабора.Свойство ЕСТЬ NULL - | |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ""ВерсияДанных"" КАК ВерсияДанных"; - - Запрос.УстановитьПараметр("ЭтоДополнительноеСведение", (ЭтоСведения)); КонецЕсли; - Если ЭтоСведения Тогда + Если ВидСвойств = Перечисления.ВидыСвойств.ДополнительныеСведения Тогда Запрос.Текст = СтрЗаменить( Запрос.Текст, "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты", "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения"); + ЭтоНаборыДополнительныхСведений = Истина; + ИначеЕсли ВидСвойств = Перечисления.ВидыСвойств.Метки Тогда + Запрос.Текст = СтрЗаменить( + Запрос.Текст, + "В (ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.ПустаяСсылка), &ВидСвойств)", + "= ЗНАЧЕНИЕ(Перечисление.ВидыСвойств.Метки)"); + ЭтоНаборыДополнительныхСведений = Ложь; + Иначе + ЭтоНаборыДополнительныхСведений = Ложь; КонецЕсли; + Запрос.УстановитьПараметр("ЭтоНаборыДополнительныхСведений", ЭтоНаборыДополнительныхСведений); СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя(); Если СуффиксТекущегоЯзыка = Неопределено Тогда diff --git a/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl b/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl index 41e81b821..804d321f3 100644 --- a/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl +++ b/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl @@ -269,7 +269,7 @@ Исключение СнятьБлокировкуУчетнойЗаписиДляПолучения(УчетнаяЗапись); - ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось подключиться к учетной записи %1 по причине: + ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось подключиться к почте %1 по причине: |%2'", ОбщегоНазначения.КодОсновногоЯзыка()); ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияОбОшибке, @@ -790,7 +790,7 @@ ТекстСообщенияОбОшибке = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки( ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка()); ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось подключиться к учетной записи %1 по причине: + НСтр("ru = 'Не удалось подключиться к почте %1 по причине: |%2'", ОбщегоНазначения.КодОсновногоЯзыка()), ДанныеУчетнойЗаписи.Ссылка, ТекстСообщенияОбОшибке); @@ -857,7 +857,7 @@ ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка()); ТекстОшибкиДляЖурналаРегистрации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось подключиться к учетной записи %1 по причине: + НСтр("ru = 'Не удалось подключиться к почте %1 по причине: |%2'", ОбщегоНазначения.КодОсновногоЯзыка()), ДанныеУчетнойЗаписи.Ссылка, ТекстОшибкиДляЖурналаРегистрации); @@ -1188,12 +1188,12 @@ // Возвращаемое значение: // Структура: -// * ВсеПолученныеПисьма - Массив из Документы.ЭлектронноеПисьмоВходящее -// - Массив из Документы.ЭлектронноеПисьмоИсходящее -// * ПисьмаДляОпределенияПапок - Массив из Документы.ЭлектронноеПисьмоВходящее -// - Массив из Документы.ЭлектронноеПисьмоИсходящее -// * ПолученныеПисьмаПоУчетнойЗаписи - Массив из Документы.ЭлектронноеПисьмоВходящее -// - Массив из Документы.ЭлектронноеПисьмоИсходящее +// * ВсеПолученныеПисьма - Массив из ДокументСсылка.ЭлектронноеПисьмоВходящее +// - Массив из ДокументСсылка.ЭлектронноеПисьмоИсходящее +// * ПисьмаДляОпределенияПапок - Массив из ДокументСсылка.ЭлектронноеПисьмоВходящее +// - Массив из ДокументСсылка.ЭлектронноеПисьмоИсходящее +// * ПолученныеПисьмаПоУчетнойЗаписи - Массив из ДокументСсылка.ЭлектронноеПисьмоВходящее +// - Массив из ДокументСсылка.ЭлектронноеПисьмоИсходящее // Функция ПолученныеПисьма() @@ -2499,16 +2499,23 @@ Если ЕстьПодписи Тогда МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись"); + МодульЭлектроннаяПодписьКлиентСервер= ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСервер"); Для Каждого ПодписьВложения Из МассивПодписей Цикл - ОписаниеОшибки = ""; - ДанныеПодписи = МодульЭлектроннаяПодпись.ПрочитатьДанныеПодписи(ПодписьВложения.Данные, ОписаниеОшибки); - Если Не ПустаяСтрока(ОписаниеОшибки) Тогда + ДанныеПодписи = МодульЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи(); + ДанныеПодписи.Подпись = ПодписьВложения.Данные; + РезультатЧтенияСвойствПодписи = МодульЭлектроннаяПодпись.СвойстваПодписи(ПодписьВложения.Данные); + + Если РезультатЧтенияСвойствПодписи.Успех <> Ложь Тогда + ЗаполнитьЗначенияСвойств(ДанныеПодписи, РезультатЧтенияСвойствПодписи); + ДанныеПодписи.Вставить("ДатаПодписиИзМетки", РезультатЧтенияСвойствПодписи.ДатаПодписиИзМетки); + ДанныеПодписи.Вставить("НеподтвержденнаяДатаПодписи", РезультатЧтенияСвойствПодписи.НеподтвержденнаяДатаПодписи); + Иначе ТекстСобытия = НСтр("ru = 'Не удалось прочитать данные подписи вложения %1: %2'"); ОшибкаНеУдалосьПрочитатьДанныеПодписи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ТекстСобытия, ВложениеПисьмаСсылка, ОписаниеОшибки); + ТекстСобытия, ВложениеПисьмаСсылка, РезультатЧтенияСвойствПодписи.ТекстОшибки); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, , , ОшибкаНеУдалосьПрочитатьДанныеПодписи); КонецЕсли; @@ -3094,10 +3101,10 @@ КонецФункции -// Создает предопределенные папки для учетной записи электронной почты. +// Создает предопределенные папки для электронной почты. // // Параметры: -// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись для которой будут созданы +// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - почта, для которой будут созданы // предопределенные папки. // Процедура СоздатьПредопределенныеПапкиЭлектронныхПисемДляУчетнойЗаписи(УчетнаяЗапись) Экспорт diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl index c4a6e2fd0..eda788d6d 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl @@ -453,7 +453,6 @@ Обработчик.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Перезаполнение служебного реквизита %1 для устранения вероятного сбоя порядка.'") ,"РеквизитДопУпорядочивания"); Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.СостоянияОригиналовПервичныхДокументов.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.ЧитаемыеОбъекты = "Справочник.СостоянияОригиналовПервичныхДокументов"; diff --git a/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl index 43620b224..4b07ffe6c 100644 --- a/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl @@ -347,7 +347,7 @@ // ОбработчикЗавершения - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы // метода, с параметрами: -// * ФайлИзменен - Булево - изменен файл на диске или двоичные данные во временном хранилище. +// * ФайлИзменен - Булево - изменен файл на компьютере или двоичные данные во временном хранилище. // * ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта // ОписаниеОповещения. // ИмяФайла - Строка - имя файла с расширением или расширение файла без точки. Если @@ -398,7 +398,7 @@ // Если передан путь к файлу, то выполняет позиционирование курсора в проводнике на этом файле. // // Параметры: -// ПутьККаталогуИлиФайлу - Строка - полный путь к файлу или каталогу на диске. +// ПутьККаталогуИлиФайлу - Строка - полный путь к файлу или каталогу на компьютере. // // Пример: // // Для Windows diff --git a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl index 40027c966..7b4f9058e 100644 --- a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl @@ -245,7 +245,7 @@ // Блокирует возможность открытия файлов, расширение которых относятся к исполняемым файлам. // // Параметры: -// ПутьКФайлу - Строка - полный путь к файлу на диске, который требуется открыть. +// ПутьКФайлу - Строка - полный путь к файлу на компьютере, который требуется открыть. // Оповещение - ОписаниеОповещения - оповещение о результате открытия. // если оповещение не задано, в случае ошибки будет показано предупреждение: // * ПриложениеЗапущено - Булево - Истина, если внешнее приложение не вызвало ошибок при открытии. @@ -854,7 +854,6 @@ "ЗапуститьПрограммуПриОбработкеОшибки", ЭтотОбъект); НачатьЗапускПриложения(Оповещение, СтрокаКоманды, ТекущийКаталог, ДождатьсяЗавершения); КонецЕсли; - // АПК:534-вкл КонецПроцедуры diff --git a/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl b/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl index c2b50c2f5..2b2491588 100644 --- a/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl @@ -16,37 +16,39 @@ // Функция ЦентрМониторингаВключен() Экспорт ПараметрыЦентраМониторинга = Новый Структура("ВключитьЦентрМониторинга, ЦентрОбработкиИнформацииОПрограмме"); - ПараметрыЦентраМониторинга = ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторингаВнешнийВызов(ПараметрыЦентраМониторинга); - Возврат ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга ИЛИ ПараметрыЦентраМониторинга.ЦентрОбработкиИнформацииОПрограмме; + ПараметрыЦентраМониторинга = ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторингаВнешнийВызов( + ПараметрыЦентраМониторинга); + Возврат ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга + Или ПараметрыЦентраМониторинга.ЦентрОбработкиИнформацииОПрограмме; КонецФункции // Включает подсистему ЦентрМониторинга. // Процедура ВключитьПодсистему() Экспорт - - ПараметрыЦентраМониторинга = ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторинга(); - - ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга = Истина; + + ПараметрыЦентраМониторинга = ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторинга(); + + ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга = Истина; ПараметрыЦентраМониторинга.ЦентрОбработкиИнформацииОПрограмме = Ложь; - - ЦентрМониторингаСлужебный.УстановитьПараметрыЦентраМониторингаВнешнийВызов(ПараметрыЦентраМониторинга); + + ЦентрМониторингаСлужебный.УстановитьПараметрыЦентраМониторингаВнешнийВызов(ПараметрыЦентраМониторинга); РегЗадание = ЦентрМониторингаСлужебный.ПолучитьРегламентноеЗаданиеВнешнийВызов("СборИОтправкаСтатистики", Истина); ЦентрМониторингаСлужебный.УстановитьРасписаниеПоУмолчаниюВнешнийВызов(РегЗадание); - + КонецПроцедуры // Отключает подсистему ЦентрМониторинга. // Процедура ОтключитьПодсистему() Экспорт - - ПараметрыЦентраМониторинга = ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторинга(); - - ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга = Ложь; + + ПараметрыЦентраМониторинга = ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторинга(); + + ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга = Ложь; ПараметрыЦентраМониторинга.ЦентрОбработкиИнформацииОПрограмме = Ложь; - - ЦентрМониторингаСлужебный.УстановитьПараметрыЦентраМониторингаВнешнийВызов(ПараметрыЦентраМониторинга); + + ЦентрМониторингаСлужебный.УстановитьПараметрыЦентраМониторингаВнешнийВызов(ПараметрыЦентраМониторинга); ЦентрМониторингаСлужебный.УдалитьРегламентноеЗаданиеВнешнийВызов("СборИОтправкаСтатистики"); - + КонецПроцедуры // Возвращает строковое представление идентификатора информационной базы в центре мониторинга. @@ -54,7 +56,7 @@ // Строка - уникальный идентификатор информационной базы в центре мониторинга. // Функция ИдентификаторИнформационнойБазы() Экспорт - + ПараметрыДляПолучения = Новый Структура; ПараметрыДляПолучения.Вставить("ВключитьЦентрМониторинга"); ПараметрыДляПолучения.Вставить("ЦентрОбработкиИнформацииОПрограмме"); @@ -62,15 +64,16 @@ ПараметрыДляПолучения.Вставить("НомерКрайнегоПакета"); ПараметрыДляПолучения.Вставить("ИдентификаторИнформационнойБазы"); ПараметрыЦентраМониторинга = ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторинга(ПараметрыДляПолучения); - - Если (ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга ИЛИ ПараметрыЦентраМониторинга.ЦентрОбработкиИнформацииОПрограмме) + + Если (ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга + Или ПараметрыЦентраМониторинга.ЦентрОбработкиИнформацииОПрограмме) И ПараметрыЦентраМониторинга.ОзнакомительныйПакетОтправлен Тогда Возврат Строка(ПараметрыЦентраМониторинга.ИдентификаторИнформационнойБазы); КонецЕсли; // Если данные никогда не отправляли, тогда вернем пустую строку. - Возврат ""; - + Возврат ""; + КонецФункции #КонецОбласти @@ -87,7 +90,8 @@ // Процедура ЗаписатьОперациюБизнесСтатистики(ИмяОперации, Значение, Комментарий = Неопределено, Разделитель = ".") Экспорт Если ЗаписыватьОперацииБизнесСтатистики() Тогда - РегистрыСведений.БуферОперацийСтатистики.ЗаписатьОперациюБизнесСтатистики(ИмяОперации, Значение, Комментарий, Разделитель); + РегистрыСведений.БуферОперацийСтатистики.ЗаписатьОперациюБизнесСтатистики(ИмяОперации, Значение, Комментарий, + Разделитель); КонецЕсли; КонецПроцедуры @@ -104,17 +108,17 @@ // Значение по умолчанию: Ложь. // Процедура ЗаписатьОперациюБизнесСтатистикиЧас(ИмяОперации, КлючУникальности, Значение, Замещать = Ложь) Экспорт - - ПараметрыЗаписи = Новый Структура("ИмяОперации, КлючУникальности, Значение, Замещать, ТипЗаписи, ПериодЗаписи"); - ПараметрыЗаписи.ИмяОперации = ИмяОперации; - ПараметрыЗаписи.КлючУникальности = КлючУникальности; - ПараметрыЗаписи.Значение = Значение; - ПараметрыЗаписи.Замещать = Замещать; - ПараметрыЗаписи.ТипЗаписи = 1; - ПараметрыЗаписи.ПериодЗаписи = НачалоЧаса(ТекущаяУниверсальнаяДата()); - - ЦентрМониторингаСлужебный.ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи); - + + ПараметрыЗаписи = Новый Структура("ИмяОперации, КлючУникальности, Значение, Замещать, ТипЗаписи, ПериодЗаписи"); + ПараметрыЗаписи.ИмяОперации = ИмяОперации; + ПараметрыЗаписи.КлючУникальности = КлючУникальности; + ПараметрыЗаписи.Значение = Значение; + ПараметрыЗаписи.Замещать = Замещать; + ПараметрыЗаписи.ТипЗаписи = 1; + ПараметрыЗаписи.ПериодЗаписи = НачалоЧаса(ТекущаяУниверсальнаяДата()); + + ЦентрМониторингаСлужебный.ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи); + КонецПроцедуры // Записывает уникальную операцию бизнес статистики в разрезе суток. @@ -130,17 +134,17 @@ // Значение по умолчанию: Ложь. // Процедура ЗаписатьОперациюБизнесСтатистикиСутки(ИмяОперации, КлючУникальности, Значение, Замещать = Ложь) Экспорт - - ПараметрыЗаписи = Новый Структура("ИмяОперации, КлючУникальности, Значение, Замещать, ТипЗаписи, ПериодЗаписи"); - ПараметрыЗаписи.ИмяОперации = ИмяОперации; - ПараметрыЗаписи.КлючУникальности = КлючУникальности; - ПараметрыЗаписи.Значение = Значение; - ПараметрыЗаписи.Замещать = Замещать; - ПараметрыЗаписи.ТипЗаписи = 2; - ПараметрыЗаписи.ПериодЗаписи = НачалоДня(ТекущаяУниверсальнаяДата()); - - ЦентрМониторингаСлужебный.ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи); - + + ПараметрыЗаписи = Новый Структура("ИмяОперации, КлючУникальности, Значение, Замещать, ТипЗаписи, ПериодЗаписи"); + ПараметрыЗаписи.ИмяОперации = ИмяОперации; + ПараметрыЗаписи.КлючУникальности = КлючУникальности; + ПараметрыЗаписи.Значение = Значение; + ПараметрыЗаписи.Замещать = Замещать; + ПараметрыЗаписи.ТипЗаписи = 2; + ПараметрыЗаписи.ПериодЗаписи = НачалоДня(ТекущаяУниверсальнаяДата()); + + ЦентрМониторингаСлужебный.ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи); + КонецПроцедуры @@ -150,10 +154,12 @@ // Функция ЗаписыватьОперацииБизнесСтатистики() Экспорт ПараметрыЦентраМониторинга = Новый Структура("ВключитьЦентрМониторинга, ЦентрОбработкиИнформацииОПрограмме, РегистрироватьБизнесСтатистику"); - + ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторинга(ПараметрыЦентраМониторинга); - - Возврат (ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга ИЛИ ПараметрыЦентраМониторинга.ЦентрОбработкиИнформацииОПрограмме) И ПараметрыЦентраМониторинга.РегистрироватьБизнесСтатистику; + + Возврат (ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга + Или ПараметрыЦентраМониторинга.ЦентрОбработкиИнформацииОПрограмме) + И ПараметрыЦентраМониторинга.РегистрироватьБизнесСтатистику; КонецФункции #КонецОбласти @@ -172,17 +178,19 @@ Процедура ЗаписатьСтатистикуКонфигурации(СоответствиеИменМетаданных) Экспорт Параметры = Новый Соответствие; Для Каждого ТекМетаданные Из СоответствиеИменМетаданных Цикл - Параметры.Вставить(ТекМетаданные.Ключ, Новый Структура("Запрос, ОперацииСтатистики, ВидСтатистики", ТекМетаданные.Значение,,0)); + Параметры.Вставить(ТекМетаданные.Ключ, Новый Структура("Запрос, ОперацииСтатистики, ВидСтатистики", + ТекМетаданные.Значение, , 0)); КонецЦикла; - - Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ОбластьДанныхСтрока = Формат(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧГ=0"); - Иначе - ОбластьДанныхСтрока = "0"; - КонецЕсли; + + Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует( + "ТехнологияСервиса.БазоваяФункциональность") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ОбластьДанныхСтрока = Формат(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧГ=0"); + Иначе + ОбластьДанныхСтрока = "0"; + КонецЕсли; ОбластьДанныхСсылка = РегистрыСведений.ОбластиСтатистики.ПолучитьСсылку(ОбластьДанныхСтрока); - + РегистрыСведений.СтатистикаКонфигурации.Записать(Параметры, ОбластьДанныхСсылка); КонецПроцедуры @@ -194,30 +202,31 @@ // равно нулю, то запись не происходит. // Процедура ЗаписатьСтатистикуОбъектаКонфигурации(ИмяОбъекта, Значение) Экспорт - - Если Значение <> 0 Тогда - ОперацияСтатистики = ЦентрМониторингаПовтИсп.ПолучитьСсылкуОперацииСтатистики(ИмяОбъекта); - - Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ОбластьДанныхСтрока = Формат(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧГ=0"); - Иначе - ОбластьДанныхСтрока = "0"; - КонецЕсли; - ОбластьДанныхСсылка = РегистрыСведений.ОбластиСтатистики.ПолучитьСсылку(ОбластьДанныхСтрока); - - НаборЗаписей = РегистрыСведений.СтатистикаКонфигурации.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.ОперацияСтатистики.Установить(ОперацияСтатистики); - - НовЗапись = НаборЗаписей.Добавить(); - НовЗапись.ИдентификаторОбластиСтатистики = ОбластьДанныхСсылка; - НовЗапись.ОперацияСтатистики = ОперацияСтатистики; - НовЗапись.Значение = Значение; - НаборЗаписей.Записать(Истина); - КонецЕсли; - + + Если Значение <> 0 Тогда + ОперацияСтатистики = ЦентрМониторингаПовтИсп.ПолучитьСсылкуОперацииСтатистики(ИмяОбъекта); + + Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует( + "ТехнологияСервиса.БазоваяФункциональность") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ОбластьДанныхСтрока = Формат(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧГ=0"); + Иначе + ОбластьДанныхСтрока = "0"; + КонецЕсли; + ОбластьДанныхСсылка = РегистрыСведений.ОбластиСтатистики.ПолучитьСсылку(ОбластьДанныхСтрока); + + НаборЗаписей = РегистрыСведений.СтатистикаКонфигурации.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.ОперацияСтатистики.Установить(ОперацияСтатистики); + + НовЗапись = НаборЗаписей.Добавить(); + НовЗапись.ИдентификаторОбластиСтатистики = ОбластьДанныхСсылка; + НовЗапись.ОперацияСтатистики = ОперацияСтатистики; + НовЗапись.Значение = Значение; + НаборЗаписей.Записать(Истина); + КонецЕсли; + КонецПроцедуры #КонецОбласти -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl b/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl index 1f5189fcb..bbfb67dc8 100644 --- a/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl @@ -117,7 +117,6 @@ Обработчик.Комментарий = НСтр("ru = 'Включает отправку сведений об использовании программы в фирму ""1С"". Отключить отправку сведений можно в разделе Администрирование / Интернет-поддержка и сервисы / Центр мониторинга'"); Обработчик.Идентификатор = Новый УникальныйИдентификатор("68c8c60c-5b23-436a-9555-a6f24a6b1ffd"); Обработчик.Процедура = "ЦентрМониторингаСлужебный.ВключитьОтправкуСведений"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "ЦентрМониторингаСлужебный.ВключитьОтправкуСведенийЗаполнение"; Обработчик.ЧитаемыеОбъекты = "Константа.ПараметрыЦентраМониторинга"; Обработчик.ИзменяемыеОбъекты = "Константа.ПараметрыЦентраМониторинга, РегламентноеЗадание.СборИОтправкаСтатистики"; @@ -126,7 +125,7 @@ Обработчик = Обработчики.Добавить(); Обработчик.РежимВыполнения = "Оперативно"; Обработчик.ОбщиеДанные = Истина; - Обработчик.Версия = "3.1.8.352"; + Обработчик.Версия = "3.1.9.43"; Обработчик.Процедура = "ЦентрМониторингаСлужебный.ОтключитьРегистрациюСобытийПриОбновлении"; КонецПроцедуры @@ -1298,15 +1297,6 @@ Возврат JSONСтруктура; КонецФункции -Функция СтрокаJSONВСтруктуру(СтрокаJSON) - ЧтениеJSON = Новый ЧтениеJSON(); - ЧтениеJSON.УстановитьСтроку(СтрокаJSON); - - СтруктураJSON = ПрочитатьJSON(ЧтениеJSON); - - Возврат СтруктураJSON; -КонецФункции - Функция СтруктураJSONВСтроку(JSONСтруктура) Экспорт ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет)); @@ -1691,7 +1681,7 @@ HTTPОтвет = HTTPСервисОтправитьДанныеСлужебный(ПараметрыHTTP); Если HTTPОтвет.КодСостояния = 200 Тогда - ПараметрыОтвета = СтрокаJSONВСтруктуру(HTTPОтвет.Тело); + ПараметрыОтвета = ОбщегоНазначения.JSONВЗначение(HTTPОтвет.Тело, , Ложь); Если Не ТестовыйПакет Тогда УстановитьПараметрыОтправки(ПараметрыОтвета); Иначе @@ -3590,7 +3580,7 @@ HTTPОтвет = HTTPСервисОтправитьДанныеСлужебный(ПараметрыHTTP); Если HTTPОтвет.КодСостояния = 200 Тогда - Ответ = СтрокаJSONВСтруктуру(HTTPОтвет.Тело); + Ответ = ОбщегоНазначения.JSONВЗначение(HTTPОтвет.Тело, , Ложь); Результат.Минидамп = Ответ.MiniDump; Результат.ПолныйДамп = Ответ.FullDump; Результат.ЗапросУспешен = Истина; @@ -3964,9 +3954,7 @@ ДополнительнаяИнформация = Новый Структура; Если ЗначениеЗаполнено(ОбщиеНастройки.ДополнительнаяИнформацияОтчета) Тогда // Считаем, что внутри json. Если нет, то кто-то установил руками. Тогда ничего не меняем - так и должно быть. - ЧтениеJSON = Новый ЧтениеJSON(); - ЧтениеJSON.УстановитьСтроку(ОбщиеНастройки.ДополнительнаяИнформацияОтчета); - ДополнительнаяИнформация = ПрочитатьJSON(ЧтениеJSON); + ДополнительнаяИнформация = ОбщегоНазначения.JSONВЗначение(ОбщиеНастройки.ДополнительнаяИнформацияОтчета, , Ложь); КонецЕсли; Если ДополнительнаяИнформация.Свойство("guid") И ДополнительнаяИнформация.guid = ИдентификаторИнформационнойБазы Тогда diff --git a/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl index d163f1207..fa7cdd81c 100644 --- a/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl @@ -42,10 +42,10 @@ // картинок, отображаемых в теле письма. // Функция СформироватьСообщение(Шаблон, Предмет, УникальныйИдентификатор, ДополнительныеПараметры = Неопределено) Экспорт - + ПараметрыОтправки = СформироватьПараметрыОтправки(Шаблон, Предмет, УникальныйИдентификатор, ДополнительныеПараметры); Возврат ШаблоныСообщенийСлужебный.СформироватьСообщение(ПараметрыОтправки); - + КонецФункции // Отправляет сообщение почты или SMS на основании предмета по шаблону сообщения. @@ -61,11 +61,12 @@ // Возвращаемое значение: // см. ШаблоныСообщенийСлужебный.РезультатОтправкиПисьма // -Функция СформироватьСообщениеИОтправить(Шаблон, Предмет, УникальныйИдентификатор, ДополнительныеПараметры = Неопределено) Экспорт - +Функция СформироватьСообщениеИОтправить(Шаблон, Предмет, УникальныйИдентификатор, + ДополнительныеПараметры = Неопределено) Экспорт + ПараметрыОтправки = СформироватьПараметрыОтправки(Шаблон, Предмет, УникальныйИдентификатор, ДополнительныеПараметры); Возврат ШаблоныСообщенийСлужебный.СформироватьСообщениеИОтправить(ПараметрыОтправки); - + КонецФункции // Возвращает список обязательных дополнительных параметров, для процедуры СформироватьСообщениеИОтправить. @@ -78,8 +79,8 @@ // необходимо ли преобразование HTML-текста сообщения, содержащего картинки в тексте письма, из-за // особенностей вывода изображений в форматированном документе. // * УчетнаяЗапись - Неопределено -// - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись электронной почты, -// которая будет использована для отправки письма сформированного по шаблону. +// - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - электронная почта +// для отправки письма, сформированного по шаблону. // * ОтправитьСразу - Булево - если Ложь, то письмо будет помещено в папку Исходящих // и отправлено при общей отправке писем. Только при отправке через Взаимодействие. // Значение по умолчанию, Ложь. @@ -87,14 +88,14 @@ // для формируемого шаблона определяется средствами СКД. // Функция ПараметрыОтправкиПисьмаПоШаблону() Экспорт - + ДополнительныеПараметры = Новый Структура; - + ДополнительныеПараметры.Вставить("ПреобразовыватьHTMLДляФорматированногоДокумента", Ложь); - ДополнительныеПараметры.Вставить("УчетнаяЗапись", Неопределено); + ДополнительныеПараметры.Вставить("УчетнаяЗапись", Неопределено); ДополнительныеПараметры.Вставить("ОтправитьСразу", Ложь); ДополнительныеПараметры.Вставить("ЗначенияПараметровСКД", Новый Структура); - + Возврат ДополнительныеПараметры; КонецФункции @@ -107,7 +108,7 @@ // Процедура СформироватьСписокРеквизитовПоСКД(Реквизиты, Макет) Экспорт ШаблоныСообщенийСлужебный.РеквизитыПоСКД(Реквизиты, Макет); - + КонецПроцедуры // Заполняет список реквизитов шаблона сообщений на основании макета СКД. @@ -131,38 +132,38 @@ // СправочникСсылка.ШаблоныСообщений - ссылка на созданный шаблон. // Функция СоздатьШаблон(Наименование, ПараметрыШаблона) Экспорт - + ПараметрыШаблона.Вставить("Наименование", Наименование); - + ИмяСобытияЖурналаРегистрации = НСтр("ru = 'Создание шаблона сообщений'", ОбщегоНазначения.КодОсновногоЯзыка()); - + НачатьТранзакцию(); Попытка - + Шаблон = Справочники.ШаблоныСообщений.СоздатьЭлемент(); Шаблон.Заполнить(ПараметрыШаблона); - + Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда ОбновлениеИнформационнойБазы.ЗаписатьДанные(Шаблон, Истина); Иначе Шаблон.Записать(); КонецЕсли; - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда - + МодульРаботаСФайлами = ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами"); - + Если ПараметрыШаблона.Вложения <> Неопределено Тогда - Для каждого Вложение Из ПараметрыШаблона.Вложения Цикл - + Для Каждого Вложение Из ПараметрыШаблона.Вложения Цикл + ИмяФайла = Новый Файл(Вложение.Ключ); - + ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры.Вставить("Наименование", ИмяФайла.ИмяБезРасширения); Если СтрНайти(ПараметрыШаблона.Текст, ИмяФайла.ИмяБезРасширения) > 0 Тогда ДополнительныеПараметры.Вставить("ИДФайлаЭлектронногоПисьма", ИмяФайла.ИмяБезРасширения); КонецЕсли; - + ПараметрыДобавленияФайла = МодульРаботаСФайлами.ПараметрыДобавленияФайла(ДополнительныеПараметры); ПараметрыДобавленияФайла.ИмяБезРасширения = ИмяФайла.ИмяБезРасширения; Если СтрДлина(ИмяФайла.Расширение) > 1 Тогда @@ -170,7 +171,7 @@ КонецЕсли; ПараметрыДобавленияФайла.Автор = Пользователи.АвторизованныйПользователь(); ПараметрыДобавленияФайла.ВладелецФайлов = Шаблон.Ссылка; - + Попытка МодульРаботаСФайлами.ДобавитьФайл(ПараметрыДобавленияФайла, Вложение.Значение); Исключение @@ -182,21 +183,22 @@ КонецПопытки; КонецЦикла; КонецЕсли; - + КонецЕсли; - + ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); - + ИнформацияОбОшибке = ИнформацияОбОшибке(); - ЗаписьЖурналаРегистрации(ИмяСобытияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); - + ЗаписьЖурналаРегистрации(ИмяСобытияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + ВызватьИсключение; КонецПопытки; - + Возврат Шаблон.Ссылка; - + КонецФункции // Возвращает описание параметров шаблона. @@ -233,12 +235,12 @@ // присоединенные файлы предмета-владельца. // Функция ОписаниеПараметровШаблона() Экспорт - + ПараметрыШаблона = ШаблоныСообщенийКлиентСервер.ОписаниеПараметровШаблона(); ПараметрыШаблона.Удалить("РазворачиватьСсылочныеРеквизиты"); - + Возврат ПараметрыШаблона; - + КонецФункции // Создает подчиненные реквизиты у ссылочного реквизита в дереве значений @@ -266,41 +268,43 @@ // почты, если Телефон, то номера телефонов. // ВариантОтправки - Строка - вариант отправки для получателя письма: Кому, Копия, СкрытаяКопия, ОбратныйАдрес; // -Процедура ЗаполнитьПолучателей(ПолучателиПисьма, ПредметСообщения, ИмяРеквизита, ТипКонтактнойИнформации = Неопределено, ВариантОтправки = "Кому") Экспорт - +Процедура ЗаполнитьПолучателей(ПолучателиПисьма, ПредметСообщения, ИмяРеквизита, + ТипКонтактнойИнформации = Неопределено, ВариантОтправки = "Кому") Экспорт + Если ТипЗнч(ПредметСообщения) = Тип("Структура") Тогда Предмет = ПредметСообщения.Предмет; Иначе Предмет = ПредметСообщения; КонецЕсли; - - МетаданныеОбъекта = Предмет.Метаданные(); - + Если МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда Если Не ШаблоныСообщенийСлужебный.ЭтоСтандартныйРеквизит(МетаданныеОбъекта, ИмяРеквизита) Тогда Возврат; КонецЕсли; КонецЕсли; - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); - + Если Предмет[ИмяРеквизита] = Неопределено Тогда Возврат; КонецЕсли; - + Если ТипКонтактнойИнформации = Неопределено Тогда - ТипКонтактнойИнформации = МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию("АдресЭлектроннойПочты"); + ТипКонтактнойИнформации = МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию( + "АдресЭлектроннойПочты"); КонецЕсли; - + ОбъектыКонтактнойИнформации = Новый Массив; ОбъектыКонтактнойИнформации.Добавить(Предмет[ИмяРеквизита]); - - КонтактнойИнформация = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(ОбъектыКонтактнойИнформации, ТипКонтактнойИнформации,, ТекущаяДатаСеанса()); - Для каждого ЭлементКонтактнойИнформации Из КонтактнойИнформация Цикл + + КонтактнойИнформация = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов( + ОбъектыКонтактнойИнформации, ТипКонтактнойИнформации,, ТекущаяДатаСеанса()); + Для Каждого ЭлементКонтактнойИнформации Из КонтактнойИнформация Цикл Получатель = ПолучателиПисьма.Добавить(); - Если ТипКонтактнойИнформации = МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию("Телефон") Тогда + Если ТипКонтактнойИнформации = МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию( + "Телефон") Тогда Получатель.НомерТелефона = ЭлементКонтактнойИнформации.Представление; Получатель.Представление = Строка(ЭлементКонтактнойИнформации.Объект); Получатель.Контакт = ОбъектыКонтактнойИнформации[0]; @@ -310,10 +314,10 @@ Получатель.Контакт = ОбъектыКонтактнойИнформации[0]; Получатель.ВариантОтправки = ВариантОтправки; КонецЕсли; - + КонецЦикла; - КонецЕсли - + КонецЕсли; + КонецПроцедуры // Включает/выключает формирование сообщений по ранее созданным шаблонам. @@ -322,9 +326,9 @@ // Значение - Булево - если Истина, то шаблоны сообщений доступны для использования. // Процедура УстановитьИспользованиеШаблоновСообщений(Значение) Экспорт - + Константы.ИспользоватьШаблоныСообщений.Установить(Значение); - + КонецПроцедуры // Проверяет возможность использования механизма шаблонов сообщений. @@ -333,9 +337,9 @@ // Булево - если Истина, то шаблоны сообщений доступны для использования. // Функция ИспользуютсяШаблоныСообщений() Экспорт - + Возврат ПолучитьФункциональнуюОпцию("ИспользоватьШаблоныСообщений"); - + КонецФункции // Программный интерфейс для внешних обработок. @@ -346,16 +350,18 @@ // ТаблицаЗначений - сформированная пустая таблица значений. // Функция ТаблицаПараметров() Экспорт - + ПараметрыШаблона = Новый ТаблицаЗначений; - - ПараметрыШаблона.Колонки.Добавить("ИмяПараметра" , Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(50, ДопустимаяДлина.Переменная))); - ПараметрыШаблона.Колонки.Добавить("ОписаниеТипа" , Новый ОписаниеТипов("ОписаниеТипов")); - ПараметрыШаблона.Колонки.Добавить("ЭтоПредопределенныйПараметр" , Новый ОписаниеТипов("Булево")); - ПараметрыШаблона.Колонки.Добавить("ПредставлениеПараметра" , Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150, ДопустимаяДлина.Переменная))); - + + ПараметрыШаблона.Колонки.Добавить("ИмяПараметра", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(50, + ДопустимаяДлина.Переменная))); + ПараметрыШаблона.Колонки.Добавить("ОписаниеТипа", Новый ОписаниеТипов("ОписаниеТипов")); + ПараметрыШаблона.Колонки.Добавить("ЭтоПредопределенныйПараметр", Новый ОписаниеТипов("Булево")); + ПараметрыШаблона.Колонки.Добавить("ПредставлениеПараметра", Новый ОписаниеТипов("Строка", , + Новый КвалификаторыСтроки(150, ДопустимаяДлина.Переменная))); + Возврат ПараметрыШаблона; - + КонецФункции // Добавить параметр шаблона для внешней обработки. @@ -367,14 +373,16 @@ // ЭтоПредопределенныйПараметр - Булево - если Истина, то параметр предопределенный. // ПредставлениеПараметра - Строка - представление параметра. // -Процедура ДобавитьПараметрШаблона(ТаблицаПараметров, ИмяПараметра, ОписаниеТипа, ЭтоПредопределенныйПараметр, ПредставлениеПараметра = "") Экспорт +Процедура ДобавитьПараметрШаблона(ТаблицаПараметров, ИмяПараметра, ОписаниеТипа, ЭтоПредопределенныйПараметр, + ПредставлениеПараметра = "") Экспорт НоваяСтрока = ТаблицаПараметров.Добавить(); НоваяСтрока.ИмяПараметра = ИмяПараметра; НоваяСтрока.ОписаниеТипа = ОписаниеТипа; НоваяСтрока.ЭтоПредопределенныйПараметр = ЭтоПредопределенныйПараметр; - НоваяСтрока.ПредставлениеПараметра = ?(ПустаяСтрока(ПредставлениеПараметра),ИмяПараметра, ПредставлениеПараметра); - + НоваяСтрока.ПредставлениеПараметра = ?(ПустаяСтрока(ПредставлениеПараметра), ИмяПараметра, + ПредставлениеПараметра); + КонецПроцедуры // Инициализирует структуру Получатели для заполнения возможных получателей сообщения. @@ -383,9 +391,9 @@ // Структура - созданная структура. // Функция ИнициализироватьСтруктуруПолучатели() Экспорт - + Возврат Новый Структура("Получатель", Новый Массив); - + КонецФункции // Инициализирует структуру сообщения по шаблону, которую должна вернуть внешняя обработка. @@ -394,16 +402,16 @@ // Структура - созданная структура. // Функция ИнициализироватьСтруктуруСообщения() Экспорт - + СтруктураСообщения = Новый Структура; СтруктураСообщения.Вставить("ТекстСообщенияSMS", ""); СтруктураСообщения.Вставить("ТемаПисьма", ""); СтруктураСообщения.Вставить("ТекстПисьма", ""); СтруктураСообщения.Вставить("СтруктураВложений", Новый Структура); СтруктураСообщения.Вставить("ТекстПисьмаHTML", "<HTML></HTML>"); - + Возврат СтруктураСообщения; - + КонецФункции // Возвращает описание параметров шаблона сообщения по данным формы, ссылке на элемент справочника шаблона @@ -419,13 +427,12 @@ // см. ШаблоныСообщенийКлиентСервер.ОписаниеПараметровШаблона. // Функция ПараметрыШаблона(Знач Шаблон) Экспорт - + ПоискПоВладельцу = Ложь; - Если ТипЗнч(Шаблон) <> Тип("ДанныеФормыСтруктура") - И ТипЗнч(Шаблон) <> Тип("СправочникСсылка.ШаблоныСообщений") Тогда - + Если ТипЗнч(Шаблон) <> Тип("ДанныеФормыСтруктура") И ТипЗнч(Шаблон) <> Тип("СправочникСсылка.ШаблоныСообщений") Тогда + Запрос = Новый Запрос; - Запрос.Текст = + Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ШаблоныСообщений.Ссылка КАК Ссылка |ИЗ @@ -433,7 +440,7 @@ |ГДЕ | ШаблоныСообщений.ВладелецШаблона = &ВладелецШаблона"; Запрос.УстановитьПараметр("ВладелецШаблона", Шаблон); - + РезультатЗапроса = Запрос.Выполнить().Выбрать(); Если РезультатЗапроса.Следующий() Тогда Шаблон = РезультатЗапроса.Ссылка; @@ -441,7 +448,7 @@ ПоискПоВладельцу = Истина; КонецЕсли; КонецЕсли; - + Результат = ШаблоныСообщенийСлужебный.ПараметрыШаблона(Шаблон); Если ПоискПоВладельцу Тогда Результат.ВладелецШаблона = Шаблон; @@ -462,7 +469,8 @@ // Строка - строка, в которую были подставлены значения параметров шаблона. // Функция ВставитьПараметрыВСтрокуСогласноТаблицеПараметров(Знач ШаблонСтроки, ВставляемыеЗначения, Знач Префикс = "") Экспорт - Возврат ШаблоныСообщенийСлужебный.ВставитьПараметрыВСтрокуСогласноТаблицеПараметров(ШаблонСтроки, ВставляемыеЗначения, Префикс); + Возврат ШаблоныСообщенийСлужебный.ВставитьПараметрыВСтрокуСогласноТаблицеПараметров(ШаблонСтроки, + ВставляемыеЗначения, Префикс); КонецФункции // Возвращает соответствие параметров текста сообщения шаблона. @@ -518,20 +526,20 @@ // См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании. Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт - + Объекты.Добавить(Метаданные.Справочники.ШаблоныСообщений); - + КонецПроцедуры // См. СозданиеНаОснованииПереопределяемый.ПриДобавленииКомандСозданияНаОсновании. Процедура ПриДобавленииКомандСозданияНаОсновании(Объект, КомандыСозданияНаОсновании, Параметры, СтандартнаяОбработка) Экспорт - + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда Если Объект = Метаданные.Документы["ЭлектронноеПисьмоИсходящее"] Тогда Справочники.ШаблоныСообщений.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании); КонецЕсли; КонецЕсли; - + КонецПроцедуры #КонецОбласти @@ -555,16 +563,18 @@ // * Шаблон - СправочникСсылка.ШаблоныСообщений // Функция СформироватьПараметрыОтправки(Шаблон, Предмет, УникальныйИдентификатор, ДополнительныеПараметры = Неопределено) Экспорт - - ПараметрыОтправки = ШаблоныСообщенийКлиентСервер.КонструкторПараметровОтправки(Шаблон.Ссылка, Предмет, УникальныйИдентификатор); - - Если ТипЗнч(ПараметрыОтправки.Предмет) = Тип("Строка") - И ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(ПараметрыОтправки.Предмет) <> Неопределено Тогда - - ПараметрыОтправки.Предмет = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПараметрыОтправки.Предмет).ПустаяСсылка(); - + + ПараметрыОтправки = ШаблоныСообщенийКлиентСервер.КонструкторПараметровОтправки(Шаблон.Ссылка, Предмет, + УникальныйИдентификатор); + + Если ТипЗнч(ПараметрыОтправки.Предмет) = Тип("Строка") И ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени( + ПараметрыОтправки.Предмет) <> Неопределено Тогда + + ПараметрыОтправки.Предмет = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени( + ПараметрыОтправки.Предмет).ПустаяСсылка(); + КонецЕсли; - + Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда ПараметрыОтправки.ДополнительныеПараметры.ПараметрыСообщения = ДополнительныеПараметры; @@ -574,11 +584,11 @@ ПараметрыОтправки.ДополнительныеПараметры.Вставить(Элемент.Ключ, Элемент.Значение); КонецЕсли; КонецЦикла; - + КонецЕсли; - + Возврат ПараметрыОтправки; - + КонецФункции // Возвращаемое значение: @@ -589,14 +599,14 @@ // - Неопределено // Функция НовыйПолучателиПисьма() Экспорт - + Результат = Новый Структура; - Результат.Вставить("Адрес", ""); - Результат.Вставить("Представление", ""); + Результат.Вставить("Адрес", ""); + Результат.Вставить("Представление", ""); Результат.Вставить("ИсточникКонтактнойИнформации", Неопределено); - + Возврат Результат; - + КонецФункции // Параметры: @@ -620,6 +630,4 @@ Возврат Вложение; КонецФункции -#КонецОбласти - - +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl index 6d89d8033..b5c2a3453 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl @@ -363,7 +363,6 @@ Обработчик.Процедура = "Справочники.ШаблоныСообщений.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ШаблоныСообщений.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; - Обработчик.ОчередьОтложеннойОбработки = 2; Обработчик.ЧитаемыеОбъекты = СтрСоединить(ЧитаемыеОбъекты, ","); Обработчик.ИзменяемыеОбъекты = "Справочник.ШаблоныСообщений"; Обработчик.БлокируемыеОбъекты = "Справочник.ШаблоныСообщений"; @@ -949,10 +948,17 @@ ТипыПредметовШаблоновСообщений = Метаданные.ОпределяемыеТипы.ПредметШаблонаСообщения.Тип.Типы(); Для каждого ТипПредметаШаблонаСообщения Из ТипыПредметовШаблоновСообщений Цикл Если ТипПредметаШаблонаСообщения <> Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда - Назначение = ОснованияДляШаблоновСообщений.Добавить(); + МетаданныеОбъект = Метаданные.НайтиПоТипу(ТипПредметаШаблонаСообщения); - Назначение.Имя = МетаданныеОбъект.ПолноеИмя(); + + Если МетаданныеОбъект = Неопределено Или Не ПравоДоступа("Чтение", МетаданныеОбъект) Тогда + Продолжить; + КонецЕсли; + + Назначение = ОснованияДляШаблоновСообщений.Добавить(); + Назначение.Имя = МетаданныеОбъект.ПолноеИмя(); Назначение.Представление = МетаданныеОбъект.Представление(); + Если МетаданныеОбъект.Макеты.Найти(ИмяМакетаШаблонаПоУмолчанию) <> Неопределено Тогда Назначение.Макет = ИмяМакетаШаблонаПоУмолчанию; @@ -972,6 +978,7 @@ КонецЕсли; КонецЦикла; КонецЕсли; + КонецЕсли; КонецЦикла; diff --git a/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl index 10d0aa9e8..c5341adad 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl @@ -107,6 +107,7 @@ | ЭлектронныеПодписи.Отпечаток КАК Отпечаток, | ЭлектронныеПодписи.КомуВыданСертификат КАК КомуВыданСертификат, | ЭлектронныеПодписи.ТипПодписи КАК ТипПодписи, + | ЭлектронныеПодписи.ТребуетсяПроверка КАК ТребуетсяПроверка, | ЭлектронныеПодписи.СрокДействияПоследнейМеткиВремени КАК СрокДействияПоследнейМеткиВремени |ИЗ | РегистрСведений.ЭлектронныеПодписи КАК ЭлектронныеПодписи @@ -117,7 +118,7 @@ |УПОРЯДОЧИТЬ ПО | ПорядковыйНомер"; - Запрос.УстановитьПараметр("ПодписанныйОбъект", ОбъектСсылка); + Запрос.УстановитьПараметр("ПодписанныйОбъект", ОбъектСсылка); Если ПорядковыйНомер = Неопределено Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ЭлектронныеПодписи.ПорядковыйНомер В(&ПорядковыйНомер)", ""); @@ -308,7 +309,18 @@ КонецЕсли; КонецЦикла; Иначе - ЗаполнитьЗначенияСвойств(ОбновляемаяПодпись, СвойстваПодписи, , "Подпись, Сертификат"); + + Для Каждого КлючИЗначение Из СвойстваПодписи Цикл + Если КлючИЗначение.Ключ = "Сертификат" + Или КлючИЗначение.Ключ = "Подпись" Тогда + Продолжить; + КонецЕсли; + + Если КлючИЗначение.Значение <> Неопределено Тогда + ОбновляемаяПодпись[КлючИЗначение.Ключ] = КлючИЗначение.Значение; + КонецЕсли; + КонецЦикла; + КонецЕсли; Если ЗначениеЗаполнено(СвойстваПодписи.Сертификат) И Не ЗначениеЗаполнено( @@ -1107,7 +1119,16 @@ // Функция ОшибкаПоКлассификатору(ТекстДляПоискаВКлассификаторе, ОшибкаНаСервере = Ложь) Экспорт - Возврат ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ТекстДляПоискаВКлассификаторе, ОшибкаНаСервере); + Результат = ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ТекстДляПоискаВКлассификаторе, ОшибкаНаСервере); + + Если Результат = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Структура = Новый Структура("Причина, Решение, СпособУстранения, Ссылка"); + ЗаполнитьЗначенияСвойств(Структура, Результат); + + Возврат Структура; КонецФункции @@ -1121,9 +1142,14 @@ // тот же или выше, тогда никаких действий произведено не будет. // ДобавитьАрхивнуюМеткуВремени - Булево - если указано Истина и фактический ТипПодписи архивная, // тогда будет добавлена метка времени. -// МенеджерКриптографии - МенеджерКриптографии -// - Неопределено - получить менеджер криптографии для проверки -// электронных подписей, как настроил администратор. +// ДополнительныеПараметры - Структура: +// * МенеджерКриптографии - Неопределено - получить менеджер криптографии для проверки +// - МенеджерКриптографии - использовать указанный менеджер криптографии. +// * ИгнорироватьСрокДействияСертификата - Булево - по умолчанию Ложь, не проверять +// срок действия сертификата подписи перед усовершенствованием. +// - Неопределено - получить менеджер криптографии для проверки +// электронных подписей, как настроил администратор. +// - МенеджерКриптографии - использовать указанный менеджер криптографии. // // Возвращаемое значение: // Структура: @@ -1131,7 +1157,20 @@ // * ТекстОшибки - Строка - заполнен, если Успех = Ложь. // * СвойстваПодписи - см. ЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи. // -Функция УсовершенствоватьПодпись(Подпись, ТипПодписи, ДобавитьАрхивнуюМеткуВремени = Ложь, МенеджерКриптографии = Неопределено) Экспорт +Функция УсовершенствоватьПодпись(Подпись, ТипПодписи, ДобавитьАрхивнуюМеткуВремени = Ложь, + ДополнительныеПараметры = Неопределено) Экспорт + + ПараметрыУсовершенствования = Новый Структура; + ПараметрыУсовершенствования.Вставить("МенеджерКриптографии", Неопределено); + ПараметрыУсовершенствования.Вставить("ИгнорироватьСрокДействияСертификата", Ложь); + + Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда + ЗаполнитьЗначенияСвойств(ПараметрыУсовершенствования, ДополнительныеПараметры); + Иначе + ПараметрыУсовершенствования.МенеджерКриптографии = ДополнительныеПараметры; + КонецЕсли; + + МенеджерКриптографии = ПараметрыУсовершенствования.МенеджерКриптографии; Результат = Новый Структура("Успех, ТекстОшибки, СвойстваПодписи", Ложь); @@ -1176,7 +1215,8 @@ Результат.СвойстваПодписи = СвойстваПодписи; - Если ЗначениеЗаполнено(ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени) + Если Не ПараметрыУсовершенствования.ИгнорироватьСрокДействияСертификата + И ЗначениеЗаполнено(ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени) И ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени < ТекущаяДатаСеанса() Тогда Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Истек срок действия подписи: %1'"), ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени); @@ -1281,9 +1321,13 @@ // ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы, используемый для блокировки, // если передана ссылка на объект. // -// МенеджерКриптографии - Неопределено - получить менеджер криптографии для проверки -// электронных подписей, как настроил администратор. -// - МенеджерКриптографии - использовать указанный менеджер криптографии. +// ДополнительныеПараметры - Структура: +// * МенеджерКриптографии - Неопределено, МенеджерКриптографии - описание ниже. +// * ИгнорироватьСрокДействияСертификата - Булево - по умолчанию Ложь, не проверять +// срок действия сертификата подписи перед усовершенствованием. +// - Неопределено - получить менеджер криптографии для проверки +// электронных подписей, как настроил администратор. +// - МенеджерКриптографии - использовать указанный менеджер криптографии. // // Возвращаемое значение: // Структура: @@ -1292,8 +1336,19 @@ // * СвойстваПодписи - см. ЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи // Функция УсовершенствоватьПодписьОбъекта(ПодписанныйОбъект, ПорядковыйНомер, ТипПодписи, ДобавитьАрхивнуюМеткуВремени = Ложь, - ИдентификаторФормы = Неопределено, МенеджерКриптографии = Неопределено) Экспорт + ИдентификаторФормы = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт + + ПараметрыУсовершенствования = Новый Структура; + ПараметрыУсовершенствования.Вставить("МенеджерКриптографии", Неопределено); + ПараметрыУсовершенствования.Вставить("ИгнорироватьСрокДействияСертификата", Ложь); + + Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда + ЗаполнитьЗначенияСвойств(ПараметрыУсовершенствования, ДополнительныеПараметры); + Иначе + ПараметрыУсовершенствования.МенеджерКриптографии = ДополнительныеПараметры; + КонецЕсли; + Результат = Новый Структура("Успех, ТекстОшибки, СвойстваПодписи", Ложь); УстановленныеПодписи = УстановленныеПодписи(ПодписанныйОбъект, ПорядковыйНомер); @@ -1307,7 +1362,7 @@ СвойстваПодписи = УстановленныеПодписи[0]; Подпись = СвойстваПодписи.Подпись; - Результат = УсовершенствоватьПодпись(Подпись, ТипПодписи, ДобавитьАрхивнуюМеткуВремени, МенеджерКриптографии); + Результат = УсовершенствоватьПодпись(Подпись, ТипПодписи, ДобавитьАрхивнуюМеткуВремени, ПараметрыУсовершенствования); Если Результат.СвойстваПодписи = Неопределено Тогда Возврат Результат; @@ -1385,7 +1440,37 @@ КонецФункции -// Выполняет проверку установленных программ +// Извлекает свойства подписи из данных подписи. Если не удалось извлечь все свойства с помощью менеджера криптографии, +// возвращается часть свойств, которые удалось прочитать из двоичных данных. +// +// Параметры: +// Подпись - ДвоичныеДанные - файл подписи. +// ПрочитатьСертификаты - Булево - (по умолчанию Истина), если Ложь, свойства Сертификат, Отпечаток, +// КомуВыданСертификат, Сертификаты не будут заполнены. +// +// Возвращаемое значение: +// Структура: +// * Успех - Булево, Неопределено - Неопределено, если не удалось прочитать все свойства с помощью менеджера +// криптографии. +// * ТекстОшибки - Строка - заполнена, если Успех = Ложь или Неопределено +// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии +// * СрокДействияПоследнейМеткиВремени - Дата, Неопределено - заполняется только с помощью менеджера криптографии. +// * ДатаПодписиИзМетки - Дата, Неопределено - самый ранний штамп времени: CADES-T, если его нет, но есть другие штампы, +// дата заполняется только с помощью менеджера криптографии. +// * НеподтвержденнаяДатаПодписи - Дата - неподтвержденная дата подписи. +// - Неопределено - неподтвержденная дата подписи отсутствует в данных подписи. +// * Сертификат - ДвоичныеДанные - сертификат для проверки подписи. +// * Отпечаток - Строка - отпечаток сертификата в формате строки Base64. +// * КомуВыданСертификат - Строка - представление субъекта, полученное из двоичных данных сертификата. +// * Сертификаты - Массив из ДвоичныеДанные - сертификаты для проверки подписи. +// +Функция СвойстваПодписи(Подпись, ПрочитатьСертификаты = Истина) Экспорт + + Возврат ЭлектроннаяПодписьСлужебный.СвойстваПодписи(Подпись, ПрочитатьСертификаты) + +КонецФункции + +// Выполняет проверку установленных программ. Возвращает только установленные программы. // // Параметры: // ПараметрыПроверки - Неопределено, Структура: @@ -1407,7 +1492,6 @@ // например НСтр("ru = 'ViPNet CSP'") // ** Версия - Строка - версия библиотеки // ** Лицензия - Булево - есть лицензия -// - только установленные программы, из переданных в параметре ПроверяемыеПрограммы на клиенте. // * ВозможенКонфликт - Булево - установлено несколько программ криптографии, между // которыми возможен конфликт. // @@ -1497,13 +1581,16 @@ // если дату не удалось извлечь из подписи или если проверяется КонвертXML. // Если параметр не заполнен, тогда проверять на текущую дату сеанса, // если дату не удалось извлечь из подписи или если проверяется КонвертXML. +// РезультатСтруктура - см. ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи. // // Возвращаемое значение: // Булево - Истина, если проверка выполнена успешно. // Ложь, если не удалось получить менеджер криптографии (когда не указан), // или произошла ошибка указанная в параметре ОписаниеОшибки. // -Функция ПроверитьПодпись(МенеджерКриптографии, ИсходныеДанные, Подпись, ОписаниеОшибки = Null, НаДату = Неопределено) Экспорт +Функция ПроверитьПодпись(МенеджерКриптографии, ИсходныеДанные, Подпись, ОписаниеОшибки = Null, НаДату = Неопределено, РезультатСтруктура = Неопределено) Экспорт + + РезультатПроверки = Ложь; ВызыватьИсключение = ОписаниеОшибки = Null; @@ -1525,10 +1612,11 @@ Если СвойстваКонвертаXML <> Неопределено И ЗначениеЗаполнено(СвойстваКонвертаXML.ТекстОшибки) Тогда ОписаниеОшибки = СвойстваКонвертаXML.ТекстОшибки; + ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура); Если ВызыватьИсключение Тогда ВызватьИсключение ОписаниеОшибки; КонецЕсли; - Возврат Ложь; + Возврат РезультатПроверки; КонецЕсли; КонецЕсли; @@ -1559,6 +1647,7 @@ Иначе ДанныеСертификата = Base64Значение(СвойстваКонвертаXML.Сертификат.ЗначениеСертификата); КонецЕсли; + ПараметрыСоздания.АлгоритмПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата); КонецЕсли; @@ -1568,9 +1657,14 @@ Если МенеджерКриптографииДляПроверки = Неопределено Тогда ОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки; - Если Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса Тогда - Возврат Ложь; + Если РезультатСтруктура <> Неопределено Тогда + ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура, Истина); + КонецЕсли; + Если ВызыватьИсключение Тогда + ВызватьИсключение ОписаниеОшибки; + КонецЕсли; + Возврат РезультатПроверки; КонецЕсли; КонецЕсли; @@ -1585,13 +1679,22 @@ СвойстваКонвертаXML); Исключение ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура); Если ВызыватьИсключение Тогда ВызватьИсключение; КонецЕсли; - Возврат Ложь; + Возврат РезультатПроверки; КонецПопытки; Сертификат = Результат.Сертификат; - ДатаПодписания = Результат.ДатаПодписания; + ДатаДляПроверкиСертификатаПодписи = Результат.ДатаПодписания; + + Если РезультатСтруктура <> Неопределено Тогда + РезультатСтруктура.НеподтвержденнаяДатаПодписи = ДатаДляПроверкиСертификатаПодписи; + СвойстваСертификата = СвойстваСертификата(Сертификат); + РезультатСтруктура.Сертификат = Сертификат.Выгрузить(); + РезультатСтруктура.Отпечаток = СвойстваСертификата.Отпечаток; + РезультатСтруктура.КомуВыданСертификат = СвойстваСертификата.КомуВыдан; + КонецЕсли; ИначеЕсли ЭтоCMS Тогда Попытка @@ -1602,91 +1705,116 @@ МенеджерКриптографииДляПроверки); Исключение ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура); Если ВызыватьИсключение Тогда ВызватьИсключение; КонецЕсли; - Возврат Ложь; + Возврат РезультатПроверки; КонецПопытки; + Сертификат = Результат.Сертификат; - ДатаПодписания = Результат.ДатаПодписания; + ДатаДляПроверкиСертификатаПодписи = Результат.ДатаПодписания; + + Если РезультатСтруктура <> Неопределено Тогда + СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиИзДвоичныхДанных(ПодписьДляПроверки, Ложь); + СвойстваСертификата = СвойстваСертификата(Сертификат); + СвойстваПодписи.Сертификат = Сертификат.Выгрузить(); + СвойстваПодписи.Отпечаток = СвойстваСертификата.Отпечаток; + СвойстваПодписи.КомуВыданСертификат = СвойстваСертификата.КомуВыдан; + ЗаполнитьЗначенияСвойств(РезультатСтруктура, СвойстваПодписи); + КонецЕсли; ИначеЕсли МенеджерКриптографииДляПроверки = Неопределено Или МенеджерКриптографииДляПроверки = "СервисКриптографии" Тогда - Сертификат = Неопределено; МодульСервисКриптографии = ОбщегоНазначения.ОбщийМодуль("СервисКриптографии"); + Попытка Результат = МодульСервисКриптографии.ПроверитьПодпись(ПодписьДляПроверки, ИсходныеДанныеДляПроверки); - Сертификаты = МодульСервисКриптографии.ПолучитьСертификатыИзПодписи(ПодписьДляПроверки); - Если Сертификаты.Количество() = 1 Тогда - Сертификат = Сертификаты[0]; - ИначеЕсли Сертификаты.Количество() > 1 Тогда - Сертификат = ЭлектроннаяПодписьСлужебный.СертификатыПоПорядкуДоКорневого(Сертификаты)[0]; - КонецЕсли; Исключение ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура, Истина); Если ВызыватьИсключение Тогда ВызватьИсключение; КонецЕсли; - Возврат Ложь; + Возврат РезультатПроверки; КонецПопытки; - Если Не Результат Тогда - ОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиСервисаПодписьНедействительна(); + + СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиИзДвоичныхДанных(ПодписьДляПроверки, Истина); + Если РезультатСтруктура <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(РезультатСтруктура, СвойстваПодписи); + КонецЕсли; + + Если Не СвойстваПодписи.Успех Тогда + ОписаниеОшибки = СвойстваПодписи.ТекстОшибки; + ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура); Если ВызыватьИсключение Тогда ВызватьИсключение ОписаниеОшибки; КонецЕсли; - Возврат Ложь; + Возврат РезультатПроверки; КонецЕсли; - СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных( - ПодписьДляПроверки, ЭлектроннаяПодписьСлужебный.ДобавкаВремени()); - ДатаПодписания = ?(ЗначениеЗаполнено(СвойстваПодписи.ДатаШтампаВремени), - СвойстваПодписи.ДатаШтампаВремени, СвойстваПодписи.ДатаПодписания); - - Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда - ДатаПодписания = НаДату; + Если СвойстваПодписи.Сертификат = Неопределено Тогда + ОписаниеОшибки = НСтр("ru = 'Сертификат не существует в данных подписи.'"); + ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура); + Если ВызыватьИсключение Тогда + ВызватьИсключение ОписаниеОшибки; + КонецЕсли; + Возврат РезультатПроверки; + КонецЕсли; + + Если Не Результат Тогда + ОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиСервисаПодписьНедействительна(); + ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура); + Если ВызыватьИсключение Тогда + ВызватьИсключение ОписаниеОшибки; + КонецЕсли; + Возврат РезультатПроверки; + КонецЕсли; + + ДатаДляПроверкиСертификатаПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаДляПроверкиСертификатаПодписи(СвойстваПодписи); + Если Не ЗначениеЗаполнено(ДатаДляПроверкиСертификатаПодписи) Тогда + ДатаДляПроверкиСертификатаПодписи = НаДату; КонецЕсли; Иначе Сертификат = Неопределено; + + ОшибкаПроверкиПодписи = ""; Попытка МенеджерКриптографииДляПроверки.ПроверитьПодпись(ИсходныеДанныеДляПроверки, ПодписьДляПроверки, Сертификат); Исключение - ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ВызыватьИсключение Тогда - ВызватьИсключение; - КонецЕсли; - Возврат Ложь; + ОшибкаПроверкиПодписи = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; Если ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда - - Попытка - КонтейнерПодписи = МенеджерКриптографииДляПроверки.ПолучитьКонтейнерПодписейКриптографии(ПодписьДляПроверки); - Исключение - ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru='При чтении данных подписи: %1'"), ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); - Если ВызыватьИсключение Тогда - ВызватьИсключение; - КонецЕсли; - Возврат Ложь; - КонецПопытки; - - ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(КонтейнерПодписи, - ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса()); - - ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаДляПроверкиПодписи(ПараметрыПодписиКриптографии); - + СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиЧтениеМенеджеромКриптографии( + ПодписьДляПроверки, МенеджерКриптографииДляПроверки, Ложь); Иначе - - СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных( - ПодписьДляПроверки, ЭлектроннаяПодписьСлужебный.ДобавкаВремени()); - ДатаПодписания = ?(ЗначениеЗаполнено(СвойстваПодписи.ДатаШтампаВремени), - СвойстваПодписи.ДатаШтампаВремени, СвойстваПодписи.ДатаПодписания); - + СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиИзДвоичныхДанных(ПодписьДляПроверки, Ложь); КонецЕсли; - Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда - ДатаПодписания = НаДату; + Если РезультатСтруктура <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(РезультатСтруктура, СвойстваПодписи); + Если ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатСуществует(Сертификат) Тогда + СвойстваСертификата = СвойстваСертификата(Сертификат); + РезультатСтруктура.Сертификат = Сертификат.Выгрузить(); + РезультатСтруктура.Отпечаток = СвойстваСертификата.Отпечаток; + РезультатСтруктура.КомуВыданСертификат = СвойстваСертификата.КомуВыдан; + КонецЕсли; + КонецЕсли; + + Если Не ПустаяСтрока(ОшибкаПроверкиПодписи) Тогда + ОписаниеОшибки = ОшибкаПроверкиПодписи; + ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура, ТребуетсяПроверкаПодписи(ОписаниеОшибки, РезультатСтруктура)); + Если ВызыватьИсключение Тогда + ВызватьИсключение ОписаниеОшибки; + КонецЕсли; + Возврат РезультатПроверки; + КонецЕсли; + + ДатаДляПроверкиСертификатаПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаДляПроверкиСертификатаПодписи(СвойстваПодписи); + Если Не ЗначениеЗаполнено(ДатаДляПроверкиСертификатаПодписи) Тогда + ДатаДляПроверкиСертификатаПодписи = НаДату; КонецЕсли; КонецЕсли; @@ -1697,8 +1825,12 @@ ДополнительныеПараметры = ЭлектроннаяПодписьСлужебный.ДополнительныеПараметрыПроверкиСертификата(); ДополнительныеПараметры.ДляПроверкиПодписи = Истина; - Возврат ЭлектроннаяПодписьСлужебный.ПроверитьСертификат( - МенеджерКриптографииДляПроверки, Сертификат, ОписаниеОшибки, ДатаПодписания, ДополнительныеПараметры); + + РезультатПроверкиСертификата = ЭлектроннаяПодписьСлужебный.ПроверитьСертификат( + МенеджерКриптографииДляПроверки, Сертификат, ОписаниеОшибки, ДатаДляПроверкиСертификатаПодписи, ДополнительныеПараметры); + + ЗаполнитьРезультатПроверкиПодписи(РезультатПроверкиСертификата, РезультатСтруктура, ТребуетсяПроверкаПодписи(ОписаниеОшибки, РезультатСтруктура)); + Возврат РезультатПроверкиСертификата; КонецФункции @@ -2007,106 +2139,6 @@ КонецФункции -// Извлекает сертификаты из данных подписи. -// -// Параметры: -// Подпись - ДвоичныеДанные - файл подписи. -// -// Возвращаемое значение: -// Неопределено - если при разборе возникла ошибка. -// Структура: -// * Отпечаток - Строка. -// * КомуВыданСертификат - Строка. -// * ДвоичныеДанныеСертификата - ДвоичныеДанные. -// * Подпись - ХранилищеЗначения. -// * Сертификат - ХранилищеЗначения. -// -Функция ПрочитатьДанныеПодписи(Подпись, ОписаниеОшибки = Неопределено) Экспорт - - Если ОписаниеОшибки = Неопределено Тогда - ПоказатьОшибку = Истина; - ОписаниеОшибки = ""; - Иначе - ПоказатьОшибку = Ложь; - КонецЕсли; - - Результат = ЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи(); - Результат.Подпись = Подпись; - СвойстваПодписиИзДвоичныхДанных = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных( - Подпись, ЭлектроннаяПодписьСлужебный.ДобавкаВремени()); - - Если Не ЗначениеЗаполнено(СвойстваПодписиИзДвоичныхДанных.ТипПодписи) Тогда - - ОписаниеОшибки = НСтр("ru = 'Файл не является подписью.'"); - - Если ПоказатьОшибку Тогда - ВызватьИсключение ОписаниеОшибки; - Иначе - Возврат Результат; - КонецЕсли; - - КонецЕсли; - - Результат.ТипПодписи = СвойстваПодписиИзДвоичныхДанных.ТипПодписи; - - Если ЗначениеЗаполнено(СвойстваПодписиИзДвоичныхДанных.ДатаПодписания) Тогда - Результат.ДатаПодписи = СвойстваПодписиИзДвоичныхДанных.ДатаПодписания; - Иначе - Результат.ДатаПодписи = ТекущаяДатаСеанса(); - КонецЕсли; - - МенеджерКриптографии = МенеджерКриптографии("ПолучениеСертификатов", ПоказатьОшибку, ОписаниеОшибки); - Если МенеджерКриптографии = Неопределено Тогда - Возврат Результат; - КонецЕсли; - - Попытка - Сертификаты = МенеджерКриптографии.ПолучитьСертификатыИзПодписи(Подпись); - Исключение - Если ПоказатьОшибку Тогда - ВызватьИсключение; - Иначе - ОписаниеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Возврат Результат; - КонецЕсли; - КонецПопытки; - - Если Сертификаты.Количество() > 0 Тогда - - Если Сертификаты.Количество() = 1 Тогда - Сертификат = Сертификаты[0]; - ДвоичныеДанныеСертификата = Сертификат.Выгрузить(); - Иначе - - ДанныеСертификатов = Новый Массив; - - Для Каждого Сертификат Из Сертификаты Цикл - ДанныеСертификатов.Добавить(Сертификат.Выгрузить()); - КонецЦикла; - - Попытка - ДвоичныеДанныеСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.СертификатыПоПорядкуДоКорневого( - ДанныеСертификатов)[0]; - Сертификат = Новый СертификатКриптографии(ДвоичныеДанныеСертификата); - Исключение - Если ПоказатьОшибку Тогда - ВызватьИсключение; - Иначе - ОписаниеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Возврат Результат; - КонецЕсли; - КонецПопытки; - КонецЕсли; - - Результат.Отпечаток = Base64Строка(Сертификат.Отпечаток); - Результат.КомуВыданСертификат = ПредставлениеСубъекта(Сертификат); - Результат.Сертификат = ДвоичныеДанныеСертификата; - - КонецЕсли; - - Возврат Результат; - -КонецФункции // Возвращает настройки текущего пользователя для работы с электронной подписью. // @@ -2555,7 +2587,8 @@ // Для процедуры УдалитьПодпись. Процедура УдалитьСтрокиПодписи(ПодписанныйОбъект, ПорядковыеНомера, СообщениеЖурналаРегистрации) - ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь(); + ЕстьПраваНаУдалениеЧужихПодписей = Пользователи.ЭтоПолноправныйПользователь() + Или Пользователи.РолиДоступны("УдалениеЭлектронныхПодписей"); УстановитьПривилегированныйРежим(Истина); @@ -2596,7 +2629,7 @@ МенеджерЗаписи.Прочитать(); - ЕстьПрава = ЭтоПолноправныйПользователь Или МенеджерЗаписи.УстановившийПодпись + ЕстьПрава = ЕстьПраваНаУдалениеЧужихПодписей Или МенеджерЗаписи.УстановившийПодпись = Пользователи.АвторизованныйПользователь(); СвойстваПодписи = Новый Структура; @@ -2703,4 +2736,43 @@ КонецПроцедуры +Процедура ЗаполнитьРезультатПроверкиПодписи( + Результат, РезультатСтруктура = Неопределено, ТребуетсяПроверка = Неопределено) + + Если РезультатСтруктура <> Неопределено Тогда + + РезультатСтруктура.Результат = Результат; + + Если Результат = Истина Тогда + РезультатСтруктура.ПодписьВерна = Истина; + РезультатСтруктура.ТребуетсяПроверка = Ложь; + Возврат; + КонецЕсли; + + Если ТребуетсяПроверка <> Неопределено Тогда + РезультатСтруктура.ТребуетсяПроверка = ТребуетсяПроверка; + КонецЕсли; + + Если РезультатСтруктура.ТребуетсяПроверка = Ложь Тогда + РезультатСтруктура.ПодписьВерна = Ложь; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +Функция ТребуетсяПроверкаПодписи(ОписаниеОшибки, РезультатСтруктура) + + ТребуетсяПроверка = Неопределено; + Если ЗначениеЗаполнено(ОписаниеОшибки) И РезультатСтруктура <> Неопределено Тогда + ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ОписаниеОшибки, Истина); + Если ОшибкаПоКлассификатору <> Неопределено Тогда + ТребуетсяПроверка = ОшибкаПоКлассификатору.ТребуетПроверки; + КонецЕсли; + КонецЕсли; + + Возврат ТребуетсяПроверка; + +КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl index d4a479467..1ec57817a 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl @@ -103,6 +103,8 @@ // установлено определенное значение произвольного типа, которое позволяет // выполнить действие с тем же сертификатом повторно (у пользователя // не запрашивается ни пароль, ни подтверждение действия). +// В случае ошибки после вызова процедуры, повторное действие, выполненное +// с полученным контекстом, может быть также ошибочно. // - Произвольный - (необязательный) - если определено, то действие будет выполнено // с тем же сертификатом без запроса пароля или подтверждения. // Параметр БезПодтверждения считается равным Истина. @@ -229,6 +231,7 @@ КонецПроцедуры // Конструктор параметра ТипПодписи для процедуры Подписать. +// Игнорируется для подписи конверта XML. // // Параметры: // ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии @@ -423,9 +426,10 @@ // // Параметры: // Оповещение - ОписаниеОповещения - оповещение о результате выполнения следующих типов: -// = Булево - Истина, если проверка выполнена успешно. +// = Булево - Истина, если проверка выполнена успешно - если ПараметрыПроверки - Неопределено // = Строка - описание ошибки проверки подписи. // = Неопределено - не удалось получить менеджер криптографии (когда не указан). +// = см. РезультатПроверкиПодписи - если ПараметрыПроверки.РезультатВВидеСтруктуры - Истина. // ИсходныеДанные - ДвоичныеДанные - двоичные данные, которые были подписаны. // Математическая проверка выполняется на стороне клиента, даже когда // администратор настроил проверку электронных подписей на сервере, @@ -451,18 +455,36 @@ // если дату не удалось извлечь из подписи или если проверяется КонвертXML. // Если параметр не заполнен, тогда проверять на текущую дату сеанса, // если дату не удалось извлечь из подписи или если проверяется КонвертXML. -// ПоказатьОшибку - Булево - показать ошибку создания менеджера криптографии (когда не указан). +// ПараметрыПроверки - см. ПараметрыПроверкиПодписи +// - Неопределено - показать ошибку создания менеджера криптографии (когда не указан). // Процедура ПроверитьПодпись(Оповещение, ИсходныеДанные, Подпись, МенеджерКриптографии = Неопределено, НаДату = Неопределено, - ПоказатьОшибку = Истина) Экспорт + ПараметрыПроверки = Неопределено) Экспорт ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьПодпись( - Оповещение, ИсходныеДанные, Подпись, МенеджерКриптографии, НаДату, ПоказатьОшибку); + Оповещение, ИсходныеДанные, Подпись, МенеджерКриптографии, НаДату, ПараметрыПроверки); КонецПроцедуры +// Конструктор параметра "ПараметрыПроверки" для процедуры "ПроверитьПодпись". +// +// Возвращаемое значение: +// Структура: +// * ПоказатьОшибкуСозданияМенеджераКриптографии - Булево - показать ошибку +// создания менеджера криптографии (когда не указан). +// * РезультатВВидеСтруктуры - см. ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи +// +Функция ПараметрыПроверкиПодписи() Экспорт + + Структура = Новый Структура; + Структура.Вставить("ПоказатьОшибкуСозданияМенеджераКриптографии", Истина); + Структура.Вставить("РезультатВВидеСтруктуры", Ложь); + Возврат Структура; + +КонецФункции + // Шифрует данные, возвращает сертификаты шифрования и добавляет их в объект, если указано. // // Общий подход к обработке значений свойств с типом ОписаниеОповещения в параметре ОписаниеДанных. @@ -652,6 +674,8 @@ // установлено определенное значение произвольного типа, которое позволяет // выполнить действие с тем же сертификатом повторно (у пользователя // не запрашивается ни пароль, ни подтверждение действия). +// В случае ошибки после вызова процедуры, повторное действие, выполненное +// с полученным контекстом, может быть также ошибочно. // - Произвольный - (необязательный) - если определено, то действие будет выполнено // с тем же сертификатом без запроса пароля или подтверждения. // Параметр БезПодтверждения считается равным Истина. @@ -839,7 +863,9 @@ // - УникальныйИдентификатор - уникальный идентификатор, который будет // использоваться при блокировке объекта. // -// ПрерыватьОбработкуМассиваПриОшибке - Булево - при ошибке обработка следующих элементов будет прервана. +// ПрерыватьОбработкуМассиваПриОшибке - Булево - по умолчанию Истина - при ошибке обработка следующих элементов будет прервана. +// ИгнорироватьСрокДействияСертификата - Булево - по умолчанию Ложь - не проверять срок действия сертификата подписи +// перед усовершенствованием. // // ОбработкаРезультата - ОписаниеОповещения - // Требуется для нестандартной обработки результата, например, если не указана ссылка на объект и порядковый номер подписи. @@ -862,7 +888,8 @@ // то структура не будет содержать свойств подписи, которую не удалось усовершенствовать. // = Строка - адрес временного хранилища, содержащего массив указанный выше. // -Процедура УсовершенствоватьПодпись(ОписаниеДанных, Форма, ОбработкаРезультата = Неопределено, ПрерыватьОбработкуМассиваПриОшибке = Истина) Экспорт +Процедура УсовершенствоватьПодпись(ОписаниеДанных, Форма, ОбработкаРезультата = Неопределено, + ПрерыватьОбработкуМассиваПриОшибке = Истина, ИгнорироватьСрокДействияСертификата = Ложь) Экспорт Контекст = Новый Структура; Контекст.Вставить("ОбработкаРезультата", ОбработкаРезультата); @@ -874,7 +901,8 @@ Иначе ПараметрыВыполнения.Вставить("ИдентификаторФормы", Форма); КонецЕсли; - ПараметрыВыполнения.Вставить("ПрерыватьОбработкуМассиваПриОшибке", ПрерыватьОбработкуМассиваПриОшибке); + ПараметрыВыполнения.Вставить("ПрерыватьОбработкуМассиваПриОшибке", ПрерыватьОбработкуМассиваПриОшибке); + ПараметрыВыполнения.Вставить("ИгнорироватьСрокДействияСертификата", ИгнорироватьСрокДействияСертификата); Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения); @@ -1320,6 +1348,10 @@ // сначала по таблице, указанной в ПараметрыXMLDSig, затем // если таблица не заполнена или соответствие не найдено, // по внутренней таблице соответствия (рекомендуется). +// +// Поддерживаются также шаблоны с несколькими элементами Signature +// и несколькими элементами Reference. +// Подпись будет добавлена в первый найденный элемент Signature, не содержащий значение подписи. // // Поддерживаются алгоритмы подписания и хеширования ГОСТ 94…2012. // Поддерживаются алгоритмы канонизации: @@ -1868,16 +1900,15 @@ // # ПроверкаВыполнена = Булево - Истина, если проверка выполнена на компьютере, получены установленные криптопровайдеры. // если Ложь, то будет заполнена Ошибка. // # Ошибка = Строка - текст ошибки. -// # Программы = Массив Из Структура: +// # Программы = Массив Из Структура - только установленные на клиенте программы. // ## ИмяПрограммы - Строка - имя криптопровайдера, например "Infotecs GOST 2012/512 Cryptographic Service Provider" // ## ТипПрограммы - Число - тип криптопровайдера, например, 77 // ## Имя - Строка - представление программы для установки, из списка поставляемых, // например НСтр("ru = 'ViPNet CSP'") // ## Версия - Строка - версия библиотеки // ## Лицензия - Булево - есть лицензия -// - только установленные программы, из переданных в параметре ПроверяемыеПрограммы на клиенте. -// # ПрограммыНаСервере = см. Программы - только установленные программы, из переданных в параметре -// ПроверяемыеПрограммы на сервере. +// # ПрограммыНаСервере = см. Программы - только установленные на сервере программы, из переданных в параметре +// ПроверяемыеПрограммы. // # ВозможенКонфликт = Булево - установлено несколько программ криптографии, между // которыми возможен конфликт. // # ВозможенКонфликтНаСервере = Булево - установлено несколько программ криптографии, @@ -1922,6 +1953,23 @@ КонецПроцедуры +// Проверяет был ли пароль сертификата установлен на время сеанса, +// либо с помощью процедуры УстановитьПарольСертификата, +// либо после успешной операции со включенным флажком Сохранить пароль. +// +// Параметры: +// СертификатСсылка - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - сертификат, +// для которого проверяется наличие пароля. +// +// Возвращаемое значение: +// Булево - если Ложь, пароль не установлен, иначе установлен. +// +Функция ПарольСертификатаУстановлен(СертификатСсылка) Экспорт + + Возврат ЭлектроннаяПодписьСлужебныйКлиент.ПарольСертификатаУстановлен(СертификатСсылка); + +КонецФункции + // Переопределяет обычный выбор сертификата из справочника на выбор сертификата // из личного хранилища с подтверждением паролем и автоматическим добавлением в справочник, // если сертификата в справочнике еще нет. @@ -1989,6 +2037,60 @@ КонецПроцедуры +// Получить свойства подписи из двоичных данных подписи без использования менеджера криптографии. +// +// Параметры: +// Оповещение - ОписаниеОповещения - возвращает результат в зависимости от переданных данных - +// структуру со свойствами подписи или соответствие, +// если был передан массив, в котором Ключ - Подпись, Значение - Структура. +// # Структура: +// ## ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии, Неопределено - Неопределено, если файл не является подписью. +// ## СрокДействияПоследнейМеткиВремени - Дата, Неопределено - срок действия сертификата, которым подписана +// последняя метка времени, заполняется только если удалось создать менеджер криптографии. +// ## ДатаПодписиИзМетки - Дата, Неопределено - самый ранний штамп времени: CADES-T, если его нет, но есть другие штампы, +// дата заполняется только с помощью менеджера криптографии. +// ## НеподтвержденнаяДатаПодписи - Дата - неподтвержденная дата подписи. +// - Неопределено - неподтвержденная дата подписи отсутствует в данных подписи. +// ## Сертификаты - Массив Из ДвоичныеДанные - сертификаты для проверки подписи. +// ## Сертификат - ДвоичныеДанные - сертификат подписанта. +// ## Отпечаток - Строка - отпечаток сертификата в формате строки Base64. +// ## КомуВыданСертификат - Строка - представление субъекта, полученное из двоичных данных сертификата. +// +// Подпись - ДвоичныеДанные +// - Строка - адрес во временном хранилище +// - Массив из Строка +// - Массив из ДвоичныеДанные +// ПрочитатьСертификаты - Булево - заполнить свойства Сертификат и Сертификаты в возвращаемом значении. +// +Процедура ПрочитатьСвойстваПодписи(Оповещение, Подпись, ПрочитатьСертификаты = Истина) Экспорт + + ЭлектроннаяПодписьСлужебныйКлиент.ПрочитатьСвойстваПодписи(Оповещение, Подпись, ПрочитатьСертификаты); + +КонецПроцедуры + +// Следующие процедуры и функции предназначены для интеграции с 1С:Обмен с банками. + +// Оповещает пользователя, что срок сертификата скоро истечет, с учетом признака "Больше не напоминать" +// +// Параметры: +// Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования +// +Процедура ОповеститьОбОкончанииСрокаДействияСертификата(Сертификат) Экспорт + + Результат = ЭлектроннаяПодписьСлужебныйВызовСервера.ПользовательскиеНастройкиСертификата(Сертификат); + + Если ЗначениеЗаполнено(Результат.СсылкаНаСертификат) И Не Результат.Оповещен Тогда + + ПараметрыОткрытияФормы = Новый Структура("Сертификат", Сертификат); + ДействиеПриНажатии = Новый ОписаниеОповещения("ОткрытьФормуОповещенияОНеобходимостиЗаменыСертификата", + ЭлектроннаяПодписьСлужебныйКлиент, ПараметрыОткрытияФормы); + ПоказатьОповещениеПользователя(НСтр("ru = 'Необходима замена сертификата'"), ДействиеПриНажатии, Сертификат, + БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное, Сертификат); + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #КонецОбласти @@ -2006,7 +2108,7 @@ "ДатаПодписи, Комментарий, КомуВыданСертификат, Отпечаток, |АдресПодписи, УстановившийПодпись, АдресСертификата, |Статус, ОписаниеОшибки, ПодписьВерна, ДатаПроверкиПодписи, ТипПодписи, СрокДействияПоследнейМеткиВремени, - |Объект, ПорядковыйНомер"); + |Объект, ПорядковыйНомер, ТребуетсяПроверка"); ЗаполнитьЗначенияСвойств(СвойстваПодписи, ТекущиеДанные); @@ -2037,7 +2139,7 @@ КонецПроцедуры -// Сохраняет подпись на диск +// Сохраняет подпись на компьютер. Процедура СохранитьПодпись(АдресПодписи) Экспорт ЭлектроннаяПодписьСлужебныйКлиент.СохранитьПодпись(АдресПодписи); diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСервер/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСервер/Module.bsl index 98d8598b5..1eab968fc 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСервер/Module.bsl @@ -9,10 +9,12 @@ #Область ПрограммныйИнтерфейс // Конструктор параметра СвойстваПодписи для добавления и обновления данных электронной подписи. +// Содержит развернутое описание подписи. // // Возвращаемое значение: -// Структура - развернутое описание подписи: +// Структура: // * Подпись - ДвоичныеДанные - результат подписания. +// - Строка - подписанный КонвертXML, если передавался в данных. // * УстановившийПодпись - СправочникСсылка.Пользователи - пользователь, который // подписал объект информационной базы. // * Комментарий - Строка - комментарий, если он был введен при подписании. @@ -21,23 +23,25 @@ // когда дату невозможно извлечь из данных подписи. // * ДатаПроверкиПодписи - Дата - дата последней проверки подписи. // * ПодписьВерна - Булево - результат последней проверки подписи. +// * ТребуетсяПроверка - Булево - не удалось проверить подпись. // // Используются при обновлении усовершенствованной подписи: // * ПодписанныйОбъект - ОпределяемыйТип.ПодписанныйОбъект - объект, с которым связана подпись. // Игнорируется в методах, в которые объект передается как параметр. // * ПорядковыйНомер - Число - идентификатор подписи, по которому можно упорядочивать их в списке. // Не заполнен, если подпись не связана с объектом. -// * ОшибкаПриАвтоматическомПродлении - Булево - служебный, заполняется регламентным заданием. +// * ОшибкаПриАвтоматическомПродлении - Булево - не использовать, служебный, заполняется регламентным заданием. // -// Производные свойства: +// Производные свойства подписи: +// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии +// * СрокДействияПоследнейМеткиВремени - Дата - срок действия сертификата, которым подписана +// последняя метка времени (или пустая дата, если нет метки времени), +// если удалось определить с помощью МенеджераКриптографии // * Сертификат - ХранилищеЗначения - содержит выгрузку сертификата, // который использовался для подписания (содержится в подписи). // - ДвоичныеДанные // * Отпечаток - Строка - отпечаток сертификата в формате строки Base64. // * КомуВыданСертификат - Строка - представление субъекта, полученное из двоичных данных сертификата. -// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии -// * СрокДействияПоследнейМеткиВремени - Дата - срок действия сертификата, которым подписана -// последняя метка времени (или пустая дата, если нет метки времени) // * ОписаниеСертификата - Структура - свойство, требуемое для сертификатов, которые // не могут быть переданы в метод платформы СертификатКриптографии, со свойствами: // ** СерийныйНомер - Строка - серийный номер сертификата, как у объекта платформы СертификатКриптографии. @@ -58,14 +62,13 @@ Структура.Вставить("ПодписьВерна"); Структура.Вставить("ПодписанныйОбъект"); Структура.Вставить("ПорядковыйНомер"); + Структура.Вставить("ТребуетсяПроверка", Ложь); Структура.Вставить("Сертификат"); Структура.Вставить("Отпечаток"); Структура.Вставить("КомуВыданСертификат"); Структура.Вставить("ТипПодписи"); Структура.Вставить("СрокДействияПоследнейМеткиВремени"); - Структура.Вставить("ДатаПодписиИзМетки"); - Структура.Вставить("НеподтвержденнаяДатаПодписи"); Структура.Вставить("ОписаниеСертификата"); @@ -75,6 +78,41 @@ КонецФункции +// Результат проверки подписи. +// +// Возвращаемое значение: +// Структура: +// * Результат - Булево - Истина, если проверка выполнена успешно. +// - Строка - описание ошибки проверки подписи. +// - Неопределено - не удалось получить менеджер криптографии (когда не указан). +// * ПодписьВерна - Булево, Неопределено - результат последней проверки подписи. +// * ТребуетсяПроверка - Булево - не удалось проверить подпись. +// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии - не заполнен при проверке подписей конверта XML. +// * СрокДействияПоследнейМеткиВремени - Дата - срок действия сертификата, которым подписана +// последняя метка времени (или пустая дата, если нет метки времени), если удалось определить с помощью МенеджераКриптографии. +// * НеподтвержденнаяДатаПодписи - Дата - неподтвержденная дата подписи. +// - Неопределено - неподтвержденная дата подписи отсутствует в данных подписи и для +// конверта XML. +// * ДатаПодписиИзМетки - Дата - дата самой ранней метки времени. +// - Неопределено - метка времени отсутствует в данных подписи и при проверке конверта XML. +// * Сертификат - ДвоичныеДанные - сертификат подписанта +// * Отпечаток - Строка - отпечаток сертификата в формате строки Base64. +// * КомуВыданСертификат - Строка - представление субъекта, полученное из двоичных данных сертификата. +// +Функция РезультатПроверкиПодписи() Экспорт + + Структура = Новый Структура; + Структура.Вставить("Результат"); + Структура.Вставить("ПодписьВерна"); + Структура.Вставить("ТребуетсяПроверка"); + + ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру( + Структура, ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиПриЧтенииИПроверке()); + + Возврат Структура; + +КонецФункции + #Область УстаревшиеПроцедурыИФункции // Устарела. diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl index 4ba1512f6..770700645 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиентСерверЛокализация/Module.bsl @@ -725,9 +725,8 @@ РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки; РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), - "ПодатьЗаявлениеНаСертификат"); - + НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), "ПодатьЗаявлениеНаСертификат"); + КонецЕсли; КонецЕсли; @@ -802,11 +801,10 @@ Функция СсылкаНаСтатьюОбУдостоверяющихЦентрах() Экспорт - Возврат "https://its.1c.ru/db/eldocs#content:110:hdoc"; + Возврат "https://its.1c.ru/bmk/esig_uc"; КонецФункции - Функция ИмяПрограммыVipNet() Экспорт Возврат "ViPNet CSP"; КонецФункции diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl index f0ce5e401..fdfed76db 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl @@ -485,7 +485,6 @@ Возврат ПоПорядку; - КонецФункции // Только для внутреннего использования. @@ -1024,7 +1023,6 @@ Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ПрограммыЭлектроннойПодписиИШифрования.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ЧитаемыеОбъекты = "Справочник.ПрограммыЭлектроннойПодписиИШифрования"; Обработчик.ИзменяемыеОбъекты = "Справочник.ПрограммыЭлектроннойПодписиИШифрования"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; КонецПроцедуры @@ -1127,6 +1125,15 @@ КонецПроцедуры +// См. ИнтеграцияПодсистемБСП.ПриОпределенииИспользуемыхВнешнихКомпонент. +Процедура ПриОпределенииИспользуемыхВнешнихКомпонент(Компоненты) Экспорт + + НоваяСтрока = Компоненты.Добавить(); + НоваяСтрока.Идентификатор = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты().ИмяОбъекта; + НоваяСтрока.ОбновлятьАвтоматически = Истина; + +КонецПроцедуры + // См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт @@ -1321,6 +1328,185 @@ #Область СлужебныеПроцедурыИФункции +// Извлекает свойства подписи из данных подписи. Если не удалось извлечь все свойства с помощью менеджера криптографии, +// возвращается часть свойств, которые удалось прочитать из двоичных данных. +// +// Возвращаемое значение: +// см. ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатЧтенияСвойствПодписи +// Соответствие - если передан массив подписей. +// +Функция СвойстваПодписи(Подписи, ПрочитатьСертификаты, ИспользоватьМенеджерКриптографии = Истина) Экспорт + + Если ТипЗнч(Подписи) = Тип("Строка") Или ТипЗнч(Подписи) = Тип("ДвоичныеДанные") Тогда + МассивПодписей = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Подписи); + Соответствие = Неопределено; + Иначе + МассивПодписей = Подписи; + Соответствие = Новый Соответствие; + КонецЕсли; + + ЧтениеМенеджеромКриптографии = ИспользоватьМенеджерКриптографии + И (ЭлектроннаяПодпись.ОбщиеНастройки().ПроверятьЭлектронныеПодписиНаСервере + Или ЭлектроннаяПодпись.ОбщиеНастройки().СоздаватьЭлектронныеПодписиНаСервере + Или ОбщегоНазначения.ИнформационнаяБазаФайловая()); + + Для Каждого Подпись Из МассивПодписей Цикл + + Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатЧтенияСвойствПодписи(); + + Если ЧтениеМенеджеромКриптографии Тогда + ОписаниеОшибки = ""; + МенеджерКриптографии = ЭлектроннаяПодпись.МенеджерКриптографии("ЧтениеПодписи", Ложь, ОписаниеОшибки, + Подпись); // МенеджерКриптографии + Если МенеджерКриптографии = Неопределено Тогда + Результат.ТекстОшибки = ОписаниеОшибки; + Иначе + Результат = СвойстваПодписиЧтениеМенеджеромКриптографии(Подпись, МенеджерКриптографии, ПрочитатьСертификаты); + Если Результат.Успех = Истина Тогда + Если Соответствие = Неопределено Тогда + Возврат Результат; + Иначе + Соответствие.Вставить(Подпись, Результат); + Продолжить; + КонецЕсли; + Иначе + Результат.Успех = Неопределено; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + СвойстваПодписиИзДвоичныхДанных = СвойстваПодписиИзДвоичныхДанных(Подпись, ПрочитатьСертификаты); + ЗаполнитьЗначенияСвойств(Результат, СвойстваПодписиИзДвоичныхДанных, , "Успех, ТекстОшибки"); + + Если СвойстваПодписиИзДвоичныхДанных.Успех = Ложь Тогда + Результат.Успех = Ложь; + Результат.ТекстОшибки = ?(ПустаяСтрока(Результат.ТекстОшибки), "", Результат.ТекстОшибки + Символы.ПС) + + СвойстваПодписиИзДвоичныхДанных.ТекстОшибки; + КонецЕсли; + + Если Соответствие = Неопределено Тогда + Возврат Результат; + Иначе + Соответствие.Вставить(Подпись, Результат); + КонецЕсли; + + КонецЦикла; + + Возврат Соответствие; + +КонецФункции + +Функция СвойстваПодписиЧтениеМенеджеромКриптографии(Подпись, МенеджерКриптографии, ПрочитатьСертификаты) Экспорт + + Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатЧтенияСвойствПодписи(); + + ДвоичныеДанные = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДвоичныеДанныеИзДанных(Подпись, + "ЭлектроннаяПодписьСлужебный.СвойстваПодписиЧтениеМенеджеромКриптографии"); + + Попытка + КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДвоичныеДанные); + Исключение + Результат.Успех = Ложь; + Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='При чтении данных подписи: %1'"), ОбработкаОшибок.КраткоеПредставлениеОшибки( + ИнформацияОбОшибке())); + Возврат Результат; + КонецПопытки; + + ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии( + КонтейнерПодписи, ДобавкаВремени(), ТекущаяДатаСеанса()); + + Результат.ТипПодписи = ПараметрыПодписиКриптографии.ТипПодписи; + Результат.СрокДействияПоследнейМеткиВремени = ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени; + Результат.НеподтвержденнаяДатаПодписи = ПараметрыПодписиКриптографии.НеподтвержденнаяДатаПодписи; + Результат.ДатаПодписиИзМетки = ПараметрыПодписиКриптографии.ДатаПодписиИзМетки; + Если ПараметрыПодписиКриптографии.ОписаниеСертификата <> Неопределено Тогда + Результат.Отпечаток = ПараметрыПодписиКриптографии.ОписаниеСертификата.Отпечаток; + Результат.КомуВыданСертификат = ПараметрыПодписиКриптографии.ОписаниеСертификата.КомуВыдан; + КонецЕсли; + + Если ПрочитатьСертификаты Тогда + СтрокаПодписи = КонтейнерПодписи.Подписи[0]; + Если ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатСуществует( + СтрокаПодписи.СертификатПодписи) Тогда + Результат.Сертификат = СтрокаПодписи.СертификатПодписи.Выгрузить(); + КонецЕсли; + Для Каждого Сертификат Из СтрокаПодписи.СертификатыПроверкиПодписи Цикл + Если ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатСуществует(Сертификат) Тогда + Результат.Сертификаты.Добавить(Сертификат.Выгрузить()); + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Результат.Успех = Истина; + Возврат Результат; + +КонецФункции + +Функция СвойстваПодписиИзДвоичныхДанных(Подпись, ПрочитатьСертификаты) Экспорт + + Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатЧтенияСвойствПодписи(); + + Попытка + СвойстваПодписиИзДвоичныхДанных = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных( + Подпись, ДобавкаВремени(), ПрочитатьСертификаты); + Если Не ЗначениеЗаполнено(СвойстваПодписиИзДвоичныхДанных.ТипПодписи) Тогда + Результат.ТекстОшибки = НСтр("ru = 'Данные не являются подписью'"); + Результат.Успех = Ложь; + Возврат Результат; + КонецЕсли; + Исключение + Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось прочитать свойства подписи: %1'"), ОбработкаОшибок.КраткоеПредставлениеОшибки( + ИнформацияОбОшибке())); + Возврат Результат; + КонецПопытки; + + Результат.ТипПодписи = СвойстваПодписиИзДвоичныхДанных.ТипПодписи; + + Если ЗначениеЗаполнено(СвойстваПодписиИзДвоичныхДанных.ДатаПодписания) Тогда + Результат.НеподтвержденнаяДатаПодписи = СвойстваПодписиИзДвоичныхДанных.ДатаПодписания; + КонецЕсли; + Если ЗначениеЗаполнено(СвойстваПодписиИзДвоичныхДанных.ДатаШтампаВремени) Тогда + Результат.ДатаПодписиИзМетки = СвойстваПодписиИзДвоичныхДанных.ДатаШтампаВремени; + КонецЕсли; + + Если СвойстваПодписиИзДвоичныхДанных.Сертификаты.Количество() > 0 Тогда + + Если СвойстваПодписиИзДвоичныхДанных.Сертификаты.Количество() > 1 Тогда + Попытка + Результат.Сертификаты = СертификатыПоПорядкуДоКорневого( + СвойстваПодписиИзДвоичныхДанных.Сертификаты); + Результат.Сертификат = Результат.Сертификаты[0]; + Исключение + Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось прочитать свойства сертификатов: %1'"), + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + Иначе + Результат.Сертификат = СвойстваПодписиИзДвоичныхДанных.Сертификаты[0]; + КонецЕсли; + + Попытка + Сертификат = Новый СертификатКриптографии(Результат.Сертификат); + Результат.Сертификат = Сертификат.Выгрузить(); + СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(Сертификат); + Результат.Отпечаток = СвойстваСертификата.Отпечаток; + Результат.КомуВыданСертификат = СвойстваСертификата.КомуВыдан; + Исключение + Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось прочитать свойства сертификата: %1'"), + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + КонецЕсли; + + Результат.Успех = ПустаяСтрока(Результат.ТекстОшибки); + + Возврат Результат; + +КонецФункции + Процедура УстановитьВидимостьСсылкиНаИнструкциюПоРаботеСПрограммами(ЭлементИнструкция) Экспорт НавигационнаяСсылка = ""; @@ -1443,7 +1629,7 @@ ИначеЕсли Операция = "ПроверкаПодписи" Тогда ЗаголовокОшибки = НСтр("ru = 'Не удалось проверить подпись на сервере %1 по причине:'"); - + ИначеЕсли Операция = "Шифрование" Тогда ЗаголовокОшибки = НСтр("ru = 'Не удалось зашифровать данные на сервере %1 по причине:'"); @@ -1455,6 +1641,9 @@ ИначеЕсли Операция = "ПолучениеСертификатов" Тогда ЗаголовокОшибки = НСтр("ru = 'Не удалось получить сертификаты на сервере %1 по причине:'"); + + ИначеЕсли Операция = "ЧтениеПодписи" Тогда + ЗаголовокОшибки = НСтр("ru = 'Не удалось прочитать все свойства подписи на сервере %1 по причине:'"); ИначеЕсли Операция = "ПродлениеСрокаДействияПодписи" Тогда ЗаголовокОшибки = НСтр("ru = 'Не удалось усовершенствовать подписи на сервере %1 по причине:'"); @@ -1788,7 +1977,8 @@ // СписокВыбора - СписокЗначений - список для заполнения. // Операция - Строка - "Усовершенствование", "Подписание", "Настройки" - для каких операций формируется список. // - Неопределено - (по умолчанию) для формирования полного списка. -// ТипПодписи - Перечисление.ТипыПодписиКриптографии - ТипПодписи, от которого зависит, какие подписи доступны для операции. +// ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии - ТипПодписи, от которого зависит, какие подписи доступны +// для операции. // Процедура ЗаполнитьСписокТиповПодписейКриптографии(СписокВыбора, Операция = Неопределено, ТипПодписи = Неопределено) Экспорт @@ -1998,30 +2188,50 @@ Попытка МенеджерКриптографииДляПроверки.ПроверитьСертификат(СертификатДляПроверки, РежимыПроверкиСертификата); + Возврат Истина; Исключение - ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - - Возврат ПроверитьСертификатНаКорректностьПовторно(МенеджерКриптографииДляПроверки, СертификатДляПроверки, - РежимыПроверкиСертификата, ОписаниеОшибки, ВызыватьИсключение); - КонецПопытки; - Возврат Истина; + Если Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда + Возврат Ложь; + КонецЕсли; + + ОшибкаПоКлассификатору = ОшибкаПоКлассификатору(ОписаниеОшибки, Истина); + Если ОшибкаПоКлассификатору = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Если ОшибкаПоКлассификатору.СертификатОтозван Тогда + Попытка + ЗаписатьОтметкуОбОтзывеСертификата(Base64Строка(СертификатДляПроверки.Отпечаток)); + Исключение + ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + ОбработкаОшибок.КраткоеПредставлениеОшибки( + ИнформацияОбОшибке()); + КонецПопытки; + Возврат Ложь; + КонецЕсли; + + Если ЗначениеЗаполнено(ОшибкаПоКлассификатору.ДействияДляУстранения) Тогда + Возврат ПроверитьСертификатНаКорректностьПовторно(МенеджерКриптографииДляПроверки, СертификатДляПроверки, + РежимыПроверкиСертификата, ОписаниеОшибки, ВызыватьИсключение, + ОшибкаПоКлассификатору.ДействияДляУстранения); + КонецЕсли; + + Возврат Ложь; КонецФункции // Для функции ПроверитьСертификат Функция ПроверитьСертификатНаКорректностьПовторно(МенеджерКриптографииДляПроверки, СертификатДляПроверки, - РежимыПроверкиСертификата, ОписаниеОшибки, ВызыватьИсключение) + РежимыПроверкиСертификата, ОписаниеОшибки, ВызыватьИсключение, ДействияДляУстранения) // Локализация ТребуетсяУстановкаСпискаОтзыва = Ложь; Если ТипЗнч(МенеджерКриптографииДляПроверки) = Тип("МенеджерКриптографии") Тогда - Действия = ЭлектроннаяПодписьСлужебныйПовтИсп.ДействияДляУстраненияОшибки(ОписаниеОшибки); - Если ЗначениеЗаполнено(Действия) И Действия.Найти("УстановитьСписокОтзываСертификата") <> Неопределено Тогда + Если ЗначениеЗаполнено(ДействияДляУстранения) И ДействияДляУстранения.Найти("УстановитьСписокОтзываСертификата") <> Неопределено Тогда ИмяИздателя = НРег(ЭлектроннаяПодпись.СвойстваИздателяСертификата(СертификатДляПроверки).ОбщееИмя); Если ЗначениеЗаполнено(ИмяИздателя) Тогда ИмяИздателя = СтроковыеФункции.СтрокаЛатиницей(ИмяИздателя); @@ -2167,6 +2377,73 @@ КонецФункции +// Только для внутреннего использования. +// +// Параметры: +// Отпечаток - Строка - отпечаток сертификата в формате Base64Строка +// +Функция ЗаписатьОтметкуОбОтзывеСертификата(Отпечаток) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Отпечаток", Отпечаток); + Запрос.Текст = + "ВЫБРАТЬ + | Сертификаты.Ссылка КАК Ссылка + |ИЗ + | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Сертификаты + |ГДЕ + | Сертификаты.Отпечаток = &Отпечаток + | И НЕ Сертификаты.Отозван"; + + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + Возврат Неопределено; + КонецЕсли; + + Выборка = РезультатЗапроса.Выбрать(); + Выборка.Следующий(); + СсылкаНаСертификат = Выборка.Ссылка; + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаНаСертификат); + + НачатьТранзакцию(); + Попытка + + Блокировка.Заблокировать(); + СертификатОбъект = СсылкаНаСертификат.ПолучитьОбъект(); + + Если СертификатОбъект.Отозван <> Истина Тогда + СертификатОбъект.Отозван = Истина; + СертификатОбъект.ОбменДанными.Загрузка = Истина; + СертификатОбъект.Записать(); + КонецЕсли; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось записать отметку об отзыве сертификата %1: %2'"), СсылкаНаСертификат, + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + + ЗаписьЖурналаРегистрации( + НСтр("ru = 'Электронная подпись.Установка отметки об отзыве сертификата.'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , СсылкаНаСертификат, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + ВызватьИсключение ТекстОшибки; + КонецПопытки; + + Возврат СсылкаНаСертификат; + +КонецФункции + // Только для внутреннего использования. Функция ВстроенныйКриптопровайдер() Экспорт @@ -2946,7 +3223,8 @@ Возврат Результат; КонецЕсли; - Если СвойстваСертификата.ДатаОкончания < ТекущаяДатаСеанса() Тогда + Если Не ПараметрыВыполнения.ИгнорироватьСрокДействияСертификата + И СвойстваСертификата.ДатаОкончания < ТекущаяДатаСеанса() Тогда СведенияОСертификате = ЭлектроннаяПодписьСлужебныйКлиентСервер.СведенияОСертификатеСтрокой(СвойстваСертификата); @@ -3101,6 +3379,7 @@ ПараметрыВыполнения.Вставить("ТипПодписи", Параметры.ТипПодписи); ПараметрыВыполнения.Вставить("ПараметрыПодписиCAdEST", Параметры.ПараметрыПодписиCAdEST); ПараметрыВыполнения.Вставить("СлужебнаяУчетнаяЗаписьDSS", Параметры.СлужебнаяУчетнаяЗаписьDSS); + ПараметрыВыполнения.Вставить("ИгнорироватьСрокДействияСертификата", Параметры.ИгнорироватьСрокДействияСертификата); РезультатЗапроса = УсовершенствоватьПодписьВСервисе(Подпись, ПараметрыВыполнения); ЗаполнитьЗначенияСвойств(Результат, РезультатЗапроса); @@ -3145,13 +3424,17 @@ МенеджерКриптографии.АдресаСерверовМетокВремени = ЭлектроннаяПодпись.ОбщиеНастройки().АдресаСерверовМетокВремени; + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("МенеджерКриптографии", МенеджерКриптографии); + ДополнительныеПараметры.Вставить("ИгнорироватьСрокДействияСертификата", Параметры.ИгнорироватьСрокДействияСертификата); + Если Параметры.ЭлементДанныхДляСервера.Свойство("ПодписанныйОбъект") Тогда РезультатЗапроса = ЭлектроннаяПодпись.УсовершенствоватьПодписьОбъекта(Параметры.ЭлементДанныхДляСервера.ПодписанныйОбъект, Параметры.ЭлементДанныхДляСервера.ПорядковыйНомер, Параметры.ТипПодписи, - Параметры.ДобавитьАрхивнуюМеткуВремени, Параметры.ИдентификаторФормы, МенеджерКриптографии); + Параметры.ДобавитьАрхивнуюМеткуВремени, Параметры.ИдентификаторФормы, ДополнительныеПараметры); Иначе РезультатЗапроса = ЭлектроннаяПодпись.УсовершенствоватьПодпись(Подпись, Параметры.ТипПодписи, - Параметры.ДобавитьАрхивнуюМеткуВремени, МенеджерКриптографии); + Параметры.ДобавитьАрхивнуюМеткуВремени, ДополнительныеПараметры); КонецЕсли; ЗаполнитьЗначенияСвойств(Результат, РезультатЗапроса); @@ -3212,21 +3495,26 @@ КонвертXML = СтрЗаменить(КонвертXML, "%SignatureMethod%", ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмПодписи); КонвертXML = СтрЗаменить(КонвертXML, "%DigestMethod%", ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмХеширования); - Если СвойстваКонвертаXML = Неопределено Тогда - КанонизированныйТекстXMLBody = C14N(ОбъектКомпоненты, - КонвертXML, ДанныеАлгоритмаПодписания.XPathПодписываемыйТег); + Если СвойстваКонвертаXML <> Неопределено Тогда + Для Индекс = 0 По СвойстваКонвертаXML.ХешируемыеОбласти.ВГраница() Цикл + ХешируемаяОбласть = СвойстваКонвертаXML.ХешируемыеОбласти[Индекс]; + КанонизированныйТекстXMLBody = КанонизированныйТекстXML(ОбъектКомпоненты, + СвойстваКонвертаXML.ОбластиBody[Индекс], ХешируемаяОбласть.АлгоритмыТрансформации); + АтрибутDigestValue = РезультатHash(ОбъектКомпоненты, КанонизированныйТекстXMLBody, + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования, СвойстваКриптопровайдера.Тип); + + КонвертXML = СтрЗаменить(КонвертXML, ХешируемаяОбласть.ЗначениеХеша, АтрибутDigestValue); + КонецЦикла; Иначе - КанонизированныйТекстXMLBody = КанонизированныйТекстXML(ОбъектКомпоненты, - СвойстваКонвертаXML.ОбластьBody, СвойстваКонвертаXML.ХешируемаяОбласть.АлгоритмыТрансформации); + КанонизированныйТекстXMLBody = C14N(ОбъектКомпоненты, КонвертXML, + ДанныеАлгоритмаПодписания.XPathПодписываемыйТег); + + АтрибутDigestValue = РезультатHash(ОбъектКомпоненты, КанонизированныйТекстXMLBody, + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования, СвойстваКриптопровайдера.Тип); + + КонвертXML = СтрЗаменить(КонвертXML, "%DigestValue%", АтрибутDigestValue); КонецЕсли; - АтрибутDigestValue = РезультатHash(ОбъектКомпоненты, - КанонизированныйТекстXMLBody, - ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования, - СвойстваКриптопровайдера.Тип); - - КонвертXML = СтрЗаменить(КонвертXML, "%DigestValue%", АтрибутDigestValue); - Если СвойстваКонвертаXML = Неопределено Тогда КанонизированныйТекстXMLSignedInfo = C14N(ОбъектКомпоненты, КонвертXML, ДанныеАлгоритмаПодписания.XPathSignedInfo); @@ -3273,6 +3561,8 @@ // Функция ПроверитьПодпись(Знач КонвертXML, ПараметрыXMLDSig, МенеджерКриптографии, СвойстваКонвертаXML = Неопределено) Экспорт + ПараметрыПроверки = Новый Структура; + ОбъектКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI(); СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии); @@ -3291,21 +3581,45 @@ КанонизированныйТекстXMLSignedInfo = КанонизированныйТекстXML(ОбъектКомпоненты, СвойстваКонвертаXML.ОбластьSignedInfo, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СвойстваКонвертаXML.АлгоритмКанонизации)); - КанонизированныйТекстXMLBody = КанонизированныйТекстXML(ОбъектКомпоненты, - СвойстваКонвертаXML.ОбластьBody, СвойстваКонвертаXML.ХешируемаяОбласть.АлгоритмыТрансформации); - СертификатКриптографииBase64 = СвойстваКонвертаXML.Сертификат.ЗначениеСертификата; + ЗначениеПодписи = СвойстваКонвертаXML.ЗначениеПодписи; - ЗначениеХеша = СвойстваКонвертаXML.ХешируемаяОбласть.ЗначениеХеша; + СертификатКриптографииBase64 = СвойстваКонвертаXML.Сертификат.ЗначениеСертификата; + КонецЕсли; ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверитьВыбратьАлгоритмПодписи( СертификатКриптографииBase64, ДанныеАлгоритмаПодписания, Истина, СвойстваКонвертаXML); - + ПодписьВерна = РезультатVerifySign(ОбъектКомпоненты, КанонизированныйТекстXMLSignedInfo, ЗначениеПодписи, СертификатКриптографииBase64, СвойстваКриптопровайдера.Тип); + + Если СвойстваКонвертаXML <> Неопределено Тогда + + Счетчик = 1; + Для Каждого ХешируемаяОбласть Из СвойстваКонвертаXML.ХешируемыеОбласти Цикл + КанонизированныйТекстXMLBody = КанонизированныйТекстXML(ОбъектКомпоненты, + СвойстваКонвертаXML.ОбластиBody[Счетчик-1], ХешируемаяОбласть.АлгоритмыТрансформации); + ЗначениеХеша = ХешируемаяОбласть.ЗначениеХеша; + + АтрибутDigestValue = РезультатHash(ОбъектКомпоненты, + КанонизированныйТекстXMLBody, + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования, + СвойстваКриптопровайдера.Тип); + + ХешСовпадает = (АтрибутDigestValue = ЗначениеХеша); + + Если Не ХешСовпадает Или Не ПодписьВерна Тогда + ВызватьИсключение ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиПроверкиПодписиXML(ПодписьВерна, ХешСовпадает); + КонецЕсли; + Счетчик = Счетчик + 1; + КонецЦикла; + + Возврат РезультатПроверкиПодписиXML(СертификатКриптографииBase64); + + КонецЕсли; АтрибутDigestValue = РезультатHash(ОбъектКомпоненты, КанонизированныйТекстXMLBody, @@ -3315,28 +3629,25 @@ ХешСовпадает = (АтрибутDigestValue = ЗначениеХеша); Если ХешСовпадает И ПодписьВерна Тогда - - ДвоичныеДанные = Base64Значение(СертификатКриптографииBase64); - - ВозвращаемоеЗначение = Новый Структура; - ВозвращаемоеЗначение.Вставить("Сертификат", Новый СертификатКриптографии(ДвоичныеДанные)); - ВозвращаемоеЗначение.Вставить("ДатаПодписания", Неопределено); - - Возврат ВозвращаемоеЗначение; + Возврат РезультатПроверкиПодписиXML(СертификатКриптографииBase64); Иначе - Если ПодписьВерна Тогда - ТекстОшибки = НСтр("ru = 'Подпись неверна (%1 корректно, %2 некорректно).'") - ИначеЕсли ХешСовпадает Тогда - ТекстОшибки = НСтр("ru = 'Подпись неверна (%1 некорректно, %2 корректно).'"); - Иначе - ТекстОшибки = НСтр("ru = 'Подпись неверна (%1 некорректно, %2 некорректно).'"); - КонецЕсли; - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, "SignatureValue", "DigestValue"); - ВызватьИсключение ТекстОшибки; + ВызватьИсключение ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиПроверкиПодписиXML(ПодписьВерна, ХешСовпадает); КонецЕсли; КонецФункции +Функция РезультатПроверкиПодписиXML(СертификатКриптографииBase64) + + ДвоичныеДанные = Base64Значение(СертификатКриптографииBase64); + + Результат = Новый Структура; + Результат.Вставить("Сертификат", Новый СертификатКриптографии(ДвоичныеДанные)); + Результат.Вставить("ДатаПодписания", Неопределено); + + Возврат Результат; + +КонецФункции + // Вычисляет и проверят свойства конверта XML для подписания и проверки подписи. // // Параметры: @@ -3372,12 +3683,26 @@ ИмяПространстваИменУзлаПодписи = "http://www.w3.org/2000/09/xmldsig#"; ПространстваИменДоУзлаSignatureВключительно = Новый Массив; - УзелSignature = НайтиУзелПоИмени(ДокументDOM, - ИмяУзлаПодписи, ИмяПространстваИменУзлаПодписи, - СвойстваКонвертаXML.ТекстОшибки, , ПространстваИменДоУзлаSignatureВключительно); - Если УзелSignature = Неопределено Тогда - Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); - КонецЕсли; + ИсключаемыеУзлы = Новый Массив; + НомерSignature = 0; + Пока Истина Цикл + НомерSignature = НомерSignature + 1; + УзелSignature = НайтиУзелПоИмени(ДокументDOM, + ИмяУзлаПодписи, ИмяПространстваИменУзлаПодписи, + СвойстваКонвертаXML.ТекстОшибки, ИсключаемыеУзлы, ПространстваИменДоУзлаSignatureВключительно); + Если УзелSignature = Неопределено Тогда + Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); + КонецЕсли; + + // Если текстовое содержимое узла уже содержит значение подписи, значит используется наложение нескольких подписей и + // нужно найти другой узел + Если СтрНайти(УзелSignature.ТекстовоеСодержимое, "%SignatureValue%") = 0 И Не ПроверкаПодписи Тогда + ИсключаемыеУзлы.Добавить(УзелSignature); + Продолжить; + Иначе + Прервать; + КонецЕсли; + КонецЦикла; Для Каждого ДочернийУзел Из УзелSignature.ДочерниеУзлы Цикл Если ДочернийУзел.ЛокальноеИмя = "SignedInfo" Тогда @@ -3434,8 +3759,7 @@ Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); КонецЕсли; - - ИсключаемыеУзлы = Новый Массив; + ИсключаемыеУзлы.Добавить(УзелSignature); Если ЗначениеЗаполнено(СвойстваКонвертаXML.Сертификат.ИдентификаторУзла) Тогда @@ -3453,36 +3777,34 @@ ИсключаемыеУзлы.Добавить(УзелСертификат); КонецЕсли; - ПространстваИменДоУзлаBody = Новый Массив; - УзелBody = НайтиУзелПоИдентификатору(ДокументDOM, - СвойстваКонвертаXML.ХешируемаяОбласть.ИдентификаторУзла, - СвойстваКонвертаXML.ТекстОшибки, - ИсключаемыеУзлы, - ПространстваИменДоУзлаBody); + УзлыBody = Новый Массив; - Если ЗначениеЗаполнено(СвойстваКонвертаXML.ТекстОшибки) Тогда - Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); - КонецЕсли; + Для Каждого ХешируемаяОбласть Из СвойстваКонвертаXML.ХешируемыеОбласти Цикл + ПространстваИменДоУзлаBody = Новый Массив; + УзелBody = НайтиУзелПоИдентификатору(ДокументDOM, + ХешируемаяОбласть.ИдентификаторУзла, + СвойстваКонвертаXML.ТекстОшибки, + ИсключаемыеУзлы, + ПространстваИменДоУзлаBody); + Если ЗначениеЗаполнено(СвойстваКонвертаXML.ТекстОшибки) Тогда + Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); + КонецЕсли; + ИсключаемыеУзлы.Добавить(УзелBody); + УзлыBody.Добавить(УзелBody); + КонецЦикла; - ИсключаемыеУзлы.Добавить(УзелBody); - - УзелSignature2 = НайтиУзелПоИмени(ДокументDOM, - ИмяУзлаПодписи, ИмяПространстваИменУзлаПодписи, - СвойстваКонвертаXML.ТекстОшибки, ИсключаемыеУзлы, , Истина); - Если УзелSignature2 <> Неопределено Тогда - Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); - КонецЕсли; - - УзелBody2 = НайтиУзелПоИдентификатору(ДокументDOM, - СвойстваКонвертаXML.ХешируемаяОбласть.ИдентификаторУзла, - СвойстваКонвертаXML.ТекстОшибки, ИсключаемыеУзлы, , Истина); - Если УзелBody2 <> Неопределено Тогда - Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); - КонецЕсли; + Для Каждого ХешируемаяОбласть Из СвойстваКонвертаXML.ХешируемыеОбласти Цикл + УзелBody2 = НайтиУзелПоИдентификатору(ДокументDOM, + ХешируемаяОбласть.ИдентификаторУзла, + СвойстваКонвертаXML.ТекстОшибки, ИсключаемыеУзлы, , Истина); + Если УзелBody2 <> Неопределено Тогда + Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); + КонецЕсли; + КонецЦикла; УзелSignedInfo = СвойстваКонвертаXML.УникальныеУзлы.SignedInfo; // ЭлементDOM ОбластьSignedInfo = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML(КонвертXML, - УзелSignedInfo.ИмяЭлемента); + УзелSignedInfo.ИмяЭлемента, НомерSignature); Если ЗначениеЗаполнено(ОбластьSignedInfo.ТекстОшибки) Тогда СвойстваКонвертаXML.ТекстОшибки = ОбластьSignedInfo.ТекстОшибки; Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); @@ -3490,14 +3812,16 @@ ОбластьSignedInfo.ПространстваИменДоУзла = ПространстваИменДоУзлаSignatureВключительно; СвойстваКонвертаXML.ОбластьSignedInfo = ОбластьSignedInfo; - ОбластьBody = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML(КонвертXML, - УзелBody.ИмяЭлемента); - Если ЗначениеЗаполнено(ОбластьBody.ТекстОшибки) Тогда - СвойстваКонвертаXML.ТекстОшибки = ОбластьBody.ТекстОшибки; - Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); - КонецЕсли; - ОбластьBody.ПространстваИменДоУзла = ПространстваИменДоУзлаBody; - СвойстваКонвертаXML.ОбластьBody = ОбластьBody; + Для Каждого ЭлементОбластьBody Из УзлыBody Цикл + ОбластьBody = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML(КонвертXML, + ЭлементОбластьBody.ИмяЭлемента); + Если ЗначениеЗаполнено(ОбластьBody.ТекстОшибки) Тогда + СвойстваКонвертаXML.ТекстОшибки = ОбластьBody.ТекстОшибки; + Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); + КонецЕсли; + ОбластьBody.ПространстваИменДоУзла = ПространстваИменДоУзлаBody; + СвойстваКонвертаXML.ОбластиBody.Добавить(ОбластьBody); + КонецЦикла; Возврат ВозвращаемыеСвойстваКонвертаXML(СвойстваКонвертаXML); @@ -3602,7 +3926,7 @@ // ** ПутьКПрограмме - Строка // ** Версия - Строка - версия библиотеки // ** Лицензия - Булево - есть ли лицензия к программе -// ** Автоопределение - Истина +// ** Автоопределение - Булево // Функция УстановленныеКриптопровайдеры(ОбъектКомпоненты = Неопределено) Экспорт @@ -5213,13 +5537,14 @@ // Производит поиск физических лиц по наименованию // // Параметры: -// КомуВыдан - Массив из строк +// КомуВыдан - Массив из Строка // - Строка // // Возвращаемое значение: // Соответствие из КлючИЗначение: // * Ключ - Строка - наименование физического лица -// * Значение - Массив из ссылок - ссылки на справочник физические лица, указанный в определяемом типе ФизическоеЛицо +// * Значение - Массив из ОпределяемыйТип.ФизическоеЛицо - ссылки на справочник физические лица, указанный в +// определяемом типе ФизическоеЛицо // Функция ПолучитьФизическиеЛицаПоПолюСертификатаКомуВыдан(КомуВыдан) Экспорт @@ -5375,74 +5700,84 @@ Возврат Ложь; КонецЕсли; + МассивУзловReference = Новый Массив; + Для Каждого ДочернийУзел Из УзелSignedInfo.ДочерниеУзлы Цикл Если ДочернийУзел.ЛокальноеИмя = "CanonicalizationMethod" Тогда Если Не ПолучитьАтрибут(ДочернийУзел, "Algorithm", СвойстваКонвертаXML, - "АлгоритмКанонизации",,, СвойстваКонвертаXML.ПроверкаПодписи) Тогда + "АлгоритмКанонизации", СвойстваКонвертаXML.ПроверкаПодписи) Тогда Возврат Ложь; КонецЕсли; ИначеЕсли ДочернийУзел.ЛокальноеИмя = "SignatureMethod" Тогда Если Не ПолучитьАтрибут(ДочернийУзел, "Algorithm", СвойстваКонвертаXML, - "АлгоритмПодписи",,, СвойстваКонвертаXML.ПроверкаПодписи) Тогда + "АлгоритмПодписи", СвойстваКонвертаXML.ПроверкаПодписи) Тогда Возврат Ложь; КонецЕсли; ИначеЕсли ДочернийУзел.ЛокальноеИмя = "Reference" Тогда - Если Не ОбработатьУзелReference(ДочернийУзел, СвойстваКонвертаXML) Тогда - Возврат Ложь; - КонецЕсли; + МассивУзловReference.Добавить(ДочернийУзел); КонецЕсли; КонецЦикла; + Возврат ОбработатьУзлыReference(МассивУзловReference, СвойстваКонвертаXML); + +КонецФункции + +Функция ОбработатьУзлыReference(МассивУзловReference, СвойстваКонвертаXML) + + Для Каждого УзелReference Из МассивУзловReference Цикл + ХешируемаяОбласть = ОписаниеХешируемойОбласти(); + + ДополнительныеПараметры = ДополнительныеПараметрыАтрибута(Истина, ХешируемаяОбласть, Истина); + Если Не ПолучитьАтрибут(УзелReference, "URI", СвойстваКонвертаXML, + "ИдентификаторУзла", Ложь, ДополнительныеПараметры) Тогда + Возврат Ложь; + КонецЕсли; + + Для Каждого ДочернийУзел Из УзелReference.ДочерниеУзлы Цикл + Если ДочернийУзел.ЛокальноеИмя = "Transforms" Тогда + Если Не ОбработатьУзелTransforms(ДочернийУзел, СвойстваКонвертаXML, ХешируемаяОбласть) Тогда + Возврат Ложь; + КонецЕсли; + ИначеЕсли ДочернийУзел.ЛокальноеИмя = "DigestMethod" Тогда + ДополнительныеПараметры = ДополнительныеПараметрыАтрибута(Истина, ХешируемаяОбласть); + Если Не ПолучитьАтрибут(ДочернийУзел, "Algorithm", СвойстваКонвертаXML, "АлгоритмХеширования", + СвойстваКонвертаXML.ПроверкаПодписи, ДополнительныеПараметры) Тогда + Возврат Ложь; + КонецЕсли; + ИначеЕсли ДочернийУзел.ЛокальноеИмя = "DigestValue" Тогда + ДополнительныеПараметры = ДополнительныеПараметрыАтрибута(Ложь, ХешируемаяОбласть); + Если Не ПолучитьЗначение(ДочернийУзел, СвойстваКонвертаXML, + "ЗначениеХеша", ХешируемаяОбласть, Истина) Тогда + Возврат Ложь; + КонецЕсли; + КонецЕсли; + КонецЦикла; + СвойстваКонвертаXML.ХешируемыеОбласти.Добавить(ХешируемаяОбласть); + КонецЦикла; + Возврат Истина; КонецФункции -Функция ОбработатьУзелReference(УзелReference, СвойстваКонвертаXML) +Функция ОбработатьУзелTransforms(УзелTransforms, СвойстваКонвертаXML, ХешируемаяОбласть) - Если Не ПолучитьАтрибут(УзелReference, "URI", СвойстваКонвертаXML, - "ИдентификаторУзла", СвойстваКонвертаXML.ХешируемаяОбласть, Истина) Тогда - Возврат Ложь; - КонецЕсли; - - Для Каждого ДочернийУзел Из УзелReference.ДочерниеУзлы Цикл - Если ДочернийУзел.ЛокальноеИмя = "Transforms" Тогда - Если Не ОбработатьУзелTransforms(ДочернийУзел, СвойстваКонвертаXML) Тогда - Возврат Ложь; - КонецЕсли; - ИначеЕсли ДочернийУзел.ЛокальноеИмя = "DigestMethod" Тогда - Если Не ПолучитьАтрибут(ДочернийУзел, "Algorithm", СвойстваКонвертаXML, "АлгоритмХеширования", - СвойстваКонвертаXML.ХешируемаяОбласть,, СвойстваКонвертаXML.ПроверкаПодписи) Тогда - Возврат Ложь; - КонецЕсли; - ИначеЕсли ДочернийУзел.ЛокальноеИмя = "DigestValue" Тогда - Если Не ПолучитьЗначение(ДочернийУзел, СвойстваКонвертаXML, - "ЗначениеХеша", СвойстваКонвертаXML.ХешируемаяОбласть) Тогда - Возврат Ложь; - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Возврат Истина; - -КонецФункции - -Функция ОбработатьУзелTransforms(УзелTransforms, СвойстваКонвертаXML) - - Если Не ПроверитьУникальностьУзла(УзелTransforms, СвойстваКонвертаXML) Тогда + ДополнительныеПараметры = ДополнительныеПараметрыАтрибута(Истина); + Если Не ПроверитьУникальностьУзла(УзелTransforms, СвойстваКонвертаXML, ДополнительныеПараметры) Тогда Возврат Ложь; КонецЕсли; Для Каждого ДочернийУзел Из УзелTransforms.ДочерниеУзлы Цикл Если ДочернийУзел.ЛокальноеИмя = "Transform" Тогда + ДополнительныеПараметры = ДополнительныеПараметрыАтрибута(Истина, ХешируемаяОбласть); Если Не ПолучитьАтрибут(ДочернийУзел, "Algorithm", СвойстваКонвертаXML, "АлгоритмыТрансформации", - СвойстваКонвертаXML.ХешируемаяОбласть,, СвойстваКонвертаXML.ПроверкаПодписи) Тогда + СвойстваКонвертаXML.ПроверкаПодписи, ДополнительныеПараметры) Тогда Возврат Ложь; КонецЕсли; КонецЕсли; КонецЦикла; Возврат Истина; - + КонецФункции Функция ОбработатьУзелKeyInfo(УзелKeyInfo, СвойстваКонвертаXML) @@ -5494,12 +5829,15 @@ Возврат Ложь; КонецЕсли; + ДополнительныеПараметры = ДополнительныеПараметрыАтрибута(Ложь); + Для Каждого ДочернийУзел Из УзелСоСсылкойНаСертификат.ДочерниеУзлы Цикл Если ДочернийУзел.ЛокальноеИмя <> "Reference" Тогда Продолжить; КонецЕсли; + ДополнительныеПараметры.Свойства = СвойстваКонвертаXML.Сертификат; Если Не ПолучитьАтрибут(ДочернийУзел, "URI", СвойстваКонвертаXML, - "ИдентификаторУзла", СвойстваКонвертаXML.Сертификат) Тогда + "ИдентификаторУзла", Ложь, ДополнительныеПараметры) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; @@ -5675,19 +6013,36 @@ КонецПроцедуры -Функция ПолучитьЗначение(ЭлементDOM, СвойстваКонвертаXML, ИмяСвойства, Свойства = Неопределено) +Функция ПолучитьЗначение(ЭлементDOM, СвойстваКонвертаXML, ИмяСвойства, Свойства = Неопределено, МножественноеПодписание = Ложь) Значение = ЭлементDOM.ТекстовоеСодержимое; + ДополнительныеПараметры = ДополнительныеПараметрыАтрибута(МножественноеПодписание, Свойства); + Результат = ПроверитьУстановитьЗначение(Значение, - ЭлементDOM, "", СвойстваКонвертаXML, ИмяСвойства, Свойства); + ЭлементDOM, "", СвойстваКонвертаXML, ИмяСвойства, ДополнительныеПараметры); Возврат Результат; КонецФункции +Функция ДополнительныеПараметрыАтрибута(МножественноеПодписание, Свойства = Неопределено, ИмяСРодителем = Ложь) + + Структура = Новый Структура; + Структура.Вставить("МножественноеПодписание", МножественноеПодписание); + Структура.Вставить("Свойства", Свойства); + Структура.Вставить("ИмяСРодителем", ИмяСРодителем); + + Возврат Структура; + +КонецФункции + Функция ПолучитьАтрибут(ЭлементDOM, ИмяАтрибута, СвойстваКонвертаXML, ИмяСвойства, - Свойства = Неопределено, ИмяСРодителем = Ложь, ЗначениеВНижнийРегистр = Ложь) + ЗначениеВНижнийРегистр = Ложь, ДополнительныеПараметры = Неопределено) + + Если ДополнительныеПараметры = Неопределено Тогда + ДополнительныеПараметры = ДополнительныеПараметрыАтрибута(Ложь); + КонецЕсли; Атрибут = ЭлементDOM.Атрибуты.ПолучитьИменованныйЭлемент(ИмяАтрибута); Если Атрибут = Неопределено Тогда @@ -5703,15 +6058,16 @@ КонецЕсли; Результат = ПроверитьУстановитьЗначение(Значение, - ЭлементDOM, ИмяАтрибута, СвойстваКонвертаXML, ИмяСвойства, Свойства, ИмяСРодителем); + ЭлементDOM, ИмяАтрибута, СвойстваКонвертаXML, ИмяСвойства, + ДополнительныеПараметры); Возврат Результат; КонецФункции -Функция ПроверитьУстановитьЗначение(Значение, ЭлементDOM, ИмяАтрибута, СвойстваКонвертаXML, ИмяСвойства, Свойства, ИмяСРодителем = Ложь) +Функция ПроверитьУстановитьЗначение(Значение, ЭлементDOM, ИмяАтрибута, СвойстваКонвертаXML, ИмяСвойства, ДополнительныеПараметры) - Если Не ПроверитьУникальностьУзла(ЭлементDOM, СвойстваКонвертаXML, ИмяСРодителем) Тогда + Если Не ПроверитьУникальностьУзла(ЭлементDOM, СвойстваКонвертаXML, ДополнительныеПараметры) Тогда Возврат Ложь; КонецЕсли; @@ -5723,8 +6079,8 @@ Если Не СвойстваКонвертаXML.ПроверкаПодписи И ЗначениеЗаполнено(ДоступныеЗначения.ИмяПараметра) Тогда - - Если Значение <> ДоступныеЗначения.ИмяПараметра Тогда + + Если Значение <> ДоступныеЗначения.ИмяПараметра И Не ДополнительныеПараметры.МножественноеПодписание Тогда Если ЗначениеЗаполнено(ИмяАтрибута) Тогда СвойстваКонвертаXML.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'В документе XML для узла ""%1"" в атрибуте ""%2"" должно быть указано значение ""%3"".'"), @@ -5791,10 +6147,10 @@ КонецЕсли; КонецЕсли; - Если Свойства = Неопределено Тогда + Если ДополнительныеПараметры.Свойства = Неопределено Тогда НаборСвойств = СвойстваКонвертаXML; Иначе - НаборСвойств = Свойства + НаборСвойств = ДополнительныеПараметры.Свойства; КонецЕсли; Если ТипЗнч(НаборСвойств[ИмяСвойства]) = Тип("Массив") Тогда @@ -5809,10 +6165,14 @@ КонецФункции -Функция ПроверитьУникальностьУзла(ЭлементDOM, СвойстваКонвертаXML, ИмяСРодителем = Ложь) +Функция ПроверитьУникальностьУзла(ЭлементDOM, СвойстваКонвертаXML, ДополнительныеПараметры = Неопределено) + + Если ДополнительныеПараметры = Неопределено Тогда + ДополнительныеПараметры = ДополнительныеПараметрыАтрибута(Ложь); + КонецЕсли; ИмяСвойства = ЭлементDOM.ЛокальноеИмя; - Если ИмяСРодителем Тогда + Если ДополнительныеПараметры.ИмяСРодителем Тогда ИмяСвойства = ЭлементDOM.РодительскийУзел.ЛокальноеИмя + "_" + ИмяСвойства; КонецЕсли; @@ -5824,22 +6184,33 @@ Возврат Истина; КонецЕсли; - Если СвойстваКонвертаXML.УникальныеУзлы[ИмяСвойства] <> Неопределено Тогда - Если ИмяСРодителем Тогда - СвойстваКонвертаXML.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'В документе XML узел ""%1"" встречается более одного раза в узле ""%2"".'"), - ЭлементDOM.ЛокальноеИмя, - ЭлементDOM.Родитель.ЛокальноеИмя); + Если ДополнительныеПараметры.МножественноеПодписание Тогда + Если ИмяСвойства = "SignedInfo_Reference" Тогда + Если СвойстваКонвертаXML.УникальныеУзлы[ИмяСвойства] = Неопределено Тогда + СвойстваКонвертаXML.УникальныеУзлы[ИмяСвойства] = Новый Массив; + КонецЕсли; + СвойстваКонвертаXML.УникальныеУзлы[ИмяСвойства].Добавить(ЭлементDOM); Иначе - СвойстваКонвертаXML.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'В документе XML узел ""%1"" встречается более одного раза.'"), - ИмяСвойства); + СвойстваКонвертаXML.УникальныеУзлы[ИмяСвойства] = ЭлементDOM; КонецЕсли; - Возврат Ложь; + Иначе + + Если СвойстваКонвертаXML.УникальныеУзлы[ИмяСвойства] <> Неопределено Тогда + Если ДополнительныеПараметры.ИмяСРодителем Тогда + СвойстваКонвертаXML.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В документе XML узел ""%1"" встречается более одного раза в узле ""%2"".'"), + ЭлементDOM.ЛокальноеИмя, + ЭлементDOM.РодительскийУзел.ЛокальноеИмя); + Иначе + СвойстваКонвертаXML.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В документе XML узел ""%1"" встречается более одного раза.'"), + ИмяСвойства); + КонецЕсли; + Возврат Ложь; + КонецЕсли; + СвойстваКонвертаXML.УникальныеУзлы[ИмяСвойства] = ЭлементDOM; КонецЕсли; - СвойстваКонвертаXML.УникальныеУзлы[ИмяСвойства] = ЭлементDOM; - Возврат Истина; КонецФункции @@ -5851,10 +6222,10 @@ // Структура: // * ТекстОшибки - Строка // * ОбластьSignedInfo - см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML -// * ОбластьBody - см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML +// * ОбластиBody - Массив из см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML // * АлгоритмКанонизации - см. АлгоритмКанонизации // * АлгоритмПодписи - см. АлгоритмПодписиИХеширования -// * ХешируемаяОбласть - см. ОписаниеХешируемойОбласти +// * ХешируемыеОбласти - Массив из см. ОписаниеХешируемойОбласти // * ЗначениеПодписи - Строка - Base64 строка. // * Сертификат - см. ОписаниеСертификата // * ПроверкаПодписи - Булево - когда Ложь, подписание. @@ -5864,10 +6235,10 @@ Результат = Новый Структура; Результат.Вставить("ТекстОшибки", ""); Результат.Вставить("ОбластьSignedInfo"); - Результат.Вставить("ОбластьBody"); + Результат.Вставить("ОбластиBody", Новый Массив); Результат.Вставить("АлгоритмКанонизации"); Результат.Вставить("АлгоритмПодписи"); - Результат.Вставить("ХешируемаяОбласть", ОписаниеХешируемойОбласти()); + Результат.Вставить("ХешируемыеОбласти", Новый Массив); Результат.Вставить("ЗначениеПодписи", ""); Результат.Вставить("Сертификат", ОписаниеСертификата()); Результат.Вставить("ПроверкаПодписи", Ложь); @@ -5887,10 +6258,10 @@ // Структура: // * ТекстОшибки - Строка // * ОбластьSignedInfo - см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML -// * ОбластьBody - см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML +// * ОбластиBody - Массив из см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML // * АлгоритмКанонизации - см. АлгоритмКанонизации // * АлгоритмПодписи - см. АлгоритмПодписиИХеширования -// * ХешируемаяОбласть - см. ОписаниеХешируемойОбласти +// * ХешируемыеОбласти - Массив из см. ОписаниеХешируемойОбласти // * ЗначениеПодписи - Строка - Base64 строка. // * Сертификат - см. ОписаниеСертификата // * ПроверкаПодписи - Булево - когда Ложь, подписание. @@ -6156,7 +6527,7 @@ Если ТипЗнч(ДанныеКлассификатора) = Тип("Структура") Тогда Попытка - Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ДанныеКлассификатора.Версия, "3.0.0.2") < 0 Тогда + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ДанныеКлассификатора.Версия, "3.0.1.0") < 0 Тогда Версия = Неопределено; Иначе Версия = ДанныеКлассификатора.Версия; @@ -6209,8 +6580,10 @@ Результат.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(500))); - Результат.Колонки.Добавить("ТолькоСервер", Новый ОписаниеТипов("Булево")); - Результат.Колонки.Добавить("ТолькоКлиент", Новый ОписаниеТипов("Булево")); + Результат.Колонки.Добавить("ТолькоСервер", Новый ОписаниеТипов("Булево")); + Результат.Колонки.Добавить("ТолькоКлиент", Новый ОписаниеТипов("Булево")); + Результат.Колонки.Добавить("ТребуетПроверки", Новый ОписаниеТипов("Булево")); + Результат.Колонки.Добавить("СертификатОтозван", Новый ОписаниеТипов("Булево")); Возврат Результат; @@ -6253,12 +6626,17 @@ Для Каждого ИзвестнаяОшибка Из КлассификаторОшибок.Classifier Цикл НоваяОшибка = Классификатор.Добавить(); - НоваяОшибка.Ссылка = ИзвестнаяОшибка.Anchor; - НоваяОшибка.Причина = ИзвестнаяОшибка.Reason; - НоваяОшибка.Решение = ИзвестнаяОшибка.Solution; - НоваяОшибка.ТолькоСервер = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Server", Ложь); - НоваяОшибка.ТолькоКлиент = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Client", Ложь); - НоваяОшибка.ТекстОшибки = ИзвестнаяОшибка.ErrorText; + НоваяОшибка.Ссылка = ИзвестнаяОшибка.Anchor; + НоваяОшибка.Причина = ИзвестнаяОшибка.Reason; + НоваяОшибка.Решение = ИзвестнаяОшибка.Solution; + НоваяОшибка.ТолькоСервер = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Server", Ложь); + НоваяОшибка.ТолькоКлиент = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Client", Ложь); + Категория = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Category", Неопределено); + Если ЗначениеЗаполнено(Категория) Тогда + НоваяОшибка.ТребуетПроверки = ОшибкаТребуетПерепроверки(Категория); + НоваяОшибка.СертификатОтозван = ОшибкаСертификатОтозван(Категория); + КонецЕсли; + НоваяОшибка.ТекстОшибки = ИзвестнаяОшибка.ErrorText; НоваяОшибка.СпособУстранения = ИзвестнаяОшибка.RepairMethods; КонецЦикла; @@ -6267,15 +6645,23 @@ КонецФункции -// Только для внутреннего использования. -Функция ДействияДляУстраненияОшибки(ТекстОшибки, ОшибкаНаСервере = Ложь) Экспорт +Функция ОшибкаТребуетПерепроверки(Категория) - ОшибкаПоКлассификатору = ОшибкаПоКлассификатору(ТекстОшибки, ОшибкаНаСервере); - Если Не ЗначениеЗаполнено(ОшибкаПоКлассификатору) Тогда - Возврат Неопределено; + Если Категория = "untrustedroot" Или Категория = "no_revocation_check" Или Категория = "chaining" Тогда + Возврат Истина; КонецЕсли; - Возврат ОшибкаПоКлассификатору.ДействияДляУстранения; + Возврат Ложь; + +КонецФункции + +Функция ОшибкаСертификатОтозван(Категория) + + Если Категория = "cert_revoked" Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; КонецФункции @@ -7034,7 +7420,7 @@ ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".crl"); ДанныеФайла.Записать(ИмяВременногоФайла); Попытка - ОбъектКомпоненты.ImportCRu(ИмяВременногоФайла, "CA"); + ОбъектКомпоненты.ИмпортироватьСписокОтзываСертификатов(ИмяВременногоФайла, "CA"); РезультатУстановки = Истина; Исключение ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl index 74873a519..bf2e3caad 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl @@ -195,9 +195,9 @@ КонецФункции // Только для внутреннего использования. -Функция ПроверитьПодпись(АдресИсходныхДанных, АдресПодписи, ОписаниеОшибки) Экспорт +Функция ПроверитьПодпись(АдресИсходныхДанных, АдресПодписи, ОписаниеОшибки, НаДату, РезультатПроверки = Неопределено) Экспорт - Возврат ЭлектроннаяПодпись.ПроверитьПодпись(Неопределено, АдресИсходныхДанных, АдресПодписи, ОписаниеОшибки); + Возврат ЭлектроннаяПодпись.ПроверитьПодпись(Неопределено, АдресИсходныхДанных, АдресПодписи, ОписаниеОшибки, НаДату, РезультатПроверки); КонецФункции @@ -208,6 +208,16 @@ КонецФункции +// Только для внутреннего использования. +Функция СвойстваПодписи(АдресПодписей, ПрочитатьСертификаты, ИспользоватьМенеджерКриптографии = Истина) Экспорт + + Подписи = ПолучитьИзВременногоХранилища(АдресПодписей); + Результат = ЭлектроннаяПодписьСлужебный.СвойстваПодписи( + Подписи, ПрочитатьСертификаты, ИспользоватьМенеджерКриптографии); + Возврат ПоместитьВоВременноеХранилище(Результат); + +КонецФункции + // Только для внутреннего использования. Функция СсылкаНаСертификат(Отпечаток, АдресСертификата) Экспорт @@ -423,30 +433,26 @@ СвойстваСертификата.Вставить("ДвоичныеДанные", СертификатКриптографии.Выгрузить()); Если ЭлектроннаяПодпись.ДоступнаУсовершенствованнаяПодпись() Тогда - Попытка - КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДвоичныеДанныеРезультата); - ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(КонтейнерПодписи, - ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса()); - Исключение + СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиЧтениеМенеджеромКриптографии( + ДвоичныеДанныеРезультата, МенеджерКриптографии, Ложь); + + Если СвойстваПодписи.Успех = Ложь Тогда + ДанныеПодписи = Base64Строка(ДвоичныеДанныеРезультата); ПредставлениеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru='При чтении данных подписи после подписания: %1 - |Результат подписи: %2'"), ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), ДанныеПодписи); + НСтр("ru='%1. + |Результат подписи: %2'"), СвойстваПодписи.ТекстОшибки, ДанныеПодписи); ОшибкаНаСервере.Вставить("ОписаниеОшибки", ПредставлениеОшибки); ОшибкаНаСервере.Вставить("Инструкция", Истина); Возврат Ложь; - КонецПопытки; + + КонецЕсли; Иначе - ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыПодписиКриптографии(); - СвойстваПодписиИзДвоичныхДанных = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных( - ДвоичныеДанныеРезультата, ЭлектроннаяПодписьСлужебный.ДобавкаВремени()); - ПараметрыПодписиКриптографии.НеподтвержденнаяДатаПодписи = СвойстваПодписиИзДвоичныхДанных.ДатаПодписания; - ПараметрыПодписиКриптографии.ДатаПодписиИзМетки = СвойстваПодписиИзДвоичныхДанных.ДатаШтампаВремени; - ПараметрыПодписиКриптографии.ТипПодписи = СвойстваПодписиИзДвоичныхДанных.ТипПодписи; + СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиИзДвоичныхДанных(ДвоичныеДанныеРезультата, Ложь); КонецЕсли; СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписи(ДвоичныеДанныеРезультата, - СвойстваСертификата, Параметры.Комментарий, Пользователи.АвторизованныйПользователь(),,ПараметрыПодписиКриптографии); + СвойстваСертификата, Параметры.Комментарий, Пользователи.АвторизованныйПользователь(),,СвойстваПодписи); СвойстваПодписи.ДатаПодписи = ?(ЗначениеЗаполнено(СвойстваПодписи.НеподтвержденнаяДатаПодписи), СвойстваПодписи.НеподтвержденнаяДатаПодписи, ТекущаяДатаСеанса()); @@ -456,6 +462,8 @@ СвойстваПодписи.ПодписьВерна = Параметры.СертификатВерен; КонецЕсли; + СвойстваПодписи.ТребуетсяПроверка = Параметры.ТребуетсяПроверка; + АдресРезультата = ПоместитьВоВременноеХранилище(СвойстваПодписи, Параметры.ИдентификаторФормы); Если Параметры.ЭлементДанныхДляСервера.Свойство("Объект") Тогда @@ -755,6 +763,17 @@ КонецФункции +// Только для внутреннего использования. +// +// Параметры: +// Отпечаток - Строка +// +Функция ЗаписатьОтметкуОбОтзывеСертификата(Отпечаток) Экспорт + + Возврат ЭлектроннаяПодписьСлужебный.ЗаписатьОтметкуОбОтзывеСертификата(Отпечаток); + +КонецФункции + Функция НастроенСервисОблачнойПодписи() Экспорт Результат = Ложь; @@ -801,7 +820,7 @@ // Производит поиск физических лиц по наименованию // // Параметры: -// КомуВыдан - Массив из строк +// КомуВыдан - Массив из Строка // - Строка // // Возвращаемое значение: @@ -830,19 +849,16 @@ #Область ДиагностикаЭлектроннойПодписи -Функция ДействияДляУстраненияОшибки(ТекстОшибки) Экспорт +Функция ОшибкаПоКлассификатору(ТекстОшибки) Экспорт - Возврат ЭлектроннаяПодписьСлужебный.ДействияДляУстраненияОшибки(ТекстОшибки); + Возврат ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ТекстОшибки); КонецФункции Функция ПрочитатьОтветКомпоненты(Текст) Экспорт Попытка - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(Текст); - Результат = ПрочитатьJSON(ЧтениеJSON, Истина); - ЧтениеJSON.Закрыть(); + Результат = ОбщегоНазначения.JSONВЗначение(Текст); Исключение ИнформацияОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); @@ -1171,7 +1187,7 @@ // ** КонтрольнаяСумма - Строка // ** СерийныйНомер - Строка // ** ИмяФайлаДистрибутива - Строка -// ** КомандаЗапуска - см.ФайловаяСистемаКлиент.ЗапуститьПрограмму.КомандаЗапуска +// ** КомандаЗапуска - см. ФайловаяСистемаКлиент.ЗапуститьПрограмму.КомандаЗапуска // ** Дистрибутив - Массив из ОписаниеПередаваемогоФайла // * Ошибка - Строка // diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl index c50f7804a..d10a70eaf 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl @@ -61,7 +61,7 @@ Если ПроверятьНаСервере = Неопределено Тогда ПроверятьНаСервере = ЭлектроннаяПодписьКлиент.ПроверятьЭлектронныеПодписиНаСервере() - Или ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере(); + Или ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере(); КонецЕсли; Если ПроверятьНаСервере Тогда @@ -190,10 +190,10 @@ // ** Значение - имя хранилища // ** Представление - представление в форме установки // * СвойстваКонтейнера - Структура: -// ** Имя - строка - Имя контейнера -// ** ТипПрограммы - число - тип программы криптопровайдера -// ** ИмяПрограммы - строка - имя программы криптопровайдера -// ** ПутьКПрограмме - строка - имя программы криптопровайдера +// ** Имя - Строка - имя контейнера +// ** ТипПрограммы - Число - тип программы криптопровайдера +// ** ИмяПрограммы - Строка - имя программы криптопровайдера +// ** ПутьКПрограмме - Строка - имя программы криптопровайдера // * ТекстПредупреждения - Строка - для отображения в форме установки // * Форма - ФормаКлиентскогоПриложения - владелец формы установки // @@ -803,7 +803,7 @@ КонецПроцедуры -// Сохраняет сертификат в файл на диск. +// Сохраняет сертификат в файл. // // Параметры: // Оповещение - ОписаниеОповещения - вызывается после сохранения. @@ -922,7 +922,7 @@ КонецПроцедуры -// Сохраняет подпись на диск +// Сохраняет подпись на компьютер. Процедура СохранитьПодпись(АдресПодписи) Экспорт Оповещение = Новый ОписаниеОповещения("СохранитьПодписьПослеПолученияФайла", ЭтотОбъект, Неопределено); @@ -964,12 +964,14 @@ // Структура - параметры оповещения при записи сертификата и изменении статуса заявления: // * ЭтоНовый - Булево - добавление сертификата в справочник. // * Установлен - Булево - сертификат установлен в личное хранилище. +// * Отозван - Булево - сертификат помечен как отозванный. // Функция ПараметрыОповещенияПриЗаписиСертификата() Экспорт ПараметрыОповещенияПриЗаписиСертификата = Новый Структура; ПараметрыОповещенияПриЗаписиСертификата.Вставить("ЭтоНовый", Ложь); ПараметрыОповещенияПриЗаписиСертификата.Вставить("Установлен", Ложь); + ПараметрыОповещенияПриЗаписиСертификата.Вставить("Отозван", Ложь); Возврат ПараметрыОповещенияПриЗаписиСертификата; КонецФункции @@ -1176,39 +1178,27 @@ КонецФункции -// Проверяет действительность подписи и сертификата. -// Сертификат всегда проверяется на сервере, если администратор -// настроил проверку электронных подписей на сервере. +// Продолжение процедуры ЭлектроннаяПодписьКлиент.ПроверитьПодпись // // Параметры: -// Оповещение - ОписаниеОповещения - оповещение о результате выполнения следующих типов: -// = Булево - Истина, если проверка выполнена успешно. -// = Строка - описание ошибки проверки подписи. -// = Неопределено - не удалось получить менеджер криптографии (когда не указан). +// Оповещение - см. ЭлектроннаяПодписьКлиент.ПроверитьПодпись.Оповещение +// ИсходныеДанные - см. ЭлектроннаяПодписьКлиент.ПроверитьПодпись.ИсходныеДанные +// Подпись - см. ЭлектроннаяПодписьКлиент.ПроверитьПодпись.Подпись +// МенеджерКриптографии - см. ЭлектроннаяПодписьКлиент.ПроверитьПодпись.МенеджерКриптографии +// НаДату - см. ЭлектроннаяПодписьКлиент.ПроверитьПодпись.НаДату +// ПараметрыПроверки - см. ЭлектроннаяПодписьКлиент.ПроверитьПодпись.ПараметрыПроверки // -// ИсходныеДанные - ДвоичныеДанные - двоичные данные, которые были подписаны. -// Математическая проверка выполняется на стороне клиента, даже когда -// администратор настроил проверку электронных подписей на сервере, -// если указан менеджер криптографии или его удалось получить без ошибки. -// Это повышает производительность, а также безопасность когда проверяется подпись -// в расшифрованном файле (он не будет передан на сервер). -// - Строка - адрес временного хранилища, содержащего исходные двоичные данные. -// -// Подпись - ДвоичныеДанные - двоичные данные электронной подписи. -// - Строка - адрес временного хранилища, содержащего двоичные данные. -// -// МенеджерКриптографии - Неопределено - получить менеджер криптографии по-умолчанию -// (менеджер первой программы в списке, как настроил администратор). -// - МенеджерКриптографии - использовать указанный менеджер криптографии. -// -// НаДату - Дата - проверить сертификат на указанную дату, -// если дату не удалось извлечь из подписи автоматически. -// Если параметр не заполнен, тогда проверять на текущую дату, -// если дату не удалось извлечь из подписи автоматически. -// -// ПоказатьОшибку - Булево - показать ошибку создания менеджера криптографии (когда не указан). -// -Процедура ПроверитьПодпись(Оповещение, ИсходныеДанные, Подпись, МенеджерКриптографии = Неопределено, НаДату = Неопределено, ПоказатьОшибку = Истина) Экспорт +Процедура ПроверитьПодпись(Оповещение, ИсходныеДанные, Подпись, МенеджерКриптографии = Неопределено, НаДату = Неопределено, ПараметрыПроверки = Неопределено) Экспорт + + ПараметрыДляПроверки = ЭлектроннаяПодписьКлиент.ПараметрыПроверкиПодписи(); + + Если ПараметрыПроверки = Неопределено Тогда + ПараметрыДляПроверки.ПоказатьОшибкуСозданияМенеджераКриптографии = Истина; + ИначеЕсли ТипЗнч(ПараметрыПроверки) = Тип("Булево") Тогда + ПараметрыДляПроверки.ПоказатьОшибкуСозданияМенеджераКриптографии = ПараметрыПроверки; + ИначеЕсли ТипЗнч(ПараметрыПроверки) = Тип("Структура") Тогда + ЗаполнитьЗначенияСвойств(ПараметрыДляПроверки, ПараметрыПроверки); + КонецЕсли; Контекст = Новый Структура; Контекст.Вставить("Оповещение", Оповещение); @@ -1218,6 +1208,12 @@ Контекст.Вставить("НаДату", НаДату); Контекст.Вставить("ПроверятьНаСервере", ЭлектроннаяПодписьКлиент.ПроверятьЭлектронныеПодписиНаСервере()); + + Если ПараметрыДляПроверки.РезультатВВидеСтруктуры Тогда + Контекст.Вставить("РезультатПроверки", ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи()); + Иначе + Контекст.Вставить("РезультатПроверки", Неопределено); + КонецЕсли; Если ТипЗнч(Контекст.Подпись) = Тип("Строка") И ЭтоАдресВременногоХранилища(Контекст.Подпись) Тогда @@ -1247,11 +1243,13 @@ ДанныеСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатИзКонвертаSOAP( Контекст.ИсходныеДанные.КонвертXML, Ложь); ИначеЕсли ЗначениеЗаполнено(СвойстваКонвертаXML.ТекстОшибки) Тогда - ВыполнитьОбработкуОповещения(Контекст.Оповещение, СвойстваКонвертаXML.ТекстОшибки); + ВыполнитьОбработкуОповещения(Контекст.Оповещение, + РезультатПроверкиПодписи(СвойстваКонвертаXML.ТекстОшибки, Контекст.РезультатПроверки)); Возврат; Иначе ДанныеСертификата = Base64Значение(СвойстваКонвертаXML.Сертификат.ЗначениеСертификата); КонецЕсли; + Контекст.Вставить("АлгоритмПодписи", ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата)); @@ -1265,7 +1263,7 @@ Если МенеджерКриптографии = Неопределено Тогда ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии(); - ПараметрыСоздания.ПоказатьОшибку = ПоказатьОшибку + ПараметрыСоздания.ПоказатьОшибку = ПараметрыДляПроверки.ПоказатьОшибкуСозданияМенеджераКриптографии И Не Контекст.ПроверятьНаСервере И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса() И Не ПроверятьСертификатыОблачнойПодписью(); @@ -1306,7 +1304,7 @@ ИначеЕсли ПроверятьСертификатыОблачнойПодписью() Тогда ПроверитьПодписьОблачнаяПодпись(Контекст); Иначе - ВыполнитьОбработкуОповещения(Контекст.Оповещение, Неопределено); + ПроверитьПодписьДобавитьСвойстваПодписиВРезультат(Контекст.Подпись, Неопределено, Контекст); КонецЕсли; Возврат; @@ -1355,18 +1353,49 @@ ОписаниеОшибки = ""; Результат = ЭлектроннаяПодписьСлужебныйВызовСервера.ПроверитьПодпись( - АдресИсходныхДанных, Контекст.АдресПодписи, ОписаниеОшибки); + АдресИсходныхДанных, Контекст.АдресПодписи, ОписаниеОшибки, Контекст.НаДату, Контекст.РезультатПроверки); Если Результат <> Истина Тогда Результат = ОписаниеОшибки; КонецЕсли; - - ВыполнитьОбработкуОповещения(Контекст.Оповещение, Результат); + + ВыполнитьОбработкуОповещения(Контекст.Оповещение, + РезультатПроверкиПодписи(Результат, Контекст.РезультатПроверки)); КонецЕсли; КонецПроцедуры +Асинх Процедура ПроверитьПодписьДобавитьСвойстваПодписиВРезультат(Подпись, Результат, Контекст) + + ТребуетсяПроверка = Неопределено; + + Если ТипЗнч(Контекст.РезультатПроверки) = Тип("Структура") Тогда + + Если Результат = Неопределено Тогда + Контекст.РезультатПроверки.ТребуетсяПроверка = Истина; + ИначеЕсли ТипЗнч(Результат) = Тип("Строка") Тогда + ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ОшибкаПоКлассификатору(Результат); + Если ОшибкаПоКлассификатору <> Неопределено Тогда + ТребуетсяПроверка = ОшибкаПоКлассификатору.ТребуетПроверки; + КонецЕсли; + КонецЕсли; + + Если ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись И ТипЗнч( + Контекст.МенеджерКриптографии) = Тип("МенеджерКриптографии") Тогда + СвойстваПодписи = Ждать СвойстваПодписиЧтениеМенеджеромКриптографии(Подпись, Контекст.МенеджерКриптографии, Истина); + Иначе + СвойстваПодписи = Ждать СвойстваПодписиИзДвоичныхДанных(Подпись, Истина); + КонецЕсли; + + ЗаполнитьЗначенияСвойств(Контекст.РезультатПроверки, СвойстваПодписи); + КонецЕсли; + + ВыполнитьОбработкуОповещения(Контекст.Оповещение, + РезультатПроверкиПодписи(Результат, Контекст.РезультатПроверки, ТребуетсяПроверка)); + +КонецПроцедуры + // Продолжение процедуры ПроверитьПодпись. Процедура ПроверитьПодписьНаКлиенте(Контекст) @@ -1444,7 +1473,12 @@ МенеджерКриптографии = Неопределено; КонецЕсли; - ПроверитьСертификат(Контекст.Оповещение, Данные.Сертификат, МенеджерКриптографии, Данные.ДатаПодписания); + ДополнительныеПараметры = ДополнительныеПараметрыПроверкиСертификата(); + ДополнительныеПараметры.ДляПроверкиПодписи = Истина; + + Оповещение = Новый ОписаниеОповещения("ПроверитьПодписьПослеПроверкиСертификатаПодписи", ЭтотОбъект, Контекст); + + ПроверитьСертификат(Оповещение, Данные.Сертификат, МенеджерКриптографии, Данные.ДатаПодписания, ДополнительныеПараметры); КонецПроцедуры @@ -1452,104 +1486,96 @@ Процедура ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт СтандартнаяОбработка = Ложь; + ТекстОшибки = ?(ТипЗнч(ИнформацияОбОшибке) = Тип("ИнформацияОбОшибке"), ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке), Строка(ИнформацияОбОшибке)); - ВыполнитьОбработкуОповещения(Контекст.Оповещение, ТекстОшибки); + Если Контекст.Свойство("ДанныеПодписи") Тогда + Подпись = Контекст.ДанныеПодписи; + Иначе + Подпись = Контекст.Подпись; + КонецЕсли; + + ПроверитьПодписьДобавитьСвойстваПодписиВРезультат(Подпись, ТекстОшибки, Контекст) КонецПроцедуры // Продолжение процедуры ПроверитьПодпись. -Процедура ПроверитьПодписьНаКлиентеПослеПроверкиПодписи(Сертификат, Контекст) Экспорт +Асинх Процедура ПроверитьПодписьНаКлиентеПослеПроверкиПодписи(Сертификат, Контекст) Экспорт - Если Сертификат = Неопределено Тогда - ВыполнитьОбработкуОповещения(Контекст.Оповещение, - НСтр("ru = 'Сертификат не существует в данных подписи.'")); - Возврат; + Если ТипЗнч(Контекст.МенеджерКриптографии) = Тип("МенеджерКриптографии") Тогда + + Если ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда + СвойстваПодписи = Ждать СвойстваПодписиЧтениеМенеджеромКриптографии(Контекст.ДанныеПодписи, Контекст.МенеджерКриптографии, Ложь); + Иначе + СвойстваПодписи = Ждать СвойстваПодписиИзДвоичныхДанных(Контекст.ДанныеПодписи, Ложь); + СвойстваСертификата = ЭлектроннаяПодписьКлиент.СвойстваСертификата(Сертификат); + СвойстваПодписи.Отпечаток = СвойстваСертификата.Отпечаток; + СвойстваПодписи.КомуВыданСертификат = СвойстваСертификата.КомуВыдан; + КонецЕсли; + + Если ТипЗнч(Контекст.РезультатПроверки) = Тип("Структура") Тогда + ЗаполнитьЗначенияСвойств(Контекст.РезультатПроверки, СвойстваПодписи); + Контекст.РезультатПроверки.Сертификат = Ждать Сертификат.ВыгрузитьАсинх(); + КонецЕсли; + + Иначе // после проверки в облачных сервисах. + + СвойстваПодписи = Ждать СвойстваПодписиИзДвоичныхДанных(Контекст.ДанныеПодписи, Истина); + + Если СвойстваПодписи.Сертификат = Неопределено Тогда + ВыполнитьОбработкуОповещения(Контекст.Оповещение, РезультатПроверкиПодписи( + НСтр("ru = 'Сертификат не существует в данных подписи.'"), Контекст.РезультатПроверки)); + Возврат; + КонецЕсли; + КонецЕсли; - МенеджерДляПолученияДатыПодписи = Контекст.МенеджерКриптографии; Если Не Контекст.Свойство("ПроверитьСертификатНаКлиенте") Тогда // Проверка сертификата на сервере и на клиенте. Контекст.Вставить("МенеджерКриптографии", Неопределено); КонецЕсли; - + Контекст.Вставить("Сертификат", Сертификат); - - Если ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись - И ТипЗнч(МенеджерДляПолученияДатыПодписи) = Тип("МенеджерКриптографии") Тогда - Оповещение = Новый ОписаниеОповещения( - "ПроверитьПодписьНаКлиентеПослеПолученияКонтейнераПодписи", ЭтотОбъект, Контекст, - "ПроверитьПодписьНаКлиентеПослеОшибкиПолученияКонтейнераПодписиНаКлиенте", ЭтотОбъект); - МенеджерДляПолученияДатыПодписи.НачатьПолучениеКонтейнераПодписейКриптографии(Оповещение, Контекст.ДанныеПодписи); - Иначе - - СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных( - Контекст.ДанныеПодписи, ДобавкаВремени()); - - Если Не ОбщегоНазначенияКлиент.РазделениеВключено() - И ТипЗнч(МенеджерДляПолученияДатыПодписи) = Тип("МенеджерКриптографии") Тогда - - Если СвойстваПодписи.ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES") - И СвойстваПодписи.ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST") - И СвойстваПодписи.ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") - И СвойстваПодписи.ТипПодписи <> Неопределено Тогда - - ТекстОповещения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1: Для проверки подписей этого типа требуется версия платформы 1С:Предприятие выше 8.3.21.1302.'"), - СвойстваПодписи.ТипПодписи); - ПоказатьОповещениеПользователя(НСтр("ru = 'Для корректной проверки подписей требуется обновление платформы.'"),, - ТекстОповещения,БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное, - "ОбновлениеПлатформыДляПроверкиПодписей"); - КонецЕсли; - - КонецЕсли; - - ДатаПодписания = ?(ЗначениеЗаполнено(СвойстваПодписи.ДатаШтампаВремени), - СвойстваПодписи.ДатаШтампаВремени, СвойстваПодписи.ДатаПодписания); - - ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания(ДатаПодписания, Контекст); - - КонецЕсли; - -КонецПроцедуры - -// Продолжение процедуры ПроверитьПодпись. -Процедура ПроверитьПодписьНаКлиентеПослеПолученияКонтейнераПодписи(КонтейнерПодписи, Контекст) Экспорт - - ДатаСеанса = ОбщегоНазначенияКлиент.ДатаСеанса(); - ДобавкаВремени = ДатаСеанса - ОбщегоНазначенияКлиент.ДатаУниверсальная(); - ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии( - КонтейнерПодписи, ДобавкаВремени, ДатаСеанса); - ДатаПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаДляПроверкиПодписи(ПараметрыПодписи); - ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания(ДатаПодписи, Контекст); - -КонецПроцедуры - -// Продолжение процедуры ПроверитьПодпись. -Процедура ПроверитьПодписьНаКлиентеПослеОшибкиПолученияКонтейнераПодписиНаКлиенте(ИнформацияОбОшибке, СтандартнаяОбработка, - Контекст) Экспорт - - СтандартнаяОбработка = Ложь; - ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - ВыполнитьОбработкуОповещения(Контекст.Оповещение, ТекстОшибки); - -КонецПроцедуры - -// Продолжение процедуры ПроверитьПодпись. -Процедура ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания(ДатаПодписания, Контекст) + ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаДляПроверкиСертификатаПодписи(СвойстваПодписи); Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда ДатаПодписания = Контекст.НаДату; КонецЕсли; + ДополнительныеПараметры = ДополнительныеПараметрыПроверкиСертификата(); ДополнительныеПараметры.ДляПроверкиПодписи = Истина; - Если Контекст.МенеджерКриптографии = "ОблачнаяПодпись" Тогда - ПроверитьСертификат(Контекст.Оповещение, Контекст.Сертификат.Сертификат, Контекст.МенеджерКриптографии, ДатаПодписания, ДополнительныеПараметры); + + Оповещение = Новый ОписаниеОповещения("ПроверитьПодписьПослеПроверкиСертификатаПодписи", ЭтотОбъект, Контекст); + ПроверитьСертификат(Оповещение, Контекст.Сертификат, Контекст.МенеджерКриптографии, ДатаПодписания, ДополнительныеПараметры); + +КонецПроцедуры + +Процедура ПроверитьПодписьПослеПроверкиСертификатаПодписи(РезультатПроверки, Контекст) Экспорт + + Если ТипЗнч(РезультатПроверки) = Тип("Структура") Тогда + + Результат = РезультатПроверки.ОбщееОписаниеОшибки; + Если Контекст.РезультатПроверки <> Неопределено Тогда + Контекст.РезультатПроверки.ТребуетсяПроверка = РезультатПроверки.ТребуетсяПроверка; + КонецЕсли; + + ИначеЕсли РезультатПроверки = Неопределено Тогда + + Результат = РезультатПроверки; + Если Контекст.РезультатПроверки <> Неопределено Тогда + Контекст.РезультатПроверки.ТребуетсяПроверка = Истина; + КонецЕсли; + Иначе - ПроверитьСертификат(Контекст.Оповещение, Контекст.Сертификат, Контекст.МенеджерКриптографии, ДатаПодписания, ДополнительныеПараметры); + + Результат = РезультатПроверки; + КонецЕсли; + ВыполнитьОбработкуОповещения(Контекст.Оповещение, + РезультатПроверкиПодписи(Результат, Контекст.РезультатПроверки)); + КонецПроцедуры // Проверяет действительность сертификата криптографии. @@ -1595,6 +1621,8 @@ Если Контекст.МенеджерКриптографии = Неопределено И ЭлектроннаяПодписьКлиент.ПроверятьЭлектронныеПодписиНаСервере() Тогда + Контекст.ТребуетПроверкиНаСервере = Ложь; + // Проверка на сервере перед проверкой на клиенте. Если ТипЗнч(Сертификат) = Тип("СертификатКриптографии") Тогда @@ -1614,6 +1642,9 @@ // Структура: // * ОписаниеОшибкиНаСервере - Строка // * ОписаниеОшибкиНаКлиенте - Строка +// * ТребуетПроверкиНаКлиенте - Неопределено, Булево +// * ТребуетПроверкиНаСервере - Неопределено, Булево +// * СертификатОтозван - Булево // * ПоказатьОшибку - см. ПроверитьСертификат.ПоказатьОшибку // * НаДату - см. ПроверитьСертификат.НаДату // * МенеджерКриптографии - см. ПроверитьСертификат.МенеджерКриптографии @@ -1627,11 +1658,14 @@ Контекст = Новый Структура; Контекст.Вставить("Оповещение"); Контекст.Вставить("Сертификат"); + Контекст.Вставить("СертификатОтозван", Ложь); Контекст.Вставить("МенеджерКриптографии"); Контекст.Вставить("НаДату"); Контекст.Вставить("ОписаниеОшибкиНаКлиенте"); + Контекст.Вставить("ТребуетПроверкиНаКлиенте"); Контекст.Вставить("ДополнительныеДанныеПроверкиНаКлиенте"); Контекст.Вставить("ОписаниеОшибкиНаСервере"); + Контекст.Вставить("ТребуетПроверкиНаСервере"); Контекст.Вставить("ДополнительныеДанныеПроверкиНаСервере"); Контекст.Вставить("ПоказатьОшибку", Истина); Контекст.Вставить("ОбъединитьОшибкиДанныхСертификата", Истина); @@ -1652,6 +1686,9 @@ // * ОбъединитьОшибкиДанныхСертификата - Булево - объединить ошибки проверки данных сертификата на клиенте и сервере в // строку. // * ПроверитьВСервисеПослеОшибки - Булево - в случае ошибки при проверке данных сертификата на клиенте, проверить в сервисе. +// * ВыполнятьПроверкуУдостоверяющегоЦентра - Булево - проверять юридическую значимость в зависимости от издателя. +// * ДляПроверкиПодписи - Булево - не показывать оповещения для сертификатов, возвращать результат, +// как указано в вызывающей процедуре проверки подписи. // Функция ДополнительныеПараметрыПроверкиСертификата() Экспорт @@ -1709,6 +1746,8 @@ // Продолжение процедуры ПроверитьСертификат. Процедура ПроверитьСертификатНаКлиенте(Контекст) + Контекст.ТребуетПроверкиНаКлиенте = Ложь; + СертификатДляПроверки = Контекст.Сертификат; Если ТипЗнч(СертификатДляПроверки) = Тип("Строка") Тогда @@ -1837,15 +1876,15 @@ Если ТипЗнч(ИнформацияОбОшибке) = Тип("ИнформацияОбОшибке") Тогда ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - + ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ОшибкаПоКлассификатору(ОписаниеОшибки); + // Локализация - Действия = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ДействияДляУстраненияОшибки(ОписаниеОшибки); - Если ЗначениеЗаполнено(Действия) Тогда + Если ОшибкаПоКлассификатору <> Неопределено И ЗначениеЗаполнено(ОшибкаПоКлассификатору.ДействияДляУстранения) Тогда Действие = Неопределено; - Для Каждого ТекущееДействие Из Действия Цикл + Для Каждого ТекущееДействие Из ОшибкаПоКлассификатору.ДействияДляУстранения Цикл Если Контекст.ДействияДляУстраненияОшибок.Получить(ТекущееДействие) = Неопределено Тогда Действие = ТекущееДействие; Прервать; @@ -1879,6 +1918,11 @@ КонецЕсли; // Конец локализация + + Если ОшибкаПоКлассификатору <> Неопределено Тогда + ОбработатьОшибкуПоКлассификатору(ОписаниеОшибки, Контекст.ТребуетПроверкиНаКлиенте, Контекст, ОшибкаПоКлассификатору); + КонецЕсли; + Иначе ОписаниеОшибки = Строка(ИнформацияОбОшибке); КонецЕсли; @@ -2094,6 +2138,7 @@ Если Не Результат.Действителен Тогда Контекст.ОписаниеОшибкиНаСервере = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиСервисаСертификатНедействителен(); + ОбработатьОшибкуПоКлассификатору(Контекст.ОписаниеОшибкиНаСервере, Контекст.ТребуетПроверкиНаСервере, Контекст); ПроверитьСертификатПослеНеуспешнойПроверки(Контекст); Возврат; КонецЕсли; @@ -2124,7 +2169,21 @@ Контекст.ОписаниеОшибкиНаКлиенте, Контекст.ОписаниеОшибкиНаСервере, Неопределено); КонецЕсли; - ВыполнитьОбработкуОповещения(Контекст.Оповещение, ОбщееОписаниеОшибки); + Если Контекст.ДляПроверкиПодписи Тогда + + Структура = Новый Структура; + Структура.Вставить("ОбщееОписаниеОшибки", ОбщееОписаниеОшибки); + Структура.Вставить("СертификатОтозван", Контекст.СертификатОтозван); + Структура.Вставить("ТребуетсяПроверка", ОбщееОписаниеОшибки = Неопределено + Или (Контекст.ТребуетПроверкиНаСервере = Неопределено Или Контекст.ТребуетПроверкиНаСервере) + И (Контекст.ТребуетПроверкиНаКлиенте = Неопределено Или Контекст.ТребуетПроверкиНаКлиенте)); + + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Структура); + + Иначе + ВыполнитьОбработкуОповещения(Контекст.Оповещение, ОбщееОписаниеОшибки); + КонецЕсли; + Иначе Структура = Новый Структура; @@ -2176,7 +2235,6 @@ КонецФункции - // Создает и возвращает менеджер криптографии (на клиенте) для указанной программы. // // Параметры: @@ -2370,7 +2428,7 @@ ИначеЕсли Операция = "ПроверкаПодписи" Тогда ЗаголовокОшибки = НСтр("ru = 'Не удалось проверить подпись по причине:'"); - + ИначеЕсли Операция = "Шифрование" Тогда ЗаголовокОшибки = НСтр("ru = 'Не удалось зашифровать данные по причине:'"); @@ -2382,6 +2440,9 @@ ИначеЕсли Операция = "ПолучениеСертификатов" Тогда ЗаголовокОшибки = НСтр("ru = 'Не удалось получить сертификаты по причине:'"); + + ИначеЕсли Операция = "ЧтениеПодписи" Тогда + ЗаголовокОшибки = НСтр("ru = 'Не удалось прочитать все свойства подписи по причине:'"); ИначеЕсли Операция = "ПродлениеСрокаДействияПодписи" Тогда ЗаголовокОшибки = НСтр("ru = 'Не удалось продлить действие подписи по причине:'"); @@ -2646,7 +2707,7 @@ ОписаниеОшибок, Контекст.Программа, Контекст.АлгоритмПодписи, - СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭтоПолноправныйПользователь, + ПользователиКлиент.ЭтоПолноправныйПользователь(), Ложь); Если Контекст.ПоказатьОшибку = Неопределено Тогда @@ -3381,7 +3442,7 @@ Оповещение = Новый ОписаниеОповещения("ДобавитьСертификатТолькоДляШифрованияИзКаталогаПослеПодключенияРасширения", ЭтотОбъект, ПараметрыСоздания); - ТекстПредложения = НСтр("ru = 'Для поиска файлов в каталоге требуется расширение для работы с файлами'"); + ТекстПредложения = НСтр("ru = 'Для загрузки сертификатов из каталога требуется расширение для работы с файлами'"); ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Оповещение, ТекстПредложения, Ложь); КонецПроцедуры @@ -3503,6 +3564,13 @@ КонецПроцедуры +// Только для внутреннего использования. +Функция ПарольСертификатаУстановлен(СертификатСсылка) Экспорт + + Возврат ФормаПередачаПараметров().ПарольСертификатаУстановлен(СертификатСсылка); + +КонецФункции + // Только для внутреннего использования. Процедура ОткрытьНовуюФорму(ВидФормы, КлиентскиеПараметры, СерверныеПараметры, ОбработкаЗавершения) Экспорт @@ -4086,7 +4154,7 @@ Контекст.ПолучаемыеФайлы.Добавить(Описание); СохранитьДанныеВместеСПодписьюЦиклПослеСохраненияПодписи(Неопределено, Контекст); Иначе - // Сохранение Файла из базы данных на диск. + // Сохранение файла из программы на компьютер. ФайловаяСистемаКлиент.СохранитьФайл( Новый ОписаниеОповещения("СохранитьДанныеВместеСПодписьюЦиклПослеСохраненияПодписи", ЭтотОбъект, Контекст), Контекст.ОписаниеПодписи.АдресПодписи, СоставИмениФайлаПодписи.Имя); @@ -4173,7 +4241,7 @@ Контекст.ПолучаемыеФайлы.Добавить(Описание); СохранитьДанныеВместеСПодписьюЦиклНачало(Контекст); Иначе - // Сохранение Файла из базы данных на диск. + // Сохранение файла из программы на компьютер. ФайловаяСистемаКлиент.СохранитьФайл( Новый ОписаниеОповещения("СохранитьДанныеСертификатаВместеСПодписьюЦиклПослеСохраненияСертификата", ЭтотОбъект, Контекст), Контекст.ОписаниеПодписи.АдресСертификата, СоставИмениФайлаСертификата.Имя); @@ -4198,7 +4266,7 @@ Возврат; КонецЕсли; - // Сохранение Файла из базы данных на диск. + // Сохранение файла из программы на компьютер. Если Контекст.ПолучаемыеФайлы.Количество() > 0 Тогда Контекст.Вставить("ПолучаемыеФайлы", Контекст.ПолучаемыеФайлы); @@ -5007,6 +5075,8 @@ СвойстваПодписи.ПодписьВерна = Контекст.СертификатВерен; КонецЕсли; + СвойстваПодписи.ТребуетсяПроверка = Контекст.ТребуетсяПроверка; + ВыполнитьНаСторонеЦиклПослеПодписания(СвойстваПодписи, Контекст); КонецПроцедуры @@ -5212,6 +5282,7 @@ ПараметрыДляСервера.Вставить("Операция", Контекст.Операция); ПараметрыДляСервера.Вставить("ИдентификаторФормы", Контекст.ИдентификаторФормы); ПараметрыДляСервера.Вставить("СертификатВерен", Контекст.СертификатВерен); + ПараметрыДляСервера.Вставить("ТребуетсяПроверка", Контекст.ТребуетсяПроверка); ПараметрыДляСервера.Вставить("СертификатПрограмма", Контекст.Форма.СертификатПрограмма); ПараметрыДляСервера.Вставить("СертификатОтпечаток", Контекст.Форма.СертификатОтпечаток); ПараметрыДляСервера.Вставить("ЭлементДанныхДляСервера", ЭлементДанныхДляСервера); @@ -5339,30 +5410,30 @@ Контекст.ОперацияНачалась = Истина; - Если Контекст.Операция = "Подписание" Тогда + Если Контекст.Операция = "Подписание" Тогда Если ТипЗнч(ДвоичныеДанные) = Тип("Массив") Тогда ВыполнитьНаСторонеЦиклПослеПодписанияПакета(ДвоичныеДанные, Контекст); Иначе - Если Контекст.Свойство("МенеджерКриптографии") И ТипЗнч(Контекст.МенеджерКриптографии) = Тип("МенеджерКриптографии") - И ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда - - ДополнительныеПараметры = Новый Структура; - ДополнительныеПараметры.Вставить("ДвоичныеДанныеПодписи", ДвоичныеДанные); - ДополнительныеПараметры.Вставить("Контекст", Контекст); - Оповещение = Новый ОписаниеОповещения("ВыполнитьПослеПолученияКонтейнераПодписи", ЭтотОбъект, ДополнительныеПараметры, - "ВыполнитьНаСторонеЦиклПослеОшибкиПолученияКонтейнераПодписиНаКлиенте", ЭтотОбъект); - Контекст.МенеджерКриптографии.НачатьПолучениеКонтейнераПодписейКриптографии(Оповещение, ДвоичныеДанные); - Возврат; + Если Контекст.Свойство("МенеджерКриптографии") И ТипЗнч(Контекст.МенеджерКриптографии) = Тип( + "МенеджерКриптографии") И ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда + + СвойстваПодписи = Ждать СвойстваПодписиЧтениеМенеджеромКриптографии(ДвоичныеДанные, Контекст.МенеджерКриптографии, Ложь); Иначе - ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыПодписиКриптографии(); - СвойстваПодписиИзДвоичныхДанных = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных( - ДвоичныеДанные, ДобавкаВремени()); - ПараметрыПодписиКриптографии.НеподтвержденнаяДатаПодписи = СвойстваПодписиИзДвоичныхДанных.ДатаПодписания; - ПараметрыПодписиКриптографии.ДатаПодписиИзМетки = СвойстваПодписиИзДвоичныхДанных.ДатаШтампаВремени; - ПараметрыПодписиКриптографии.ТипПодписи = СвойстваПодписиИзДвоичныхДанных.ТипПодписи; + СвойстваПодписи = Ждать СвойстваПодписиИзДвоичныхДанных(ДвоичныеДанные, Ложь); КонецЕсли; - СвойстваПодписи = ПолучитьСвойстваПодписиПослеПодписания(ДвоичныеДанные, Контекст, ПараметрыПодписиКриптографии); + Если СвойстваПодписи.Успех = Ложь Тогда + ДанныеПодписи = Base64Строка(ДвоичныеДанные); + ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='%1. + |Результат подписи: %2'"), СвойстваПодписи.ТекстОшибки, ДанныеПодписи); + ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", ОписаниеОшибки); + ОшибкаНаКлиенте.Вставить("Инструкция", Истина); + ВыполнитьНаСторонеПослеЦикла(ОшибкаНаКлиенте, Контекст); + Возврат; + КонецЕсли; + + СвойстваПодписи = ПолучитьСвойстваПодписиПослеПодписания(ДвоичныеДанные, Контекст, СвойстваПодписи); ВыполнитьНаСторонеЦиклПослеПодписания(СвойстваПодписи, Контекст); КонецЕсли; ИначеЕсли Контекст.Операция = "Шифрование" Тогда @@ -5373,37 +5444,6 @@ КонецПроцедуры -Процедура ВыполнитьПослеПолученияКонтейнераПодписи(КонтейнерПодписи, ДополнительныеПараметры) Экспорт - - ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии( - КонтейнерПодписи, ДобавкаВремени(), ОбщегоНазначенияКлиент.ДатаСеанса()); - СвойстваПодписи = ПолучитьСвойстваПодписиПослеПодписания(ДополнительныеПараметры.ДвоичныеДанныеПодписи, - ДополнительныеПараметры.Контекст, ПараметрыПодписи); - - ВыполнитьНаСторонеЦиклПослеПодписания(СвойстваПодписи, ДополнительныеПараметры.Контекст); - -КонецПроцедуры - -// Продолжение процедуры ВыполнитьНаСтороне. -Процедура ВыполнитьНаСторонеЦиклПослеОшибкиПолученияКонтейнераПодписиНаКлиенте(ИнформацияОбОшибке, СтандартнаяОбработка, - ДополнительныеПараметры) Экспорт - - СтандартнаяОбработка = Ложь; - - Контекст = ДополнительныеПараметры.Контекст; - ДанныеПодписи = Base64Строка(ДополнительныеПараметры.ДвоичныеДанныеПодписи); - - ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru='При чтении данных подписи после подписания: %1 - |Результат подписи: %2'"), ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), ДанныеПодписи); - - ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", ОписаниеОшибки); - ОшибкаНаКлиенте.Вставить("Инструкция", Истина); - - ВыполнитьНаСторонеПослеЦикла(ОшибкаНаКлиенте, Контекст); - -КонецПроцедуры - Функция ПолучитьСвойстваПодписиПослеПодписания(ДвоичныеДанные, Контекст, ПараметрыПодписи = Неопределено) СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписи(ДвоичныеДанные, @@ -5419,6 +5459,8 @@ СвойстваПодписи.ПодписьВерна = Контекст.СертификатВерен; КонецЕсли; + СвойстваПодписи.ТребуетсяПроверка = Контекст.ТребуетсяПроверка; + Возврат СвойстваПодписи; КонецФункции @@ -5607,6 +5649,8 @@ // * ЗначениеПароля - Строка // * СертификатВерен - Неопределено // - Булево +// * ТребуетсяПроверка - Неопределено +// - Булево // * СертификатАдрес - Строка // * ТекущийСписокПредставлений - СписокЗначений // - Массив @@ -5621,7 +5665,7 @@ Функция ВыполнитьНаСторонеНовыйКонтекст() Возврат Новый Структура("ОписаниеДанных, Форма, ИдентификаторФормы, ЗначениеПароля, - |СертификатВерен, СертификатАдрес, ТекущийСписокПредставлений, ПолноеПредставлениеДанных"); + |СертификатВерен, ТребуетсяПроверка, СертификатАдрес, ТекущийСписокПредставлений, ПолноеПредставлениеДанных"); КонецФункции @@ -5877,7 +5921,9 @@ Процедура УсовершенствоватьНаСтороне(Оповещение, СторонаВыполнения, ПараметрыВыполнения) - Контекст = Новый Структура("ОписаниеДанных, ИдентификаторФормы, ПрерыватьОбработкуМассиваПриОшибке"); + Контекст = Новый Структура("ОписаниеДанных, ИдентификаторФормы"); + Контекст.Вставить("ПрерыватьОбработкуМассиваПриОшибке", Истина); + Контекст.Вставить("ИгнорироватьСрокДействияСертификата", Ложь); ЗаполнитьЗначенияСвойств(Контекст, ПараметрыВыполнения); Если ПараметрыВыполнения.Свойство("ЭтоМодельСервисаСДоступнымУсовершенствованием") Тогда @@ -6012,6 +6058,7 @@ ПараметрыДляСервера.Вставить("ТипПодписи", Контекст.ОписаниеДанных.ТипПодписи); ПараметрыДляСервера.Вставить("ДобавитьАрхивнуюМеткуВремени", Контекст.ОписаниеДанных.ДобавитьАрхивнуюМеткуВремени); ПараметрыДляСервера.Вставить("ОперацияНачалась", Контекст.ОперацияНачалась); + ПараметрыДляСервера.Вставить("ИгнорироватьСрокДействияСертификата", Контекст.ИгнорироватьСрокДействияСертификата); Если ПараметрыДляСервера.ЭтоМодельСервисаСДоступнымУсовершенствованием Тогда @@ -6121,7 +6168,8 @@ Возврат; КонецЕсли; - Если ЗначениеЗаполнено(ПараметрыПодписи.СрокДействияПоследнейМеткиВремени) + Если Не Контекст.ИгнорироватьСрокДействияСертификата + И ЗначениеЗаполнено(ПараметрыПодписи.СрокДействияПоследнейМеткиВремени) И ПараметрыПодписи.СрокДействияПоследнейМеткиВремени < ДатаСеанса Тогда ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -6934,150 +6982,150 @@ КонецПроцедуры -Процедура НачатьПодписаниеXMLDSig(Контекст) - - ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверитьВыбратьАлгоритмПодписи( - Контекст.СертификатКриптографииBase64, Контекст.ДанныеАлгоритмаПодписания); - - Если ЗначениеЗаполнено(ТекстОшибки) Тогда - ЗавершитьОперациюСОшибкой(Контекст, ТекстОшибки); - Возврат; - КонецЕсли; - - Контекст.КонвертXML = СтрЗаменить(Контекст.КонвертXML, - "%BinarySecurityToken%", Контекст.СертификатКриптографииBase64); - - Контекст.КонвертXML = СтрЗаменить(Контекст.КонвертXML, - "%SignatureMethod%", Контекст.ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмПодписи); - - Контекст.КонвертXML = СтрЗаменить(Контекст.КонвертXML, - "%DigestMethod%", Контекст.ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмХеширования); - - Оповещение = Новый ОписаниеОповещения( - "Подписание_ПослеКанонизации_ПодписываемыйТег", ЭтотОбъект, Контекст); - - Если Контекст.СвойстваКонвертаXML = Неопределено Тогда - C14N(Оповещение, - Контекст.ОбъектКомпоненты, - Контекст.КонвертXML, - Контекст.ДанныеАлгоритмаПодписания.XPathПодписываемыйТег); - Иначе - КанонизироватьТекстXML(Оповещение, - Контекст.ОбъектКомпоненты, - Контекст.СвойстваКонвертаXML.ОбластьBody, - Контекст.СвойстваКонвертаXML.ХешируемаяОбласть.АлгоритмыТрансформации); - КонецЕсли; - -КонецПроцедуры - -Процедура Подписание_ПослеКанонизации_ПодписываемыйТег(Результат, Контекст) Экспорт - - Если ЗначениеЗаполнено(Результат.ТекстОшибки) Тогда - ЗавершитьОперациюСОшибкой(Контекст, Результат.ТекстОшибки); - Возврат; - КонецЕсли; - - Оповещение = Новый ОписаниеОповещения( - "Подписание_ПослеВыполненияHash_ПодписываемыйТег", ЭтотОбъект, Контекст, - "Подписание_ПослеВыполненияHash_ПодписываемыйТег_Ошибка", ЭтотОбъект); +Асинх Процедура НачатьПодписаниеXMLDSig(Контекст) Попытка - Контекст.ОбъектКомпоненты.НачатьВызовHash(Оповещение, - Результат.КанонизированныйТекстXML, - Контекст.ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования, - Контекст.ТипКриптопровайдера); + КонвертXML = Ждать ПодписатьXMLDSig(Контекст); + ВыполнитьОбработкуОповещения(Контекст.ОповещенияПриЗавершении.Успех, КонвертXML); Исключение - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("Hash", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); + ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗавершитьОперациюСОшибкой(Контекст, ТекстОшибки); КонецПопытки; - + КонецПроцедуры -Процедура Подписание_ПослеВыполненияHash_ПодписываемыйТег_Ошибка(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт +Асинх Функция ПодписатьXMLDSig(Контекст) - СтандартнаяОбработка = Ложь; + Пароль = Контекст.МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу; + ОбъектКомпоненты = Контекст.ОбъектКомпоненты; + КонвертXML = Контекст.КонвертXML; + СвойстваКонвертаXML = Контекст.СвойстваКонвертаXML; - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("Hash", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке))); - -КонецПроцедуры - -Процедура Подписание_ПослеВыполненияHash_ПодписываемыйТег(АтрибутDigestValue, Параметры, Контекст) Экспорт - - Если АтрибутDigestValue = Неопределено Тогда - НачатьПолучениеТекстаОшибки(НачалоОписанияТекстаОшибки("Hash"), Контекст); - Возврат; + Если СвойстваКонвертаXML <> Неопределено + И ЗначениеЗаполнено(СвойстваКонвертаXML.ТекстОшибки) Тогда + ВызватьИсключение СвойстваКонвертаXML.ТекстОшибки; КонецЕсли; - Контекст.КонвертXML = СтрЗаменить(Контекст.КонвертXML, "%DigestValue%", АтрибутDigestValue); + СертификатКриптографииBase64 = Контекст.СертификатКриптографииBase64; - Оповещение = Новый ОписаниеОповещения( - "Подписание_ПослеКанонизации_SignedInfo", ЭтотОбъект, Контекст); + ДанныеАлгоритмаПодписания = Контекст.ДанныеАлгоритмаПодписания; + ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверитьВыбратьАлгоритмПодписи( + СертификатКриптографииBase64, ДанныеАлгоритмаПодписания, Истина, СвойстваКонвертаXML); - СвойстваКонвертаXML = Контекст.СвойстваКонвертаXML; // см. ЭлектроннаяПодписьСлужебный.СвойстваКонвертаXML + КонвертXML = СтрЗаменить(КонвертXML, "%BinarySecurityToken%", СертификатКриптографииBase64); + КонвертXML = СтрЗаменить(КонвертXML, "%SignatureMethod%", ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмПодписи); + КонвертXML = СтрЗаменить(КонвертXML, "%DigestMethod%", ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмХеширования); + + Если СвойстваКонвертаXML <> Неопределено Тогда + Для Индекс = 0 По СвойстваКонвертаXML.ХешируемыеОбласти.ВГраница() Цикл + ХешируемаяОбласть = СвойстваКонвертаXML.ХешируемыеОбласти[Индекс]; + КанонизированныйТекстXMLBody = Ждать КанонизированныйТекстXML(ОбъектКомпоненты, + СвойстваКонвертаXML.ОбластиBody[Индекс], ХешируемаяОбласть.АлгоритмыТрансформации); + АтрибутDigestValue = Ждать РезультатHash(ОбъектКомпоненты, + КанонизированныйТекстXMLBody, + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования, + Контекст.ТипКриптопровайдера); + + КонвертXML = СтрЗаменить(КонвертXML, ХешируемаяОбласть.ЗначениеХеша, АтрибутDigestValue); + КонецЦикла; + Иначе + КанонизированныйТекстXMLBody = Ждать C14NАсинх(ОбъектКомпоненты, + КонвертXML, ДанныеАлгоритмаПодписания.XPathПодписываемыйТег); + + АтрибутDigestValue = Ждать РезультатHash(ОбъектКомпоненты, + КанонизированныйТекстXMLBody, + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования, + Контекст.ТипКриптопровайдера); + + КонвертXML = СтрЗаменить(КонвертXML, "%DigestValue%", АтрибутDigestValue); + КонецЕсли; Если СвойстваКонвертаXML = Неопределено Тогда - C14N(Оповещение, - Контекст.ОбъектКомпоненты, - Контекст.КонвертXML, - Контекст.ДанныеАлгоритмаПодписания.XPathSignedInfo); + КанонизированныйТекстXMLSignedInfo = Ждать C14NАсинх(ОбъектКомпоненты, + КонвертXML, ДанныеАлгоритмаПодписания.XPathSignedInfo); Иначе - ОбластьSignedInfo = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML(Контекст.КонвертXML, + ОбластьSignedInfo = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбластьXML(КонвертXML, СвойстваКонвертаXML.ОбластьSignedInfo.ИмяЭлемента); ОбластьSignedInfo.ПространстваИменДоУзла = СвойстваКонвертаXML.ОбластьSignedInfo.ПространстваИменДоУзла; Если ЗначениеЗаполнено(ОбластьSignedInfo.ТекстОшибки) Тогда - ЗавершитьОперациюСОшибкой(Контекст, ОбластьSignedInfo.ТекстОшибки); + ВызватьИсключение ОбластьSignedInfo.ТекстОшибки; КонецЕсли; - КанонизироватьТекстXML(Оповещение, - Контекст.ОбъектКомпоненты, + КанонизированныйТекстXMLSignedInfo = Ждать КанонизированныйТекстXML(ОбъектКомпоненты, ОбластьSignedInfo, - ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве( - СвойстваКонвертаXML.АлгоритмКанонизации)); + ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СвойстваКонвертаXML.АлгоритмКанонизации)); КонецЕсли; -КонецПроцедуры + АтрибутSignatureValue = Ждать РезультатSign(ОбъектКомпоненты, + КанонизированныйТекстXMLSignedInfo, + Контекст.СертификатКриптографии, + Пароль); + + КонвертXML = СтрЗаменить(КонвертXML, "%SignatureValue%", АтрибутSignatureValue); + + Возврат КонвертXML; + +КонецФункции -Процедура Подписание_ПослеКанонизации_SignedInfo(Результат, Контекст) Экспорт - - Если ЗначениеЗаполнено(Результат.ТекстОшибки) Тогда - ЗавершитьОперациюСОшибкой(Контекст, Результат.ТекстОшибки); - Возврат; - КонецЕсли; - - Оповещение = Новый ОписаниеОповещения( - "Подписание_ПослеВыполненияSign", ЭтотОбъект, Контекст); +Асинх Функция РезультатHash(ОбъектКомпоненты, КанонизированныйТекстXMLBody, OIDАлгоритмаХеширования, ТипКриптопровайдера) Попытка - Контекст.ОбъектКомпоненты.НачатьВызовSign(Оповещение, - Результат.КанонизированныйТекстXML, - Контекст.СертификатКриптографииBase64, - Контекст.МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу); + Результат = Ждать ОбъектКомпоненты.HashАсинх( + КанонизированныйТекстXMLBody, + OIDАлгоритмаХеширования, + ТипКриптопровайдера); + АтрибутDigestValue = Результат.Значение; Исключение - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("Sign", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("Hash", + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение ТекстОшибки; КонецПопытки; -КонецПроцедуры - -Процедура Подписание_ПослеВыполненияSign(АтрибутSignatureValue, Параметры, Контекст) Экспорт - - Если АтрибутSignatureValue = Неопределено Тогда - НачатьПолучениеТекстаОшибки(НачалоОписанияТекстаОшибки("Sign"), Контекст); - Возврат; + Если АтрибутDigestValue = Неопределено Тогда + РезультатОшибка = Ждать ОбъектКомпоненты.GetLastErrorАсинх(); + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("Hash", + РезультатОшибка.Значение); + ВызватьИсключение ТекстОшибки; КонецЕсли; - КонвертXML = СтрЗаменить(Контекст.КонвертXML, "%SignatureValue%", АтрибутSignatureValue); - ВыполнитьОбработкуОповещения(Контекст.ОповещенияПриЗавершении.Успех, КонвертXML); + Возврат АтрибутDigestValue; -КонецПроцедуры +КонецФункции -Процедура НачатьПроверкуПодписиXMLDSig(Контекст) +Асинх Функция РезультатSign(ОбъектКомпоненты, КанонизированныйТекстXMLSignedInfo, + СертификатКриптографии, ПарольДоступаКЗакрытомуКлючу) + + СертификатКриптографииBase64 = Ждать СертификатКриптографии.ВыгрузитьАсинх(); + + СертификатКриптографииBase64 = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатКриптографииBase64( + СертификатКриптографииBase64); + + Попытка + Результат = Ждать ОбъектКомпоненты.SignАсинх( + КанонизированныйТекстXMLSignedInfo, + СертификатКриптографииBase64, + ПарольДоступаКЗакрытомуКлючу); + АтрибутSignatureValue = Результат.Значение; + Исключение + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("Sign", + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение ТекстОшибки; + КонецПопытки; + + Если АтрибутSignatureValue = Неопределено Тогда + РезультатОшибка = Ждать ОбъектКомпоненты.GetLastErrorАсинх(); + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("Sign", + РезультатОшибка.Значение); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + Возврат АтрибутSignatureValue; + +КонецФункции + +Асинх Процедура НачатьПроверкуПодписиXMLDSig(Контекст) ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверитьВыбратьАлгоритмПодписи( Контекст.СертификатКриптографииBase64, Контекст.ДанныеАлгоритмаПодписания, , Контекст.СвойстваКонвертаXML); @@ -7087,159 +7135,131 @@ Возврат; КонецЕсли; - Оповещение = Новый ОписаниеОповещения( - "Проверка_ПослеКанонизации_SignedInfo", ЭтотОбъект, Контекст); - - Если Контекст.СвойстваКонвертаXML = Неопределено Тогда - C14N(Оповещение, - Контекст.ОбъектКомпоненты, - Контекст.КонвертXML, - Контекст.ДанныеАлгоритмаПодписания.XPathSignedInfo); - Иначе - КанонизироватьТекстXML(Оповещение, - Контекст.ОбъектКомпоненты, - Контекст.СвойстваКонвертаXML.ОбластьSignedInfo, - ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве( - Контекст.СвойстваКонвертаXML.АлгоритмКанонизации)); - КонецЕсли; - -КонецПроцедуры - -Процедура Проверка_ПослеКанонизации_SignedInfo(Результат, Контекст) Экспорт - - Если ЗначениеЗаполнено(Результат.ТекстОшибки) Тогда - ЗавершитьОперациюСОшибкой(Контекст, Результат.ТекстОшибки); - Возврат; - КонецЕсли; - - Если Контекст.СвойстваКонвертаXML = Неопределено Тогда - АтрибутSignatureValue = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML( - Контекст.КонвертXML, "SignatureValue"); - Иначе - АтрибутSignatureValue = Контекст.СвойстваКонвертаXML.ЗначениеПодписи; - КонецЕсли; - - Оповещение = Новый ОписаниеОповещения( - "Проверка_ПослеВыполненияVerifySign", ЭтотОбъект, Контекст, - "Проверка_ПослеВыполненияVerifySign_Ошибка", ЭтотОбъект); - Попытка - Контекст.ОбъектКомпоненты.НачатьВызовVerifySign(Оповещение, - Результат.КанонизированныйТекстXML, - АтрибутSignatureValue, - Контекст.СертификатКриптографииBase64, - Контекст.ТипКриптопровайдера); + Результат = Ждать ПроверитьПодписьXMLDSig(Контекст); + ВыполнитьОбработкуОповещения(Контекст.ОповещенияПриЗавершении.Успех, Результат); Исключение - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("VerifySign", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); + ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗавершитьОперациюСОшибкой(Контекст, ТекстОшибки); КонецПопытки; КонецПроцедуры -Процедура Проверка_ПослеВыполненияVerifySign_Ошибка(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт +Асинх Функция ПроверитьПодписьXMLDSig(Контекст) - СтандартнаяОбработка = Ложь; + ПараметрыПроверки = Новый Структура; - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("VerifySign", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке))); + ОбъектКомпоненты = Контекст.ОбъектКомпоненты; + ДанныеАлгоритмаПодписания = Контекст.ДанныеАлгоритмаПодписания; + КонвертXML = Контекст.КонвертXML; + СвойстваКонвертаXML = Контекст.СвойстваКонвертаXML; + + Если СвойстваКонвертаXML = Неопределено Тогда + КанонизированныйТекстXMLSignedInfo = Ждать C14NАсинх(ОбъектКомпоненты, + КонвертXML, ДанныеАлгоритмаПодписания.XPathSignedInfo); + КанонизированныйТекстXMLBody = Ждать C14NАсинх(ОбъектКомпоненты, + КонвертXML, ДанныеАлгоритмаПодписания.XPathПодписываемыйТег); + СертификатКриптографииBase64 = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатИзКонвертаSOAP(КонвертXML); + ЗначениеПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(КонвертXML, "SignatureValue"); + ЗначениеХеша = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(КонвертXML, "DigestValue"); + Иначе + КанонизированныйТекстXMLSignedInfo = Ждать КанонизированныйТекстXML(ОбъектКомпоненты, + СвойстваКонвертаXML.ОбластьSignedInfo, + ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СвойстваКонвертаXML.АлгоритмКанонизации)); + + ЗначениеПодписи = СвойстваКонвертаXML.ЗначениеПодписи; + СертификатКриптографииBase64 = СвойстваКонвертаXML.Сертификат.ЗначениеСертификата; + ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверитьВыбратьАлгоритмПодписи( + СертификатКриптографииBase64, ДанныеАлгоритмаПодписания, Истина, СвойстваКонвертаXML); + КонецЕсли; -КонецПроцедуры + ПодписьВерна = Ждать РезультатVerifySign(ОбъектКомпоненты, + КанонизированныйТекстXMLSignedInfo, + ЗначениеПодписи, + СертификатКриптографииBase64, + Контекст.ТипКриптопровайдера); + + Если СвойстваКонвертаXML <> Неопределено Тогда + + Счетчик = 1; + + Для Каждого ХешируемаяОбласть Из СвойстваКонвертаXML.ХешируемыеОбласти Цикл + КанонизированныйТекстXMLBody = Ждать КанонизированныйТекстXML(ОбъектКомпоненты, + СвойстваКонвертаXML.ОбластиBody[Счетчик-1], ХешируемаяОбласть.АлгоритмыТрансформации); + ЗначениеХеша = ХешируемаяОбласть.ЗначениеХеша; + + АтрибутDigestValue = Ждать РезультатHash(ОбъектКомпоненты, + КанонизированныйТекстXMLBody, + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования, + Контекст.ТипКриптопровайдера); + + ХешСовпадает = (АтрибутDigestValue = ЗначениеХеша); + + Если Не ХешСовпадает Или Не ПодписьВерна Тогда + ВызватьИсключение ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиПроверкиПодписиXML(ПодписьВерна, ХешСовпадает); + КонецЕсли; + Счетчик = Счетчик + 1; + КонецЦикла; + + Возврат Ждать РезультатПроверкиПодписиXML(СертификатКриптографииBase64); + КонецЕсли; + + АтрибутDigestValue = Ждать РезультатHash(ОбъектКомпоненты, + КанонизированныйТекстXMLBody, + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования, + Контекст.ТипКриптопровайдера); + + ХешСовпадает = (АтрибутDigestValue = ЗначениеХеша); + + Если ХешСовпадает И ПодписьВерна Тогда + Возврат Ждать РезультатПроверкиПодписиXML(СертификатКриптографииBase64); + Иначе + ВызватьИсключение ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиПроверкиПодписиXML(ПодписьВерна, ХешСовпадает); + КонецЕсли; -Процедура Проверка_ПослеВыполненияVerifySign(ПодписьВерна, Параметры, Контекст) Экспорт +КонецФункции + +Асинх Функция РезультатПроверкиПодписиXML(СертификатКриптографииBase64) + + ДвоичныеДанные = Base64Значение(СертификатКриптографииBase64); + + СертификатКриптографии = Новый СертификатКриптографии; + Ждать СертификатКриптографии.ИнициализироватьАсинх(ДвоичныеДанные); + + Результат = Новый Структура; + Результат.Вставить("Сертификат", СертификатКриптографии); + Результат.Вставить("ДатаПодписания", Неопределено); + + Возврат Результат; + +КонецФункции + +Асинх Функция РезультатVerifySign(ОбъектКомпоненты, КанонизированныйТекстXMLSignedInfo, + АтрибутSignatureValue, СертификатКриптографииBase64, ТипКриптопровайдера) + + Попытка + Результат = Ждать ОбъектКомпоненты.VerifySignАсинх( + КанонизированныйТекстXMLSignedInfo, + АтрибутSignatureValue, + СертификатКриптографииBase64, + ТипКриптопровайдера); + ПодписьВерна = Результат.Значение; + Исключение + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("VerifySign", + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение ТекстОшибки; + КонецПопытки; Если ПодписьВерна = Неопределено Тогда - НачатьПолучениеТекстаОшибки(НачалоОписанияТекстаОшибки("VerifySign"), Контекст); - Возврат; + РезультатОшибка = Ждать ОбъектКомпоненты.GetLastErrorАсинх(); + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("VerifySign", + РезультатОшибка.Значение); + ВызватьИсключение ТекстОшибки; КонецЕсли; - Контекст.Вставить("ПодписьВерна", ПодписьВерна); + Возврат ПодписьВерна; - Оповещение = Новый ОписаниеОповещения( - "Проверка_ПослеКанонизации_ПодписываемыйТег", ЭтотОбъект, Контекст); - - Если Контекст.СвойстваКонвертаXML = Неопределено Тогда - C14N(Оповещение, - Контекст.ОбъектКомпоненты, - Контекст.КонвертXML, - Контекст.ДанныеАлгоритмаПодписания.XPathПодписываемыйТег); - Иначе - КанонизироватьТекстXML(Оповещение, - Контекст.ОбъектКомпоненты, - Контекст.СвойстваКонвертаXML.ОбластьBody, - Контекст.СвойстваКонвертаXML.ХешируемаяОбласть.АлгоритмыТрансформации); - КонецЕсли; - -КонецПроцедуры - -Процедура Проверка_ПослеКанонизации_ПодписываемыйТег(Результат, Контекст) Экспорт - - Если ЗначениеЗаполнено(Результат.ТекстОшибки) Тогда - ЗавершитьОперациюСОшибкой(Контекст, Результат.ТекстОшибки); - Возврат; - КонецЕсли; - - Оповещение = Новый ОписаниеОповещения( - "Проверка_ПослеВыполненияHash_ПодписываемыйТег", ЭтотОбъект, Контекст, - "Проверка_ПослеВыполненияHash_ПодписываемыйТег_Ошибка", ЭтотОбъект); - - Попытка - Контекст.ОбъектКомпоненты.НачатьВызовHash(Оповещение, - Результат.КанонизированныйТекстXML, - Контекст.ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования, - Контекст.ТипКриптопровайдера); - Исключение - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("Hash", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); - КонецПопытки; - -КонецПроцедуры - -Процедура Проверка_ПослеВыполненияHash_ПодписываемыйТег_Ошибка(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт - - СтандартнаяОбработка = Ложь; - - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("Hash", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке))); - -КонецПроцедуры - -Процедура Проверка_ПослеВыполненияHash_ПодписываемыйТег(HashValue, Параметры, Контекст) Экспорт - - Если HashValue = Неопределено Тогда - НачатьПолучениеТекстаОшибки(НачалоОписанияТекстаОшибки("Hash"), Контекст); - Возврат; - КонецЕсли; - - Если Контекст.СвойстваКонвертаXML = Неопределено Тогда - АтрибутDigestValue = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(Контекст.КонвертXML, "DigestValue"); - Иначе - АтрибутDigestValue = Контекст.СвойстваКонвертаXML.ХешируемаяОбласть.ЗначениеХеша; - КонецЕсли; - - ХешСовпадает = (АтрибутDigestValue = HashValue); - - Если Не Контекст.ПодписьВерна Или Не ХешСовпадает Тогда - - Если Контекст.ПодписьВерна Тогда - ТекстОшибки = НСтр("ru = 'Подпись неверна (%1 корректно, %2 некорректно).'") - ИначеЕсли ХешСовпадает Тогда - ТекстОшибки = НСтр("ru = 'Подпись неверна (%1 некорректно, %2 корректно).'"); - Иначе - ТекстОшибки = НСтр("ru = 'Подпись неверна (%1 некорректно, %2 некорректно).'"); - КонецЕсли; - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, "SignatureValue", "DigestValue"); - - ЗавершитьОперациюСОшибкой(Контекст, ТекстОшибки); - Возврат; - КонецЕсли; - - Проверка_ПослеВыполненияHash_ПодписываемыйТегПослеПолученияДатыПодписания(Неопределено, Контекст); - -КонецПроцедуры +КонецФункции Процедура Проверка_ПослеВыполненияHash_ПодписываемыйТегПослеПолученияДатыПодписания(ДатаПодписания, Контекст) Экспорт @@ -7255,200 +7275,117 @@ КонецПроцедуры -Процедура C14N(Оповещение, ОбъектКомпоненты, КонвертXML, XPath) - - Результат = Новый Структура("КанонизированныйТекстXML, ТекстОшибки", , ""); - - Контекст = Новый Структура; - Контекст.Вставить("Оповещение", Оповещение); - Контекст.Вставить("Результат", Результат); - Контекст.Вставить("ОбъектКомпоненты", ОбъектКомпоненты); - Контекст.Вставить("ОповещенияПриЗавершении", Новый Структура("Ошибка", - Новый ОписаниеОповещения("C14NЗавершениеСОшибкой", ЭтотОбъект, - Новый Структура(Новый ФиксированнаяСтруктура(Контекст))))); - - ОписаниеОповещения = Новый ОписаниеОповещения( - "C14NПослеВызова", ЭтотОбъект, Контекст, - "C14NПослеОшибкиВызова", ЭтотОбъект); +Асинх Функция C14NАсинх(ОбъектКомпоненты, КонвертXML, XPath) Попытка - ОбъектКомпоненты.НачатьВызовC14N(ОписаниеОповещения, КонвертXML, XPath); + Результат = Ждать ОбъектКомпоненты.C14NАсинх(КонвертXML, XPath); + КанонизированныйТекстXML = Результат.Значение; Исключение - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("C14N", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("C14N", + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение ТекстОшибки; КонецПопытки; -КонецПроцедуры - -Процедура C14NПослеВызова(КанонизированныйТекстXML, Параметры, Контекст) Экспорт - Если КанонизированныйТекстXML = Неопределено Тогда - НачатьПолучениеТекстаОшибки(НачалоОписанияТекстаОшибки("C14N"), Контекст); - Возврат; + + РезультатОшибка = Ждать ОбъектКомпоненты.GetLastErrorАсинх(); + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("C14N", + РезультатОшибка.Значение); + ВызватьИсключение ТекстОшибки; КонецЕсли; - Контекст.Результат.КанонизированныйТекстXML = КанонизированныйТекстXML; - ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.Результат); + Возврат КанонизированныйТекстXML; -КонецПроцедуры +КонецФункции -Процедура C14NПослеОшибкиВызова(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт +Асинх Функция КанонизированныйТекстXML(ОбъектКомпоненты, ОбластьXML, Алгоритмы) - СтандартнаяОбработка = Ложь; + Результат = Неопределено; + ВышестоящиеПространстваИменДобавлены = Ложь; - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("C14N", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке))); + Для Каждого Алгоритм Из Алгоритмы Цикл + Если Алгоритм.Вид = "envsig" Тогда + Продолжить; + ИначеЕсли Алгоритм.Вид = "c14n" + Или Алгоритм.Вид = "smev" Тогда -КонецПроцедуры - -Процедура C14NЗавершениеСОшибкой(ТекстОшибки, Контекст) Экспорт - - Контекст.Результат.ТекстОшибки = ТекстОшибки; - ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.Результат); - -КонецПроцедуры - -Процедура КанонизироватьТекстXML(Оповещение, ОбъектКомпоненты, ОбластьXML, Алгоритмы) - - Результат = Новый Структура("КанонизированныйТекстXML, ТекстОшибки", , ""); - - Контекст = Новый Структура; - Контекст.Вставить("Оповещение", Оповещение); - Контекст.Вставить("Результат", Результат); - Контекст.Вставить("ВышестоящиеПространстваИменДобавлены", Ложь); - Контекст.Вставить("ОбъектКомпоненты", ОбъектКомпоненты); - Контекст.Вставить("ОповещенияПриЗавершении", Новый Структура("Ошибка", - Новый ОписаниеОповещения("КанонизироватьТекстXMLЗавершениеСОшибкой", ЭтотОбъект, - Новый Структура(Новый ФиксированнаяСтруктура(Контекст))))); - Контекст.Вставить("ОбластьXML", ОбластьXML); - Контекст.Вставить("Алгоритмы", Алгоритмы); - Контекст.Вставить("Индекс", -1); - - КанонизироватьТекстXMLЦиклНачало(Контекст); - -КонецПроцедуры - -Процедура КанонизироватьТекстXMLЦиклНачало(Контекст) - - Если Контекст.Алгоритмы.Количество() <= Контекст.Индекс + 1 Тогда - Если Контекст.Результат.КанонизированныйТекстXML = Неопределено Тогда - Контекст.Результат.КанонизированныйТекстXML = - ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОбластиXML(Контекст.ОбластьXML); - КонецЕсли; - ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.Результат); - Возврат; - КонецЕсли; - Контекст.Индекс = Контекст.Индекс + 1; - Алгоритм = Контекст.Алгоритмы[Контекст.Индекс]; - - Если Алгоритм.Вид = "envsig" Тогда - КанонизироватьТекстXMLЦиклНачало(Контекст); - - ИначеЕсли Алгоритм.Вид = "c14n" - Или Алгоритм.Вид = "smev" Тогда - - Если Не Контекст.ВышестоящиеПространстваИменДобавлены Тогда - ОписаниеНачалаОбласти = ЭлектроннаяПодписьСлужебныйКлиентСервер.РасширенноеНачалоОбластиXML( - Контекст.ОбластьXML, Алгоритм, Контекст.Результат.КанонизированныйТекстXML); - Если ЗначениеЗаполнено(ОписаниеНачалаОбласти.ТекстОшибки) Тогда - КанонизироватьТекстXMLЗавершениеСОшибкой(ОписаниеНачалаОбласти.ТекстОшибки, Контекст); - Возврат; + Если Не ВышестоящиеПространстваИменДобавлены Тогда + ОписаниеНачалаОбласти = ЭлектроннаяПодписьСлужебныйКлиентСервер.РасширенноеНачалоОбластиXML( + ОбластьXML, Алгоритм, Результат); + Если ЗначениеЗаполнено(ОписаниеНачалаОбласти.ТекстОшибки) Тогда + ВызватьИсключение ОписаниеНачалаОбласти.ТекстОшибки; + КонецЕсли; + ТекстXML = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОбластиXML(ОбластьXML, + ОписаниеНачалаОбласти.Начало); + ВышестоящиеПространстваИменДобавлены = Истина; + + ИначеЕсли Результат = Неопределено Тогда + ТекстXML = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОбластиXML(ОбластьXML); + Иначе + ТекстXML = Результат; КонецЕсли; - ТекстXML = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОбластиXML(Контекст.ОбластьXML, - ОписаниеНачалаОбласти.Начало); - Контекст.ВышестоящиеПространстваИменДобавлены = Истина; - ИначеЕсли Контекст.Результат.КанонизированныйТекстXML = Неопределено Тогда - ТекстXML = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОбластиXML(Контекст.ОбластьXML); - Иначе - ТекстXML = Контекст.Результат.КанонизированныйТекстXML; + Если Алгоритм.Вид = "c14n" Тогда + Результат = Ждать C14N_body(ОбъектКомпоненты, ТекстXML, Алгоритм); + Иначе + Результат = Ждать КанонизацияСМЭВ(ОбъектКомпоненты, ТекстXML); + КонецЕсли; КонецЕсли; - - Если Алгоритм.Вид = "c14n" Тогда - Оповещение = Новый ОписаниеОповещения( - "C14N_bodyПослеВызова", ЭтотОбъект, Контекст, - "C14N_bodyПослеОшибкиВызова", ЭтотОбъект); - Попытка - // АПК:216-выкл - №467.2.1 допустимо слово из кириллицы НачатьВызов и - // латиницы c14n_body, так как первое префикс, а второе имя метода. - Контекст.ОбъектКомпоненты.НачатьВызовc14n_body(Оповещение, - ТекстXML, Алгоритм.Версия, Алгоритм.СКомментариями); - // АПК:216-вкл. - Исключение - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("C14N_body", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); - КонецПопытки; - Иначе - Оповещение = Новый ОписаниеОповещения( - "TransformSMEVПослеВызова", ЭтотОбъект, Контекст, - "TransformSMEVПослеОшибкиВызова", ЭтотОбъект); - Попытка - Контекст.ОбъектКомпоненты.НачатьВызовTransformSMEV(Оповещение, ТекстXML); - Исключение - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("TransformSMEV", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); - КонецПопытки; - КонецЕсли; - Иначе - КанонизироватьТекстXMLЦиклНачало(Контекст); + КонецЦикла; + + Если Результат = Неопределено Тогда + Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОбластиXML(ОбластьXML); КонецЕсли; -КонецПроцедуры + Возврат Результат; + +КонецФункции -Процедура C14N_bodyПослеВызова(КанонизированныйТекстXML, Параметры, Контекст) Экспорт +Асинх Функция C14N_body(ОбъектКомпоненты, ТекстXML, Алгоритм) + + Попытка + Результат = Ждать ОбъектКомпоненты.c14n_bodyАсинх(ТекстXML, + Алгоритм.Версия, Алгоритм.СКомментариями); + КанонизированныйТекстXML = Результат.Значение; + + Исключение + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("C14N_body", + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение ТекстОшибки; + КонецПопытки; Если КанонизированныйТекстXML = Неопределено Тогда - НачатьПолучениеТекстаОшибки(НачалоОписанияТекстаОшибки("C14N_body"), Контекст); - Возврат; + РезультатОшибка = Ждать ОбъектКомпоненты.GetLastErrorАсинх(); + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("C14N_body", + РезультатОшибка.Значение); + ВызватьИсключение ТекстОшибки; КонецЕсли; - Контекст.Результат.КанонизированныйТекстXML = КанонизированныйТекстXML; - КанонизироватьТекстXMLЦиклНачало(Контекст); + Возврат КанонизированныйТекстXML; -КонецПроцедуры +КонецФункции -Процедура C14N_bodyПослеОшибкиВызова(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт +Асинх Функция КанонизацияСМЭВ(ОбъектКомпоненты, ТекстXML) - СтандартнаяОбработка = Ложь; - - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("C14N_body", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке))); - -КонецПроцедуры - -Процедура TransformSMEVПослеВызова(КанонизированныйТекстXML, Параметры, Контекст) Экспорт + Попытка + Результат = Ждать ОбъектКомпоненты.TransformSMEVАсинх(ТекстXML); + КанонизированныйТекстXML = Результат.Значение; + Исключение + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("TransformSMEV", + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение ТекстОшибки; + КонецПопытки; Если КанонизированныйТекстXML = Неопределено Тогда - НачатьПолучениеТекстаОшибки(НачалоОписанияТекстаОшибки("TransformSMEV"), Контекст); - Возврат; + РезультатОшибка = Ждать ОбъектКомпоненты.GetLastErrorАсинх(); + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("TransformSMEV", + РезультатОшибка.Значение); + ВызватьИсключение ТекстОшибки; КонецЕсли; - Контекст.Результат.КанонизированныйТекстXML = КанонизированныйТекстXML; - КанонизироватьТекстXMLЦиклНачало(Контекст); + Возврат КанонизированныйТекстXML; -КонецПроцедуры - -Процедура TransformSMEVПослеОшибкиВызова(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт - - СтандартнаяОбработка = Ложь; - - ЗавершитьОперациюСОшибкой(Контекст, - ЭлектроннаяПодписьСлужебныйКлиентСервер.ОшибкаВызоваМетодаКомпоненты("TransformSMEV", - ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке))); - -КонецПроцедуры - -Процедура КанонизироватьТекстXMLЗавершениеСОшибкой(ТекстОшибки, Контекст) Экспорт - - Контекст.Результат.ТекстОшибки = ТекстОшибки; - ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.Результат); - -КонецПроцедуры +КонецФункции Процедура НачатьПолучениеТекстаОшибки(НачалоОписанияТекстаОшибки, Контекст) @@ -7736,9 +7673,12 @@ КонецПроцедуры // Продолжение процедуры ПроверитьПодпись. -Процедура ПроверитьПодписьНаКлиентеПослеПроверкиПодписиВМоделиСервиса(Результат, Контекст) Экспорт +Асинх Процедура ПроверитьПодписьНаКлиентеПослеПроверкиПодписиВМоделиСервиса(Результат, Контекст) Экспорт Если Не Результат.Выполнено Тогда + Если ТипЗнч(Контекст.РезультатПроверки) = Тип("Структура") Тогда + Контекст.РезультатПроверки.ТребуетсяПроверка = Истина; + КонецЕсли; ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи(Результат.ИнформацияОбОшибке, Ложь, Контекст); Возврат; КонецЕсли; @@ -7750,36 +7690,7 @@ Возврат; КонецЕсли; - МодульСервисКриптографииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииКлиент"); - МодульСервисКриптографииКлиент.ПолучитьСертификатыИзПодписи(Новый ОписаниеОповещения( - "ПроверитьПодписьНаКлиентеПослеПолученияСертификатовВМоделиСервиса", ЭтотОбъект, Контекст, - "ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи", ЭтотОбъект), - Контекст.ДанныеПодписи); - -КонецПроцедуры - -// Продолжение процедуры ПроверитьПодпись. -Процедура ПроверитьПодписьНаКлиентеПослеПолученияСертификатовВМоделиСервиса(Результат, Контекст) Экспорт - - Если Не Результат.Выполнено Тогда - ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи(Результат.ИнформацияОбОшибке, Ложь, Контекст); - Возврат; - КонецЕсли; - - Сертификаты = Результат.Сертификаты; - Попытка - Если Сертификаты.Количество() = 1 Тогда - Сертификат = Сертификаты[0]; - ИначеЕсли Сертификаты.Количество() > 1 Тогда - Сертификат = ЭлектроннаяПодписьСлужебныйВызовСервера.СертификатыПоПорядкуДоКорневого(Сертификаты)[0]; - КонецЕсли; - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи(ИнформацияОбОшибке, Ложь, Контекст); - Возврат; - КонецПопытки; - - ПроверитьПодписьНаКлиентеПослеПроверкиПодписи(Сертификат, Контекст); + ПроверитьПодписьНаКлиентеПослеПроверкиПодписи(Неопределено, Контекст); КонецПроцедуры @@ -7936,8 +7847,7 @@ Контекст.Вставить("АлгоритмПодписи", ""); КонецЕсли; - ЭтоПолноправныйПользователь = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭтоПолноправныйПользователь; - Контекст.Вставить("ЭтоПолноправныйПользователь", ЭтоПолноправныйПользователь); + Контекст.Вставить("ЭтоПолноправныйПользователь", ПользователиКлиент.ЭтоПолноправныйПользователь()); ОписанияПрограмм = ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм; @@ -8451,7 +8361,7 @@ КонецПроцедуры -Процедура ВыполнитьНаСторонеЦиклПослеПодписанияПакета(МассивПодписей, Контекст) +Асинх Процедура ВыполнитьНаСторонеЦиклПослеПодписанияПакета(МассивПодписей, Контекст) ОшибкаНаКлиенте = Неопределено; ДобавкаВремени = ДобавкаВремени(); @@ -8460,14 +8370,8 @@ ДвоичныеДанные = МассивПодписей[Счетчик]; - ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыПодписиКриптографии(); - СвойстваПодписиИзДвоичныхДанных = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных( - ДвоичныеДанные, ДобавкаВремени); - ПараметрыПодписиКриптографии.НеподтвержденнаяДатаПодписи = СвойстваПодписиИзДвоичныхДанных.ДатаПодписания; - ПараметрыПодписиКриптографии.ДатаПодписиИзМетки = СвойстваПодписиИзДвоичныхДанных.ДатаШтампаВремени; - ПараметрыПодписиКриптографии.ТипПодписи = СвойстваПодписиИзДвоичныхДанных.ТипПодписи; - - СвойстваПодписи = ПолучитьСвойстваПодписиПослеПодписания(ДвоичныеДанные, Контекст, ПараметрыПодписиКриптографии); + СвойстваПодписи = Ждать СвойстваПодписиИзДвоичныхДанных(ДвоичныеДанные, Ложь); + СвойстваПодписи = ПолучитьСвойстваПодписиПослеПодписания(ДвоичныеДанные, Контекст, СвойстваПодписи); ЭлементДанных = Контекст.ОписаниеДанных.НаборДанных[Счетчик]; ЭлементДанных.Вставить("СвойстваПодписи", СвойстваПодписи); @@ -8589,8 +8493,8 @@ КонецЕсли; Если Не РезультатВызова.Результат Тогда - Контекст.ОписаниеОшибкиНаСервере = - ТекстОшибкиОблачнаяПодпись("ПроверкаСертификата", РезультатВызова, Ложь); + Контекст.ОписаниеОшибкиНаСервере = ТекстОшибкиОблачнаяПодпись("ПроверкаСертификата", РезультатВызова, Ложь); + ОбработатьОшибкуПоКлассификатору(Контекст.ОписаниеОшибкиНаСервере, Контекст.ТребуетПроверкиНаСервере, Контекст); ПроверитьСертификатПослеНеуспешнойПроверки(Контекст); Возврат; КонецЕсли; @@ -8599,6 +8503,37 @@ КонецПроцедуры +Процедура ОбработатьОшибкуПоКлассификатору(ТекстОшибки, ТребуетПроверки, Контекст, ОшибкаПоКлассификатору = Неопределено) + + Если ОшибкаПоКлассификатору = Неопределено Тогда + ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ОшибкаПоКлассификатору(ТекстОшибки); + КонецЕсли; + + Если ОшибкаПоКлассификатору = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ОшибкаПоКлассификатору.СертификатОтозван Тогда + Контекст.СертификатОтозван = Истина; + Попытка + СсылкаНаСертификат = ЭлектроннаяПодписьСлужебныйВызовСервера.ЗаписатьОтметкуОбОтзывеСертификата( + Base64Строка(Контекст.СертификатКриптографии.Отпечаток)); + Если ЗначениеЗаполнено(СсылкаНаСертификат) Тогда + ДополнительныеПараметры = ПараметрыОповещенияПриЗаписиСертификата(); + ДополнительныеПараметры.Отозван = Истина; + Оповестить("Запись_СертификатыКлючейЭлектроннойПодписиИШифрования", ДополнительныеПараметры, + СсылкаНаСертификат); + КонецЕсли; + Исключение + Ошибка = Ошибка + Символы.ПС + + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + Иначе + ТребуетПроверки = ОшибкаПоКлассификатору.ТребуетПроверки; + КонецЕсли; + +КонецПроцедуры + // Продолжение процедуры ПроверитьПодпись. Процедура ПроверитьПодписьОблачнаяПодпись(Контекст) @@ -8660,20 +8595,7 @@ Возврат; КонецЕсли; - Сертификаты = РезультатВызова.Сертификаты; - Попытка - Если Сертификаты.Количество() = 1 Тогда - Сертификат = Сертификаты[0]; - ИначеЕсли Сертификаты.Количество() > 1 Тогда - Сертификат = ЭлектроннаяПодписьСлужебныйВызовСервера.СертификатыПоПорядкуДоКорневого(Сертификаты)[0]; - КонецЕсли; - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ПроверитьПодписьНаКлиентеПослеОшибкиПроверкиПодписи(ИнформацияОбОшибке, Ложь, Контекст); - Возврат; - КонецПопытки; - - ПроверитьПодписьНаКлиентеПослеПроверкиПодписи(Сертификат, Контекст); + ПроверитьПодписьНаКлиентеПослеПроверкиПодписи(Неопределено, Контекст); КонецПроцедуры @@ -8845,14 +8767,14 @@ #Область ДиагностикаЭлектроннойПодписи -// Формирует архив, содержащий техническую информацию, и предлагает сохранить его на диск. +// Формирует архив, содержащий техническую информацию, и предлагает сохранить его на компьютер. // // Параметры: // Причина - Строка - причина сбора технической информации. // ОбработчикЗавершения - Неопределено // - ОписаниеОповещения - содержит описание процедуры, которая будет вызвана -// после сохранения архива на диск со следующими параметрами: -// АрхивСохранен - Булево - результат сохранения архива на диск. +// после сохранения архива на компьютер со следующими параметрами: +// АрхивСохранен - Булево - результат сохранения архива на компьютер. // ДополнительныеПараметры - Произвольный - значение, которое было указано // при создании объекта ОписаниеОповещения. // ДополнительныеФайлы - Структура - дополнительные данные, которые необходимо поместить в архив: @@ -9366,7 +9288,8 @@ Контекст.Вставить("ИмяВременногоКаталога", ИмяВременногоКаталога); ИмяХранилища = "CA"; - РезультатУстановки = Ждать Контекст.ОбъектКомпоненты.ImportCRuАсинх(Контекст.ИмяФайлаСпискаОтзыва, ИмяХранилища); + РезультатУстановки = Ждать Контекст.ОбъектКомпоненты.ИмпортироватьСписокОтзываСертификатовАсинх( + Контекст.ИмяФайлаСпискаОтзыва, ИмяХранилища); Если РезультатУстановки.Значение <> Истина Тогда @@ -10124,6 +10047,7 @@ Процедура УстановитьКриптопровайдерПослеПолученияПодтвержденияНаУстановку(Результат, ВходящийКонтекст) Экспорт Если Результат = Истина Тогда + ЗапуститьПриложениеНаКлиенте(ВходящийКонтекст.КомандаЗапуска, ВходящийКонтекст.ВременныйКаталог, Истина, Ложь, ВходящийКонтекст); Иначе @@ -10459,5 +10383,338 @@ КонецПроцедуры +// Прочитать свойства подписи. +// +// Параметры: +// ОповещениеОЗавершении - ОписаниеОповещения - возвращает структуру или массив структур +// Подпись - ДвоичныеДанные +// - Строка - адрес двоичных данных во временном хранилище +// - Массив из Строка +// - Массив из ДвоичныеДанные +// ПрочитатьСертификаты - Булево - прочитать сертификаты подписи +// ИспользоватьМенеджерКриптографии - Булево - использовать менеджер криптографии +// +Процедура ПрочитатьСвойстваПодписи(ОповещениеОЗавершении, Подпись, ПрочитатьСертификаты = Истина, ИспользоватьМенеджерКриптографии = Истина) Экспорт + + Если ТипЗнч(Подпись) = Тип("Строка") Или ТипЗнч(Подпись) = Тип("ДвоичныеДанные") Тогда + ВернутьСтруктуру = Истина; + МассивПодписей = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Подпись); + Иначе + ВернутьСтруктуру = Ложь; + МассивПодписей = Подпись; + КонецЕсли; + + Контекст = Новый Структура; + Контекст.Вставить("Оповещение", ОповещениеОЗавершении); + Контекст.Вставить("МассивПодписей", МассивПодписей); + Контекст.Вставить("ОбработанныеПодписи", Новый Соответствие); + Контекст.Вставить("ВернутьСтруктуру", ВернутьСтруктуру); + + Контекст.Вставить("ОбработанныеНаСервереПодписи"); + Контекст.Вставить("ПрочитатьСертификаты", ПрочитатьСертификаты); + Контекст.Вставить("ИспользоватьМенеджерКриптографии", ИспользоватьМенеджерКриптографии); + + ПрочитатьСвойстваПодписейЦикл(Неопределено, Контекст); + +КонецПроцедуры + +Асинх Процедура ПрочитатьСвойстваПодписейЦикл(Результат, Контекст) Экспорт + + Если Контекст.ИспользоватьМенеджерКриптографии Тогда + Если Контекст.МассивПодписей.Количество() > 0 Тогда + + Контекст.Вставить("Подпись", Контекст.МассивПодписей[0]); + + Если Контекст.ОбработанныеНаСервереПодписи <> Неопределено Тогда + Результат = Контекст.ОбработанныеНаСервереПодписи.Получить(Контекст.Подпись); + Если Результат.Успех <> Неопределено Тогда + ДобавитьРезультатЧтенияПодписи(Результат, Контекст); + Возврат; + КонецЕсли; + КонецЕсли; + + Оповещение = Новый ОписаниеОповещения("ПрочитатьСвойстваПодписиПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст); + ПараметрыСозданияМенеджераКриптографии = ПараметрыСозданияМенеджераКриптографии(); + ПараметрыСозданияМенеджераКриптографии.Программа = Контекст.Подпись; + ПараметрыСозданияМенеджераКриптографии.ПоказатьОшибку = Ложь; + СоздатьМенеджерКриптографии(Оповещение, "ЧтениеПодписи", ПараметрыСозданияМенеджераКриптографии); + Возврат; + Иначе + РезультатЧтенияПодписей(Контекст); + КонецЕсли; + Иначе + Соответствие = Новый Соответствие; + Для Каждого Подпись Из Контекст.МассивПодписей Цикл + СвойстваПодписиИзДвоичныхДанных = Ждать СвойстваПодписиИзДвоичныхДанных(Подпись, Контекст.ПрочитатьСертификаты); + Соответствие.Вставить(Подпись, СвойстваПодписиИзДвоичныхДанных); + КонецЦикла; + Контекст.ОбработанныеПодписи = Соответствие; + РезультатЧтенияПодписей(Контекст); + КонецЕсли; + +КонецПроцедуры + +Процедура РезультатЧтенияПодписей(Контекст) + + Если Контекст.ВернутьСтруктуру Тогда + Для Каждого КлючИЗначение Из Контекст.ОбработанныеПодписи Цикл + Результат = КлючИЗначение.Значение; + Прервать; + КонецЦикла; + Иначе + Результат = Контекст.ОбработанныеПодписи; + КонецЕсли; + + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Результат); + +КонецПроцедуры + +Процедура ДобавитьРезультатЧтенияПодписи(Результат, Контекст) + + Контекст.ОбработанныеПодписи.Вставить(Контекст.Подпись, Результат); + Контекст.МассивПодписей.Удалить(0); + Оповещение = Новый ОписаниеОповещения("ПрочитатьСвойстваПодписейЦикл", ЭтотОбъект, Контекст); + ВыполнитьОбработкуОповещения(Оповещение, Неопределено); + +КонецПроцедуры + +Асинх Процедура ПрочитатьСвойстваПодписиПослеСозданияМенеджераКриптографии(МенеджерКриптографии, Контекст) Экспорт + + Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатЧтенияСвойствПодписи(); + + Если МенеджерКриптографии <> Неопределено Тогда + Если ТипЗнч(МенеджерКриптографии) = Тип("Строка") Тогда + Результат.ТекстОшибки = МенеджерКриптографии; + Иначе + Результат = Ждать СвойстваПодписиЧтениеМенеджеромКриптографии( + Контекст.Подпись, МенеджерКриптографии, Контекст.ПрочитатьСертификаты); + Если Результат.Успех = Истина Тогда + ДобавитьРезультатЧтенияПодписи(Результат, Контекст); + Возврат; + Иначе + Результат.Успех = Неопределено; + КонецЕсли; + КонецЕсли; + ИначеЕсли Контекст.ИспользоватьМенеджерКриптографии И Контекст.ОбработанныеНаСервереПодписи = Неопределено + И (ЭлектроннаяПодписьКлиент.ПроверятьЭлектронныеПодписиНаСервере() + Или ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере()) Тогда + + Контекст.ОбработанныеНаСервереПодписи = Новый Соответствие; + Адрес = ПоместитьВоВременноеХранилище(Контекст.МассивПодписей); + РезультатЧтенияНаСервере = ЭлектроннаяПодписьСлужебныйВызовСервера.СвойстваПодписи( + Адрес, Контекст.ПрочитатьСертификаты); + Контекст.ОбработанныеНаСервереПодписи = ПолучитьИзВременногоХранилища(РезультатЧтенияНаСервере); + + ДобавитьРезультатЧтенияПодписи(Контекст.ОбработанныеНаСервереПодписи.Получить(Контекст.Подпись), Контекст); + Возврат; + КонецЕсли; + + Если Контекст.ОбработанныеНаСервереПодписи <> Неопределено Тогда + ДобавитьРезультатЧтенияПодписи(Контекст.ОбработанныеНаСервереПодписи.Получить(Контекст.Подпись), Контекст); + Возврат; + КонецЕсли; + + СвойстваПодписиИзДвоичныхДанных = Ждать СвойстваПодписиИзДвоичныхДанных( + Контекст.Подпись, Контекст.ПрочитатьСертификаты); + ЗаполнитьЗначенияСвойств(Результат, СвойстваПодписиИзДвоичныхДанных,, "Успех, ТекстОшибки"); + + Если СвойстваПодписиИзДвоичныхДанных.Успех = Ложь Тогда + Результат.Успех = Ложь; + Результат.ТекстОшибки = ?(ПустаяСтрока(Результат.ТекстОшибки), "", Результат.ТекстОшибки + Символы.ПС) + + СвойстваПодписиИзДвоичныхДанных.ТекстОшибки; + КонецЕсли; + + ДобавитьРезультатЧтенияПодписи(Результат, Контекст); + +КонецПроцедуры + +Асинх Функция СвойстваПодписиЧтениеМенеджеромКриптографии(Подпись, МенеджерКриптографии, ПрочитатьСертификаты) + + Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатЧтенияСвойствПодписи(); + + Попытка + КонтейнерПодписи = Ждать МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографииАсинх(Подпись); + Исключение + Результат.Успех = Ложь; + Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='При чтении данных подписи: %1'"), ОбработкаОшибок.КраткоеПредставлениеОшибки( + ИнформацияОбОшибке())); + Возврат Результат; + КонецПопытки; + + ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии( + КонтейнерПодписи, ДобавкаВремени(), ОбщегоНазначенияКлиент.ДатаСеанса()); + + Результат.ТипПодписи = ПараметрыПодписиКриптографии.ТипПодписи; + Результат.СрокДействияПоследнейМеткиВремени = ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени; + Результат.НеподтвержденнаяДатаПодписи = ПараметрыПодписиКриптографии.НеподтвержденнаяДатаПодписи; + Результат.ДатаПодписиИзМетки = ПараметрыПодписиКриптографии.ДатаПодписиИзМетки; + + Если ПараметрыПодписиКриптографии.ОписаниеСертификата <> Неопределено Тогда + Результат.Отпечаток = ПараметрыПодписиКриптографии.ОписаниеСертификата.Отпечаток; + Результат.КомуВыданСертификат = ПараметрыПодписиКриптографии.ОписаниеСертификата.КомуВыдан; + КонецЕсли; + + Если ПрочитатьСертификаты Тогда + СтрокаПодписи = КонтейнерПодписи.Подписи[0]; + Если ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатСуществует( + СтрокаПодписи.СертификатПодписи) Тогда + Результат.Сертификат = Ждать СтрокаПодписи.СертификатПодписи.ВыгрузитьАсинх(); + КонецЕсли; + Для Каждого Сертификат Из СтрокаПодписи.СертификатыПроверкиПодписи Цикл + Если ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатСуществует(Сертификат) Тогда + Результат.Сертификаты.Добавить(Ждать Сертификат.ВыгрузитьАсинх()); + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Результат.Успех = Истина; + Возврат Результат; + +КонецФункции + +Асинх Функция СвойстваПодписиИзДвоичныхДанных(Подпись, ПрочитатьСертификаты) + + Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатЧтенияСвойствПодписи(); + + Попытка + СвойстваПодписиИзДвоичныхДанных = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных( + Подпись, ДобавкаВремени(), ПрочитатьСертификаты); + Если Не ЗначениеЗаполнено(СвойстваПодписиИзДвоичныхДанных.ТипПодписи) Тогда + Результат.ТекстОшибки = НСтр("ru = 'Данные не являются подписью'"); + Результат.Успех = Ложь; + Возврат Результат; + КонецЕсли; + Исключение + Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось прочитать свойства подписи: %1'"), ОбработкаОшибок.КраткоеПредставлениеОшибки( + ИнформацияОбОшибке())); + Результат.Успех = Ложь; + Возврат Результат; + КонецПопытки; + + Результат.ТипПодписи = СвойстваПодписиИзДвоичныхДанных.ТипПодписи; + + Если ЗначениеЗаполнено(СвойстваПодписиИзДвоичныхДанных.ДатаПодписания) Тогда + Результат.НеподтвержденнаяДатаПодписи = СвойстваПодписиИзДвоичныхДанных.ДатаПодписания; + КонецЕсли; + Если ЗначениеЗаполнено(СвойстваПодписиИзДвоичныхДанных.ДатаШтампаВремени) Тогда + Результат.ДатаПодписиИзМетки = СвойстваПодписиИзДвоичныхДанных.ДатаШтампаВремени; + КонецЕсли; + + Если СвойстваПодписиИзДвоичныхДанных.Сертификаты.Количество() > 0 Тогда + + Если СвойстваПодписиИзДвоичныхДанных.Сертификаты.Количество() > 1 Тогда + Попытка + Результат.Сертификаты = Ждать СертификатыПоПорядкуДоКорневого( + СвойстваПодписиИзДвоичныхДанных.Сертификаты); + Результат.Сертификат = Результат.Сертификаты[0]; + Исключение + Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось прочитать свойства сертификатов: %1'"), + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + Иначе + Результат.Сертификат = СвойстваПодписиИзДвоичныхДанных.Сертификаты[0]; + КонецЕсли; + + Попытка + Сертификат = Новый СертификатКриптографии(); + Ждать Сертификат.ИнициализироватьАсинх(Результат.Сертификат); + Результат.Сертификат = Ждать Сертификат.ВыгрузитьАсинх(); + СвойстваСертификата = ЭлектроннаяПодписьКлиент.СвойстваСертификата(Сертификат); + Результат.Отпечаток = СвойстваСертификата.Отпечаток; + Результат.КомуВыданСертификат = СвойстваСертификата.КомуВыдан; + Исключение + Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось прочитать свойства сертификата: %1'"), + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + КонецЕсли; + + Результат.Успех = ПустаяСтрока(Результат.ТекстОшибки); + + Возврат Результат; + +КонецФункции + +// Для процедуры ПроверитьПодпись. +// +// Параметры: +// Результат - см. ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи.Результат. +// РезультатСтруктура - Неопределено +// - см. ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи +// ТребуетсяПроверка - Неопределено, Булево - Истина, если удалось определить, что +// подпись не удалось проверить из-за внешних обстоятельств. +// +// Возвращаемое значение: +// см. ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи +// см. ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи.Результат - если Контекст.РезультатПроверки = Неопределено +// +Функция РезультатПроверкиПодписи(Результат, РезультатСтруктура = Неопределено, ТребуетсяПроверка = Неопределено) + + Если РезультатСтруктура = Неопределено Тогда + Возврат Результат; + Иначе + + РезультатСтруктура.Результат = Результат; + + Если Результат = Истина Тогда + РезультатСтруктура.ПодписьВерна = Истина; + РезультатСтруктура.ТребуетсяПроверка = Ложь; + Возврат РезультатСтруктура; + КонецЕсли; + + Если ТребуетсяПроверка <> Неопределено Тогда + РезультатСтруктура.ТребуетсяПроверка = ТребуетсяПроверка; + КонецЕсли; + + Если РезультатСтруктура.ТребуетсяПроверка = Ложь Тогда + РезультатСтруктура.ПодписьВерна = Ложь; + КонецЕсли; + + Возврат РезультатСтруктура; + КонецЕсли; + +КонецФункции + +// Только для внутреннего использования. +// +// Параметры: +// ДанныеСертификатов - Массив из ДвоичныеДанные +// +// Возвращаемое значение: +// Массив из ДвоичныеДанные - сертификаты по порядку до корневого +// +Асинх Функция СертификатыПоПорядкуДоКорневого(ДанныеСертификатов) Экспорт + + ПоПорядку = Новый Массив; + ОписаниеСертификатов = Новый Соответствие; + СертификатыПоСубъектам = Новый Соответствие; + + Для Каждого ДанныеСертификата Из ДанныеСертификатов Цикл + Сертификат = Новый СертификатКриптографии; + Ждать Сертификат.ИнициализироватьАсинх(ДанныеСертификата); + ПоПорядку.Добавить(ДанныеСертификата); + ОписаниеСертификатов.Вставить(Сертификат, ДанныеСертификата); + СертификатыПоСубъектам.Вставить( + ЭлектроннаяПодписьСлужебныйКлиентСервер.КлючИздателя(Сертификат.Субъект), + ДанныеСертификата); + КонецЦикла; + + Для Счетчик = 1 По ПоПорядку.Количество() Цикл + ЕстьИзменения = Ложь; + ЭлектроннаяПодписьСлужебныйКлиентСервер.УпорядочитьСертификаты( + ПоПорядку, ОписаниеСертификатов, СертификатыПоСубъектам, ЕстьИзменения); + Если Не ЕстьИзменения Тогда + Прервать; + КонецЕсли; + КонецЦикла; + + Возврат ПоПорядку; + +КонецФункции #КонецОбласти + diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентПовтИсп/Module.bsl index d22998dd0..f94235fae 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентПовтИсп/Module.bsl @@ -26,9 +26,9 @@ КонецФункции -Функция ДействияДляУстраненияОшибки(ТекстОшибки) Экспорт +Функция ОшибкаПоКлассификатору(ТекстОшибки) Экспорт - Возврат ЭлектроннаяПодписьСлужебныйВызовСервера.ДействияДляУстраненияОшибки(ТекстОшибки); + Возврат ЭлектроннаяПодписьСлужебныйВызовСервера.ОшибкаПоКлассификатору(ТекстОшибки); КонецФункции diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl index ebe7c6a96..e7d65a517 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl @@ -266,18 +266,54 @@ #Область СлужебныеПроцедурыИФункции +// Конструктор для чтения свойств подписи. +// +// Возвращаемое значение: +// см. ЭлектроннаяПодпись.СвойстваПодписи +// +Функция РезультатЧтенияСвойствПодписи() Экспорт + + Структура = Новый Структура; + Структура.Вставить("Успех", Неопределено); + Структура.Вставить("ТекстОшибки", ""); + + ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру( + Структура, СвойстваПодписиПриЧтенииИПроверке()); + Структура.Вставить("Сертификаты", Новый Массив); + + Возврат Структура; + +КонецФункции + +Функция СвойстваПодписиПриЧтенииИПроверке() Экспорт + + Структура = Новый Структура; + Структура.Вставить("ТипПодписи"); + Структура.Вставить("СрокДействияПоследнейМеткиВремени"); + Структура.Вставить("ДатаПодписиИзМетки"); + Структура.Вставить("НеподтвержденнаяДатаПодписи"); + + Структура.Вставить("Сертификат"); + Структура.Вставить("Отпечаток"); + Структура.Вставить("КомуВыданСертификат"); + + Возврат Структура; + +КонецФункции + Процедура УпорядочитьСертификаты(ПоПорядку, ОписаниеСертификатов, СертификатыПоСубъектам, ЕстьИзменения) Экспорт Для Каждого ОписаниеСертификата Из ОписаниеСертификатов Цикл СвойстваСертификата = ОписаниеСертификата.Ключ; Сертификат = ОписаниеСертификата.Значение; - + КлючИздателя = КлючИздателя(СвойстваСертификата.Издатель); СертификатИздателя = СертификатыПоСубъектам.Получить(КлючИздателя); Позиция = ПоПорядку.Найти(Сертификат); + Если СвойстваСертификата.Издатель.CN = СвойстваСертификата.Субъект.CN И КлючИздателя = КлючИздателя(СвойстваСертификата.Субъект) Или СертификатИздателя = Неопределено Тогда @@ -287,9 +323,7 @@ ПоПорядку.Добавить(Сертификат); ЕстьИзменения = Истина; КонецЕсли; - Продолжить; - КонецЕсли; ПозицияИздателя = ПоПорядку.Найти(СертификатИздателя); @@ -1501,7 +1535,7 @@ // Только для внутреннего использования. // // Параметры: -// ДвоичныеДанныеПодписи - ДвоичныеДанные +// ДвоичныеДанныеПодписи - ДвоичныеДанные, Строка - строка, если передан конверт XML // СвойстваСертификата - см. ЭлектроннаяПодписьКлиент.СвойстваСертификата // Комментарий - Строка // АвторизованныйПользователь - СправочникСсылка.Пользователи @@ -1526,7 +1560,7 @@ // * НеподтвержденнаяДатаПодписи - Дата // Функция СвойстваПодписи(ДвоичныеДанныеПодписи, СвойстваСертификата, Комментарий, - АвторизованныйПользователь, ИмяФайлаПодписи = "", ПараметрыПодписи = Неопределено) Экспорт + АвторизованныйПользователь, ИмяФайлаПодписи = "", ПараметрыПодписи = Неопределено, ТребуетсяПроверка = Ложь) Экспорт СвойстваПодписи = Новый Структура; СвойстваПодписи.Вставить("Подпись", ДвоичныеДанныеПодписи); @@ -1545,6 +1579,7 @@ СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени"); СвойстваПодписи.Вставить("ДатаПодписиИзМетки"); СвойстваПодписи.Вставить("НеподтвержденнаяДатаПодписи"); + СвойстваПодписи.Вставить("ТребуетсяПроверка", ТребуетсяПроверка); Если ПараметрыПодписи <> Неопределено Тогда СвойстваПодписи.Вставить("ТипПодписи", ПараметрыПодписи.ТипПодписи); @@ -1557,39 +1592,11 @@ КонецФункции -// Только для внутреннего использования. -// -// Возвращаемое значение: -// Структура - параметры подписи криптографии: -// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии -// * СрокДействияПоследнейМеткиВремени - Дата -// * СертификатПоследнейМеткиВремени - СертификатКриптографии -// * ДатаПодписиИзМетки - Дата -// * ОписаниеСертификата - см. ЭлектроннаяПодписьКлиент.СвойстваСертификата -// - Неопределено - если не удалось определить сертификат подписи. -// * НеподтвержденнаяДатаПодписи - Дата -// * ДатаПоследнейМеткиВремени - Дата -// -Функция НовыеПараметрыПодписиКриптографии() Экспорт - - ПараметрыПодписи = Новый Структура; - ПараметрыПодписи.Вставить("ТипПодписи"); - ПараметрыПодписи.Вставить("СрокДействияПоследнейМеткиВремени"); - ПараметрыПодписи.Вставить("СертификатПоследнейМеткиВремени"); - ПараметрыПодписи.Вставить("ДатаПодписиИзМетки"); - ПараметрыПодписи.Вставить("ОписаниеСертификата"); - ПараметрыПодписи.Вставить("НеподтвержденнаяДатаПодписи"); - ПараметрыПодписи.Вставить("ДатаПоследнейМеткиВремени"); - - Возврат ПараметрыПодписи; - -КонецФункции - // Только для внутреннего использования. // Возвращаемое значение: // Дата, Неопределено - дата для проверки сертификата подписи // -Функция ДатаДляПроверкиПодписи(ПараметрыПодписи) Экспорт +Функция ДатаДляПроверкиСертификатаПодписи(ПараметрыПодписи) Экспорт Если ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( ПараметрыПодписи, "ДатаПодписиИзМетки", Неопределено)) Тогда @@ -1608,20 +1615,32 @@ // Только для внутреннего использования. // // Возвращаемое значение: -// см. НовыеПараметрыПодписиКриптографии +// Структура - параметры подписи криптографии: +// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии +// * СрокДействияПоследнейМеткиВремени - Дата, Неопределено - заполняется только с помощью менеджера криптографии. +// * ДатаПодписиИзМетки - Дата, Неопределено - самый ранний штамп времени. +// * НеподтвержденнаяДатаПодписи - Дата - неподтвержденная дата подписи. +// - Неопределено - неподтвержденная дата подписи отсутствует в данных подписи. +// * ДатаПоследнейМеткиВремени - Дата - дата последней метки времени. +// * Сертификат - СертификатКриптографии - сертификат подписанта. +// * ОписаниеСертификата - см. ЭлектроннаяПодписьКлиент.СвойстваСертификата. // Функция ПараметрыПодписиКриптографии(КонтейнерПодписи, ДобавкаВремени, ДатаСеанса) Экспорт - ПараметрыПодписи = НовыеПараметрыПодписиКриптографии(); + ПараметрыПодписи = Новый Структура; + + ПараметрыПодписи.Вставить("ТипПодписи"); + ПараметрыПодписи.Вставить("СрокДействияПоследнейМеткиВремени"); + ПараметрыПодписи.Вставить("СертификатПоследнейМеткиВремени"); + ПараметрыПодписи.Вставить("ДатаПодписиИзМетки"); + ПараметрыПодписи.Вставить("НеподтвержденнаяДатаПодписи"); + ПараметрыПодписи.Вставить("ДатаПоследнейМеткиВремени"); + ПараметрыПодписи.Вставить("ОписаниеСертификата"); + ПараметрыПодписи.Вставить("Сертификат"); Подпись = КонтейнерПодписи.Подписи[0]; - Попытка - СерийныйНомер = Подпись.СертификатПодписи.СерийныйНомер; - СертификатСуществует = Истина; - Исключение - СертификатСуществует = Ложь; - КонецПопытки; + СертификатСуществует = СертификатСуществует(Подпись.СертификатПодписи); Если СертификатСуществует Тогда ПараметрыПодписи.ОписаниеСертификата = СвойстваСертификата(Подпись.СертификатПодписи, ДобавкаВремени); @@ -1682,7 +1701,7 @@ Возврат Неопределено; #Иначе - + Если ТипЗнч(ТипПодписиЗначение) = Тип("ТипПодписиКриптографии") Тогда Если ТипПодписиЗначение = ТипПодписиКриптографии.CAdESBES Тогда Возврат ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES"); @@ -1994,10 +2013,13 @@ КонецФункции // Только для внутреннего использования. -Функция СвойстваПодписиИзДвоичныхДанных(Данные, ДобавкаВремени = Неопределено) Экспорт +Функция СвойстваПодписиИзДвоичныхДанных(Данные, ДобавкаВремени = Неопределено, ПрочитатьСертификаты = Ложь) Экспорт - СвойстваПодписи = Новый Структура("ТипПодписи, ДатаПодписания, ДатаШтампаВремени", - ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS"), Неопределено, Неопределено); + СвойстваПодписи = Новый Структура; + СвойстваПодписи.Вставить("ТипПодписи", ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS")); + СвойстваПодписи.Вставить("ДатаПодписания"); + СвойстваПодписи.Вставить("ДатаШтампаВремени"); + СвойстваПодписи.Вставить("Сертификаты", Новый Массив); ДвоичныеДанные = ДвоичныеДанныеИзДанных(Данные, "ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписи"); @@ -2025,8 +2047,23 @@ ПропуститьБлок(АнализДанных, 0, 17); // SEQUENCE (contentInfo ContentInfo). ПропуститьБлок(АнализДанных, 0, 16); - // [0]CS (certificates [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL). - ПропуститьБлок(АнализДанных, 2, 0, Ложь); + // [0]CS (certificates [0] IMPLICIT CertificateSet OPTIONAL). + Если ПрочитатьСертификаты = Ложь Тогда + ПропуститьБлок(АнализДанных, 2, 0, Ложь); + Иначе + Если ПропуститьНачалоБлока(АнализДанных, 2, 0, Ложь) Тогда + // CertificateSet ::= SET OF Certificate Choices + Пока Истина Цикл + // Certificate + Сертификат = ПрочитанныйБлок(АнализДанных, 0, 16); + Если Сертификат = Неопределено Тогда + Прервать; + КонецЕсли; + СвойстваПодписи.Сертификаты.Добавить(Сертификат); + КонецЦикла; + ПропуститьРодительскийБлок(АнализДанных); + КонецЕсли; + КонецЕсли; // [1]CS (crls [1] IMPLICIT CertificateRevocationLists OPTIONAL). ПропуститьБлок(АнализДанных, 2, 1, Ложь); // SET (signerInfos SET OF SignerInfo). @@ -2567,12 +2604,12 @@ // Удаляет из поля сертификата КомуВыдан все кроме ФИО // // Параметры: -// КомуВыдан - Массив из строк +// КомуВыдан - Массив из Строка // - Строка // // Возвращаемое значение: -// Массив из строк - если КомуВыдан массив -// Строка - если КомуВыдан строка +// - Массив из Строка - если КомуВыдан массив +// - Строка - если КомуВыдан строка // Функция ПреобразоватьКомуВыданКВидуФИО(КомуВыдан) Экспорт @@ -2683,6 +2720,19 @@ КонецФункции +Функция ТекстОшибкиПроверкиПодписиXML(ПодписьВерна, ХешСовпадает) Экспорт + + Если ПодписьВерна Тогда + ТекстОшибки = НСтр("ru = 'Подпись неверна (%1 корректно, %2 некорректно).'"); + ИначеЕсли ХешСовпадает Тогда + ТекстОшибки = НСтр("ru = 'Подпись неверна (%1 некорректно, %2 корректно).'"); + Иначе + ТекстОшибки = НСтр("ru = 'Подпись неверна (%1 некорректно, %2 некорректно).'"); + КонецЕсли; + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, "SignatureValue", "DigestValue"); + +КонецФункции + // Возвращаемое значение: // см. НовыйНаборАлгоритмовДляСозданияПодписи // Неопределено - если набор не найден. @@ -3321,9 +3371,6 @@ КонецФункции - - - #Область ОбластьXML // Параметры: @@ -3333,27 +3380,35 @@ // Возвращаемое значение: // см. СвойстваОбластиXML // -Функция ОбластьXML(СтрокаXML, ИмяЭлемента) Экспорт +Функция ОбластьXML(СтрокаXML, ИмяЭлемента, НомерSignature = 1) Экспорт Результат = СвойстваОбластиXML(ИмяЭлемента); - ПризнакНачалаОбласти = "<" + ИмяЭлемента; + + // Требуется отделять имя элемента, так как иначе в документе могут встречаться элементы, которые начинаются с того же + // набора символов. + ПризнакНачалаОбласти = "<" + ИмяЭлемента + " "; ПризнакОкончанияОбласти = "</" + ИмяЭлемента + ">"; - Позиция = СтрНайти(СтрокаXML, ПризнакНачалаОбласти); + Позиция = СтрНайти(СтрокаXML, ПризнакНачалаОбласти, , , НомерSignature); Если Позиция = 0 Тогда - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не найдена элемент ""%1"" в документе XML.'"), ИмяЭлемента); - Результат.ТекстОшибки = ТекстОшибки; + // Если элемент не нашли, то попробуем убрать пробел. + ПризнакНачалаОбласти = "<" + ИмяЭлемента; + Позиция = СтрНайти(СтрокаXML, ПризнакНачалаОбласти, , , НомерSignature); + Если Позиция = 0 Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найдена элемент ""%1"" в документе XML.'"), ИмяЭлемента); + Результат.ТекстОшибки = ТекстОшибки; + КонецЕсли; КонецЕсли; Результат.ПозицияНачала = Позиция; Текст = Сред(СтрокаXML, Позиция); - Позиция = СтрНайти(Текст, ПризнакНачалаОбласти, , 2); - Если Позиция > 0 Тогда - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Найдено более одного элемента ""%1"" в документе XML.'"), ИмяЭлемента); - Результат.ТекстОшибки = ТекстОшибки; - КонецЕсли; + НомерВхождения = 1; + Позиция = СтрНайти(Текст, ПризнакНачалаОбласти, , 2, НомерВхождения); + Пока Позиция <> 0 Цикл + Позиция = СтрНайти(Текст, ПризнакНачалаОбласти, , 2, НомерВхождения); + НомерВхождения = НомерВхождения + 1; + КонецЦикла; Позиция = СтрНайти(Текст, ПризнакОкончанияОбласти); Если Позиция = 0 Тогда @@ -3380,7 +3435,7 @@ Результат.Содержимое = Сред(Текст, Позиция + 1); Возврат Результат; - + КонецФункции // Параметры: @@ -3791,7 +3846,6 @@ Возврат ДвоичныеДанные; - КонецФункции // Возвращаемое значение: @@ -3834,11 +3888,38 @@ КонецФункции -Процедура ПропуститьНачалоБлока(АнализДанных, КлассДанных = Неопределено, ТипДанных = Неопределено) Экспорт +Функция ПрочитанныйБлок(АнализДанных, КлассДанных = Неопределено, ТипДанных = Неопределено, ОбязательныйБлок = Ложь) - ПропуститьНачалоБлокаИлиБлок(АнализДанных, Истина, КлассДанных, ТипДанных, Истина) + Если АнализДанных.Родители.Количество() > 0 + И АнализДанных.Смещение >= АнализДанных.Родители[0].СмещениеСледующего Тогда + Возврат Неопределено; + КонецЕсли; -КонецПроцедуры + Смещение = АнализДанных.Смещение; + + ПропуститьНачалоБлокаИлиБлок(АнализДанных, Истина, КлассДанных, ТипДанных, ОбязательныйБлок); + Если АнализДанных.Смещение = Смещение Тогда + Возврат Неопределено; + КонецЕсли; + + РазмерБлока = АнализДанных.Смещение - Смещение + АнализДанных.Родители[0].РазмерДанных; + + Буфер = АнализДанных.Буфер.Прочитать(Смещение, РазмерБлока); // БуферДвоичныхДанных + ПрочитанныйБлок = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(Буфер); + ПропуститьРодительскийБлок(АнализДанных); + + Возврат ПрочитанныйБлок; + +КонецФункции + +Функция ПропуститьНачалоБлока(АнализДанных, КлассДанных = Неопределено, ТипДанных = Неопределено, ОбязательныйБлок = Истина) Экспорт + + Смещение = АнализДанных.Смещение; + ПропуститьНачалоБлокаИлиБлок(АнализДанных, Истина, КлассДанных, ТипДанных, ОбязательныйБлок); + + Возврат АнализДанных.Смещение <> Смещение; + +КонецФункции Процедура ПропуститьБлок(АнализДанных, КлассДанных = Неопределено, ТипДанных = Неопределено, ОбязательныйБлок = Истина) Экспорт @@ -4486,6 +4567,21 @@ КонецФункции +Функция СертификатСуществует(СертификатКриптографии) Экспорт + + Если СертификатКриптографии = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Попытка + СерийныйНомер = СертификатКриптографии.СерийныйНомер; + Возврат Истина; + Исключение + Возврат Ложь; + КонецПопытки; + +КонецФункции + #КонецОбласти #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйЛокализация/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйЛокализация/Module.bsl index 4532c73c4..cde5c9996 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйЛокализация/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйЛокализация/Module.bsl @@ -348,11 +348,7 @@ КонецПопытки; Если Ответ.КодСостояния = 200 Тогда - ЧтениеJson = Новый ЧтениеJSON; - ЧтениеJson.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку()); - - ОтветJSON = ПрочитатьJSON(ЧтениеJson); - ЧтениеJson.Закрыть(); + ОтветJSON = ОбщегоНазначения.JSONВЗначение(Ответ.ПолучитьТелоКакСтроку(), , Ложь); Если ОтветJSON.Свойство("error_code") И ОтветJSON.error_code = 100 Тогда ПараметрыДистрибутива = НовыйПараметрыДистрибутива(); @@ -516,12 +512,12 @@ // Возвращает описание HTTP соединения. // // Параметры: -// URL - Строка -// Таймаут - Число +// URL - Строка +// Таймаут - Число // Возвращаемое значение: -// Структура: -// * HTTPСоединение - HTTPСоединение -// * СтруктураURI - см. ОбщегоНазначенияКлиентСервер.СтруктураURI +// Структура: +// * HTTPСоединение - HTTPСоединение +// * СтруктураURI - см. ОбщегоНазначенияКлиентСервер.СтруктураURI // Функция СоединениеССерверомИнтернета(ВидОперации, URL, Таймаут = Неопределено) diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl index 44d446157..a9e4e9dfc 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl @@ -317,16 +317,13 @@ КонецПроцедуры // Только для внутреннего использования. -Функция ПрочитанныеДействияДляУстраненияОшибок(СпособУстранения) +Функция ПрочитанныеДействияДляУстраненияОшибок(Знач СпособУстранения) Если Не ЗначениеЗаполнено(СпособУстранения) Тогда Возврат Неопределено; КонецЕсли; - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(СпособУстранения); - СпособУстранения = ПрочитатьJSON(ЧтениеJSON); // Соответствие - + СпособУстранения = ОбщегоНазначения.JSONВЗначение(СпособУстранения, , Ложь); // Структура Возврат СпособУстранения.МетодикиУстранения; КонецФункции @@ -339,26 +336,13 @@ ПредставлениеОшибки.Вставить("Решение", ""); ПредставлениеОшибки.Вставить("СпособУстранения", ""); ПредставлениеОшибки.Вставить("ДействияДляУстранения"); + ПредставлениеОшибки.Вставить("ТребуетПроверки", Ложь); + ПредставлениеОшибки.Вставить("СертификатОтозван", Ложь); Возврат ПредставлениеОшибки; КонецФункции -// Действия для устранения ошибки. -// -// Параметры: -// ТекстОшибки Текст ошибки -// -// Возвращаемое значение: -// Неопределено - действия для устранения ошибки -// Массив -// -Функция ДействияДляУстраненияОшибки(ТекстОшибки) Экспорт - - Возврат ЭлектроннаяПодписьСлужебный.ДействияДляУстраненияОшибки(ТекстОшибки); - -КонецФункции - Функция ПутиКПрограммамНаСерверахLinux(ИмяКомпьютера) Экспорт Запрос = Новый Запрос; diff --git a/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl b/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl index 3068a74a2..4ee152d45 100644 --- a/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl +++ b/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl @@ -45,14 +45,14 @@ ПараметрыЗапроса.Вставить("sourceLanguageCode", ИсходныйЯзык); КонецЕсли; - HTTPЗапрос.УстановитьТелоИзСтроки(ЗначениеВJSON(ПараметрыЗапроса)); + HTTPЗапрос.УстановитьТелоИзСтроки(ОбщегоНазначения.ЗначениеВJSON(ПараметрыЗапроса)); РезультатЗапроса = ВыполнитьЗапрос(HTTPЗапрос, ИмяХоста); Если Не РезультатЗапроса.ЗапросВыполнен Тогда ВызватьИсключение ТекстОшибки(НСтр("ru = 'Не удалось выполнить перевод текста.'")); КонецЕсли; - ОтветСервера = JSONВЗначение(РезультатЗапроса.ОтветСервера); + ОтветСервера = ОбщегоНазначения.JSONВЗначение(РезультатЗапроса.ОтветСервера); Результат = Новый Соответствие; Для Индекс = 0 По Тексты.ВГраница() Цикл @@ -109,7 +109,7 @@ ПараметрыЗапроса.Вставить("yandexPassportOauthToken", НастройкиАвторизации().OAuthТокен); УстановитьПривилегированныйРежим(Ложь); - HTTPЗапрос.УстановитьТелоИзСтроки(ЗначениеВJSON(ПараметрыЗапроса)); + HTTPЗапрос.УстановитьТелоИзСтроки(ОбщегоНазначения.ЗначениеВJSON(ПараметрыЗапроса)); РезультатЗапроса = ВыполнитьЗапрос(HTTPЗапрос, ИмяХоста); @@ -118,7 +118,7 @@ "ru = 'Не удалось авторизоваться в сервисе %1.'"), "Yandex.Cloud")); КонецЕсли; - НастройкаАвторизации = JSONВЗначение(РезультатЗапроса.ОтветСервера, "expiresAt"); + НастройкаАвторизации = ОбщегоНазначения.JSONВЗначение(РезультатЗапроса.ОтветСервера, "expiresAt"); IAMТокен = НастройкаАвторизации["iamToken"]; СрокДействия = НастройкаАвторизации["expiresAt"]; @@ -145,7 +145,7 @@ ПараметрыЗапроса.Вставить("folder_id", НастройкиАвторизации().ИдентификаторКаталога); УстановитьПривилегированныйРежим(Ложь); - HTTPЗапрос.УстановитьТелоИзСтроки(ЗначениеВJSON(ПараметрыЗапроса)); + HTTPЗапрос.УстановитьТелоИзСтроки(ОбщегоНазначения.ЗначениеВJSON(ПараметрыЗапроса)); РезультатЗапроса = ВыполнитьЗапрос(HTTPЗапрос, ИмяХоста); @@ -154,7 +154,7 @@ КонецЕсли; Результат = Новый Массив; - ДоступныеЯзыки = JSONВЗначение(РезультатЗапроса.ОтветСервера); + ДоступныеЯзыки = ОбщегоНазначения.JSONВЗначение(РезультатЗапроса.ОтветСервера); Для Каждого Язык Из ДоступныеЯзыки["languages"] Цикл КодЯзыка = Язык["code"]; Если ЗначениеЗаполнено(КодЯзыка) Тогда @@ -195,7 +195,7 @@ Если HTTPОтвет.КодСостояния = 401 Или HTTPОтвет.КодСостояния = 403 Тогда - ИнформацияОбОшибке = JSONВЗначение(HTTPОтвет.ПолучитьТелоКакСтроку()); + ИнформацияОбОшибке = ОбщегоНазначения.JSONВЗначение(HTTPОтвет.ПолучитьТелоКакСтроку()); ВызватьИсключение ИнформацияОбОшибке["message"]; КонецЕсли; @@ -257,19 +257,6 @@ КонецФункции -Функция ЗначениеВJSON(Значение) - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.УстановитьСтроку(); - ЗаписатьJSON(ЗаписьJSON, Значение); - Возврат ЗаписьJSON.Закрыть(); -КонецФункции - -Функция JSONВЗначение(Строка, ИменаСвойствСоЗначениямиДата = Неопределено) - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(Строка); - Возврат ПрочитатьJSON(ЧтениеJSON, Истина, ИменаСвойствСоЗначениямиДата); -КонецФункции - Процедура ЗаписатьОшибкуВЖурналРегистрации(Комментарий) ЗаписьЖурналаРегистрации(НСтр("ru = 'Перевод текста'", ОбщегоНазначения.КодОсновногоЯзыка()), diff --git a/SSL/src/CommonPictures/ВажностьВысокая/Picture.svg b/SSL/src/CommonPictures/ВажностьВысокая/Picture.svg new file mode 100644 index 000000000..b9a5538a9 --- /dev/null +++ b/SSL/src/CommonPictures/ВажностьВысокая/Picture.svg @@ -0,0 +1,11 @@ +<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> +<g clip-path="url(#clip0_55_16)"> +<path d="M10 1H7L7.5 10H9.5L10 1Z" fill="#E83636"/> +<path d="M8.5 15C9.32843 15 10 14.3284 10 13.5C10 12.6716 9.32843 12 8.5 12C7.67157 12 7 12.6716 7 13.5C7 14.3284 7.67157 15 8.5 15Z" fill="#E83636"/> +</g> +<defs> +<clipPath id="clip0_55_16"> +<rect width="16" height="16" fill="white"/> +</clipPath> +</defs> +</svg> diff --git a/SSL/src/CommonPictures/ВажностьВысокая/ВажностьВысокая.mdo b/SSL/src/CommonPictures/ВажностьВысокая/ВажностьВысокая.mdo new file mode 100644 index 000000000..bd787dee8 --- /dev/null +++ b/SSL/src/CommonPictures/ВажностьВысокая/ВажностьВысокая.mdo @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:CommonPicture xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6fc12a2d-a346-48be-8214-c5f3d5208524"> + <name>ВажностьВысокая</name> + <synonym> + <key>ru</key> + <value>Важность высокая</value> + </synonym> +</mdclass:CommonPicture> diff --git a/SSL/src/CommonPictures/ВажностьНеЗадана/Picture.svg b/SSL/src/CommonPictures/ВажностьНеЗадана/Picture.svg new file mode 100644 index 000000000..5fbe0893c --- /dev/null +++ b/SSL/src/CommonPictures/ВажностьНеЗадана/Picture.svg @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> + <defs> + <clipPath id="clip0_55_16"> + <rect fill="white" height="16" id="svg_1" width="16"/> + </clipPath> + </defs> + <g class="layer"> + <title>Layer 1 + + + + + + + \ No newline at end of file diff --git a/SSL/src/CommonPictures/ВажностьНеЗадана/ВажностьНеЗадана.mdo b/SSL/src/CommonPictures/ВажностьНеЗадана/ВажностьНеЗадана.mdo new file mode 100644 index 000000000..1f90e77a1 --- /dev/null +++ b/SSL/src/CommonPictures/ВажностьНеЗадана/ВажностьНеЗадана.mdo @@ -0,0 +1,8 @@ + + + ВажностьНеЗадана + + ru + Важность не задана + + diff --git a/SSL/src/CommonPictures/ВажностьНизкая/Picture.svg b/SSL/src/CommonPictures/ВажностьНизкая/Picture.svg new file mode 100644 index 000000000..e5dec51fb --- /dev/null +++ b/SSL/src/CommonPictures/ВажностьНизкая/Picture.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/SSL/src/CommonPictures/ВажностьНизкая/ВажностьНизкая.mdo b/SSL/src/CommonPictures/ВажностьНизкая/ВажностьНизкая.mdo new file mode 100644 index 000000000..5e1e2d2de --- /dev/null +++ b/SSL/src/CommonPictures/ВажностьНизкая/ВажностьНизкая.mdo @@ -0,0 +1,8 @@ + + + ВажностьНизкая + + ru + Важность низкая + + diff --git a/SSL/src/CommonPictures/КоллекцияВариантыВажности/Picture.svg b/SSL/src/CommonPictures/КоллекцияВариантыВажности/Picture.svg new file mode 100644 index 000000000..5e29ee40c --- /dev/null +++ b/SSL/src/CommonPictures/КоллекцияВариантыВажности/Picture.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/SSL/src/CommonPictures/КоллекцияВариантыВажности/Picture.zip b/SSL/src/CommonPictures/КоллекцияВариантыВажности/Picture.zip deleted file mode 100644 index f15637833..000000000 Binary files a/SSL/src/CommonPictures/КоллекцияВариантыВажности/Picture.zip and /dev/null differ diff --git a/SSL/src/CommonPictures/Метка/Picture.svg b/SSL/src/CommonPictures/Метка/Picture.svg new file mode 100644 index 000000000..62dc6d7ee --- /dev/null +++ b/SSL/src/CommonPictures/Метка/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/Метка/Метка.mdo b/SSL/src/CommonPictures/Метка/Метка.mdo new file mode 100644 index 000000000..a97c8ae1f --- /dev/null +++ b/SSL/src/CommonPictures/Метка/Метка.mdo @@ -0,0 +1,8 @@ + + + Метка + + ru + Метка + + diff --git a/SSL/src/CommonPictures/МеткаГолубая/Picture.svg b/SSL/src/CommonPictures/МеткаГолубая/Picture.svg new file mode 100644 index 000000000..704a3f308 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаГолубая/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/МеткаГолубая/МеткаГолубая.mdo b/SSL/src/CommonPictures/МеткаГолубая/МеткаГолубая.mdo new file mode 100644 index 000000000..2e0ce7006 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаГолубая/МеткаГолубая.mdo @@ -0,0 +1,8 @@ + + + МеткаГолубая + + ru + Метка голубая + + diff --git a/SSL/src/CommonPictures/МеткаЖелтая/Picture.svg b/SSL/src/CommonPictures/МеткаЖелтая/Picture.svg new file mode 100644 index 000000000..04821b351 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаЖелтая/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/МеткаЖелтая/МеткаЖелтая.mdo b/SSL/src/CommonPictures/МеткаЖелтая/МеткаЖелтая.mdo new file mode 100644 index 000000000..c6e6076d1 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаЖелтая/МеткаЖелтая.mdo @@ -0,0 +1,8 @@ + + + МеткаЖелтая + + ru + Метка желтая + + diff --git a/SSL/src/CommonPictures/МеткаЗеленая/Picture.svg b/SSL/src/CommonPictures/МеткаЗеленая/Picture.svg new file mode 100644 index 000000000..71c92a87f --- /dev/null +++ b/SSL/src/CommonPictures/МеткаЗеленая/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/МеткаЗеленая/МеткаЗеленая.mdo b/SSL/src/CommonPictures/МеткаЗеленая/МеткаЗеленая.mdo new file mode 100644 index 000000000..f0dafd1c0 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаЗеленая/МеткаЗеленая.mdo @@ -0,0 +1,8 @@ + + + МеткаЗеленая + + ru + Метка зеленая + + diff --git a/SSL/src/CommonPictures/МеткаКрасная/Picture.svg b/SSL/src/CommonPictures/МеткаКрасная/Picture.svg new file mode 100644 index 000000000..a2fc8acd7 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаКрасная/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/МеткаКрасная/МеткаКрасная.mdo b/SSL/src/CommonPictures/МеткаКрасная/МеткаКрасная.mdo new file mode 100644 index 000000000..cd0273bc6 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаКрасная/МеткаКрасная.mdo @@ -0,0 +1,8 @@ + + + МеткаКрасная + + ru + Метка красная + + diff --git a/SSL/src/CommonPictures/МеткаЛаймовая/Picture.svg b/SSL/src/CommonPictures/МеткаЛаймовая/Picture.svg new file mode 100644 index 000000000..3455d733e --- /dev/null +++ b/SSL/src/CommonPictures/МеткаЛаймовая/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/МеткаЛаймовая/МеткаЛаймовая.mdo b/SSL/src/CommonPictures/МеткаЛаймовая/МеткаЛаймовая.mdo new file mode 100644 index 000000000..93352d0fb --- /dev/null +++ b/SSL/src/CommonPictures/МеткаЛаймовая/МеткаЛаймовая.mdo @@ -0,0 +1,8 @@ + + + МеткаЛаймовая + + ru + Метка лаймовая + + diff --git a/SSL/src/CommonPictures/МеткаОранжевая/Picture.svg b/SSL/src/CommonPictures/МеткаОранжевая/Picture.svg new file mode 100644 index 000000000..35d44d7c9 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаОранжевая/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/МеткаОранжевая/МеткаОранжевая.mdo b/SSL/src/CommonPictures/МеткаОранжевая/МеткаОранжевая.mdo new file mode 100644 index 000000000..5e29fe773 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаОранжевая/МеткаОранжевая.mdo @@ -0,0 +1,8 @@ + + + МеткаОранжевая + + ru + Метка оранжевая + + diff --git a/SSL/src/CommonPictures/МеткаРозовая/Picture.svg b/SSL/src/CommonPictures/МеткаРозовая/Picture.svg new file mode 100644 index 000000000..3efc5d1ce --- /dev/null +++ b/SSL/src/CommonPictures/МеткаРозовая/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/МеткаРозовая/МеткаРозовая.mdo b/SSL/src/CommonPictures/МеткаРозовая/МеткаРозовая.mdo new file mode 100644 index 000000000..b524dd6d4 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаРозовая/МеткаРозовая.mdo @@ -0,0 +1,8 @@ + + + МеткаРозовая + + ru + Метка розовая + + diff --git a/SSL/src/CommonPictures/МеткаСерая/Picture.svg b/SSL/src/CommonPictures/МеткаСерая/Picture.svg new file mode 100644 index 000000000..fd2853e2a --- /dev/null +++ b/SSL/src/CommonPictures/МеткаСерая/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/МеткаСерая/МеткаСерая.mdo b/SSL/src/CommonPictures/МеткаСерая/МеткаСерая.mdo new file mode 100644 index 000000000..1dcc497bd --- /dev/null +++ b/SSL/src/CommonPictures/МеткаСерая/МеткаСерая.mdo @@ -0,0 +1,8 @@ + + + МеткаСерая + + ru + Метка серая + + diff --git a/SSL/src/CommonPictures/МеткаСиняя/Picture.svg b/SSL/src/CommonPictures/МеткаСиняя/Picture.svg new file mode 100644 index 000000000..1ef7ab344 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаСиняя/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/МеткаСиняя/МеткаСиняя.mdo b/SSL/src/CommonPictures/МеткаСиняя/МеткаСиняя.mdo new file mode 100644 index 000000000..efc67652d --- /dev/null +++ b/SSL/src/CommonPictures/МеткаСиняя/МеткаСиняя.mdo @@ -0,0 +1,8 @@ + + + МеткаСиняя + + ru + Метка синяя + + diff --git a/SSL/src/CommonPictures/МеткаФиолетовая/Picture.svg b/SSL/src/CommonPictures/МеткаФиолетовая/Picture.svg new file mode 100644 index 000000000..17f1fb379 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаФиолетовая/Picture.svg @@ -0,0 +1,3 @@ + + + diff --git a/SSL/src/CommonPictures/МеткаФиолетовая/МеткаФиолетовая.mdo b/SSL/src/CommonPictures/МеткаФиолетовая/МеткаФиолетовая.mdo new file mode 100644 index 000000000..53c560659 --- /dev/null +++ b/SSL/src/CommonPictures/МеткаФиолетовая/МеткаФиолетовая.mdo @@ -0,0 +1,8 @@ + + + МеткаФиолетовая + + ru + Метка фиолетовая + + diff --git a/SSL/src/CommonPictures/НазначенияВариантовОтчетов/Picture.png b/SSL/src/CommonPictures/НазначенияВариантовОтчетов/Picture.png new file mode 100644 index 000000000..94786542b Binary files /dev/null and b/SSL/src/CommonPictures/НазначенияВариантовОтчетов/Picture.png differ diff --git a/SSL/src/CommonPictures/НазначенияВариантовОтчетов/НазначенияВариантовОтчетов.mdo b/SSL/src/CommonPictures/НазначенияВариантовОтчетов/НазначенияВариантовОтчетов.mdo new file mode 100644 index 000000000..3655c7fb3 --- /dev/null +++ b/SSL/src/CommonPictures/НазначенияВариантовОтчетов/НазначенияВариантовОтчетов.mdo @@ -0,0 +1,8 @@ + + + НазначенияВариантовОтчетов + + ru + Назначения вариантов отчетов + + diff --git a/SSL/src/CommonPictures/ОбновитьФайлИзФайлаНаДиске/ОбновитьФайлИзФайлаНаДиске.mdo b/SSL/src/CommonPictures/ОбновитьФайлИзФайлаНаДиске/ОбновитьФайлИзФайлаНаДиске.mdo index 388388a9a..5d54fdc3e 100644 --- a/SSL/src/CommonPictures/ОбновитьФайлИзФайлаНаДиске/ОбновитьФайлИзФайлаНаДиске.mdo +++ b/SSL/src/CommonPictures/ОбновитьФайлИзФайлаНаДиске/ОбновитьФайлИзФайлаНаДиске.mdo @@ -3,6 +3,6 @@ ОбновитьФайлИзФайлаНаДиске ru - Обновить файл из файла на диске + Обновить файл с компьютера diff --git a/SSL/src/CommonPictures/ПиктограммыСвойств/Picture.png b/SSL/src/CommonPictures/ПиктограммыСвойств/Picture.png new file mode 100644 index 000000000..23ad91c6b Binary files /dev/null and b/SSL/src/CommonPictures/ПиктограммыСвойств/Picture.png differ diff --git a/SSL/src/CommonPictures/ПиктограммыСвойств/ПиктограммыСвойств.mdo b/SSL/src/CommonPictures/ПиктограммыСвойств/ПиктограммыСвойств.mdo new file mode 100644 index 000000000..f585789e1 --- /dev/null +++ b/SSL/src/CommonPictures/ПиктограммыСвойств/ПиктограммыСвойств.mdo @@ -0,0 +1,8 @@ + + + ПиктограммыСвойств + + ru + Пиктограммы свойств + + diff --git a/SSL/src/CommonPictures/РедактироватьМетки/Picture.svg b/SSL/src/CommonPictures/РедактироватьМетки/Picture.svg new file mode 100644 index 000000000..65057556c --- /dev/null +++ b/SSL/src/CommonPictures/РедактироватьМетки/Picture.svg @@ -0,0 +1,4 @@ + + + + diff --git a/SSL/src/CommonPictures/РедактироватьМетки/РедактироватьМетки.mdo b/SSL/src/CommonPictures/РедактироватьМетки/РедактироватьМетки.mdo new file mode 100644 index 000000000..5c516ab2c --- /dev/null +++ b/SSL/src/CommonPictures/РедактироватьМетки/РедактироватьМетки.mdo @@ -0,0 +1,8 @@ + + + РедактироватьМетки + + ru + Редактировать метки + + diff --git a/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx b/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx index 973444c60..53ff39914 100644 --- a/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx +++ b/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx @@ -3376,8 +3376,24 @@ 1 1 + + Text + 2 + 51 + 42 + 0 + 43 + 30 + 25 + 51 + 30 + 3 + false + Stretch + 2 + true - 51 + 52 69 69 @@ -3395,6 +3411,10 @@ 20 8 + + Сканировать + 2 + Columns -1 @@ -3408,8 +3428,12 @@ LargeDashed + + None + + 24 @@ -3680,6 +3704,15 @@ 0 + + false + 2 + 2 + Top + style:ГиперссылкаЦвет + style:FieldBackColor + true + 72 diff --git a/SSL/src/CommonTemplates/КомпонентаTWAIN/Template.addin b/SSL/src/CommonTemplates/КомпонентаTWAIN/Template.addin index 7c60670a4..9b2ef4171 100644 Binary files a/SSL/src/CommonTemplates/КомпонентаTWAIN/Template.addin and b/SSL/src/CommonTemplates/КомпонентаTWAIN/Template.addin differ diff --git a/SSL/src/Configuration/Configuration.mdo b/SSL/src/Configuration/Configuration.mdo index 729139b06..163cd5f20 100644 --- a/SSL/src/Configuration/Configuration.mdo +++ b/SSL/src/Configuration/Configuration.mdo @@ -1,17 +1,17 @@ - + БиблиотекаСтандартныхПодсистем ru Библиотека стандартных подсистем, редакция 3.1 - - - - - - - + + + + + + + ManagedApplication PersonalComputer Russian @@ -19,7 +19,7 @@ Role.АдминистраторСистемы Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок Фирма "1С" - 3.1.8.375 + 3.1.9.74 http://downloads.v8.1c.ru/tmplts/ true @@ -134,9 +134,20 @@ StyleItem.ФонРезультатовПоиска StyleItem.ФонУправляющегоПоля StyleItem.ЦветИзмененногоПоля + StyleItem.ЦветМеткиГолубой + StyleItem.ЦветМеткиЖелтый + StyleItem.ЦветМеткиЗеленый + StyleItem.ЦветМеткиКрасный + StyleItem.ЦветМеткиЛаймовый + StyleItem.ЦветМеткиОранжевый + StyleItem.ЦветМеткиРозовый + StyleItem.ЦветМеткиСерый + StyleItem.ЦветМеткиСиний + StyleItem.ЦветМеткиФиолетовый StyleItem.ЦветПустойГиперссылки StyleItem.ЦветРазделаПанелиФункций StyleItem.ЦветТекстаВнимание + StyleItem.ЦветТекстаМетки StyleItem.ЦветТекстаНевыбраннойКартинки StyleItem.ЦветТекстаОтрицательногоЗначения StyleItem.ЦветТекстаПоложительногоЗначения @@ -144,6 +155,7 @@ StyleItem.ЦветФонаОтрицательногоЗначения StyleItem.ЦветФонаПоложительногоЗначения StyleItem.ЦветФонаПредупреждения + StyleItem.ШрифтМеток CommonPicture.BotFather CommonPicture.BotFatherВконтакте CommonPicture.GoogleMaps @@ -157,6 +169,9 @@ CommonPicture.БыстрыйДоступДобавить CommonPicture.БыстрыйДоступСФлажком CommonPicture.БыстрыйДоступУдалить + CommonPicture.ВажностьВысокая + CommonPicture.ВажностьНеЗадана + CommonPicture.ВажностьНизкая CommonPicture.ВариантыОтчетовДоступныеВсемПользователям CommonPicture.ВводимыеСимволыВидны CommonPicture.ВводимыеСимволыСкрыты @@ -369,7 +384,19 @@ CommonPicture.МетаданныеХранилищаНастроек CommonPicture.МетаданныеЭлементыСтиля CommonPicture.МетаданныеЯзыки + CommonPicture.Метка + CommonPicture.МеткаГолубая + CommonPicture.МеткаЖелтая + CommonPicture.МеткаЗеленая + CommonPicture.МеткаКрасная + CommonPicture.МеткаЛаймовая + CommonPicture.МеткаОранжевая + CommonPicture.МеткаРозовая + CommonPicture.МеткаСерая + CommonPicture.МеткаСиняя + CommonPicture.МеткаФиолетовая CommonPicture.Минимум + CommonPicture.НазначенияВариантовОтчетов CommonPicture.НаписатьSMS CommonPicture.Напоминание CommonPicture.НаследованиеВключено @@ -427,6 +454,7 @@ CommonPicture.ПиктограммыДоступаКНастройкамОтчета CommonPicture.ПиктограммыНастроекОтчета CommonPicture.ПиктограммыПланОбменаУзел + CommonPicture.ПиктограммыСвойств CommonPicture.ПиктограммыТиповДанных CommonPicture.ПиктограммыЭлементов CommonPicture.ПиктограммыЭлементовСправочникаСостоянияОригиналовПервичныхДокументов @@ -485,6 +513,7 @@ CommonPicture.РасширениеКонфигурацииИзГлавногоУзла CommonPicture.РедактироватьАдресСайта CommonPicture.РедактироватьМакет + CommonPicture.РедактироватьМетки CommonPicture.РедактироватьФайл CommonPicture.РежимИспользованияПриложенияВСервисеЛокально CommonPicture.СдвинутьВверх @@ -743,6 +772,7 @@ Role.ДобавлениеИзменениеРолейИсполнителей Role.ДобавлениеИзменениеСерверовDSS Role.ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования + Role.ДобавлениеИзменениеСнимковОтчетов Role.ДобавлениеИзменениеСостоянийОригиналовПервичныхДокументов Role.ДобавлениеИзменениеУчетныхЗаписейСерверовDSS Role.ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты @@ -777,6 +807,7 @@ Role.РедактированиеРеквизитовОбъектов Role.РежимТехническогоСпециалиста Role.СохранениеДанныхПользователя + Role.УдалениеЭлектронныхПодписей Role.УдаленныйДоступOData Role.УдаленныйДоступБазоваяФункциональность Role.УдаленныйДоступОбменДаннымиВМоделиСервиса @@ -996,6 +1027,7 @@ CommonModule.ОбменДаннымиГлобальный CommonModule.ОбменДаннымиКлиент CommonModule.ОбменДаннымиКонтрольЗацикливания + CommonModule.ОбменДаннымиОценкаПроизводительности CommonModule.ОбменДаннымиПереопределяемый CommonModule.ОбменДаннымиПовтИсп CommonModule.ОбменДаннымиРегистрацияПовтИсп @@ -1371,6 +1403,7 @@ WebService.Exchange_2_0_1_6 WebService.Exchange_3_0_1_1 WebService.Exchange_3_0_2_1 + WebService.Exchange_3_0_2_2 WebService.InterfaceVersion WebService.RemoteAdministrationOfExchange WebService.RemoteAdministrationOfExchange_2_0_1_6 @@ -1406,7 +1439,9 @@ EventSubscription.ЗарегистрироватьИзмененияФильтровОграниченияМиграцииДанных EventSubscription.КонтактнаяИнформацияОбработкаПроверкиЗаполнения EventSubscription.КонтрольНеразделенныхНаборовЗаписейПриЗаписи + EventSubscription.КонтрольНеразделенныхНаборовЗаписейПриЗаписиБСД EventSubscription.КонтрольНеразделенныхОбъектовПриЗаписи + EventSubscription.КонтрольНеразделенныхОбъектовПриЗаписиБСД EventSubscription.ОбновитьВнешнегоПользователя EventSubscription.ОбновитьГруппыВладельцевНастроекПрав EventSubscription.ОбновитьГруппыЗначенийДоступа @@ -1503,6 +1538,7 @@ ScheduledJob.СтартОтложенныхПроцессов ScheduledJob.УведомлениеИсполнителейОНовыхЗадачах ScheduledJob.УдалениеНеактуальнойИнформацииСинхронизации + ScheduledJob.УдалениеНеиспользуемыхВнешнихКомпонент ScheduledJob.УдалениеПомеченныхОбъектов ScheduledJob.УдалениеУстаревшихПараметровРаботыВерсийРасширений ScheduledJob.УстановкаПериодаРассчитанныхИтогов @@ -1586,6 +1622,7 @@ DefinedType.БезопасныйРежим DefinedType.БизнесПроцесс DefinedType.БизнесПроцессОбъект + DefinedType.ВариантОбновляемогоОтчета DefinedType.ВерсионируемыеДанные DefinedType.ВерсионируемыеДанныеОбъект DefinedType.ВладелецВнешнихЗначенийВНаборахЗначенийДоступаОбъект @@ -1597,6 +1634,7 @@ DefinedType.ВладелецЗначенийКлючейДоступаНаборЗаписейРегистраРасчета DefinedType.ВладелецЗначенийКлючейДоступаОбъект DefinedType.ВладелецКонтактнойИнформации + DefinedType.ВладелецМеток DefinedType.ВладелецНаборовЗначенийДоступаОбъект DefinedType.ВладелецНастроекПрав DefinedType.ВладелецНастроекПравОбъект @@ -1695,6 +1733,7 @@ CommonCommand.Синхронизировать CommonCommand.СинхронизироватьСДополнительнымиПараметрами CommonCommand.СменитьПароль + CommonCommand.СнимкиОтчетовДляАвтономногоРежима CommonCommand.СобытияОтправки CommonCommand.СобытияПолучения CommonCommand.СозданиеНачальногоОбразаСФайлами @@ -1763,6 +1802,7 @@ Constant.ИспользоватьНесколькоПроизводственныхКалендарей Constant.ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста Constant.ИспользоватьОтправкуSMSВШаблонахСообщений + Constant.ИспользоватьОценкуПроизводительностиСинхронизацииДанных Constant.ИспользоватьПодчиненныеБизнесПроцессы Constant.ИспользоватьПолнотекстовыйПоиск Constant.ИспользоватьПочтовыйКлиент @@ -1947,6 +1987,7 @@ CommonForm.РедактированиеГиперссылки CommonForm.РедактированиеДокументаOfficeOpen CommonForm.РедактированиеДополнительныхСведений + CommonForm.РедактированиеМеток CommonForm.РедактированиеТабличногоДокумента CommonForm.РезультатПроверки CommonForm.СвязанныеДокументы @@ -2015,6 +2056,7 @@ Catalog.ПрофилиКлючевыхОпераций Catalog.РассылкиОтчетов Catalog.РолиИсполнителей + Catalog.СеансыОбменовДанными Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования Catalog.СообщениеSMSПрисоединенныеФайлы Catalog.СостоянияОригиналовПервичныхДокументов @@ -2052,6 +2094,7 @@ Enum.ВариантыВажностиЗадачи Enum.ВариантыВерсионированияОбъектов Enum.ВариантыИспользованияВнешнихКомпонент + Enum.ВариантыОтображенияМеток Enum.ВариантыОчисткиФайлов Enum.ВариантыПериода Enum.ВариантыПредставленияПериода @@ -2062,6 +2105,7 @@ Enum.ВидыНазначенияДатЗапрета Enum.ВидыПереключателяВАнкетах Enum.ВидыПравилДляОбменаДанными + Enum.ВидыСвойств Enum.ВидыТранспортаСообщенийОбмена Enum.ВидыФлажкаВАнкетах Enum.ДействияПриОбмене @@ -2070,6 +2114,7 @@ Enum.ДополнительныеЗначенияДоступа Enum.ДоступныеПериодыОтчета Enum.ИсточникиПравилДляОбменаДанными + Enum.НазначенияВариантовОтчетов Enum.ОперацииАдминистрированияПрофилейБезопасности Enum.ПериодичностиРасписанийРассылокОтчетов Enum.ПериодОчисткиФайлов @@ -2132,6 +2177,7 @@ Enum.ФорматыХраненияМногостраничныхФайлов Enum.ФорматыХраненияОдностраничныхФайлов Enum.ЦветаЗаметок + Enum.ЦветаСвойств Enum.ЦветностиИзображения Report.АнализВерсийОбъектов Report.АнализЖурналаРегистрации @@ -2374,6 +2420,7 @@ InformationRegister.СессииОбменаСообщениямиСистемы InformationRegister.СклоненияПредставленийОбъектов InformationRegister.СлужебныеАдресныеСведения + InformationRegister.СнимкиОтчетов InformationRegister.СогласияНаОбработкуПерсональныхДанных InformationRegister.СообщенияОбменаДанными InformationRegister.СообщенияОбменаДаннымиОбластейДанных diff --git a/SSL/src/Configuration/ManagedApplicationModule.bsl b/SSL/src/Configuration/ManagedApplicationModule.bsl index 578de3110..605d485c9 100644 --- a/SSL/src/Configuration/ManagedApplicationModule.bsl +++ b/SSL/src/Configuration/ManagedApplicationModule.bsl @@ -35,18 +35,30 @@ Процедура ПередНачаломРаботыСистемы() +#Если МобильныйКлиент Тогда + Если ОсновнойСерверДоступен() = Ложь Тогда + Возврат; + КонецЕсли; +#КонецЕсли + // СтандартныеПодсистемы +#Если МобильныйКлиент Тогда + Выполнить("СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы()"); +#Иначе СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы(); +#КонецЕсли // Конец СтандартныеПодсистемы - - КонецПроцедуры Процедура ПриНачалеРаботыСистемы() // СтандартныеПодсистемы +#Если МобильныйКлиент Тогда + Выполнить("СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы()"); +#Иначе СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы(); +#КонецЕсли // Конец СтандартныеПодсистемы КонецПроцедуры @@ -54,7 +66,11 @@ Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения) // СтандартныеПодсистемы +#Если МобильныйКлиент Тогда + Выполнить("СтандартныеПодсистемыКлиент.ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения)"); +#Иначе СтандартныеПодсистемыКлиент.ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения); +#КонецЕсли // Конец СтандартныеПодсистемы КонецПроцедуры @@ -63,8 +79,13 @@ Форма, ИдентификаторОбсуждения, Параметры, ВыбраннаяФорма, СтандартнаяОбработка) // СтандартныеПодсистемы +#Если МобильныйКлиент Тогда + Выполнить("СтандартныеПодсистемыКлиент.ОбработкаПолученияФормыВыбораПользователейСистемыВзаимодействия(НазначениеВыбора, + |Форма, ИдентификаторОбсуждения, Параметры, ВыбраннаяФорма, СтандартнаяОбработка)"); +#Иначе СтандартныеПодсистемыКлиент.ОбработкаПолученияФормыВыбораПользователейСистемыВзаимодействия(НазначениеВыбора, Форма, ИдентификаторОбсуждения, Параметры, ВыбраннаяФорма, СтандартнаяОбработка); +#КонецЕсли // Конец СтандартныеПодсистемы КонецПроцедуры diff --git a/SSL/src/Configuration/OrdinaryApplicationModule.bsl b/SSL/src/Configuration/OrdinaryApplicationModule.bsl index 578de3110..605d485c9 100644 --- a/SSL/src/Configuration/OrdinaryApplicationModule.bsl +++ b/SSL/src/Configuration/OrdinaryApplicationModule.bsl @@ -35,18 +35,30 @@ Процедура ПередНачаломРаботыСистемы() +#Если МобильныйКлиент Тогда + Если ОсновнойСерверДоступен() = Ложь Тогда + Возврат; + КонецЕсли; +#КонецЕсли + // СтандартныеПодсистемы +#Если МобильныйКлиент Тогда + Выполнить("СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы()"); +#Иначе СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы(); +#КонецЕсли // Конец СтандартныеПодсистемы - - КонецПроцедуры Процедура ПриНачалеРаботыСистемы() // СтандартныеПодсистемы +#Если МобильныйКлиент Тогда + Выполнить("СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы()"); +#Иначе СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы(); +#КонецЕсли // Конец СтандартныеПодсистемы КонецПроцедуры @@ -54,7 +66,11 @@ Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения) // СтандартныеПодсистемы +#Если МобильныйКлиент Тогда + Выполнить("СтандартныеПодсистемыКлиент.ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения)"); +#Иначе СтандартныеПодсистемыКлиент.ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения); +#КонецЕсли // Конец СтандартныеПодсистемы КонецПроцедуры @@ -63,8 +79,13 @@ Форма, ИдентификаторОбсуждения, Параметры, ВыбраннаяФорма, СтандартнаяОбработка) // СтандартныеПодсистемы +#Если МобильныйКлиент Тогда + Выполнить("СтандартныеПодсистемыКлиент.ОбработкаПолученияФормыВыбораПользователейСистемыВзаимодействия(НазначениеВыбора, + |Форма, ИдентификаторОбсуждения, Параметры, ВыбраннаяФорма, СтандартнаяОбработка)"); +#Иначе СтандартныеПодсистемыКлиент.ОбработкаПолученияФормыВыбораПользователейСистемыВзаимодействия(НазначениеВыбора, Форма, ИдентификаторОбсуждения, Параметры, ВыбраннаяФорма, СтандартнаяОбработка); +#КонецЕсли // Конец СтандартныеПодсистемы КонецПроцедуры diff --git a/SSL/src/Configuration/ParentConfigurations.bin b/SSL/src/Configuration/ParentConfigurations.bin index 3bdc8045b..da76c5303 100644 --- a/SSL/src/Configuration/ParentConfigurations.bin +++ b/SSL/src/Configuration/ParentConfigurations.bin @@ -1 +1 @@ -{6,1,1,71238a55-c9a4-4b29-9b00-07400c1b2ef7,1,2bcb62b2-2e4c-402f-ae27-8cb3225adaa0,"3.1.8.375","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7172,1,0,466de33c-1f92-402c-b16c-8149232856ff,466de33c-1f92-402c-b16c-8149232856ff,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5-45fc-8da2-a36c435085a6,1,0,ab7e5f9a-1dfe-4165-a540-21f45ae1d94d,ab7e5f9a-1dfe-4165-a540-21f45ae1d94d,1,0,5d16e042-3889-4851-86f1-bc43bf06ee88,5d16e042-3889-4851-86f1-bc43bf06ee88,1,0,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,1,0,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,1,0,e0d3efe0-a321-4790-ba5d-e549a91a3ec6,e0d3efe0-a321-4790-ba5d-e549a91a3ec6,1,0,e39ecc8a-ce81-483d-85de-b0488c8b7749,e39ecc8a-ce81-483d-85de-b0488c8b7749,1,0,8f3b124f-bf85-4307-8f0c-47be1fb5c8b0,8f3b124f-bf85-4307-8f0c-47be1fb5c8b0,1,0,e15c3525-3453-4b62-834e-7c69f9efea51,e15c3525-3453-4b62-834e-7c69f9efea51,1,0,1514eaff-faea-4d82-9465-d0d5292bb31d,1514eaff-faea-4d82-9465-d0d5292bb31d,1,0,6d39c6df-8cd4-47ad-9125-252b37d94575,6d39c6df-8cd4-47ad-9125-252b37d94575,1,0,bc89af7a-1971-4245-8d88-1a5a50c50a8b,bc89af7a-1971-4245-8d88-1a5a50c50a8b,1,0,ad73f3a3-1dad-4920-af41-bda2b947a2f7,ad73f3a3-1dad-4920-af41-bda2b947a2f7,1,0,98b67b5a-3550-4a64-9e07-07fcc9154c73,98b67b5a-3550-4a64-9e07-07fcc9154c73,1,0,ad7c6165-2e44-4808-a77a-526882cf5dea,ad7c6165-2e44-4808-a77a-526882cf5dea,1,0,fd930b50-4ada-4e7f-8bfd-ed9a7c4e8964,fd930b50-4ada-4e7f-8bfd-ed9a7c4e8964,1,0,fa2a9ef2-00a1-44f4-a82c-6c7288dd62dc,fa2a9ef2-00a1-44f4-a82c-6c7288dd62dc,1,0,b7e435a9-6107-4d02-a949-cff793462e31,b7e435a9-6107-4d02-a949-cff793462e31,1,0,f0cda8f5-56f5-423b-8c1c-7113433ebf25,f0cda8f5-56f5-423b-8c1c-7113433ebf25,1,0,1a220e88-428b-4d85-926d-e572bf19997c,1a220e88-428b-4d85-926d-e572bf19997c,1,0,ca0d938b-244e-421f-9fa4-320784b9f416,ca0d938b-244e-421f-9fa4-320784b9f416,1,0,a108b11d-a489-4684-84ea-d5377c7394de,a108b11d-a489-4684-84ea-d5377c7394de,1,0,289a2d84-2477-4177-a6ef-507e2cadeea2,289a2d84-2477-4177-a6ef-507e2cadeea2,1,0,1c877cee-d9b8-48dc-8d79-04d27bb522f7,1c877cee-d9b8-48dc-8d79-04d27bb522f7,1,0,dd911418-ee16-4413-bfe9-4a5a238d3ce1,dd911418-ee16-4413-bfe9-4a5a238d3ce1,1,0,61cd6eab-6bab-4382-986e-4c7fc44f369b,61cd6eab-6bab-4382-986e-4c7fc44f369b,1,0,ea36c426-2b43-4232-9978-0104bafd345d,ea36c426-2b43-4232-9978-0104bafd345d,1,0,757b547b-b79c-459a-a64a-eef19a09a38f,757b547b-b79c-459a-a64a-eef19a09a38f,1,0,3d428bdf-c41b-43ac-957e-2943406c832c,3d428bdf-c41b-43ac-957e-2943406c832c,1,0,85cbc0b7-6aa5-455b-abed-7bc659d9ad51,85cbc0b7-6aa5-455b-abed-7bc659d9ad51,1,0,950f8fd5-fefa-4bfb-97a0-38d77ae830dc,950f8fd5-fefa-4bfb-97a0-38d77ae830dc,1,0,cbbe7903-842c-470e-a2d6-7928df8f13e9,cbbe7903-842c-470e-a2d6-7928df8f13e9,1,0,e02597c4-bf45-4bb6-931d-62d2244f6c58,e02597c4-bf45-4bb6-931d-62d2244f6c58,1,0,75561d71-4b06-40fc-8a46-ed5d33c80dea,75561d71-4b06-40fc-8a46-ed5d33c80dea,1,0,42544966-445d-41b8-b6a0-a52c64758232,42544966-445d-41b8-b6a0-a52c64758232,1,0,a92d8a5c-b595-4c6c-9f1d-5e85b1c996b4,a92d8a5c-b595-4c6c-9f1d-5e85b1c996b4,1,0,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,1,0,5578afd2-5aed-4164-8467-52a66f4773c4,5578afd2-5aed-4164-8467-52a66f4773c4,1,0,9eea8645-1ba7-4faf-9c29-868bf99964dd,9eea8645-1ba7-4faf-9c29-868bf99964dd,1,0,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,1,0,654523be-93d9-4faa-9a35-ce2fede13820,654523be-93d9-4faa-9a35-ce2fede13820,1,0,0c44fdea-7b81-45be-87f5-d64456a9d379,0c44fdea-7b81-45be-87f5-d64456a9d379,1,0,d9bad22e-4049-4371-86a3-1b00ae6215af,d9bad22e-4049-4371-86a3-1b00ae6215af,1,0,d09d6f21-cdd0-485e-bd2c-92092a1aefef,d09d6f21-cdd0-485e-bd2c-92092a1aefef,1,0,2fc92784-d7b0-4209-ba06-e54bed2f160f,2fc92784-d7b0-4209-ba06-e54bed2f160f,1,0,d5a5f53b-9cd5-4036-a379-31680cec3c24,d5a5f53b-9cd5-4036-a379-31680cec3c24,1,0,85e05ed7-25ed-4148-8247-86ff531ec48d,85e05ed7-25ed-4148-8247-86ff531ec48d,1,0,dcd34215-200c-4d3c-828c-4c3cd8b17a81,dcd34215-200c-4d3c-828c-4c3cd8b17a81,1,0,e5b8ea5c-1d08-4f0a-a8f6-358b41e2e9f2,e5b8ea5c-1d08-4f0a-a8f6-358b41e2e9f2,1,0,4a046c9b-98a0-4d4f-8e0b-b162d3c6bfc5,4a046c9b-98a0-4d4f-8e0b-b162d3c6bfc5,1,0,a4e4c91c-fd95-4369-98e3-51ffba79937b,a4e4c91c-fd95-4369-98e3-51ffba79937b,1,0,0a83f9ec-eabe-4e8f-9fa9-0067acad6fc4,0a83f9ec-eabe-4e8f-9fa9-0067acad6fc4,1,0,d343d4e4-d07f-48c3-9db1-774b0d6c1134,d343d4e4-d07f-48c3-9db1-774b0d6c1134,1,0,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,1,0,5797e28d-1318-4728-8b17-bcb78d85349a,5797e28d-1318-4728-8b17-bcb78d85349a,1,0,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,1,0,9f9e6146-17ce-4296-a89f-33dfe4d0468d,9f9e6146-17ce-4296-a89f-33dfe4d0468d,1,0,3cf15377-a5bb-4c37-9780-0dbff8d3d5bb,3cf15377-a5bb-4c37-9780-0dbff8d3d5bb,1,0,3aa020db-a811-4fb9-9ea9-00a3359fbb53,3aa020db-a811-4fb9-9ea9-00a3359fbb53,1,0,968588bb-ee60-4399-955a-3ec4228d3c40,968588bb-ee60-4399-955a-3ec4228d3c40,1,0,c90e64cf-f5d4-47b9-8243-7177ac42202e,c90e64cf-f5d4-47b9-8243-7177ac42202e,1,0,23dbb528-7ea8-44ae-a1f2-b7608118666e,23dbb528-7ea8-44ae-a1f2-b7608118666e,1,0,b9627855-6773-4a59-b7d3-f9e2e565cd9e,b9627855-6773-4a59-b7d3-f9e2e565cd9e,1,0,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,1,0,46692974-34aa-45e1-8fec-9b36064073cd,46692974-34aa-45e1-8fec-9b36064073cd,1,0,a6308250-2b1b-40ef-bd20-589d519e3c38,a6308250-2b1b-40ef-bd20-589d519e3c38,1,0,22eafd3b-dc42-4a99-89af-3cd5311dc29f,22eafd3b-dc42-4a99-89af-3cd5311dc29f,1,0,c67f671a-3c83-44f4-9c6a-e06667ac8da6,c67f671a-3c83-44f4-9c6a-e06667ac8da6,1,0,283ce432-3553-4de9-94a2-ca9a590437f5,283ce432-3553-4de9-94a2-ca9a590437f5,1,0,1fbd4cfa-58cb-41ea-920e-a39cfa6ad90c,1fbd4cfa-58cb-41ea-920e-a39cfa6ad90c,1,0,5a83b75a-38b0-4d15-9c6f-c201fa97e485,5a83b75a-38b0-4d15-9c6f-c201fa97e485,1,0,0da019ca-1fc7-4aff-8998-3ddcccf10872,0da019ca-1fc7-4aff-8998-3ddcccf10872,1,0,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,1,0,34b0e268-497d-44d4-b822-84909d0685aa,34b0e268-497d-44d4-b822-84909d0685aa,1,0,8961a859-2203-4678-ae1f-63e2474a787a,8961a859-2203-4678-ae1f-63e2474a787a,1,0,fe63db47-3ece-4518-b6a2-0b6499f60a61,fe63db47-3ece-4518-b6a2-0b6499f60a61,1,0,f6dd250e-75fd-47fc-abcb-79ea19ebd747,f6dd250e-75fd-47fc-abcb-79ea19ebd747,1,0,53c41e6c-89b0-4818-9832-02140373979b,53c41e6c-89b0-4818-9832-02140373979b,1,0,671afc3e-7589-49d8-95a5-1cf195c3b2f8,671afc3e-7589-49d8-95a5-1cf195c3b2f8,1,0,47accdc7-8fa0-4996-9305-c42b6ca12df9,47accdc7-8fa0-4996-9305-c42b6ca12df9,1,0,57e75b31-13b3-46fc-8ec4-7570ab0e9928,57e75b31-13b3-46fc-8ec4-7570ab0e9928,1,0,5abc496c-5745-4220-9fdc-bac092717871,5abc496c-5745-4220-9fdc-bac092717871,1,0,8ad81449-0b75-4775-a841-ca7fc7bf0d43,8ad81449-0b75-4775-a841-ca7fc7bf0d43,1,0,6b29b4b3-df0a-42f7-b89f-809ffbdacf02,6b29b4b3-df0a-42f7-b89f-809ffbdacf02,1,0,43d8dd53-df3e-407e-a3c1-5b893cc1976c,43d8dd53-df3e-407e-a3c1-5b893cc1976c,1,0,7741dfee-c4cc-454d-8e01-99ee82a78b5a,7741dfee-c4cc-454d-8e01-99ee82a78b5a,1,0,61e246f4-fe19-4377-8f69-fd1cb90e3f88,61e246f4-fe19-4377-8f69-fd1cb90e3f88,1,0,05c9e6c3-3e1c-4311-99ac-ec4d59a37205,05c9e6c3-3e1c-4311-99ac-ec4d59a37205,1,0,d437805b-42a9-439d-aef8-abbebe280b69,d437805b-42a9-439d-aef8-abbebe280b69,1,0,b33ccec0-a085-4e91-a26d-c262775d92e8,b33ccec0-a085-4e91-a26d-c262775d92e8,1,0,8adeeac2-d2d0-4d90-b7cb-c7871da477d5,8adeeac2-d2d0-4d90-b7cb-c7871da477d5,1,0,9e082d71-175a-4e80-8cca-6b538d3240eb,9e082d71-175a-4e80-8cca-6b538d3240eb,1,0,b8c4aff0-a36d-4be9-9a5e-b0873d83ff15,b8c4aff0-a36d-4be9-9a5e-b0873d83ff15,1,0,68704139-32bb-4b00-b439-147025d06a35,68704139-32bb-4b00-b439-147025d06a35,1,0,df80f175-7f2b-44f8-90d4-118e2e157356,df80f175-7f2b-44f8-90d4-118e2e157356,1,0,5a88f624-7b7e-43fe-8bc4-ae85d832a855,5a88f624-7b7e-43fe-8bc4-ae85d832a855,1,0,42e39ef7-268f-4053-b4e5-4bceab17d3e4,42e39ef7-268f-4053-b4e5-4bceab17d3e4,1,0,0302674f-944a-4a45-94c8-a44f93fc5a9a,0302674f-944a-4a45-94c8-a44f93fc5a9a,1,0,69504e02-a88b-4ad6-8890-604928b5a78a,69504e02-a88b-4ad6-8890-604928b5a78a,1,0,b49b47fb-d4dc-4efe-ad07-e8705d787e72,b49b47fb-d4dc-4efe-ad07-e8705d787e72,1,0,7df36398-7752-4f51-9978-1bcb4bcdd062,7df36398-7752-4f51-9978-1bcb4bcdd062,1,0,9fd55b7f-209b-4b74-99d6-965b8f6f2df9,9fd55b7f-209b-4b74-99d6-965b8f6f2df9,1,0,f818fde9-1b06-4507-a69f-4dcb0ce8cd7a,f818fde9-1b06-4507-a69f-4dcb0ce8cd7a,1,0,a6690ef1-b16a-4d58-bc31-a8089b2c00d8,a6690ef1-b16a-4d58-bc31-a8089b2c00d8,1,0,fce03f58-7f68-4d7c-a999-687667c1f03d,fce03f58-7f68-4d7c-a999-687667c1f03d,1,0,316f94ec-81ed-4b5c-aa9d-98d2cfe1c641,316f94ec-81ed-4b5c-aa9d-98d2cfe1c641,1,0,f4885af5-6ed6-40e8-81a5-0e9537f943d7,f4885af5-6ed6-40e8-81a5-0e9537f943d7,1,0,716302cc-ad47-4823-a81a-4c58857aa0a4,716302cc-ad47-4823-a81a-4c58857aa0a4,1,0,d0f3824e-ddfb-491d-8aea-e4e4806dc3ee,d0f3824e-ddfb-491d-8aea-e4e4806dc3ee,1,0,367c49cc-0317-4b0d-846c-79e203f800b8,367c49cc-0317-4b0d-846c-79e203f800b8,1,0,7cab0151-f86e-4ada-9ec6-e602749e34fc,7cab0151-f86e-4ada-9ec6-e602749e34fc,1,0,d9be359f-c5cb-4f3e-9ccd-61f38c6bbb26,d9be359f-c5cb-4f3e-9ccd-61f38c6bbb26,1,0,15b5979c-755b-480e-b00a-dcc95f62dfeb,15b5979c-755b-480e-b00a-dcc95f62dfeb,1,0,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,1,0,dcdf2b25-b024-4a89-b2c4-0a2ee43ef623,dcdf2b25-b024-4a89-b2c4-0a2ee43ef623,1,0,9200527c-b6b9-4962-9440-10449583e1e3,9200527c-b6b9-4962-9440-10449583e1e3,1,0,e8faa1a9-807a-4916-b3c5-76ba2199754c,e8faa1a9-807a-4916-b3c5-76ba2199754c,1,0,99b5c632-61fe-41f5-ac00-ea530633bf28,99b5c632-61fe-41f5-ac00-ea530633bf28,1,0,a3c9c4e7-d36a-4db1-bd95-a50886c4be60,a3c9c4e7-d36a-4db1-bd95-a50886c4be60,1,0,4c53f94e-d7e8-457c-b337-59d3b3c5bf24,4c53f94e-d7e8-457c-b337-59d3b3c5bf24,1,0,bd6d7dcd-421c-402e-b6b8-f6ce6b18c140,bd6d7dcd-421c-402e-b6b8-f6ce6b18c140,1,0,485911f7-a964-450d-82da-cab020836eb2,485911f7-a964-450d-82da-cab020836eb2,1,0,1960b036-b479-4f4f-80c5-23fc82474082,1960b036-b479-4f4f-80c5-23fc82474082,1,0,7707d7b0-bf30-4362-929a-a5de104266fc,7707d7b0-bf30-4362-929a-a5de104266fc,1,0,0da8a402-ea0f-488a-a087-77990e85a643,0da8a402-ea0f-488a-a087-77990e85a643,1,0,5e7ea635-f307-43cb-9aa7-2c99997b3c2d,5e7ea635-f307-43cb-9aa7-2c99997b3c2d,1,0,484003f5-a6df-48fb-a395-d0e0ebc8cc0d,484003f5-a6df-48fb-a395-d0e0ebc8cc0d,1,0,cedd0b47-07cb-4dae-86b5-31d396b693c7,cedd0b47-07cb-4dae-86b5-31d396b693c7,1,0,8b4614aa-c769-49f4-a281-a0ffb101abf1,8b4614aa-c769-49f4-a281-a0ffb101abf1,1,0,c08391e1-c4e3-42aa-8738-061031d0cb75,c08391e1-c4e3-42aa-8738-061031d0cb75,1,0,ba06091b-b659-4d29-a971-81335cf4060a,ba06091b-b659-4d29-a971-81335cf4060a,1,0,7c376c72-409e-4b5f-a5b6-85b0a1c23f58,7c376c72-409e-4b5f-a5b6-85b0a1c23f58,1,0,b7a0d00f-fbf3-41fe-b72f-c17e163264f9,b7a0d00f-fbf3-41fe-b72f-c17e163264f9,1,0,7bbd6fe8-c2fe-4ed2-abd7-2b3fc5b2f410,7bbd6fe8-c2fe-4ed2-abd7-2b3fc5b2f410,1,0,d61fa2fb-a035-469f-9ae1-b78ecd82c83d,d61fa2fb-a035-469f-9ae1-b78ecd82c83d,1,0,bf4c6723-e586-4643-9f03-9e672afea26f,bf4c6723-e586-4643-9f03-9e672afea26f,1,0,4c3a39e3-40ee-423b-91f0-14b60e045b40,4c3a39e3-40ee-423b-91f0-14b60e045b40,1,0,2f2875d7-7598-4ed5-8cc0-a1982ffb5377,2f2875d7-7598-4ed5-8cc0-a1982ffb5377,1,0,23204b0b-bf77-4f7c-9945-e73ad924ebb4,23204b0b-bf77-4f7c-9945-e73ad924ebb4,1,0,dd9d3586-775b-4d5b-ab2d-78db0870ecdd,dd9d3586-775b-4d5b-ab2d-78db0870ecdd,1,0,44c610c3-9c0b-4bf0-95d6-f17100d3e98d,44c610c3-9c0b-4bf0-95d6-f17100d3e98d,1,0,a54f2d41-a05e-4878-80c6-81ca2899fa4c,a54f2d41-a05e-4878-80c6-81ca2899fa4c,1,0,23a898d9-5bcb-4744-ab6c-97b17dc98f20,23a898d9-5bcb-4744-ab6c-97b17dc98f20,1,0,c83f7826-0fef-4a9b-8d36-dee5d93c7417,c83f7826-0fef-4a9b-8d36-dee5d93c7417,1,0,50a04251-ac9c-4a21-a37f-ebc9ac3ef233,50a04251-ac9c-4a21-a37f-ebc9ac3ef233,1,0,f8f56806-ed7e-4059-a0c8-940538c14c98,f8f56806-ed7e-4059-a0c8-940538c14c98,1,0,9ff9f92b-c509-48da-82ce-15b524a895d6,9ff9f92b-c509-48da-82ce-15b524a895d6,1,0,c8bf96c8-f359-4940-8e87-3d190371d6d3,c8bf96c8-f359-4940-8e87-3d190371d6d3,1,0,477f0b81-0eb1-4de1-8cb5-38f1e0823947,477f0b81-0eb1-4de1-8cb5-38f1e0823947,1,0,d914eaa9-ce85-4df7-a545-2d411ef915b0,d914eaa9-ce85-4df7-a545-2d411ef915b0,1,0,41881344-82b7-4904-9ab8-0207d9bcd0a9,41881344-82b7-4904-9ab8-0207d9bcd0a9,1,0,5c542a16-0f95-43be-85cd-bfd49b15f215,5c542a16-0f95-43be-85cd-bfd49b15f215,1,0,ef4d648f-4cac-4df9-9880-2aa13c422d10,ef4d648f-4cac-4df9-9880-2aa13c422d10,1,0,21032fa5-9426-40bd-91e4-ace1e4ceb013,21032fa5-9426-40bd-91e4-ace1e4ceb013,1,0,7185a8f8-48c4-43a9-b31f-102302b8f152,7185a8f8-48c4-43a9-b31f-102302b8f152,1,0,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,1,0,27a80757-c0fd-40c7-ad24-4c819c1ba72b,27a80757-c0fd-40c7-ad24-4c819c1ba72b,1,0,c573a29f-4c39-402d-8af4-e0fff80877f8,c573a29f-4c39-402d-8af4-e0fff80877f8,1,0,7fce9e49-e558-4760-9d95-dde6ac6c1e78,7fce9e49-e558-4760-9d95-dde6ac6c1e78,1,0,e5aba4a3-6056-4ef3-827c-d74283175393,e5aba4a3-6056-4ef3-827c-d74283175393,1,0,edc731ba-532f-4fa1-81a8-58beb3b2dfb1,edc731ba-532f-4fa1-81a8-58beb3b2dfb1,1,0,63039e62-7314-42ff-bdc6-c251f38b3827,63039e62-7314-42ff-bdc6-c251f38b3827,1,0,8a4b7aab-b602-4581-8fa4-fab66791f701,8a4b7aab-b602-4581-8fa4-fab66791f701,1,0,7c92c579-4651-4fe3-90dc-6c9b594b76f0,7c92c579-4651-4fe3-90dc-6c9b594b76f0,1,0,a2be2d7a-cca0-460f-a915-dadfb9cd588b,a2be2d7a-cca0-460f-a915-dadfb9cd588b,1,0,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,1,0,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,1,0,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,1,0,1f4408f5-460e-431b-9842-bc6875ccf0ae,1f4408f5-460e-431b-9842-bc6875ccf0ae,1,0,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,1,0,7bfc6163-a62f-45e8-9112-40a5d675ba4a,7bfc6163-a62f-45e8-9112-40a5d675ba4a,1,0,542ff510-0245-4a08-80ac-a9941c66ae93,542ff510-0245-4a08-80ac-a9941c66ae93,1,0,03297623-eaa2-4db0-bf1b-ce2076faf20a,03297623-eaa2-4db0-bf1b-ce2076faf20a,1,0,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,1,0,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,1,0,82a3802c-b6d6-4511-bd8b-eeec003afa33,82a3802c-b6d6-4511-bd8b-eeec003afa33,1,0,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,1,0,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,1,0,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,1,0,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,1,0,a755cb43-492d-4069-9b6a-29b92ebb5b0e,a755cb43-492d-4069-9b6a-29b92ebb5b0e,1,0,a5df6ca4-8791-4025-a0e6-07d66e0454b7,a5df6ca4-8791-4025-a0e6-07d66e0454b7,1,0,7f7598e5-ca54-487e-b95c-b18d330b034c,7f7598e5-ca54-487e-b95c-b18d330b034c,1,0,86d09107-f511-4148-b5d9-d97e92addfde,86d09107-f511-4148-b5d9-d97e92addfde,1,0,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,1,0,2120ad01-6bff-48bd-bad8-324e1301b112,2120ad01-6bff-48bd-bad8-324e1301b112,1,0,b9255acf-dc35-4225-8d3a-544e66b7334d,b9255acf-dc35-4225-8d3a-544e66b7334d,1,0,55b78834-3d90-4858-a6f7-e0368b1d8c41,55b78834-3d90-4858-a6f7-e0368b1d8c41,1,0,059b9a75-f53a-4518-a48a-afc72ab9ee36,059b9a75-f53a-4518-a48a-afc72ab9ee36,1,0,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,1,0,31e95872-97c7-49e3-bd1b-8df4de07014d,31e95872-97c7-49e3-bd1b-8df4de07014d,1,0,8b9be02b-cd1f-4231-a895-6c9be26348c2,8b9be02b-cd1f-4231-a895-6c9be26348c2,1,0,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,1,0,64e03321-33a4-424d-a101-90f1e0da4c2e,64e03321-33a4-424d-a101-90f1e0da4c2e,1,0,fa4f0b33-5253-4a5f-8121-feae3e1968a6,fa4f0b33-5253-4a5f-8121-feae3e1968a6,1,0,e0d21be2-91dc-4a04-9078-49420ddddcd5,e0d21be2-91dc-4a04-9078-49420ddddcd5,1,0,56c97764-7dba-42e0-8ba0-82712aca20e9,56c97764-7dba-42e0-8ba0-82712aca20e9,1,0,a1d80053-ef03-4c00-9fc9-266e61aeaffb,a1d80053-ef03-4c00-9fc9-266e61aeaffb,1,0,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,1,0,3f05dcf9-be52-42e1-b5ff-dea14d97a26f,3f05dcf9-be52-42e1-b5ff-dea14d97a26f,1,0,7f3c6269-ea41-492f-87b7-7eaaf712762e,7f3c6269-ea41-492f-87b7-7eaaf712762e,1,0,a5d037b0-c666-4179-9d6a-5f48c4a126a8,a5d037b0-c666-4179-9d6a-5f48c4a126a8,1,0,f0850411-4dee-4f1d-baec-7d6c96b10637,f0850411-4dee-4f1d-baec-7d6c96b10637,1,0,12f95031-b81f-4802-b2f3-6f70def90db0,12f95031-b81f-4802-b2f3-6f70def90db0,1,0,5732112a-f31d-41cd-9a7f-312a27395502,5732112a-f31d-41cd-9a7f-312a27395502,1,0,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,1,0,691f9902-6b95-4579-a3d9-3b2b5b548776,691f9902-6b95-4579-a3d9-3b2b5b548776,1,0,c7a8a88f-040a-47a6-8c93-7f3f01544760,c7a8a88f-040a-47a6-8c93-7f3f01544760,1,0,06fc381d-f27a-433c-95c3-e0981e01f22b,06fc381d-f27a-433c-95c3-e0981e01f22b,1,0,6d93ec4f-167a-4804-910b-988ee8aad78e,6d93ec4f-167a-4804-910b-988ee8aad78e,1,0,f646835e-61eb-4ebd-811e-dac5e70bd1b4,f646835e-61eb-4ebd-811e-dac5e70bd1b4,1,0,61b49c4c-3021-4868-834a-9137476ae169,61b49c4c-3021-4868-834a-9137476ae169,1,0,58911911-5192-45fe-87cf-c4a222a521a1,58911911-5192-45fe-87cf-c4a222a521a1,1,0,70067937-9f27-4442-b87b-6c4576ce1b78,70067937-9f27-4442-b87b-6c4576ce1b78,1,0,115d5d06-a2fc-453e-aab5-c869b6d5850b,115d5d06-a2fc-453e-aab5-c869b6d5850b,1,0,d33ca006-d81d-4ef8-8503-7878e81c599f,d33ca006-d81d-4ef8-8503-7878e81c599f,1,0,123bb339-b95e-44c3-b1e9-482dcaa6f297,123bb339-b95e-44c3-b1e9-482dcaa6f297,1,0,f4119605-beb3-46b6-b372-ecdb74f10a33,f4119605-beb3-46b6-b372-ecdb74f10a33,1,0,d2a2e332-a52c-4277-bd19-5ea8ef198469,d2a2e332-a52c-4277-bd19-5ea8ef198469,1,0,e440c594-14bb-4a6e-af53-a4519c7d5548,e440c594-14bb-4a6e-af53-a4519c7d5548,1,0,4165bdaa-8e27-40de-bcdc-0379c34e8868,4165bdaa-8e27-40de-bcdc-0379c34e8868,1,0,a9a3fde2-99d5-4ebf-88b1-eccd9d74276e,a9a3fde2-99d5-4ebf-88b1-eccd9d74276e,1,0,82b05859-4c4d-4d5a-a620-cc6aab10f527,82b05859-4c4d-4d5a-a620-cc6aab10f527,1,0,c5871658-94dd-4df4-9a3f-db5d245dd106,c5871658-94dd-4df4-9a3f-db5d245dd106,1,0,a3131bf3-88b1-431c-a01c-be6e26396f91,a3131bf3-88b1-431c-a01c-be6e26396f91,1,0,5c3edcbd-fb62-471c-b75b-f1a759956ebe,5c3edcbd-fb62-471c-b75b-f1a759956ebe,1,0,e606f8eb-952a-4abb-b1ae-4211204bed84,e606f8eb-952a-4abb-b1ae-4211204bed84,1,0,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,1,0,1c2ad932-150a-4b15-b958-62eaa8a1eebc,1c2ad932-150a-4b15-b958-62eaa8a1eebc,1,0,b4deaebf-2c21-47d7-9436-10c94c94667c,b4deaebf-2c21-47d7-9436-10c94c94667c,1,0,2a12ce95-3214-4bd2-a0e6-c2af41875821,2a12ce95-3214-4bd2-a0e6-c2af41875821,1,0,bf05548c-babf-402b-b698-9a62e7c69add,bf05548c-babf-402b-b698-9a62e7c69add,1,0,f8295f29-2533-4013-981b-240f017d9f7c,f8295f29-2533-4013-981b-240f017d9f7c,1,0,538b316b-3876-4da6-8b97-ad8ef59de17d,538b316b-3876-4da6-8b97-ad8ef59de17d,1,0,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,1,0,ebc5f182-482b-4dec-9961-ce3a448abd0e,ebc5f182-482b-4dec-9961-ce3a448abd0e,1,0,83e618f5-1bf4-474a-9d65-389f1e4b16c3,83e618f5-1bf4-474a-9d65-389f1e4b16c3,1,0,1357512e-3ed3-455d-bc91-81db3b92f9fe,1357512e-3ed3-455d-bc91-81db3b92f9fe,1,0,82223d0f-41d9-45a6-9612-ae4d8408fa1b,82223d0f-41d9-45a6-9612-ae4d8408fa1b,1,0,3ee058a9-aff5-46f0-8928-8a417e7800d4,3ee058a9-aff5-46f0-8928-8a417e7800d4,1,0,639c2ffc-4514-4b79-89e2-d49caadf828d,639c2ffc-4514-4b79-89e2-d49caadf828d,1,0,c9a03f19-42bb-4e07-8ce8-1b954e431ada,c9a03f19-42bb-4e07-8ce8-1b954e431ada,1,0,ed4edc6f-048a-40d5-8f61-989895c95cf3,ed4edc6f-048a-40d5-8f61-989895c95cf3,1,0,73cc5fea-597f-4490-9c62-b175fdc38fd3,73cc5fea-597f-4490-9c62-b175fdc38fd3,1,0,c2049ace-3095-4dd7-9cc0-7721118451ad,c2049ace-3095-4dd7-9cc0-7721118451ad,1,0,8cb20eb9-306b-4c2a-9a77-6a4632f72b54,8cb20eb9-306b-4c2a-9a77-6a4632f72b54,1,0,87ba683b-b69c-4b23-854c-037b770a3ebb,87ba683b-b69c-4b23-854c-037b770a3ebb,1,0,f3f753ac-b2cb-44ea-a917-811b0ef711f8,f3f753ac-b2cb-44ea-a917-811b0ef711f8,1,0,1357adf5-0f5d-4930-afea-edc89db4d0a6,1357adf5-0f5d-4930-afea-edc89db4d0a6,1,0,505ff816-0d42-458a-b7b5-7d007c15d1be,505ff816-0d42-458a-b7b5-7d007c15d1be,1,0,27811a76-d8bd-43a5-9898-944bdd1388ce,27811a76-d8bd-43a5-9898-944bdd1388ce,1,0,363215fe-59f3-4d9a-a8c7-94049882147a,363215fe-59f3-4d9a-a8c7-94049882147a,1,0,3d4597ca-1c97-4116-b966-87970cd7ebdf,3d4597ca-1c97-4116-b966-87970cd7ebdf,1,0,715f7ba5-ca82-49e6-8671-fc1b55b740b5,715f7ba5-ca82-49e6-8671-fc1b55b740b5,1,0,0add6d62-bf4f-476c-9f6b-37633fcd6b0e,0add6d62-bf4f-476c-9f6b-37633fcd6b0e,1,0,93e495a4-207d-4216-b63e-a8b169b2b801,93e495a4-207d-4216-b63e-a8b169b2b801,1,0,3b47221a-ad5f-419c-b503-a4a88505d336,3b47221a-ad5f-419c-b503-a4a88505d336,1,0,0149a9c0-245b-4dfe-aa98-e8b02ba85c99,0149a9c0-245b-4dfe-aa98-e8b02ba85c99,1,0,94abbe1e-44d8-43c1-90fb-71bc9b6621a9,94abbe1e-44d8-43c1-90fb-71bc9b6621a9,1,0,2edfc563-9fd8-4f7c-8cd4-ba3c27c08840,2edfc563-9fd8-4f7c-8cd4-ba3c27c08840,1,0,d0d052c7-68b9-4b2b-9bbf-4fb083327dca,d0d052c7-68b9-4b2b-9bbf-4fb083327dca,1,0,807194b1-2460-4872-8430-e34f6970178f,807194b1-2460-4872-8430-e34f6970178f,1,0,b0409473-768f-4c29-89d3-6201e8476157,b0409473-768f-4c29-89d3-6201e8476157,1,0,d8415773-616e-43e4-9deb-e92200659d53,d8415773-616e-43e4-9deb-e92200659d53,1,0,b228f0de-7cd7-4337-b021-bc1beb980afd,b228f0de-7cd7-4337-b021-bc1beb980afd,1,0,c9178048-5d75-4d1b-a714-50d772e8d343,c9178048-5d75-4d1b-a714-50d772e8d343,1,0,661b7581-27ad-4cec-8618-9c314cb3a4d5,661b7581-27ad-4cec-8618-9c314cb3a4d5,1,0,310a8f7d-5b1f-428c-885d-1127b7789efd,310a8f7d-5b1f-428c-885d-1127b7789efd,1,0,ee5efc54-aa35-467f-b085-64f24819aaa7,ee5efc54-aa35-467f-b085-64f24819aaa7,1,0,376c8f0b-9d2e-4262-a26f-b63f1163c1c4,376c8f0b-9d2e-4262-a26f-b63f1163c1c4,1,0,d37c82e1-cc9f-492c-a7fb-0e6e9d8f6a72,d37c82e1-cc9f-492c-a7fb-0e6e9d8f6a72,1,0,b7ebf08a-d6be-42db-b28a-460df037d7ba,b7ebf08a-d6be-42db-b28a-460df037d7ba,1,0,ec3c34f6-b3b3-4a96-a231-aaf70db1e73d,ec3c34f6-b3b3-4a96-a231-aaf70db1e73d,1,0,8aa9daa0-e073-49f4-8346-7f2c809fac9a,8aa9daa0-e073-49f4-8346-7f2c809fac9a,1,0,043074cb-64aa-45ed-a2f3-b4fa252431cc,043074cb-64aa-45ed-a2f3-b4fa252431cc,1,0,9cc72214-6e84-45e6-aafd-b36205730faa,9cc72214-6e84-45e6-aafd-b36205730faa,1,0,768eb7d6-d37e-4182-961e-464a5e08781b,768eb7d6-d37e-4182-961e-464a5e08781b,1,0,4df52b04-759d-471d-9de4-3ba4d00d1d22,4df52b04-759d-471d-9de4-3ba4d00d1d22,1,0,5768f558-50b6-4682-960c-6894f6953461,5768f558-50b6-4682-960c-6894f6953461,1,0,74126b65-4f3b-4f8d-b7fc-1d2705822463,74126b65-4f3b-4f8d-b7fc-1d2705822463,1,0,75a4b472-00b6-4b2f-bb6b-03bdc0b05dcf,75a4b472-00b6-4b2f-bb6b-03bdc0b05dcf,1,0,8506ad71-85eb-4f91-b892-4e75318649c8,8506ad71-85eb-4f91-b892-4e75318649c8,1,0,6e3010f5-f725-4361-b853-768412b1ad6f,6e3010f5-f725-4361-b853-768412b1ad6f,1,0,40d8803a-2f6d-4091-be54-9d9827a53e30,40d8803a-2f6d-4091-be54-9d9827a53e30,1,0,ea2b936c-be5c-4316-aca9-4f890f4e6ec9,ea2b936c-be5c-4316-aca9-4f890f4e6ec9,1,0,092501bf-dd8e-4f50-8c58-b1b028b50a5a,092501bf-dd8e-4f50-8c58-b1b028b50a5a,1,0,927cfec6-c1e3-4152-aa2e-afa89359b5eb,927cfec6-c1e3-4152-aa2e-afa89359b5eb,1,0,8e986c32-7296-4329-a908-704398428e4e,8e986c32-7296-4329-a908-704398428e4e,1,0,c5b8870c-14cb-43ae-8d44-d639bd059b0e,c5b8870c-14cb-43ae-8d44-d639bd059b0e,1,0,bc98265e-329d-41d1-9fe8-4c78b7998cd2,bc98265e-329d-41d1-9fe8-4c78b7998cd2,1,0,b44c8a6b-0e3f-446b-95f7-6cb4a58f13e0,b44c8a6b-0e3f-446b-95f7-6cb4a58f13e0,1,0,7601f9c7-2fe7-43fb-a7a9-cf5be4475ce1,7601f9c7-2fe7-43fb-a7a9-cf5be4475ce1,1,0,2da686d3-38b0-4cf1-9962-1440d1afd050,2da686d3-38b0-4cf1-9962-1440d1afd050,1,0,71518348-f155-4616-bbdc-742e36cd3964,71518348-f155-4616-bbdc-742e36cd3964,1,0,723a58ca-9947-4320-9bf4-7c6b58aee2f5,723a58ca-9947-4320-9bf4-7c6b58aee2f5,1,0,2df24487-0b76-451d-a08f-21dc03adefa4,2df24487-0b76-451d-a08f-21dc03adefa4,1,0,00813d65-8dae-45a8-8691-d0b17d6d7754,00813d65-8dae-45a8-8691-d0b17d6d7754,1,0,d88166a7-ef6c-453a-b6cc-1c574cf6ea85,d88166a7-ef6c-453a-b6cc-1c574cf6ea85,1,0,aae1a856-ff88-41bb-a887-1b8c2c3eeab6,aae1a856-ff88-41bb-a887-1b8c2c3eeab6,1,0,cf2b8654-02b6-441e-98a9-cb8bea5cac89,cf2b8654-02b6-441e-98a9-cb8bea5cac89,1,0,2181bde8-031d-425e-875f-0bd153b634f2,2181bde8-031d-425e-875f-0bd153b634f2,1,0,ee1b81ac-0182-48dd-a348-1d8ba38869ca,ee1b81ac-0182-48dd-a348-1d8ba38869ca,1,0,ad385d3e-8201-402a-a1a8-267bc8c6d56b,ad385d3e-8201-402a-a1a8-267bc8c6d56b,1,0,53bb97e3-cd96-462a-b91f-c82678568d9a,53bb97e3-cd96-462a-b91f-c82678568d9a,1,0,32ca3bd6-7b32-4eab-8a4e-aeac26604e08,32ca3bd6-7b32-4eab-8a4e-aeac26604e08,1,0,2a702d37-8e83-4fa0-9969-5d954a7096c1,2a702d37-8e83-4fa0-9969-5d954a7096c1,1,0,71b7225e-6486-4916-85b2-8ec14363ebc8,71b7225e-6486-4916-85b2-8ec14363ebc8,1,0,2df34fcd-3118-4871-95d7-807dece77d3f,2df34fcd-3118-4871-95d7-807dece77d3f,1,0,32db89ab-74d3-4f80-9352-65e405770906,32db89ab-74d3-4f80-9352-65e405770906,1,0,21c22027-2036-4136-a98e-500e5cd679d1,21c22027-2036-4136-a98e-500e5cd679d1,1,0,6fe56db7-0f48-4dd0-b509-5372019ddcc2,6fe56db7-0f48-4dd0-b509-5372019ddcc2,1,0,884990f4-54f1-4b05-a5ed-40ee5a7a549a,884990f4-54f1-4b05-a5ed-40ee5a7a549a,1,0,4cf71e62-c8c2-4bc7-87fc-a89e48f2c007,4cf71e62-c8c2-4bc7-87fc-a89e48f2c007,1,0,e5a9260b-c18b-47bf-bc5a-23294e13025a,e5a9260b-c18b-47bf-bc5a-23294e13025a,1,0,02f00688-a2ed-4f91-bd41-50fc29e13d6c,02f00688-a2ed-4f91-bd41-50fc29e13d6c,1,0,e9f2b435-13e3-401a-9324-ca44986b7676,e9f2b435-13e3-401a-9324-ca44986b7676,1,0,2b854852-ae2d-46d8-8c3b-228af7a3f1db,2b854852-ae2d-46d8-8c3b-228af7a3f1db,1,0,11346c91-ecb6-40e6-a2fb-df7e6f5dbaed,11346c91-ecb6-40e6-a2fb-df7e6f5dbaed,1,0,9ea7a191-38bb-40cc-8025-d34a5ed17c7c,9ea7a191-38bb-40cc-8025-d34a5ed17c7c,1,0,dc17d8b6-d277-43eb-8823-71d440ae1e90,dc17d8b6-d277-43eb-8823-71d440ae1e90,1,0,c5b8bf21-5c8f-4e5b-8b85-bfac387ce99a,c5b8bf21-5c8f-4e5b-8b85-bfac387ce99a,1,0,27f793d8-da6a-4502-9b7e-82b8af7264d1,27f793d8-da6a-4502-9b7e-82b8af7264d1,1,0,4d3f3c76-999c-4105-8b64-cd4b7bc861b9,4d3f3c76-999c-4105-8b64-cd4b7bc861b9,1,0,efcf8b0f-7124-4096-9f50-b9b95369f196,efcf8b0f-7124-4096-9f50-b9b95369f196,1,0,c1f2db60-011c-4a0b-97bb-42e005ba51c9,c1f2db60-011c-4a0b-97bb-42e005ba51c9,1,0,15111bf5-5bf5-4486-aff0-20ded684b67f,15111bf5-5bf5-4486-aff0-20ded684b67f,1,0,2465986e-7519-4638-9f62-5f692bebeeac,2465986e-7519-4638-9f62-5f692bebeeac,1,0,d9a6706e-3dcd-4aec-b9d1-542330ba6e2e,d9a6706e-3dcd-4aec-b9d1-542330ba6e2e,1,0,7cbf0398-2bc7-4f40-9a9e-af4135c6a2d2,7cbf0398-2bc7-4f40-9a9e-af4135c6a2d2,1,0,022f99dd-e1b7-42a7-8141-a8c2e8628901,022f99dd-e1b7-42a7-8141-a8c2e8628901,1,0,cc770616-f6f6-4054-876c-f319b1f8c6cf,cc770616-f6f6-4054-876c-f319b1f8c6cf,1,0,3baffdec-a2cb-48c9-9c21-4fc469e81e3b,3baffdec-a2cb-48c9-9c21-4fc469e81e3b,1,0,046e6f4f-3d92-4b20-b19f-fca608fa0f11,046e6f4f-3d92-4b20-b19f-fca608fa0f11,1,0,74bea66f-15bf-48de-9ff9-f9c35a8bf5cc,74bea66f-15bf-48de-9ff9-f9c35a8bf5cc,1,0,8486e623-1a54-4ad9-ab44-591b6a559bc3,8486e623-1a54-4ad9-ab44-591b6a559bc3,1,0,dce82d28-9a7b-4d4c-af13-90f459cf4af2,dce82d28-9a7b-4d4c-af13-90f459cf4af2,1,0,cb9f2231-49bb-4b14-a124-8996628afead,cb9f2231-49bb-4b14-a124-8996628afead,1,0,6fe9a455-7fef-4a1b-8109-57eafc17e2b6,6fe9a455-7fef-4a1b-8109-57eafc17e2b6,1,0,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,1,0,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,1,0,2031ed38-6a8e-4ca7-aa97-449ee36ab7a3,2031ed38-6a8e-4ca7-aa97-449ee36ab7a3,1,0,896de79f-3c34-4436-a4e2-4dd4f45c3e20,896de79f-3c34-4436-a4e2-4dd4f45c3e20,1,0,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,1,0,e6c42b5d-57fd-42ce-a968-653620e797f6,e6c42b5d-57fd-42ce-a968-653620e797f6,1,0,993193b3-1dd8-4f5b-8ce7-6a0bf8c4330c,993193b3-1dd8-4f5b-8ce7-6a0bf8c4330c,1,0,724fb328-fec6-4afe-bc99-0ff0951b184b,724fb328-fec6-4afe-bc99-0ff0951b184b,1,0,7a0cdc94-9e53-4fcc-ac2f-97ad2ad939f5,7a0cdc94-9e53-4fcc-ac2f-97ad2ad939f5,1,0,f6259a3b-98f5-4649-8fd0-da0a0285f375,f6259a3b-98f5-4649-8fd0-da0a0285f375,1,0,c565bf25-c55e-4324-851a-cec497f5114a,c565bf25-c55e-4324-851a-cec497f5114a,1,0,db6679c4-a647-471a-9f90-40248eb18db9,db6679c4-a647-471a-9f90-40248eb18db9,1,0,455a1ca6-7212-43ac-b5a2-cf85dd2f9c14,455a1ca6-7212-43ac-b5a2-cf85dd2f9c14,1,0,e7c366f7-c8e3-4ffe-bc5e-ca8a4619ec11,e7c366f7-c8e3-4ffe-bc5e-ca8a4619ec11,1,0,2997e4da-d831-48e4-96e2-c29f9d077302,2997e4da-d831-48e4-96e2-c29f9d077302,1,0,30f59002-a23d-4eff-b84f-f280f11b220e,30f59002-a23d-4eff-b84f-f280f11b220e,1,0,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,1,0,5b0e250c-4d2d-4e37-ade1-593854610d3f,5b0e250c-4d2d-4e37-ade1-593854610d3f,1,0,14583452-805e-423d-be9a-e04683c7c46f,14583452-805e-423d-be9a-e04683c7c46f,1,0,148f63d5-23ad-4824-a24c-14d5a54c62d3,148f63d5-23ad-4824-a24c-14d5a54c62d3,1,0,d6cdd049-b31b-48aa-a2aa-a24b0bdf3337,d6cdd049-b31b-48aa-a2aa-a24b0bdf3337,1,0,75378d9c-a364-4b46-a6d1-b745604c46a2,75378d9c-a364-4b46-a6d1-b745604c46a2,1,0,d7376ea8-245a-4342-9a40-c729ca19f966,d7376ea8-245a-4342-9a40-c729ca19f966,1,0,eabfa8b7-fb65-43dd-9308-787f7cce88c9,eabfa8b7-fb65-43dd-9308-787f7cce88c9,1,0,4bf12710-aef2-43ec-b16f-9c6c9e8eb18d,4bf12710-aef2-43ec-b16f-9c6c9e8eb18d,1,0,b1e837ff-0edd-4525-b2e2-92cc7990e00e,b1e837ff-0edd-4525-b2e2-92cc7990e00e,1,0,30213cef-b2bc-4e6c-8094-74a61f28b2ed,30213cef-b2bc-4e6c-8094-74a61f28b2ed,1,0,037fd2f3-27f1-4d8f-a621-82fa5754e8c7,037fd2f3-27f1-4d8f-a621-82fa5754e8c7,1,0,3fc1e50e-b9da-45f7-8e06-57ef6951ca40,3fc1e50e-b9da-45f7-8e06-57ef6951ca40,1,0,66d67f47-ccbb-4d58-aceb-af876f480750,66d67f47-ccbb-4d58-aceb-af876f480750,1,0,71871ca9-095d-4bde-ac80-1371f578cd51,71871ca9-095d-4bde-ac80-1371f578cd51,1,0,6aa8c1d6-9956-4a98-9992-b119ba5ba1c7,6aa8c1d6-9956-4a98-9992-b119ba5ba1c7,1,0,cafbea88-86f0-4a44-98f4-70d1837da452,cafbea88-86f0-4a44-98f4-70d1837da452,1,0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,1,0,2df403a2-57d8-4578-b017-e7cf9550b708,2df403a2-57d8-4578-b017-e7cf9550b708,1,0,ceb286e9-4e7c-49fa-a695-424073e0dffc,ceb286e9-4e7c-49fa-a695-424073e0dffc,1,0,727689c3-c0d8-496f-a47b-4f3243ad8974,727689c3-c0d8-496f-a47b-4f3243ad8974,1,0,ec7b492d-5d38-4f31-90e0-577ad181514e,ec7b492d-5d38-4f31-90e0-577ad181514e,1,0,d1771aec-ba78-4b5d-861a-9ac6d8627dea,d1771aec-ba78-4b5d-861a-9ac6d8627dea,1,0,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,1,0,07288e13-583c-4caf-983a-76c5d2ebf66f,07288e13-583c-4caf-983a-76c5d2ebf66f,1,0,5e232e6a-7f68-40d2-9555-4a2b3debe095,5e232e6a-7f68-40d2-9555-4a2b3debe095,1,0,efc8ca7d-966d-4c18-acd9-90f22dd75a7a,efc8ca7d-966d-4c18-acd9-90f22dd75a7a,1,0,1780ffa9-1ca3-4bcb-823f-5e582c4cc25e,1780ffa9-1ca3-4bcb-823f-5e582c4cc25e,1,0,2522fce4-d121-482b-a39d-0c1a842d315e,2522fce4-d121-482b-a39d-0c1a842d315e,1,0,4807629d-8421-4bd9-beb4-5b2940197958,4807629d-8421-4bd9-beb4-5b2940197958,1,0,b8d7bdc9-2778-4f36-a0d9-c43fce15eb3c,b8d7bdc9-2778-4f36-a0d9-c43fce15eb3c,1,0,4bad7c64-131a-42cb-9be7-d61f14f456d0,4bad7c64-131a-42cb-9be7-d61f14f456d0,1,0,d46e141b-7a10-4d65-971f-3a35f2114017,d46e141b-7a10-4d65-971f-3a35f2114017,1,0,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,1,0,71cad48a-37f2-4894-b876-9d74fa844828,71cad48a-37f2-4894-b876-9d74fa844828,1,0,0f325868-167b-43d5-b17a-eadc606a8f79,0f325868-167b-43d5-b17a-eadc606a8f79,1,0,51ea38c1-3005-4f4b-b813-91c8e2717683,51ea38c1-3005-4f4b-b813-91c8e2717683,1,0,766c7fb5-727e-4975-9ea1-3b0df4739620,766c7fb5-727e-4975-9ea1-3b0df4739620,1,0,ba59393c-c499-4999-91d4-b9e34d94db0e,ba59393c-c499-4999-91d4-b9e34d94db0e,1,0,626da0dd-d75b-4779-be1f-9b71d2f2d4e1,626da0dd-d75b-4779-be1f-9b71d2f2d4e1,1,0,1d4b7f71-6c72-4f41-a2ed-1f2fe2122c04,1d4b7f71-6c72-4f41-a2ed-1f2fe2122c04,1,0,584aa9db-e6b0-49f3-ae9d-5b6c796d015c,584aa9db-e6b0-49f3-ae9d-5b6c796d015c,1,0,fcf6a4cd-d0c9-4f83-b9b0-514baed3ccb9,fcf6a4cd-d0c9-4f83-b9b0-514baed3ccb9,1,0,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,1,0,913743c3-9529-4c86-b056-93e954df7819,913743c3-9529-4c86-b056-93e954df7819,1,0,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,1,0,3b453f76-ab85-4c65-b008-7f8bf44c9631,3b453f76-ab85-4c65-b008-7f8bf44c9631,1,0,ba5574bd-53ca-413f-a245-272f468a80fb,ba5574bd-53ca-413f-a245-272f468a80fb,1,0,772e7011-0019-4edc-b673-b7151cf4fa6c,772e7011-0019-4edc-b673-b7151cf4fa6c,1,0,21ac47fa-12c2-43e2-9b57-afdf521d3485,21ac47fa-12c2-43e2-9b57-afdf521d3485,1,0,f58bffe7-4a02-4c4e-bfed-7895177a400c,f58bffe7-4a02-4c4e-bfed-7895177a400c,1,0,fe285122-2257-4fb2-ab7e-1683c31db1c6,fe285122-2257-4fb2-ab7e-1683c31db1c6,1,0,0facc6eb-a178-45ee-a6bc-4bf085d80453,0facc6eb-a178-45ee-a6bc-4bf085d80453,1,0,f74eef36-9441-4b6f-b21c-de9643832f9f,f74eef36-9441-4b6f-b21c-de9643832f9f,1,0,d1391e3b-ec29-48c8-8bf5-fa4434a909e9,d1391e3b-ec29-48c8-8bf5-fa4434a909e9,1,0,8d1c44d7-52f2-4089-9d77-2f03bf051455,8d1c44d7-52f2-4089-9d77-2f03bf051455,1,0,ac2e5217-aaeb-4b6f-b063-538c84f2da06,ac2e5217-aaeb-4b6f-b063-538c84f2da06,1,0,b5e73fbe-499c-4666-a482-0ef399c97c1e,b5e73fbe-499c-4666-a482-0ef399c97c1e,1,0,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,1,0,4ac77dea-3c2b-4566-8857-ba99f7b025c9,4ac77dea-3c2b-4566-8857-ba99f7b025c9,1,0,8e87da88-9fa8-4dd8-b904-622b763239f4,8e87da88-9fa8-4dd8-b904-622b763239f4,1,0,2a7f1ce3-2629-4860-886b-67c9f82eeb29,2a7f1ce3-2629-4860-886b-67c9f82eeb29,1,0,6b5720a8-0bcc-4196-934d-84db9d99ec27,6b5720a8-0bcc-4196-934d-84db9d99ec27,1,0,c0b3e3e9-20bc-42e1-a68f-646a958586d1,c0b3e3e9-20bc-42e1-a68f-646a958586d1,1,0,39496918-7d71-4960-ad8b-0028ae659266,39496918-7d71-4960-ad8b-0028ae659266,1,0,bdf2fd35-2000-45c2-9df6-65031ee0e4af,bdf2fd35-2000-45c2-9df6-65031ee0e4af,1,0,529cc5b5-835f-4e70-9232-a9649fdc7ae5,529cc5b5-835f-4e70-9232-a9649fdc7ae5,1,0,09fec67d-6e45-428c-b858-9ae20979676c,09fec67d-6e45-428c-b858-9ae20979676c,1,0,4875a235-bcc8-47eb-83e3-a66f0f690b97,4875a235-bcc8-47eb-83e3-a66f0f690b97,1,0,58ffc4d9-d711-4b68-905c-d2ac4f78b547,58ffc4d9-d711-4b68-905c-d2ac4f78b547,1,0,114ab2a1-f7c3-4453-a6cc-4c5a23c00cb5,114ab2a1-f7c3-4453-a6cc-4c5a23c00cb5,1,0,93c347d8-66cb-406c-9ee6-b1962482893f,93c347d8-66cb-406c-9ee6-b1962482893f,1,0,cce593b4-6f7c-466d-892c-7fe89fcddf5d,cce593b4-6f7c-466d-892c-7fe89fcddf5d,1,0,94ab750f-46b4-427c-a7f2-4e94fb9b0678,94ab750f-46b4-427c-a7f2-4e94fb9b0678,1,0,397d9926-31a3-4c03-acb7-74478f9863e1,397d9926-31a3-4c03-acb7-74478f9863e1,1,0,264dd12a-b4c5-44bf-b3c0-ef9225505f76,264dd12a-b4c5-44bf-b3c0-ef9225505f76,1,0,90b8fdf3-3e42-442f-a002-6a28ad0edc99,90b8fdf3-3e42-442f-a002-6a28ad0edc99,1,0,330a176f-5b61-41f5-84bb-b99a9439c2a0,330a176f-5b61-41f5-84bb-b99a9439c2a0,1,0,d1ba8620-c0c9-4281-afa6-9c9962c338d3,d1ba8620-c0c9-4281-afa6-9c9962c338d3,1,0,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,1,0,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,1,0,4bdc1a18-f184-4f95-bda4-8f5c4b7c3aa1,4bdc1a18-f184-4f95-bda4-8f5c4b7c3aa1,1,0,60200fc6-252f-4eaf-88a2-d2cefa25061f,60200fc6-252f-4eaf-88a2-d2cefa25061f,1,0,0798a128-2f87-4173-99ae-115bb8b3a3b8,0798a128-2f87-4173-99ae-115bb8b3a3b8,1,0,40f93527-7bff-4f9c-b855-2b69f7c5eb33,40f93527-7bff-4f9c-b855-2b69f7c5eb33,1,0,697bd1de-bbef-4362-aa39-71f6008f4bd7,697bd1de-bbef-4362-aa39-71f6008f4bd7,1,0,676b2ea2-a559-4685-b5ca-7b619b02f101,676b2ea2-a559-4685-b5ca-7b619b02f101,1,0,a3e9afe9-1587-47c7-8e7b-b8df6b3a2664,a3e9afe9-1587-47c7-8e7b-b8df6b3a2664,1,0,0e31d69a-8d2c-4ad0-b3ac-93ba5afcefdf,0e31d69a-8d2c-4ad0-b3ac-93ba5afcefdf,1,0,89574884-bce2-406d-9961-d1656b306eb8,89574884-bce2-406d-9961-d1656b306eb8,1,0,3de28e34-3c1e-4e7f-a720-3418c8c9c496,3de28e34-3c1e-4e7f-a720-3418c8c9c496,1,0,7f2d69b4-2f87-40f4-a78c-fe4cabc2a502,7f2d69b4-2f87-40f4-a78c-fe4cabc2a502,1,0,dacb236e-42a5-47e5-b239-ff18ae48e21e,dacb236e-42a5-47e5-b239-ff18ae48e21e,1,0,5cdb6e71-fd20-461a-83db-d59ccdb5b366,5cdb6e71-fd20-461a-83db-d59ccdb5b366,1,0,388b8576-9ba4-460f-b71b-3d644663656a,388b8576-9ba4-460f-b71b-3d644663656a,1,0,d4d38827-fce6-4c39-a4b4-51c7d7edc475,d4d38827-fce6-4c39-a4b4-51c7d7edc475,1,0,2d40609d-b56f-4082-9a6f-8216817ebd24,2d40609d-b56f-4082-9a6f-8216817ebd24,1,0,62629f36-5d1e-460f-9ac5-983607c40cb2,62629f36-5d1e-460f-9ac5-983607c40cb2,1,0,b238b4b2-beaf-4b5d-a728-8aebac3bacb5,b238b4b2-beaf-4b5d-a728-8aebac3bacb5,1,0,732b19c8-4f22-4748-a796-71538e46fc2f,732b19c8-4f22-4748-a796-71538e46fc2f,1,0,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,1,0,4b07cdb0-c32e-4751-b317-bee62b43f128,4b07cdb0-c32e-4751-b317-bee62b43f128,1,0,74f02619-7fa8-4c6d-81d6-230156ee45f4,74f02619-7fa8-4c6d-81d6-230156ee45f4,1,0,32cab8f2-cebf-4508-9396-eb41f4e8ba22,32cab8f2-cebf-4508-9396-eb41f4e8ba22,1,0,62ef3558-5ad3-44ab-8578-1acbbfa54135,62ef3558-5ad3-44ab-8578-1acbbfa54135,1,0,a103cca0-8243-40e9-bcdd-97a1cc8a3943,a103cca0-8243-40e9-bcdd-97a1cc8a3943,1,0,c3572d8d-46ff-40bb-800c-2c07f884c219,c3572d8d-46ff-40bb-800c-2c07f884c219,1,0,80fd89d7-160d-4528-9aa0-05b8dac64b4c,80fd89d7-160d-4528-9aa0-05b8dac64b4c,1,0,b77edd78-2fad-4926-a74f-02f2135356e6,b77edd78-2fad-4926-a74f-02f2135356e6,1,0,57b0b6b2-bbdd-48d2-a52e-e3495e00860e,57b0b6b2-bbdd-48d2-a52e-e3495e00860e,1,0,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,1,0,da551cf6-4f86-4e37-8967-a84c80e1fb13,da551cf6-4f86-4e37-8967-a84c80e1fb13,1,0,4f4916dc-b6fe-4f99-9220-bd7c076408ae,4f4916dc-b6fe-4f99-9220-bd7c076408ae,1,0,857daa3a-0058-4464-9173-13a2926812e2,857daa3a-0058-4464-9173-13a2926812e2,1,0,5fb2c120-fd14-4e78-a35f-c8e9478b3235,5fb2c120-fd14-4e78-a35f-c8e9478b3235,1,0,9d514ce1-f9bd-4018-8107-545cdd372fbd,9d514ce1-f9bd-4018-8107-545cdd372fbd,1,0,fe6b732f-3a33-460f-9686-cffdd5f7d99b,fe6b732f-3a33-460f-9686-cffdd5f7d99b,1,0,06250212-aeb1-4cb8-8785-ea71b1dad848,06250212-aeb1-4cb8-8785-ea71b1dad848,1,0,0c068a61-e5e6-4475-96fa-b7c1d825da42,0c068a61-e5e6-4475-96fa-b7c1d825da42,1,0,1047e34d-397a-42cc-80e6-1be755bd6462,1047e34d-397a-42cc-80e6-1be755bd6462,1,0,1cd473c3-4e36-47a9-b466-73d86ec244b0,1cd473c3-4e36-47a9-b466-73d86ec244b0,1,0,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,1,0,b406b5f9-eeaf-43a0-8930-067554d783c9,b406b5f9-eeaf-43a0-8930-067554d783c9,1,0,47718840-2939-4e30-a72c-a20c88ac4c17,47718840-2939-4e30-a72c-a20c88ac4c17,1,0,58a38994-9fe4-4783-967d-79d1141b90f3,58a38994-9fe4-4783-967d-79d1141b90f3,1,0,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,1,0,a511f7d7-60ef-4a5c-8f8e-ddbee065eccd,a511f7d7-60ef-4a5c-8f8e-ddbee065eccd,1,0,6fa87b5a-fab0-48b6-b8ab-1aaa8c82d81d,6fa87b5a-fab0-48b6-b8ab-1aaa8c82d81d,1,0,323ef3df-b1cb-4927-a16e-2dbf11e37ae8,323ef3df-b1cb-4927-a16e-2dbf11e37ae8,1,0,e1760aea-29e3-4a45-b02a-b2b96cb73ec4,e1760aea-29e3-4a45-b02a-b2b96cb73ec4,1,0,c2b721a7-1e61-4b72-ba75-f4601d52e98a,c2b721a7-1e61-4b72-ba75-f4601d52e98a,1,0,a4ecd21c-a980-47f8-9944-b1dd7b5a41f3,a4ecd21c-a980-47f8-9944-b1dd7b5a41f3,1,0,7c2e35a8-d05d-4e52-baee-a1e13585c502,7c2e35a8-d05d-4e52-baee-a1e13585c502,1,0,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,1,0,2cea7641-6f1d-4bc7-9d38-8d99f196e0f5,2cea7641-6f1d-4bc7-9d38-8d99f196e0f5,1,0,0093680b-c8bc-472d-8b0d-2e6565fc6c22,0093680b-c8bc-472d-8b0d-2e6565fc6c22,1,0,7fa6a20a-26e2-41ad-be66-a43b50d0bbcd,7fa6a20a-26e2-41ad-be66-a43b50d0bbcd,1,0,5f4456d6-ff0c-425e-9603-c099492d7a6f,5f4456d6-ff0c-425e-9603-c099492d7a6f,1,0,af7c417e-5c10-4146-bde1-40db86c5806f,af7c417e-5c10-4146-bde1-40db86c5806f,1,0,1f018218-2281-4e32-a486-f32386959e5f,1f018218-2281-4e32-a486-f32386959e5f,1,0,ab5b0155-a4b1-47a1-ad87-12365dde20c1,ab5b0155-a4b1-47a1-ad87-12365dde20c1,1,0,90f3f3c5-4ca9-4c8f-9b73-f67760a6d2f0,90f3f3c5-4ca9-4c8f-9b73-f67760a6d2f0,1,0,f551f78a-2f05-4932-ac33-cfa1b077f46f,f551f78a-2f05-4932-ac33-cfa1b077f46f,1,0,a96091a7-d3a5-4893-8440-f360231bf468,a96091a7-d3a5-4893-8440-f360231bf468,1,0,9ce6eef0-5280-4374-9714-474ac571e4e2,9ce6eef0-5280-4374-9714-474ac571e4e2,1,0,6f21c34c-26aa-493d-aa08-2d4366b4064a,6f21c34c-26aa-493d-aa08-2d4366b4064a,1,0,0f55650a-2422-42a9-8258-61df4c17f1ef,0f55650a-2422-42a9-8258-61df4c17f1ef,1,0,2ef4ea1d-fd86-4ef3-a7e0-73abba89474d,2ef4ea1d-fd86-4ef3-a7e0-73abba89474d,1,0,3eaece9d-c9be-4b0b-a6f6-a3932274b806,3eaece9d-c9be-4b0b-a6f6-a3932274b806,1,0,5d9427ec-981d-4fb5-878b-8dba0d3a5536,5d9427ec-981d-4fb5-878b-8dba0d3a5536,1,0,c5dd6184-96e5-4abc-8c1e-5270e6547ee5,c5dd6184-96e5-4abc-8c1e-5270e6547ee5,1,0,a0047712-5769-495d-97af-20d06751a5b4,a0047712-5769-495d-97af-20d06751a5b4,1,0,e729c3c6-16e5-405b-99b1-a88022300c6d,e729c3c6-16e5-405b-99b1-a88022300c6d,1,0,9c089520-8233-42f6-8eee-9839ac708c6f,9c089520-8233-42f6-8eee-9839ac708c6f,1,0,24f2cfc7-6dc0-400c-8eb2-106ca2ea7034,24f2cfc7-6dc0-400c-8eb2-106ca2ea7034,1,0,5f3ffa44-49be-4da5-ab2a-a35c9bd76dee,5f3ffa44-49be-4da5-ab2a-a35c9bd76dee,1,0,89055896-49dd-4cfd-ab78-8ac3698e12d5,89055896-49dd-4cfd-ab78-8ac3698e12d5,1,0,277ca641-e869-4fcd-8a79-54c451efbbdd,277ca641-e869-4fcd-8a79-54c451efbbdd,1,0,beb07009-6612-4052-a991-888138da8e30,beb07009-6612-4052-a991-888138da8e30,1,0,aeb54e92-a1d0-46a1-b4cb-87d3c29fa30b,aeb54e92-a1d0-46a1-b4cb-87d3c29fa30b,1,0,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,1,0,672c4741-6d7b-4d3e-baa7-389bef0625d7,672c4741-6d7b-4d3e-baa7-389bef0625d7,1,0,04398ec0-1c13-43f8-8f5d-7b7619592a4d,04398ec0-1c13-43f8-8f5d-7b7619592a4d,1,0,ce463861-92df-47f2-bd0f-4a2dbf72aacc,ce463861-92df-47f2-bd0f-4a2dbf72aacc,1,0,1220ce92-b964-4fb8-9db0-b4c8c6bdbdf7,1220ce92-b964-4fb8-9db0-b4c8c6bdbdf7,1,0,eca79a64-3d00-4178-b4eb-cf5468622c96,eca79a64-3d00-4178-b4eb-cf5468622c96,1,0,1487d68c-7a2f-48cf-8c80-4074072ed52c,1487d68c-7a2f-48cf-8c80-4074072ed52c,1,0,57502594-74dd-45fe-9234-9a477d5b9741,57502594-74dd-45fe-9234-9a477d5b9741,1,0,6ed8c74c-6b6e-4ed1-95ff-a733f618b213,6ed8c74c-6b6e-4ed1-95ff-a733f618b213,1,0,d97c6536-fd62-4c9a-b83e-490a29a0721b,d97c6536-fd62-4c9a-b83e-490a29a0721b,1,0,93ec2af7-2ca8-4133-8cc0-31073f9bf216,93ec2af7-2ca8-4133-8cc0-31073f9bf216,1,0,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,1,0,681b27ac-69a5-4c5b-b2c7-285330fe5a4a,681b27ac-69a5-4c5b-b2c7-285330fe5a4a,1,0,6dc4c216-e49f-4833-b45f-6060b67995ef,6dc4c216-e49f-4833-b45f-6060b67995ef,1,0,0753701c-016e-4385-85c0-a485ca50efdc,0753701c-016e-4385-85c0-a485ca50efdc,1,0,c3a6b470-37d5-4499-badb-33b73b52e346,c3a6b470-37d5-4499-badb-33b73b52e346,1,0,24415097-bde5-447a-ac74-bd9bf0eb19fc,24415097-bde5-447a-ac74-bd9bf0eb19fc,1,0,a29d42d6-a448-4940-804d-d1be31da000d,a29d42d6-a448-4940-804d-d1be31da000d,1,0,dd780b76-2a10-40b5-9bcd-7bc8c9b06651,dd780b76-2a10-40b5-9bcd-7bc8c9b06651,1,0,8be6c4a3-d75b-405d-8d98-9baf6f20abb2,8be6c4a3-d75b-405d-8d98-9baf6f20abb2,1,0,7cbd82e3-4bf8-46ab-8504-4bf30523fa2a,7cbd82e3-4bf8-46ab-8504-4bf30523fa2a,1,0,c4b01e52-4136-460d-bd82-970177f1e256,c4b01e52-4136-460d-bd82-970177f1e256,1,0,9533784b-311a-4dbe-b73e-7348aabd387e,9533784b-311a-4dbe-b73e-7348aabd387e,1,0,56bdc69a-d8e8-4da6-a3a5-41ef32bbb626,56bdc69a-d8e8-4da6-a3a5-41ef32bbb626,1,0,c770cd75-f370-4042-9a5a-82b2fc1853cc,c770cd75-f370-4042-9a5a-82b2fc1853cc,1,0,6ee215f9-20ab-4c48-b2c2-cb1869e8906c,6ee215f9-20ab-4c48-b2c2-cb1869e8906c,1,0,b74af9c1-bc44-40ce-b093-d1f548a1742f,b74af9c1-bc44-40ce-b093-d1f548a1742f,1,0,1b401a14-4581-4f24-aaca-5f204f8fcf8b,1b401a14-4581-4f24-aaca-5f204f8fcf8b,1,0,267f7ee6-7b02-4e48-aa1e-145f586edd87,267f7ee6-7b02-4e48-aa1e-145f586edd87,1,0,e1e8ea42-6886-430a-bc59-249259112e6a,e1e8ea42-6886-430a-bc59-249259112e6a,1,0,1e27f3cd-1c9e-4f9f-b2ff-88fb1da37e11,1e27f3cd-1c9e-4f9f-b2ff-88fb1da37e11,1,0,3dcf815c-5c9a-4a78-a42e-7c9ff6faaeb8,3dcf815c-5c9a-4a78-a42e-7c9ff6faaeb8,1,0,1379f050-4f1c-4c41-993e-f7efc71325fb,1379f050-4f1c-4c41-993e-f7efc71325fb,1,0,4655fa12-9169-4d08-bdab-9b3174d0b223,4655fa12-9169-4d08-bdab-9b3174d0b223,1,0,753c70c1-af12-4ec2-ac12-dd1ce33f729f,753c70c1-af12-4ec2-ac12-dd1ce33f729f,1,0,6c07ddfb-8823-4953-9905-9550b847dc3f,6c07ddfb-8823-4953-9905-9550b847dc3f,1,0,2362a8d5-dca2-4527-acc0-63782377f28a,2362a8d5-dca2-4527-acc0-63782377f28a,1,0,dfd6d85c-a734-4458-83b0-87b5949f9c68,dfd6d85c-a734-4458-83b0-87b5949f9c68,1,0,4e3b0b9f-45b7-48a8-86c6-cc14a921aa78,4e3b0b9f-45b7-48a8-86c6-cc14a921aa78,1,0,79b6ecf5-8a6b-44a4-9587-5f8764463228,79b6ecf5-8a6b-44a4-9587-5f8764463228,1,0,5e4ec9d8-bb60-4dfb-89ba-002527dc149b,5e4ec9d8-bb60-4dfb-89ba-002527dc149b,1,0,bf463763-3801-4664-9d04-4d9fd7fe8c43,bf463763-3801-4664-9d04-4d9fd7fe8c43,1,0,43a0760f-3635-4e6a-a68a-1a2232245329,43a0760f-3635-4e6a-a68a-1a2232245329,1,0,5c64a4dd-2b9f-4110-abe2-266e6d8638fb,5c64a4dd-2b9f-4110-abe2-266e6d8638fb,1,0,d408d054-86ac-4471-a29d-efed65989899,d408d054-86ac-4471-a29d-efed65989899,1,0,3e979ec3-b544-4e37-8be6-95dce0a2b780,3e979ec3-b544-4e37-8be6-95dce0a2b780,1,0,2444eed3-25c7-4abc-a9a8-f3f3a8201267,2444eed3-25c7-4abc-a9a8-f3f3a8201267,1,0,e91118e9-d054-41a1-bfe9-343179718f33,e91118e9-d054-41a1-bfe9-343179718f33,1,0,042245ef-3a30-46fb-b3e3-6599d5426cbd,042245ef-3a30-46fb-b3e3-6599d5426cbd,1,0,d1034240-ab06-413a-9828-a5c7dc879680,d1034240-ab06-413a-9828-a5c7dc879680,1,0,5dd0f264-6d9f-41e4-92b6-e8b4fa3b4d84,5dd0f264-6d9f-41e4-92b6-e8b4fa3b4d84,1,0,cd49148c-e385-4b75-a758-a93196e73dba,cd49148c-e385-4b75-a758-a93196e73dba,1,0,ece15c4e-4a4b-421b-9f00-10f698da476b,ece15c4e-4a4b-421b-9f00-10f698da476b,1,0,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,1,0,300ecdd6-144f-48c8-9fd4-6166f1de1047,300ecdd6-144f-48c8-9fd4-6166f1de1047,1,0,b6bbfb59-8249-47af-9394-be262f118811,b6bbfb59-8249-47af-9394-be262f118811,1,0,999df397-a730-4110-b253-59fd5583dab9,999df397-a730-4110-b253-59fd5583dab9,1,0,7f7bf652-0375-4f49-94f1-ebe6a00e4e23,7f7bf652-0375-4f49-94f1-ebe6a00e4e23,1,0,12d19666-e996-4b55-b43c-b3a541f849a7,12d19666-e996-4b55-b43c-b3a541f849a7,1,0,15dab650-f7ed-42bc-8ca3-c104c3e68ce4,15dab650-f7ed-42bc-8ca3-c104c3e68ce4,1,0,fb63d488-fb91-4d08-8f8c-f4836538216f,fb63d488-fb91-4d08-8f8c-f4836538216f,1,0,b8be6c09-6880-45d3-a2d1-06ad72d069c9,b8be6c09-6880-45d3-a2d1-06ad72d069c9,1,0,3c1b10c7-3667-43f0-ac03-8cdaa84cb177,3c1b10c7-3667-43f0-ac03-8cdaa84cb177,1,0,148dd521-8754-451b-803b-cbee7c3d3965,148dd521-8754-451b-803b-cbee7c3d3965,1,0,38bc48c7-3938-47be-be3f-844f19561301,38bc48c7-3938-47be-be3f-844f19561301,1,0,4bdd09d5-6bc9-421f-99f0-ae905340f0d4,4bdd09d5-6bc9-421f-99f0-ae905340f0d4,1,0,147038fb-6154-41f3-aad6-547db27d1e43,147038fb-6154-41f3-aad6-547db27d1e43,1,0,832fa9d3-deab-4c57-b6e2-dee5d24d6100,832fa9d3-deab-4c57-b6e2-dee5d24d6100,1,0,dd4270ef-6b4c-491e-8871-959dbec14c53,dd4270ef-6b4c-491e-8871-959dbec14c53,1,0,c2b115d3-04f8-43c8-aed9-c61280b8cc3b,c2b115d3-04f8-43c8-aed9-c61280b8cc3b,1,0,9883862f-c0eb-41fe-9374-05c6d72878bc,9883862f-c0eb-41fe-9374-05c6d72878bc,1,0,61cfdc9a-49c3-4316-b38d-997910cf25c3,61cfdc9a-49c3-4316-b38d-997910cf25c3,1,0,8ccd9be8-ef26-49b9-8cee-03ae4e500386,8ccd9be8-ef26-49b9-8cee-03ae4e500386,1,0,ddca925c-fdcd-40ce-a504-4fca1758de3f,ddca925c-fdcd-40ce-a504-4fca1758de3f,1,0,9bd92328-8c9c-4882-8956-a1fccf555a64,9bd92328-8c9c-4882-8956-a1fccf555a64,1,0,cafc6b5b-a76a-4b1b-9592-ba440f7bf34f,cafc6b5b-a76a-4b1b-9592-ba440f7bf34f,1,0,e5033559-9d58-4b9b-a739-40c419e82192,e5033559-9d58-4b9b-a739-40c419e82192,1,0,594c79fa-0fdc-41d5-b122-04615dca3752,594c79fa-0fdc-41d5-b122-04615dca3752,1,0,f64de21f-5a7c-4a1a-a929-07fc53049f6c,f64de21f-5a7c-4a1a-a929-07fc53049f6c,1,0,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,1,0,ea653eca-f96a-447d-8b09-7a7cb6929ed6,ea653eca-f96a-447d-8b09-7a7cb6929ed6,1,0,4f9b6c01-0919-41ba-91dc-49497d0fecf7,4f9b6c01-0919-41ba-91dc-49497d0fecf7,1,0,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,1,0,ea868745-71fc-483c-aa6e-f242c06c673f,ea868745-71fc-483c-aa6e-f242c06c673f,1,0,5efc4bc4-b711-4620-8d2e-9d947c6cc141,5efc4bc4-b711-4620-8d2e-9d947c6cc141,1,0,1d8d0eed-caaa-494c-aeea-0df5846fc97a,1d8d0eed-caaa-494c-aeea-0df5846fc97a,1,0,1328947f-91c3-43f4-a11e-f34893d987b3,1328947f-91c3-43f4-a11e-f34893d987b3,1,0,6de9dab4-ee34-4584-a2e7-7a29c86794b0,6de9dab4-ee34-4584-a2e7-7a29c86794b0,1,0,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,1,0,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,1,0,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,1,0,2b72fe1c-afe1-4905-8db2-2bb1baca6295,2b72fe1c-afe1-4905-8db2-2bb1baca6295,1,0,aa8c4a71-3276-4b83-8be2-3528129e58b3,aa8c4a71-3276-4b83-8be2-3528129e58b3,1,0,4bc4c6db-0ef8-405f-8875-b4cb1540aeb5,4bc4c6db-0ef8-405f-8875-b4cb1540aeb5,1,0,528d3535-f20f-4d3c-8b7d-482d4d626eb0,528d3535-f20f-4d3c-8b7d-482d4d626eb0,1,0,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,1,0,e9a2441e-faf9-4158-acc7-b1a6178ae0f3,e9a2441e-faf9-4158-acc7-b1a6178ae0f3,1,0,ea0a498a-a1cb-4f28-88cb-0bc62971172b,ea0a498a-a1cb-4f28-88cb-0bc62971172b,1,0,ce5f5470-b704-4f55-8dc8-17cf2c2b367a,ce5f5470-b704-4f55-8dc8-17cf2c2b367a,1,0,871a75ef-1987-4695-9916-07439aeedc53,871a75ef-1987-4695-9916-07439aeedc53,1,0,ba64deac-5826-43f2-b88a-2e180da87059,ba64deac-5826-43f2-b88a-2e180da87059,1,0,53ee3eb6-d2d1-4fb3-8a78-1fa4543850a1,53ee3eb6-d2d1-4fb3-8a78-1fa4543850a1,1,0,0072986b-0463-4a39-9851-f9adeda99716,0072986b-0463-4a39-9851-f9adeda99716,1,0,fa44433b-1c44-45a0-9487-47aa092442cf,fa44433b-1c44-45a0-9487-47aa092442cf,1,0,041cecfd-cef2-45d9-90e8-afe0d97d2d95,041cecfd-cef2-45d9-90e8-afe0d97d2d95,1,0,0d4a26fb-7176-43f2-8767-d3e227c7306a,0d4a26fb-7176-43f2-8767-d3e227c7306a,1,0,801facc3-3b3b-4d0a-93c6-54a1f3495291,801facc3-3b3b-4d0a-93c6-54a1f3495291,1,0,f10167ac-f7bd-42fb-8daa-864593fcc115,f10167ac-f7bd-42fb-8daa-864593fcc115,1,0,77de81f0-97c5-4751-9f38-f5785c7c45e0,77de81f0-97c5-4751-9f38-f5785c7c45e0,1,0,933cbafc-5667-4a91-8b1d-dca3d7662522,933cbafc-5667-4a91-8b1d-dca3d7662522,1,0,59acaca9-ed29-4927-bee6-287c91934690,59acaca9-ed29-4927-bee6-287c91934690,1,0,9136814a-89e6-4b0f-8ca1-73e4ef29f534,9136814a-89e6-4b0f-8ca1-73e4ef29f534,1,0,d7e4795a-3431-4f7d-9699-4241611adcf0,d7e4795a-3431-4f7d-9699-4241611adcf0,1,0,7e4222fd-fb98-4ae5-9d98-d41c3d572a0c,7e4222fd-fb98-4ae5-9d98-d41c3d572a0c,1,0,d9d14a24-c023-4b69-ad57-30d1474e1232,d9d14a24-c023-4b69-ad57-30d1474e1232,1,0,b6e98aee-4936-491d-8c67-8490e1af2e34,b6e98aee-4936-491d-8c67-8490e1af2e34,1,0,0732ab1c-b49a-49ed-8667-65f4427cc301,0732ab1c-b49a-49ed-8667-65f4427cc301,1,0,b292eb46-df87-43c0-9a37-93c5a22af252,b292eb46-df87-43c0-9a37-93c5a22af252,1,0,0943dd00-1653-4760-a9fe-ebc083ffa660,0943dd00-1653-4760-a9fe-ebc083ffa660,1,0,7406da96-2e16-42a0-9522-d76547708eca,7406da96-2e16-42a0-9522-d76547708eca,1,0,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,1,0,e475a311-7cef-45e2-9ed2-0bded8b5c963,e475a311-7cef-45e2-9ed2-0bded8b5c963,1,0,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,1,0,f93c9a7f-0249-421e-b3d0-55f02d130017,f93c9a7f-0249-421e-b3d0-55f02d130017,1,0,062c507a-9d35-4eb5-bb91-d106a535a503,062c507a-9d35-4eb5-bb91-d106a535a503,1,0,ea1284f2-33f1-4e3d-b009-1ffad3aaf300,ea1284f2-33f1-4e3d-b009-1ffad3aaf300,1,0,bd727741-ba99-484d-9d7d-2c2ad7ddd1a5,bd727741-ba99-484d-9d7d-2c2ad7ddd1a5,1,0,90327957-5bdc-4949-883c-9eb50f527b3e,90327957-5bdc-4949-883c-9eb50f527b3e,1,0,031980f5-60e8-426a-9907-3afff75a6b05,031980f5-60e8-426a-9907-3afff75a6b05,1,0,1a26f2d5-2465-484c-9311-12d9b3b92ae3,1a26f2d5-2465-484c-9311-12d9b3b92ae3,1,0,fd317d96-380e-4ee7-a25b-401e8521cc7a,fd317d96-380e-4ee7-a25b-401e8521cc7a,1,0,64837ad8-3055-4da3-a39c-0e7db38b6084,64837ad8-3055-4da3-a39c-0e7db38b6084,1,0,695cda1d-b816-4200-9a71-490078a9faa7,695cda1d-b816-4200-9a71-490078a9faa7,1,0,75fc5bea-e239-4de1-ad68-6454876e4b9f,75fc5bea-e239-4de1-ad68-6454876e4b9f,1,0,31ba33d4-5941-4b11-ae99-b15188bfef76,31ba33d4-5941-4b11-ae99-b15188bfef76,1,0,0744e8be-747c-47bb-85f3-58b6f6f9b786,0744e8be-747c-47bb-85f3-58b6f6f9b786,1,0,7142ae5b-ec7b-4a69-9c26-f51e05a4c270,7142ae5b-ec7b-4a69-9c26-f51e05a4c270,1,0,3b380a63-9232-42c2-bfa2-e8fc89448bbd,3b380a63-9232-42c2-bfa2-e8fc89448bbd,1,0,e18b4527-8727-4a10-9e99-a80012debe6c,e18b4527-8727-4a10-9e99-a80012debe6c,1,0,1ed910db-e434-4efd-9b12-c25353a31d5a,1ed910db-e434-4efd-9b12-c25353a31d5a,1,0,10556a26-ea4b-46b4-84d1-175eb13b333f,10556a26-ea4b-46b4-84d1-175eb13b333f,1,0,f1e600b0-55ed-4611-b147-f04d5621796b,f1e600b0-55ed-4611-b147-f04d5621796b,1,0,e3b84128-95e1-45df-84db-5e1791779543,e3b84128-95e1-45df-84db-5e1791779543,1,0,76702e9e-fa7a-4b98-befa-f9b37db2dae0,76702e9e-fa7a-4b98-befa-f9b37db2dae0,1,0,101a4eb3-cdda-47af-8c69-615a6920347a,101a4eb3-cdda-47af-8c69-615a6920347a,1,0,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,1,0,e9d95895-8708-4035-89ad-72573b870491,e9d95895-8708-4035-89ad-72573b870491,1,0,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,1,0,f79bada2-838f-4e4f-a017-935cf671a70c,f79bada2-838f-4e4f-a017-935cf671a70c,1,0,312118ff-a2a4-479c-964a-5250cca0cd20,312118ff-a2a4-479c-964a-5250cca0cd20,1,0,355eb7bc-651a-4b24-abcd-61bb83222b7e,355eb7bc-651a-4b24-abcd-61bb83222b7e,1,0,f8d32d21-ea2f-42bb-a785-9bd3cf754cd9,f8d32d21-ea2f-42bb-a785-9bd3cf754cd9,1,0,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,1,0,8a310493-c06f-46db-b2b5-14d6ed203312,8a310493-c06f-46db-b2b5-14d6ed203312,1,0,caf8f0e8-7a2c-498b-9b74-ed6b87cce670,caf8f0e8-7a2c-498b-9b74-ed6b87cce670,1,0,b68ec95b-64f3-4a2b-9683-231d50f01eeb,b68ec95b-64f3-4a2b-9683-231d50f01eeb,1,0,89318397-b3a6-4468-985b-ed5cb8ab5cdb,89318397-b3a6-4468-985b-ed5cb8ab5cdb,1,0,4e6734a0-3bf8-4e71-bd38-5526819609f4,4e6734a0-3bf8-4e71-bd38-5526819609f4,1,0,5e5b0ad7-ef73-4a73-baf5-360a9244a1cc,5e5b0ad7-ef73-4a73-baf5-360a9244a1cc,1,0,4a008342-f72f-4ca1-bad1-64b59b509911,4a008342-f72f-4ca1-bad1-64b59b509911,1,0,4436b2cf-2d71-401f-99fd-012ff0c91fbd,4436b2cf-2d71-401f-99fd-012ff0c91fbd,1,0,cefa1723-a4d4-44c4-bd57-ffa713f9306c,cefa1723-a4d4-44c4-bd57-ffa713f9306c,1,0,5d75aae8-9d9c-4a47-b8c0-2ce56431fe53,5d75aae8-9d9c-4a47-b8c0-2ce56431fe53,1,0,5396be45-d7c0-43df-aed4-cad062a02b11,5396be45-d7c0-43df-aed4-cad062a02b11,1,0,017e3da8-e48e-488b-9bbf-4fef1a4f3417,017e3da8-e48e-488b-9bbf-4fef1a4f3417,1,0,de4d37c9-b278-4c0c-bc10-1b63ecd72947,de4d37c9-b278-4c0c-bc10-1b63ecd72947,1,0,aebf163d-d8e8-492a-a973-8cb51982d475,aebf163d-d8e8-492a-a973-8cb51982d475,1,0,5a741cf6-8160-4409-9396-2e6d1e67e6fa,5a741cf6-8160-4409-9396-2e6d1e67e6fa,1,0,4920aabf-6f53-4f91-932a-8ace24631a74,4920aabf-6f53-4f91-932a-8ace24631a74,1,0,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,1,0,7531fb7c-a4ae-42df-b8e5-d8bfcb66be52,7531fb7c-a4ae-42df-b8e5-d8bfcb66be52,1,0,d9e98c14-9b07-406b-92c8-bec76165e028,d9e98c14-9b07-406b-92c8-bec76165e028,1,0,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,1,0,9bb33b9f-0a27-4edd-b3b2-1c20a75d0f20,9bb33b9f-0a27-4edd-b3b2-1c20a75d0f20,1,0,bbec9c3d-31dd-484e-ab32-41ef845f1370,bbec9c3d-31dd-484e-ab32-41ef845f1370,1,0,8692ba41-d91d-4af0-8aba-69dd5409d593,8692ba41-d91d-4af0-8aba-69dd5409d593,1,0,7abb55d2-eac6-44a0-9ebc-fa26a7f0c028,7abb55d2-eac6-44a0-9ebc-fa26a7f0c028,1,0,bdafe976-c8d6-413a-8d61-765a02014e5d,bdafe976-c8d6-413a-8d61-765a02014e5d,1,0,68e207e7-8c20-426d-8a0e-c3dd4d683631,68e207e7-8c20-426d-8a0e-c3dd4d683631,1,0,6d7fa2f9-7ca4-4ad6-b94b-8267768a0f04,6d7fa2f9-7ca4-4ad6-b94b-8267768a0f04,1,0,5cc3a29d-aa98-42bf-9800-f584229c8e46,5cc3a29d-aa98-42bf-9800-f584229c8e46,1,0,a95b564a-c895-40f2-b947-ea08462bb2a0,a95b564a-c895-40f2-b947-ea08462bb2a0,1,0,1e015740-5b45-4729-9732-57359a7c602f,1e015740-5b45-4729-9732-57359a7c602f,1,0,6eb6003c-71cb-4be8-a375-abd5c9f7336b,6eb6003c-71cb-4be8-a375-abd5c9f7336b,1,0,ca63ca2f-703d-4317-8c5d-0650ea638f3f,ca63ca2f-703d-4317-8c5d-0650ea638f3f,1,0,aa2256c7-9847-40a5-9e49-11c508e0d45b,aa2256c7-9847-40a5-9e49-11c508e0d45b,1,0,a04493f4-508c-4047-b0e3-b7d4bde6427b,a04493f4-508c-4047-b0e3-b7d4bde6427b,1,0,6c138ffd-057f-4f7d-af4d-1b1a589a9057,6c138ffd-057f-4f7d-af4d-1b1a589a9057,1,0,418982cd-d403-47cf-a7ef-993a36104947,418982cd-d403-47cf-a7ef-993a36104947,1,0,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,1,0,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,1,0,35eea3b8-d017-442a-b5a0-a1571165b9a9,35eea3b8-d017-442a-b5a0-a1571165b9a9,1,0,7e84901c-cb7f-437c-a135-0902cd47acb6,7e84901c-cb7f-437c-a135-0902cd47acb6,1,0,69530795-5a90-47b0-ae8d-a44b420b51f6,69530795-5a90-47b0-ae8d-a44b420b51f6,1,0,da2b47f5-4109-4f72-a4a5-70be24a6881f,da2b47f5-4109-4f72-a4a5-70be24a6881f,1,0,849f034e-85dc-4515-aae6-240c1e0d46d9,849f034e-85dc-4515-aae6-240c1e0d46d9,1,0,5fbea8c7-48e3-4ed0-a8d0-cf942b37a166,5fbea8c7-48e3-4ed0-a8d0-cf942b37a166,1,0,d85ba2d1-63e9-4680-bd88-6c0c4dba5d0f,d85ba2d1-63e9-4680-bd88-6c0c4dba5d0f,1,0,acfa1919-07ce-4464-8552-6b104e284dca,acfa1919-07ce-4464-8552-6b104e284dca,1,0,cd74d617-8ebe-4a7d-b011-38c98d856d8c,cd74d617-8ebe-4a7d-b011-38c98d856d8c,1,0,f4cff4ff-68e9-4072-971e-1b359d3aa980,f4cff4ff-68e9-4072-971e-1b359d3aa980,1,0,f9a5bd40-7c56-4ced-bddb-a66c1fc31b81,f9a5bd40-7c56-4ced-bddb-a66c1fc31b81,1,0,fdb012c9-583a-42af-95da-070e75a58078,fdb012c9-583a-42af-95da-070e75a58078,1,0,7d069b11-cddd-463d-97be-3cbeaaf0954c,7d069b11-cddd-463d-97be-3cbeaaf0954c,1,0,8c5fae4c-b5b6-4e05-9453-4ac5de07c54c,8c5fae4c-b5b6-4e05-9453-4ac5de07c54c,1,0,5ea4412e-0ce0-4176-917b-37817ed788e1,5ea4412e-0ce0-4176-917b-37817ed788e1,1,0,8242daae-181a-47df-b28e-c1de3fce0359,8242daae-181a-47df-b28e-c1de3fce0359,1,0,bd206271-1388-4759-8992-da81507613be,bd206271-1388-4759-8992-da81507613be,1,0,8de2c020-0ebe-4374-93d7-d2e19ed82470,8de2c020-0ebe-4374-93d7-d2e19ed82470,1,0,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,1,0,57e39881-cbf9-4cac-9ed0-bf4a6ea667ee,57e39881-cbf9-4cac-9ed0-bf4a6ea667ee,1,0,b9004626-915c-44c8-9cb7-25e5b627ee83,b9004626-915c-44c8-9cb7-25e5b627ee83,1,0,1a3eff9b-6598-4e11-9b8f-81249c53abec,1a3eff9b-6598-4e11-9b8f-81249c53abec,1,0,63c6cfad-124d-491a-829d-b298463c95e6,63c6cfad-124d-491a-829d-b298463c95e6,1,0,3da31d2f-24dd-469b-bd3b-073fa3b3d585,3da31d2f-24dd-469b-bd3b-073fa3b3d585,1,0,33b12dd8-7a86-4a51-bd3d-4911ec1ffde4,33b12dd8-7a86-4a51-bd3d-4911ec1ffde4,1,0,11c610f5-0f5d-49aa-9015-4a514dfcf515,11c610f5-0f5d-49aa-9015-4a514dfcf515,1,0,1e020429-ac68-46f4-b34c-c2c4a2b494f6,1e020429-ac68-46f4-b34c-c2c4a2b494f6,1,0,1c1a5bf8-bbe6-4a69-973e-11445175dac2,1c1a5bf8-bbe6-4a69-973e-11445175dac2,1,0,f11ffcfd-3588-4785-b222-cebe80455303,f11ffcfd-3588-4785-b222-cebe80455303,1,0,789a2027-8601-434c-bf47-37696a3966ad,789a2027-8601-434c-bf47-37696a3966ad,1,0,f71eceb3-ef2e-4e6c-bf9c-e7e7d42c1c7c,f71eceb3-ef2e-4e6c-bf9c-e7e7d42c1c7c,1,0,b91b1b08-f35d-40b2-83d8-ecc761124b05,b91b1b08-f35d-40b2-83d8-ecc761124b05,1,0,5fb7ebb4-e2ce-40ae-aa1c-9351dc66919b,5fb7ebb4-e2ce-40ae-aa1c-9351dc66919b,1,0,1c7e9baa-7728-4afd-829a-806cee13ecdb,1c7e9baa-7728-4afd-829a-806cee13ecdb,1,0,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,1,0,bfdc6346-db5b-427f-acca-9b48db8fefd0,bfdc6346-db5b-427f-acca-9b48db8fefd0,1,0,1c3f258c-345e-47f6-9e29-98b1222fb348,1c3f258c-345e-47f6-9e29-98b1222fb348,1,0,dfafcdf3-cdeb-4822-9f41-a730d9d3fb24,dfafcdf3-cdeb-4822-9f41-a730d9d3fb24,1,0,4c3085e1-2f86-4af4-a392-ab45e30a7152,4c3085e1-2f86-4af4-a392-ab45e30a7152,1,0,35c938f4-065f-47f5-a75b-637ed0080725,35c938f4-065f-47f5-a75b-637ed0080725,1,0,89cc9ae4-e933-4f4a-849f-48ef67b75819,89cc9ae4-e933-4f4a-849f-48ef67b75819,1,0,36e096be-ee28-437a-b8f2-c1e274c150e3,36e096be-ee28-437a-b8f2-c1e274c150e3,1,0,160e9608-7301-4572-af02-6a7cceca1560,160e9608-7301-4572-af02-6a7cceca1560,1,0,4a70416b-6598-4239-be70-2c0c8255388a,4a70416b-6598-4239-be70-2c0c8255388a,1,0,f6b69c2b-e32a-477f-9128-b61d8237290e,f6b69c2b-e32a-477f-9128-b61d8237290e,1,0,f6b8e6ae-7d3e-4f6c-bd74-66ee7593868c,f6b8e6ae-7d3e-4f6c-bd74-66ee7593868c,1,0,e730ea3f-4f2a-4e21-8851-bccc51830cfe,e730ea3f-4f2a-4e21-8851-bccc51830cfe,1,0,193ab4a7-7eee-4374-95cf-2d907a3ba971,193ab4a7-7eee-4374-95cf-2d907a3ba971,1,0,e2779397-46ed-4d95-8529-45896f9567d2,e2779397-46ed-4d95-8529-45896f9567d2,1,0,3002d5d8-1b7d-4252-9e5d-9a533bf03ca8,3002d5d8-1b7d-4252-9e5d-9a533bf03ca8,1,0,e14c0841-226c-4c79-bec9-cfc8d2c3a160,e14c0841-226c-4c79-bec9-cfc8d2c3a160,1,0,d05bbd02-9db3-4830-be9d-7080f3506e01,d05bbd02-9db3-4830-be9d-7080f3506e01,1,0,6f3c5b90-b030-4267-a973-33d12c2c7680,6f3c5b90-b030-4267-a973-33d12c2c7680,1,0,1ff8210b-26c5-4429-b580-7c6ec7c9b63a,1ff8210b-26c5-4429-b580-7c6ec7c9b63a,1,0,7e3283df-05a6-4dc5-a786-056c71bdbf6f,7e3283df-05a6-4dc5-a786-056c71bdbf6f,1,0,c6af8b0f-3767-4198-88e2-f5763cb0294a,c6af8b0f-3767-4198-88e2-f5763cb0294a,1,0,faf89779-2290-4d37-b1ea-e81b1b79f74c,faf89779-2290-4d37-b1ea-e81b1b79f74c,1,0,88b879b7-1bb3-4478-b569-35bdb5c56939,88b879b7-1bb3-4478-b569-35bdb5c56939,1,0,b9e93e8f-1d4b-4bbb-ac1b-c8d26cfd1da2,b9e93e8f-1d4b-4bbb-ac1b-c8d26cfd1da2,1,0,7a62d031-c340-4b1e-90af-fff697a2e979,7a62d031-c340-4b1e-90af-fff697a2e979,1,0,18bf6916-83cc-41e5-a35b-1489450ae632,18bf6916-83cc-41e5-a35b-1489450ae632,1,0,ebab97cf-5335-4648-9845-8ca41f79fb49,ebab97cf-5335-4648-9845-8ca41f79fb49,1,0,bb29fa44-6772-4426-a0b8-422115e14288,bb29fa44-6772-4426-a0b8-422115e14288,1,0,ac847dc9-e222-45cf-af4a-6fa863c919a8,ac847dc9-e222-45cf-af4a-6fa863c919a8,1,0,a5cc5ae2-be80-4957-8aca-9e477433dfcc,a5cc5ae2-be80-4957-8aca-9e477433dfcc,1,0,62fa393c-687c-49bf-8a25-81adc04430fb,62fa393c-687c-49bf-8a25-81adc04430fb,1,0,13fcf1e8-730e-436f-b316-6bcb8301f894,13fcf1e8-730e-436f-b316-6bcb8301f894,1,0,fa548f02-82e0-4897-89e8-0618ebf16919,fa548f02-82e0-4897-89e8-0618ebf16919,1,0,8c28a5b0-517f-48fe-9bde-5e611c319413,8c28a5b0-517f-48fe-9bde-5e611c319413,1,0,904e1209-91d8-49b1-b291-364ef728cbbf,904e1209-91d8-49b1-b291-364ef728cbbf,1,0,4a0d7cd7-8e43-4a1f-88b8-ffc376b38f7c,4a0d7cd7-8e43-4a1f-88b8-ffc376b38f7c,1,0,1198f2ee-b8a8-456d-9461-61bc5d42c7a1,1198f2ee-b8a8-456d-9461-61bc5d42c7a1,1,0,b8ecb7f0-ef40-4d31-9ec2-a731439d3200,b8ecb7f0-ef40-4d31-9ec2-a731439d3200,1,0,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,1,0,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,1,0,23314bcd-2dd4-43f1-9fdb-ae182a48c886,23314bcd-2dd4-43f1-9fdb-ae182a48c886,1,0,c5f86fa3-4a36-4e22-8b57-7088dd250cd3,c5f86fa3-4a36-4e22-8b57-7088dd250cd3,1,0,9440a132-366f-4fc9-bd72-2544ba2b072a,9440a132-366f-4fc9-bd72-2544ba2b072a,1,0,84282afa-21f5-40db-9386-e6f741c9a06c,84282afa-21f5-40db-9386-e6f741c9a06c,1,0,5b3b3da9-8619-4fbd-b140-3528875cd179,5b3b3da9-8619-4fbd-b140-3528875cd179,1,0,99e5e866-7ac6-4916-ab66-3e2909822c56,99e5e866-7ac6-4916-ab66-3e2909822c56,1,0,03363877-2752-4a03-95f2-d73b732e0bfd,03363877-2752-4a03-95f2-d73b732e0bfd,1,0,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,1,0,78051e10-74ab-44be-adca-e4c93824a386,78051e10-74ab-44be-adca-e4c93824a386,1,0,73629419-83d8-4727-88a9-76c851d104c9,73629419-83d8-4727-88a9-76c851d104c9,1,0,cadb54f0-dcff-4f96-983e-a309fd72f330,cadb54f0-dcff-4f96-983e-a309fd72f330,1,0,a9c3065b-db68-4f59-9235-33f9fbfdaafd,a9c3065b-db68-4f59-9235-33f9fbfdaafd,1,0,3715cf3d-0abc-4711-8ac9-d41f0be7878f,3715cf3d-0abc-4711-8ac9-d41f0be7878f,1,0,8e8d8078-8b32-4c24-b26e-89a92bf60160,8e8d8078-8b32-4c24-b26e-89a92bf60160,1,0,e6af9db4-b93f-422e-846c-e6c5fd33f992,e6af9db4-b93f-422e-846c-e6c5fd33f992,1,0,2895ac1f-5f15-422d-9d90-2df87255a92a,2895ac1f-5f15-422d-9d90-2df87255a92a,1,0,f96cbb27-7619-41e0-8577-e623ef02dc58,f96cbb27-7619-41e0-8577-e623ef02dc58,1,0,ed5ff5b0-f980-4b9a-9299-eef68e3b42d5,ed5ff5b0-f980-4b9a-9299-eef68e3b42d5,1,0,d74dfd31-2016-435b-8652-15fdbca59490,d74dfd31-2016-435b-8652-15fdbca59490,1,0,ba8111a9-1d33-4615-ad0b-b3e923b2f3bd,ba8111a9-1d33-4615-ad0b-b3e923b2f3bd,1,0,27651e0e-d560-434b-a49c-f473a5b20c4d,27651e0e-d560-434b-a49c-f473a5b20c4d,1,0,dab1491b-0685-442d-b945-2bfde3f37933,dab1491b-0685-442d-b945-2bfde3f37933,1,0,42107b14-9373-418a-a41d-35c87434c51a,42107b14-9373-418a-a41d-35c87434c51a,1,0,24d8ce8d-e94c-4168-abad-d0ce5e6cbf1b,24d8ce8d-e94c-4168-abad-d0ce5e6cbf1b,1,0,8786575a-eab6-46bf-be3a-167e2d5b41dd,8786575a-eab6-46bf-be3a-167e2d5b41dd,1,0,ce85554b-81ba-4149-a951-d09bdc14fa16,ce85554b-81ba-4149-a951-d09bdc14fa16,1,0,23a1ef35-1469-44ea-8535-fa9c7f535cae,23a1ef35-1469-44ea-8535-fa9c7f535cae,1,0,9ff1c73e-71be-4ea6-97fb-e710d995ee62,9ff1c73e-71be-4ea6-97fb-e710d995ee62,1,0,50f7effb-e051-49dd-8b56-0771dda350cc,50f7effb-e051-49dd-8b56-0771dda350cc,1,0,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,1,0,2558d812-ac0a-49ba-87db-3f661209a3c4,2558d812-ac0a-49ba-87db-3f661209a3c4,1,0,20d712ef-77c1-4374-92e1-f20a3ebc7eab,20d712ef-77c1-4374-92e1-f20a3ebc7eab,1,0,65d23ce8-e326-45ee-86b0-6dcf35797201,65d23ce8-e326-45ee-86b0-6dcf35797201,1,0,a2683c3f-1b21-47d8-951d-7d30cde51efc,a2683c3f-1b21-47d8-951d-7d30cde51efc,1,0,54c77053-1728-4914-a354-73fe8853a0e1,54c77053-1728-4914-a354-73fe8853a0e1,1,0,21136691-078f-4bf7-bddd-f41416a76d86,21136691-078f-4bf7-bddd-f41416a76d86,1,0,9d669d30-a0af-4095-852a-96b4224ee933,9d669d30-a0af-4095-852a-96b4224ee933,1,0,590aba18-7d56-48e3-9454-5f2882a32f80,590aba18-7d56-48e3-9454-5f2882a32f80,1,0,30a121c7-c4f5-45c4-9504-9778ed85d9e3,30a121c7-c4f5-45c4-9504-9778ed85d9e3,1,0,c68e2157-2541-4f80-966a-d68ce603f131,c68e2157-2541-4f80-966a-d68ce603f131,1,0,18363a37-28b0-488b-a7d6-54d3596d2a6d,18363a37-28b0-488b-a7d6-54d3596d2a6d,1,0,e5f401b5-4672-4529-a8dd-6d819f3f269c,e5f401b5-4672-4529-a8dd-6d819f3f269c,1,0,126d5d78-a2b0-4c16-b429-bf8d251280e7,126d5d78-a2b0-4c16-b429-bf8d251280e7,1,0,f8f96dce-913c-4858-bcb7-dcfe3dc2f72e,f8f96dce-913c-4858-bcb7-dcfe3dc2f72e,1,0,70d93c88-c9e9-4b8e-b8f3-ef07c665ab5d,70d93c88-c9e9-4b8e-b8f3-ef07c665ab5d,1,0,12443114-1931-4eb7-968a-7dbe166b7298,12443114-1931-4eb7-968a-7dbe166b7298,1,0,0080c29d-ec54-43a8-aab8-c67e0279b6b7,0080c29d-ec54-43a8-aab8-c67e0279b6b7,1,0,a0271f6e-dc70-4dfe-a395-203e8a89f933,a0271f6e-dc70-4dfe-a395-203e8a89f933,1,0,e5dfee58-f748-48ee-81a3-7c6133f06365,e5dfee58-f748-48ee-81a3-7c6133f06365,1,0,5e52dfe6-5a98-4a32-9429-5f44bf442367,5e52dfe6-5a98-4a32-9429-5f44bf442367,1,0,9aa0a0cb-9547-4868-9495-b00f3ecd2b3a,9aa0a0cb-9547-4868-9495-b00f3ecd2b3a,1,0,a9e31d90-fe65-47c3-8109-6e1eae862f53,a9e31d90-fe65-47c3-8109-6e1eae862f53,1,0,68500931-89e0-491e-aba8-b013c9e6f8c3,68500931-89e0-491e-aba8-b013c9e6f8c3,1,0,70b79e56-bb71-4f38-93cf-94dda79d9b4c,70b79e56-bb71-4f38-93cf-94dda79d9b4c,1,0,e678bb94-3cb1-4706-8e76-4fada4d5036c,e678bb94-3cb1-4706-8e76-4fada4d5036c,1,0,5c4c9931-3fb0-47a8-9e4f-d552de12b355,5c4c9931-3fb0-47a8-9e4f-d552de12b355,1,0,dc1d0f97-e2f3-4e1d-b21c-411b46e39848,dc1d0f97-e2f3-4e1d-b21c-411b46e39848,1,0,2a498baf-ec2e-4dda-b568-801bb60db225,2a498baf-ec2e-4dda-b568-801bb60db225,1,0,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,1,0,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,1,0,f987ca28-545b-4540-9e36-b0daa67dc3cb,f987ca28-545b-4540-9e36-b0daa67dc3cb,1,0,70f156d8-9cb4-442d-a36b-7a43d03bcd12,70f156d8-9cb4-442d-a36b-7a43d03bcd12,1,0,35989876-16b1-4b02-9381-444a06a7a21d,35989876-16b1-4b02-9381-444a06a7a21d,1,0,f7608000-1e8a-4ca4-afb7-e04ef547b70a,f7608000-1e8a-4ca4-afb7-e04ef547b70a,1,0,f0a6de82-45ab-4153-bccf-df82fc960aa1,f0a6de82-45ab-4153-bccf-df82fc960aa1,1,0,26cea519-19d0-4707-be0a-1a43fde6e563,26cea519-19d0-4707-be0a-1a43fde6e563,1,0,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,1,0,7ea3206a-2a16-460d-ad6d-849103f50bdb,7ea3206a-2a16-460d-ad6d-849103f50bdb,1,0,eb35bff2-8467-48fe-bf93-ece2aa40f506,eb35bff2-8467-48fe-bf93-ece2aa40f506,1,0,f26bdf61-8dc9-47e3-bc13-e6b7d8252ebd,f26bdf61-8dc9-47e3-bc13-e6b7d8252ebd,1,0,10302ca9-850c-4561-a774-d099c20b1919,10302ca9-850c-4561-a774-d099c20b1919,1,0,c62c30d6-ffac-43e0-bb20-25fa8eeb62fd,c62c30d6-ffac-43e0-bb20-25fa8eeb62fd,1,0,d693bfcf-e117-445b-b0e1-d895bc5227c4,d693bfcf-e117-445b-b0e1-d895bc5227c4,1,0,68cf55da-b29e-4a65-815b-c9cdc8e5888e,68cf55da-b29e-4a65-815b-c9cdc8e5888e,1,0,967bf537-f742-4d9a-95ff-afaa5525a2f0,967bf537-f742-4d9a-95ff-afaa5525a2f0,1,0,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,1,0,1041ed81-c1f7-43b2-9087-914865a3076e,1041ed81-c1f7-43b2-9087-914865a3076e,1,0,5d7174d2-42b3-4e12-b705-4209dd73b53b,5d7174d2-42b3-4e12-b705-4209dd73b53b,1,0,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,1,0,e00dcab4-5e92-44e3-bcdf-a31dd32a195f,e00dcab4-5e92-44e3-bcdf-a31dd32a195f,1,0,0508e7ab-3dd9-42b4-9542-089ce0656bbb,0508e7ab-3dd9-42b4-9542-089ce0656bbb,1,0,cfe59dfd-a509-4f83-b926-b3ff94234a43,cfe59dfd-a509-4f83-b926-b3ff94234a43,1,0,17df1591-61b0-4204-8379-8d1f58445968,17df1591-61b0-4204-8379-8d1f58445968,1,0,9020fa9d-e7de-4574-ab65-db6651b5b610,9020fa9d-e7de-4574-ab65-db6651b5b610,1,0,fd5e72f7-3078-48eb-b01b-1800ffbd86d3,fd5e72f7-3078-48eb-b01b-1800ffbd86d3,1,0,e83ad33d-27df-4181-afd2-b7f416e6e705,e83ad33d-27df-4181-afd2-b7f416e6e705,1,0,ddeec7f4-8bd3-40af-bcac-00d18c0e6d6a,ddeec7f4-8bd3-40af-bcac-00d18c0e6d6a,1,0,f0438b0a-7916-4de4-a3a8-d43407c3295f,f0438b0a-7916-4de4-a3a8-d43407c3295f,1,0,3309648c-aae6-4684-ae8d-7ed636bc3468,3309648c-aae6-4684-ae8d-7ed636bc3468,1,0,f9aa933e-6684-48de-b802-96c8e61b1fe6,f9aa933e-6684-48de-b802-96c8e61b1fe6,1,0,f41e5a5b-394b-423a-bee5-ed4d1da0be71,f41e5a5b-394b-423a-bee5-ed4d1da0be71,1,0,23db175f-ddfb-4af7-9c0c-232b6adb7daf,23db175f-ddfb-4af7-9c0c-232b6adb7daf,1,0,9de4d430-95ec-4435-b3e8-4fc85778d517,9de4d430-95ec-4435-b3e8-4fc85778d517,1,0,205b8908-fa21-42bd-bff0-fb95e6787f15,205b8908-fa21-42bd-bff0-fb95e6787f15,1,0,4e309f26-35e8-49d9-bbd1-c7884e666dca,4e309f26-35e8-49d9-bbd1-c7884e666dca,1,0,84f05fe4-51d3-49a8-83e7-1cae2028147e,84f05fe4-51d3-49a8-83e7-1cae2028147e,1,0,8a9ab11b-5bb5-4da9-9053-8f9e8198d019,8a9ab11b-5bb5-4da9-9053-8f9e8198d019,1,0,5320abf1-b09b-4de0-9adf-4cb1da31df6f,5320abf1-b09b-4de0-9adf-4cb1da31df6f,1,0,c382ee3a-d0a8-4ed8-ac88-5558b631f448,c382ee3a-d0a8-4ed8-ac88-5558b631f448,1,0,3916ddbd-9023-42a4-849e-9cda6e591408,3916ddbd-9023-42a4-849e-9cda6e591408,1,0,5e9e42c5-dcbc-422f-acce-4f11a63dbb85,5e9e42c5-dcbc-422f-acce-4f11a63dbb85,1,0,6903ffe4-42c1-4708-a1b0-bb67cd3f9e4c,6903ffe4-42c1-4708-a1b0-bb67cd3f9e4c,1,0,3e453cca-aac3-4ff3-bb15-32c09f43e7b2,3e453cca-aac3-4ff3-bb15-32c09f43e7b2,1,0,49bcd9e6-f312-4bb6-959a-242b73907591,49bcd9e6-f312-4bb6-959a-242b73907591,1,0,8e36227c-c0aa-43c4-93ad-e78701248fb1,8e36227c-c0aa-43c4-93ad-e78701248fb1,1,0,f135b60e-6d28-4ba1-acd7-76090f14855d,f135b60e-6d28-4ba1-acd7-76090f14855d,1,0,5b105084-c4ba-4ff6-9196-8b3e3a9991e2,5b105084-c4ba-4ff6-9196-8b3e3a9991e2,1,0,f78ffd16-5bd4-421a-99af-9cf5f126d960,f78ffd16-5bd4-421a-99af-9cf5f126d960,1,0,2bd23dd2-8107-410f-8137-3d022546594b,2bd23dd2-8107-410f-8137-3d022546594b,1,0,e8cc4e0f-e9c2-4a24-a50e-f5be5ed21019,e8cc4e0f-e9c2-4a24-a50e-f5be5ed21019,1,0,3f09badb-70bd-4996-822f-2e2e9524f09d,3f09badb-70bd-4996-822f-2e2e9524f09d,1,0,aca89232-c531-47ca-a82e-e7bfadd56674,aca89232-c531-47ca-a82e-e7bfadd56674,1,0,4b8927df-e124-4bf6-9d70-6e91b4796d90,4b8927df-e124-4bf6-9d70-6e91b4796d90,1,0,871b63a2-c7a6-4343-8d8b-7dda1b0def87,871b63a2-c7a6-4343-8d8b-7dda1b0def87,1,0,52b45b3d-b01b-4aac-8a1e-e256957c39c3,52b45b3d-b01b-4aac-8a1e-e256957c39c3,1,0,fc78d8df-ab27-4544-a65c-73908b9c5425,fc78d8df-ab27-4544-a65c-73908b9c5425,1,0,f8a090d2-b2d1-4ead-a8bf-6325a7552743,f8a090d2-b2d1-4ead-a8bf-6325a7552743,1,0,84f935da-9fe5-44ea-845b-b447b8b0a6f5,84f935da-9fe5-44ea-845b-b447b8b0a6f5,1,0,a4878c33-f156-44cc-b114-5670403075eb,a4878c33-f156-44cc-b114-5670403075eb,1,0,cc567ef8-3e63-4c53-a14a-899221ec9e46,cc567ef8-3e63-4c53-a14a-899221ec9e46,1,0,0f1f8bc8-73ce-4384-9496-9bc2d0e212be,0f1f8bc8-73ce-4384-9496-9bc2d0e212be,1,0,695ad525-d1ba-42fb-adc1-6c44ac433c69,695ad525-d1ba-42fb-adc1-6c44ac433c69,1,0,93afedb2-2d93-4611-b0fd-830bf33789c2,93afedb2-2d93-4611-b0fd-830bf33789c2,1,0,026dadd4-a698-4d56-9b72-7ad9f224e502,026dadd4-a698-4d56-9b72-7ad9f224e502,1,0,d0b49fd9-4054-409f-97a0-a0811ba6c1ab,d0b49fd9-4054-409f-97a0-a0811ba6c1ab,1,0,c7130560-3953-496f-b1d0-cae676fcb5a9,c7130560-3953-496f-b1d0-cae676fcb5a9,1,0,b7d5c226-a787-45e5-b46b-c51b145fcf6a,b7d5c226-a787-45e5-b46b-c51b145fcf6a,1,0,8ca63a1d-4593-4f52-8b5e-4feb9f8487ca,8ca63a1d-4593-4f52-8b5e-4feb9f8487ca,1,0,1e4cc0d6-6e5e-4d16-ba44-060912ec292f,1e4cc0d6-6e5e-4d16-ba44-060912ec292f,1,0,e9311a22-56b5-4607-8eaa-52382ed040c3,e9311a22-56b5-4607-8eaa-52382ed040c3,1,0,dc7b8596-b2c0-415f-95d9-c0aaa96c5675,dc7b8596-b2c0-415f-95d9-c0aaa96c5675,1,0,87e6e315-01e0-41eb-8373-0a60635f2f7a,87e6e315-01e0-41eb-8373-0a60635f2f7a,1,0,9b77e99b-b1d3-4368-a671-59e0ebba3f0e,9b77e99b-b1d3-4368-a671-59e0ebba3f0e,1,0,ad847998-6e50-4160-81fc-3b58ad68f202,ad847998-6e50-4160-81fc-3b58ad68f202,1,0,b2b98bcf-41da-4643-a6dc-39e5379b99e5,b2b98bcf-41da-4643-a6dc-39e5379b99e5,1,0,fdd9fb90-f5f0-4c08-9341-4374403bc950,fdd9fb90-f5f0-4c08-9341-4374403bc950,1,0,0e2d814a-cc9d-4f91-910d-bda54779e298,0e2d814a-cc9d-4f91-910d-bda54779e298,1,0,8fdfef8d-502e-4d27-a539-e833048fa1eb,8fdfef8d-502e-4d27-a539-e833048fa1eb,1,0,65530aca-7cf2-4a52-b5be-5dcbc15a049e,65530aca-7cf2-4a52-b5be-5dcbc15a049e,1,0,15eb2c2d-305d-42c0-9aec-936b82114bdb,15eb2c2d-305d-42c0-9aec-936b82114bdb,1,0,bb99bc44-f83e-48bb-93fd-7b07ca7da6a7,bb99bc44-f83e-48bb-93fd-7b07ca7da6a7,1,0,7718bd0b-7b8a-4ffc-b228-f05683b5531a,7718bd0b-7b8a-4ffc-b228-f05683b5531a,1,0,0b303d25-e141-431f-828c-1778d3c247f6,0b303d25-e141-431f-828c-1778d3c247f6,1,0,881f53bc-a52e-4312-b09d-3d3f53ddf84b,881f53bc-a52e-4312-b09d-3d3f53ddf84b,1,0,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,1,0,945ae8d2-b74a-41e9-b740-c82acdd40d04,945ae8d2-b74a-41e9-b740-c82acdd40d04,1,0,976533bf-f162-42a1-a47e-6d681ee67b82,976533bf-f162-42a1-a47e-6d681ee67b82,1,0,19bc0dd8-9e6b-4855-bc42-b4e98443163f,19bc0dd8-9e6b-4855-bc42-b4e98443163f,1,0,a61e10af-eaba-4e7a-a641-65d77453a559,a61e10af-eaba-4e7a-a641-65d77453a559,1,0,e1a375da-c16c-4616-8a33-9414c13a48c7,e1a375da-c16c-4616-8a33-9414c13a48c7,1,0,99993a9b-97e9-4606-94fa-2da43a03c3b2,99993a9b-97e9-4606-94fa-2da43a03c3b2,1,0,edf81bbb-905a-474d-959a-db5629a8e104,edf81bbb-905a-474d-959a-db5629a8e104,1,0,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,1,0,b20780cd-53d9-48bb-ac3f-2aa4eb6ab3c5,b20780cd-53d9-48bb-ac3f-2aa4eb6ab3c5,1,0,e9e242b7-0077-4c47-8f45-df50e7cc90cf,e9e242b7-0077-4c47-8f45-df50e7cc90cf,1,0,820383e1-9b95-4c0f-8464-722f1fe64ad5,820383e1-9b95-4c0f-8464-722f1fe64ad5,1,0,3d6cf2ab-29b2-45af-a6e2-8796284acf2d,3d6cf2ab-29b2-45af-a6e2-8796284acf2d,1,0,292bfe6b-703e-40cb-856d-abb470e6709f,292bfe6b-703e-40cb-856d-abb470e6709f,1,0,276c42ca-f5e0-4bb4-9b89-a925def35cb1,276c42ca-f5e0-4bb4-9b89-a925def35cb1,1,0,ddac9d84-61b8-49e7-b468-e4aef4403d64,ddac9d84-61b8-49e7-b468-e4aef4403d64,1,0,ae2eec04-8327-4c51-89d3-eb6b725d6e8b,ae2eec04-8327-4c51-89d3-eb6b725d6e8b,1,0,350b262d-2b1f-43de-9994-6abfd2e4e761,350b262d-2b1f-43de-9994-6abfd2e4e761,1,0,41a9cabc-5667-4ca0-a798-ba0b22bd1aa0,41a9cabc-5667-4ca0-a798-ba0b22bd1aa0,1,0,1bf44c42-87c0-4f2e-846c-b04d0b7e8d7d,1bf44c42-87c0-4f2e-846c-b04d0b7e8d7d,1,0,8811ea1a-1221-47b7-9574-3f36ff15a3cf,8811ea1a-1221-47b7-9574-3f36ff15a3cf,1,0,740a6d15-23e8-43a0-af3c-71a544f8fa4f,740a6d15-23e8-43a0-af3c-71a544f8fa4f,1,0,1d715463-691b-4c01-ae39-57c261f2a6ad,1d715463-691b-4c01-ae39-57c261f2a6ad,1,0,4c3d007f-a62c-4fd9-beda-58dbf08ad188,4c3d007f-a62c-4fd9-beda-58dbf08ad188,1,0,16080b3d-b385-4e44-af16-d1a357a2b842,16080b3d-b385-4e44-af16-d1a357a2b842,1,0,8de85e8b-6828-44a3-8481-4ff4c8c2b9e2,8de85e8b-6828-44a3-8481-4ff4c8c2b9e2,1,0,c35373a9-f0b0-4ddb-a985-409ac9c64609,c35373a9-f0b0-4ddb-a985-409ac9c64609,1,0,c5b4d6e4-4c99-46cb-98cf-9a0024215a12,c5b4d6e4-4c99-46cb-98cf-9a0024215a12,1,0,c1c40916-fee5-46e3-90fc-10e7595866c9,c1c40916-fee5-46e3-90fc-10e7595866c9,1,0,090e521e-391a-4ce7-9f7c-1c459fd221eb,090e521e-391a-4ce7-9f7c-1c459fd221eb,1,0,87dad256-122b-4d7e-b249-a2c313a9cf33,87dad256-122b-4d7e-b249-a2c313a9cf33,1,0,e7903c89-5282-4771-8f9b-536694b7816e,e7903c89-5282-4771-8f9b-536694b7816e,1,0,57a030fb-ed57-4ffc-a462-c7bbd2435c3d,57a030fb-ed57-4ffc-a462-c7bbd2435c3d,1,0,f20a04a7-84fa-48e3-8ac5-28176c1fcada,f20a04a7-84fa-48e3-8ac5-28176c1fcada,1,0,b722d6e1-fd6f-4bb4-923d-01764393722d,b722d6e1-fd6f-4bb4-923d-01764393722d,1,0,ac5f945e-2d03-44fb-a8cf-5d786194cefd,ac5f945e-2d03-44fb-a8cf-5d786194cefd,1,0,698ec00f-bf75-420e-81ab-a98808daf3f7,698ec00f-bf75-420e-81ab-a98808daf3f7,1,0,f441907c-d02e-431e-baf4-1854e48a1f50,f441907c-d02e-431e-baf4-1854e48a1f50,1,0,4ad722ca-10fc-4a83-91c9-ef0012685f89,4ad722ca-10fc-4a83-91c9-ef0012685f89,1,0,783dd4ba-a597-45ba-8989-2ed5224d62bc,783dd4ba-a597-45ba-8989-2ed5224d62bc,1,0,3b033d29-0de7-49dd-90bc-f414b28426d7,3b033d29-0de7-49dd-90bc-f414b28426d7,1,0,97aaede5-d32f-4eba-b0e0-5ae5f094a8b7,97aaede5-d32f-4eba-b0e0-5ae5f094a8b7,1,0,dad9710a-73ca-4e0d-b98b-75f955d0822d,dad9710a-73ca-4e0d-b98b-75f955d0822d,1,0,d01beeab-7c42-4d5e-a2f6-f190b9f703a5,d01beeab-7c42-4d5e-a2f6-f190b9f703a5,1,0,2191939f-6f71-47c9-a3d2-57acbf7f411e,2191939f-6f71-47c9-a3d2-57acbf7f411e,1,0,6ddd9c1f-daff-494c-bd6f-741bd40881ab,6ddd9c1f-daff-494c-bd6f-741bd40881ab,1,0,683c1238-5828-4ab9-a89e-7a3b31fc7fa5,683c1238-5828-4ab9-a89e-7a3b31fc7fa5,1,0,7e9c0fa3-128e-4c3f-a1f7-63cb88a1c0b1,7e9c0fa3-128e-4c3f-a1f7-63cb88a1c0b1,1,0,2ca8bca9-813a-4833-8ef0-a5e83f91c10f,2ca8bca9-813a-4833-8ef0-a5e83f91c10f,1,0,59b34b58-6ac9-467e-963b-0cccbf098797,59b34b58-6ac9-467e-963b-0cccbf098797,1,0,313d9858-3995-4a4c-b2b0-15d2350417b4,313d9858-3995-4a4c-b2b0-15d2350417b4,1,0,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,1,0,a2c36563-126d-4c3a-9714-5b7a4903073b,a2c36563-126d-4c3a-9714-5b7a4903073b,1,0,2e4da82c-dddb-4462-b34f-6511cd2a8356,2e4da82c-dddb-4462-b34f-6511cd2a8356,1,0,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,1,0,2976c29f-f482-463d-8f6e-6a632fb50893,2976c29f-f482-463d-8f6e-6a632fb50893,1,0,701964a1-7762-45ee-a9a4-41dd9ce94783,701964a1-7762-45ee-a9a4-41dd9ce94783,1,0,55d1909e-f552-441f-8e14-47d2e604cf6a,55d1909e-f552-441f-8e14-47d2e604cf6a,1,0,eae627db-c52b-4e41-94d1-58db28cd0063,eae627db-c52b-4e41-94d1-58db28cd0063,1,0,514e95b8-2fdd-46f7-89bf-7d1a3d9d6e1b,514e95b8-2fdd-46f7-89bf-7d1a3d9d6e1b,1,0,6ca91336-5ccd-4d0b-9602-53f4925c492d,6ca91336-5ccd-4d0b-9602-53f4925c492d,1,0,d853dd5f-d987-4cdb-82b5-5e40a5a5e449,d853dd5f-d987-4cdb-82b5-5e40a5a5e449,1,0,dc16c546-eecc-49fe-a401-e2e3987faa1f,dc16c546-eecc-49fe-a401-e2e3987faa1f,1,0,47058e36-a281-43a5-a41d-691b3ef32b5b,47058e36-a281-43a5-a41d-691b3ef32b5b,1,0,4fc5c023-91e2-4b3e-8f61-4dfe3be78f3a,4fc5c023-91e2-4b3e-8f61-4dfe3be78f3a,1,0,646def82-bc88-4187-8be0-93938656a20f,646def82-bc88-4187-8be0-93938656a20f,1,0,e620e93c-4382-478f-a700-ad2faa67362b,e620e93c-4382-478f-a700-ad2faa67362b,1,0,a07971f5-ed6d-4829-a6bb-4b17cd5c6f6c,a07971f5-ed6d-4829-a6bb-4b17cd5c6f6c,1,0,9c4e28e8-7257-42ed-9fd8-793a0b8eb945,9c4e28e8-7257-42ed-9fd8-793a0b8eb945,1,0,9b7b6d0e-68d6-4a73-837c-2a6fd456b236,9b7b6d0e-68d6-4a73-837c-2a6fd456b236,1,0,7f6222c1-1a50-4565-b66b-bcb430674efc,7f6222c1-1a50-4565-b66b-bcb430674efc,1,0,a4a8693b-dc91-4762-92e6-35360c8768db,a4a8693b-dc91-4762-92e6-35360c8768db,1,0,2ae236ec-28a7-44e0-a0ba-be62fe52d817,2ae236ec-28a7-44e0-a0ba-be62fe52d817,1,0,2fb5650f-a5e5-4db8-a6a7-ca1101b41d3e,2fb5650f-a5e5-4db8-a6a7-ca1101b41d3e,1,0,b0fca543-6951-4233-bdf6-58082b22252a,b0fca543-6951-4233-bdf6-58082b22252a,1,0,4929cf90-54c6-412c-b2fa-dc8230fb8f85,4929cf90-54c6-412c-b2fa-dc8230fb8f85,1,0,52ae6431-afb3-4dea-b106-00e11b174ec7,52ae6431-afb3-4dea-b106-00e11b174ec7,1,0,b18bdc5f-a2b6-4b15-81c3-37b27a5a3176,b18bdc5f-a2b6-4b15-81c3-37b27a5a3176,1,0,c996916d-7f1c-4fbf-939f-3e1bafe81f7d,c996916d-7f1c-4fbf-939f-3e1bafe81f7d,1,0,528d96cc-8838-49ea-8d76-ea56747882e0,528d96cc-8838-49ea-8d76-ea56747882e0,1,0,b9166ea0-cce8-4f76-a9cb-a3d6eb4dfb95,b9166ea0-cce8-4f76-a9cb-a3d6eb4dfb95,1,0,8b83324c-e10e-49d1-99d7-5bc468c25975,8b83324c-e10e-49d1-99d7-5bc468c25975,1,0,ddb75923-27bf-4996-b024-4bc6eb0f59a7,ddb75923-27bf-4996-b024-4bc6eb0f59a7,1,0,fcb46a8a-3461-4ec2-9aa0-685aedb9dd50,fcb46a8a-3461-4ec2-9aa0-685aedb9dd50,1,0,ed137e05-1996-411d-9927-45a3d7e3ee3b,ed137e05-1996-411d-9927-45a3d7e3ee3b,1,0,bdde9030-5718-4f5e-a9e2-f641f4ce69f9,bdde9030-5718-4f5e-a9e2-f641f4ce69f9,1,0,fbebf341-9842-41e1-8e4d-490fa02065ce,fbebf341-9842-41e1-8e4d-490fa02065ce,1,0,3be0acc7-223a-46ec-9ea2-ec99b869fa78,3be0acc7-223a-46ec-9ea2-ec99b869fa78,1,0,067f88f6-ccd2-491e-a466-94345a1f220f,067f88f6-ccd2-491e-a466-94345a1f220f,1,0,517ac144-ecb9-4d14-83ea-01e58f0901fc,517ac144-ecb9-4d14-83ea-01e58f0901fc,1,0,61c1ff46-2a30-43bb-b1df-4db2271b1b12,61c1ff46-2a30-43bb-b1df-4db2271b1b12,1,0,cf7bc2ca-fb57-4b1a-98cf-f2caa7e611f5,cf7bc2ca-fb57-4b1a-98cf-f2caa7e611f5,1,0,486083d8-33b1-453f-9f05-5ff867e2f4ba,486083d8-33b1-453f-9f05-5ff867e2f4ba,1,0,e4f9d9f6-38d7-4056-a95a-987ad2da2211,e4f9d9f6-38d7-4056-a95a-987ad2da2211,1,0,22c21c2b-4297-43b2-88f0-9555d22f7a14,22c21c2b-4297-43b2-88f0-9555d22f7a14,1,0,734f61c4-5429-4a09-8697-8949ac5e6bd1,734f61c4-5429-4a09-8697-8949ac5e6bd1,1,0,d04e0e2d-0a5f-4866-b0b3-b582915db899,d04e0e2d-0a5f-4866-b0b3-b582915db899,1,0,19649d3f-52aa-4054-bb84-a6a11d212495,19649d3f-52aa-4054-bb84-a6a11d212495,1,0,640d7486-8abd-40aa-a244-2ed899b7225a,640d7486-8abd-40aa-a244-2ed899b7225a,1,0,58321939-f25a-456d-8dee-97e64743dc2e,58321939-f25a-456d-8dee-97e64743dc2e,1,0,416fba62-70c4-4f8c-b10b-56d47b27ca35,416fba62-70c4-4f8c-b10b-56d47b27ca35,1,0,ec48a164-bc30-4e36-a40a-a3cca07aea0d,ec48a164-bc30-4e36-a40a-a3cca07aea0d,1,0,3174d57f-c6a8-44dc-adc1-47e9a54c844d,3174d57f-c6a8-44dc-adc1-47e9a54c844d,1,0,c05f87b4-ec5f-4d14-981f-02ca8ba89863,c05f87b4-ec5f-4d14-981f-02ca8ba89863,1,0,b7736108-89bd-44eb-89c1-8a5a774058f1,b7736108-89bd-44eb-89c1-8a5a774058f1,1,0,e07841ef-8392-4ceb-936d-fd160b3b03cd,e07841ef-8392-4ceb-936d-fd160b3b03cd,1,0,eee66f49-8954-4674-9e02-6bff6c332d30,eee66f49-8954-4674-9e02-6bff6c332d30,1,0,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,1,0,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,1,0,875d1fc1-8172-4e48-8192-035882e1665d,875d1fc1-8172-4e48-8192-035882e1665d,1,0,26132b28-98cc-4690-92ad-139f91839ba2,26132b28-98cc-4690-92ad-139f91839ba2,1,0,e7415ada-dd47-41f5-b4d5-7e77d1adad33,e7415ada-dd47-41f5-b4d5-7e77d1adad33,1,0,b2bd5a0e-d60c-411d-a001-ecdee0152b1a,b2bd5a0e-d60c-411d-a001-ecdee0152b1a,1,0,0bd85b79-cc32-4c1d-b629-567a1bdfac56,0bd85b79-cc32-4c1d-b629-567a1bdfac56,1,0,79c15db6-6066-4fe5-b30e-3196b6ca3d66,79c15db6-6066-4fe5-b30e-3196b6ca3d66,1,0,b87ce4f9-aaa6-4a4c-af80-0bd9adc83506,b87ce4f9-aaa6-4a4c-af80-0bd9adc83506,1,0,ca81e0ea-c428-47f9-aedb-078214104a2f,ca81e0ea-c428-47f9-aedb-078214104a2f,1,0,9518d09c-6996-4439-9278-3c71d5ae8fce,9518d09c-6996-4439-9278-3c71d5ae8fce,1,0,9dd6e7d6-cd98-4928-b50c-38bdbc61c211,9dd6e7d6-cd98-4928-b50c-38bdbc61c211,1,0,40cefda6-490e-4962-9747-94b823ea4ed7,40cefda6-490e-4962-9747-94b823ea4ed7,1,0,5fbd9a13-012d-4c36-b72c-da3bc4157cff,5fbd9a13-012d-4c36-b72c-da3bc4157cff,1,0,7e8d7d4f-98f7-4c81-94b1-f2d552b1ae5d,7e8d7d4f-98f7-4c81-94b1-f2d552b1ae5d,1,0,6aa6d14f-cd6c-413a-864e-d847d9ce120b,6aa6d14f-cd6c-413a-864e-d847d9ce120b,1,0,44b8472b-0f70-49cc-8f71-9c9d3e9cfbcc,44b8472b-0f70-49cc-8f71-9c9d3e9cfbcc,1,0,b071a44e-9a34-4af3-a59a-35aa5f3a74b4,b071a44e-9a34-4af3-a59a-35aa5f3a74b4,1,0,35a28677-0653-47f9-82e1-02c4b9266fee,35a28677-0653-47f9-82e1-02c4b9266fee,1,0,461be12a-9f16-4826-978a-436608ca8733,461be12a-9f16-4826-978a-436608ca8733,1,0,9b143299-d300-4b6c-b667-5552fb3bdcde,9b143299-d300-4b6c-b667-5552fb3bdcde,1,0,0de070f4-d8b7-48bb-bfc9-027dd727a4ad,0de070f4-d8b7-48bb-bfc9-027dd727a4ad,1,0,74973d06-f57d-403e-945c-5cd2f4fc4869,74973d06-f57d-403e-945c-5cd2f4fc4869,1,0,259564b8-172e-4eed-9360-d561ec6dad69,259564b8-172e-4eed-9360-d561ec6dad69,1,0,91c799d7-2b3d-4d1a-87ff-221057a428c6,91c799d7-2b3d-4d1a-87ff-221057a428c6,1,0,5a2d5d8a-afd9-4954-9868-7c82bad00426,5a2d5d8a-afd9-4954-9868-7c82bad00426,1,0,26aea96b-20f8-4e35-b55f-4fe3602e6597,26aea96b-20f8-4e35-b55f-4fe3602e6597,1,0,a3a3a211-e361-4e41-a6f8-d731a366c163,a3a3a211-e361-4e41-a6f8-d731a366c163,1,0,c40d6fde-4d9a-4d9e-af86-42b7916e2abe,c40d6fde-4d9a-4d9e-af86-42b7916e2abe,1,0,4d5204ae-711d-4c31-8a18-280dbc9d2bf5,4d5204ae-711d-4c31-8a18-280dbc9d2bf5,1,0,ca01417c-0ffd-4e00-91e8-93cd305be82d,ca01417c-0ffd-4e00-91e8-93cd305be82d,1,0,933ae96b-c69e-4396-bbfb-0daa81e529a4,933ae96b-c69e-4396-bbfb-0daa81e529a4,1,0,e1823be2-b646-4a1a-a9a9-c925a12c0586,e1823be2-b646-4a1a-a9a9-c925a12c0586,1,0,909e56e3-981f-430b-b775-18c70b3549e7,909e56e3-981f-430b-b775-18c70b3549e7,1,0,e613a6aa-82cb-40fd-8f28-0a74fe21e6a6,e613a6aa-82cb-40fd-8f28-0a74fe21e6a6,1,0,72d579ee-8cd5-4b08-9f3f-eb15f14ee194,72d579ee-8cd5-4b08-9f3f-eb15f14ee194,1,0,b98ca634-25a5-4366-af04-815ba34c8bb2,b98ca634-25a5-4366-af04-815ba34c8bb2,1,0,447da3d4-5d94-4cd2-8540-53c0836e6173,447da3d4-5d94-4cd2-8540-53c0836e6173,1,0,14d69108-4d26-401a-b7ae-2c86dadf831c,14d69108-4d26-401a-b7ae-2c86dadf831c,1,0,d6251f65-d366-4bc9-a5db-42063fe03594,d6251f65-d366-4bc9-a5db-42063fe03594,1,0,22c60cbc-429f-40d9-bf8b-681b7786c41d,22c60cbc-429f-40d9-bf8b-681b7786c41d,1,0,8d9d2284-e592-44c5-93bb-247037ab6b95,8d9d2284-e592-44c5-93bb-247037ab6b95,1,0,31dd320b-06aa-4314-9914-2c2420f572a1,31dd320b-06aa-4314-9914-2c2420f572a1,1,0,56730848-3bef-4b8c-b449-fe9d09c9c374,56730848-3bef-4b8c-b449-fe9d09c9c374,1,0,43c477d2-1234-4c4a-a18a-022c0ddf2fd5,43c477d2-1234-4c4a-a18a-022c0ddf2fd5,1,0,91d8c5e4-eaec-4951-9224-16882fda08f6,91d8c5e4-eaec-4951-9224-16882fda08f6,1,0,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,1,0,4654d192-74bf-430f-abee-6f4dc431b182,4654d192-74bf-430f-abee-6f4dc431b182,1,0,c4fe10b6-d025-4736-be23-3113bd7fe7b4,c4fe10b6-d025-4736-be23-3113bd7fe7b4,1,0,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,1,0,4678c704-933a-45ef-9d41-89b8f39016bb,4678c704-933a-45ef-9d41-89b8f39016bb,1,0,8ceea1e8-42ce-469f-823a-ceffdbd6b112,8ceea1e8-42ce-469f-823a-ceffdbd6b112,1,0,80eb2a49-8c0e-4f92-b99c-7fdadca03e7b,80eb2a49-8c0e-4f92-b99c-7fdadca03e7b,1,0,3f7ee937-d853-47b7-a1f5-d821208e3531,3f7ee937-d853-47b7-a1f5-d821208e3531,1,0,086d69d6-e2fa-45cb-84b6-f8f3e2919160,086d69d6-e2fa-45cb-84b6-f8f3e2919160,1,0,6fbc9a01-ddcb-47ab-84c0-f08b103be12b,6fbc9a01-ddcb-47ab-84c0-f08b103be12b,1,0,6995ee71-5901-46d9-a5c1-b35d795bda20,6995ee71-5901-46d9-a5c1-b35d795bda20,1,0,543c32a4-ad43-4f60-9b35-77081f841ad9,543c32a4-ad43-4f60-9b35-77081f841ad9,1,0,e93a4293-0497-4f11-b8b9-40300104fb96,e93a4293-0497-4f11-b8b9-40300104fb96,1,0,93531e5d-5dfc-42e8-be52-2e83f37262b0,93531e5d-5dfc-42e8-be52-2e83f37262b0,1,0,61bf78c0-7004-4a74-b362-e979c7316e05,61bf78c0-7004-4a74-b362-e979c7316e05,1,0,c4351896-eff1-4e4d-8823-028d63a9d6bf,c4351896-eff1-4e4d-8823-028d63a9d6bf,1,0,475f83a2-ba5a-4072-94f8-1324b1f198a4,475f83a2-ba5a-4072-94f8-1324b1f198a4,1,0,a9ae364f-b668-4fb4-b976-f227951ffb6b,a9ae364f-b668-4fb4-b976-f227951ffb6b,1,0,63066bee-d428-4e32-a032-f17475056537,63066bee-d428-4e32-a032-f17475056537,1,0,cd7c15c1-c573-46c9-b109-339b8b54c3ee,cd7c15c1-c573-46c9-b109-339b8b54c3ee,1,0,efd89929-4db9-4c58-b3cb-a8d9a41a1df2,efd89929-4db9-4c58-b3cb-a8d9a41a1df2,1,0,deee8bde-381f-4094-8794-7a06248860dd,deee8bde-381f-4094-8794-7a06248860dd,1,0,8c2a0f6b-492c-4c5a-97c5-da0d07f9d781,8c2a0f6b-492c-4c5a-97c5-da0d07f9d781,1,0,d92cb614-ed09-47db-b70b-d3e533c44c6a,d92cb614-ed09-47db-b70b-d3e533c44c6a,1,0,2757ee75-4b36-4901-bff1-044708754edb,2757ee75-4b36-4901-bff1-044708754edb,1,0,0e6bab27-bf94-4732-8549-dbd9b8a5f4e9,0e6bab27-bf94-4732-8549-dbd9b8a5f4e9,1,0,774c92d6-9b9b-422a-83d7-8d42ae2a9f60,774c92d6-9b9b-422a-83d7-8d42ae2a9f60,1,0,90032ffa-f117-4a34-82f8-cc7e5a22a542,90032ffa-f117-4a34-82f8-cc7e5a22a542,1,0,71144539-6472-4727-8887-0139f6221370,71144539-6472-4727-8887-0139f6221370,1,0,bff07da4-ae19-48a9-806b-14b285d42485,bff07da4-ae19-48a9-806b-14b285d42485,1,0,659cd4f6-d18c-4d75-a7e6-7c124a63ab9a,659cd4f6-d18c-4d75-a7e6-7c124a63ab9a,1,0,b0ccc05d-8d39-4f57-8e87-6846014f92ea,b0ccc05d-8d39-4f57-8e87-6846014f92ea,1,0,49e787c9-753a-468a-b8dd-2e970d9a1fed,49e787c9-753a-468a-b8dd-2e970d9a1fed,1,0,e871dea7-1953-4511-90b0-e0957afac4c0,e871dea7-1953-4511-90b0-e0957afac4c0,1,0,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,1,0,b2835a5b-5c91-448c-9eb1-1bb1c9a5e727,b2835a5b-5c91-448c-9eb1-1bb1c9a5e727,1,0,447fb310-0588-4e0d-8f6d-5fc1f3bb1180,447fb310-0588-4e0d-8f6d-5fc1f3bb1180,1,0,d91441cf-d793-4dfa-9225-f0c16818edde,d91441cf-d793-4dfa-9225-f0c16818edde,1,0,8986c155-54be-4b1b-b31a-5c00b88bc40d,8986c155-54be-4b1b-b31a-5c00b88bc40d,1,0,40ae107d-67a8-404c-adf9-1a760bba94ff,40ae107d-67a8-404c-adf9-1a760bba94ff,1,0,42a39785-144c-4d2d-92c6-fd8b345f687b,42a39785-144c-4d2d-92c6-fd8b345f687b,1,0,9c472614-595a-4456-aadd-f629455a754e,9c472614-595a-4456-aadd-f629455a754e,1,0,c205ddad-54ed-476f-85cd-e133313fe3a5,c205ddad-54ed-476f-85cd-e133313fe3a5,1,0,98edbda8-2511-4743-b643-28934af0ed74,98edbda8-2511-4743-b643-28934af0ed74,1,0,db1f2fdc-6862-43c0-aefa-499f8c2b585c,db1f2fdc-6862-43c0-aefa-499f8c2b585c,1,0,c9a0afb1-65fa-45ea-aabb-5ec080d9406e,c9a0afb1-65fa-45ea-aabb-5ec080d9406e,1,0,32b07bc0-3b2a-4244-93d4-49f172ad3ffb,32b07bc0-3b2a-4244-93d4-49f172ad3ffb,1,0,7abec628-65c3-4a44-ae11-99c2ffc592a3,7abec628-65c3-4a44-ae11-99c2ffc592a3,1,0,7b263bb6-4a6b-46c6-a1f0-48721ac1694b,7b263bb6-4a6b-46c6-a1f0-48721ac1694b,1,0,80b4e8c4-1fb3-4c3b-883f-93b5e213f46e,80b4e8c4-1fb3-4c3b-883f-93b5e213f46e,1,0,98061bca-6e72-479b-9125-a0f9452f4ed1,98061bca-6e72-479b-9125-a0f9452f4ed1,1,0,4d50203f-4577-4615-8001-4e4ac98fd392,4d50203f-4577-4615-8001-4e4ac98fd392,1,0,5c06642b-9c31-485b-87dd-48c6d7dbd30f,5c06642b-9c31-485b-87dd-48c6d7dbd30f,1,0,eeac3530-8897-4ab6-8fe8-09fcbfcd9fde,eeac3530-8897-4ab6-8fe8-09fcbfcd9fde,1,0,c3e2e470-f0bc-4fda-8c0e-4fb900e564a9,c3e2e470-f0bc-4fda-8c0e-4fb900e564a9,1,0,7fb0f8fd-4673-4f1d-a6ef-bc4ba9a2229f,7fb0f8fd-4673-4f1d-a6ef-bc4ba9a2229f,1,0,7172bed5-b12b-4e83-b15d-1d95b63a6272,7172bed5-b12b-4e83-b15d-1d95b63a6272,1,0,25d75a3c-b801-4b1e-aed8-90e667f36c67,25d75a3c-b801-4b1e-aed8-90e667f36c67,1,0,addb3aa1-a9d6-4d30-b5db-7f3ce46bc1b2,addb3aa1-a9d6-4d30-b5db-7f3ce46bc1b2,1,0,63ebf7fd-d514-4fce-abc1-fb3f253d01cd,63ebf7fd-d514-4fce-abc1-fb3f253d01cd,1,0,a275802f-937a-49f4-92da-fcdd185a036d,a275802f-937a-49f4-92da-fcdd185a036d,1,0,ec6ed9cb-85a2-4303-9906-cfb4ce6500bf,ec6ed9cb-85a2-4303-9906-cfb4ce6500bf,1,0,bf4eb62a-bc74-4845-bad2-58a2a8302a65,bf4eb62a-bc74-4845-bad2-58a2a8302a65,1,0,b66eb190-1c16-4f20-a94f-954bcdf313b8,b66eb190-1c16-4f20-a94f-954bcdf313b8,1,0,49e21b87-beae-4640-a497-ef468da0cbbc,49e21b87-beae-4640-a497-ef468da0cbbc,1,0,08c83b5e-08dd-425d-b024-62af684df926,08c83b5e-08dd-425d-b024-62af684df926,1,0,9e40a2ef-0c96-4455-8ed6-6e09011df3df,9e40a2ef-0c96-4455-8ed6-6e09011df3df,1,0,0de78690-2038-456b-b140-2b2b81f14e44,0de78690-2038-456b-b140-2b2b81f14e44,1,0,b8d07e97-f67d-4669-972a-96ce0f5e8c0d,b8d07e97-f67d-4669-972a-96ce0f5e8c0d,1,0,5c9c5f87-e85f-49b3-a7ca-01e2220d4f39,5c9c5f87-e85f-49b3-a7ca-01e2220d4f39,1,0,b953eafc-20be-4463-8c3e-903184e18402,b953eafc-20be-4463-8c3e-903184e18402,1,0,dcefdde9-645e-43c7-9244-384dadc75439,dcefdde9-645e-43c7-9244-384dadc75439,1,0,8568b969-4d05-42ab-b30a-c937619c7c93,8568b969-4d05-42ab-b30a-c937619c7c93,1,0,1afea577-b99e-41de-b613-47dd0b480a91,1afea577-b99e-41de-b613-47dd0b480a91,1,0,fa787228-aed5-4a16-b958-d102b78bf776,fa787228-aed5-4a16-b958-d102b78bf776,1,0,d511a261-4f9b-44e8-b3a1-1e6d393ec6e1,d511a261-4f9b-44e8-b3a1-1e6d393ec6e1,1,0,be900d20-c02d-476d-9ede-2bc5303ef6cb,be900d20-c02d-476d-9ede-2bc5303ef6cb,1,0,ddce1d3c-4a23-4c92-8083-c395dd3b7f6d,ddce1d3c-4a23-4c92-8083-c395dd3b7f6d,1,0,07b53437-cc8d-4834-a1e0-7007538b6eab,07b53437-cc8d-4834-a1e0-7007538b6eab,1,0,0dbec644-cb98-4368-ab76-5997259cbce7,0dbec644-cb98-4368-ab76-5997259cbce7,1,0,c05a7d33-8a58-4b5f-a433-4ba54c88d5f4,c05a7d33-8a58-4b5f-a433-4ba54c88d5f4,1,0,74b1237b-4a46-438d-9756-b564260df99d,74b1237b-4a46-438d-9756-b564260df99d,1,0,19decf0f-c24e-4551-b3d6-8ebd413cba78,19decf0f-c24e-4551-b3d6-8ebd413cba78,1,0,66a2df23-3a08-40d2-8e6c-2db10a3bca7a,66a2df23-3a08-40d2-8e6c-2db10a3bca7a,1,0,189383a5-0001-4427-9e00-18451e4bfb6e,189383a5-0001-4427-9e00-18451e4bfb6e,1,0,966ecce5-ec91-4f8e-82b2-364b38eb7ff4,966ecce5-ec91-4f8e-82b2-364b38eb7ff4,1,0,5ee4b3ee-b795-48c1-9bad-f4010b559b0e,5ee4b3ee-b795-48c1-9bad-f4010b559b0e,1,0,08dbba81-68fb-49ef-8aac-9631fcfa87c6,08dbba81-68fb-49ef-8aac-9631fcfa87c6,1,0,dd7191b6-cbc0-4b0b-a51a-c27a1e1720fa,dd7191b6-cbc0-4b0b-a51a-c27a1e1720fa,1,0,8170a27d-45e9-48b1-860b-c2d9cc5961cd,8170a27d-45e9-48b1-860b-c2d9cc5961cd,1,0,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,1,0,61cc4ec9-81e7-415b-8adf-3a5e61be505f,61cc4ec9-81e7-415b-8adf-3a5e61be505f,1,0,f41d01ec-983a-4b39-9c11-a6d25d08df4f,f41d01ec-983a-4b39-9c11-a6d25d08df4f,1,0,3247e64e-b57e-4c33-8086-7ab93c5b6371,3247e64e-b57e-4c33-8086-7ab93c5b6371,1,0,1ef34700-ce65-4985-b4d6-7133133ef32d,1ef34700-ce65-4985-b4d6-7133133ef32d,1,0,886d99ce-9ea2-4160-8d73-84df7197c030,886d99ce-9ea2-4160-8d73-84df7197c030,1,0,e5dca369-dc9a-4332-a509-f734b8787e13,e5dca369-dc9a-4332-a509-f734b8787e13,1,0,692d289b-8bd2-4b88-a8ea-0389c967df63,692d289b-8bd2-4b88-a8ea-0389c967df63,1,0,722af623-156c-4e63-8b2a-93da760f1559,722af623-156c-4e63-8b2a-93da760f1559,1,0,393074c4-0afc-4232-8101-11a4ea6ed28a,393074c4-0afc-4232-8101-11a4ea6ed28a,1,0,5ff23123-450c-40ae-9b79-c540da53e2a0,5ff23123-450c-40ae-9b79-c540da53e2a0,1,0,639339a1-7de5-4b05-adf3-f60e7edd922c,639339a1-7de5-4b05-adf3-f60e7edd922c,1,0,dea9af9d-13c0-40d4-a9b0-1908e0a58795,dea9af9d-13c0-40d4-a9b0-1908e0a58795,1,0,9e9b8c05-787a-43c0-891d-3d9ad7e4976f,9e9b8c05-787a-43c0-891d-3d9ad7e4976f,1,0,50ef6fc7-edfc-497b-ae9d-fb676934a631,50ef6fc7-edfc-497b-ae9d-fb676934a631,1,0,6f706d33-6fc6-4311-994f-6887c46f3c3b,6f706d33-6fc6-4311-994f-6887c46f3c3b,1,0,0e1a45b0-d95d-415f-b954-5689610aa393,0e1a45b0-d95d-415f-b954-5689610aa393,1,0,9162a85e-a385-42b0-b809-da916fce44b7,9162a85e-a385-42b0-b809-da916fce44b7,1,0,4736b3d3-f696-4bdd-b0e3-0884ea88f623,4736b3d3-f696-4bdd-b0e3-0884ea88f623,1,0,e3ac6312-4397-4012-a3d1-e35071d3fb6b,e3ac6312-4397-4012-a3d1-e35071d3fb6b,1,0,1c32ac14-580d-4ac2-939b-dc5ce64b4f7f,1c32ac14-580d-4ac2-939b-dc5ce64b4f7f,1,0,f6939587-ff87-4eca-ae52-10e1bd2abfce,f6939587-ff87-4eca-ae52-10e1bd2abfce,1,0,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,1,0,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,1,0,3cb575a9-dc82-45e0-81f0-d651e12246da,3cb575a9-dc82-45e0-81f0-d651e12246da,1,0,01a73950-3e8f-4f56-903f-af0d9574e72e,01a73950-3e8f-4f56-903f-af0d9574e72e,1,0,14bd0844-c829-4325-aa7f-0f417bf955dc,14bd0844-c829-4325-aa7f-0f417bf955dc,1,0,7f1cd658-ca10-49c6-80ef-b8956f3269ea,7f1cd658-ca10-49c6-80ef-b8956f3269ea,1,0,b0d9086f-cef7-47a8-ad62-d85fea28ebda,b0d9086f-cef7-47a8-ad62-d85fea28ebda,1,0,49c010fc-f5cc-45f4-ba46-132e7661c3dd,49c010fc-f5cc-45f4-ba46-132e7661c3dd,1,0,23d137ad-5b37-40a9-9c9f-3a2cecfb5abb,23d137ad-5b37-40a9-9c9f-3a2cecfb5abb,1,0,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,1,0,2c02a558-8d12-44cf-be6b-9c399b9032e5,2c02a558-8d12-44cf-be6b-9c399b9032e5,1,0,d94d4931-7c81-4ee8-93ea-b2c54b152fa5,d94d4931-7c81-4ee8-93ea-b2c54b152fa5,1,0,5a2f2284-4f86-4ee4-8b53-296c2787f320,5a2f2284-4f86-4ee4-8b53-296c2787f320,1,0,aea031ed-44c1-441b-8ed2-3a790c0263ab,aea031ed-44c1-441b-8ed2-3a790c0263ab,1,0,c770bdd5-c7c0-4751-b31d-46c0ea1f49b7,c770bdd5-c7c0-4751-b31d-46c0ea1f49b7,1,0,6afcc089-7f15-42e8-97b5-6aad6cf2e6f9,6afcc089-7f15-42e8-97b5-6aad6cf2e6f9,1,0,cce4c615-dc29-42b3-9d3d-b277dde4a2e4,cce4c615-dc29-42b3-9d3d-b277dde4a2e4,1,0,9c267aa6-5f23-49f6-868a-3324ef2845ff,9c267aa6-5f23-49f6-868a-3324ef2845ff,1,0,495eeeee-d7bf-4063-99e2-86daa066451a,495eeeee-d7bf-4063-99e2-86daa066451a,1,0,b6184698-79e4-4c19-9440-092ccd9dabf8,b6184698-79e4-4c19-9440-092ccd9dabf8,1,0,7d01fc0c-378e-421d-ab70-6a418eed5941,7d01fc0c-378e-421d-ab70-6a418eed5941,1,0,6eeb4867-bf9d-48dc-b96b-934a0c293010,6eeb4867-bf9d-48dc-b96b-934a0c293010,1,0,d2816f95-4809-4727-8ab6-8afd375f5a75,d2816f95-4809-4727-8ab6-8afd375f5a75,1,0,1d49b1bb-5f90-46e4-adcf-55ad46442648,1d49b1bb-5f90-46e4-adcf-55ad46442648,1,0,8d4685b7-ba72-4a28-8182-3104e1330567,8d4685b7-ba72-4a28-8182-3104e1330567,1,0,b91b93f0-29ca-452d-97be-7109fb248e22,b91b93f0-29ca-452d-97be-7109fb248e22,1,0,c1f7437a-b278-4941-b580-75c6693155d0,c1f7437a-b278-4941-b580-75c6693155d0,1,0,e1803e54-ec5e-4a82-8097-5e2331820991,e1803e54-ec5e-4a82-8097-5e2331820991,1,0,1bcbf91d-cbbc-4c47-86ed-b2cab62ccbe2,1bcbf91d-cbbc-4c47-86ed-b2cab62ccbe2,1,0,27aebf22-27fe-48d4-a6f4-ea4f6a6714bb,27aebf22-27fe-48d4-a6f4-ea4f6a6714bb,1,0,f69ec1f9-826e-4eb4-b52c-3f6a3dfc3361,f69ec1f9-826e-4eb4-b52c-3f6a3dfc3361,1,0,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,1,0,8506dbe9-7066-444b-83b6-fb2d71a336e7,8506dbe9-7066-444b-83b6-fb2d71a336e7,1,0,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,1,0,932656e8-4011-4250-844b-1fd47abda912,932656e8-4011-4250-844b-1fd47abda912,1,0,6686d828-3129-4d44-a8a2-a64657d424cb,6686d828-3129-4d44-a8a2-a64657d424cb,1,0,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,1,0,ce235ab9-1dec-459a-9fec-498c262ece56,ce235ab9-1dec-459a-9fec-498c262ece56,1,0,fb7a9f90-15ef-4121-adff-cd40f699182b,fb7a9f90-15ef-4121-adff-cd40f699182b,1,0,0fa52339-2d11-4c81-92b9-aa27d116134d,0fa52339-2d11-4c81-92b9-aa27d116134d,1,0,26135cf4-fbe1-4f72-a1fd-69e85ec008a6,26135cf4-fbe1-4f72-a1fd-69e85ec008a6,1,0,d83b8068-512d-4c10-88b4-f9b3413a3a81,d83b8068-512d-4c10-88b4-f9b3413a3a81,1,0,b3bbcd07-a593-4591-9d7e-9a990c0acb62,b3bbcd07-a593-4591-9d7e-9a990c0acb62,1,0,b96df5bb-d78a-40ed-a62d-2bf796c59c62,b96df5bb-d78a-40ed-a62d-2bf796c59c62,1,0,073890e5-13eb-4c50-9a6e-3e5507b111b7,073890e5-13eb-4c50-9a6e-3e5507b111b7,1,0,34a4d235-dc56-47e5-91b6-0af887ccdf42,34a4d235-dc56-47e5-91b6-0af887ccdf42,1,0,d60e7164-c686-4c50-b831-a4ee4f505c35,d60e7164-c686-4c50-b831-a4ee4f505c35,1,0,e660c8bf-af5f-4525-a56e-68925d2b96fa,e660c8bf-af5f-4525-a56e-68925d2b96fa,1,0,2fad50a6-6a3e-4f87-ab84-907364427a63,2fad50a6-6a3e-4f87-ab84-907364427a63,1,0,e37aa075-143b-44e9-a2e2-77b3e0f76a77,e37aa075-143b-44e9-a2e2-77b3e0f76a77,1,0,1df47f0c-7935-481b-9dfb-1f660ea81a2b,1df47f0c-7935-481b-9dfb-1f660ea81a2b,1,0,258736e4-93c0-4a46-8caa-75be42c9f006,258736e4-93c0-4a46-8caa-75be42c9f006,1,0,3153b2b9-9e3e-4d6b-ab8c-5ccaac78a08a,3153b2b9-9e3e-4d6b-ab8c-5ccaac78a08a,1,0,56d0acf3-c888-4824-a6e4-27d61fa35415,56d0acf3-c888-4824-a6e4-27d61fa35415,1,0,588bd1b2-ee61-4a05-83cd-efb1b82ccb44,588bd1b2-ee61-4a05-83cd-efb1b82ccb44,1,0,439129dd-ad00-484c-b84a-fb325af979ed,439129dd-ad00-484c-b84a-fb325af979ed,1,0,dcae6376-f44c-421e-87f2-df83413c021e,dcae6376-f44c-421e-87f2-df83413c021e,1,0,dbdcdcab-4cd5-44af-b52c-6ce14a26ca9c,dbdcdcab-4cd5-44af-b52c-6ce14a26ca9c,1,0,151f2d0a-cc43-490d-ad7d-71390703aa72,151f2d0a-cc43-490d-ad7d-71390703aa72,1,0,2a515a4f-683b-4674-b097-62dd2d940c39,2a515a4f-683b-4674-b097-62dd2d940c39,1,0,d14058f5-dfd4-47eb-ae6d-01b7062f5940,d14058f5-dfd4-47eb-ae6d-01b7062f5940,1,0,90f358ae-9c80-40cf-8e8f-aa02d78a2cdb,90f358ae-9c80-40cf-8e8f-aa02d78a2cdb,1,0,1681dd7a-de80-4b8d-9657-c9702a19d653,1681dd7a-de80-4b8d-9657-c9702a19d653,1,0,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,1,0,fdb5b235-1978-4c2a-a03f-02341df00c3c,fdb5b235-1978-4c2a-a03f-02341df00c3c,1,0,9f593f27-8009-40c0-94d6-53f177ce55f4,9f593f27-8009-40c0-94d6-53f177ce55f4,1,0,917f8d67-2c28-4e02-9453-e1ef9297c9a6,917f8d67-2c28-4e02-9453-e1ef9297c9a6,1,0,38637f61-399a-4966-9e64-4751aecffa31,38637f61-399a-4966-9e64-4751aecffa31,1,0,0f38a18b-a36c-45fe-86c1-396634aaa5df,0f38a18b-a36c-45fe-86c1-396634aaa5df,1,0,f2b7b8d0-c0f7-46ba-907a-f8dfa76fc2da,f2b7b8d0-c0f7-46ba-907a-f8dfa76fc2da,1,0,a81c783d-2dea-4dde-9ca1-7b23d609eb22,a81c783d-2dea-4dde-9ca1-7b23d609eb22,1,0,836dfba9-c948-409b-825f-f0d869872835,836dfba9-c948-409b-825f-f0d869872835,1,0,137ec4ee-5053-47a7-8f5d-f6e63174608f,137ec4ee-5053-47a7-8f5d-f6e63174608f,1,0,4e6d38c5-2a09-4473-9e04-8f631fe88c61,4e6d38c5-2a09-4473-9e04-8f631fe88c61,1,0,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,1,0,4b4f5777-7c36-461e-9d3e-1baaf0497d62,4b4f5777-7c36-461e-9d3e-1baaf0497d62,1,0,8f4d5fc1-5c2c-4202-bb79-a180b03b3267,8f4d5fc1-5c2c-4202-bb79-a180b03b3267,1,0,da881296-fea4-444b-96b2-12cb69d588c7,da881296-fea4-444b-96b2-12cb69d588c7,1,0,03f9d2d0-eae4-4098-a70e-4eb569b11fd9,03f9d2d0-eae4-4098-a70e-4eb569b11fd9,1,0,30031e74-e58a-44a2-98dd-fc8c950831c4,30031e74-e58a-44a2-98dd-fc8c950831c4,1,0,530a3164-4ef1-4b3b-8269-13764ef4bf15,530a3164-4ef1-4b3b-8269-13764ef4bf15,1,0,6df2bb92-558c-4453-9de4-e4176e8f93dc,6df2bb92-558c-4453-9de4-e4176e8f93dc,1,0,3fc019d1-aec8-4835-96c5-3bbf43da0b94,3fc019d1-aec8-4835-96c5-3bbf43da0b94,1,0,5371672a-c8e0-4c12-834e-f23dd885b49a,5371672a-c8e0-4c12-834e-f23dd885b49a,1,0,8583ca82-a4f5-4f2a-9b9a-7807b4560e85,8583ca82-a4f5-4f2a-9b9a-7807b4560e85,1,0,6417d7c8-6436-4907-98eb-44cd7638f3f1,6417d7c8-6436-4907-98eb-44cd7638f3f1,1,0,1f927f76-5523-4880-9d26-d69a059f2b67,1f927f76-5523-4880-9d26-d69a059f2b67,1,0,27a9c1de-90a9-49f8-8b16-f7ef041ae1de,27a9c1de-90a9-49f8-8b16-f7ef041ae1de,1,0,5c45e96f-e245-4d16-9c47-836505582aef,5c45e96f-e245-4d16-9c47-836505582aef,1,0,2c04d747-c363-4218-92c9-5c83393e928b,2c04d747-c363-4218-92c9-5c83393e928b,1,0,093b8255-7ee5-4463-bd20-542b1d63e799,093b8255-7ee5-4463-bd20-542b1d63e799,1,0,5afb95e0-51a3-4a0f-bea7-e06716421974,5afb95e0-51a3-4a0f-bea7-e06716421974,1,0,2bce3fbe-436b-4a9f-8478-5436d61cd57c,2bce3fbe-436b-4a9f-8478-5436d61cd57c,1,0,ba49877b-6e30-4177-a67c-00e65aa498fb,ba49877b-6e30-4177-a67c-00e65aa498fb,1,0,3d02ca78-c396-4797-909c-e6b910c0ff66,3d02ca78-c396-4797-909c-e6b910c0ff66,1,0,25b39aeb-94c3-4199-9d56-5bd87e325bf2,25b39aeb-94c3-4199-9d56-5bd87e325bf2,1,0,b0b63551-4e83-4201-af9a-b4ab150c43a5,b0b63551-4e83-4201-af9a-b4ab150c43a5,1,0,ca85912b-87b4-481e-9184-017364b4603d,ca85912b-87b4-481e-9184-017364b4603d,1,0,2bd80198-4739-4e8f-9af1-40addc91a05b,2bd80198-4739-4e8f-9af1-40addc91a05b,1,0,80c18959-93f0-46e6-90fd-b564efcaa395,80c18959-93f0-46e6-90fd-b564efcaa395,1,0,c53b9e19-54e4-49b4-ac63-eaeee5c2e040,c53b9e19-54e4-49b4-ac63-eaeee5c2e040,1,0,47afc45d-719e-4740-a8aa-6157c4b1aea8,47afc45d-719e-4740-a8aa-6157c4b1aea8,1,0,baec0e60-c410-4b95-8126-f77fd06225b4,baec0e60-c410-4b95-8126-f77fd06225b4,1,0,91275c80-d7f7-47c6-ba76-4a10d394f55b,91275c80-d7f7-47c6-ba76-4a10d394f55b,1,0,b92edc24-fcf7-498d-97a2-0c7f3005c814,b92edc24-fcf7-498d-97a2-0c7f3005c814,1,0,2b97f923-6a4e-4894-9ece-5129d8832864,2b97f923-6a4e-4894-9ece-5129d8832864,1,0,2650db63-ca98-4a8a-8c36-165548aa5279,2650db63-ca98-4a8a-8c36-165548aa5279,1,0,6a8fdf0a-5dff-49e4-a423-fc80aceeee27,6a8fdf0a-5dff-49e4-a423-fc80aceeee27,1,0,4b9320f1-c7b1-4c08-a832-64ef108d0d6d,4b9320f1-c7b1-4c08-a832-64ef108d0d6d,1,0,e8c5c961-0633-438d-ba50-d2a774f6b167,e8c5c961-0633-438d-ba50-d2a774f6b167,1,0,48b57d1b-5246-4ce8-9e0f-e369e6add55c,48b57d1b-5246-4ce8-9e0f-e369e6add55c,1,0,b6d891e4-15d6-4b40-b474-a8a1d10231e8,b6d891e4-15d6-4b40-b474-a8a1d10231e8,1,0,e60a7341-3995-4d8c-a3c6-a23ea0137754,e60a7341-3995-4d8c-a3c6-a23ea0137754,1,0,a69525c7-27ff-48df-b26b-325ba580a53e,a69525c7-27ff-48df-b26b-325ba580a53e,1,0,24a7de1c-1c1f-4987-91ff-02f78f15dd9e,24a7de1c-1c1f-4987-91ff-02f78f15dd9e,1,0,8482b31d-0ffa-4a94-9be1-09db8399b70d,8482b31d-0ffa-4a94-9be1-09db8399b70d,1,0,77fe53c2-de9d-4483-97c9-f7d44e137d5e,77fe53c2-de9d-4483-97c9-f7d44e137d5e,1,0,ac7ea771-4b10-4d43-9c0a-9cd36e4c49a4,ac7ea771-4b10-4d43-9c0a-9cd36e4c49a4,1,0,593be64c-6792-46d9-8618-84c50c9ad9e4,593be64c-6792-46d9-8618-84c50c9ad9e4,1,0,208d29cb-040f-4282-b8e8-dda8417b8e92,208d29cb-040f-4282-b8e8-dda8417b8e92,1,0,15a4595f-92d8-4084-bb92-cdc587b3a04e,15a4595f-92d8-4084-bb92-cdc587b3a04e,1,0,e57f4619-b5ed-44de-a186-a13a3897731b,e57f4619-b5ed-44de-a186-a13a3897731b,1,0,3b78a9d0-7382-4115-a7dc-d06c9a1962d1,3b78a9d0-7382-4115-a7dc-d06c9a1962d1,1,0,9935d602-668e-4df9-a338-0f542def878b,9935d602-668e-4df9-a338-0f542def878b,1,0,3913f78f-ce34-4ae3-840a-ccdf06319cbb,3913f78f-ce34-4ae3-840a-ccdf06319cbb,1,0,104cf3e3-2104-4ac2-bdc6-792750a63ea0,104cf3e3-2104-4ac2-bdc6-792750a63ea0,1,0,35dee1ee-ca9e-4b6b-9767-1107283f5a04,35dee1ee-ca9e-4b6b-9767-1107283f5a04,1,0,c86aa97a-5898-4cb2-ae62-598bddf8e99f,c86aa97a-5898-4cb2-ae62-598bddf8e99f,1,0,cb3a5c5b-7bdc-4e12-96f1-11b1213b6853,cb3a5c5b-7bdc-4e12-96f1-11b1213b6853,1,0,e6fe7103-4dfa-4302-a58e-ccd7fac19c9d,e6fe7103-4dfa-4302-a58e-ccd7fac19c9d,1,0,bb3a9973-67ce-479e-8668-c2f3bb20301e,bb3a9973-67ce-479e-8668-c2f3bb20301e,1,0,e5250dfe-dda2-4547-9b9e-2470ea1be1ab,e5250dfe-dda2-4547-9b9e-2470ea1be1ab,1,0,2c3fccc6-c4c0-49ec-bfc2-05ce05f27ea9,2c3fccc6-c4c0-49ec-bfc2-05ce05f27ea9,1,0,37169451-1464-4f24-8ca6-802963ffb636,37169451-1464-4f24-8ca6-802963ffb636,1,0,c3a958b1-590f-4418-a74f-5982b478cf52,c3a958b1-590f-4418-a74f-5982b478cf52,1,0,ef0e618d-0942-460a-ac65-9aca2fed976e,ef0e618d-0942-460a-ac65-9aca2fed976e,1,0,fd1ed7ec-d848-41cd-8ce3-2e5a682abcf0,fd1ed7ec-d848-41cd-8ce3-2e5a682abcf0,1,0,2ac8bd69-9fbf-4f15-b58d-397d9e903532,2ac8bd69-9fbf-4f15-b58d-397d9e903532,1,0,2ff35814-7eaa-4ae5-bbac-f46bebb36c9d,2ff35814-7eaa-4ae5-bbac-f46bebb36c9d,1,0,5b460b92-2c74-4f59-88b2-18d9aac42c04,5b460b92-2c74-4f59-88b2-18d9aac42c04,1,0,db05d35b-5f53-4c27-ba80-b477b9a98299,db05d35b-5f53-4c27-ba80-b477b9a98299,1,0,fa872ae1-b699-46fe-9d6a-e42e1388752b,fa872ae1-b699-46fe-9d6a-e42e1388752b,1,0,1acf34e6-c428-4130-82f0-5160dfcc0858,1acf34e6-c428-4130-82f0-5160dfcc0858,1,0,57046262-b9ce-4670-9cf5-6db9e58dd0d5,57046262-b9ce-4670-9cf5-6db9e58dd0d5,1,0,a9824176-36d5-4be5-9984-f4312ff48515,a9824176-36d5-4be5-9984-f4312ff48515,1,0,8e980ca0-1627-45e8-bd27-5dd1ac199459,8e980ca0-1627-45e8-bd27-5dd1ac199459,1,0,8b653beb-af9f-4f39-b691-ae14f80b7cd6,8b653beb-af9f-4f39-b691-ae14f80b7cd6,1,0,77559c11-713f-454d-aff4-56649e1350e9,77559c11-713f-454d-aff4-56649e1350e9,1,0,0c965703-c1d0-48b7-80f9-b8d869ff98f5,0c965703-c1d0-48b7-80f9-b8d869ff98f5,1,0,51f8d5ff-aec5-4c0a-ad02-df8c6cb1b4ad,51f8d5ff-aec5-4c0a-ad02-df8c6cb1b4ad,1,0,7ba42162-557b-4e34-8aca-0cdee8cb2452,7ba42162-557b-4e34-8aca-0cdee8cb2452,1,0,eee99b8e-29b6-4b7a-81f1-3d91d740c0d7,eee99b8e-29b6-4b7a-81f1-3d91d740c0d7,1,0,ad4f2d1f-1e6f-4f6a-8061-202c0e42a8e4,ad4f2d1f-1e6f-4f6a-8061-202c0e42a8e4,1,0,dd577924-c6cb-4aa9-9db5-366d8958d00f,dd577924-c6cb-4aa9-9db5-366d8958d00f,1,0,8ed8f72e-404a-4be4-a44d-ddebbad5f411,8ed8f72e-404a-4be4-a44d-ddebbad5f411,1,0,e919bc4c-86e6-44f6-be27-5a729b63d042,e919bc4c-86e6-44f6-be27-5a729b63d042,1,0,ec580e4f-1518-4923-a10e-bc1da8688b37,ec580e4f-1518-4923-a10e-bc1da8688b37,1,0,91c3902a-314f-4d40-8bcc-8dd131fed2f4,91c3902a-314f-4d40-8bcc-8dd131fed2f4,1,0,ae2b21c5-9349-49e8-9627-26f05c21f43a,ae2b21c5-9349-49e8-9627-26f05c21f43a,1,0,7e4c0b74-e807-4aa9-ad69-3c85b147bb61,7e4c0b74-e807-4aa9-ad69-3c85b147bb61,1,0,917a19d7-73db-4247-b892-397598d67879,917a19d7-73db-4247-b892-397598d67879,1,0,1f866dc3-a4bc-4e8d-96a3-a26ee073926f,1f866dc3-a4bc-4e8d-96a3-a26ee073926f,1,0,d8066600-c669-449d-a187-fdd3af8f7afa,d8066600-c669-449d-a187-fdd3af8f7afa,1,0,dadf86a6-c118-4827-b1b9-6cfee731242f,dadf86a6-c118-4827-b1b9-6cfee731242f,1,0,45bf7b20-f048-491a-a989-e50bea13d028,45bf7b20-f048-491a-a989-e50bea13d028,1,0,9ad3b432-5b49-44ee-9d8d-83c36458d927,9ad3b432-5b49-44ee-9d8d-83c36458d927,1,0,a9967bff-53b9-4295-a253-3647d956d3cb,a9967bff-53b9-4295-a253-3647d956d3cb,1,0,75f0fd5b-c594-4f3a-8ff2-3fdadf1dc96d,75f0fd5b-c594-4f3a-8ff2-3fdadf1dc96d,1,0,b8a31397-8974-44ec-92b0-7cbdc481cf7e,b8a31397-8974-44ec-92b0-7cbdc481cf7e,1,0,b29c7c0d-03eb-422b-a899-ba9a7eba99f6,b29c7c0d-03eb-422b-a899-ba9a7eba99f6,1,0,fb16c4d5-854c-4525-92be-b21fa2df5b0d,fb16c4d5-854c-4525-92be-b21fa2df5b0d,1,0,5771de21-2086-432b-ad91-de14a39bd5bc,5771de21-2086-432b-ad91-de14a39bd5bc,1,0,b15bcf3b-0228-4d02-8f20-cd6ba82f7585,b15bcf3b-0228-4d02-8f20-cd6ba82f7585,1,0,ed96fbfa-bda7-405c-9073-d0b6feffedad,ed96fbfa-bda7-405c-9073-d0b6feffedad,1,0,50c724cb-dde1-4313-9492-b1750bd0afc1,50c724cb-dde1-4313-9492-b1750bd0afc1,1,0,12901981-6106-4471-ab3a-e127c2bb4ebd,12901981-6106-4471-ab3a-e127c2bb4ebd,1,0,17ad1497-fa0e-469f-b2e2-b94a6f848ec5,17ad1497-fa0e-469f-b2e2-b94a6f848ec5,1,0,d5ea5dea-233d-4106-b9ba-f030d4f762ef,d5ea5dea-233d-4106-b9ba-f030d4f762ef,1,0,903af05e-5ac5-46aa-843b-d74f9e417c1d,903af05e-5ac5-46aa-843b-d74f9e417c1d,1,0,4dc4862e-74c3-469d-863b-09fdbe0d6be0,4dc4862e-74c3-469d-863b-09fdbe0d6be0,1,0,a344290a-c9be-47a7-95ad-ced1b52a0995,a344290a-c9be-47a7-95ad-ced1b52a0995,1,0,a4e56049-4de9-40a3-8197-a5c84a11f516,a4e56049-4de9-40a3-8197-a5c84a11f516,1,0,339c9220-fd5b-45d3-b300-cdcc8788f87e,339c9220-fd5b-45d3-b300-cdcc8788f87e,1,0,02d7d401-3c0c-4fd0-b096-1f73b6ec14c3,02d7d401-3c0c-4fd0-b096-1f73b6ec14c3,1,0,9042a6de-5048-432d-a448-7e21f2d1d24a,9042a6de-5048-432d-a448-7e21f2d1d24a,1,0,350d46bf-114e-48e7-90c6-6708d949f20d,350d46bf-114e-48e7-90c6-6708d949f20d,1,0,d047caa8-7bcf-41ac-a18e-97877d6e0a2a,d047caa8-7bcf-41ac-a18e-97877d6e0a2a,1,0,aac20ff3-5873-432e-b763-14411e623d41,aac20ff3-5873-432e-b763-14411e623d41,1,0,fbc4df3e-c235-4197-8c1f-a5e39ac63a8c,fbc4df3e-c235-4197-8c1f-a5e39ac63a8c,1,0,6df44466-8750-481a-9baf-c924f0d45353,6df44466-8750-481a-9baf-c924f0d45353,1,0,110121eb-a0eb-4662-8911-3dcc3d341a73,110121eb-a0eb-4662-8911-3dcc3d341a73,1,0,f8980c18-6b9c-4e45-919a-22e976d2a846,f8980c18-6b9c-4e45-919a-22e976d2a846,1,0,c946efb7-c67e-49c1-bf56-d3c2d7220acd,c946efb7-c67e-49c1-bf56-d3c2d7220acd,1,0,7ed6bd83-b61d-4db4-8549-acacbdda6ca2,7ed6bd83-b61d-4db4-8549-acacbdda6ca2,1,0,6b7c9f74-f2b6-463e-acb9-9f82901986cf,6b7c9f74-f2b6-463e-acb9-9f82901986cf,1,0,fc4c1d64-132b-4687-a37d-05000fdb4ba5,fc4c1d64-132b-4687-a37d-05000fdb4ba5,1,0,528777cd-090b-4b70-82f5-56def98c5893,528777cd-090b-4b70-82f5-56def98c5893,1,0,49dbe467-8832-4ede-9a05-494248619aeb,49dbe467-8832-4ede-9a05-494248619aeb,1,0,460ed9ca-10c2-491c-a641-b92ffc2a8e7c,460ed9ca-10c2-491c-a641-b92ffc2a8e7c,1,0,bd5fadd3-9264-4c3b-9bd5-51e91847a6fb,bd5fadd3-9264-4c3b-9bd5-51e91847a6fb,1,0,09c73108-8528-4970-9b7f-fff9eda7816a,09c73108-8528-4970-9b7f-fff9eda7816a,1,0,40aa936e-cb1c-4ae9-85f1-6d930a5815cc,40aa936e-cb1c-4ae9-85f1-6d930a5815cc,1,0,f568245a-d158-45dc-af92-2d411f12db7b,f568245a-d158-45dc-af92-2d411f12db7b,1,0,0f17cdac-aa17-45e6-b3d0-220b13345390,0f17cdac-aa17-45e6-b3d0-220b13345390,1,0,c675db75-d0c3-4026-b97c-6b23ecbb336a,c675db75-d0c3-4026-b97c-6b23ecbb336a,1,0,469f67fa-98b0-44b0-abd4-cae136c02834,469f67fa-98b0-44b0-abd4-cae136c02834,1,0,16a18458-999c-420e-80df-8fc10855746c,16a18458-999c-420e-80df-8fc10855746c,1,0,b794f222-0fde-439f-97a3-0da74075b415,b794f222-0fde-439f-97a3-0da74075b415,1,0,3a716aad-9b2c-48a7-b802-80732066391b,3a716aad-9b2c-48a7-b802-80732066391b,1,0,480d959f-aac8-4241-875f-78e1c1f32621,480d959f-aac8-4241-875f-78e1c1f32621,1,0,496e5de8-d75c-4536-9993-75374f070b40,496e5de8-d75c-4536-9993-75374f070b40,1,0,b4e610ba-c9c8-4b25-903b-e567dcbc2556,b4e610ba-c9c8-4b25-903b-e567dcbc2556,1,0,48febdbd-a085-4113-8511-ed7ff6be7d3c,48febdbd-a085-4113-8511-ed7ff6be7d3c,1,0,49413232-c0c3-4983-9d10-291a0399281b,49413232-c0c3-4983-9d10-291a0399281b,1,0,032bb782-96a7-4c1b-8b8f-eb4e18b555b7,032bb782-96a7-4c1b-8b8f-eb4e18b555b7,1,0,b9b076bb-38ab-4a94-8226-41a4d4d7432c,b9b076bb-38ab-4a94-8226-41a4d4d7432c,1,0,e12da8db-4037-473e-ba2b-d0ceb4534dcb,e12da8db-4037-473e-ba2b-d0ceb4534dcb,1,0,789514e5-8ea3-4a5e-88c5-ed89c4135866,789514e5-8ea3-4a5e-88c5-ed89c4135866,1,0,a16768ff-6137-43d8-8784-4805ed83632a,a16768ff-6137-43d8-8784-4805ed83632a,1,0,61971286-9f94-4a27-aa34-e10848adb70a,61971286-9f94-4a27-aa34-e10848adb70a,1,0,1e75d143-3452-496e-a137-6d7f4c4ed019,1e75d143-3452-496e-a137-6d7f4c4ed019,1,0,e0619d14-c658-4eb5-841a-3a029de28be4,e0619d14-c658-4eb5-841a-3a029de28be4,1,0,99a3b660-7875-47f7-9c6c-c552e5673deb,99a3b660-7875-47f7-9c6c-c552e5673deb,1,0,2bdcf3a5-c8e1-492c-afee-f9db68e2fbb6,2bdcf3a5-c8e1-492c-afee-f9db68e2fbb6,1,0,41cbf934-ea54-41df-abf0-09f319d2e67a,41cbf934-ea54-41df-abf0-09f319d2e67a,1,0,47246084-a5f8-4d0f-b4e2-204c1b97483a,47246084-a5f8-4d0f-b4e2-204c1b97483a,1,0,e58233ec-6cfc-4a8b-9929-689fa69cdb07,e58233ec-6cfc-4a8b-9929-689fa69cdb07,1,0,3291a891-a47c-43ca-b088-aecd3867d38c,3291a891-a47c-43ca-b088-aecd3867d38c,1,0,56cde2b4-00f2-49ba-b407-16e241c17fd2,56cde2b4-00f2-49ba-b407-16e241c17fd2,1,0,bd84fb2b-4c52-4e2f-a8c5-f289b8336145,bd84fb2b-4c52-4e2f-a8c5-f289b8336145,1,0,219ed110-f2a0-41c1-ac5a-02301b248c54,219ed110-f2a0-41c1-ac5a-02301b248c54,1,0,1c722dfd-2b07-4985-9188-17353de24771,1c722dfd-2b07-4985-9188-17353de24771,1,0,1a630496-2cdd-4c89-a1aa-ed20545ad133,1a630496-2cdd-4c89-a1aa-ed20545ad133,1,0,b0dd02ee-ea6a-43f2-baa2-abac0a1ab4bb,b0dd02ee-ea6a-43f2-baa2-abac0a1ab4bb,1,0,b19cea0e-e57a-4969-8daf-f48d3d16705f,b19cea0e-e57a-4969-8daf-f48d3d16705f,1,0,d4059340-3361-4baa-ae48-ecbfb9800a2e,d4059340-3361-4baa-ae48-ecbfb9800a2e,1,0,f78f6c43-dd90-4117-acf7-ed5b951cb964,f78f6c43-dd90-4117-acf7-ed5b951cb964,1,0,8eebd519-4989-4784-82b8-39d77eebfb17,8eebd519-4989-4784-82b8-39d77eebfb17,1,0,0a2cb6e3-d9fa-4881-b136-7b6db9efca07,0a2cb6e3-d9fa-4881-b136-7b6db9efca07,1,0,c1561ed9-2fbf-4c12-a484-07f8adbe8fa3,c1561ed9-2fbf-4c12-a484-07f8adbe8fa3,1,0,4527877b-5723-4aa5-8705-98174ac9c337,4527877b-5723-4aa5-8705-98174ac9c337,1,0,d6b21e7b-df57-4280-8c95-c269b5316018,d6b21e7b-df57-4280-8c95-c269b5316018,1,0,808c468b-6322-428d-ac6a-ccf2228b05b6,808c468b-6322-428d-ac6a-ccf2228b05b6,1,0,13664bb2-738f-4d18-b382-a7bcf8105a5a,13664bb2-738f-4d18-b382-a7bcf8105a5a,1,0,f3f56abe-9248-4555-bf99-29560eb4f9ee,f3f56abe-9248-4555-bf99-29560eb4f9ee,1,0,0dbd5d55-a85f-4c7e-ac31-7ba4ab7cc371,0dbd5d55-a85f-4c7e-ac31-7ba4ab7cc371,1,0,dd9d09ef-3b4b-4bb5-9408-9c4080049bb3,dd9d09ef-3b4b-4bb5-9408-9c4080049bb3,1,0,3eb43a06-b32d-4904-8489-6264d0207623,3eb43a06-b32d-4904-8489-6264d0207623,1,0,a18098cf-5a61-46b5-bd55-cc61d15aa6bc,a18098cf-5a61-46b5-bd55-cc61d15aa6bc,1,0,18615fe1-cfee-4888-9c09-88d1c5db39eb,18615fe1-cfee-4888-9c09-88d1c5db39eb,1,0,63e363fa-8b0c-4d48-ab1b-9c953c5ed4c0,63e363fa-8b0c-4d48-ab1b-9c953c5ed4c0,1,0,087c83c0-75e7-476b-b7c6-5be55498a190,087c83c0-75e7-476b-b7c6-5be55498a190,1,0,ec5e5413-9e77-4929-83b8-6fee70688b28,ec5e5413-9e77-4929-83b8-6fee70688b28,1,0,59cd8e3f-ecf3-4e1d-bd98-41551d5d6f68,59cd8e3f-ecf3-4e1d-bd98-41551d5d6f68,1,0,8390c864-2b84-4c45-8583-cb4a4ab49168,8390c864-2b84-4c45-8583-cb4a4ab49168,1,0,1b2fefca-fef5-4319-90cc-325444cb63a6,1b2fefca-fef5-4319-90cc-325444cb63a6,1,0,34a128be-8fbb-4dd8-ac23-9f35041feb63,34a128be-8fbb-4dd8-ac23-9f35041feb63,1,0,baa31006-e0d6-496e-a60e-27b3dfd19397,baa31006-e0d6-496e-a60e-27b3dfd19397,1,0,3007d8ff-3942-45ed-bac5-8a6c40ca060c,3007d8ff-3942-45ed-bac5-8a6c40ca060c,1,0,8bfe1474-fd12-4744-a9ab-3383bfe766b3,8bfe1474-fd12-4744-a9ab-3383bfe766b3,1,0,3af97375-f776-4129-9521-b8d65d795db6,3af97375-f776-4129-9521-b8d65d795db6,1,0,0e98801b-a45b-44cb-a341-7e43d723f6ed,0e98801b-a45b-44cb-a341-7e43d723f6ed,1,0,5b71cd3b-d5b8-4632-9678-0ab1e1d2ea91,5b71cd3b-d5b8-4632-9678-0ab1e1d2ea91,1,0,103ac72d-c386-40ea-89d4-35798d064f1a,103ac72d-c386-40ea-89d4-35798d064f1a,1,0,645ceb40-1e9f-4a67-aa7f-b9002fa066b3,645ceb40-1e9f-4a67-aa7f-b9002fa066b3,1,0,d1fe15e9-8e5c-4819-85cd-24ab31409437,d1fe15e9-8e5c-4819-85cd-24ab31409437,1,0,c8c5bfe9-ead5-4e79-9fd5-60ad275faa1e,c8c5bfe9-ead5-4e79-9fd5-60ad275faa1e,1,0,8f9826b6-890e-4ba3-a1f2-bc9ebb3238dd,8f9826b6-890e-4ba3-a1f2-bc9ebb3238dd,1,0,74f68bda-17b1-4b3c-aa64-b1014300f9b5,74f68bda-17b1-4b3c-aa64-b1014300f9b5,1,0,90a195b0-7f64-4ccb-986e-8c8c2cf12ccd,90a195b0-7f64-4ccb-986e-8c8c2cf12ccd,1,0,9f9d1f8c-7ff9-420f-a426-48f33493d9f2,9f9d1f8c-7ff9-420f-a426-48f33493d9f2,1,0,ab7bc0bc-b4b8-4a4a-aecc-1cbe14fd4975,ab7bc0bc-b4b8-4a4a-aecc-1cbe14fd4975,1,0,9f8d9594-674f-49ef-9fb8-bb64d5c40a37,9f8d9594-674f-49ef-9fb8-bb64d5c40a37,1,0,47ee7d38-9fa9-458d-abee-e11270f79494,47ee7d38-9fa9-458d-abee-e11270f79494,1,0,bb6b83ff-81f4-4c39-ad8e-8cda9ccd9cb9,bb6b83ff-81f4-4c39-ad8e-8cda9ccd9cb9,1,0,076daecf-8fcb-496b-9f13-c4faa3a8a722,076daecf-8fcb-496b-9f13-c4faa3a8a722,1,0,f1a8357b-7083-42b3-ab5d-36223a3dd2a4,f1a8357b-7083-42b3-ab5d-36223a3dd2a4,1,0,296d7725-bdd3-4210-9db9-31de5711ea9b,296d7725-bdd3-4210-9db9-31de5711ea9b,1,0,6ecc5bc2-20b3-46f3-8019-ae1e1f3de319,6ecc5bc2-20b3-46f3-8019-ae1e1f3de319,1,0,1d05f89a-23dd-4d30-8786-abe8a9a39a40,1d05f89a-23dd-4d30-8786-abe8a9a39a40,1,0,245c2c6c-7b7f-4381-9304-1d7287a215fa,245c2c6c-7b7f-4381-9304-1d7287a215fa,1,0,fd17bbe4-34d9-4832-8eea-8eeb82194e4c,fd17bbe4-34d9-4832-8eea-8eeb82194e4c,1,0,d4c72d7f-7e1f-473c-9a2b-fa675fc78731,d4c72d7f-7e1f-473c-9a2b-fa675fc78731,1,0,8bb5be12-98df-4a38-bffe-432fb13d8101,8bb5be12-98df-4a38-bffe-432fb13d8101,1,0,94209023-ce88-401c-9aff-526fb7e43709,94209023-ce88-401c-9aff-526fb7e43709,1,0,22b99094-b52a-4244-ae91-53848d82560b,22b99094-b52a-4244-ae91-53848d82560b,1,0,22c9e2fa-c1f0-41ec-b6f2-9d7357dd3479,22c9e2fa-c1f0-41ec-b6f2-9d7357dd3479,1,0,b0002134-d5c9-4508-9f0e-97f92461b590,b0002134-d5c9-4508-9f0e-97f92461b590,1,0,1506ec71-cb38-4831-a29d-dac2c4deddda,1506ec71-cb38-4831-a29d-dac2c4deddda,1,0,e05fd82b-b77b-4b7f-b300-43653017f341,e05fd82b-b77b-4b7f-b300-43653017f341,1,0,d3b5e5ee-2317-43b4-b669-3af2ce635cf3,d3b5e5ee-2317-43b4-b669-3af2ce635cf3,1,0,f15a0526-c207-42fe-aed9-438ae0c4a4b8,f15a0526-c207-42fe-aed9-438ae0c4a4b8,1,0,9d444a41-7190-48fb-9a4a-08f8e7bc32a3,9d444a41-7190-48fb-9a4a-08f8e7bc32a3,1,0,8583cab0-0620-4346-96e0-bcac40981b8a,8583cab0-0620-4346-96e0-bcac40981b8a,1,0,e1dfba26-c682-42a2-8e15-fe6f535c9ce1,e1dfba26-c682-42a2-8e15-fe6f535c9ce1,1,0,095990b1-187b-400c-941a-275f272239ca,095990b1-187b-400c-941a-275f272239ca,1,0,ba108470-350d-40c3-bb44-9852c2aa8c97,ba108470-350d-40c3-bb44-9852c2aa8c97,1,0,a37c33fa-64b0-4a1b-846a-0a236bad44f8,a37c33fa-64b0-4a1b-846a-0a236bad44f8,1,0,d8481ce1-7f64-47b0-8fc0-6642ae93aca1,d8481ce1-7f64-47b0-8fc0-6642ae93aca1,1,0,a50f4324-da44-449b-b500-74228b2aa7e0,a50f4324-da44-449b-b500-74228b2aa7e0,1,0,04236716-9c36-4a1d-b4fb-4b8c65644ab4,04236716-9c36-4a1d-b4fb-4b8c65644ab4,1,0,97276702-6686-4ac4-8360-d85369a08b20,97276702-6686-4ac4-8360-d85369a08b20,1,0,e5450ee7-e891-4f58-9a01-d2d81d5ddd6d,e5450ee7-e891-4f58-9a01-d2d81d5ddd6d,1,0,068883fe-d7ae-40e7-ad82-864867916daa,068883fe-d7ae-40e7-ad82-864867916daa,1,0,c1b02568-2095-4f83-8543-2402f67dbe3d,c1b02568-2095-4f83-8543-2402f67dbe3d,1,0,8b749b7a-5e68-4523-adc2-8b3c5ce9701c,8b749b7a-5e68-4523-adc2-8b3c5ce9701c,1,0,bf3c7edc-0791-459e-a7ac-b7e8d7ed97fe,bf3c7edc-0791-459e-a7ac-b7e8d7ed97fe,1,0,7dc6d13e-4edf-4e6a-9ee9-4b32ad889ecf,7dc6d13e-4edf-4e6a-9ee9-4b32ad889ecf,1,0,aecbd726-6952-49e6-b544-4c5cc764c24c,aecbd726-6952-49e6-b544-4c5cc764c24c,1,0,d335cfbf-bc78-4274-a178-10f60372474a,d335cfbf-bc78-4274-a178-10f60372474a,1,0,0f4411b3-addf-4fcf-8da8-c5140dea356c,0f4411b3-addf-4fcf-8da8-c5140dea356c,1,0,c501f9ab-d01b-4137-8cd0-e66103117c84,c501f9ab-d01b-4137-8cd0-e66103117c84,1,0,8d5d4e0f-b7b5-4cdc-aedc-571517fa101f,8d5d4e0f-b7b5-4cdc-aedc-571517fa101f,1,0,66e65355-1424-4c74-801c-faf5357257aa,66e65355-1424-4c74-801c-faf5357257aa,1,0,0a93187b-7ae4-4985-8089-3099dfec2b48,0a93187b-7ae4-4985-8089-3099dfec2b48,1,0,044458f3-ed9b-4afb-ae73-8f9162c032bf,044458f3-ed9b-4afb-ae73-8f9162c032bf,1,0,578f618e-5f4a-4e86-959d-39b59e973936,578f618e-5f4a-4e86-959d-39b59e973936,1,0,f74ede2e-2d28-4224-ba44-773eda7760a4,f74ede2e-2d28-4224-ba44-773eda7760a4,1,0,217df06a-1bdf-4394-b617-ed756ff17bc6,217df06a-1bdf-4394-b617-ed756ff17bc6,1,0,a1572e97-a487-497a-9062-49315e237e0f,a1572e97-a487-497a-9062-49315e237e0f,1,0,969cdcb8-0f2a-427f-93a0-e7ae38f465e8,969cdcb8-0f2a-427f-93a0-e7ae38f465e8,1,0,3c5d87a0-cfce-464a-b946-64c5a589a376,3c5d87a0-cfce-464a-b946-64c5a589a376,1,0,2d22c67d-4795-4a6b-bc81-a3ed1eb28367,2d22c67d-4795-4a6b-bc81-a3ed1eb28367,1,0,763de8d1-7f53-41b6-8d97-7da724e9f763,763de8d1-7f53-41b6-8d97-7da724e9f763,1,0,75592ed4-2aab-4dfc-ae7b-d93e2a98370f,75592ed4-2aab-4dfc-ae7b-d93e2a98370f,1,0,4ad59c75-cca4-4968-82e6-babd72d8b318,4ad59c75-cca4-4968-82e6-babd72d8b318,1,0,c248de15-63a2-48ec-8695-7a5213d4fc9b,c248de15-63a2-48ec-8695-7a5213d4fc9b,1,0,272ff0f9-7266-4c22-be12-fe62682b56a5,272ff0f9-7266-4c22-be12-fe62682b56a5,1,0,9f141dd5-d866-4c25-b58a-a7766a08b4e7,9f141dd5-d866-4c25-b58a-a7766a08b4e7,1,0,0570d846-889d-4cfc-98fb-a1ad0181597f,0570d846-889d-4cfc-98fb-a1ad0181597f,1,0,19e17c58-953f-4917-8b6a-c88808fcca36,19e17c58-953f-4917-8b6a-c88808fcca36,1,0,4804316d-3765-4a83-8438-10e8e82656db,4804316d-3765-4a83-8438-10e8e82656db,1,0,59458556-e343-4215-8e6c-69f924ec4183,59458556-e343-4215-8e6c-69f924ec4183,1,0,dd553dca-7eba-41bf-8939-2c61e170ff65,dd553dca-7eba-41bf-8939-2c61e170ff65,1,0,b4ecf3dc-a2aa-406e-a593-1700ea8746bc,b4ecf3dc-a2aa-406e-a593-1700ea8746bc,1,0,933d7ce7-ea82-4b26-8d1b-dc92cb5ac92d,933d7ce7-ea82-4b26-8d1b-dc92cb5ac92d,1,0,8099e978-28cc-4ade-ac5a-3785f3a45f70,8099e978-28cc-4ade-ac5a-3785f3a45f70,1,0,11eff613-8077-41fa-8cb8-5e8dc27d0e4f,11eff613-8077-41fa-8cb8-5e8dc27d0e4f,1,0,fe023ca5-f11a-4b98-99c1-363508e4ea4a,fe023ca5-f11a-4b98-99c1-363508e4ea4a,1,0,6f8d515e-13d9-45f8-9793-3757f5b85f81,6f8d515e-13d9-45f8-9793-3757f5b85f81,1,0,25ec541c-c437-4318-b2a8-5146df6ae080,25ec541c-c437-4318-b2a8-5146df6ae080,1,0,148754ed-3063-40a7-a3c3-8ad105552370,148754ed-3063-40a7-a3c3-8ad105552370,1,0,ab3f0862-c355-4fd7-a2a7-4eb8278de510,ab3f0862-c355-4fd7-a2a7-4eb8278de510,1,0,85bbfe20-a6a4-49ca-8f20-342f4cbe8258,85bbfe20-a6a4-49ca-8f20-342f4cbe8258,1,0,c12c3f3b-3a96-4e70-b131-8d7bd765095f,c12c3f3b-3a96-4e70-b131-8d7bd765095f,1,0,70ee4b32-80d1-4b79-a322-0433f1b8c7f1,70ee4b32-80d1-4b79-a322-0433f1b8c7f1,1,0,c563588c-346e-499e-ae33-9ff3cb62e658,c563588c-346e-499e-ae33-9ff3cb62e658,1,0,40dbc001-97b6-4188-8de9-3adac670bac4,40dbc001-97b6-4188-8de9-3adac670bac4,1,0,58589e42-9ff2-4ad4-bd98-a75ab6873625,58589e42-9ff2-4ad4-bd98-a75ab6873625,1,0,92255ded-6c44-43be-b0b1-fd03c2b78c8b,92255ded-6c44-43be-b0b1-fd03c2b78c8b,1,0,dfe6da42-f024-45c5-beea-ceccaf3a5faa,dfe6da42-f024-45c5-beea-ceccaf3a5faa,1,0,08f3e8f1-284c-4059-864a-42499d48596c,08f3e8f1-284c-4059-864a-42499d48596c,1,0,3d715c1b-9a5e-408d-98d6-5345d274144b,3d715c1b-9a5e-408d-98d6-5345d274144b,1,0,3f88bc69-e140-48b6-a2f9-24f6a391bff2,3f88bc69-e140-48b6-a2f9-24f6a391bff2,1,0,65eb5361-074c-451d-a5d8-d16b6ecccf82,65eb5361-074c-451d-a5d8-d16b6ecccf82,1,0,f7c8cab8-c634-4cf3-9183-c15c915231f8,f7c8cab8-c634-4cf3-9183-c15c915231f8,1,0,563a33a6-9eff-4ff1-9eba-dafc235d2ede,563a33a6-9eff-4ff1-9eba-dafc235d2ede,1,0,fbc21f7d-c272-41ea-b048-c5af294ab5ed,fbc21f7d-c272-41ea-b048-c5af294ab5ed,1,0,088c38fa-1c8f-42e7-aa72-5f5dd8cfc1c6,088c38fa-1c8f-42e7-aa72-5f5dd8cfc1c6,1,0,370f97ee-9aed-4a0a-aefc-647d973e6741,370f97ee-9aed-4a0a-aefc-647d973e6741,1,0,c586d28e-a3ec-4201-8ba0-d453bb7c5293,c586d28e-a3ec-4201-8ba0-d453bb7c5293,1,0,d84f12b0-6e01-4646-9abd-51578716433d,d84f12b0-6e01-4646-9abd-51578716433d,1,0,a4458c18-72eb-4fc0-8dc6-fccab93b0898,a4458c18-72eb-4fc0-8dc6-fccab93b0898,1,0,3a0ceb25-60f5-4fec-ab2e-e667939bfe21,3a0ceb25-60f5-4fec-ab2e-e667939bfe21,1,0,27db4549-df2f-4856-b07f-3c9399cdee9c,27db4549-df2f-4856-b07f-3c9399cdee9c,1,0,f667d49a-8077-450f-9442-2ea4fee7b62d,f667d49a-8077-450f-9442-2ea4fee7b62d,1,0,782b1285-9618-4ec9-b817-ce93e2d24d4d,782b1285-9618-4ec9-b817-ce93e2d24d4d,1,0,dd3e202f-6225-4061-a6ab-f29cd314ab08,dd3e202f-6225-4061-a6ab-f29cd314ab08,1,0,483b7600-e46f-4739-94c8-8637c62750a0,483b7600-e46f-4739-94c8-8637c62750a0,1,0,bdcf5f7a-2888-4143-b46d-1bf0dcc16872,bdcf5f7a-2888-4143-b46d-1bf0dcc16872,1,0,bce8a955-0a0e-4771-9763-4f5d319d9848,bce8a955-0a0e-4771-9763-4f5d319d9848,1,0,090c475c-fb33-46a9-a0ed-fb9d7def2ca5,090c475c-fb33-46a9-a0ed-fb9d7def2ca5,1,0,d10c3389-5bf0-4c73-ab92-786eb19d1676,d10c3389-5bf0-4c73-ab92-786eb19d1676,1,0,c824c20d-7503-4a77-81b8-2a68b20eab68,c824c20d-7503-4a77-81b8-2a68b20eab68,1,0,a0db92c6-b39e-41ab-82e3-161e32f67bda,a0db92c6-b39e-41ab-82e3-161e32f67bda,1,0,88f91187-65d3-4684-992d-20ca29d3755a,88f91187-65d3-4684-992d-20ca29d3755a,1,0,da725701-d4fb-40a4-a63b-feaa8559d8cf,da725701-d4fb-40a4-a63b-feaa8559d8cf,1,0,0a44cfc8-0b55-4aed-990f-e97831494a3c,0a44cfc8-0b55-4aed-990f-e97831494a3c,1,0,c9adbe7c-ca6e-4048-a498-9b48f75d9b45,c9adbe7c-ca6e-4048-a498-9b48f75d9b45,1,0,c7cb80d6-13d9-49af-acdd-6d10dffd1e17,c7cb80d6-13d9-49af-acdd-6d10dffd1e17,1,0,9a3f04d7-b956-4e87-ac28-63f7afba1771,9a3f04d7-b956-4e87-ac28-63f7afba1771,1,0,41b23a18-0c4e-455f-b249-2f2eba8119db,41b23a18-0c4e-455f-b249-2f2eba8119db,1,0,ff697cb8-ab88-4634-94e3-c06a401f71ff,ff697cb8-ab88-4634-94e3-c06a401f71ff,1,0,cf98131d-2b1a-4a07-a8dd-72af01934a8b,cf98131d-2b1a-4a07-a8dd-72af01934a8b,1,0,bef1eead-3f8b-48b7-99f3-46ba332fb60d,bef1eead-3f8b-48b7-99f3-46ba332fb60d,1,0,c1b3d4c8-8c53-4452-bec5-9742bb827d8f,c1b3d4c8-8c53-4452-bec5-9742bb827d8f,1,0,b6e1d584-6817-4f06-b5b2-57037a23ce6f,b6e1d584-6817-4f06-b5b2-57037a23ce6f,1,0,1b5d2ded-3f58-4b3e-8678-48191897e408,1b5d2ded-3f58-4b3e-8678-48191897e408,1,0,62fd5457-0cfd-4273-8965-4b5bf9170209,62fd5457-0cfd-4273-8965-4b5bf9170209,1,0,88701798-0c0e-4d33-a68b-3eddfc25d835,88701798-0c0e-4d33-a68b-3eddfc25d835,1,0,c0d704b5-32de-4bb8-9525-f7d1da828ae5,c0d704b5-32de-4bb8-9525-f7d1da828ae5,1,0,b5b5ee06-4de8-4776-98f0-3e8e1b31985a,b5b5ee06-4de8-4776-98f0-3e8e1b31985a,1,0,2f999502-68e5-4823-8f94-aec98b1a1b1d,2f999502-68e5-4823-8f94-aec98b1a1b1d,1,0,2d064409-7f2a-4d2e-9155-6b34e4373e89,2d064409-7f2a-4d2e-9155-6b34e4373e89,1,0,fc51a562-01bb-47c3-bac5-89f78f64a5f3,fc51a562-01bb-47c3-bac5-89f78f64a5f3,1,0,8a33a6cd-f56d-405b-9515-9fc04d30e27a,8a33a6cd-f56d-405b-9515-9fc04d30e27a,1,0,9b199470-723d-4b72-9fdc-2bed2b7bc483,9b199470-723d-4b72-9fdc-2bed2b7bc483,1,0,5bb9aff1-f4ee-4c02-8e3f-f070bfbb8339,5bb9aff1-f4ee-4c02-8e3f-f070bfbb8339,1,0,6a06f9ee-8832-4e9e-aeba-b4cb9573c048,6a06f9ee-8832-4e9e-aeba-b4cb9573c048,1,0,38fa770e-f38d-4fdf-bb7a-56cfe76a8ab2,38fa770e-f38d-4fdf-bb7a-56cfe76a8ab2,1,0,afc4ce2a-60b6-48d0-ada0-2f651d050888,afc4ce2a-60b6-48d0-ada0-2f651d050888,1,0,5f289266-fc3c-4345-b7ab-cf863e2a6ccd,5f289266-fc3c-4345-b7ab-cf863e2a6ccd,1,0,5932f0d8-9012-4382-8c72-b1a5f4fbc937,5932f0d8-9012-4382-8c72-b1a5f4fbc937,1,0,66f1ff23-8fec-4be4-914c-43b7dee1c2a2,66f1ff23-8fec-4be4-914c-43b7dee1c2a2,1,0,56c3471e-459a-46ba-96ea-9f872b3ad54a,56c3471e-459a-46ba-96ea-9f872b3ad54a,1,0,2113195b-1553-4137-9e45-2cc62c72ee47,2113195b-1553-4137-9e45-2cc62c72ee47,1,0,1250f5b1-c766-434c-8d28-69b74a536294,1250f5b1-c766-434c-8d28-69b74a536294,1,0,80bc9b8b-7b17-4dbb-bca6-8465d6b01e0b,80bc9b8b-7b17-4dbb-bca6-8465d6b01e0b,1,0,6327e23d-6070-4b64-81c6-0d1a33eaae93,6327e23d-6070-4b64-81c6-0d1a33eaae93,1,0,4d086a1f-34e0-43f9-9401-d82e55746a9d,4d086a1f-34e0-43f9-9401-d82e55746a9d,1,0,5a4c543a-27d5-423b-a4d0-3952ea2817af,5a4c543a-27d5-423b-a4d0-3952ea2817af,1,0,6cc8da97-8752-4c6b-88ef-f7e8ff5dd693,6cc8da97-8752-4c6b-88ef-f7e8ff5dd693,1,0,8683dfa2-0ad9-4345-85e8-a6d2e40881e5,8683dfa2-0ad9-4345-85e8-a6d2e40881e5,1,0,e70ec2f5-5723-4fb0-9b81-c0979943a46a,e70ec2f5-5723-4fb0-9b81-c0979943a46a,1,0,eb125af7-4e19-4235-8d03-361b60a8f68a,eb125af7-4e19-4235-8d03-361b60a8f68a,1,0,bcd1077a-2d19-4bc1-bded-a85818765ac1,bcd1077a-2d19-4bc1-bded-a85818765ac1,1,0,b79ce000-28f7-4630-a5a3-cecb9ef8a0a1,b79ce000-28f7-4630-a5a3-cecb9ef8a0a1,1,0,3ff0b4e6-6afa-4aa8-a20e-84a9d2d74f86,3ff0b4e6-6afa-4aa8-a20e-84a9d2d74f86,1,0,eb747bc2-f81f-4ec3-b216-2457a87683ae,eb747bc2-f81f-4ec3-b216-2457a87683ae,1,0,0ad77f2c-24db-4fda-a79f-984c0c8beac0,0ad77f2c-24db-4fda-a79f-984c0c8beac0,1,0,cfb3ea4b-a092-4c5f-aef0-a83ff8829d24,cfb3ea4b-a092-4c5f-aef0-a83ff8829d24,1,0,02bc23cf-c600-4470-bb84-59cdac35eea9,02bc23cf-c600-4470-bb84-59cdac35eea9,1,0,b7753aea-3798-4be9-b9ce-e4145fbea58a,b7753aea-3798-4be9-b9ce-e4145fbea58a,1,0,ce3d12b8-da77-4ac5-a7bf-a02809ed3f1e,ce3d12b8-da77-4ac5-a7bf-a02809ed3f1e,1,0,cf3819dd-6564-47cd-9b22-790433ca9607,cf3819dd-6564-47cd-9b22-790433ca9607,1,0,231f7349-0e98-497a-9df3-8123a5ea20f0,231f7349-0e98-497a-9df3-8123a5ea20f0,1,0,0c7790f8-db18-4d1d-aa34-d0c7097d0576,0c7790f8-db18-4d1d-aa34-d0c7097d0576,1,0,926b936a-4147-40ef-92c7-008713d5a8b4,926b936a-4147-40ef-92c7-008713d5a8b4,1,0,3446ba39-fbd6-462f-af51-add3173ce1fc,3446ba39-fbd6-462f-af51-add3173ce1fc,1,0,7510d830-cf29-408c-9f2a-77e30382beeb,7510d830-cf29-408c-9f2a-77e30382beeb,1,0,133d9c01-751e-47a1-93a5-46cfa1b85a51,133d9c01-751e-47a1-93a5-46cfa1b85a51,1,0,42b81035-bc9b-4b8a-b1ee-55c24c6bb875,42b81035-bc9b-4b8a-b1ee-55c24c6bb875,1,0,c4e58e2b-2a73-44f2-8a4b-dded01944c35,c4e58e2b-2a73-44f2-8a4b-dded01944c35,1,0,ada738c2-8f68-4f25-afc2-ad88164f5fea,ada738c2-8f68-4f25-afc2-ad88164f5fea,1,0,683cc434-af64-4afb-835b-c20e7e17c32e,683cc434-af64-4afb-835b-c20e7e17c32e,1,0,19aad3e9-704b-4057-8a1d-e6131af2da2d,19aad3e9-704b-4057-8a1d-e6131af2da2d,1,0,6522829d-bb7f-4bac-9c66-21d936d9d3c6,6522829d-bb7f-4bac-9c66-21d936d9d3c6,1,0,aa4c2d2c-b1f8-4525-bdef-24b0dce4724a,aa4c2d2c-b1f8-4525-bdef-24b0dce4724a,1,0,f7c432c0-ee57-40f3-98c2-b94401042395,f7c432c0-ee57-40f3-98c2-b94401042395,1,0,b7dd0b15-bbf0-4959-8d63-fb00c2519d3d,b7dd0b15-bbf0-4959-8d63-fb00c2519d3d,1,0,d58fea2a-34b7-4404-9939-faf5bf1f19c6,d58fea2a-34b7-4404-9939-faf5bf1f19c6,1,0,b458ed6f-e0d2-4830-8005-16f08612c76a,b458ed6f-e0d2-4830-8005-16f08612c76a,1,0,988787d0-4704-4aa7-b02f-96492784d667,988787d0-4704-4aa7-b02f-96492784d667,1,0,66d837ed-be23-4e0a-8cbc-c918f234998d,66d837ed-be23-4e0a-8cbc-c918f234998d,1,0,010bcfe3-a299-4333-8faa-96b08356a097,010bcfe3-a299-4333-8faa-96b08356a097,1,0,4735b8d0-5b06-4640-9d68-380ba4165c01,4735b8d0-5b06-4640-9d68-380ba4165c01,1,0,adcaecde-1977-4c6d-a204-12df7d9915e2,adcaecde-1977-4c6d-a204-12df7d9915e2,1,0,348376e0-6e02-4360-95ea-f23086cabd55,348376e0-6e02-4360-95ea-f23086cabd55,1,0,d7cdbc04-3eaa-45b6-b71b-0340bf029752,d7cdbc04-3eaa-45b6-b71b-0340bf029752,1,0,f6d562ac-6bc8-4e82-9ac0-b6fc4ed41677,f6d562ac-6bc8-4e82-9ac0-b6fc4ed41677,1,0,e954636b-2410-4602-8dfd-fde852998f8b,e954636b-2410-4602-8dfd-fde852998f8b,1,0,00f82519-e522-4cf2-92ab-19a13f38baa7,00f82519-e522-4cf2-92ab-19a13f38baa7,1,0,b59f1272-69ab-4d6a-8e4b-43bfe8231c8c,b59f1272-69ab-4d6a-8e4b-43bfe8231c8c,1,0,33df37df-43d0-40d7-95dd-23655b1fdf81,33df37df-43d0-40d7-95dd-23655b1fdf81,1,0,cef5c343-440f-475e-98f1-28da65eabcf3,cef5c343-440f-475e-98f1-28da65eabcf3,1,0,979378ce-8455-4761-ae83-10e747a6656d,979378ce-8455-4761-ae83-10e747a6656d,1,0,de3cb87d-d08f-4f45-aca5-c4c526772eeb,de3cb87d-d08f-4f45-aca5-c4c526772eeb,1,0,509770b5-ddaf-477b-a79c-cec8afbaf9bc,509770b5-ddaf-477b-a79c-cec8afbaf9bc,1,0,25d72d6e-1a64-4366-85af-5789ed7806d3,25d72d6e-1a64-4366-85af-5789ed7806d3,1,0,eedf57b6-8fd6-4e80-bc0c-1583196b34eb,eedf57b6-8fd6-4e80-bc0c-1583196b34eb,1,0,ec7cc726-82a7-455e-b302-0e024d60bbab,ec7cc726-82a7-455e-b302-0e024d60bbab,1,0,1bae5c60-1027-4ff7-a607-d57da0d6e4f7,1bae5c60-1027-4ff7-a607-d57da0d6e4f7,1,0,3d18a46c-1d64-4bec-9a22-07a736abbf8f,3d18a46c-1d64-4bec-9a22-07a736abbf8f,1,0,d5c64b8e-1184-4ec5-8f02-87e037df0034,d5c64b8e-1184-4ec5-8f02-87e037df0034,1,0,6b5fb7ab-d010-483b-939d-c9f9e2d8884f,6b5fb7ab-d010-483b-939d-c9f9e2d8884f,1,0,5b0f5e4e-ef26-415b-830a-6623688e8a78,5b0f5e4e-ef26-415b-830a-6623688e8a78,1,0,b33693ac-6bc1-47e1-81ab-a3278d3596a3,b33693ac-6bc1-47e1-81ab-a3278d3596a3,1,0,caebab45-2be3-4f5d-b06d-d91c5a4122a0,caebab45-2be3-4f5d-b06d-d91c5a4122a0,1,0,7a56e6ee-3518-491f-b5af-4f1aca2462c0,7a56e6ee-3518-491f-b5af-4f1aca2462c0,1,0,61d03f9f-834b-4077-b5c7-0de85ef007d3,61d03f9f-834b-4077-b5c7-0de85ef007d3,1,0,1683afaf-db32-4267-b1d1-959836c50fb5,1683afaf-db32-4267-b1d1-959836c50fb5,1,0,1e50e4de-f091-4ccc-ba2d-8a526c20351e,1e50e4de-f091-4ccc-ba2d-8a526c20351e,1,0,7671eebd-cdf4-43c6-8d0d-2dff2f8ce975,7671eebd-cdf4-43c6-8d0d-2dff2f8ce975,1,0,83342c37-30b6-4f39-a2df-7aab425eb3bf,83342c37-30b6-4f39-a2df-7aab425eb3bf,1,0,896d8858-5574-4e36-abc0-92a2f0b6e905,896d8858-5574-4e36-abc0-92a2f0b6e905,1,0,8767bf87-b364-4e16-8371-40ae96bff7c0,8767bf87-b364-4e16-8371-40ae96bff7c0,1,0,65ba2d12-ce10-4f27-93ba-0668592edfce,65ba2d12-ce10-4f27-93ba-0668592edfce,1,0,45dba1f4-f080-4b99-abe4-63125f84f580,45dba1f4-f080-4b99-abe4-63125f84f580,1,0,24d0e61f-c9af-45f0-b6dd-00d1fefa1720,24d0e61f-c9af-45f0-b6dd-00d1fefa1720,1,0,75088623-2b34-499a-85c9-0c3f78448cf3,75088623-2b34-499a-85c9-0c3f78448cf3,1,0,f151768d-f840-4116-8fb5-bbcc0b5dd2bc,f151768d-f840-4116-8fb5-bbcc0b5dd2bc,1,0,dd6581f7-82fc-469c-ae2f-d270d810e843,dd6581f7-82fc-469c-ae2f-d270d810e843,1,0,ca0258bd-7408-45a6-8c61-6097090dad4a,ca0258bd-7408-45a6-8c61-6097090dad4a,1,0,5080a8ca-a75e-4f4f-885b-62f64434f0f2,5080a8ca-a75e-4f4f-885b-62f64434f0f2,1,0,3adbff51-6a82-40e7-9585-a030b06d0632,3adbff51-6a82-40e7-9585-a030b06d0632,1,0,c27036c4-7077-4464-b24a-46b37db4bfcf,c27036c4-7077-4464-b24a-46b37db4bfcf,1,0,99ce0c09-eae0-430b-9a20-46d96503876b,99ce0c09-eae0-430b-9a20-46d96503876b,1,0,128e9f84-5f92-4ed6-afb9-86b4b244ae58,128e9f84-5f92-4ed6-afb9-86b4b244ae58,1,0,5bff11e0-07d0-43eb-b02d-5dc6f2c9bab1,5bff11e0-07d0-43eb-b02d-5dc6f2c9bab1,1,0,13b4853f-d83d-4e30-80a4-704b740cf76f,13b4853f-d83d-4e30-80a4-704b740cf76f,1,0,32e9be21-ef2f-46fd-96ff-2ba143a8c1d9,32e9be21-ef2f-46fd-96ff-2ba143a8c1d9,1,0,9c81736c-25ce-42eb-9e7a-1fc014cbbc7d,9c81736c-25ce-42eb-9e7a-1fc014cbbc7d,1,0,655ac12f-a0e4-46fb-b11a-eaba635edfae,655ac12f-a0e4-46fb-b11a-eaba635edfae,1,0,7bccc0c6-bc80-4672-8190-4fc94cea4249,7bccc0c6-bc80-4672-8190-4fc94cea4249,1,0,82ebe1f1-2c36-4152-bc02-b8085ad614e3,82ebe1f1-2c36-4152-bc02-b8085ad614e3,1,0,68259658-c149-4a1b-b1d5-b15b232ee334,68259658-c149-4a1b-b1d5-b15b232ee334,1,0,301a9f28-2cd9-4364-9b57-a22b9e6553fa,301a9f28-2cd9-4364-9b57-a22b9e6553fa,1,0,4948d3d3-9267-4f9c-8260-5ebb63ce281f,4948d3d3-9267-4f9c-8260-5ebb63ce281f,1,0,051bc689-9357-463a-93db-55994af23a88,051bc689-9357-463a-93db-55994af23a88,1,0,2d4a8fe5-3371-42f9-8052-ec78d4df0da1,2d4a8fe5-3371-42f9-8052-ec78d4df0da1,1,0,4be19ad6-691e-4224-86ec-bc4d76a15525,4be19ad6-691e-4224-86ec-bc4d76a15525,1,0,cf9ebddd-d421-475f-8d57-6c45d817c4ec,cf9ebddd-d421-475f-8d57-6c45d817c4ec,1,0,6718e0bf-8a9d-4eab-88fd-9cd5f2bc9e58,6718e0bf-8a9d-4eab-88fd-9cd5f2bc9e58,1,0,2811d95d-6ce9-4066-99cb-ea6894b18497,2811d95d-6ce9-4066-99cb-ea6894b18497,1,0,2fcee659-7bd7-4181-9991-ce4723d485cd,2fcee659-7bd7-4181-9991-ce4723d485cd,1,0,79dc0e69-6a17-428f-b36f-9056d0f6864c,79dc0e69-6a17-428f-b36f-9056d0f6864c,1,0,77a94ffd-4847-4180-a587-31dd3c95f62a,77a94ffd-4847-4180-a587-31dd3c95f62a,1,0,de8bb46d-127e-40e6-af46-a7385a37819b,de8bb46d-127e-40e6-af46-a7385a37819b,1,0,95b5ac72-941c-4f6b-aa2d-ce2a1b616d8d,95b5ac72-941c-4f6b-aa2d-ce2a1b616d8d,1,0,ea557343-ae0f-4a2c-a298-573c952a7d63,ea557343-ae0f-4a2c-a298-573c952a7d63,1,0,11d02ccf-173f-447a-aae1-79f373e46e53,11d02ccf-173f-447a-aae1-79f373e46e53,1,0,a4ed8b24-bd23-45a7-9f34-61b25b91d0c6,a4ed8b24-bd23-45a7-9f34-61b25b91d0c6,1,0,65efaa10-3239-4f0f-a08e-88c89d9d8d5a,65efaa10-3239-4f0f-a08e-88c89d9d8d5a,1,0,93aa5247-6823-4f70-9d47-e5a0f409828a,93aa5247-6823-4f70-9d47-e5a0f409828a,1,0,48659b94-ace8-45f4-a043-6b2731ec6925,48659b94-ace8-45f4-a043-6b2731ec6925,1,0,3a8e60f9-19cb-42a6-a448-ad211261d9b8,3a8e60f9-19cb-42a6-a448-ad211261d9b8,1,0,74320602-094a-4645-b2c9-3053377a3ac3,74320602-094a-4645-b2c9-3053377a3ac3,1,0,3aba26a3-76ee-46c0-9e11-6f64fc754a0d,3aba26a3-76ee-46c0-9e11-6f64fc754a0d,1,0,b066c732-9c5f-4504-894f-96d457b0768f,b066c732-9c5f-4504-894f-96d457b0768f,1,0,9366463d-aa8a-4e89-86d8-c7f746f9551b,9366463d-aa8a-4e89-86d8-c7f746f9551b,1,0,e25da569-d435-45b2-b4e8-fc76d7f1c8df,e25da569-d435-45b2-b4e8-fc76d7f1c8df,1,0,a51a7f57-9c52-4457-819c-13e1b6f886e1,a51a7f57-9c52-4457-819c-13e1b6f886e1,1,0,7d08daba-5e36-4ce3-8a70-17750959b89e,7d08daba-5e36-4ce3-8a70-17750959b89e,1,0,e2c2d915-ae50-4fa0-add3-26ad7dc75efb,e2c2d915-ae50-4fa0-add3-26ad7dc75efb,1,0,39344a8c-2662-48ff-937b-12951bb268fb,39344a8c-2662-48ff-937b-12951bb268fb,1,0,b577663f-ead2-4b18-a4f6-f7f303e89319,b577663f-ead2-4b18-a4f6-f7f303e89319,1,0,43dc335f-5503-47ab-9c6b-0b4c6ab13f57,43dc335f-5503-47ab-9c6b-0b4c6ab13f57,1,0,6cc0a1d7-01eb-4af6-b4ed-4002e2316080,6cc0a1d7-01eb-4af6-b4ed-4002e2316080,1,0,72663843-4010-42ed-989b-0b58bf9f7146,72663843-4010-42ed-989b-0b58bf9f7146,1,0,79da4490-f0b0-48b5-b435-3b2c9ffb0eb3,79da4490-f0b0-48b5-b435-3b2c9ffb0eb3,1,0,3adcceea-867e-4b88-a633-4f8d4ccb43c0,3adcceea-867e-4b88-a633-4f8d4ccb43c0,1,0,a132189c-6584-4bb1-9cfd-1415cd83228a,a132189c-6584-4bb1-9cfd-1415cd83228a,1,0,7ba50e13-0a78-4cca-821f-006b1c83b0b0,7ba50e13-0a78-4cca-821f-006b1c83b0b0,1,0,a3670f95-5abe-49ee-8ea5-d7e4438801ba,a3670f95-5abe-49ee-8ea5-d7e4438801ba,1,0,4443dea1-5143-4e76-97a7-c35dbe1665e4,4443dea1-5143-4e76-97a7-c35dbe1665e4,1,0,0d780521-0767-425a-b44d-315d2dc42d04,0d780521-0767-425a-b44d-315d2dc42d04,1,0,c5b1572d-28f5-42f3-b2e0-8b54f091642e,c5b1572d-28f5-42f3-b2e0-8b54f091642e,1,0,0986c1b6-b677-428d-b49f-a93e40e77171,0986c1b6-b677-428d-b49f-a93e40e77171,1,0,b9c41558-8fe7-45f6-bcb0-5ea3a35264cf,b9c41558-8fe7-45f6-bcb0-5ea3a35264cf,1,0,597c1f9b-3cbd-42bd-b819-f29b3a3f073a,597c1f9b-3cbd-42bd-b819-f29b3a3f073a,1,0,b6662b2e-7e93-4eaa-9e4b-b5647285932b,b6662b2e-7e93-4eaa-9e4b-b5647285932b,1,0,4a180f2c-dc54-4591-8f62-f236d1e07799,4a180f2c-dc54-4591-8f62-f236d1e07799,1,0,3f1578ba-3d55-4eff-bbdd-6329dd5060d5,3f1578ba-3d55-4eff-bbdd-6329dd5060d5,1,0,a9a51e79-4c79-4a43-931b-c0321c1cd65b,a9a51e79-4c79-4a43-931b-c0321c1cd65b,1,0,e8644d90-ec2f-4ac0-8fbd-a7aa95c9bcec,e8644d90-ec2f-4ac0-8fbd-a7aa95c9bcec,1,0,048a1d86-bcf5-47aa-a36c-eb20c3f9f7e5,048a1d86-bcf5-47aa-a36c-eb20c3f9f7e5,1,0,22f2696e-0ac1-4a74-bca9-987b267b2b59,22f2696e-0ac1-4a74-bca9-987b267b2b59,1,0,d705cacc-3485-46d7-9ff4-48c3c0757c81,d705cacc-3485-46d7-9ff4-48c3c0757c81,1,0,98f043ea-633c-4a03-a56f-efbc9e6ef288,98f043ea-633c-4a03-a56f-efbc9e6ef288,1,0,2033b92a-0750-478a-a12d-cf4f74d0a9da,2033b92a-0750-478a-a12d-cf4f74d0a9da,1,0,92fa2196-d8e5-45f9-9d2e-59d837b163ea,92fa2196-d8e5-45f9-9d2e-59d837b163ea,1,0,25dc2290-e283-4449-81c1-1ce15b58067f,25dc2290-e283-4449-81c1-1ce15b58067f,1,0,c534a865-a17f-41e7-88b9-c6af89c9d202,c534a865-a17f-41e7-88b9-c6af89c9d202,1,0,0214bfe6-fb98-4487-8d98-6b10d24a3c4d,0214bfe6-fb98-4487-8d98-6b10d24a3c4d,1,0,0127937c-94c0-43fe-9630-cc2ec6904ad8,0127937c-94c0-43fe-9630-cc2ec6904ad8,1,0,ce7c87b8-e4ab-47e2-b70a-7dcae8bfb8a8,ce7c87b8-e4ab-47e2-b70a-7dcae8bfb8a8,1,0,8df5b3cd-7788-4198-a530-e88be83f1cdf,8df5b3cd-7788-4198-a530-e88be83f1cdf,1,0,ffaeea66-66d5-4741-a9b5-875afebfce7f,ffaeea66-66d5-4741-a9b5-875afebfce7f,1,0,8f6b6576-1d21-46c1-905c-f1685f0eee7a,8f6b6576-1d21-46c1-905c-f1685f0eee7a,1,0,06827a85-a9d1-472e-8087-906ff94a4adc,06827a85-a9d1-472e-8087-906ff94a4adc,1,0,bb3954de-5eaa-4ec0-931b-a1a9f233c120,bb3954de-5eaa-4ec0-931b-a1a9f233c120,1,0,10689022-cbbb-4134-901f-1e778fac2693,10689022-cbbb-4134-901f-1e778fac2693,1,0,f14e363f-512b-4658-afb5-10c3be5ff870,f14e363f-512b-4658-afb5-10c3be5ff870,1,0,4d211427-4494-45d4-ae84-38235f35eaef,4d211427-4494-45d4-ae84-38235f35eaef,1,0,f7784993-d95c-4652-9894-3cf67aeabeb8,f7784993-d95c-4652-9894-3cf67aeabeb8,1,0,485d8b29-79b1-4798-a742-75546ddb7262,485d8b29-79b1-4798-a742-75546ddb7262,1,0,e248de85-8f76-4471-ab3d-d35514b69b78,e248de85-8f76-4471-ab3d-d35514b69b78,1,0,8928ce42-2b12-402f-8115-98b5655db556,8928ce42-2b12-402f-8115-98b5655db556,1,0,9b62c109-7b52-4803-83e6-a5413cd00984,9b62c109-7b52-4803-83e6-a5413cd00984,1,0,cddb4bb0-22ec-49ae-b332-62d7307b93fe,cddb4bb0-22ec-49ae-b332-62d7307b93fe,1,0,72876709-806e-4406-b9c1-b8117f4d750a,72876709-806e-4406-b9c1-b8117f4d750a,1,0,b1efafef-74cc-4d36-a32c-b472712f11f3,b1efafef-74cc-4d36-a32c-b472712f11f3,1,0,ceb05584-1ecd-4681-8575-c0452f95b685,ceb05584-1ecd-4681-8575-c0452f95b685,1,0,03d08c14-f814-4e12-8f96-020c36cca2bf,03d08c14-f814-4e12-8f96-020c36cca2bf,1,0,a1a7aab6-cf35-42ce-97bb-c112638a2748,a1a7aab6-cf35-42ce-97bb-c112638a2748,1,0,a64b15fa-fc34-43fe-a366-d27c0f1c3df2,a64b15fa-fc34-43fe-a366-d27c0f1c3df2,1,0,8b13e848-8fd3-4326-bd18-5a5b12ed3dc5,8b13e848-8fd3-4326-bd18-5a5b12ed3dc5,1,0,b9a6b053-2b93-4946-9531-040d3131dcc5,b9a6b053-2b93-4946-9531-040d3131dcc5,1,0,9f36d26e-aa71-44d5-ac27-9aaa643555c3,9f36d26e-aa71-44d5-ac27-9aaa643555c3,1,0,87b8b5d7-d3d6-450a-adb1-5c875257ec80,87b8b5d7-d3d6-450a-adb1-5c875257ec80,1,0,e3640efe-e46c-4588-b251-dda23bf0641d,e3640efe-e46c-4588-b251-dda23bf0641d,1,0,b46b5090-5eb1-4950-9031-8b43f611fa9c,b46b5090-5eb1-4950-9031-8b43f611fa9c,1,0,522a4bff-34d3-46b2-8c66-0b30d881a86e,522a4bff-34d3-46b2-8c66-0b30d881a86e,1,0,3d7908b1-bd82-475e-8488-fafcbe3458ee,3d7908b1-bd82-475e-8488-fafcbe3458ee,1,0,8a6cdb21-4eff-46dc-b928-738199f54581,8a6cdb21-4eff-46dc-b928-738199f54581,1,0,1bac040b-83e4-402f-a9bf-d6a7b10c91e0,1bac040b-83e4-402f-a9bf-d6a7b10c91e0,1,0,e9c632b0-7977-4e44-ac56-882617ad7cdc,e9c632b0-7977-4e44-ac56-882617ad7cdc,1,0,e84acba7-7e0f-43e8-a545-6e53d529d5d4,e84acba7-7e0f-43e8-a545-6e53d529d5d4,1,0,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,1,0,0f9c08c2-e7fa-4ea0-a935-f927feb01131,0f9c08c2-e7fa-4ea0-a935-f927feb01131,1,0,6086d53f-f1b2-4126-ab46-64705fe63b87,6086d53f-f1b2-4126-ab46-64705fe63b87,1,0,62a6b1c9-8288-4fa1-a17d-241b85a5e4b0,62a6b1c9-8288-4fa1-a17d-241b85a5e4b0,1,0,57069b56-f732-41c0-9a75-cbdb1e88556c,57069b56-f732-41c0-9a75-cbdb1e88556c,1,0,cf80ff0d-9add-4fa5-bba2-00d43fce5ed8,cf80ff0d-9add-4fa5-bba2-00d43fce5ed8,1,0,d927f1f0-df5f-44a1-bbfd-152ebf1559dd,d927f1f0-df5f-44a1-bbfd-152ebf1559dd,1,0,7ce7aec1-fa24-4dd7-8754-8124e78521bf,7ce7aec1-fa24-4dd7-8754-8124e78521bf,1,0,8b115575-9d8b-42f8-9ec8-0825a4397c7f,8b115575-9d8b-42f8-9ec8-0825a4397c7f,1,0,40fa5847-28f0-41ff-bfb8-ec33c8626d33,40fa5847-28f0-41ff-bfb8-ec33c8626d33,1,0,6d042890-27b2-4efc-935e-8190bb57c037,6d042890-27b2-4efc-935e-8190bb57c037,1,0,23e79add-7f1c-422a-9df1-8f76ebf805df,23e79add-7f1c-422a-9df1-8f76ebf805df,1,0,9295d88f-0865-440c-a98a-4710c50211be,9295d88f-0865-440c-a98a-4710c50211be,1,0,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,1,0,5299d417-02c6-4f73-9c0c-8c22d267ab99,5299d417-02c6-4f73-9c0c-8c22d267ab99,1,0,38ac9a13-665a-4201-b5cc-687fe4a01130,38ac9a13-665a-4201-b5cc-687fe4a01130,1,0,97c59096-b2dc-45d0-a580-b3018a04f9af,97c59096-b2dc-45d0-a580-b3018a04f9af,1,0,8172256e-f51e-4de0-bd07-3668785f4cb9,8172256e-f51e-4de0-bd07-3668785f4cb9,1,0,5dcd8e28-b058-405a-bac4-defab7d4b789,5dcd8e28-b058-405a-bac4-defab7d4b789,1,0,6fbf63b7-1692-495e-a8ec-bdda182997a3,6fbf63b7-1692-495e-a8ec-bdda182997a3,1,0,4a2c2478-03ad-4521-9356-09ee07fce972,4a2c2478-03ad-4521-9356-09ee07fce972,1,0,077af11c-fd3c-4e87-b169-5f3137464f77,077af11c-fd3c-4e87-b169-5f3137464f77,1,0,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,1,0,da8f7f30-eb80-44db-a451-348306c90cd8,da8f7f30-eb80-44db-a451-348306c90cd8,1,0,879304f7-9507-4fb8-9177-355428d6bba9,879304f7-9507-4fb8-9177-355428d6bba9,1,0,efb50581-cc7e-47ac-bfa2-86da2860bf1d,efb50581-cc7e-47ac-bfa2-86da2860bf1d,1,0,fd07f403-1116-4102-a1bf-35abb03ad493,fd07f403-1116-4102-a1bf-35abb03ad493,1,0,37ea0c64-2fec-4c2e-922b-d3a2f01f3e22,37ea0c64-2fec-4c2e-922b-d3a2f01f3e22,1,0,0722315c-9217-4ecf-80ff-d1ee89f84a53,0722315c-9217-4ecf-80ff-d1ee89f84a53,1,0,b82bcff8-49c9-44a9-8a9f-4428b0cc54a5,b82bcff8-49c9-44a9-8a9f-4428b0cc54a5,1,0,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,1,0,a2f943a4-05a3-4eb6-9a10-74b6859469a6,a2f943a4-05a3-4eb6-9a10-74b6859469a6,1,0,c172aeaf-b444-47c0-baee-80ccd91fe934,c172aeaf-b444-47c0-baee-80ccd91fe934,1,0,757ea742-8c14-4e0a-a867-432eee5cfc64,757ea742-8c14-4e0a-a867-432eee5cfc64,1,0,b8c36d5a-7966-4978-9225-67502b9c60a4,b8c36d5a-7966-4978-9225-67502b9c60a4,1,0,747f1c23-3c03-456e-864e-fc714484b7d6,747f1c23-3c03-456e-864e-fc714484b7d6,1,0,9847676d-f44d-46a0-83e2-4a43a835caf8,9847676d-f44d-46a0-83e2-4a43a835caf8,1,0,43c18cae-21a9-413b-a350-d5cf826980f0,43c18cae-21a9-413b-a350-d5cf826980f0,1,0,16773cdb-b979-42d5-a2a5-d4b79e8737bd,16773cdb-b979-42d5-a2a5-d4b79e8737bd,1,0,c28a190a-f487-4e99-b8f8-6928268086f8,c28a190a-f487-4e99-b8f8-6928268086f8,1,0,94e02f76-8656-4999-9470-dd996118400c,94e02f76-8656-4999-9470-dd996118400c,1,0,9effd265-3783-44e2-8698-80dd82137546,9effd265-3783-44e2-8698-80dd82137546,1,0,bef52020-98f8-465b-8981-e5f8eed62308,bef52020-98f8-465b-8981-e5f8eed62308,1,0,19897ad0-bdb5-439c-b4a2-a773c0ce5cf5,19897ad0-bdb5-439c-b4a2-a773c0ce5cf5,1,0,e731dab7-df9e-48ae-8542-4c0c30666ae9,e731dab7-df9e-48ae-8542-4c0c30666ae9,1,0,f321e378-6d50-4567-8434-813f367d3a65,f321e378-6d50-4567-8434-813f367d3a65,1,0,27246fd8-a8a3-4244-b49a-c0372a812167,27246fd8-a8a3-4244-b49a-c0372a812167,1,0,7d91ff3c-1ec2-41d0-9d38-fa8f8534c55c,7d91ff3c-1ec2-41d0-9d38-fa8f8534c55c,1,0,6da15c1d-e144-472e-9a3a-2797c7df16e4,6da15c1d-e144-472e-9a3a-2797c7df16e4,1,0,350a7b29-4ba3-43c4-b77d-47085f53d760,350a7b29-4ba3-43c4-b77d-47085f53d760,1,0,a151715d-c89e-4e4c-b8fd-d7d6ad71e603,a151715d-c89e-4e4c-b8fd-d7d6ad71e603,1,0,f6d6f1b9-3956-4fdb-bbb0-5d81f083a072,f6d6f1b9-3956-4fdb-bbb0-5d81f083a072,1,0,a5dd4200-0f25-452d-9014-3b1506c31557,a5dd4200-0f25-452d-9014-3b1506c31557,1,0,c48c091c-0d46-4d1f-bc84-72b0537c7ec2,c48c091c-0d46-4d1f-bc84-72b0537c7ec2,1,0,122a94c7-bb89-4f11-b583-b56808c1df47,122a94c7-bb89-4f11-b583-b56808c1df47,1,0,f4371f32-95a5-40f4-bc5e-a5b9a12a86eb,f4371f32-95a5-40f4-bc5e-a5b9a12a86eb,1,0,5f434c45-a5ff-4a07-8662-6a592298c7e9,5f434c45-a5ff-4a07-8662-6a592298c7e9,1,0,0841ebfc-12e6-4b3e-a60f-861b15e1b63c,0841ebfc-12e6-4b3e-a60f-861b15e1b63c,1,0,bde05768-2dd6-4800-985d-27075f610cca,bde05768-2dd6-4800-985d-27075f610cca,1,0,d18956cf-e449-48cc-a127-01b5dc910ea2,d18956cf-e449-48cc-a127-01b5dc910ea2,1,0,8e5487a3-b5e5-40ca-88f3-5b0ea0c4d481,8e5487a3-b5e5-40ca-88f3-5b0ea0c4d481,1,0,5d338e31-a56b-45f0-8a62-0270ca543f6a,5d338e31-a56b-45f0-8a62-0270ca543f6a,1,0,afd8251f-548b-4bb6-8ad0-4f412bec7cb6,afd8251f-548b-4bb6-8ad0-4f412bec7cb6,1,0,e352fc19-96be-4410-a516-bc58cc234422,e352fc19-96be-4410-a516-bc58cc234422,1,0,9b742da4-1696-4c06-9dfa-dd85c9286c74,9b742da4-1696-4c06-9dfa-dd85c9286c74,1,0,5f92f8c8-4d02-41a0-858f-e521f978df9f,5f92f8c8-4d02-41a0-858f-e521f978df9f,1,0,f9da8faf-1462-4ac4-9b63-2a20fc916049,f9da8faf-1462-4ac4-9b63-2a20fc916049,1,0,db1062bc-4164-4095-9640-9804c0ebcd0b,db1062bc-4164-4095-9640-9804c0ebcd0b,1,0,c11d967b-1250-4345-90b0-011a96c5ae5e,c11d967b-1250-4345-90b0-011a96c5ae5e,1,0,ea7c61ff-745c-4908-9a94-bba022d12de4,ea7c61ff-745c-4908-9a94-bba022d12de4,1,0,96cd8b90-5cf3-416c-b3a2-1f62e158b37e,96cd8b90-5cf3-416c-b3a2-1f62e158b37e,1,0,24eed105-f612-4340-ad79-388a7b39b58c,24eed105-f612-4340-ad79-388a7b39b58c,1,0,8e4bd2ac-d555-490e-87ab-1b0cdd6f72e9,8e4bd2ac-d555-490e-87ab-1b0cdd6f72e9,1,0,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,1,0,53caada5-1d53-45dc-9432-90075ddca890,53caada5-1d53-45dc-9432-90075ddca890,1,0,f00116da-2bf1-4edd-b939-f25d36774f5b,f00116da-2bf1-4edd-b939-f25d36774f5b,1,0,d1472d23-954b-4069-b2d6-df08c6ec0be1,d1472d23-954b-4069-b2d6-df08c6ec0be1,1,0,93fe2ce6-7193-42bc-a966-4653b7989eaa,93fe2ce6-7193-42bc-a966-4653b7989eaa,1,0,65678df4-a323-451f-98ba-305a74fc5805,65678df4-a323-451f-98ba-305a74fc5805,1,0,b1230b96-f4c8-4311-bfc0-df33bcc41394,b1230b96-f4c8-4311-bfc0-df33bcc41394,1,0,a7fe0aa5-722c-4a09-889b-ee422421addc,a7fe0aa5-722c-4a09-889b-ee422421addc,1,0,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,1,0,b572b1d0-4404-421c-9950-1cc1342ca5f3,b572b1d0-4404-421c-9950-1cc1342ca5f3,1,0,0c838a31-2b08-447c-b39a-a613cfba526c,0c838a31-2b08-447c-b39a-a613cfba526c,1,0,02082174-7276-4256-b9bb-9872065a01c4,02082174-7276-4256-b9bb-9872065a01c4,1,0,ddaba839-5ed2-4707-8cb8-ebd5784f642a,ddaba839-5ed2-4707-8cb8-ebd5784f642a,1,0,86c679c0-3531-4622-9a1f-3d9d6ccdd431,86c679c0-3531-4622-9a1f-3d9d6ccdd431,1,0,cba9e94c-e328-42ef-bcd0-92db3f0c048b,cba9e94c-e328-42ef-bcd0-92db3f0c048b,1,0,670c62c1-1a33-4dec-9540-5b4c1fe29074,670c62c1-1a33-4dec-9540-5b4c1fe29074,1,0,cc664d81-d0af-4d25-ae29-64f422e51bf2,cc664d81-d0af-4d25-ae29-64f422e51bf2,1,0,667f0c7e-fa70-49e9-97c9-ad04819fee58,667f0c7e-fa70-49e9-97c9-ad04819fee58,1,0,ae3876e2-bd06-415b-9d9a-b77d787be09e,ae3876e2-bd06-415b-9d9a-b77d787be09e,1,0,ded105e9-b71b-4550-9d9c-9c743dc212d0,ded105e9-b71b-4550-9d9c-9c743dc212d0,1,0,0cf49621-afc5-4c8d-a1b5-f8c30db9f415,0cf49621-afc5-4c8d-a1b5-f8c30db9f415,1,0,4718392b-477c-496b-9d28-ddbdaa7a04f2,4718392b-477c-496b-9d28-ddbdaa7a04f2,1,0,546af6c0-0762-4d2d-9d3b-c6a8f6c57674,546af6c0-0762-4d2d-9d3b-c6a8f6c57674,1,0,879844f0-30b4-47f5-8d2e-5fea29910368,879844f0-30b4-47f5-8d2e-5fea29910368,1,0,303334ba-2785-47fe-a094-84f9dea33be2,303334ba-2785-47fe-a094-84f9dea33be2,1,0,04424730-6992-4a5b-838b-7a7c16dedbd0,04424730-6992-4a5b-838b-7a7c16dedbd0,1,0,32850dc1-1484-4b7d-94f4-a08329423e7b,32850dc1-1484-4b7d-94f4-a08329423e7b,1,0,e37a7cf1-a7b5-4b6e-b818-0915598c8505,e37a7cf1-a7b5-4b6e-b818-0915598c8505,1,0,9299b382-fc65-4f89-8329-94fec125761c,9299b382-fc65-4f89-8329-94fec125761c,1,0,240bec31-cd59-477b-8459-8e3278da22dc,240bec31-cd59-477b-8459-8e3278da22dc,1,0,c83739dc-6afc-4687-ab1c-98a7b24b2182,c83739dc-6afc-4687-ab1c-98a7b24b2182,1,0,f3abaf8e-0230-43db-aaf0-716fc02047eb,f3abaf8e-0230-43db-aaf0-716fc02047eb,1,0,b76c3bd6-924a-4378-acbe-6f17232b201b,b76c3bd6-924a-4378-acbe-6f17232b201b,1,0,e0519f0c-9c99-4f5c-a3a9-27adce45737d,e0519f0c-9c99-4f5c-a3a9-27adce45737d,1,0,554320a0-55dc-4289-bb08-63d405cb4ca5,554320a0-55dc-4289-bb08-63d405cb4ca5,1,0,45eec13d-e5e5-4a2e-ad6c-2780bde15ef2,45eec13d-e5e5-4a2e-ad6c-2780bde15ef2,1,0,0874a3c0-0d16-4172-b467-f0666d5fcaee,0874a3c0-0d16-4172-b467-f0666d5fcaee,1,0,9d358304-3fd0-4ec6-9400-cc498ff2f751,9d358304-3fd0-4ec6-9400-cc498ff2f751,1,0,cc380a19-ab29-4f20-93ad-9a58cd4de56e,cc380a19-ab29-4f20-93ad-9a58cd4de56e,1,0,6a5f7521-270e-476e-88ec-a8cf79ea61a6,6a5f7521-270e-476e-88ec-a8cf79ea61a6,1,0,9bb841e7-e629-4a1f-8ff6-f8bca0b2b133,9bb841e7-e629-4a1f-8ff6-f8bca0b2b133,1,0,74067eee-6cd4-4ae3-becc-457ecb51dc9a,74067eee-6cd4-4ae3-becc-457ecb51dc9a,1,0,e54a8786-86a4-48e3-a210-aaae4e5fce8c,e54a8786-86a4-48e3-a210-aaae4e5fce8c,1,0,1c265c15-6002-416e-8045-81f03c893faf,1c265c15-6002-416e-8045-81f03c893faf,1,0,86c86ea2-d14e-4443-b36c-c1c17c4f768a,86c86ea2-d14e-4443-b36c-c1c17c4f768a,1,0,14512818-58b0-44cc-b00d-d37913c57aad,14512818-58b0-44cc-b00d-d37913c57aad,1,0,077e2c42-bc3b-48bf-bbc2-41effe20f613,077e2c42-bc3b-48bf-bbc2-41effe20f613,1,0,57964dd6-4b0b-4590-bc44-de744cc423af,57964dd6-4b0b-4590-bc44-de744cc423af,1,0,f5bb88eb-c239-4ae3-a297-dfbbd679e008,f5bb88eb-c239-4ae3-a297-dfbbd679e008,1,0,c888ccc1-9116-4b88-b950-aeabd54191c0,c888ccc1-9116-4b88-b950-aeabd54191c0,1,0,ff4d92a7-5fa3-4a46-a6f5-47c3952edb22,ff4d92a7-5fa3-4a46-a6f5-47c3952edb22,1,0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,1,0,eaeb5aa8-8edf-4f74-8011-2d476f543bf6,eaeb5aa8-8edf-4f74-8011-2d476f543bf6,1,0,b2f17ef1-3f6f-4029-b3e2-28d6b79c5b76,b2f17ef1-3f6f-4029-b3e2-28d6b79c5b76,1,0,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,1,0,7433b2a9-f634-4af7-ac85-6aa1280ea239,7433b2a9-f634-4af7-ac85-6aa1280ea239,1,0,9f32e85c-2ed6-41db-b0ec-6d8596940e80,9f32e85c-2ed6-41db-b0ec-6d8596940e80,1,0,7adced5f-3a5f-419a-926c-0452aad86c86,7adced5f-3a5f-419a-926c-0452aad86c86,1,0,f259b6b4-d582-429f-a16f-027a6bcb7438,f259b6b4-d582-429f-a16f-027a6bcb7438,1,0,46e0522b-b88b-43b2-9067-a5359e90994b,46e0522b-b88b-43b2-9067-a5359e90994b,1,0,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,1,0,b143bc6d-ead6-41a2-9a15-1a44488c1ce4,b143bc6d-ead6-41a2-9a15-1a44488c1ce4,1,0,72d41d01-9c9d-4fbe-8a39-932d82d171ef,72d41d01-9c9d-4fbe-8a39-932d82d171ef,1,0,f4afd271-64de-4a6d-b0ef-f27db4d66d32,f4afd271-64de-4a6d-b0ef-f27db4d66d32,1,0,b1e7d3c3-9fc1-4364-a8c3-b076080c7472,b1e7d3c3-9fc1-4364-a8c3-b076080c7472,1,0,697d5715-dd04-40be-9b28-539734725158,697d5715-dd04-40be-9b28-539734725158,1,0,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,1,0,d95fcb37-fc65-466d-93e2-489f41683276,d95fcb37-fc65-466d-93e2-489f41683276,1,0,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,1,0,a27a9296-46bb-49a1-8308-db675baa81d0,a27a9296-46bb-49a1-8308-db675baa81d0,1,0,2181d197-028b-40b2-bf02-3d85dad1af30,2181d197-028b-40b2-bf02-3d85dad1af30,1,0,1456f317-360c-4190-b2d1-1be7484369a5,1456f317-360c-4190-b2d1-1be7484369a5,1,0,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,1,0,4867948f-b027-44ae-b78c-a94e00eed52b,4867948f-b027-44ae-b78c-a94e00eed52b,1,0,aa0c32ae-da52-4df9-8b77-99ea31f8df81,aa0c32ae-da52-4df9-8b77-99ea31f8df81,1,0,d7dcd391-3a0e-4aa9-9b53-467a1de67593,d7dcd391-3a0e-4aa9-9b53-467a1de67593,1,0,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,1,0,ef044879-e731-418a-b917-6a685f27c5f4,ef044879-e731-418a-b917-6a685f27c5f4,1,0,618d13d5-fd1f-4b70-ad45-dd6a17a50730,618d13d5-fd1f-4b70-ad45-dd6a17a50730,1,0,0248a6c4-7ce5-4898-bb1d-9ad9509e6795,0248a6c4-7ce5-4898-bb1d-9ad9509e6795,1,0,6a5b9e7f-c368-40d8-812a-64f68ea1ef9d,6a5b9e7f-c368-40d8-812a-64f68ea1ef9d,1,0,58037b76-b548-4f07-bd67-67e552a5c6e5,58037b76-b548-4f07-bd67-67e552a5c6e5,1,0,68f19104-5fa3-4f28-a84b-bf68c3bed49b,68f19104-5fa3-4f28-a84b-bf68c3bed49b,1,0,4249f45b-b298-4d42-9ca2-bd80b87f2150,4249f45b-b298-4d42-9ca2-bd80b87f2150,1,0,f88ccd7a-8d15-4b24-addf-da522a0b4a43,f88ccd7a-8d15-4b24-addf-da522a0b4a43,1,0,bc039475-c872-4b99-9248-c74aae75f0e1,bc039475-c872-4b99-9248-c74aae75f0e1,1,0,331db120-ba88-4eb3-a8ec-10691be82e2d,331db120-ba88-4eb3-a8ec-10691be82e2d,1,0,349378d1-abe3-44de-84a4-d525b08e0474,349378d1-abe3-44de-84a4-d525b08e0474,1,0,1526b18d-7fab-414e-a5b2-377b67ac0b55,1526b18d-7fab-414e-a5b2-377b67ac0b55,1,0,c561fe6b-53ea-435b-a230-1850e2dc1ff5,c561fe6b-53ea-435b-a230-1850e2dc1ff5,1,0,aba7605f-6baf-42a8-b5ad-8f71c780b81f,aba7605f-6baf-42a8-b5ad-8f71c780b81f,1,0,8fc19eca-1a15-4758-af4b-79637e51edfb,8fc19eca-1a15-4758-af4b-79637e51edfb,1,0,b0e0a273-2613-4d5e-9901-df7893af4c74,b0e0a273-2613-4d5e-9901-df7893af4c74,1,0,4ad1ef06-d8b4-46da-b536-d23c40e85497,4ad1ef06-d8b4-46da-b536-d23c40e85497,1,0,be9144ce-5560-47bb-8c5e-9beefd15bfc3,be9144ce-5560-47bb-8c5e-9beefd15bfc3,1,0,ad09d1e6-5982-4e1c-864e-452ac5b2915a,ad09d1e6-5982-4e1c-864e-452ac5b2915a,1,0,caea53be-d2f7-4109-8017-d2bfdfde8c6f,caea53be-d2f7-4109-8017-d2bfdfde8c6f,1,0,60f30706-9919-4767-a17c-660754b9d542,60f30706-9919-4767-a17c-660754b9d542,1,0,7de19812-ed6c-41b5-82aa-b9a8e6d808f2,7de19812-ed6c-41b5-82aa-b9a8e6d808f2,1,0,c0bc4cc4-b5ca-47c2-b589-c0d25bb63f1e,c0bc4cc4-b5ca-47c2-b589-c0d25bb63f1e,1,0,35823167-b658-4563-8d01-b0aab05aa619,35823167-b658-4563-8d01-b0aab05aa619,1,0,30be8d71-a9dd-4dd3-8fb4-ea0c8de86358,30be8d71-a9dd-4dd3-8fb4-ea0c8de86358,1,0,9ee03c48-c338-4655-9095-d490231df2a3,9ee03c48-c338-4655-9095-d490231df2a3,1,0,94928ba3-6bbf-4bd3-94cf-9c51b50e005f,94928ba3-6bbf-4bd3-94cf-9c51b50e005f,1,0,3924c17c-6ee3-4406-8023-0a79a242e389,3924c17c-6ee3-4406-8023-0a79a242e389,1,0,84a159ed-bc5f-4497-94d1-94b187b0bffe,84a159ed-bc5f-4497-94d1-94b187b0bffe,1,0,0a126b0d-28c8-4ed4-836f-e39e17693ad0,0a126b0d-28c8-4ed4-836f-e39e17693ad0,1,0,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,1,0,bf75c4de-b36a-4a7f-8d84-9fa3d020a6cb,bf75c4de-b36a-4a7f-8d84-9fa3d020a6cb,1,0,f95adb50-fa0b-434c-93dd-b7fd211220b7,f95adb50-fa0b-434c-93dd-b7fd211220b7,1,0,e590825f-10c6-4fdd-98cd-3da01da2ed4f,e590825f-10c6-4fdd-98cd-3da01da2ed4f,1,0,2233ce53-b8a8-4c83-97a2-683c8575462a,2233ce53-b8a8-4c83-97a2-683c8575462a,1,0,b938ff17-e31c-4762-a96f-e1288f746a1d,b938ff17-e31c-4762-a96f-e1288f746a1d,1,0,d6a5083f-ca9a-42ed-b202-2983e4ba21c2,d6a5083f-ca9a-42ed-b202-2983e4ba21c2,1,0,bd69bf55-dee0-4553-8f90-5fd025c0f773,bd69bf55-dee0-4553-8f90-5fd025c0f773,1,0,2071f210-dc13-43c0-a58e-b982821d6842,2071f210-dc13-43c0-a58e-b982821d6842,1,0,bea697f4-46a8-4698-ac60-64326e442f2b,bea697f4-46a8-4698-ac60-64326e442f2b,1,0,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,1,0,f415296e-fceb-4835-abe9-17bb17a5d5e5,f415296e-fceb-4835-abe9-17bb17a5d5e5,1,0,0e805e1f-3797-4ef9-94d3-0ec58ac1b605,0e805e1f-3797-4ef9-94d3-0ec58ac1b605,1,0,8677bd53-5569-4d44-b7ce-d1b3fe12c78d,8677bd53-5569-4d44-b7ce-d1b3fe12c78d,1,0,19056365-9ff1-4733-876e-a7ebdbbe0557,19056365-9ff1-4733-876e-a7ebdbbe0557,1,0,c8679d82-075c-4556-8231-c004d144fe61,c8679d82-075c-4556-8231-c004d144fe61,1,0,5e09dc5e-bbb7-4c38-b609-940c24f63c84,5e09dc5e-bbb7-4c38-b609-940c24f63c84,1,0,017b28eb-8ba9-465e-a748-20eadbeb4ea2,017b28eb-8ba9-465e-a748-20eadbeb4ea2,1,0,c0bb2d66-94c9-4bc6-afd5-534075e8395b,c0bb2d66-94c9-4bc6-afd5-534075e8395b,1,0,33c93020-b5f0-424e-a8fc-114a6ab04107,33c93020-b5f0-424e-a8fc-114a6ab04107,1,0,db7cc693-1645-4416-a9d9-5a7584cd3bbc,db7cc693-1645-4416-a9d9-5a7584cd3bbc,1,0,c849fb09-7833-49c8-9461-98426dc6c0af,c849fb09-7833-49c8-9461-98426dc6c0af,1,0,6c58fc3a-37f8-44b7-b076-2c10ce09b554,6c58fc3a-37f8-44b7-b076-2c10ce09b554,1,0,f9479915-cdee-40d5-ba53-101132aac672,f9479915-cdee-40d5-ba53-101132aac672,1,0,245c07a9-98b0-452b-b899-dc8751ab7ce0,245c07a9-98b0-452b-b899-dc8751ab7ce0,1,0,b0ca1b85-e1de-4b7c-8261-7f9e8a6a72eb,b0ca1b85-e1de-4b7c-8261-7f9e8a6a72eb,1,0,ae67dfe5-bb36-4400-81f5-8dab1fd0ca6e,ae67dfe5-bb36-4400-81f5-8dab1fd0ca6e,1,0,91d7687b-7627-473f-a08d-433f9d385107,91d7687b-7627-473f-a08d-433f9d385107,1,0,2276a1d4-b4d9-4643-8342-36143ce4eb26,2276a1d4-b4d9-4643-8342-36143ce4eb26,1,0,83db1b00-e9e3-41da-8a59-47589dcfd618,83db1b00-e9e3-41da-8a59-47589dcfd618,1,0,91d2d798-1498-4c52-aa7b-99db4b992876,91d2d798-1498-4c52-aa7b-99db4b992876,1,0,e85a03d3-e7c7-4058-992a-515a557d9e52,e85a03d3-e7c7-4058-992a-515a557d9e52,1,0,195ea1f8-3e38-4254-a33d-c87424b8f7dc,195ea1f8-3e38-4254-a33d-c87424b8f7dc,1,0,d3a1d247-8f4a-45af-9861-7e313a100209,d3a1d247-8f4a-45af-9861-7e313a100209,1,0,837f27c1-26d7-4f24-a691-55dd9ed04ec5,837f27c1-26d7-4f24-a691-55dd9ed04ec5,1,0,9e2ddfbb-8d6b-4b82-8a2b-62c2ea990b10,9e2ddfbb-8d6b-4b82-8a2b-62c2ea990b10,1,0,5005655f-22b2-49e6-be4f-b15d768d10b2,5005655f-22b2-49e6-be4f-b15d768d10b2,1,0,208040c8-e98b-4c15-a2ec-38d44bfcfa6c,208040c8-e98b-4c15-a2ec-38d44bfcfa6c,1,0,f6811ee2-769e-488d-9ca0-70f1fe521ca9,f6811ee2-769e-488d-9ca0-70f1fe521ca9,1,0,83385f31-2cdf-44a1-85c3-461e4ad5fd45,83385f31-2cdf-44a1-85c3-461e4ad5fd45,1,0,b55b06db-604e-4fb9-9253-638c747bd8f9,b55b06db-604e-4fb9-9253-638c747bd8f9,1,0,9cd9a3e1-b52c-4151-abd3-2744ed03cc1b,9cd9a3e1-b52c-4151-abd3-2744ed03cc1b,1,0,9aa0c1ef-45b4-405b-ad6f-ebcf876e6318,9aa0c1ef-45b4-405b-ad6f-ebcf876e6318,1,0,deb69010-80b0-4e28-acc7-8c50e8e6f873,deb69010-80b0-4e28-acc7-8c50e8e6f873,1,0,1a9177fe-6699-42b3-9588-eed9c6008c2d,1a9177fe-6699-42b3-9588-eed9c6008c2d,1,0,93848cf6-7a87-42c7-b685-0bc418a2037c,93848cf6-7a87-42c7-b685-0bc418a2037c,1,0,4f49412a-fbbe-4ee1-9c2b-affe5266bba7,4f49412a-fbbe-4ee1-9c2b-affe5266bba7,1,0,ae698468-f42a-4400-aee6-fd849740e634,ae698468-f42a-4400-aee6-fd849740e634,1,0,0b88b50d-6aa1-4364-82bd-1c0c0da93a58,0b88b50d-6aa1-4364-82bd-1c0c0da93a58,1,0,ddec19a2-2a76-4eeb-9cbb-6bc2b4a32bc8,ddec19a2-2a76-4eeb-9cbb-6bc2b4a32bc8,1,0,6438435e-97cc-4bd2-98dc-e21cee55bb0f,6438435e-97cc-4bd2-98dc-e21cee55bb0f,1,0,31b93291-a58f-4176-8318-58200e8bc56e,31b93291-a58f-4176-8318-58200e8bc56e,1,0,293be1bc-49cb-4a99-add8-2a3a46829718,293be1bc-49cb-4a99-add8-2a3a46829718,1,0,00579e31-e97d-4d79-ba25-b8d500a17e7f,00579e31-e97d-4d79-ba25-b8d500a17e7f,1,0,5001bea4-c8f9-4950-9eda-d33125e3bb46,5001bea4-c8f9-4950-9eda-d33125e3bb46,1,0,4ac6d0dd-0007-46b8-bfcc-93c0f85b6b85,4ac6d0dd-0007-46b8-bfcc-93c0f85b6b85,1,0,bc2dd611-b589-4519-b274-40db5c66b378,bc2dd611-b589-4519-b274-40db5c66b378,1,0,e815010d-e03d-46e4-b482-c1556902cc26,e815010d-e03d-46e4-b482-c1556902cc26,1,0,d4ab930a-ddaa-4552-afed-2618af822365,d4ab930a-ddaa-4552-afed-2618af822365,1,0,2388e3f4-b23b-488f-9ea5-d9434efca195,2388e3f4-b23b-488f-9ea5-d9434efca195,1,0,dd03e170-4186-495b-ae1c-fc66385d7ccf,dd03e170-4186-495b-ae1c-fc66385d7ccf,1,0,b2de86fc-f10b-4304-8060-cad903ba37c5,b2de86fc-f10b-4304-8060-cad903ba37c5,1,0,81fbb02e-76b2-4bca-bb3b-871e4e969a3c,81fbb02e-76b2-4bca-bb3b-871e4e969a3c,1,0,cdef5df6-f3a1-4950-b197-4f375914f885,cdef5df6-f3a1-4950-b197-4f375914f885,1,0,c1caff49-dc4b-4b3e-be47-122ea8b70416,c1caff49-dc4b-4b3e-be47-122ea8b70416,1,0,a1185a4c-7351-48b0-b662-61f61a1ad715,a1185a4c-7351-48b0-b662-61f61a1ad715,1,0,bf5faaef-3a03-40bc-8d3a-644c0874b9ce,bf5faaef-3a03-40bc-8d3a-644c0874b9ce,1,0,4ee0c7a4-cc26-438d-8908-f6a900c99d8b,4ee0c7a4-cc26-438d-8908-f6a900c99d8b,1,0,71d03545-df45-4c70-aa0d-3b916f2a9041,71d03545-df45-4c70-aa0d-3b916f2a9041,1,0,da9b0d3d-27dd-4a85-b0df-ec2f54d884f6,da9b0d3d-27dd-4a85-b0df-ec2f54d884f6,1,0,28a25822-2306-409a-a7c8-6f7e42bf25e8,28a25822-2306-409a-a7c8-6f7e42bf25e8,1,0,89cb31da-a980-4207-a537-85cd47f08d32,89cb31da-a980-4207-a537-85cd47f08d32,1,0,a45fa0c3-c363-4465-861f-13cedfeb79dd,a45fa0c3-c363-4465-861f-13cedfeb79dd,1,0,a72517c3-8c91-4e40-81ac-83c762789e87,a72517c3-8c91-4e40-81ac-83c762789e87,1,0,0233b335-7e26-4661-9850-8ab09d3178e3,0233b335-7e26-4661-9850-8ab09d3178e3,1,0,d942d536-5d01-4571-b910-abd973996a38,d942d536-5d01-4571-b910-abd973996a38,1,0,b82a7103-b872-49c3-b632-81d5a0051136,b82a7103-b872-49c3-b632-81d5a0051136,1,0,4b17ac35-78cb-4d01-bb08-659c0a93e8ce,4b17ac35-78cb-4d01-bb08-659c0a93e8ce,1,0,20c2053c-8ebd-4c07-8d95-956b424d047c,20c2053c-8ebd-4c07-8d95-956b424d047c,1,0,7c9dee81-7e85-4d26-84c3-66b0d770ac5a,7c9dee81-7e85-4d26-84c3-66b0d770ac5a,1,0,08fe5e70-ac6b-427a-b6f2-0e2f7848fa6b,08fe5e70-ac6b-427a-b6f2-0e2f7848fa6b,1,0,bef6081e-f377-41d6-83a1-b0e218a3fb46,bef6081e-f377-41d6-83a1-b0e218a3fb46,1,0,9b67bfd5-ef23-4205-b7ba-9466517e9999,9b67bfd5-ef23-4205-b7ba-9466517e9999,1,0,20082776-ce24-41c5-ae11-6fa9bc54db59,20082776-ce24-41c5-ae11-6fa9bc54db59,1,0,ea2c4c8e-23cc-4884-812e-1e959da48afc,ea2c4c8e-23cc-4884-812e-1e959da48afc,1,0,c61e4c12-178d-47aa-a070-333fe5450168,c61e4c12-178d-47aa-a070-333fe5450168,1,0,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,1,0,ea9d67eb-b552-48bd-a108-4938e5541735,ea9d67eb-b552-48bd-a108-4938e5541735,1,0,63fd620c-59a5-493c-a39e-457fad6fe35f,63fd620c-59a5-493c-a39e-457fad6fe35f,1,0,46b0a5b3-1fa7-44ff-a941-c6de47d36e77,46b0a5b3-1fa7-44ff-a941-c6de47d36e77,1,0,75ffd0b9-79be-4600-a310-591fddb6d63e,75ffd0b9-79be-4600-a310-591fddb6d63e,1,0,4883cb3d-4ab3-4e0e-bddb-ae8852547a3c,4883cb3d-4ab3-4e0e-bddb-ae8852547a3c,1,0,85d6d214-2b70-4cc4-ba80-f4325dd4ca65,85d6d214-2b70-4cc4-ba80-f4325dd4ca65,1,0,89888993-3b05-475e-ac76-3cd7ced93250,89888993-3b05-475e-ac76-3cd7ced93250,1,0,129f704b-cc63-4a4e-b6a7-9e53de4537a2,129f704b-cc63-4a4e-b6a7-9e53de4537a2,1,0,ea97b67e-1182-49c3-b95a-8fcce4cd3d09,ea97b67e-1182-49c3-b95a-8fcce4cd3d09,1,0,592f55e1-b004-44ef-878a-6c2016ccbeb0,592f55e1-b004-44ef-878a-6c2016ccbeb0,1,0,19add2bd-eede-4a05-901b-cf8ce49a638f,19add2bd-eede-4a05-901b-cf8ce49a638f,1,0,becf53b6-3fbc-4c70-822f-4a70b0434353,becf53b6-3fbc-4c70-822f-4a70b0434353,1,0,c7f544c6-488e-4178-af0d-d2ae07a8b89a,c7f544c6-488e-4178-af0d-d2ae07a8b89a,1,0,7dc0429d-146a-4c4f-b122-5d5c053bd4ed,7dc0429d-146a-4c4f-b122-5d5c053bd4ed,1,0,f8dc2485-685b-4e41-834a-a2cbbbe4d53b,f8dc2485-685b-4e41-834a-a2cbbbe4d53b,1,0,c38d8135-e11f-4860-b370-84ff279b7fbd,c38d8135-e11f-4860-b370-84ff279b7fbd,1,0,ee0798f5-47a8-4118-a25c-cfd3473007c1,ee0798f5-47a8-4118-a25c-cfd3473007c1,1,0,652ee894-047b-4a5a-a500-2d61b4c4a473,652ee894-047b-4a5a-a500-2d61b4c4a473,1,0,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,1,0,33f8cd94-71e7-4703-92c3-22690fbd871a,33f8cd94-71e7-4703-92c3-22690fbd871a,1,0,b6e5de4d-0156-4342-b646-6e6920a4bd3a,b6e5de4d-0156-4342-b646-6e6920a4bd3a,1,0,c03f9972-5a1f-449b-b170-5a958c2b5846,c03f9972-5a1f-449b-b170-5a958c2b5846,1,0,25896075-2484-4879-8310-7f5680d80b48,25896075-2484-4879-8310-7f5680d80b48,1,0,1e3c444d-6f73-4eb0-a12d-7106daf36b14,1e3c444d-6f73-4eb0-a12d-7106daf36b14,1,0,9043894d-f89a-459f-a4ea-77fe3633aa91,9043894d-f89a-459f-a4ea-77fe3633aa91,1,0,085cbea9-1df1-4ee9-afb7-da2bf313697e,085cbea9-1df1-4ee9-afb7-da2bf313697e,1,0,09858042-6284-4499-8055-c1b5b783ce5f,09858042-6284-4499-8055-c1b5b783ce5f,1,0,38fc1e6e-7cd3-437b-b429-6655be34cd01,38fc1e6e-7cd3-437b-b429-6655be34cd01,1,0,95a71c2e-aa39-42ec-8889-2390a553f146,95a71c2e-aa39-42ec-8889-2390a553f146,1,0,8c4c7982-36cc-4dc9-b055-9954f61e6365,8c4c7982-36cc-4dc9-b055-9954f61e6365,1,0,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,1,0,e29d96ee-e8fa-4100-8a0e-494398e4ec9d,e29d96ee-e8fa-4100-8a0e-494398e4ec9d,1,0,5f3d5a05-a581-462d-96a2-2750ba0e0481,5f3d5a05-a581-462d-96a2-2750ba0e0481,1,0,477ab478-b336-4bac-898f-e20e3a4039b5,477ab478-b336-4bac-898f-e20e3a4039b5,1,0,a4d767a1-d2e6-4e0a-ab35-9207eef54998,a4d767a1-d2e6-4e0a-ab35-9207eef54998,1,0,e50cb13a-151b-45d2-a7b7-d23440ddfa24,e50cb13a-151b-45d2-a7b7-d23440ddfa24,1,0,cc3a7f15-4db6-445e-b282-f44d0460b7d3,cc3a7f15-4db6-445e-b282-f44d0460b7d3,1,0,0b8bfb71-d430-4bdf-8391-a534b3a15fc3,0b8bfb71-d430-4bdf-8391-a534b3a15fc3,1,0,19ea515f-65f7-4ed9-812b-c97b92e2498f,19ea515f-65f7-4ed9-812b-c97b92e2498f,1,0,0d8770aa-fa6e-471c-92c8-b96576927ef0,0d8770aa-fa6e-471c-92c8-b96576927ef0,1,0,4f86b052-b81e-49b8-9fa8-82b2ecbc8e01,4f86b052-b81e-49b8-9fa8-82b2ecbc8e01,1,0,e25b2b10-bf08-42db-9642-861efc5e583b,e25b2b10-bf08-42db-9642-861efc5e583b,1,0,b8a32c33-4e15-4c21-baab-64a86d44321b,b8a32c33-4e15-4c21-baab-64a86d44321b,1,0,d7dd9a03-6818-4987-8f39-58e1c906569f,d7dd9a03-6818-4987-8f39-58e1c906569f,1,0,e4216976-2747-4078-81d4-8ffab668c1f7,e4216976-2747-4078-81d4-8ffab668c1f7,1,0,fce028b8-b530-49f0-b6ad-a28d03e19b0f,fce028b8-b530-49f0-b6ad-a28d03e19b0f,1,0,301eea20-0e7f-441e-a531-28b4627dfd93,301eea20-0e7f-441e-a531-28b4627dfd93,1,0,41f87891-ddd5-4e0f-a4f2-8039fb71981b,41f87891-ddd5-4e0f-a4f2-8039fb71981b,1,0,47da49ee-b243-4e78-9c8f-bb26c60e6136,47da49ee-b243-4e78-9c8f-bb26c60e6136,1,0,39bee714-cacd-4d48-97a5-c838660e049a,39bee714-cacd-4d48-97a5-c838660e049a,1,0,9ed2c756-80a1-4559-8494-b7a9b82a4519,9ed2c756-80a1-4559-8494-b7a9b82a4519,1,0,69149ce1-d3f8-4e12-be8f-b328ade60882,69149ce1-d3f8-4e12-be8f-b328ade60882,1,0,ff592ecb-eb08-4554-87bf-1d2935b21d3c,ff592ecb-eb08-4554-87bf-1d2935b21d3c,1,0,d975aef4-8da8-4486-baeb-a99c48cff0ec,d975aef4-8da8-4486-baeb-a99c48cff0ec,1,0,75666bb9-f6d3-4dd6-8220-427a81f23fc9,75666bb9-f6d3-4dd6-8220-427a81f23fc9,1,0,9da27139-0bed-47b0-aef6-246929968502,9da27139-0bed-47b0-aef6-246929968502,1,0,7ae5d177-a3e6-4989-b10c-8e0a605c26d9,7ae5d177-a3e6-4989-b10c-8e0a605c26d9,1,0,29f2094a-d0d1-425c-8161-45a9ba186e19,29f2094a-d0d1-425c-8161-45a9ba186e19,1,0,893b2dd9-a939-4799-9b78-50d788a5f3ba,893b2dd9-a939-4799-9b78-50d788a5f3ba,1,0,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,1,0,a57f6dc1-59d7-4311-8acd-65ce57a9f386,a57f6dc1-59d7-4311-8acd-65ce57a9f386,1,0,e4842271-4fc0-4e15-afef-876f05af78c0,e4842271-4fc0-4e15-afef-876f05af78c0,1,0,31ee6430-b65d-42fa-859b-c4f1c40686ae,31ee6430-b65d-42fa-859b-c4f1c40686ae,1,0,c59e11f3-6bcb-404a-9d76-1416c12be354,c59e11f3-6bcb-404a-9d76-1416c12be354,1,0,c1a1f12b-3978-4047-956e-a5c7de8371a0,c1a1f12b-3978-4047-956e-a5c7de8371a0,1,0,ac39b903-0c60-417e-a50f-49ed375424f5,ac39b903-0c60-417e-a50f-49ed375424f5,1,0,135d57fe-d420-4bb0-9120-e43fd9b55c16,135d57fe-d420-4bb0-9120-e43fd9b55c16,1,0,9893e2d6-f3f8-4d73-bb06-19bf26d216ab,9893e2d6-f3f8-4d73-bb06-19bf26d216ab,1,0,8cf925d9-6811-4bce-b116-09d6a26ff3cb,8cf925d9-6811-4bce-b116-09d6a26ff3cb,1,0,387d3bbf-cddd-4506-b14f-89c1f37adbbc,387d3bbf-cddd-4506-b14f-89c1f37adbbc,1,0,16392cf6-dd83-4df0-a54b-6efc29778a89,16392cf6-dd83-4df0-a54b-6efc29778a89,1,0,e693cdd0-8ead-4ba5-adec-86bab74ee7cd,e693cdd0-8ead-4ba5-adec-86bab74ee7cd,1,0,36999e1b-865e-41ad-b9d6-1b3ac887acfb,36999e1b-865e-41ad-b9d6-1b3ac887acfb,1,0,10db9f99-c7d1-4b16-9ea2-9bfc2aa4ddb5,10db9f99-c7d1-4b16-9ea2-9bfc2aa4ddb5,1,0,230722e6-942f-4594-be89-eff59c6572bf,230722e6-942f-4594-be89-eff59c6572bf,1,0,237dab99-ed72-432c-ad01-c6045d74f000,237dab99-ed72-432c-ad01-c6045d74f000,1,0,a1130128-cc48-4555-93a2-99e7f74f77dc,a1130128-cc48-4555-93a2-99e7f74f77dc,1,0,af52cd7d-374a-4c46-a74c-305e154dc6f2,af52cd7d-374a-4c46-a74c-305e154dc6f2,1,0,9b4b7424-1af7-4d80-8404-8819fcfeae75,9b4b7424-1af7-4d80-8404-8819fcfeae75,1,0,94e08dcf-3885-4a73-82ab-cb291f1cf95f,94e08dcf-3885-4a73-82ab-cb291f1cf95f,1,0,8947286f-ba4a-44e7-b805-2f096028dc4f,8947286f-ba4a-44e7-b805-2f096028dc4f,1,0,55ce840b-5838-4107-886d-f935b9907bd8,55ce840b-5838-4107-886d-f935b9907bd8,1,0,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,1,0,f1753bda-16db-4b00-a16a-37ddade8403f,f1753bda-16db-4b00-a16a-37ddade8403f,1,0,2a985b50-a4b1-4932-8af6-51eee8e78ac8,2a985b50-a4b1-4932-8af6-51eee8e78ac8,1,0,e353db15-71c5-4b68-9ffb-9800800a59dc,e353db15-71c5-4b68-9ffb-9800800a59dc,1,0,976d9ba7-d9c7-4a9e-ad5d-53cb5bca8984,976d9ba7-d9c7-4a9e-ad5d-53cb5bca8984,1,0,fe9eca7c-6e3d-4c3f-b98d-abd8ab05d35e,fe9eca7c-6e3d-4c3f-b98d-abd8ab05d35e,1,0,a1875d63-4303-46f1-bdea-fc529b5891f3,a1875d63-4303-46f1-bdea-fc529b5891f3,1,0,e05b6f44-8244-4e94-a6d3-57450f8b47dc,e05b6f44-8244-4e94-a6d3-57450f8b47dc,1,0,59123b12-6052-4480-9c86-f4de1b5cdc04,59123b12-6052-4480-9c86-f4de1b5cdc04,1,0,19b98b60-deb1-4642-8159-2a11332558e2,19b98b60-deb1-4642-8159-2a11332558e2,1,0,133f181a-fade-4182-826d-904fac780326,133f181a-fade-4182-826d-904fac780326,1,0,a687748a-0b2a-4277-b935-07616d28430d,a687748a-0b2a-4277-b935-07616d28430d,1,0,f60cb71a-f451-426a-aa3a-aa266b8da149,f60cb71a-f451-426a-aa3a-aa266b8da149,1,0,641ebe22-7135-4adb-bbd6-e0c37d246a2d,641ebe22-7135-4adb-bbd6-e0c37d246a2d,1,0,f71ba01e-9f6b-4241-8048-4368c8888756,f71ba01e-9f6b-4241-8048-4368c8888756,1,0,9059defa-047f-4dac-9749-3d0a6a77308a,9059defa-047f-4dac-9749-3d0a6a77308a,1,0,6010c27f-e857-4fc3-be13-1eea51f02ea7,6010c27f-e857-4fc3-be13-1eea51f02ea7,1,0,973609a2-5b5d-45c4-9606-a13d0de1a09b,973609a2-5b5d-45c4-9606-a13d0de1a09b,1,0,6aa814fa-417e-428c-951e-6efd9d0775da,6aa814fa-417e-428c-951e-6efd9d0775da,1,0,a247efe1-8608-4780-9cc8-54e29944475b,a247efe1-8608-4780-9cc8-54e29944475b,1,0,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,1,0,a8f162e9-3f59-41a5-b82f-da20928213c7,a8f162e9-3f59-41a5-b82f-da20928213c7,1,0,7ad16fb4-17eb-4812-8015-9447d92e08ce,7ad16fb4-17eb-4812-8015-9447d92e08ce,1,0,ade68dfd-5037-4fd7-b043-9514e3fe6342,ade68dfd-5037-4fd7-b043-9514e3fe6342,1,0,7b008aad-9d05-43e1-8295-62ae58cfff42,7b008aad-9d05-43e1-8295-62ae58cfff42,1,0,fdaf9255-d621-4a98-9530-f618ed440795,fdaf9255-d621-4a98-9530-f618ed440795,1,0,48cefa96-46c7-4870-a096-951dcbae479a,48cefa96-46c7-4870-a096-951dcbae479a,1,0,d74e01cc-941b-4974-8771-0bd2e0d86724,d74e01cc-941b-4974-8771-0bd2e0d86724,1,0,0daac965-2026-4acc-8ba1-3c1f01779257,0daac965-2026-4acc-8ba1-3c1f01779257,1,0,65a331c0-7501-49f6-8027-35b703d11834,65a331c0-7501-49f6-8027-35b703d11834,1,0,5e4ee280-3dd2-4f68-be6c-fb5343438817,5e4ee280-3dd2-4f68-be6c-fb5343438817,1,0,75d1b6df-ede3-4172-987f-fe1551f686ee,75d1b6df-ede3-4172-987f-fe1551f686ee,1,0,c67fab0a-704f-43ae-bd03-4b5b1a880b24,c67fab0a-704f-43ae-bd03-4b5b1a880b24,1,0,c1703a14-61a0-4461-8ad8-7173e2c431fe,c1703a14-61a0-4461-8ad8-7173e2c431fe,1,0,aecf5653-3005-43f2-ab49-40977e70f02b,aecf5653-3005-43f2-ab49-40977e70f02b,1,0,8bd56034-6d56-4c2f-8e7f-4c0fff49ac39,8bd56034-6d56-4c2f-8e7f-4c0fff49ac39,1,0,845530cd-36fb-44c3-b30a-730985c9ca2d,845530cd-36fb-44c3-b30a-730985c9ca2d,1,0,475f8577-a141-496b-94e1-53215c0dd017,475f8577-a141-496b-94e1-53215c0dd017,1,0,97638762-c01e-4c8f-88e2-b356e517e18f,97638762-c01e-4c8f-88e2-b356e517e18f,1,0,074e34f2-e9be-4bd3-beca-8b916772e2be,074e34f2-e9be-4bd3-beca-8b916772e2be,1,0,28fecf1b-7cab-4087-b66e-2052edb8ce3a,28fecf1b-7cab-4087-b66e-2052edb8ce3a,1,0,6527be82-a665-4f8a-818b-a35b96b3484b,6527be82-a665-4f8a-818b-a35b96b3484b,1,0,d85b00b7-b0d8-4b91-8d7f-0c2da524d446,d85b00b7-b0d8-4b91-8d7f-0c2da524d446,1,0,cc906f05-5ea6-43cb-a084-c4ee51ca4bd5,cc906f05-5ea6-43cb-a084-c4ee51ca4bd5,1,0,83e30f0b-67b2-411b-9624-ac4c4bd7f94a,83e30f0b-67b2-411b-9624-ac4c4bd7f94a,1,0,c79ba5a5-e6d9-4a3f-ab23-eca876607f7f,c79ba5a5-e6d9-4a3f-ab23-eca876607f7f,1,0,ce5549bd-ba99-4259-86a3-36521bad59f5,ce5549bd-ba99-4259-86a3-36521bad59f5,1,0,f5417147-4d2a-4e49-911b-2bb5eccb8441,f5417147-4d2a-4e49-911b-2bb5eccb8441,1,0,20fbed2b-4393-4de0-a71d-017a336bdac0,20fbed2b-4393-4de0-a71d-017a336bdac0,1,0,2ca4fc58-798b-4fc3-8673-27688ce7a1f2,2ca4fc58-798b-4fc3-8673-27688ce7a1f2,1,0,fbbb2449-9a07-4229-8ea5-bee0afab5f56,fbbb2449-9a07-4229-8ea5-bee0afab5f56,1,0,9fdddb51-0605-4f64-8d2e-aa7dbcd37262,9fdddb51-0605-4f64-8d2e-aa7dbcd37262,1,0,3f3f1b41-57a9-4a82-bdfa-89a6653479ab,3f3f1b41-57a9-4a82-bdfa-89a6653479ab,1,0,fd12fbe2-56a2-4c9e-a072-989d826a5ea3,fd12fbe2-56a2-4c9e-a072-989d826a5ea3,1,0,f38b6034-5246-42a7-8f3c-51eaf3e5399c,f38b6034-5246-42a7-8f3c-51eaf3e5399c,1,0,08552af7-3c44-42c6-94c5-63a2316127fc,08552af7-3c44-42c6-94c5-63a2316127fc,1,0,41f6f6d1-b7cf-4477-907b-ce69fc08c799,41f6f6d1-b7cf-4477-907b-ce69fc08c799,1,0,9f1a61dd-b04f-48ae-b0c0-17cf23bdb04b,9f1a61dd-b04f-48ae-b0c0-17cf23bdb04b,1,0,0d124daf-dc52-4391-a2d9-3c43a45c422c,0d124daf-dc52-4391-a2d9-3c43a45c422c,1,0,a300ecc3-8031-4a50-a17d-b08cf3a72139,a300ecc3-8031-4a50-a17d-b08cf3a72139,1,0,e7e78b7e-b103-40d6-8064-f84e2d86ca3d,e7e78b7e-b103-40d6-8064-f84e2d86ca3d,1,0,dc14a27a-2299-4bd5-8c0e-5f84adae507a,dc14a27a-2299-4bd5-8c0e-5f84adae507a,1,0,bf20e6ce-bbe6-4523-9381-f9cb6cad348c,bf20e6ce-bbe6-4523-9381-f9cb6cad348c,1,0,9c443dd3-4acb-4c5a-9c4b-af8b0c87e861,9c443dd3-4acb-4c5a-9c4b-af8b0c87e861,1,0,98153b59-8cc6-4dc7-b945-99c1146d07da,98153b59-8cc6-4dc7-b945-99c1146d07da,1,0,52f3e20c-1cf7-4284-a083-6539782f4bc3,52f3e20c-1cf7-4284-a083-6539782f4bc3,1,0,657b8663-713c-4a80-81e1-8c0166742a35,657b8663-713c-4a80-81e1-8c0166742a35,1,0,8d8ac8f0-37e1-4637-87c7-5af82d05202b,8d8ac8f0-37e1-4637-87c7-5af82d05202b,1,0,8dad7f71-63cb-449a-bafd-79bd63f10310,8dad7f71-63cb-449a-bafd-79bd63f10310,1,0,866438d1-1223-4768-9c96-e6cb12f1a4d5,866438d1-1223-4768-9c96-e6cb12f1a4d5,1,0,d416cc2a-425f-4c01-a550-5a755ed78cc8,d416cc2a-425f-4c01-a550-5a755ed78cc8,1,0,df9db8d5-c5c2-4a9d-88fe-77247b2c417e,df9db8d5-c5c2-4a9d-88fe-77247b2c417e,1,0,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,1,0,a890be6b-f050-4ea4-a388-570948ffd22b,a890be6b-f050-4ea4-a388-570948ffd22b,1,0,9039f720-5728-4918-87d5-8b2d07cabcfd,9039f720-5728-4918-87d5-8b2d07cabcfd,1,0,b00c31d6-4fc6-4189-9f72-f91742ec705f,b00c31d6-4fc6-4189-9f72-f91742ec705f,1,0,1333101b-82e8-41a9-a793-5af5dcd6f68a,1333101b-82e8-41a9-a793-5af5dcd6f68a,1,0,ae039438-89af-4217-910d-476115f51ab2,ae039438-89af-4217-910d-476115f51ab2,1,0,aaaa7d41-3399-41b5-b882-58af38121494,aaaa7d41-3399-41b5-b882-58af38121494,1,0,0f25646a-90f9-4747-a778-7efdaabc284c,0f25646a-90f9-4747-a778-7efdaabc284c,1,0,3705a086-46e6-4090-a52a-535908eea8a5,3705a086-46e6-4090-a52a-535908eea8a5,1,0,9b9cd161-5bee-4433-a0ec-b67deb099b5e,9b9cd161-5bee-4433-a0ec-b67deb099b5e,1,0,ca179cb5-65e1-4a55-bf12-096b926accb0,ca179cb5-65e1-4a55-bf12-096b926accb0,1,0,a6587758-f7af-4f85-81b4-4312c725824e,a6587758-f7af-4f85-81b4-4312c725824e,1,0,5d336d1e-24f9-404a-9671-3bcdc7c48a25,5d336d1e-24f9-404a-9671-3bcdc7c48a25,1,0,d508b3e9-4dac-40a3-9a0b-1cc76b4196ea,d508b3e9-4dac-40a3-9a0b-1cc76b4196ea,1,0,63470706-f14b-4733-87c2-d1173f5d7e7a,63470706-f14b-4733-87c2-d1173f5d7e7a,1,0,472ce1c2-9e83-418b-b1ec-e15e126bc919,472ce1c2-9e83-418b-b1ec-e15e126bc919,1,0,9fe30414-8261-4403-a854-f22b61824f69,9fe30414-8261-4403-a854-f22b61824f69,1,0,07bb26ac-bd97-465f-a192-db7fedbb579b,07bb26ac-bd97-465f-a192-db7fedbb579b,1,0,76cdcc51-0e6a-4f9c-a115-1864998c2add,76cdcc51-0e6a-4f9c-a115-1864998c2add,1,0,71c3e5d3-7504-433f-9d48-7c287b2b863b,71c3e5d3-7504-433f-9d48-7c287b2b863b,1,0,0894db61-51f6-4068-9634-e55d95e2a8ac,0894db61-51f6-4068-9634-e55d95e2a8ac,1,0,0d8c215d-1210-47a2-897d-a3257b9f849a,0d8c215d-1210-47a2-897d-a3257b9f849a,1,0,ea2e9a4e-eca1-4a6e-b7a6-8922a11334aa,ea2e9a4e-eca1-4a6e-b7a6-8922a11334aa,1,0,c971e0ba-53b8-4454-92f7-40b0d639058a,c971e0ba-53b8-4454-92f7-40b0d639058a,1,0,9d8496ea-fc0c-410d-994d-7480350d71d3,9d8496ea-fc0c-410d-994d-7480350d71d3,1,0,0f0456a8-ca04-4de4-9d9b-e8b0fdb8b860,0f0456a8-ca04-4de4-9d9b-e8b0fdb8b860,1,0,ed297409-6215-4fd4-b47d-a2247e0343da,ed297409-6215-4fd4-b47d-a2247e0343da,1,0,5b62e0d1-8dba-47db-8dbb-517ad935fa0d,5b62e0d1-8dba-47db-8dbb-517ad935fa0d,1,0,f1560584-99a3-48ac-b736-e7d33affe474,f1560584-99a3-48ac-b736-e7d33affe474,1,0,e7a63151-fc1a-4563-8768-26d854ab012b,e7a63151-fc1a-4563-8768-26d854ab012b,1,0,e7d0cc1f-f3ee-486e-b1f3-db8e6a6162cc,e7d0cc1f-f3ee-486e-b1f3-db8e6a6162cc,1,0,c54f31ce-114b-46d3-b4c6-12c8f07727ca,c54f31ce-114b-46d3-b4c6-12c8f07727ca,1,0,73c7750f-8291-4e19-8551-635cd6b94215,73c7750f-8291-4e19-8551-635cd6b94215,1,0,5a9c82c1-d0cd-48ff-b91c-38b950591e4c,5a9c82c1-d0cd-48ff-b91c-38b950591e4c,1,0,a1463001-f3d8-4064-95e4-cf49aedc2a8c,a1463001-f3d8-4064-95e4-cf49aedc2a8c,1,0,59855d19-29cd-4efd-a453-b19e574113ef,59855d19-29cd-4efd-a453-b19e574113ef,1,0,249b6436-bd44-4950-b118-7f40f7aaf794,249b6436-bd44-4950-b118-7f40f7aaf794,1,0,6a9f1485-21a4-41e8-b8a7-26340eff5085,6a9f1485-21a4-41e8-b8a7-26340eff5085,1,0,630845af-a7dc-4d1e-8c1a-44fa65aab036,630845af-a7dc-4d1e-8c1a-44fa65aab036,1,0,65dd4904-0837-4de5-a5e5-601151055d94,65dd4904-0837-4de5-a5e5-601151055d94,1,0,d20739a3-a149-4b64-b9ca-4a76aca06cb8,d20739a3-a149-4b64-b9ca-4a76aca06cb8,1,0,99c5e87a-f096-4315-8fbe-f596ea9c176f,99c5e87a-f096-4315-8fbe-f596ea9c176f,1,0,9dd57f32-90a1-4a1d-bc2a-c1b12461d963,9dd57f32-90a1-4a1d-bc2a-c1b12461d963,1,0,ce6d1259-af90-482b-b19a-405512321bd9,ce6d1259-af90-482b-b19a-405512321bd9,1,0,9b76ded4-814a-4267-99c5-2c8fb05ee352,9b76ded4-814a-4267-99c5-2c8fb05ee352,1,0,df48bfa3-5502-4a61-a79f-1dea043dac36,df48bfa3-5502-4a61-a79f-1dea043dac36,1,0,adee37e6-f087-422f-91b3-681f3d73189c,adee37e6-f087-422f-91b3-681f3d73189c,1,0,eb276904-cad7-4401-bb78-2d13946291f1,eb276904-cad7-4401-bb78-2d13946291f1,1,0,171a64b6-39d2-455f-b304-1c6ea8d85494,171a64b6-39d2-455f-b304-1c6ea8d85494,1,0,79ff04ac-4625-469b-916e-938f04de4dd2,79ff04ac-4625-469b-916e-938f04de4dd2,1,0,c5e9f987-4466-4161-8e36-278b0b3ce056,c5e9f987-4466-4161-8e36-278b0b3ce056,1,0,db445527-7bd2-448b-bf87-5ac0c10d742d,db445527-7bd2-448b-bf87-5ac0c10d742d,1,0,b6566d54-e821-4a2a-a447-0f533f35de91,b6566d54-e821-4a2a-a447-0f533f35de91,1,0,46568b9a-a765-4037-8a86-b184a570ab37,46568b9a-a765-4037-8a86-b184a570ab37,1,0,4fcc7278-2fec-49ee-b0ef-c7d5f5f698a4,4fcc7278-2fec-49ee-b0ef-c7d5f5f698a4,1,0,547a6dec-6fe8-439d-a8d9-ac2612af20d2,547a6dec-6fe8-439d-a8d9-ac2612af20d2,1,0,2bc2c4b7-dacb-4cb3-b5b2-712b19bebcd7,2bc2c4b7-dacb-4cb3-b5b2-712b19bebcd7,1,0,1e633034-6dcc-4564-9f40-348c32143314,1e633034-6dcc-4564-9f40-348c32143314,1,0,a43fbfd8-6324-4192-a1a6-5628a7edb4d2,a43fbfd8-6324-4192-a1a6-5628a7edb4d2,1,0,84395058-d46a-428c-b782-a9fa89fea14a,84395058-d46a-428c-b782-a9fa89fea14a,1,0,c3c1a825-6b35-4b09-8043-63f75b575707,c3c1a825-6b35-4b09-8043-63f75b575707,1,0,5465466d-48be-493a-aadc-e97046b010cc,5465466d-48be-493a-aadc-e97046b010cc,1,0,fa61df43-49e7-4d5f-a0b9-f35af199f9f5,fa61df43-49e7-4d5f-a0b9-f35af199f9f5,1,0,0b92cced-d818-400c-82b6-7726e912a478,0b92cced-d818-400c-82b6-7726e912a478,1,0,5feb9b74-3d94-4202-a96a-170968f54194,5feb9b74-3d94-4202-a96a-170968f54194,1,0,cc9679a5-1ed2-4290-8c9b-8a2f6614d053,cc9679a5-1ed2-4290-8c9b-8a2f6614d053,1,0,d8621f68-106e-4058-963f-56010491ae2e,d8621f68-106e-4058-963f-56010491ae2e,1,0,4766c40e-6330-4c1d-a64f-0c8c672886a4,4766c40e-6330-4c1d-a64f-0c8c672886a4,1,0,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,1,0,1f3057c2-135f-44b2-9f86-34481fbc5596,1f3057c2-135f-44b2-9f86-34481fbc5596,1,0,f8f0d92c-b7f0-496c-8d33-f8a57dfa16f2,f8f0d92c-b7f0-496c-8d33-f8a57dfa16f2,1,0,f2e2df50-52fc-4e95-909b-80fc91a68f62,f2e2df50-52fc-4e95-909b-80fc91a68f62,1,0,1a1d8dd0-1559-426c-ad3c-baa6eb3a53db,1a1d8dd0-1559-426c-ad3c-baa6eb3a53db,1,0,7a944c45-9b3d-411f-b2ef-de3c896092bb,7a944c45-9b3d-411f-b2ef-de3c896092bb,1,0,d2762764-b5c0-4aeb-8e89-3371972f22d8,d2762764-b5c0-4aeb-8e89-3371972f22d8,1,0,54f3902b-f29a-4f04-8c9d-68c318fcd076,54f3902b-f29a-4f04-8c9d-68c318fcd076,1,0,573f1753-9194-4aaf-9217-5cac70ff108f,573f1753-9194-4aaf-9217-5cac70ff108f,1,0,323997ca-488d-4d84-aa44-da60b6b4d414,323997ca-488d-4d84-aa44-da60b6b4d414,1,0,50d3e00e-1a83-4bd5-91db-0561560caf42,50d3e00e-1a83-4bd5-91db-0561560caf42,1,0,1f7ec25a-05b1-468b-8857-2bb1aed3678a,1f7ec25a-05b1-468b-8857-2bb1aed3678a,1,0,c8ba4901-7f70-4353-b039-d75f1cb3f5b7,c8ba4901-7f70-4353-b039-d75f1cb3f5b7,1,0,c121b8bc-ecbf-4775-b210-3c1e3502a6ac,c121b8bc-ecbf-4775-b210-3c1e3502a6ac,1,0,9f4d5fe5-9bda-4ba9-a313-db1ab0ea14d1,9f4d5fe5-9bda-4ba9-a313-db1ab0ea14d1,1,0,44afff59-0590-4929-93b8-7b49735f21b5,44afff59-0590-4929-93b8-7b49735f21b5,1,0,905624ea-b253-413f-b651-1eb2c5a7d52a,905624ea-b253-413f-b651-1eb2c5a7d52a,1,0,b639ed30-3e37-4c65-a39f-00fe735950eb,b639ed30-3e37-4c65-a39f-00fe735950eb,1,0,76ef7f67-0ce8-4ee2-9134-e793c41b8de3,76ef7f67-0ce8-4ee2-9134-e793c41b8de3,1,0,f137eb0f-bde7-412d-9229-d7a4f9456e6c,f137eb0f-bde7-412d-9229-d7a4f9456e6c,1,0,90880131-8065-4a7e-a0fa-ecff9e27363c,90880131-8065-4a7e-a0fa-ecff9e27363c,1,0,57e9fcea-342c-4089-bd10-befb3faf0dbd,57e9fcea-342c-4089-bd10-befb3faf0dbd,1,0,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,1,0,51a0444d-13c8-45a8-97f6-f3f976964bf8,51a0444d-13c8-45a8-97f6-f3f976964bf8,1,0,9892f922-8745-4164-a200-94b5edc1ea0a,9892f922-8745-4164-a200-94b5edc1ea0a,1,0,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,1,0,6b6d541b-5dc1-4150-b8d1-5844a694ac6a,6b6d541b-5dc1-4150-b8d1-5844a694ac6a,1,0,2b1619a6-c841-4963-8c51-c1d8d6ba3746,2b1619a6-c841-4963-8c51-c1d8d6ba3746,1,0,eab50f82-4612-47fd-a5c2-9678016a1937,eab50f82-4612-47fd-a5c2-9678016a1937,1,0,2609ba3c-e4de-45b3-86e0-93db39a21eee,2609ba3c-e4de-45b3-86e0-93db39a21eee,1,0,00dcfeab-7ba1-4a50-996e-4fd693dd0514,00dcfeab-7ba1-4a50-996e-4fd693dd0514,1,0,d21971c9-9aa6-448a-ab37-49ad0b0547ec,d21971c9-9aa6-448a-ab37-49ad0b0547ec,1,0,627438b8-c738-4e02-a0e7-cfd7fbf8eca1,627438b8-c738-4e02-a0e7-cfd7fbf8eca1,1,0,3e4361e9-2baf-407b-9320-b2a265b44e46,3e4361e9-2baf-407b-9320-b2a265b44e46,1,0,a5902ed4-a8f1-460e-aced-0094b2c384a3,a5902ed4-a8f1-460e-aced-0094b2c384a3,1,0,85b591b4-a93d-4fcb-bdc7-e6d44436e511,85b591b4-a93d-4fcb-bdc7-e6d44436e511,1,0,00418e6c-77b2-4753-b9ff-3a8013436f8a,00418e6c-77b2-4753-b9ff-3a8013436f8a,1,0,e2c76c41-4c47-4588-a081-7bd81ac1698b,e2c76c41-4c47-4588-a081-7bd81ac1698b,1,0,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,1,0,26986f8d-d56d-4641-9184-2632d0881cca,26986f8d-d56d-4641-9184-2632d0881cca,1,0,92bec607-7217-42f6-8eb9-ace759672336,92bec607-7217-42f6-8eb9-ace759672336,1,0,144676de-f369-49f1-bb21-d60e073936df,144676de-f369-49f1-bb21-d60e073936df,1,0,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,1,0,38bf6d3b-5435-4bac-b9fc-23b80afeb760,38bf6d3b-5435-4bac-b9fc-23b80afeb760,1,0,644cf757-bff9-4e2e-b72b-1e736c42d4c3,644cf757-bff9-4e2e-b72b-1e736c42d4c3,1,0,a3c9a7eb-2104-4402-954c-3e12de4a7de3,a3c9a7eb-2104-4402-954c-3e12de4a7de3,1,0,a2a51b70-9570-4f53-9d30-e9a9b099a475,a2a51b70-9570-4f53-9d30-e9a9b099a475,1,0,556a0e57-5b3b-4303-a013-0bd296c506b8,556a0e57-5b3b-4303-a013-0bd296c506b8,1,0,fabbac92-cb98-4087-b3fa-387482ed0d86,fabbac92-cb98-4087-b3fa-387482ed0d86,1,0,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,1,0,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,1,0,fdcbe67c-55fb-444d-bed8-cee956ca3530,fdcbe67c-55fb-444d-bed8-cee956ca3530,1,0,e09534e3-ac6e-42a6-86e8-564acb20089a,e09534e3-ac6e-42a6-86e8-564acb20089a,1,0,5e380276-2a08-435c-927e-a7f56f5a4dbc,5e380276-2a08-435c-927e-a7f56f5a4dbc,1,0,6ff5b3cb-efff-430d-bf0a-957405f116ca,6ff5b3cb-efff-430d-bf0a-957405f116ca,1,0,d06e845a-9f54-40dd-b0df-6988def62017,d06e845a-9f54-40dd-b0df-6988def62017,1,0,63223883-06cf-4d01-be95-5e410cc58a22,63223883-06cf-4d01-be95-5e410cc58a22,1,0,1929139f-dabb-4c40-9423-158093360889,1929139f-dabb-4c40-9423-158093360889,1,0,dad92df4-685b-4260-b35f-4d031262dfea,dad92df4-685b-4260-b35f-4d031262dfea,1,0,4399c19a-ddba-42e9-88b4-c5c28abad237,4399c19a-ddba-42e9-88b4-c5c28abad237,1,0,982315ba-df74-4a31-8929-71d1e5e6f147,982315ba-df74-4a31-8929-71d1e5e6f147,1,0,e4703f32-ad6e-4803-8776-7d32c57d3549,e4703f32-ad6e-4803-8776-7d32c57d3549,1,0,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,1,0,b8b267e3-75af-4140-b515-d99e8e748e84,b8b267e3-75af-4140-b515-d99e8e748e84,1,0,ff976027-75e8-475c-abfa-876d36733c13,ff976027-75e8-475c-abfa-876d36733c13,1,0,7452d9c0-cb03-4d1b-afd4-8855950f2ad8,7452d9c0-cb03-4d1b-afd4-8855950f2ad8,1,0,32d4a42d-6e4d-49db-b5bc-1ea6dbe9fe4d,32d4a42d-6e4d-49db-b5bc-1ea6dbe9fe4d,1,0,40c8b547-35d0-4dbd-8fa1-ba108c3022b1,40c8b547-35d0-4dbd-8fa1-ba108c3022b1,1,0,3f823f5b-e5a8-40af-8fc3-e4c6ffb18fa3,3f823f5b-e5a8-40af-8fc3-e4c6ffb18fa3,1,0,c0218ef0-4aa1-4ff1-963b-e6ab1001ae9e,c0218ef0-4aa1-4ff1-963b-e6ab1001ae9e,1,0,0a1837b6-9a0a-4a86-b929-89d032d41383,0a1837b6-9a0a-4a86-b929-89d032d41383,1,0,62ff29be-7d52-4c63-8726-c55bf69a64de,62ff29be-7d52-4c63-8726-c55bf69a64de,1,0,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,1,0,123b8af3-8724-4f77-b1d6-6768832a43a7,123b8af3-8724-4f77-b1d6-6768832a43a7,1,0,cb81fb9f-16a2-4265-92a9-b827ca2fd588,cb81fb9f-16a2-4265-92a9-b827ca2fd588,1,0,cf13e2d9-72a0-47c0-bae2-f674024bbdb2,cf13e2d9-72a0-47c0-bae2-f674024bbdb2,1,0,62d4d073-80df-41e6-a915-43a4f5575206,62d4d073-80df-41e6-a915-43a4f5575206,1,0,145ecede-baae-4725-832a-5387794922ed,145ecede-baae-4725-832a-5387794922ed,1,0,540be4e1-6eae-48e2-a645-8bd0a1259c65,540be4e1-6eae-48e2-a645-8bd0a1259c65,1,0,2fa09d14-6d28-4bfb-87c3-894e66ab6bca,2fa09d14-6d28-4bfb-87c3-894e66ab6bca,1,0,f772abd3-8ea0-41e9-aaca-c5375778941a,f772abd3-8ea0-41e9-aaca-c5375778941a,1,0,a1e494f8-96a4-41bd-9234-b87e8d8742c5,a1e494f8-96a4-41bd-9234-b87e8d8742c5,1,0,5c6b9fb5-7d29-4161-a81b-7c618ca07a47,5c6b9fb5-7d29-4161-a81b-7c618ca07a47,1,0,35bc58df-8aff-48dd-83a9-b60b0461f94d,35bc58df-8aff-48dd-83a9-b60b0461f94d,1,0,b322b047-16eb-4500-826a-6dfebb7d997a,b322b047-16eb-4500-826a-6dfebb7d997a,1,0,83ead93b-4ff6-487d-934e-25088944fccc,83ead93b-4ff6-487d-934e-25088944fccc,1,0,764c76cc-0473-4633-868d-02f96aa43c10,764c76cc-0473-4633-868d-02f96aa43c10,1,0,c8da922f-e31e-49b0-b90e-1c060424bde5,c8da922f-e31e-49b0-b90e-1c060424bde5,1,0,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,1,0,eca025d2-4fe9-4542-b9f5-46ae2631256e,eca025d2-4fe9-4542-b9f5-46ae2631256e,1,0,9416a741-5106-454e-b953-81f3d99d5e71,9416a741-5106-454e-b953-81f3d99d5e71,1,0,30f6aedf-946f-400c-822d-5fa375b8fb1d,30f6aedf-946f-400c-822d-5fa375b8fb1d,1,0,46e313f7-54da-4884-89e8-cdba6ae30d30,46e313f7-54da-4884-89e8-cdba6ae30d30,1,0,feb1a5c1-c805-4079-8f05-8a44f51b0b02,feb1a5c1-c805-4079-8f05-8a44f51b0b02,1,0,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,1,0,1f55f330-7c0a-4a29-905f-51d664515bc5,1f55f330-7c0a-4a29-905f-51d664515bc5,1,0,308781d9-ea18-4c30-ba95-ef822e7ef739,308781d9-ea18-4c30-ba95-ef822e7ef739,1,0,a7f3ee04-4ffe-4a21-b2ad-92cd3f4acd8f,a7f3ee04-4ffe-4a21-b2ad-92cd3f4acd8f,1,0,6106e958-354c-4211-992c-3c3819e8828e,6106e958-354c-4211-992c-3c3819e8828e,1,0,9d6d77a9-1f55-4162-93a5-14bb3f3febaf,9d6d77a9-1f55-4162-93a5-14bb3f3febaf,1,0,61789ea5-aad2-4b3b-a1c7-3ff7409379eb,61789ea5-aad2-4b3b-a1c7-3ff7409379eb,1,0,2cd04d4c-2619-40c9-adf4-7bb281f045b6,2cd04d4c-2619-40c9-adf4-7bb281f045b6,1,0,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,1,0,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,1,0,231d3950-f363-4e63-83cd-8ddb81507c27,231d3950-f363-4e63-83cd-8ddb81507c27,1,0,87429f11-bf95-4013-bf13-da904570f88d,87429f11-bf95-4013-bf13-da904570f88d,1,0,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,1,0,feb41347-62db-41cf-ace0-d8b9de361af3,feb41347-62db-41cf-ace0-d8b9de361af3,1,0,5a088468-4065-4e0c-9b84-1162de8d3fdd,5a088468-4065-4e0c-9b84-1162de8d3fdd,1,0,dbdf3ae7-a0af-44b9-8e3d-c402d98cda03,dbdf3ae7-a0af-44b9-8e3d-c402d98cda03,1,0,f3ae1a2c-e0ca-461b-ba5a-76a6423c6325,f3ae1a2c-e0ca-461b-ba5a-76a6423c6325,1,0,b233d29c-3979-4ef6-b7f0-89ca88f65e82,b233d29c-3979-4ef6-b7f0-89ca88f65e82,1,0,684ca876-644e-43f5-b96a-1561fb5b1935,684ca876-644e-43f5-b96a-1561fb5b1935,1,0,5f91b00f-d8fc-4d63-8486-66339357ab22,5f91b00f-d8fc-4d63-8486-66339357ab22,1,0,16d44ab1-4bce-4df8-a215-6ed5173c75a8,16d44ab1-4bce-4df8-a215-6ed5173c75a8,1,0,86a9d7ab-7a96-4c58-8073-ca4b2b99cceb,86a9d7ab-7a96-4c58-8073-ca4b2b99cceb,1,0,1ae1a239-0d88-4467-af33-32bcfe6cf61d,1ae1a239-0d88-4467-af33-32bcfe6cf61d,1,0,375977c1-5745-4e78-a4df-cef966c0ccf8,375977c1-5745-4e78-a4df-cef966c0ccf8,1,0,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,1,0,c3796d85-2a24-43c4-9673-64e56249a1d0,c3796d85-2a24-43c4-9673-64e56249a1d0,1,0,fc1066b5-20d4-4c73-85f8-9889e554d6e1,fc1066b5-20d4-4c73-85f8-9889e554d6e1,1,0,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,1,0,731211c2-ef90-4883-9525-83cd91b742ac,731211c2-ef90-4883-9525-83cd91b742ac,1,0,0adf02da-940a-4bfc-afa5-59605494a169,0adf02da-940a-4bfc-afa5-59605494a169,1,0,8361991a-0f30-4a03-9a4c-90556b744f53,8361991a-0f30-4a03-9a4c-90556b744f53,1,0,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,1,0,08427a9a-fb3a-4bc1-b2e2-72e4f89680cd,08427a9a-fb3a-4bc1-b2e2-72e4f89680cd,1,0,259cb8f5-9e78-4b2f-941b-ccb4b1112c8b,259cb8f5-9e78-4b2f-941b-ccb4b1112c8b,1,0,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,1,0,73c1a829-0191-486b-97a0-7f333c6f8011,73c1a829-0191-486b-97a0-7f333c6f8011,1,0,db28f23f-a771-46c0-96e8-5e4389b28b8b,db28f23f-a771-46c0-96e8-5e4389b28b8b,1,0,5504f5d1-35d8-4a47-a0e1-003fe00395c1,5504f5d1-35d8-4a47-a0e1-003fe00395c1,1,0,56242b05-d722-4d4a-82d9-517e0e169d0b,56242b05-d722-4d4a-82d9-517e0e169d0b,1,0,f9196766-4ae2-4a73-bed6-4a8838323e02,f9196766-4ae2-4a73-bed6-4a8838323e02,1,0,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,1,0,52fd1e04-44b6-4405-a2de-ec5c0cf66b64,52fd1e04-44b6-4405-a2de-ec5c0cf66b64,1,0,9a647b38-73da-4491-997b-773059cfd1c9,9a647b38-73da-4491-997b-773059cfd1c9,1,0,50a1e3bf-8624-4474-854e-21b89aaf97ed,50a1e3bf-8624-4474-854e-21b89aaf97ed,1,0,503b3eab-b7f1-4ede-8845-3290a834cec7,503b3eab-b7f1-4ede-8845-3290a834cec7,1,0,847b97a3-d0bc-45e2-b06c-932bb22d8eca,847b97a3-d0bc-45e2-b06c-932bb22d8eca,1,0,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,1,0,3116fa60-bc42-4dea-aa03-387896168690,3116fa60-bc42-4dea-aa03-387896168690,1,0,ca797560-8802-4bdc-b21f-7a7fd795beae,ca797560-8802-4bdc-b21f-7a7fd795beae,1,0,3df19dbf-efe7-4e31-99ad-fafb59ec1329,3df19dbf-efe7-4e31-99ad-fafb59ec1329,1,0,baf12d47-fbfe-4563-aa23-26d9f7e83169,baf12d47-fbfe-4563-aa23-26d9f7e83169,1,0,e2046f49-6fea-4bf4-92b0-92f3c8357bcf,e2046f49-6fea-4bf4-92b0-92f3c8357bcf,1,0,0ba11486-1972-4434-ab1a-5bb75cc05e9f,0ba11486-1972-4434-ab1a-5bb75cc05e9f,1,0,4ed9c555-7dd0-4577-bf62-152b4c5ec9f2,4ed9c555-7dd0-4577-bf62-152b4c5ec9f2,1,0,c1c62215-41b8-40bc-a806-1347db5b03e9,c1c62215-41b8-40bc-a806-1347db5b03e9,1,0,a24322f3-c7a5-4b25-bad6-9c75712a3e58,a24322f3-c7a5-4b25-bad6-9c75712a3e58,1,0,679d2b3b-a354-4dec-b49d-ab1163756e3a,679d2b3b-a354-4dec-b49d-ab1163756e3a,1,0,665e96bc-8ec1-4008-b9bd-db95a234b9b8,665e96bc-8ec1-4008-b9bd-db95a234b9b8,1,0,a8021ff9-f0ae-49ab-b8ac-5e3d8fe90d82,a8021ff9-f0ae-49ab-b8ac-5e3d8fe90d82,1,0,f09b09ce-9e3c-406a-8508-b6e7e6ec966e,f09b09ce-9e3c-406a-8508-b6e7e6ec966e,1,0,9bf55587-1ffe-42bc-b8e8-3f956956f689,9bf55587-1ffe-42bc-b8e8-3f956956f689,1,0,2f67931e-543f-457e-80fd-78ca754e2e9c,2f67931e-543f-457e-80fd-78ca754e2e9c,1,0,595e5752-36a7-4bba-8a40-26920acae01d,595e5752-36a7-4bba-8a40-26920acae01d,1,0,28801fba-c429-4afa-bdcd-b3ec3ec22fda,28801fba-c429-4afa-bdcd-b3ec3ec22fda,1,0,d1a873ae-d45b-4600-9419-e701dce3da02,d1a873ae-d45b-4600-9419-e701dce3da02,1,0,e3a31f0d-a98f-43c6-bc39-087095ae8c39,e3a31f0d-a98f-43c6-bc39-087095ae8c39,1,0,e39d8ff3-52db-4ba4-b4ea-42d5ee787076,e39d8ff3-52db-4ba4-b4ea-42d5ee787076,1,0,b1c1c2eb-f9cd-468a-8398-b0b7f611f832,b1c1c2eb-f9cd-468a-8398-b0b7f611f832,1,0,4bb0f7c3-62f3-4352-9bc8-e243dd18fe4a,4bb0f7c3-62f3-4352-9bc8-e243dd18fe4a,1,0,bc106ef9-3eeb-40d4-aa59-ae1855ba1744,bc106ef9-3eeb-40d4-aa59-ae1855ba1744,1,0,73d8b319-9bea-4638-a602-23c12f37c227,73d8b319-9bea-4638-a602-23c12f37c227,1,0,a43e9de0-2921-4c58-a5f8-7446258be967,a43e9de0-2921-4c58-a5f8-7446258be967,1,0,307656e3-df7f-46e7-946c-bbd439265c95,307656e3-df7f-46e7-946c-bbd439265c95,1,0,eb3dfdc7-58b8-4b1f-b079-368c262364c9,eb3dfdc7-58b8-4b1f-b079-368c262364c9,1,0,5030a318-f8f7-4ec7-80d6-6eee0772562f,5030a318-f8f7-4ec7-80d6-6eee0772562f,1,0,242e911d-e49c-4b8a-8543-cc2e079220fd,242e911d-e49c-4b8a-8543-cc2e079220fd,1,0,9ea39d31-3775-4fb8-a3f3-202e54354d49,9ea39d31-3775-4fb8-a3f3-202e54354d49,1,0,73044e20-148c-46e9-b5b5-973c91de0d61,73044e20-148c-46e9-b5b5-973c91de0d61,1,0,24cff6c8-6c20-4383-b97c-6afa52738960,24cff6c8-6c20-4383-b97c-6afa52738960,1,0,462e2694-750d-49ef-93ac-17a7779be68d,462e2694-750d-49ef-93ac-17a7779be68d,1,0,c24ff02e-5afc-45df-81cf-64ea2b261c2d,c24ff02e-5afc-45df-81cf-64ea2b261c2d,1,0,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,1,0,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,1,0,85639a53-b367-49ce-84f2-4e21d81c489b,85639a53-b367-49ce-84f2-4e21d81c489b,1,0,24b59586-178e-4efc-90ae-529553f3bb6c,24b59586-178e-4efc-90ae-529553f3bb6c,1,0,20e75dd5-222a-4100-aa43-3684991e3f21,20e75dd5-222a-4100-aa43-3684991e3f21,1,0,3c611832-4bc2-4229-a27d-d5dc82f3a498,3c611832-4bc2-4229-a27d-d5dc82f3a498,1,0,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,1,0,5dadc422-1fbd-4918-9db3-09ec72c3404e,5dadc422-1fbd-4918-9db3-09ec72c3404e,1,0,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,1,0,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,1,0,c5478d09-c8d3-4cc6-878e-27656ecc8409,c5478d09-c8d3-4cc6-878e-27656ecc8409,1,0,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,1,0,75974146-5b1a-412c-b7d5-1575704bbdab,75974146-5b1a-412c-b7d5-1575704bbdab,1,0,949f87cb-258c-4b6b-95ee-8a7491a4b64e,949f87cb-258c-4b6b-95ee-8a7491a4b64e,1,0,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,1,0,5c089988-5381-41ed-9f05-f85db46b8d94,5c089988-5381-41ed-9f05-f85db46b8d94,1,0,85a36352-1569-4ce4-aeba-477db524c36d,85a36352-1569-4ce4-aeba-477db524c36d,1,0,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,1,0,d99991b8-3a81-4e18-b0ad-05fc3e3a199b,d99991b8-3a81-4e18-b0ad-05fc3e3a199b,1,0,dd383422-dddb-4a81-9326-015fd345b5c1,dd383422-dddb-4a81-9326-015fd345b5c1,1,0,b2e656c1-f4ff-4d95-b066-4ee11ce4dea8,b2e656c1-f4ff-4d95-b066-4ee11ce4dea8,1,0,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,1,0,aa299fc6-051f-487c-ada4-451e08c4763c,aa299fc6-051f-487c-ada4-451e08c4763c,1,0,782cb93d-36e6-4923-b2b6-75caa3459cd6,782cb93d-36e6-4923-b2b6-75caa3459cd6,1,0,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,1,0,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,1,0,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,1,0,322645d4-e3fb-467b-a55d-d8e74cff2ea3,322645d4-e3fb-467b-a55d-d8e74cff2ea3,1,0,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,1,0,8363bd46-1ea5-44f0-858a-05bc03f6020e,8363bd46-1ea5-44f0-858a-05bc03f6020e,1,0,0f039952-09d3-49c8-b909-e8333a3fc8f9,0f039952-09d3-49c8-b909-e8333a3fc8f9,1,0,d8fc4644-5351-443c-8b5d-5de2c4b855d1,d8fc4644-5351-443c-8b5d-5de2c4b855d1,1,0,64ff6058-c6f3-4682-b9a1-11ec438fa447,64ff6058-c6f3-4682-b9a1-11ec438fa447,1,0,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,1,0,a321b6db-391b-4c65-8d27-ce486d10055e,a321b6db-391b-4c65-8d27-ce486d10055e,1,0,71dfde27-3762-4dd0-9252-6e703ce1b101,71dfde27-3762-4dd0-9252-6e703ce1b101,1,0,ced01234-9417-49ce-adf0-8cdd15e6dd7d,ced01234-9417-49ce-adf0-8cdd15e6dd7d,1,0,c1272bfc-196a-4f99-935f-e2516bc138d2,c1272bfc-196a-4f99-935f-e2516bc138d2,1,0,313e0688-745a-4385-b040-7ef8317a0eb7,313e0688-745a-4385-b040-7ef8317a0eb7,1,0,7fe61c5d-30bc-440d-9e40-12ff3b296616,7fe61c5d-30bc-440d-9e40-12ff3b296616,1,0,37c37f15-f84b-456b-aab6-729562dc0908,37c37f15-f84b-456b-aab6-729562dc0908,1,0,996c7873-1cc9-44f6-915b-5c6ed7ef2370,996c7873-1cc9-44f6-915b-5c6ed7ef2370,1,0,8dc08932-0988-4e82-8a5f-385c0694f9ff,8dc08932-0988-4e82-8a5f-385c0694f9ff,1,0,13dee5d8-f165-48de-9ccb-3ef0239f4b27,13dee5d8-f165-48de-9ccb-3ef0239f4b27,1,0,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,1,0,0eea37cc-47f8-4819-85da-d4991f4e58ed,0eea37cc-47f8-4819-85da-d4991f4e58ed,1,0,45a2569e-820c-4d7d-ba74-4a781d26bb2b,45a2569e-820c-4d7d-ba74-4a781d26bb2b,1,0,8a13c899-1659-48cf-9aa2-07ca99547b7b,8a13c899-1659-48cf-9aa2-07ca99547b7b,1,0,eb3f959c-94a4-4e77-b9f9-e81954254079,eb3f959c-94a4-4e77-b9f9-e81954254079,1,0,91a0ceed-03ce-4914-9cd1-dec49bba336f,91a0ceed-03ce-4914-9cd1-dec49bba336f,1,0,99387869-f8b1-4269-bd26-e39380d17b69,99387869-f8b1-4269-bd26-e39380d17b69,1,0,4b2acdb9-fefd-4735-9dfd-d7d141967f3c,4b2acdb9-fefd-4735-9dfd-d7d141967f3c,1,0,bc07d643-a044-4882-b95b-2173a197fd0e,bc07d643-a044-4882-b95b-2173a197fd0e,1,0,826c2821-147d-4aaf-910c-acfbdb58a29f,826c2821-147d-4aaf-910c-acfbdb58a29f,1,0,aeea0075-bdeb-41b7-b9cc-1da7b500455f,aeea0075-bdeb-41b7-b9cc-1da7b500455f,1,0,11c086b0-c646-4701-983d-c38758286354,11c086b0-c646-4701-983d-c38758286354,1,0,21fad9b6-44df-417c-ba18-de4b8af98a34,21fad9b6-44df-417c-ba18-de4b8af98a34,1,0,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,1,0,7974e41d-5af3-4636-b405-c9405d89fb53,7974e41d-5af3-4636-b405-c9405d89fb53,1,0,36d6b0e1-5e10-408a-8eb1-09839e57690f,36d6b0e1-5e10-408a-8eb1-09839e57690f,1,0,6423b849-7ca4-4501-8856-445157d7e5df,6423b849-7ca4-4501-8856-445157d7e5df,1,0,0819e2b0-1eb0-41b3-ab89-0974bd926fb6,0819e2b0-1eb0-41b3-ab89-0974bd926fb6,1,0,e814287f-1c13-4f74-9507-d22a62394fd2,e814287f-1c13-4f74-9507-d22a62394fd2,1,0,417ac987-7369-45af-b670-fdffb048f33d,417ac987-7369-45af-b670-fdffb048f33d,1,0,640a5d72-dbc7-421b-afdb-cc3a4622ae04,640a5d72-dbc7-421b-afdb-cc3a4622ae04,1,0,79da84c1-5ac2-4472-8eb9-f0484b9582c2,79da84c1-5ac2-4472-8eb9-f0484b9582c2,1,0,2d0b161b-7d69-4ec4-a483-79bd458cb62c,2d0b161b-7d69-4ec4-a483-79bd458cb62c,1,0,f178bc1b-ebea-4fa9-8861-fe0d91f103e4,f178bc1b-ebea-4fa9-8861-fe0d91f103e4,1,0,e33a9c94-7e98-4b38-ba20-4546a90b2937,e33a9c94-7e98-4b38-ba20-4546a90b2937,1,0,1610e73c-58df-41cc-8349-51b920806821,1610e73c-58df-41cc-8349-51b920806821,1,0,ae37f465-1ee5-4f06-a834-deea9e9e0eb3,ae37f465-1ee5-4f06-a834-deea9e9e0eb3,1,0,c6ccf82f-f130-4037-9e89-1e0365b996a4,c6ccf82f-f130-4037-9e89-1e0365b996a4,1,0,c532963e-0d92-44b9-9cfc-43ed2744ccf9,c532963e-0d92-44b9-9cfc-43ed2744ccf9,1,0,6aff2855-24d4-4f90-b617-53326efdd1bd,6aff2855-24d4-4f90-b617-53326efdd1bd,1,0,0107a9c7-4c85-49c4-918a-925d85d57a0b,0107a9c7-4c85-49c4-918a-925d85d57a0b,1,0,6e1efa55-969b-4c2b-8af2-b11d672db5f0,6e1efa55-969b-4c2b-8af2-b11d672db5f0,1,0,e5b578a1-e33b-4d49-8064-427aa928a844,e5b578a1-e33b-4d49-8064-427aa928a844,1,0,f74e97ad-fef6-4122-a056-86f2d59dfdaf,f74e97ad-fef6-4122-a056-86f2d59dfdaf,1,0,df1ef691-1e86-4a80-8671-53b3d4504bfb,df1ef691-1e86-4a80-8671-53b3d4504bfb,1,0,474b9918-23da-4289-91a9-9115526c9b5d,474b9918-23da-4289-91a9-9115526c9b5d,1,0,1cf7be60-fd84-430d-b1b5-5619c51b8b3f,1cf7be60-fd84-430d-b1b5-5619c51b8b3f,1,0,60aa9d44-5986-490e-8093-f65e194b3607,60aa9d44-5986-490e-8093-f65e194b3607,1,0,a36dee5e-7184-4caf-bf46-3977b165093b,a36dee5e-7184-4caf-bf46-3977b165093b,1,0,aa3c61a7-c905-4b5a-a44d-e2ac5d79158a,aa3c61a7-c905-4b5a-a44d-e2ac5d79158a,1,0,182916b2-972b-4e39-93ba-d45aa7a195f5,182916b2-972b-4e39-93ba-d45aa7a195f5,1,0,2b654a53-7ce8-421f-aaf5-aa1451d91415,2b654a53-7ce8-421f-aaf5-aa1451d91415,1,0,30e55306-ea5c-4ef4-9903-ea030afa3d85,30e55306-ea5c-4ef4-9903-ea030afa3d85,1,0,234c1a72-8349-472a-8373-2a25ce6252f2,234c1a72-8349-472a-8373-2a25ce6252f2,1,0,b1ccb9f7-11ff-4ad2-8806-d64de84662f0,b1ccb9f7-11ff-4ad2-8806-d64de84662f0,1,0,539e0db9-be24-4086-9632-af20553ee50f,539e0db9-be24-4086-9632-af20553ee50f,1,0,862e2759-5311-4c68-8977-86133bcf8c0e,862e2759-5311-4c68-8977-86133bcf8c0e,1,0,b9adeb51-a009-4e83-85f8-bfa1547429d6,b9adeb51-a009-4e83-85f8-bfa1547429d6,1,0,7ac85789-9c69-40b6-9130-94c40ed440d4,7ac85789-9c69-40b6-9130-94c40ed440d4,1,0,0f77d06f-f736-451e-9e6b-28868e48f3ed,0f77d06f-f736-451e-9e6b-28868e48f3ed,1,0,ac9f4c2e-316b-4f96-8fe6-fb5a5a7e48ed,ac9f4c2e-316b-4f96-8fe6-fb5a5a7e48ed,1,0,da808c0e-b1b0-4d46-8c63-2bbe7d0dca9d,da808c0e-b1b0-4d46-8c63-2bbe7d0dca9d,1,0,b848d70a-9d08-4b1a-8df1-17697432516d,b848d70a-9d08-4b1a-8df1-17697432516d,1,0,9a30b92d-0c5b-4e11-a741-2b6efa8ac229,9a30b92d-0c5b-4e11-a741-2b6efa8ac229,1,0,92876c9e-52ff-480d-9878-5766f4f9d12c,92876c9e-52ff-480d-9878-5766f4f9d12c,1,0,b729d739-5249-4765-85ee-fd792bb22911,b729d739-5249-4765-85ee-fd792bb22911,1,0,d65c4485-7bac-4206-9a6c-7156f4bb876d,d65c4485-7bac-4206-9a6c-7156f4bb876d,1,0,d431d1e2-13dc-495c-9de1-b5ec872eceed,d431d1e2-13dc-495c-9de1-b5ec872eceed,1,0,e8bec681-d269-41ba-9184-556cbcc27d74,e8bec681-d269-41ba-9184-556cbcc27d74,1,0,b8aaef91-f72c-4127-a494-771c13694ca4,b8aaef91-f72c-4127-a494-771c13694ca4,1,0,433a114f-3198-4ef6-bbf8-ce9b54fdb736,433a114f-3198-4ef6-bbf8-ce9b54fdb736,1,0,02ac711c-e38e-422e-ac28-ba1b298df9cc,02ac711c-e38e-422e-ac28-ba1b298df9cc,1,0,3e090261-4aa2-4ece-9f77-62df83c890b3,3e090261-4aa2-4ece-9f77-62df83c890b3,1,0,9292034c-24e8-49a7-9b77-7974e117847d,9292034c-24e8-49a7-9b77-7974e117847d,1,0,3327b7d4-62fc-44cc-83b4-c449bfa4e706,3327b7d4-62fc-44cc-83b4-c449bfa4e706,1,0,43ecee25-68eb-48cf-bbaa-aee71052438f,43ecee25-68eb-48cf-bbaa-aee71052438f,1,0,93799f8b-0188-4546-8815-35e733bcc2b1,93799f8b-0188-4546-8815-35e733bcc2b1,1,0,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,1,0,c9ea4e72-5f01-42ae-88e3-52e49757b26f,c9ea4e72-5f01-42ae-88e3-52e49757b26f,1,0,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,1,0,0f564dbe-6a6e-48df-9718-5cea5d608ee6,0f564dbe-6a6e-48df-9718-5cea5d608ee6,1,0,a623fef1-96eb-41ba-93fe-09162698f419,a623fef1-96eb-41ba-93fe-09162698f419,1,0,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,1,0,d8e1f92f-9efa-422d-bb21-43bd1a363cec,d8e1f92f-9efa-422d-bb21-43bd1a363cec,1,0,c1416383-bd7e-4dc4-ad88-d98ac87157fd,c1416383-bd7e-4dc4-ad88-d98ac87157fd,1,0,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,1,0,d5d9976a-4cc0-43f7-afd6-d43cebb07940,d5d9976a-4cc0-43f7-afd6-d43cebb07940,1,0,899f1526-d6bc-42ef-852e-7297a06db9e3,899f1526-d6bc-42ef-852e-7297a06db9e3,1,0,1b4feda1-e555-4b85-b236-b21153a7246f,1b4feda1-e555-4b85-b236-b21153a7246f,1,0,61d3cef4-2c42-417d-a762-a2d2f5a28924,61d3cef4-2c42-417d-a762-a2d2f5a28924,1,0,c694c132-1ddb-4273-818a-d3cca88c082a,c694c132-1ddb-4273-818a-d3cca88c082a,1,0,cd4da06e-c06b-4233-befc-1bc4c4db58e3,cd4da06e-c06b-4233-befc-1bc4c4db58e3,1,0,918a01fe-f753-4a4a-9200-55bbd6edaf5f,918a01fe-f753-4a4a-9200-55bbd6edaf5f,1,0,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,1,0,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,1,0,7ab6acda-6732-4582-8092-d43f9a98a28d,7ab6acda-6732-4582-8092-d43f9a98a28d,1,0,5ab1d405-bfc3-4440-8cdd-3a63013b064d,5ab1d405-bfc3-4440-8cdd-3a63013b064d,1,0,d6704410-6297-481e-a6cb-6d6aa566b4f8,d6704410-6297-481e-a6cb-6d6aa566b4f8,1,0,398937ca-b035-43bd-b0da-8c5153a87cb8,398937ca-b035-43bd-b0da-8c5153a87cb8,1,0,5b441321-bd1e-4c56-8f09-365b05985eed,5b441321-bd1e-4c56-8f09-365b05985eed,1,0,6bcba052-4d81-409d-b1a2-eed6be6fb024,6bcba052-4d81-409d-b1a2-eed6be6fb024,1,0,559f1e66-e8da-437a-aa27-d0e1be6619b6,559f1e66-e8da-437a-aa27-d0e1be6619b6,1,0,704d69cd-d921-4957-a004-43bd7eb4d979,704d69cd-d921-4957-a004-43bd7eb4d979,1,0,f1594682-16ac-408c-8307-a7a8db79b09f,f1594682-16ac-408c-8307-a7a8db79b09f,1,0,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,1,0,4cb814d8-cb1b-4366-b500-e820ad526b0c,4cb814d8-cb1b-4366-b500-e820ad526b0c,1,0,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,1,0,6c43df9f-ca36-415b-afec-302807820d73,6c43df9f-ca36-415b-afec-302807820d73,1,0,c7fb7551-806a-40b2-8879-14cd897b60d8,c7fb7551-806a-40b2-8879-14cd897b60d8,1,0,68337023-d573-4d04-95b6-44f73258c2a4,68337023-d573-4d04-95b6-44f73258c2a4,1,0,7cf39337-b722-486f-8e37-a62239d0ccd2,7cf39337-b722-486f-8e37-a62239d0ccd2,1,0,2571cfaf-d876-4385-a60a-1488aacf7080,2571cfaf-d876-4385-a60a-1488aacf7080,1,0,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,1,0,44398566-3189-4584-8f8a-9deb1d07ce41,44398566-3189-4584-8f8a-9deb1d07ce41,1,0,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,1,0,accfa63a-479d-4996-95bc-cdf5acdf203c,accfa63a-479d-4996-95bc-cdf5acdf203c,1,0,351998e0-8939-4dd4-a833-f4756bcc53b8,351998e0-8939-4dd4-a833-f4756bcc53b8,1,0,093332f5-3eb4-478c-ac95-59dcdc96765a,093332f5-3eb4-478c-ac95-59dcdc96765a,1,0,cd69bad8-524e-4be4-88cc-7732a88b38b8,cd69bad8-524e-4be4-88cc-7732a88b38b8,1,0,0a32248c-6994-4988-90d1-30882bc9da6b,0a32248c-6994-4988-90d1-30882bc9da6b,1,0,b57b53cb-6972-4bda-ae46-96571be1ebec,b57b53cb-6972-4bda-ae46-96571be1ebec,1,0,1a1a9636-fb72-4e4a-af96-5858442b1e61,1a1a9636-fb72-4e4a-af96-5858442b1e61,1,0,bca9cf34-9e11-4014-976a-28c4330b136e,bca9cf34-9e11-4014-976a-28c4330b136e,1,0,65fffe1a-6f36-4f50-975f-4471ad29d3ec,65fffe1a-6f36-4f50-975f-4471ad29d3ec,1,0,8fe5dad5-686a-4631-ae05-2917c33f7d83,8fe5dad5-686a-4631-ae05-2917c33f7d83,1,0,edef86c6-73bf-4e47-b62d-b2b548a732cd,edef86c6-73bf-4e47-b62d-b2b548a732cd,1,0,a1715044-d76f-4238-ba3e-989d04078d83,a1715044-d76f-4238-ba3e-989d04078d83,1,0,e72e59c0-391d-497e-9407-063e0edf573e,e72e59c0-391d-497e-9407-063e0edf573e,1,0,ae8a1e69-ee1c-4efa-8d63-0279b18617f6,ae8a1e69-ee1c-4efa-8d63-0279b18617f6,1,0,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,1,0,299c47a7-0b30-4f62-8f5c-f087ad6411fb,299c47a7-0b30-4f62-8f5c-f087ad6411fb,1,0,4d4724df-24fb-4c59-9d04-3f984906214a,4d4724df-24fb-4c59-9d04-3f984906214a,1,0,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,1,0,cb9b73ee-8531-48d9-9266-9aaa4336a612,cb9b73ee-8531-48d9-9266-9aaa4336a612,1,0,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,1,0,d042687f-0725-4611-a868-f5b4f6a3a3a8,d042687f-0725-4611-a868-f5b4f6a3a3a8,1,0,bb143340-7fff-49ef-b121-355c96613f78,bb143340-7fff-49ef-b121-355c96613f78,1,0,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,1,0,f2f69644-80dc-4b5e-a208-ed1de131e25e,f2f69644-80dc-4b5e-a208-ed1de131e25e,1,0,73060f72-6d08-47da-aac8-d4d2ed8f871c,73060f72-6d08-47da-aac8-d4d2ed8f871c,1,0,82e8ac21-c2aa-47de-89ae-ea6cc10cc862,82e8ac21-c2aa-47de-89ae-ea6cc10cc862,1,0,13b27ec3-2be9-4959-92e5-94ba7bb64f03,13b27ec3-2be9-4959-92e5-94ba7bb64f03,1,0,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,1,0,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,1,0,821225ea-1bad-49a6-a422-80d8a09baf13,821225ea-1bad-49a6-a422-80d8a09baf13,1,0,d0106f3a-8490-4277-a278-75c318ec252c,d0106f3a-8490-4277-a278-75c318ec252c,1,0,5035aa55-d557-419a-89e2-10ed0f8d109b,5035aa55-d557-419a-89e2-10ed0f8d109b,1,0,5f93d2af-64ff-41cc-8403-4a0e83160fea,5f93d2af-64ff-41cc-8403-4a0e83160fea,1,0,c12c90e4-7c40-489b-b14b-6b9442016e0f,c12c90e4-7c40-489b-b14b-6b9442016e0f,1,0,6371e288-3502-4d66-9006-b5a36107c0b7,6371e288-3502-4d66-9006-b5a36107c0b7,1,0,245814f7-028c-4c13-98eb-15412e851f81,245814f7-028c-4c13-98eb-15412e851f81,1,0,0132e564-2cd3-4930-8962-1068532f4be4,0132e564-2cd3-4930-8962-1068532f4be4,1,0,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,1,0,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,1,0,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,1,0,7021fca5-d612-43e1-927b-7f822153cf75,7021fca5-d612-43e1-927b-7f822153cf75,1,0,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,1,0,ee0a8d23-660a-492b-a813-b57394acee05,ee0a8d23-660a-492b-a813-b57394acee05,1,0,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,1,0,11c5930d-f882-46bd-9e7b-63e5344f6604,11c5930d-f882-46bd-9e7b-63e5344f6604,1,0,ade21e2e-349f-414b-8f35-6ae3b6a4064d,ade21e2e-349f-414b-8f35-6ae3b6a4064d,1,0,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,1,0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,1,0,83f51efe-e2af-459a-b59f-2c036124ac23,83f51efe-e2af-459a-b59f-2c036124ac23,1,0,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,1,0,b03829e9-ba22-4584-85f0-c36d63f48242,b03829e9-ba22-4584-85f0-c36d63f48242,1,0,084a7c95-a59b-4861-b8b3-b5710a57ac60,084a7c95-a59b-4861-b8b3-b5710a57ac60,1,0,efcea6da-6746-4e00-913a-14cab38b5d84,efcea6da-6746-4e00-913a-14cab38b5d84,1,0,aff367fb-7fca-44d0-adf9-3731f14834f6,aff367fb-7fca-44d0-adf9-3731f14834f6,1,0,a2782760-dd4c-44d2-a785-814d6f610455,a2782760-dd4c-44d2-a785-814d6f610455,1,0,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,1,0,6581ac1f-11ef-42b8-9f3b-590bb7546e63,6581ac1f-11ef-42b8-9f3b-590bb7546e63,1,0,ce952e88-35b7-4506-81ac-d7081e50a650,ce952e88-35b7-4506-81ac-d7081e50a650,1,0,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,1,0,3bf1281f-7570-4633-86b9-3e953a7e6647,3bf1281f-7570-4633-86b9-3e953a7e6647,1,0,715dc289-5b14-4ee0-8716-9c15958b9069,715dc289-5b14-4ee0-8716-9c15958b9069,1,0,92707138-5004-4378-8477-f909166d319d,92707138-5004-4378-8477-f909166d319d,1,0,43661775-43bb-4d9e-bfbb-c46e7d194ca3,43661775-43bb-4d9e-bfbb-c46e7d194ca3,1,0,532637ef-be0d-4f42-9747-a88e17eb3def,532637ef-be0d-4f42-9747-a88e17eb3def,1,0,61127152-3e24-40b4-8a23-5eb6cae568ff,61127152-3e24-40b4-8a23-5eb6cae568ff,1,0,ffd987e3-e8af-4d46-881e-1e312e74dbac,ffd987e3-e8af-4d46-881e-1e312e74dbac,1,0,ad1142ed-183d-47a3-800c-997a3770e11e,ad1142ed-183d-47a3-800c-997a3770e11e,1,0,ebef37c6-4808-4683-93be-036ce19cafd5,ebef37c6-4808-4683-93be-036ce19cafd5,1,0,66364cd4-aaa5-421d-96d6-3c283c14650d,66364cd4-aaa5-421d-96d6-3c283c14650d,1,0,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,1,0,3c54d440-e908-43d6-a5cc-bb64620c82d7,3c54d440-e908-43d6-a5cc-bb64620c82d7,1,0,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,1,0,bf1dd911-8ee1-407b-acae-10c85b74baf3,bf1dd911-8ee1-407b-acae-10c85b74baf3,1,0,e924058f-25c3-4744-a565-836b824991b7,e924058f-25c3-4744-a565-836b824991b7,1,0,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,1,0,518dcd70-4ccf-4866-a94f-7ceec7dd2801,518dcd70-4ccf-4866-a94f-7ceec7dd2801,1,0,f9950ab5-1077-4033-bbbf-53899a1bcf33,f9950ab5-1077-4033-bbbf-53899a1bcf33,1,0,8f16763b-86f0-4ad0-b786-cce7dcb3460e,8f16763b-86f0-4ad0-b786-cce7dcb3460e,1,0,0481bc65-6a32-46b9-ae87-993ba52a29a5,0481bc65-6a32-46b9-ae87-993ba52a29a5,1,0,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,1,0,dbc5f419-63b0-4cbe-90ff-c0101105e46c,dbc5f419-63b0-4cbe-90ff-c0101105e46c,1,0,c708f6e9-b7a0-4046-90f3-83527da7b872,c708f6e9-b7a0-4046-90f3-83527da7b872,1,0,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,1,0,14256e0a-a947-42a3-8e36-47bfbb052a0c,14256e0a-a947-42a3-8e36-47bfbb052a0c,1,0,1b1aa77a-d14b-4751-a7da-0b5bac4db461,1b1aa77a-d14b-4751-a7da-0b5bac4db461,1,0,c0dcdb22-6719-4597-a781-bca1370909e5,c0dcdb22-6719-4597-a781-bca1370909e5,1,0,7ebf99c3-33d2-4e4c-ac45-ca4ed0c3c100,7ebf99c3-33d2-4e4c-ac45-ca4ed0c3c100,1,0,7a34f723-cd14-4949-a40f-7ce579bf0449,7a34f723-cd14-4949-a40f-7ce579bf0449,1,0,5cdc9ac7-bba9-4ed1-845a-607976fc4679,5cdc9ac7-bba9-4ed1-845a-607976fc4679,1,0,86c22871-6d1c-44e0-8ade-ce4bdeb23321,86c22871-6d1c-44e0-8ade-ce4bdeb23321,1,0,da51de81-4d4f-46b5-a308-7b50db6c45a7,da51de81-4d4f-46b5-a308-7b50db6c45a7,1,0,c2a8c2d3-ff13-4a13-acd4-797118c4e767,c2a8c2d3-ff13-4a13-acd4-797118c4e767,1,0,bc6adf75-8666-49f3-9703-b0014dfee123,bc6adf75-8666-49f3-9703-b0014dfee123,1,0,30632f54-b779-4857-a5cc-c53fe8887ee5,30632f54-b779-4857-a5cc-c53fe8887ee5,1,0,07629bf6-5544-4de9-b1d8-851cb03766cb,07629bf6-5544-4de9-b1d8-851cb03766cb,1,0,d449a85f-2e26-4512-b98c-7be3007966ed,d449a85f-2e26-4512-b98c-7be3007966ed,1,0,581be829-b097-4f95-a0c4-7ca3f13c29fc,581be829-b097-4f95-a0c4-7ca3f13c29fc,1,0,dd978355-1fb7-44a0-ba88-4e72e9cd67a9,dd978355-1fb7-44a0-ba88-4e72e9cd67a9,1,0,087480bb-8c89-4b00-a29b-b7e29926478d,087480bb-8c89-4b00-a29b-b7e29926478d,1,0,685373b7-638a-439a-8cba-703d56e4e404,685373b7-638a-439a-8cba-703d56e4e404,1,0,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,1,0,df22b227-b2c3-4e65-9706-7582f99fe59c,df22b227-b2c3-4e65-9706-7582f99fe59c,1,0,35828c88-f1ec-42e7-b189-78748931ee4a,35828c88-f1ec-42e7-b189-78748931ee4a,1,0,8a41b8f1-93fc-44e6-bf45-0d1fa9d24f4a,8a41b8f1-93fc-44e6-bf45-0d1fa9d24f4a,1,0,1cfba08f-d5e5-4833-b494-a25d0477e9c3,1cfba08f-d5e5-4833-b494-a25d0477e9c3,1,0,ae22743b-6d21-4fbb-bb4c-fee53e2b87cb,ae22743b-6d21-4fbb-bb4c-fee53e2b87cb,1,0,921a0a14-8c06-4894-95ce-423000769364,921a0a14-8c06-4894-95ce-423000769364,1,0,3805ee39-a48a-499a-9ef8-9c2a5985404f,3805ee39-a48a-499a-9ef8-9c2a5985404f,1,0,07ccfe87-e1ab-4da7-92cb-a612e0972b0b,07ccfe87-e1ab-4da7-92cb-a612e0972b0b,1,0,08c2f92c-eb05-49e7-bfc9-4a89607b9864,08c2f92c-eb05-49e7-bfc9-4a89607b9864,1,0,6d751379-89a7-49b5-93e5-578329c63d9c,6d751379-89a7-49b5-93e5-578329c63d9c,1,0,c3f156ef-947e-4ebb-883f-4f099a116063,c3f156ef-947e-4ebb-883f-4f099a116063,1,0,5e3ab0a3-c0a6-4f41-85d3-2eede4abb555,5e3ab0a3-c0a6-4f41-85d3-2eede4abb555,1,0,a065ffc3-f50b-4a78-9b84-bfc4e5515a4b,a065ffc3-f50b-4a78-9b84-bfc4e5515a4b,1,0,4cba5a06-1484-4dd1-8e35-2d702c7d96d0,4cba5a06-1484-4dd1-8e35-2d702c7d96d0,1,0,e98e9e56-2995-430c-bd3b-f1070aec15a5,e98e9e56-2995-430c-bd3b-f1070aec15a5,1,0,d35c51b0-4cb7-4f9c-8aac-6a25a1b49adf,d35c51b0-4cb7-4f9c-8aac-6a25a1b49adf,1,0,8a7546f4-bfc9-4732-bf60-43a41e2c8753,8a7546f4-bfc9-4732-bf60-43a41e2c8753,1,0,16244165-d5a4-4012-8bb5-7f5fee1111af,16244165-d5a4-4012-8bb5-7f5fee1111af,1,0,290b72ad-004f-46ab-be5e-47557543b965,290b72ad-004f-46ab-be5e-47557543b965,1,0,e1b2ccf9-5a8f-4008-86f3-d2c7cf5581d1,e1b2ccf9-5a8f-4008-86f3-d2c7cf5581d1,1,0,fa0e0792-bffb-47ce-866f-9e8dbdab17a4,fa0e0792-bffb-47ce-866f-9e8dbdab17a4,1,0,263bcd20-9878-48d4-aac4-b371ec49d8d6,263bcd20-9878-48d4-aac4-b371ec49d8d6,1,0,da1d8660-2757-4cea-bae0-c2210b9406ae,da1d8660-2757-4cea-bae0-c2210b9406ae,1,0,d60329c6-8f48-481d-82e7-18da355cb09c,d60329c6-8f48-481d-82e7-18da355cb09c,1,0,67a04d72-afea-487a-b629-e4b7dfc1df32,67a04d72-afea-487a-b629-e4b7dfc1df32,1,0,c4b14162-b25b-4099-9ec3-7251848ef08a,c4b14162-b25b-4099-9ec3-7251848ef08a,1,0,8eb5ba97-eb38-4357-8bfc-e9618280800d,8eb5ba97-eb38-4357-8bfc-e9618280800d,1,0,b72f73d5-e274-472b-871b-16af72dab603,b72f73d5-e274-472b-871b-16af72dab603,1,0,b008d184-0b61-460d-9490-89ecc1cd58ba,b008d184-0b61-460d-9490-89ecc1cd58ba,1,0,c8340e2f-6958-4bcd-8e17-499c4adfe60b,c8340e2f-6958-4bcd-8e17-499c4adfe60b,1,0,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,1,0,03f68d82-752c-45d1-bf9a-60ecd21a2c81,03f68d82-752c-45d1-bf9a-60ecd21a2c81,1,0,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,1,0,d4fffc79-2841-49a9-a382-e9e4138984df,d4fffc79-2841-49a9-a382-e9e4138984df,1,0,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,1,0,9f41f903-d316-4189-8dc0-603ea9036c1c,9f41f903-d316-4189-8dc0-603ea9036c1c,1,0,e19e70d6-8707-4dde-ae69-7bd97035ca03,e19e70d6-8707-4dde-ae69-7bd97035ca03,1,0,425b5272-1130-457d-8a05-aee8fad681d9,425b5272-1130-457d-8a05-aee8fad681d9,1,0,8d583436-f2a6-4a33-8137-1376f5754643,8d583436-f2a6-4a33-8137-1376f5754643,1,0,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,1,0,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,1,0,8f09cbed-6f24-461f-9b35-31c64310e74a,8f09cbed-6f24-461f-9b35-31c64310e74a,1,0,2d66502d-77ab-4cc9-9ccf-5433458fae9f,2d66502d-77ab-4cc9-9ccf-5433458fae9f,1,0,cff48da7-3c46-4602-83e8-90c9ea53e107,cff48da7-3c46-4602-83e8-90c9ea53e107,1,0,7155472d-c791-402c-96e1-d25612024c88,7155472d-c791-402c-96e1-d25612024c88,1,0,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,1,0,9005911d-ea81-48b6-bf50-1a328ff4d7be,9005911d-ea81-48b6-bf50-1a328ff4d7be,1,0,7df12006-c0c0-42a6-b852-bdced72c62e3,7df12006-c0c0-42a6-b852-bdced72c62e3,1,0,9c00987d-3c55-40eb-bae8-f36e71e4ef87,9c00987d-3c55-40eb-bae8-f36e71e4ef87,1,0,29273130-5142-48c9-8399-00e5ab4b6203,29273130-5142-48c9-8399-00e5ab4b6203,1,0,9e14cd7e-1293-4008-baf8-88df6a98abf7,9e14cd7e-1293-4008-baf8-88df6a98abf7,1,0,211d226f-dac6-43d5-8720-952da4339e35,211d226f-dac6-43d5-8720-952da4339e35,1,0,df67cdcd-20ff-46d4-902b-dc4d81ee46bd,df67cdcd-20ff-46d4-902b-dc4d81ee46bd,1,0,98e3aace-52a6-4911-8205-92165adca6de,98e3aace-52a6-4911-8205-92165adca6de,1,0,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,1,0,577e5fea-b792-4c8b-b3b3-a03a14b64b04,577e5fea-b792-4c8b-b3b3-a03a14b64b04,1,0,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,1,0,b18d312b-f9c3-4f37-ac77-d499e949f154,b18d312b-f9c3-4f37-ac77-d499e949f154,1,0,ace2beea-d393-412f-8b71-b845b665e2c4,ace2beea-d393-412f-8b71-b845b665e2c4,1,0,463b8966-a5f9-4a80-82b9-1608a1622e13,463b8966-a5f9-4a80-82b9-1608a1622e13,1,0,f02e807c-6cd3-4a4f-8dad-73bd56ee98ff,f02e807c-6cd3-4a4f-8dad-73bd56ee98ff,1,0,eefd00fe-3241-498f-aeb4-d429a86ab563,eefd00fe-3241-498f-aeb4-d429a86ab563,1,0,802d3489-318f-467d-a9f4-d7c644edac60,802d3489-318f-467d-a9f4-d7c644edac60,1,0,3fd4bc77-2a1b-4750-a54a-4171c8d40027,3fd4bc77-2a1b-4750-a54a-4171c8d40027,1,0,5b27fde9-fa80-48b1-aea1-73e132b9a944,5b27fde9-fa80-48b1-aea1-73e132b9a944,1,0,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,1,0,a747ec6b-f230-49b4-a929-7ed1ba87b078,a747ec6b-f230-49b4-a929-7ed1ba87b078,1,0,796f8fb4-d9cd-40ae-936b-8a70d2eb1121,796f8fb4-d9cd-40ae-936b-8a70d2eb1121,1,0,01cb357c-af28-4855-afae-45b6df19b344,01cb357c-af28-4855-afae-45b6df19b344,1,0,26e58429-1e08-454a-b4d7-2470390149fb,26e58429-1e08-454a-b4d7-2470390149fb,1,0,daa42bf5-9c32-4913-bc27-38f77ccc1a9f,daa42bf5-9c32-4913-bc27-38f77ccc1a9f,1,0,7620b61a-b0d1-4c71-bc80-72c48e17b96d,7620b61a-b0d1-4c71-bc80-72c48e17b96d,1,0,4802e016-a9e9-47d0-916b-b42194a1f388,4802e016-a9e9-47d0-916b-b42194a1f388,1,0,a1740d1f-1b8f-4db5-be5e-0eac44e934b8,a1740d1f-1b8f-4db5-be5e-0eac44e934b8,1,0,4062674a-4a81-494d-82bc-4984cd7c7903,4062674a-4a81-494d-82bc-4984cd7c7903,1,0,782a8801-06ca-4d63-bf8b-63d2320766d8,782a8801-06ca-4d63-bf8b-63d2320766d8,1,0,93a73123-d98c-4286-9269-7bfcedd115e8,93a73123-d98c-4286-9269-7bfcedd115e8,1,0,c5985c02-1824-4ce9-b415-1621dd2ee864,c5985c02-1824-4ce9-b415-1621dd2ee864,1,0,993ce747-cdc9-445f-ad7d-daf53cd5f7e9,993ce747-cdc9-445f-ad7d-daf53cd5f7e9,1,0,e819aaf6-3dfb-492a-8a4a-50a7c6854790,e819aaf6-3dfb-492a-8a4a-50a7c6854790,1,0,62b95ba1-f213-42fb-90f3-a03e8094bc9e,62b95ba1-f213-42fb-90f3-a03e8094bc9e,1,0,619b534d-5605-40d3-9b8c-4443a21d7795,619b534d-5605-40d3-9b8c-4443a21d7795,1,0,a010bbf4-d547-4576-9797-28e3096ffed3,a010bbf4-d547-4576-9797-28e3096ffed3,1,0,a44c3eb2-1054-41ca-82e8-fc35336e7009,a44c3eb2-1054-41ca-82e8-fc35336e7009,1,0,01f67911-4ca7-4668-b970-62c299b98e56,01f67911-4ca7-4668-b970-62c299b98e56,1,0,20c89c94-f77f-4e14-8c97-2a70c1419ce3,20c89c94-f77f-4e14-8c97-2a70c1419ce3,1,0,aa509aa3-dd45-41f3-82c7-59662c2e2c47,aa509aa3-dd45-41f3-82c7-59662c2e2c47,1,0,c4552529-e69e-4c5c-bd66-04b2f7dac281,c4552529-e69e-4c5c-bd66-04b2f7dac281,1,0,381b49ba-793a-4418-9fd4-598844fb72a6,381b49ba-793a-4418-9fd4-598844fb72a6,1,0,1aee302d-df31-49ea-b542-436dc1d79ae1,1aee302d-df31-49ea-b542-436dc1d79ae1,1,0,593509da-d33c-49ff-a62c-a28cbc4651c1,593509da-d33c-49ff-a62c-a28cbc4651c1,1,0,5e346a0b-a322-4565-adb9-70131fb05fa3,5e346a0b-a322-4565-adb9-70131fb05fa3,1,0,9a69c559-194b-4f74-9879-82740260f5f6,9a69c559-194b-4f74-9879-82740260f5f6,1,0,93bf1dcf-670d-4c8b-bdbf-e43c2edf8056,93bf1dcf-670d-4c8b-bdbf-e43c2edf8056,1,0,8a06f980-78f3-42f4-9d96-da2e0f0f36a7,8a06f980-78f3-42f4-9d96-da2e0f0f36a7,1,0,fee2aa74-7a81-4ab2-a457-2edf8ac1aa2d,fee2aa74-7a81-4ab2-a457-2edf8ac1aa2d,1,0,2e19fb7b-270f-4181-b4a1-640280bbbc5c,2e19fb7b-270f-4181-b4a1-640280bbbc5c,1,0,3981b13c-f8e1-44cc-a8e8-59ee9635d029,3981b13c-f8e1-44cc-a8e8-59ee9635d029,1,0,cf69b045-665d-4f6c-827f-5044beacd125,cf69b045-665d-4f6c-827f-5044beacd125,1,0,aa773eef-0c4a-49be-9f5e-9131bc041415,aa773eef-0c4a-49be-9f5e-9131bc041415,1,0,9b31e474-01d4-4c3b-a633-3a2ff3917d62,9b31e474-01d4-4c3b-a633-3a2ff3917d62,1,0,1c09bf33-9b54-4bfd-bc92-e7324025fab0,1c09bf33-9b54-4bfd-bc92-e7324025fab0,1,0,8d7750e9-899f-4434-8702-44cd02681779,8d7750e9-899f-4434-8702-44cd02681779,1,0,d85244dc-c417-4e69-9aa7-7ad313ecb940,d85244dc-c417-4e69-9aa7-7ad313ecb940,1,0,3bebf5e9-68bb-48dc-a39d-cbdca2dbecb1,3bebf5e9-68bb-48dc-a39d-cbdca2dbecb1,1,0,cd392ef0-dedb-4f83-9a2c-a24190ee0dc0,cd392ef0-dedb-4f83-9a2c-a24190ee0dc0,1,0,bb2f0c1c-3cfb-4a26-b6de-5bbeb5614587,bb2f0c1c-3cfb-4a26-b6de-5bbeb5614587,1,0,0713de12-87d5-4877-bd8a-2b6466df67df,0713de12-87d5-4877-bd8a-2b6466df67df,1,0,b3f188f4-d83e-4e97-b7d3-fc384b46a80a,b3f188f4-d83e-4e97-b7d3-fc384b46a80a,1,0,b848aafc-44fb-4dfe-8eec-233dc08fbbb6,b848aafc-44fb-4dfe-8eec-233dc08fbbb6,1,0,c4d7c569-4649-4f98-a048-45f3c5933670,c4d7c569-4649-4f98-a048-45f3c5933670,1,0,6dc05d69-bd54-4e8a-8985-c2ddfa0aaffb,6dc05d69-bd54-4e8a-8985-c2ddfa0aaffb,1,0,ad08b104-01f8-4900-a06c-baa1d55eba84,ad08b104-01f8-4900-a06c-baa1d55eba84,1,0,9352d10d-188f-4074-8dd1-7be5c11525e3,9352d10d-188f-4074-8dd1-7be5c11525e3,1,0,1933634a-6f10-48e7-99f0-60ac338f7832,1933634a-6f10-48e7-99f0-60ac338f7832,1,0,655deec5-c079-4748-8521-b3f10c243394,655deec5-c079-4748-8521-b3f10c243394,1,0,f6d4d818-d54c-4337-82cf-abd5e6dbe770,f6d4d818-d54c-4337-82cf-abd5e6dbe770,1,0,656c447b-291f-4e62-81ac-1c004841aa72,656c447b-291f-4e62-81ac-1c004841aa72,1,0,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,1,0,5ba93404-58ad-4321-9a62-27db828f75f6,5ba93404-58ad-4321-9a62-27db828f75f6,1,0,3da20e86-1d83-4935-b425-a91392dc8f35,3da20e86-1d83-4935-b425-a91392dc8f35,1,0,b56f25d2-72a9-4d80-8998-77ac3097c873,b56f25d2-72a9-4d80-8998-77ac3097c873,1,0,03bd775a-e0a1-4205-82ce-6068e73ad134,03bd775a-e0a1-4205-82ce-6068e73ad134,1,0,40bed47b-7754-4a70-b51a-47385fd46e83,40bed47b-7754-4a70-b51a-47385fd46e83,1,0,773ef914-5e7e-4ec1-bcdb-b2d111b560e6,773ef914-5e7e-4ec1-bcdb-b2d111b560e6,1,0,1e5a4f93-1ab9-4775-9538-2a1772215d89,1e5a4f93-1ab9-4775-9538-2a1772215d89,1,0,c25db165-0734-4fef-b161-e5164954a616,c25db165-0734-4fef-b161-e5164954a616,1,0,37e3d914-643e-4963-b4a0-7bc6727c0c9b,37e3d914-643e-4963-b4a0-7bc6727c0c9b,1,0,b6902500-3e03-4e83-a077-00500abc00b6,b6902500-3e03-4e83-a077-00500abc00b6,1,0,d253aa54-a447-44aa-bb13-82fd1ce22af4,d253aa54-a447-44aa-bb13-82fd1ce22af4,1,0,8936f114-7a0e-4a4c-8752-ccacab410778,8936f114-7a0e-4a4c-8752-ccacab410778,1,0,55649242-42fd-468f-a1e4-f6cd8871f7a4,55649242-42fd-468f-a1e4-f6cd8871f7a4,1,0,980e0883-cd8f-48c8-896f-ef185650f5c2,980e0883-cd8f-48c8-896f-ef185650f5c2,1,0,06ca1680-e641-499c-94ad-2d5ce5561747,06ca1680-e641-499c-94ad-2d5ce5561747,1,0,35bbf75b-99d0-447b-acb0-a3d2c98bea56,35bbf75b-99d0-447b-acb0-a3d2c98bea56,1,0,c31e34db-41ff-4db3-a4d0-f780f67070f6,c31e34db-41ff-4db3-a4d0-f780f67070f6,1,0,7a014fcb-a4b8-4c1c-b0de-21907a917c25,7a014fcb-a4b8-4c1c-b0de-21907a917c25,1,0,1688ef5d-72df-4bc4-a879-89033d466ad7,1688ef5d-72df-4bc4-a879-89033d466ad7,1,0,d3b09b09-df2d-40e5-86ce-84dab4898231,d3b09b09-df2d-40e5-86ce-84dab4898231,1,0,344cb0de-315d-4d05-93f8-8a1f53208470,344cb0de-315d-4d05-93f8-8a1f53208470,1,0,cd869887-0b0e-43db-8b51-04fe4a1341d5,cd869887-0b0e-43db-8b51-04fe4a1341d5,1,0,98aa5d5e-6c0e-4b9b-a3fa-335635d15217,98aa5d5e-6c0e-4b9b-a3fa-335635d15217,1,0,a7973409-b18e-4b88-ad50-e2ae89470d8f,a7973409-b18e-4b88-ad50-e2ae89470d8f,1,0,a537875e-492e-4cf2-96e9-e2e97bb206da,a537875e-492e-4cf2-96e9-e2e97bb206da,1,0,cd8fd85f-f02e-4f11-b4b4-40670febfaca,cd8fd85f-f02e-4f11-b4b4-40670febfaca,1,0,3f023afb-c02a-42ee-9afe-0f47ef3fe721,3f023afb-c02a-42ee-9afe-0f47ef3fe721,1,0,d7fe80d3-7fcf-427e-a991-5384f0c3947e,d7fe80d3-7fcf-427e-a991-5384f0c3947e,1,0,085a08f3-9d93-429d-9b1b-9065ab8363f7,085a08f3-9d93-429d-9b1b-9065ab8363f7,1,0,a530c0a1-c1d2-40bb-9d0e-320074dbb684,a530c0a1-c1d2-40bb-9d0e-320074dbb684,1,0,55c63580-16f1-4d6f-a40b-e630f71ebb98,55c63580-16f1-4d6f-a40b-e630f71ebb98,1,0,16939af9-e459-43da-8e0d-5d5891af6e0c,16939af9-e459-43da-8e0d-5d5891af6e0c,1,0,1d736a09-6c8f-433a-bf5b-201996bf4c62,1d736a09-6c8f-433a-bf5b-201996bf4c62,1,0,157988ad-d482-41df-b3e3-f2a0383d7130,157988ad-d482-41df-b3e3-f2a0383d7130,1,0,33af87a9-db69-41da-a33a-0435da2155e3,33af87a9-db69-41da-a33a-0435da2155e3,1,0,c95831b4-7d1d-4a9a-b5d0-caa03c4f4eca,c95831b4-7d1d-4a9a-b5d0-caa03c4f4eca,1,0,81b63f1d-2c65-4efb-8599-8a4d97b612ab,81b63f1d-2c65-4efb-8599-8a4d97b612ab,1,0,4b13a2c6-a6ce-47a0-8d9e-1a5dbe8d4b00,4b13a2c6-a6ce-47a0-8d9e-1a5dbe8d4b00,1,0,d1dde981-615a-461f-b0c5-a85f51003a2c,d1dde981-615a-461f-b0c5-a85f51003a2c,1,0,f5970c48-63d7-4064-bdfc-482b72939347,f5970c48-63d7-4064-bdfc-482b72939347,1,0,5c8039c0-34d8-4443-bd8f-dfe3dc2977a8,5c8039c0-34d8-4443-bd8f-dfe3dc2977a8,1,0,210972af-8687-4526-b288-60e7ee76cd61,210972af-8687-4526-b288-60e7ee76cd61,1,0,335f379a-2974-44ce-a668-e7ffe2ce6263,335f379a-2974-44ce-a668-e7ffe2ce6263,1,0,7edd75a2-9d03-4330-9185-28d0f0d4a2e4,7edd75a2-9d03-4330-9185-28d0f0d4a2e4,1,0,f7cc4f9e-cf9a-41f5-865f-d64108b981a5,f7cc4f9e-cf9a-41f5-865f-d64108b981a5,1,0,b58f8947-344c-4902-832c-d8004da55c34,b58f8947-344c-4902-832c-d8004da55c34,1,0,35cccc1d-3d67-4d39-aa79-2c30a5347587,35cccc1d-3d67-4d39-aa79-2c30a5347587,1,0,b6ee01eb-31ab-4f39-b4ff-37a04e3c7f35,b6ee01eb-31ab-4f39-b4ff-37a04e3c7f35,1,0,0776dfb2-67e0-4e11-9f94-abde790ff7e2,0776dfb2-67e0-4e11-9f94-abde790ff7e2,1,0,9c92b833-7406-48e2-9f59-69d575a3898f,9c92b833-7406-48e2-9f59-69d575a3898f,1,0,0cc5334f-8147-455c-8262-540324415812,0cc5334f-8147-455c-8262-540324415812,1,0,f3c4e6db-7c4e-4027-8bfd-f7854d566fc1,f3c4e6db-7c4e-4027-8bfd-f7854d566fc1,1,0,0eeb2f75-7092-4487-891f-cdbc9aa978cb,0eeb2f75-7092-4487-891f-cdbc9aa978cb,1,0,4ac60443-c7cb-492f-98b4-7e48bf9bfaa6,4ac60443-c7cb-492f-98b4-7e48bf9bfaa6,1,0,22979d50-ea57-4fab-9673-1b537838aead,22979d50-ea57-4fab-9673-1b537838aead,1,0,14676ee5-c247-46c6-a37e-c4362de79bb9,14676ee5-c247-46c6-a37e-c4362de79bb9,1,0,9fa36fe3-814e-4472-94ee-5d9d2b230b24,9fa36fe3-814e-4472-94ee-5d9d2b230b24,1,0,4b59dc62-0352-45a8-b33b-c42f4eea75ee,4b59dc62-0352-45a8-b33b-c42f4eea75ee,1,0,ea8a50ce-f09c-49f7-be58-ff2864e4eaa3,ea8a50ce-f09c-49f7-be58-ff2864e4eaa3,1,0,2020d672-bef4-4b30-885e-7f41364e412b,2020d672-bef4-4b30-885e-7f41364e412b,1,0,c292ddbc-9402-4c43-93d8-f8efafa6456e,c292ddbc-9402-4c43-93d8-f8efafa6456e,1,0,0281cbd6-972d-4632-9a6a-f8791e2534ee,0281cbd6-972d-4632-9a6a-f8791e2534ee,1,0,bae01f18-b6f3-44e4-93c3-ffcb3ef01b98,bae01f18-b6f3-44e4-93c3-ffcb3ef01b98,1,0,98d66bf0-617a-40aa-97bd-896d37a966ab,98d66bf0-617a-40aa-97bd-896d37a966ab,1,0,1847bb2f-8309-4c49-b752-ef7ec16d4230,1847bb2f-8309-4c49-b752-ef7ec16d4230,1,0,ca23f432-e2a3-4385-8cc1-7e9c96f9d7a1,ca23f432-e2a3-4385-8cc1-7e9c96f9d7a1,1,0,e1856045-f394-45b8-9f0c-298812f1f514,e1856045-f394-45b8-9f0c-298812f1f514,1,0,eb175c1d-7fcb-4807-82e3-688639468116,eb175c1d-7fcb-4807-82e3-688639468116,1,0,4ed9c099-700f-409b-bd91-e24719046953,4ed9c099-700f-409b-bd91-e24719046953,1,0,85b935b4-5eec-40cf-9d99-02cb3f599492,85b935b4-5eec-40cf-9d99-02cb3f599492,1,0,5764a412-4a20-4b2e-9905-ce74a9cac3ae,5764a412-4a20-4b2e-9905-ce74a9cac3ae,1,0,c4330791-d8f7-400f-b270-dee567e7a695,c4330791-d8f7-400f-b270-dee567e7a695,1,0,aab8ec4d-51de-4c1a-9794-266c119332d1,aab8ec4d-51de-4c1a-9794-266c119332d1,1,0,77cb6e52-37a9-423c-8260-6998161adcb5,77cb6e52-37a9-423c-8260-6998161adcb5,1,0,de258ab8-2d16-4c69-9490-5819b7ae3d08,de258ab8-2d16-4c69-9490-5819b7ae3d08,1,0,f7aacf70-0b59-410a-9929-ab4ab8a2431c,f7aacf70-0b59-410a-9929-ab4ab8a2431c,1,0,5bb6ba7a-ed61-4cdd-b3db-ec9da292e7a4,5bb6ba7a-ed61-4cdd-b3db-ec9da292e7a4,1,0,b37a9edd-b6bc-40eb-b5de-f54968abc119,b37a9edd-b6bc-40eb-b5de-f54968abc119,1,0,52338832-b15a-4e56-b13d-141141677008,52338832-b15a-4e56-b13d-141141677008,1,0,e9616402-88cc-44ae-96ca-ba20cf7d38ad,e9616402-88cc-44ae-96ca-ba20cf7d38ad,1,0,1b8212d7-b834-460c-9a2b-68a5de889e5b,1b8212d7-b834-460c-9a2b-68a5de889e5b,1,0,a816deca-4863-44e2-a8ff-89bfa5fbb0ac,a816deca-4863-44e2-a8ff-89bfa5fbb0ac,1,0,157f3df0-97b7-461b-bd3e-1f2e12658adf,157f3df0-97b7-461b-bd3e-1f2e12658adf,1,0,d2d6968c-fbe6-4e09-9cdb-653ca9a97fcc,d2d6968c-fbe6-4e09-9cdb-653ca9a97fcc,1,0,ea6f491e-9ec9-456d-ae30-4a258d87dff6,ea6f491e-9ec9-456d-ae30-4a258d87dff6,1,0,c67cddce-64d0-45eb-8abb-5c76bbe27f93,c67cddce-64d0-45eb-8abb-5c76bbe27f93,1,0,4f1aa113-6d77-46c8-ac21-9e5545553499,4f1aa113-6d77-46c8-ac21-9e5545553499,1,0,6ccec21e-f26f-482c-9ce2-1f058fc492c1,6ccec21e-f26f-482c-9ce2-1f058fc492c1,1,0,d903569d-911d-4277-a26f-afe2bf67eb09,d903569d-911d-4277-a26f-afe2bf67eb09,1,0,b5ac7de5-565f-4637-b267-dde3637e336b,b5ac7de5-565f-4637-b267-dde3637e336b,1,0,d4a6ab09-259f-4476-834c-a2b57cdeac05,d4a6ab09-259f-4476-834c-a2b57cdeac05,1,0,a56ff7f4-2259-455f-b707-b98aacd7d0b2,a56ff7f4-2259-455f-b707-b98aacd7d0b2,1,0,8c9636c3-0a84-4575-b4c7-6d8bb588e1b0,8c9636c3-0a84-4575-b4c7-6d8bb588e1b0,1,0,76e03401-7c07-4037-a464-d7377852de1d,76e03401-7c07-4037-a464-d7377852de1d,1,0,dc8239e8-fddf-411e-b51a-4230b63236cd,dc8239e8-fddf-411e-b51a-4230b63236cd,1,0,3b861376-2864-4de8-ba59-2a2835d7eaf6,3b861376-2864-4de8-ba59-2a2835d7eaf6,1,0,02910dcd-9e66-4239-a421-8067faf59577,02910dcd-9e66-4239-a421-8067faf59577,1,0,76d5a67f-bb11-4937-a66d-cdce28165562,76d5a67f-bb11-4937-a66d-cdce28165562,1,0,b99a23a5-bfbf-46ec-8268-ff89afdfc63a,b99a23a5-bfbf-46ec-8268-ff89afdfc63a,1,0,cdb93924-62ce-4268-9915-e6c67c1b9cb8,cdb93924-62ce-4268-9915-e6c67c1b9cb8,1,0,1139b6c7-7b55-45b4-98cf-ccac3bfaaa6c,1139b6c7-7b55-45b4-98cf-ccac3bfaaa6c,1,0,33c39990-f4fc-4629-83ba-b43b05a40ca6,33c39990-f4fc-4629-83ba-b43b05a40ca6,1,0,0a136ad9-22ad-4ba7-a31a-40a193b49d26,0a136ad9-22ad-4ba7-a31a-40a193b49d26,1,0,208c7b8c-3df9-4441-8ebf-34ffa81572a2,208c7b8c-3df9-4441-8ebf-34ffa81572a2,1,0,8c17fd7c-74d7-496a-a843-42022afb0707,8c17fd7c-74d7-496a-a843-42022afb0707,1,0,091ccac1-9a63-4a89-bb0c-333b274b0c70,091ccac1-9a63-4a89-bb0c-333b274b0c70,1,0,849f00c3-2f18-414c-97f6-32a99173fab9,849f00c3-2f18-414c-97f6-32a99173fab9,1,0,b456d820-8034-4381-960d-66d9f86b0a4b,b456d820-8034-4381-960d-66d9f86b0a4b,1,0,bd55fd03-cf67-4333-a554-98e03d18f780,bd55fd03-cf67-4333-a554-98e03d18f780,1,0,6eac5f7b-0952-4c94-9028-529b14ffcd4f,6eac5f7b-0952-4c94-9028-529b14ffcd4f,1,0,a587cade-4c91-4769-9c6a-a4fb4fe94196,a587cade-4c91-4769-9c6a-a4fb4fe94196,1,0,1a7c774d-5b86-4051-b797-3081e19fa30a,1a7c774d-5b86-4051-b797-3081e19fa30a,1,0,00949768-5833-4fe2-8752-b009d1bceef8,00949768-5833-4fe2-8752-b009d1bceef8,1,0,167455d1-6658-409f-834c-f6ccfe7b25de,167455d1-6658-409f-834c-f6ccfe7b25de,1,0,1300c46e-24d4-45cf-a899-3d26b5cf0b50,1300c46e-24d4-45cf-a899-3d26b5cf0b50,1,0,4cde6fdc-85fa-4c00-896c-51a68f5f10a5,4cde6fdc-85fa-4c00-896c-51a68f5f10a5,1,0,f41de07b-cba3-4bb8-9ec0-64ec59753f84,f41de07b-cba3-4bb8-9ec0-64ec59753f84,1,0,f78a5650-4d6c-4c17-95e0-e95cf8d9ad4b,f78a5650-4d6c-4c17-95e0-e95cf8d9ad4b,1,0,c5b3ca21-8f7b-4933-853c-7d95b17b5631,c5b3ca21-8f7b-4933-853c-7d95b17b5631,1,0,8b0faa1e-09da-4ba4-894e-e86abc5d39df,8b0faa1e-09da-4ba4-894e-e86abc5d39df,1,0,cb50b309-1b6c-400c-9e9e-67204dcccaae,cb50b309-1b6c-400c-9e9e-67204dcccaae,1,0,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,1,0,2a6e1f2b-7378-456b-9657-9e971eaff716,2a6e1f2b-7378-456b-9657-9e971eaff716,1,0,c3cdea20-3055-4b4e-a531-a02d4f3ed294,c3cdea20-3055-4b4e-a531-a02d4f3ed294,1,0,ffd14055-0847-48da-8807-0ba07decf6a5,ffd14055-0847-48da-8807-0ba07decf6a5,1,0,ee808b7e-8313-4838-8a5a-9b49e3ce7e3e,ee808b7e-8313-4838-8a5a-9b49e3ce7e3e,1,0,a8450a10-c18c-4b99-828b-870f38c32991,a8450a10-c18c-4b99-828b-870f38c32991,1,0,ad5e61a9-2f12-4629-9d7b-7882cc885992,ad5e61a9-2f12-4629-9d7b-7882cc885992,1,0,68a66e43-123c-4dc4-8eb7-3b728a6dbf40,68a66e43-123c-4dc4-8eb7-3b728a6dbf40,1,0,b016e858-7a3b-473a-a9b7-a6c718d0a028,b016e858-7a3b-473a-a9b7-a6c718d0a028,1,0,7db81d96-e359-4157-b5cb-3b50622d6556,7db81d96-e359-4157-b5cb-3b50622d6556,1,0,aa09ff66-3f4a-4746-9a99-697a2915b3fc,aa09ff66-3f4a-4746-9a99-697a2915b3fc,1,0,21305c37-31fb-46f3-85bc-8743c22faa02,21305c37-31fb-46f3-85bc-8743c22faa02,1,0,c5bace94-8fbc-4ad1-9567-a41332e8f00a,c5bace94-8fbc-4ad1-9567-a41332e8f00a,1,0,9fc40f79-c538-4ea5-a939-67bdd540d805,9fc40f79-c538-4ea5-a939-67bdd540d805,1,0,70443b2a-04db-4573-a4ea-e35078b383d7,70443b2a-04db-4573-a4ea-e35078b383d7,1,0,fb760c8a-d0bd-4445-9d68-85e5145d0182,fb760c8a-d0bd-4445-9d68-85e5145d0182,1,0,ecf54919-4cf2-4b30-9efa-de517d823555,ecf54919-4cf2-4b30-9efa-de517d823555,1,0,a4814357-6575-4a55-808f-4a4c94047110,a4814357-6575-4a55-808f-4a4c94047110,1,0,46417026-c44a-4a06-af41-9cf6495a33b4,46417026-c44a-4a06-af41-9cf6495a33b4,1,0,363c15f3-660e-4e19-b3cc-37c5d05e8d22,363c15f3-660e-4e19-b3cc-37c5d05e8d22,1,0,eeb4b6f1-2476-467d-9862-6fe9d3013b2c,eeb4b6f1-2476-467d-9862-6fe9d3013b2c,1,0,59d5cd7d-7f53-4015-89d9-bb8ad89f8c04,59d5cd7d-7f53-4015-89d9-bb8ad89f8c04,1,0,9d7f7dde-fea8-4064-abe2-bb7d04500cb2,9d7f7dde-fea8-4064-abe2-bb7d04500cb2,1,0,3af45dae-f563-4d23-a87a-11b4d9d5d7a7,3af45dae-f563-4d23-a87a-11b4d9d5d7a7,1,0,fe102b7b-b61f-4572-b2d0-c0af11bfb7d7,fe102b7b-b61f-4572-b2d0-c0af11bfb7d7,1,0,2cfa0db8-f0e6-4513-ab19-52dccff302bc,2cfa0db8-f0e6-4513-ab19-52dccff302bc,1,0,b9fece39-6e5d-44c0-af5c-ad13cfb71560,b9fece39-6e5d-44c0-af5c-ad13cfb71560,1,0,a9c30e99-c265-471d-9115-50ac2bb05191,a9c30e99-c265-471d-9115-50ac2bb05191,1,0,d388c9ca-1dbd-45b9-ac33-5ffa8cb11499,d388c9ca-1dbd-45b9-ac33-5ffa8cb11499,1,0,efebb079-b913-4249-b128-e0ffc7ab43dd,efebb079-b913-4249-b128-e0ffc7ab43dd,1,0,52077ee4-fef1-451f-8338-86563ff5cf60,52077ee4-fef1-451f-8338-86563ff5cf60,1,0,8e6780f8-8d0e-47d1-ac26-47bf5d906f61,8e6780f8-8d0e-47d1-ac26-47bf5d906f61,1,0,fd4a26c1-31e0-4216-92e0-1e090ec4f094,fd4a26c1-31e0-4216-92e0-1e090ec4f094,1,0,637148a3-0f54-4d41-91dd-a0aa6e191015,637148a3-0f54-4d41-91dd-a0aa6e191015,1,0,9a86e2fe-a9bc-4f0a-a16e-a97944fe8539,9a86e2fe-a9bc-4f0a-a16e-a97944fe8539,1,0,b6f745d7-1326-494e-b442-e4118955b5db,b6f745d7-1326-494e-b442-e4118955b5db,1,0,86755cbc-efd8-43e7-bba8-975c0a51f38f,86755cbc-efd8-43e7-bba8-975c0a51f38f,1,0,44dba9ff-fb54-4cc9-9da2-b00db76060e4,44dba9ff-fb54-4cc9-9da2-b00db76060e4,1,0,a6a0c38d-52a1-4a36-b29a-fb9cc084465f,a6a0c38d-52a1-4a36-b29a-fb9cc084465f,1,0,93701593-5ac8-4266-b471-7e9ed35a9c3e,93701593-5ac8-4266-b471-7e9ed35a9c3e,1,0,0fdb864e-ede9-4777-835c-0804968ee544,0fdb864e-ede9-4777-835c-0804968ee544,1,0,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,1,0,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,1,0,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,1,0,5dee9814-fe38-4631-8148-8d6c87ef6f47,5dee9814-fe38-4631-8148-8d6c87ef6f47,1,0,37d17053-5c2b-4972-b6a5-a589f2ddbde6,37d17053-5c2b-4972-b6a5-a589f2ddbde6,1,0,c349968a-3f87-425b-8efb-d847934dee4b,c349968a-3f87-425b-8efb-d847934dee4b,1,0,3bb8dc33-970c-4c58-9036-ce716d963847,3bb8dc33-970c-4c58-9036-ce716d963847,1,0,fae0d2e0-1bcd-4a77-86d6-407ca05c1c95,fae0d2e0-1bcd-4a77-86d6-407ca05c1c95,1,0,b3ff39fa-f665-4d01-9a2a-69722e6b1071,b3ff39fa-f665-4d01-9a2a-69722e6b1071,1,0,0abacb0a-ce00-474e-8aec-35685c51ddef,0abacb0a-ce00-474e-8aec-35685c51ddef,1,0,ae407b17-03aa-4268-8603-58d6714dae89,ae407b17-03aa-4268-8603-58d6714dae89,1,0,9a5b9bf4-71b8-41f2-8e23-8c396357f0a5,9a5b9bf4-71b8-41f2-8e23-8c396357f0a5,1,0,5c0ce79b-97a9-4917-9b02-a4548a97d5a1,5c0ce79b-97a9-4917-9b02-a4548a97d5a1,1,0,c552cfac-d3ef-4b63-a0b9-7c79261ff9f3,c552cfac-d3ef-4b63-a0b9-7c79261ff9f3,1,0,5bb6e52c-ac26-4143-8e90-f04f703f823b,5bb6e52c-ac26-4143-8e90-f04f703f823b,1,0,579baaa4-6493-4d99-8744-6399757295c7,579baaa4-6493-4d99-8744-6399757295c7,1,0,ae6d0e12-8857-476c-b4b2-f03295cbed3e,ae6d0e12-8857-476c-b4b2-f03295cbed3e,1,0,cc8e3172-491d-45d8-a7eb-fc6c400845cb,cc8e3172-491d-45d8-a7eb-fc6c400845cb,1,0,d7cfc87f-ac09-44aa-91d9-6511c408c5cb,d7cfc87f-ac09-44aa-91d9-6511c408c5cb,1,0,7ee1e0d0-9735-45da-bd24-c0dbabfd5b1e,7ee1e0d0-9735-45da-bd24-c0dbabfd5b1e,1,0,bd0e3bd4-1207-41ea-8dfc-afa8f7d08cc2,bd0e3bd4-1207-41ea-8dfc-afa8f7d08cc2,1,0,51d83895-5692-4479-9612-07c790d19dff,51d83895-5692-4479-9612-07c790d19dff,1,0,9c1325af-7492-42be-b3af-51b692534510,9c1325af-7492-42be-b3af-51b692534510,1,0,dface15c-cd65-4fb1-b4dd-b513086d3f8e,dface15c-cd65-4fb1-b4dd-b513086d3f8e,1,0,d854b528-8456-4453-9c2d-4f96caf10481,d854b528-8456-4453-9c2d-4f96caf10481,1,0,622d6de2-7404-41cc-961b-131d078d7ab4,622d6de2-7404-41cc-961b-131d078d7ab4,1,0,245f870e-a53a-4d86-aa0a-c0c7709b8acb,245f870e-a53a-4d86-aa0a-c0c7709b8acb,1,0,476f6bfa-b10c-4e0f-8499-23c652715b3f,476f6bfa-b10c-4e0f-8499-23c652715b3f,1,0,65c9754b-53f6-4616-a9d4-74826f7b0ced,65c9754b-53f6-4616-a9d4-74826f7b0ced,1,0,eca2b076-d218-4d1c-948b-7894edf9fa49,eca2b076-d218-4d1c-948b-7894edf9fa49,1,0,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,1,0,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,1,0,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,1,0,b7e85f5c-4312-44c6-895a-3f636a8c78d8,b7e85f5c-4312-44c6-895a-3f636a8c78d8,1,0,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,1,0,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,1,0,a1afacc5-f49a-4df2-a44d-479594d50179,a1afacc5-f49a-4df2-a44d-479594d50179,1,0,fe70eba3-7477-4a38-a511-d69960abb928,fe70eba3-7477-4a38-a511-d69960abb928,1,0,6534ea96-2145-49e6-9739-f59459dc7f6b,6534ea96-2145-49e6-9739-f59459dc7f6b,1,0,f49bffa0-cad6-4801-b82e-21aa580e72e6,f49bffa0-cad6-4801-b82e-21aa580e72e6,1,0,bbbfb817-8db3-4415-86c3-af028276d6e9,bbbfb817-8db3-4415-86c3-af028276d6e9,1,0,6a91112c-f6cc-47a0-9d26-a36c7702af7d,6a91112c-f6cc-47a0-9d26-a36c7702af7d,1,0,40a59681-f31d-4fb9-9301-67c1430590e0,40a59681-f31d-4fb9-9301-67c1430590e0,1,0,ae3358ad-ea3a-4b73-a305-02a152863978,ae3358ad-ea3a-4b73-a305-02a152863978,1,0,cb92dc2e-6053-4233-a408-4464514b1257,cb92dc2e-6053-4233-a408-4464514b1257,1,0,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,1,0,85550a7a-8fe0-4296-ace5-63cf053536b4,85550a7a-8fe0-4296-ace5-63cf053536b4,1,0,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,1,0,9c3bc502-bcb1-4c90-ae43-53c798958339,9c3bc502-bcb1-4c90-ae43-53c798958339,1,0,3f8b6411-6606-4d27-891e-7c77be47c5f9,3f8b6411-6606-4d27-891e-7c77be47c5f9,1,0,cfc0adf6-87b4-4c8a-91e2-46c2616b319b,cfc0adf6-87b4-4c8a-91e2-46c2616b319b,1,0,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,1,0,5eb4ca7f-027a-4860-a167-e6b424527e7a,5eb4ca7f-027a-4860-a167-e6b424527e7a,1,0,f9b98ba5-1fa8-42a4-b1a2-dd71874083cb,f9b98ba5-1fa8-42a4-b1a2-dd71874083cb,1,0,6871015f-d959-4a77-a091-a23cb4ebd8f9,6871015f-d959-4a77-a091-a23cb4ebd8f9,1,0,e5e1631b-a494-4e73-b356-b4330b84cc88,e5e1631b-a494-4e73-b356-b4330b84cc88,1,0,778c28e6-4548-45f3-a1bc-cb1dbf0cb388,778c28e6-4548-45f3-a1bc-cb1dbf0cb388,1,0,a2d6f2d9-0610-4ca9-bc15-58e341a049a4,a2d6f2d9-0610-4ca9-bc15-58e341a049a4,1,0,4dbf114a-5402-40b0-9cab-19601aa8328e,4dbf114a-5402-40b0-9cab-19601aa8328e,1,0,a0856ca2-6a66-4108-b6d4-82443cdccca6,a0856ca2-6a66-4108-b6d4-82443cdccca6,1,0,378b0708-a0a1-4c82-b55a-796acb27e696,378b0708-a0a1-4c82-b55a-796acb27e696,1,0,8e462c0e-c67a-45e9-9871-1f976b01632d,8e462c0e-c67a-45e9-9871-1f976b01632d,1,0,c5335e1f-3e47-46b7-b695-0653f825d855,c5335e1f-3e47-46b7-b695-0653f825d855,1,0,d7faad11-1e35-460c-8943-49370f328c03,d7faad11-1e35-460c-8943-49370f328c03,1,0,e4726010-85c5-4ccc-b574-4b3b55f0d391,e4726010-85c5-4ccc-b574-4b3b55f0d391,1,0,5d6770f2-9b3d-45c7-9e34-4c8626e482cf,5d6770f2-9b3d-45c7-9e34-4c8626e482cf,1,0,b01ace0e-7f21-4b6b-b751-074dcd9a8f54,b01ace0e-7f21-4b6b-b751-074dcd9a8f54,1,0,1f4f839a-4e19-45b8-a988-13ee604c269c,1f4f839a-4e19-45b8-a988-13ee604c269c,1,0,b3aa97e1-baef-45f4-9179-052f35527a5e,b3aa97e1-baef-45f4-9179-052f35527a5e,1,0,d613941f-ed4c-4957-b469-ea6b0d2a121d,d613941f-ed4c-4957-b469-ea6b0d2a121d,1,0,0d8d08e3-194f-416c-a1e0-aa92b40b7911,0d8d08e3-194f-416c-a1e0-aa92b40b7911,1,0,af0178fe-eb3a-485b-9acf-35c8702aa330,af0178fe-eb3a-485b-9acf-35c8702aa330,1,0,201d323b-4c0c-4c93-ae43-43a378ec0d9e,201d323b-4c0c-4c93-ae43-43a378ec0d9e,1,0,9e2c01b1-ccfe-4a68-a6af-8284e3e2396f,9e2c01b1-ccfe-4a68-a6af-8284e3e2396f,1,0,c513ceb0-0855-43ce-a311-c9bea88e2563,c513ceb0-0855-43ce-a311-c9bea88e2563,1,0,974bfc13-85c2-454a-b562-e72384eb4c31,974bfc13-85c2-454a-b562-e72384eb4c31,1,0,69cd6adc-b129-4fbc-804d-8d5aaef77280,69cd6adc-b129-4fbc-804d-8d5aaef77280,1,0,3431a3de-cb9d-46dc-b597-3203831796a9,3431a3de-cb9d-46dc-b597-3203831796a9,1,0,f3866271-04ed-4963-852e-cf41e9e18e1d,f3866271-04ed-4963-852e-cf41e9e18e1d,1,0,b77e5ec2-35cd-43ae-957f-af35214fa621,b77e5ec2-35cd-43ae-957f-af35214fa621,1,0,4a04d83d-cadd-4f36-9ec8-f926259c18ba,4a04d83d-cadd-4f36-9ec8-f926259c18ba,1,0,85e670c0-1616-4611-984c-3d40e890b2e9,85e670c0-1616-4611-984c-3d40e890b2e9,1,0,48ed25b0-afb9-414b-9a4e-8647fbdd95c3,48ed25b0-afb9-414b-9a4e-8647fbdd95c3,1,0,1e3a1148-1e9c-47b0-8f3c-f218c3b0094f,1e3a1148-1e9c-47b0-8f3c-f218c3b0094f,1,0,f1693207-2637-412a-972f-2bc79b9c7fc8,f1693207-2637-412a-972f-2bc79b9c7fc8,1,0,da59378e-0a97-4cff-977b-cc51967068ee,da59378e-0a97-4cff-977b-cc51967068ee,1,0,bbaad46d-f60d-49e6-a077-075366bca47e,bbaad46d-f60d-49e6-a077-075366bca47e,1,0,0d9f5703-91e4-4769-bedd-5bd974f2f617,0d9f5703-91e4-4769-bedd-5bd974f2f617,1,0,926cdf17-1929-43d6-8205-858aab558ad9,926cdf17-1929-43d6-8205-858aab558ad9,1,0,5ec6838f-2d70-4f91-b41b-16adfe8ed587,5ec6838f-2d70-4f91-b41b-16adfe8ed587,1,0,6420ad7e-61ca-4af9-9715-f2b0c3e2c58f,6420ad7e-61ca-4af9-9715-f2b0c3e2c58f,1,0,bee8b8a0-f058-44cb-822c-620351567627,bee8b8a0-f058-44cb-822c-620351567627,1,0,26365e29-903b-47fd-ad96-e0d87f5d6e87,26365e29-903b-47fd-ad96-e0d87f5d6e87,1,0,569180cb-ce54-4267-94b9-332e35e3c17d,569180cb-ce54-4267-94b9-332e35e3c17d,1,0,55bce105-51c0-452e-9eec-b960fe740db2,55bce105-51c0-452e-9eec-b960fe740db2,1,0,776c171d-5dd5-4965-94dc-c2fe6792d5f2,776c171d-5dd5-4965-94dc-c2fe6792d5f2,1,0,86bb1105-702a-47be-906a-1821a69b1b6c,86bb1105-702a-47be-906a-1821a69b1b6c,1,0,40653767-9542-44e9-a84b-ffee75584638,40653767-9542-44e9-a84b-ffee75584638,1,0,49bd152e-479a-46fe-b3af-26ed9181dc34,49bd152e-479a-46fe-b3af-26ed9181dc34,1,0,0a742dd2-1ff4-42de-b303-f2bb01b36fe2,0a742dd2-1ff4-42de-b303-f2bb01b36fe2,1,0,69e13959-51ad-4ac2-9cfc-17ac28b78c78,69e13959-51ad-4ac2-9cfc-17ac28b78c78,1,0,f890ca1b-f2c2-4630-9002-301b759ca6d9,f890ca1b-f2c2-4630-9002-301b759ca6d9,1,0,08c8a9bf-7b89-4d0e-a496-4c7efeca0577,08c8a9bf-7b89-4d0e-a496-4c7efeca0577,1,0,f6c2b015-9cfc-40d2-a93f-b0e88db4a23f,f6c2b015-9cfc-40d2-a93f-b0e88db4a23f,1,0,103f3d8f-e47a-4772-bdd7-dd5f8508d22b,103f3d8f-e47a-4772-bdd7-dd5f8508d22b,1,0,ba8ea271-8716-49ef-8b10-f4b5798c1f62,ba8ea271-8716-49ef-8b10-f4b5798c1f62,1,0,3633c30c-9479-4801-89cc-a5734a41e465,3633c30c-9479-4801-89cc-a5734a41e465,1,0,f295c68d-7e29-48b8-a95a-56e96d9843c1,f295c68d-7e29-48b8-a95a-56e96d9843c1,1,0,7ebe16ee-8e5d-4b05-89b5-9539f73be90c,7ebe16ee-8e5d-4b05-89b5-9539f73be90c,1,0,ea5d0221-fb1e-4626-862a-9c1209365d8f,ea5d0221-fb1e-4626-862a-9c1209365d8f,1,0,12bce69b-933c-4ce4-9d29-a47f3db0226e,12bce69b-933c-4ce4-9d29-a47f3db0226e,1,0,82dcd6a3-c35b-421c-a8f9-77855ad2abca,82dcd6a3-c35b-421c-a8f9-77855ad2abca,1,0,ad0b1720-282e-49d4-af80-324a887963c3,ad0b1720-282e-49d4-af80-324a887963c3,1,0,9ec6fc35-e84e-4f82-b616-5c02e945cc8f,9ec6fc35-e84e-4f82-b616-5c02e945cc8f,1,0,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,1,0,dea6b05f-d3e1-4ff4-8f71-6a0c18134e94,dea6b05f-d3e1-4ff4-8f71-6a0c18134e94,1,0,fcb97a46-d5fd-4bb5-b899-17723a9fe346,fcb97a46-d5fd-4bb5-b899-17723a9fe346,1,0,20adf54c-044c-4bea-8028-b6d20917a030,20adf54c-044c-4bea-8028-b6d20917a030,1,0,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,1,0,2e54b3e8-6672-48d5-802a-23d5144fed79,2e54b3e8-6672-48d5-802a-23d5144fed79,1,0,2a7c4ae2-aab3-48b3-b04f-7be6989939e8,2a7c4ae2-aab3-48b3-b04f-7be6989939e8,1,0,a92acf0e-9132-4456-9a82-1543d98ca453,a92acf0e-9132-4456-9a82-1543d98ca453,1,0,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,1,0,daad5f66-3bb4-4389-bca1-bf528ad993a3,daad5f66-3bb4-4389-bca1-bf528ad993a3,1,0,ad043f15-b2c9-4a05-82b9-6428708584b2,ad043f15-b2c9-4a05-82b9-6428708584b2,1,0,d2fd8650-d13a-411d-8206-61b16016bd82,d2fd8650-d13a-411d-8206-61b16016bd82,1,0,643f4f37-fa02-4976-8701-7a5a44b0109a,643f4f37-fa02-4976-8701-7a5a44b0109a,1,0,278a0559-07b2-4ee3-a821-c0395f9a33c1,278a0559-07b2-4ee3-a821-c0395f9a33c1,1,0,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,1,0,54d9f5bb-599c-4d4b-b616-1445e7461813,54d9f5bb-599c-4d4b-b616-1445e7461813,1,0,7d0dbd52-8bb0-4d72-87fa-2d7066e5e189,7d0dbd52-8bb0-4d72-87fa-2d7066e5e189,1,0,a2c42946-1cdb-457a-a45b-97781cfb4a15,a2c42946-1cdb-457a-a45b-97781cfb4a15,1,0,a1a44832-6026-47ae-affd-5b6d52e84307,a1a44832-6026-47ae-affd-5b6d52e84307,1,0,63ad43fe-a050-47f7-af4f-099aa10255af,63ad43fe-a050-47f7-af4f-099aa10255af,1,0,4033eb31-8281-402a-afff-431fa36e589e,4033eb31-8281-402a-afff-431fa36e589e,1,0,5a1e1da5-7307-4f48-bb1c-2977fc4d7cef,5a1e1da5-7307-4f48-bb1c-2977fc4d7cef,1,0,f59488c7-4643-4988-8043-5c9724e04279,f59488c7-4643-4988-8043-5c9724e04279,1,0,cfe022b5-7647-4b5c-a2bd-f5d313f4a9db,cfe022b5-7647-4b5c-a2bd-f5d313f4a9db,1,0,b67a509d-bb0f-427e-b447-4d4617078d6a,b67a509d-bb0f-427e-b447-4d4617078d6a,1,0,968ecfca-cf06-4952-83c1-a151e46c78a9,968ecfca-cf06-4952-83c1-a151e46c78a9,1,0,4945c734-a47d-44e9-8a7f-94b31911c1ce,4945c734-a47d-44e9-8a7f-94b31911c1ce,1,0,20a194e9-06cf-4013-bfa4-bc15554a54d0,20a194e9-06cf-4013-bfa4-bc15554a54d0,1,0,ab4f3d3d-bb5a-4dbc-b699-808458036b00,ab4f3d3d-bb5a-4dbc-b699-808458036b00,1,0,09761456-2273-437f-9316-0391cfaa81b3,09761456-2273-437f-9316-0391cfaa81b3,1,0,93922abc-98b9-4b3d-a5c8-7294378a69e1,93922abc-98b9-4b3d-a5c8-7294378a69e1,1,0,3c0a9c45-8e57-43fa-8ae3-26b15571f2cd,3c0a9c45-8e57-43fa-8ae3-26b15571f2cd,1,0,85223d37-2503-4783-94dc-fe6265e718d5,85223d37-2503-4783-94dc-fe6265e718d5,1,0,0918cd76-56e5-4314-8a1c-c21d023ba6f8,0918cd76-56e5-4314-8a1c-c21d023ba6f8,1,0,9db21c2e-79fa-44e4-902e-416abfccb54a,9db21c2e-79fa-44e4-902e-416abfccb54a,1,0,fb082db3-197b-4d1e-b9ea-362624d547ee,fb082db3-197b-4d1e-b9ea-362624d547ee,1,0,c09dcf00-a45a-4487-99c5-d3a37956ec88,c09dcf00-a45a-4487-99c5-d3a37956ec88,1,0,531a5a0c-6ac9-4e93-8caa-42d9aad0bc82,531a5a0c-6ac9-4e93-8caa-42d9aad0bc82,1,0,2714e1b6-6b02-43a1-bc94-2934b429ed35,2714e1b6-6b02-43a1-bc94-2934b429ed35,1,0,e33c73b2-ef0b-49b7-a65f-ab2c814ad256,e33c73b2-ef0b-49b7-a65f-ab2c814ad256,1,0,4c7016da-9991-4917-8eaa-e760cc9e29d1,4c7016da-9991-4917-8eaa-e760cc9e29d1,1,0,febb3770-5c11-4ada-9e49-a27950bdaddf,febb3770-5c11-4ada-9e49-a27950bdaddf,1,0,d7b57669-e538-4e54-ab1b-8428f0586466,d7b57669-e538-4e54-ab1b-8428f0586466,1,0,223e4ccf-5638-4576-bd88-7c54be68de47,223e4ccf-5638-4576-bd88-7c54be68de47,1,0,e3bae40b-5316-4392-8c82-b601922a6582,e3bae40b-5316-4392-8c82-b601922a6582,1,0,26806602-54be-4b2f-96ae-3e2a31616a4e,26806602-54be-4b2f-96ae-3e2a31616a4e,1,0,738fc48f-5160-4786-84bb-053c188662ce,738fc48f-5160-4786-84bb-053c188662ce,1,0,6e883b67-f74c-4791-8fb3-446534e3a6db,6e883b67-f74c-4791-8fb3-446534e3a6db,1,0,24fed307-445d-44b5-8964-9d08d1003061,24fed307-445d-44b5-8964-9d08d1003061,1,0,8e4c2dbe-15b7-4e04-9f07-892d70741a97,8e4c2dbe-15b7-4e04-9f07-892d70741a97,1,0,67691860-e374-451f-aee3-05a35df2a477,67691860-e374-451f-aee3-05a35df2a477,1,0,dbed7302-370e-4e0f-b505-3a86fe4c4ebd,dbed7302-370e-4e0f-b505-3a86fe4c4ebd,1,0,9c484a15-039e-416d-af97-4c2bd90fd873,9c484a15-039e-416d-af97-4c2bd90fd873,1,0,534855e3-4cf2-471c-b982-7138917050c9,534855e3-4cf2-471c-b982-7138917050c9,1,0,4c72b944-d000-4920-aec8-54029f88ddf4,4c72b944-d000-4920-aec8-54029f88ddf4,1,0,b4033d05-05c2-4617-80d9-abfa389c47f4,b4033d05-05c2-4617-80d9-abfa389c47f4,1,0,0f46b124-1575-4984-9bc1-b5e4696efc74,0f46b124-1575-4984-9bc1-b5e4696efc74,1,0,a0183a0b-1459-4b32-924c-6ea156f02125,a0183a0b-1459-4b32-924c-6ea156f02125,1,0,fc2dc619-41e0-4cce-a080-d5c8de5029a8,fc2dc619-41e0-4cce-a080-d5c8de5029a8,1,0,9609e5fb-fd11-463c-8679-9b10fc0993ed,9609e5fb-fd11-463c-8679-9b10fc0993ed,1,0,f438b941-2aae-4c67-81dc-340f6acc25b1,f438b941-2aae-4c67-81dc-340f6acc25b1,1,0,48075630-2041-48c3-9eb0-d2107cfcb249,48075630-2041-48c3-9eb0-d2107cfcb249,1,0,7d7e7e13-eb42-420d-9bfc-14fab901c3c1,7d7e7e13-eb42-420d-9bfc-14fab901c3c1,1,0,aa29e1be-4e99-4136-8dc1-0124908979ad,aa29e1be-4e99-4136-8dc1-0124908979ad,1,0,0d76799d-7fc7-446b-88fb-dca839de00a5,0d76799d-7fc7-446b-88fb-dca839de00a5,1,0,cb5674c3-0d91-4948-bafd-d9ef44a2a69d,cb5674c3-0d91-4948-bafd-d9ef44a2a69d,1,0,ea4a869c-861c-412c-a3be-de1c57d1a251,ea4a869c-861c-412c-a3be-de1c57d1a251,1,0,eeafcc8c-fbe2-4bb4-8b8a-cf663208258d,eeafcc8c-fbe2-4bb4-8b8a-cf663208258d,1,0,6a3bd39a-59cb-4763-b49f-7ab67167a8b7,6a3bd39a-59cb-4763-b49f-7ab67167a8b7,1,0,6c1d8f6c-db33-46dc-8824-aceacb4bf9c1,6c1d8f6c-db33-46dc-8824-aceacb4bf9c1,1,0,67e8b7dc-e0d7-44a9-81d0-6b31bb318145,67e8b7dc-e0d7-44a9-81d0-6b31bb318145,1,0,50ac390d-324f-40bd-b3df-0468a63b94b6,50ac390d-324f-40bd-b3df-0468a63b94b6,1,0,80337710-2c60-45c4-ae1f-bb42731fb611,80337710-2c60-45c4-ae1f-bb42731fb611,1,0,9dcf467e-7701-4c7b-b747-95f4d9b9295c,9dcf467e-7701-4c7b-b747-95f4d9b9295c,1,0,dd07b255-25af-466e-a224-c561a8ca567b,dd07b255-25af-466e-a224-c561a8ca567b,1,0,80641554-046e-4c4a-8544-a35b4c554dad,80641554-046e-4c4a-8544-a35b4c554dad,1,0,77149f7a-8a76-4569-9487-991c41e132ef,77149f7a-8a76-4569-9487-991c41e132ef,1,0,1e9e115a-e65b-4346-b0d3-47cf1dbe75f2,1e9e115a-e65b-4346-b0d3-47cf1dbe75f2,1,0,9e1be65e-986f-4d21-91f0-15c66db0c947,9e1be65e-986f-4d21-91f0-15c66db0c947,1,0,67993b79-6aca-4641-b2e2-0a15f44e47d5,67993b79-6aca-4641-b2e2-0a15f44e47d5,1,0,d2fe4578-a1f8-4586-b052-fa71d25365c9,d2fe4578-a1f8-4586-b052-fa71d25365c9,1,0,f31f3dab-5796-47ac-a54d-3081f8cad817,f31f3dab-5796-47ac-a54d-3081f8cad817,1,0,cd59707e-b9e4-4038-8203-ae22a8060e8d,cd59707e-b9e4-4038-8203-ae22a8060e8d,1,0,db497857-33d3-49a1-b328-dfc62c973ecb,db497857-33d3-49a1-b328-dfc62c973ecb,1,0,139c001c-7b07-465a-9187-399ad32d294f,139c001c-7b07-465a-9187-399ad32d294f,1,0,5d228ce4-069e-4f98-beed-b8e1de17c3d9,5d228ce4-069e-4f98-beed-b8e1de17c3d9,1,0,9770fc09-87bf-4fce-9b0d-410efd30edae,9770fc09-87bf-4fce-9b0d-410efd30edae,1,0,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,1,0,20156709-1481-4007-8e89-9ce79fc589fc,20156709-1481-4007-8e89-9ce79fc589fc,1,0,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,1,0,7e7c5abd-b645-4de5-a40e-5805ec4456e2,7e7c5abd-b645-4de5-a40e-5805ec4456e2,1,0,763a16c3-a728-4b65-a485-705990310b4a,763a16c3-a728-4b65-a485-705990310b4a,1,0,65338920-c744-4d1e-b351-848b90a3feda,65338920-c744-4d1e-b351-848b90a3feda,1,0,2aedb1ac-caf1-45c7-913e-82a36637d5d4,2aedb1ac-caf1-45c7-913e-82a36637d5d4,1,0,65f3ad72-ed03-482b-a2f1-05053eef408a,65f3ad72-ed03-482b-a2f1-05053eef408a,1,0,e177e258-7d0c-4fe1-80e5-3b89de9e23d9,e177e258-7d0c-4fe1-80e5-3b89de9e23d9,1,0,3f25ac9f-c6b4-4ccc-bec4-a90c99403823,3f25ac9f-c6b4-4ccc-bec4-a90c99403823,1,0,56177464-5e9f-4598-96bc-eb311993c503,56177464-5e9f-4598-96bc-eb311993c503,1,0,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,1,0,bdfe65f4-4174-4e66-915c-943137981cf0,bdfe65f4-4174-4e66-915c-943137981cf0,1,0,5271de2d-d3a0-4128-90e0-cd8e1ea2ad30,5271de2d-d3a0-4128-90e0-cd8e1ea2ad30,1,0,c895d58a-5be1-4157-81af-f4f6db9b4b9e,c895d58a-5be1-4157-81af-f4f6db9b4b9e,1,0,0d89036c-af6e-4709-847c-0dab74a33d72,0d89036c-af6e-4709-847c-0dab74a33d72,1,0,7d223aab-d4f6-41d5-a701-6fe03517cf50,7d223aab-d4f6-41d5-a701-6fe03517cf50,1,0,631cdd15-eb1f-4903-9073-4de3911ba2e6,631cdd15-eb1f-4903-9073-4de3911ba2e6,1,0,6b10ab0a-8d4e-4847-9ce7-663fb4770c35,6b10ab0a-8d4e-4847-9ce7-663fb4770c35,1,0,42630eee-ce93-40a8-b96e-3eb759f48976,42630eee-ce93-40a8-b96e-3eb759f48976,1,0,174e0187-cf34-4949-8dc2-a1f9aece78dc,174e0187-cf34-4949-8dc2-a1f9aece78dc,1,0,5d9f2db6-704d-45cb-96c3-e59e47ad4fea,5d9f2db6-704d-45cb-96c3-e59e47ad4fea,1,0,e4dbeb50-292f-452f-a0da-a55e5ea936e4,e4dbeb50-292f-452f-a0da-a55e5ea936e4,1,0,8ce6cc1a-8570-4704-b9a3-44e815b2e753,8ce6cc1a-8570-4704-b9a3-44e815b2e753,1,0,71aa2bf7-85c9-40f3-a9b0-f6d666eddd28,71aa2bf7-85c9-40f3-a9b0-f6d666eddd28,1,0,497cbe4d-586d-48a2-8e98-d20e3e09ed42,497cbe4d-586d-48a2-8e98-d20e3e09ed42,1,0,38b7679d-3739-4572-baf2-d8c7b2a94f0a,38b7679d-3739-4572-baf2-d8c7b2a94f0a,1,0,1470f052-f032-46bc-b1ee-54555e725dfd,1470f052-f032-46bc-b1ee-54555e725dfd,1,0,4019a5e9-1f50-44b9-98ba-87c07a0ce4e5,4019a5e9-1f50-44b9-98ba-87c07a0ce4e5,1,0,7d336fdd-5cbf-4c92-a783-f451f7590502,7d336fdd-5cbf-4c92-a783-f451f7590502,1,0,ee8af8ee-e49a-4511-9a91-48814ab99d23,ee8af8ee-e49a-4511-9a91-48814ab99d23,1,0,3a7d9d49-b5e5-4c5c-958e-a4c6afda8b9d,3a7d9d49-b5e5-4c5c-958e-a4c6afda8b9d,1,0,bc10ad8f-383c-469a-8c0e-60805161055b,bc10ad8f-383c-469a-8c0e-60805161055b,1,0,86760ecb-2ddd-40ce-bc4f-94c23027a55e,86760ecb-2ddd-40ce-bc4f-94c23027a55e,1,0,6fbf844e-ee8d-490f-9177-6392d262312f,6fbf844e-ee8d-490f-9177-6392d262312f,1,0,703a3e8a-0204-4e8f-8fa0-a2ed1aeb7662,703a3e8a-0204-4e8f-8fa0-a2ed1aeb7662,1,0,f5d90a5a-1adb-49d6-8640-2e4054bdb99f,f5d90a5a-1adb-49d6-8640-2e4054bdb99f,1,0,37722a34-1148-4cc8-95e6-4645ae9cca98,37722a34-1148-4cc8-95e6-4645ae9cca98,1,0,11f32e0f-7d16-4ebd-9cef-fffd2d64e70a,11f32e0f-7d16-4ebd-9cef-fffd2d64e70a,1,0,cc34bd23-de0a-4b09-8333-e4693576b9f4,cc34bd23-de0a-4b09-8333-e4693576b9f4,1,0,b16d5e79-9d7e-4d3e-9be8-3b2a932abf78,b16d5e79-9d7e-4d3e-9be8-3b2a932abf78,1,0,903af13a-1f73-4145-a3d0-971c3be5fbe6,903af13a-1f73-4145-a3d0-971c3be5fbe6,1,0,fb42ad06-d5a4-40ea-817c-fa7ff385d8db,fb42ad06-d5a4-40ea-817c-fa7ff385d8db,1,0,bc110a6a-26fa-4aa1-a2ef-bdaeaa0a33af,bc110a6a-26fa-4aa1-a2ef-bdaeaa0a33af,1,0,953dbad6-4f5c-4319-874a-db358a77d001,953dbad6-4f5c-4319-874a-db358a77d001,1,0,05243f56-7e9b-4a61-8efb-1b5e525fff21,05243f56-7e9b-4a61-8efb-1b5e525fff21,1,0,7aa86a2d-2b47-447e-8901-806411011279,7aa86a2d-2b47-447e-8901-806411011279,1,0,fca0dfad-f853-4694-9ce9-53a3a10f59b7,fca0dfad-f853-4694-9ce9-53a3a10f59b7,1,0,934b8380-c6e0-49f8-a6c2-91c0ddb2f95e,934b8380-c6e0-49f8-a6c2-91c0ddb2f95e,1,0,57f4ee70-185e-4f2a-91a6-6c0bf93c1000,57f4ee70-185e-4f2a-91a6-6c0bf93c1000,1,0,b4cb92fb-ad82-44ed-9203-397b412b3453,b4cb92fb-ad82-44ed-9203-397b412b3453,1,0,69ceac29-06d3-45f2-b914-7966465cd0d3,69ceac29-06d3-45f2-b914-7966465cd0d3,1,0,b690721d-960b-4374-8d2c-feed3a2b354b,b690721d-960b-4374-8d2c-feed3a2b354b,1,0,271243d3-1871-4a0a-bf7f-63bacacf0a59,271243d3-1871-4a0a-bf7f-63bacacf0a59,1,0,b1ed134b-f2aa-4b06-b7a2-0e524ead04df,b1ed134b-f2aa-4b06-b7a2-0e524ead04df,1,0,5b379a72-8605-4e88-84cb-14272a3b8f5f,5b379a72-8605-4e88-84cb-14272a3b8f5f,1,0,1281fe19-bbca-4a4f-84d8-14187e62000f,1281fe19-bbca-4a4f-84d8-14187e62000f,1,0,ec44f92a-06bf-4a53-a7ba-fbe9846a68a6,ec44f92a-06bf-4a53-a7ba-fbe9846a68a6,1,0,9b7051d5-abc4-416c-a0e6-515d120d78e4,9b7051d5-abc4-416c-a0e6-515d120d78e4,1,0,86d1bc4e-f08d-48c7-8b3a-3c5feb0c843c,86d1bc4e-f08d-48c7-8b3a-3c5feb0c843c,1,0,869938e6-6310-4326-bd15-5b91fe2e0911,869938e6-6310-4326-bd15-5b91fe2e0911,1,0,8ed7254b-bbf8-49d9-8a73-9a91316fd02d,8ed7254b-bbf8-49d9-8a73-9a91316fd02d,1,0,a156521a-ece1-49d3-8056-1c3508273c45,a156521a-ece1-49d3-8056-1c3508273c45,1,0,075d39e0-a77a-4d0b-9260-7524fb5b2d0c,075d39e0-a77a-4d0b-9260-7524fb5b2d0c,1,0,10018f80-3138-4089-bf9a-a5f178f1e295,10018f80-3138-4089-bf9a-a5f178f1e295,1,0,43aba109-4b7f-45ef-9c30-8b754e81911b,43aba109-4b7f-45ef-9c30-8b754e81911b,1,0,4ccd72e1-7fd7-4a3b-8428-71b44992937e,4ccd72e1-7fd7-4a3b-8428-71b44992937e,1,0,46077650-2b2c-4319-8279-41f277971669,46077650-2b2c-4319-8279-41f277971669,1,0,4afe733d-64a0-4ea5-9d12-6e2c86eb91e4,4afe733d-64a0-4ea5-9d12-6e2c86eb91e4,1,0,612f3b95-d7db-4b33-92b5-4873205b424b,612f3b95-d7db-4b33-92b5-4873205b424b,1,0,d7afa1a6-0ac9-4527-8f1c-5317ce259b52,d7afa1a6-0ac9-4527-8f1c-5317ce259b52,1,0,d0b79c3d-b0c5-4eb3-9971-1def1c88698f,d0b79c3d-b0c5-4eb3-9971-1def1c88698f,1,0,e82ebd72-7b5a-4f45-b853-1001bf680a05,e82ebd72-7b5a-4f45-b853-1001bf680a05,1,0,a74879b8-c080-4cc0-b44f-2b7c4dae87fe,a74879b8-c080-4cc0-b44f-2b7c4dae87fe,1,0,e9e9b733-e97a-430d-95ce-45ea27751f64,e9e9b733-e97a-430d-95ce-45ea27751f64,1,0,9f81693c-4ddd-47ec-b111-d073e1510752,9f81693c-4ddd-47ec-b111-d073e1510752,1,0,8a2811be-64c5-44ba-a52c-482c125eb092,8a2811be-64c5-44ba-a52c-482c125eb092,1,0,149104f3-a4c7-47e5-8057-b5bcc754a4f2,149104f3-a4c7-47e5-8057-b5bcc754a4f2,1,0,86ffe9a7-9b3e-49ab-bd88-20269fec56bc,86ffe9a7-9b3e-49ab-bd88-20269fec56bc,1,0,3dd50c66-27f7-4f1e-86e9-c709995c8609,3dd50c66-27f7-4f1e-86e9-c709995c8609,1,0,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,1,0,ed1369c5-c274-45bd-ae91-7648565ae09f,ed1369c5-c274-45bd-ae91-7648565ae09f,1,0,8d0fce61-a22f-4033-9e03-3f00c4a21722,8d0fce61-a22f-4033-9e03-3f00c4a21722,1,0,bfb3f026-e940-49c3-ac30-408186f9e11e,bfb3f026-e940-49c3-ac30-408186f9e11e,1,0,e1dc83eb-a8cd-454b-8de8-cff2049be78c,e1dc83eb-a8cd-454b-8de8-cff2049be78c,1,0,9edd9288-1463-4d67-b9f0-40f351d978e9,9edd9288-1463-4d67-b9f0-40f351d978e9,1,0,c9db6c68-965f-4567-b26e-5d497a389de1,c9db6c68-965f-4567-b26e-5d497a389de1,1,0,4da2f65d-56bd-4140-9b31-e5ccac4a800a,4da2f65d-56bd-4140-9b31-e5ccac4a800a,1,0,eb163bba-b94c-4a78-9c2d-7b519325e3d4,eb163bba-b94c-4a78-9c2d-7b519325e3d4,1,0,58cdbd20-a7f4-4c4c-8a4e-638714cc2699,58cdbd20-a7f4-4c4c-8a4e-638714cc2699,1,0,616cd2cc-eaf4-4586-bca1-c044429b491a,616cd2cc-eaf4-4586-bca1-c044429b491a,1,0,939bdb9a-294b-4b42-a56f-030f69bc29c4,939bdb9a-294b-4b42-a56f-030f69bc29c4,1,0,ee7a763b-bcbf-4ff3-89af-eb7965b33515,ee7a763b-bcbf-4ff3-89af-eb7965b33515,1,0,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,1,0,81d900be-ddc1-417f-ae2c-1aacf040de9a,81d900be-ddc1-417f-ae2c-1aacf040de9a,1,0,c65f69ce-be78-4e8d-b91d-293c4108ce77,c65f69ce-be78-4e8d-b91d-293c4108ce77,1,0,521a5717-0b38-401d-bd72-30cee219bd14,521a5717-0b38-401d-bd72-30cee219bd14,1,0,977c30dc-6f27-4931-9fd5-d12ed147e3ec,977c30dc-6f27-4931-9fd5-d12ed147e3ec,1,0,eea4f72e-dd1b-46c7-b270-876a482236b3,eea4f72e-dd1b-46c7-b270-876a482236b3,1,0,25e8d286-dfbb-4fdf-974b-fe3f6f76eac0,25e8d286-dfbb-4fdf-974b-fe3f6f76eac0,1,0,2d249dad-8b4f-462b-ab13-892639a6e071,2d249dad-8b4f-462b-ab13-892639a6e071,1,0,f6249bf4-d2e7-48f3-808f-d776915d14cb,f6249bf4-d2e7-48f3-808f-d776915d14cb,1,0,75f11ecd-c87a-4a14-a7ca-c755f63d7cf8,75f11ecd-c87a-4a14-a7ca-c755f63d7cf8,1,0,883cdeb0-e747-4157-bbe7-0ebc423a82af,883cdeb0-e747-4157-bbe7-0ebc423a82af,1,0,ba62ac73-91da-4dad-abc7-3cf8acf7e315,ba62ac73-91da-4dad-abc7-3cf8acf7e315,1,0,6a71416d-dba1-4883-9264-597ecf9d6270,6a71416d-dba1-4883-9264-597ecf9d6270,1,0,ce3fc202-7893-4d1b-9c8f-1b3349a5c147,ce3fc202-7893-4d1b-9c8f-1b3349a5c147,1,0,6593baab-fce0-49ed-867e-be242bfc08d7,6593baab-fce0-49ed-867e-be242bfc08d7,1,0,403390cf-d3f8-4dfa-b83d-e2fca4ee0dff,403390cf-d3f8-4dfa-b83d-e2fca4ee0dff,1,0,57aed64d-da61-4c18-af21-dab3afdc5c03,57aed64d-da61-4c18-af21-dab3afdc5c03,1,0,452822b4-a590-44db-ab77-d8c01f7300e7,452822b4-a590-44db-ab77-d8c01f7300e7,1,0,e1132cbb-7045-47e2-bbc7-6e92e4dff131,e1132cbb-7045-47e2-bbc7-6e92e4dff131,1,0,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,1,0,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,1,0,85d7ea13-c521-44b8-9dce-5e57529a21db,85d7ea13-c521-44b8-9dce-5e57529a21db,1,0,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,1,0,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,1,0,19b29d30-e395-42f2-b700-7474bb2cdcb7,19b29d30-e395-42f2-b700-7474bb2cdcb7,1,0,0c38782c-6559-4f1c-88af-aa022285ffbd,0c38782c-6559-4f1c-88af-aa022285ffbd,1,0,eed23203-924d-4092-a1a8-a7cdd72489e5,eed23203-924d-4092-a1a8-a7cdd72489e5,1,0,b0deb957-624b-4bcb-824c-76aedf1affe9,b0deb957-624b-4bcb-824c-76aedf1affe9,1,0,9934e608-593d-45d0-9df3-539f0c8fc385,9934e608-593d-45d0-9df3-539f0c8fc385,1,0,80da4126-4319-425f-8427-7d60652cf754,80da4126-4319-425f-8427-7d60652cf754,1,0,05236ace-bcdd-4eb8-a1fb-5843ee311d10,05236ace-bcdd-4eb8-a1fb-5843ee311d10,1,0,993d8672-af86-4179-a9ef-228303748bcd,993d8672-af86-4179-a9ef-228303748bcd,1,0,0f1b284c-6c9e-4799-bc47-3326c4b7bec2,0f1b284c-6c9e-4799-bc47-3326c4b7bec2,1,0,449060fd-4711-4b9e-93e0-11b35c314fb3,449060fd-4711-4b9e-93e0-11b35c314fb3,1,0,e7efa9d5-ea93-4070-87bb-a4d95116d1b4,e7efa9d5-ea93-4070-87bb-a4d95116d1b4,1,0,0614d340-6524-4715-978d-87ab21377e72,0614d340-6524-4715-978d-87ab21377e72,1,0,d47daac5-ec3b-4d4e-8b01-045a37f7074d,d47daac5-ec3b-4d4e-8b01-045a37f7074d,1,0,9d6ed3b9-35cd-47c0-9dfc-732e5066a071,9d6ed3b9-35cd-47c0-9dfc-732e5066a071,1,0,912cbd30-1ed5-4888-a4b6-98e9215b28e9,912cbd30-1ed5-4888-a4b6-98e9215b28e9,1,0,abf093ce-be63-487d-8be4-be282aa475be,abf093ce-be63-487d-8be4-be282aa475be,1,0,7a910ad6-b922-4716-8140-1540d76296b2,7a910ad6-b922-4716-8140-1540d76296b2,1,0,3fa9aa34-382c-49fa-87d8-34bedcde5836,3fa9aa34-382c-49fa-87d8-34bedcde5836,1,0,ae4825b1-dd4e-4d0e-8133-da6d1a441c36,ae4825b1-dd4e-4d0e-8133-da6d1a441c36,1,0,f7e6da22-c2b7-47c9-8062-e612a56ae61c,f7e6da22-c2b7-47c9-8062-e612a56ae61c,1,0,5189beb9-b939-4f97-aca0-c2f3492ac8b9,5189beb9-b939-4f97-aca0-c2f3492ac8b9,1,0,0b139d7a-b583-4082-b9f2-8f3fb444bd51,0b139d7a-b583-4082-b9f2-8f3fb444bd51,1,0,b8931f98-c1d7-4e9b-be43-065064e7ba95,b8931f98-c1d7-4e9b-be43-065064e7ba95,1,0,ab2b472d-97d5-4c33-86fd-e2cdaedf3f3d,ab2b472d-97d5-4c33-86fd-e2cdaedf3f3d,1,0,60848308-931c-4da3-aa4b-37f6fb4b194f,60848308-931c-4da3-aa4b-37f6fb4b194f,1,0,0761c32c-1de6-4c40-9178-64aeb46b6622,0761c32c-1de6-4c40-9178-64aeb46b6622,1,0,08af8da8-d44b-46f0-a8d3-60421e7b5a1a,08af8da8-d44b-46f0-a8d3-60421e7b5a1a,1,0,54b14504-503b-45f6-9b5d-785b49829425,54b14504-503b-45f6-9b5d-785b49829425,1,0,80d3ee33-1cdc-4af6-85c2-787094526592,80d3ee33-1cdc-4af6-85c2-787094526592,1,0,c8b28660-6cb0-4ef5-85c2-a75da863ba96,c8b28660-6cb0-4ef5-85c2-a75da863ba96,1,0,1cd607b4-49fc-460e-a014-6afe50083b47,1cd607b4-49fc-460e-a014-6afe50083b47,1,0,a215e767-36e9-4408-9d18-7b4be757022a,a215e767-36e9-4408-9d18-7b4be757022a,1,0,a3e262bc-9f0d-480d-a1d1-c2326105d22d,a3e262bc-9f0d-480d-a1d1-c2326105d22d,1,0,8eae0c79-288b-4773-90bb-49299ad45628,8eae0c79-288b-4773-90bb-49299ad45628,1,0,2faa5594-f1b4-4312-b674-82fdf9623105,2faa5594-f1b4-4312-b674-82fdf9623105,1,0,185c1ad3-b5db-49b6-9342-d08e1bf64903,185c1ad3-b5db-49b6-9342-d08e1bf64903,1,0,3c69a4ad-001d-4421-88f6-412e15d710d6,3c69a4ad-001d-4421-88f6-412e15d710d6,1,0,d0373603-5abb-4f7b-8d2f-9f7fb52615aa,d0373603-5abb-4f7b-8d2f-9f7fb52615aa,1,0,f20a35fe-6029-4dc8-b6b4-b098dbce12e8,f20a35fe-6029-4dc8-b6b4-b098dbce12e8,1,0,6a68a08a-ea37-4573-ab9f-ec822f6d250b,6a68a08a-ea37-4573-ab9f-ec822f6d250b,1,0,00e87d04-8104-420b-b2c6-7304889a75b2,00e87d04-8104-420b-b2c6-7304889a75b2,1,0,bde86820-f7bb-463b-97d0-bfa5f8323af0,bde86820-f7bb-463b-97d0-bfa5f8323af0,1,0,b9b24093-810c-4158-846d-e2c7aea54d36,b9b24093-810c-4158-846d-e2c7aea54d36,1,0,289a6aac-dc4e-4fae-8815-853e78d450bb,289a6aac-dc4e-4fae-8815-853e78d450bb,1,0,557e7d89-83ed-45d0-86cc-6e355f14025d,557e7d89-83ed-45d0-86cc-6e355f14025d,1,0,d681b26b-dd8d-46d7-986e-10f05c37a1e4,d681b26b-dd8d-46d7-986e-10f05c37a1e4,1,0,4d3c216e-c04f-4884-8681-1c861c50ce7d,4d3c216e-c04f-4884-8681-1c861c50ce7d,1,0,4a41eee0-c973-4824-a07c-9fcf731f055e,4a41eee0-c973-4824-a07c-9fcf731f055e,1,0,ee756c33-f408-4449-a6bb-3186a0421362,ee756c33-f408-4449-a6bb-3186a0421362,1,0,fbfa8f64-52e4-48f6-b0fb-fd06976dd93d,fbfa8f64-52e4-48f6-b0fb-fd06976dd93d,1,0,6ff66622-4d20-4696-9fe9-4b4faeb21d96,6ff66622-4d20-4696-9fe9-4b4faeb21d96,1,0,46237eec-c206-4d21-883c-27599b9ed38c,46237eec-c206-4d21-883c-27599b9ed38c,1,0,92cbfe14-35c5-440b-9a13-ef8c8ab0630a,92cbfe14-35c5-440b-9a13-ef8c8ab0630a,1,0,8ce759ff-f579-461c-bb1e-9ac2b01e88df,8ce759ff-f579-461c-bb1e-9ac2b01e88df,1,0,8b451909-2c15-48f2-b869-65e7031cc542,8b451909-2c15-48f2-b869-65e7031cc542,1,0,ab6ff81a-56aa-4742-afe4-d7a652e9d2de,ab6ff81a-56aa-4742-afe4-d7a652e9d2de,1,0,7b377fca-4466-476f-9eb2-0b00141103d6,7b377fca-4466-476f-9eb2-0b00141103d6,1,0,9ce5eceb-f366-4035-956e-62721358b154,9ce5eceb-f366-4035-956e-62721358b154,1,0,8b5358e9-5810-45a7-a49e-fe7fe63c73f3,8b5358e9-5810-45a7-a49e-fe7fe63c73f3,1,0,23afa5f6-9c3f-4f79-885b-b20785fc5e45,23afa5f6-9c3f-4f79-885b-b20785fc5e45,1,0,379a8bf7-b760-43d6-b5c4-6393b00e294f,379a8bf7-b760-43d6-b5c4-6393b00e294f,1,0,e44b737f-9076-4070-94ba-ed0b00e60393,e44b737f-9076-4070-94ba-ed0b00e60393,1,0,5582e533-b908-40c9-8c81-876906f0d47e,5582e533-b908-40c9-8c81-876906f0d47e,1,0,71656b8b-2d9b-4ac9-884d-72f47b9c69b7,71656b8b-2d9b-4ac9-884d-72f47b9c69b7,1,0,e0797541-88c2-4ad9-9ff4-d56899e6a6ee,e0797541-88c2-4ad9-9ff4-d56899e6a6ee,1,0,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,1,0,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,1,0,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,1,0,d915d338-3e4c-45c3-aef5-a07cf41b05f6,d915d338-3e4c-45c3-aef5-a07cf41b05f6,1,0,28080e64-cd09-410d-9e3e-3ffdb43d3ace,28080e64-cd09-410d-9e3e-3ffdb43d3ace,1,0,9cfd3d38-4e0e-40f4-ae77-7a997646e4b2,9cfd3d38-4e0e-40f4-ae77-7a997646e4b2,1,0,978640a2-5c4b-4e21-857e-34f00840fba8,978640a2-5c4b-4e21-857e-34f00840fba8,1,0,da2913e3-a29b-423f-9aae-08fed56a7d90,da2913e3-a29b-423f-9aae-08fed56a7d90,1,0,149e72b8-cc03-4b4f-8ca4-07987600c34d,149e72b8-cc03-4b4f-8ca4-07987600c34d,1,0,7649bd7b-fe8c-4338-80fc-153160a5e538,7649bd7b-fe8c-4338-80fc-153160a5e538,1,0,7779cd6d-8fa1-49cb-9bbc-9dfd0979f3f4,7779cd6d-8fa1-49cb-9bbc-9dfd0979f3f4,1,0,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,1,0,6137605e-4850-44ec-b4ee-048bd8e0ec3a,6137605e-4850-44ec-b4ee-048bd8e0ec3a,1,0,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,1,0,0e6e9372-beb4-478e-9428-71b19a60739b,0e6e9372-beb4-478e-9428-71b19a60739b,1,0,a805d33c-2cb0-4862-943f-06ded997b940,a805d33c-2cb0-4862-943f-06ded997b940,1,0,32b11498-542f-46b2-829f-1525936ab7fa,32b11498-542f-46b2-829f-1525936ab7fa,1,0,64afa916-4750-4008-8c6c-2a470fb11283,64afa916-4750-4008-8c6c-2a470fb11283,1,0,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,1,0,35354abc-9a76-4ee8-8796-c24b37365ea0,35354abc-9a76-4ee8-8796-c24b37365ea0,1,0,7078977f-31bf-427e-ac37-e309d81fe999,7078977f-31bf-427e-ac37-e309d81fe999,1,0,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,1,0,d8854555-9e15-4d82-a1fd-656a848a8e8a,d8854555-9e15-4d82-a1fd-656a848a8e8a,1,0,87ed7963-c2e4-4515-b768-47cf72442fd0,87ed7963-c2e4-4515-b768-47cf72442fd0,1,0,53191842-ea05-4491-84d7-071cd201992d,53191842-ea05-4491-84d7-071cd201992d,1,0,86c70449-4cf7-4baf-9742-b82b134ed929,86c70449-4cf7-4baf-9742-b82b134ed929,1,0,af3b1881-163a-4c07-a1d9-77ceadf59c77,af3b1881-163a-4c07-a1d9-77ceadf59c77,1,0,d3443b92-32f5-4ac0-8356-062647efe3d8,d3443b92-32f5-4ac0-8356-062647efe3d8,1,0,b78be6fb-7db8-48c8-ba7b-aab1fea34890,b78be6fb-7db8-48c8-ba7b-aab1fea34890,1,0,bd27276a-e80c-4135-b341-f99a816ffe86,bd27276a-e80c-4135-b341-f99a816ffe86,1,0,35306678-147c-4ad1-a3c6-c80a11afa22f,35306678-147c-4ad1-a3c6-c80a11afa22f,1,0,0da75726-ae71-4d83-a696-a774c787a8a2,0da75726-ae71-4d83-a696-a774c787a8a2,1,0,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,1,0,896a7267-0198-4cbb-b6e6-7aa157c0cc61,896a7267-0198-4cbb-b6e6-7aa157c0cc61,1,0,2005bf54-219b-4111-bff1-e12e2c6dca3e,2005bf54-219b-4111-bff1-e12e2c6dca3e,1,0,abab8f73-d705-4350-b44d-f912649a2190,abab8f73-d705-4350-b44d-f912649a2190,1,0,20c9c25c-f8c9-429f-84bd-543cb809abef,20c9c25c-f8c9-429f-84bd-543cb809abef,1,0,dc5f451e-3275-43a8-9f48-45b83220d461,dc5f451e-3275-43a8-9f48-45b83220d461,1,0,028f5e81-61df-4d13-876d-781c5fd18ee6,028f5e81-61df-4d13-876d-781c5fd18ee6,1,0,3cbb59ef-7f64-4590-8a54-ba01e78283c3,3cbb59ef-7f64-4590-8a54-ba01e78283c3,1,0,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,1,0,388eb513-fadb-40cd-8a7b-33b904dd758e,388eb513-fadb-40cd-8a7b-33b904dd758e,1,0,0613c6aa-e1fe-4632-a396-a17ec773158f,0613c6aa-e1fe-4632-a396-a17ec773158f,1,0,1a330987-4c79-4ab7-b250-db8d32c78751,1a330987-4c79-4ab7-b250-db8d32c78751,1,0,b7295e8e-0aa4-4a49-81ea-0594a358e9ca,b7295e8e-0aa4-4a49-81ea-0594a358e9ca,1,0,555062ed-9a04-41d8-877f-0a667e9a08cd,555062ed-9a04-41d8-877f-0a667e9a08cd,1,0,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,1,0,ac160e1c-fef7-4625-84e0-964b397f6bdb,ac160e1c-fef7-4625-84e0-964b397f6bdb,1,0,b8946d9c-dda8-4b94-8cbf-db62b647c53e,b8946d9c-dda8-4b94-8cbf-db62b647c53e,1,0,24215916-7732-4030-9f88-163f644e94f7,24215916-7732-4030-9f88-163f644e94f7,1,0,69697945-9748-4cea-a20f-e244b46de2e8,69697945-9748-4cea-a20f-e244b46de2e8,1,0,68538fd1-262c-43ea-b09f-8a66643a0062,68538fd1-262c-43ea-b09f-8a66643a0062,1,0,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,1,0,82ad24cc-d9f8-440b-a720-e204101d85da,82ad24cc-d9f8-440b-a720-e204101d85da,1,0,aa63c001-c3da-4179-8fd8-fe2ff510511e,aa63c001-c3da-4179-8fd8-fe2ff510511e,1,0,b2e894b0-6443-4a52-95b6-6b564f809680,b2e894b0-6443-4a52-95b6-6b564f809680,1,0,8010065f-aec8-4768-85ec-9eb7b2b01e7e,8010065f-aec8-4768-85ec-9eb7b2b01e7e,1,0,a44348cb-e20c-4afd-8483-3b9c735b352c,a44348cb-e20c-4afd-8483-3b9c735b352c,1,0,ebfe4c74-6e16-4b64-8a52-cea95c446903,ebfe4c74-6e16-4b64-8a52-cea95c446903,1,0,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,1,0,d912e472-9553-4b96-8b16-7aaff6c14239,d912e472-9553-4b96-8b16-7aaff6c14239,1,0,b04018b5-a74d-43c9-8519-6cc8aa23fe09,b04018b5-a74d-43c9-8519-6cc8aa23fe09,1,0,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,1,0,9283277f-2b75-4c3a-810a-8d4071b3afcc,9283277f-2b75-4c3a-810a-8d4071b3afcc,1,0,d03d5b18-57a2-43c0-99ea-8ad9d5788179,d03d5b18-57a2-43c0-99ea-8ad9d5788179,1,0,c491a7fc-14f9-498a-b7dd-575dfc66878e,c491a7fc-14f9-498a-b7dd-575dfc66878e,1,0,ec966ef2-b291-4937-a164-5c2b461871f8,ec966ef2-b291-4937-a164-5c2b461871f8,1,0,db15f8eb-4736-4b47-9cee-3e6883f0888c,db15f8eb-4736-4b47-9cee-3e6883f0888c,1,0,59064eb2-2770-4f1c-96bd-801926fe68ef,59064eb2-2770-4f1c-96bd-801926fe68ef,1,0,df81cc63-26f2-4e66-bf0b-fd083a6a7d7b,df81cc63-26f2-4e66-bf0b-fd083a6a7d7b,1,0,8a8848b8-345a-452d-bf95-28f9c91c7e95,8a8848b8-345a-452d-bf95-28f9c91c7e95,1,0,440ecfe8-72fd-447b-8680-c4a8c43f2c72,440ecfe8-72fd-447b-8680-c4a8c43f2c72,1,0,5afe3a0f-1bbc-4f04-87b3-f98d54b65a42,5afe3a0f-1bbc-4f04-87b3-f98d54b65a42,1,0,ee9e8f50-4d4f-43aa-99eb-cda2308c903e,ee9e8f50-4d4f-43aa-99eb-cda2308c903e,1,0,4ff043c1-6c0b-4889-a684-23da5a35b9c2,4ff043c1-6c0b-4889-a684-23da5a35b9c2,1,0,6fe56ecb-c969-4c03-8e6b-65395c29e817,6fe56ecb-c969-4c03-8e6b-65395c29e817,1,0,48627a8d-b108-43b8-a58e-fd98e4220639,48627a8d-b108-43b8-a58e-fd98e4220639,1,0,2a8eb62d-2795-48ab-ae02-68527996f411,2a8eb62d-2795-48ab-ae02-68527996f411,1,0,d3bf09be-0f21-4dc3-a525-1c4dc75928ea,d3bf09be-0f21-4dc3-a525-1c4dc75928ea,1,0,5ca880c5-7c34-4c31-a2b8-46265ddea7d4,5ca880c5-7c34-4c31-a2b8-46265ddea7d4,1,0,a9441693-87ca-4157-98e1-63375852755c,a9441693-87ca-4157-98e1-63375852755c,1,0,6303ea55-e8ed-4acc-9717-941eefafc2a9,6303ea55-e8ed-4acc-9717-941eefafc2a9,1,0,5b4e1b83-fc10-4acc-bef7-81c73dbbc453,5b4e1b83-fc10-4acc-bef7-81c73dbbc453,1,0,d0b17206-3949-4513-a47f-02e1a8ba369a,d0b17206-3949-4513-a47f-02e1a8ba369a,1,0,cb4f20d4-13e6-4c27-b491-da7931f4bf05,cb4f20d4-13e6-4c27-b491-da7931f4bf05,1,0,6b2340d7-687f-43a3-8eb8-8ddb86712466,6b2340d7-687f-43a3-8eb8-8ddb86712466,1,0,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,1,0,9328da5c-4689-4a60-8136-ae9eac46ab38,9328da5c-4689-4a60-8136-ae9eac46ab38,1,0,ca5d586f-81bb-40ee-b3bd-de854857c984,ca5d586f-81bb-40ee-b3bd-de854857c984,1,0,32c10512-7bb8-423b-9503-ab2fa41386a4,32c10512-7bb8-423b-9503-ab2fa41386a4,1,0,888edfc4-8140-4675-b267-c32bf1d8d29d,888edfc4-8140-4675-b267-c32bf1d8d29d,1,0,2abbd53a-0ead-42af-8df6-fde663aea300,2abbd53a-0ead-42af-8df6-fde663aea300,1,0,24611bf9-5492-443a-935c-a0058e86493f,24611bf9-5492-443a-935c-a0058e86493f,1,0,42641296-64da-46e0-a407-de2d492f9c90,42641296-64da-46e0-a407-de2d492f9c90,1,0,b834af0b-086c-445d-a271-7e178c324551,b834af0b-086c-445d-a271-7e178c324551,1,0,ec34befe-3c0b-4a75-b943-840c52e7dda5,ec34befe-3c0b-4a75-b943-840c52e7dda5,1,0,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,1,0,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,1,0,6733f1bd-7878-4a33-8995-c07526e87c1a,6733f1bd-7878-4a33-8995-c07526e87c1a,1,0,f7e73257-fae1-465a-ae74-faaa0273a416,f7e73257-fae1-465a-ae74-faaa0273a416,1,0,73f89524-dbe8-426f-8ee6-1277eb1967cc,73f89524-dbe8-426f-8ee6-1277eb1967cc,1,0,ee7d970c-cef7-4740-a357-1fe78f88a6e6,ee7d970c-cef7-4740-a357-1fe78f88a6e6,1,0,13beb01d-dd08-4a6d-863b-651e70bbf51f,13beb01d-dd08-4a6d-863b-651e70bbf51f,1,0,94bc76ae-72a0-418f-98c4-ae0a0326a2da,94bc76ae-72a0-418f-98c4-ae0a0326a2da,1,0,784475ff-eec5-462a-a511-ba31f8374c2e,784475ff-eec5-462a-a511-ba31f8374c2e,1,0,b5b56a64-5550-4da9-8872-d42ab871d21c,b5b56a64-5550-4da9-8872-d42ab871d21c,1,0,e9939b36-bceb-40e2-a182-1d5cc248f353,e9939b36-bceb-40e2-a182-1d5cc248f353,1,0,619d3ac6-40fe-485d-a407-fe065f16b186,619d3ac6-40fe-485d-a407-fe065f16b186,1,0,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,1,0,45a8c780-c067-40d7-bbe9-81f854aacf7a,45a8c780-c067-40d7-bbe9-81f854aacf7a,1,0,57885cac-059a-4a08-aa2c-43b116d2c777,57885cac-059a-4a08-aa2c-43b116d2c777,1,0,c0403df4-b1f2-4d7e-adb5-9ed881c1359b,c0403df4-b1f2-4d7e-adb5-9ed881c1359b,1,0,27e0b5d9-1a4c-45b8-8969-d1d1c39129c1,27e0b5d9-1a4c-45b8-8969-d1d1c39129c1,1,0,626cbb27-6af2-4a9a-959e-15af4417e489,626cbb27-6af2-4a9a-959e-15af4417e489,1,0,e7b0ae70-0192-456c-9dc5-e66049fa9df2,e7b0ae70-0192-456c-9dc5-e66049fa9df2,1,0,68944d09-618e-4fa3-a7af-8c84218e0ac7,68944d09-618e-4fa3-a7af-8c84218e0ac7,1,0,91b12ce3-e8ba-4c9d-9daa-1d5532500314,91b12ce3-e8ba-4c9d-9daa-1d5532500314,1,0,733dc291-0bef-4fe8-ac9f-63440f0c2ad0,733dc291-0bef-4fe8-ac9f-63440f0c2ad0,1,0,356a8091-4c0b-41d0-b8d2-963b3a807469,356a8091-4c0b-41d0-b8d2-963b3a807469,1,0,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,1,0,cb57aabc-eeef-42b4-9bc2-873cebd9618c,cb57aabc-eeef-42b4-9bc2-873cebd9618c,1,0,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,1,0,52f30ed7-aa16-4ce2-9684-e50229ab0015,52f30ed7-aa16-4ce2-9684-e50229ab0015,1,0,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,1,0,54ecaf7b-9bc5-483c-96e1-270bcd323590,54ecaf7b-9bc5-483c-96e1-270bcd323590,1,0,f00e93bf-6e3b-4819-a4e1-33471a6d0fff,f00e93bf-6e3b-4819-a4e1-33471a6d0fff,1,0,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,1,0,58f6f8fa-7473-40f5-973a-6279335d8f33,58f6f8fa-7473-40f5-973a-6279335d8f33,1,0,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,1,0,1e71ec59-55a4-45e8-a8c9-f70c2cb56589,1e71ec59-55a4-45e8-a8c9-f70c2cb56589,1,0,fa3632fe-185b-49aa-85ae-dfb721835d40,fa3632fe-185b-49aa-85ae-dfb721835d40,1,0,a4f15108-477c-465e-aaea-cb495ef52cf5,a4f15108-477c-465e-aaea-cb495ef52cf5,1,0,9cda5c2c-f401-4f63-b445-cef160296e48,9cda5c2c-f401-4f63-b445-cef160296e48,1,0,e8ae4a26-3127-43ae-af7a-c2e278d2611d,e8ae4a26-3127-43ae-af7a-c2e278d2611d,1,0,b923c78f-d074-41b4-b832-086686258f19,b923c78f-d074-41b4-b832-086686258f19,1,0,8ff96413-6fdd-4b8d-a181-ea0d8633defc,8ff96413-6fdd-4b8d-a181-ea0d8633defc,1,0,54604ed2-766b-4308-b99e-447817d82799,54604ed2-766b-4308-b99e-447817d82799,1,0,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,1,0,ee008096-1ae8-4a64-9d3d-14cb15c8be70,ee008096-1ae8-4a64-9d3d-14cb15c8be70,1,0,a0a85b22-63ee-4a05-8b0d-1feb9ee07b0a,a0a85b22-63ee-4a05-8b0d-1feb9ee07b0a,1,0,a4754a7b-971f-4517-963e-b7cb9d57f86d,a4754a7b-971f-4517-963e-b7cb9d57f86d,1,0,f48b4475-2cd9-41df-962a-6529f84985ca,f48b4475-2cd9-41df-962a-6529f84985ca,1,0,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,1,0,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,1,0,bf94feb9-edf7-4df8-b5f5-805613663a0a,bf94feb9-edf7-4df8-b5f5-805613663a0a,1,0,6d852a13-c85e-4e84-8396-f91c1ed0596e,6d852a13-c85e-4e84-8396-f91c1ed0596e,1,0,9c2d5313-a4fd-417e-a340-ad4980d0028b,9c2d5313-a4fd-417e-a340-ad4980d0028b,1,0,4fb4a280-9426-4c41-a9ba-11f9d01a0740,4fb4a280-9426-4c41-a9ba-11f9d01a0740,1,0,1591ee7e-870c-4bf7-9450-be84f1b2506f,1591ee7e-870c-4bf7-9450-be84f1b2506f,1,0,526c688e-a4d4-45f7-8bba-b8ceff38fe27,526c688e-a4d4-45f7-8bba-b8ceff38fe27,1,0,7e32c295-a769-4cff-a3eb-992f7031475f,7e32c295-a769-4cff-a3eb-992f7031475f,1,0,5a398637-a06c-4442-9093-a864fa7f049f,5a398637-a06c-4442-9093-a864fa7f049f,1,0,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,1,0,115a6019-ef87-4126-8ebf-070c1e882940,115a6019-ef87-4126-8ebf-070c1e882940,1,0,162ce023-b2e1-41dc-bcaf-b8e30caccce0,162ce023-b2e1-41dc-bcaf-b8e30caccce0,1,0,67efa786-312f-4c9c-b970-0320e92069af,67efa786-312f-4c9c-b970-0320e92069af,1,0,5b952e35-1037-4447-8293-6d8889692c8b,5b952e35-1037-4447-8293-6d8889692c8b,1,0,2bc2ca58-6cc0-4d4b-8672-f9328c86c2c1,2bc2ca58-6cc0-4d4b-8672-f9328c86c2c1,1,0,05bc8b4e-8c90-4502-8b16-7b1e7625d569,05bc8b4e-8c90-4502-8b16-7b1e7625d569,1,0,ce34d88d-3017-4197-a962-ea23a6a96d32,ce34d88d-3017-4197-a962-ea23a6a96d32,1,0,2cbc16da-aa67-4ad6-82f8-fa6922447be6,2cbc16da-aa67-4ad6-82f8-fa6922447be6,1,0,19d7a1ba-c343-4575-95da-53dac6d4b2cb,19d7a1ba-c343-4575-95da-53dac6d4b2cb,1,0,6cc8b3a0-3377-4b39-b6b0-69c862a15465,6cc8b3a0-3377-4b39-b6b0-69c862a15465,1,0,acb193f4-52e5-4572-a79b-b825a2f6525f,acb193f4-52e5-4572-a79b-b825a2f6525f,1,0,5d46f719-e468-48e2-b4ec-acb85c710451,5d46f719-e468-48e2-b4ec-acb85c710451,1,0,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,1,0,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,1,0,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,1,0,733d4494-01e2-46f5-a49b-f289267a90c9,733d4494-01e2-46f5-a49b-f289267a90c9,1,0,1e14d062-1d5a-4939-8ce6-4d9514990376,1e14d062-1d5a-4939-8ce6-4d9514990376,1,0,f86f24d2-9a83-47ae-9d95-b49a0a295770,f86f24d2-9a83-47ae-9d95-b49a0a295770,1,0,8368e1fa-da0c-4a9b-9d50-a122933c7899,8368e1fa-da0c-4a9b-9d50-a122933c7899,1,0,37986729-a275-4e86-8613-faee9a4f2525,37986729-a275-4e86-8613-faee9a4f2525,1,0,0f0ac56d-b068-46f2-8440-731683c2b42a,0f0ac56d-b068-46f2-8440-731683c2b42a,1,0,5814cb3a-8f7c-45b4-a590-b69d4912120f,5814cb3a-8f7c-45b4-a590-b69d4912120f,1,0,f06c8396-65ec-4ece-aed0-d45b2d8969b5,f06c8396-65ec-4ece-aed0-d45b2d8969b5,1,0,1faeab7f-7bd7-496d-8882-4aab6c425854,1faeab7f-7bd7-496d-8882-4aab6c425854,1,0,5c17a594-eb0b-4cdf-af35-0eaba968e065,5c17a594-eb0b-4cdf-af35-0eaba968e065,1,0,af922fb8-a99c-4154-89fe-d30a4d13024a,af922fb8-a99c-4154-89fe-d30a4d13024a,1,0,24c2f463-2bbb-471f-a409-507afad52caf,24c2f463-2bbb-471f-a409-507afad52caf,1,0,cbb07013-9ae1-43ec-8142-a724d788cb67,cbb07013-9ae1-43ec-8142-a724d788cb67,1,0,2403ac84-b513-4aa0-9a68-8d1ad705ce24,2403ac84-b513-4aa0-9a68-8d1ad705ce24,1,0,952b49e0-e1a1-4130-8fb2-083e3988255c,952b49e0-e1a1-4130-8fb2-083e3988255c,1,0,367b227f-f66e-4cec-9fc3-850bca8bc6c8,367b227f-f66e-4cec-9fc3-850bca8bc6c8,1,0,1a3a8a3a-dc34-4491-883d-57c3fb69840a,1a3a8a3a-dc34-4491-883d-57c3fb69840a,1,0,7fcb9d79-1144-4099-8d7f-309d3bf045a5,7fcb9d79-1144-4099-8d7f-309d3bf045a5,1,0,db418313-8583-48a9-9fec-e2c5de4fdf76,db418313-8583-48a9-9fec-e2c5de4fdf76,1,0,6277a3b5-b158-4b58-a92b-5efdf2dabac0,6277a3b5-b158-4b58-a92b-5efdf2dabac0,1,0,2f26970e-b964-43e2-8d6d-999bbc577689,2f26970e-b964-43e2-8d6d-999bbc577689,1,0,65a50026-88e7-45dd-bb0c-f212218ca093,65a50026-88e7-45dd-bb0c-f212218ca093,1,0,ed9e5fbe-1db8-4fb9-a9fa-bb1927cae196,ed9e5fbe-1db8-4fb9-a9fa-bb1927cae196,1,0,1dd2b2c4-00aa-4029-ba32-fe82aa5c6cbe,1dd2b2c4-00aa-4029-ba32-fe82aa5c6cbe,1,0,2f4ea53a-c84d-4d5f-ae7a-817a20ccd96a,2f4ea53a-c84d-4d5f-ae7a-817a20ccd96a,1,0,b2a39c8a-d884-4dfe-a593-e6788dabbd6b,b2a39c8a-d884-4dfe-a593-e6788dabbd6b,1,0,3d0afdb2-ab8f-43c0-920a-88ed85545b2f,3d0afdb2-ab8f-43c0-920a-88ed85545b2f,1,0,17477f72-0622-445c-9cb7-2c5a5a65bbe0,17477f72-0622-445c-9cb7-2c5a5a65bbe0,1,0,01a1fd57-6c09-4a5b-9f75-da4366159423,01a1fd57-6c09-4a5b-9f75-da4366159423,1,0,71d79b25-3682-4f2c-b6b2-a307e3e72844,71d79b25-3682-4f2c-b6b2-a307e3e72844,1,0,45c1ed0d-202e-4289-820f-e1de0f544386,45c1ed0d-202e-4289-820f-e1de0f544386,1,0,e889e80f-97c9-43c6-8268-d652764fcafb,e889e80f-97c9-43c6-8268-d652764fcafb,1,0,4eb48d3a-e2d5-4db5-b08b-4b6ccc701f77,4eb48d3a-e2d5-4db5-b08b-4b6ccc701f77,1,0,95ccaaf2-f6ca-4540-8a39-3c90121c4236,95ccaaf2-f6ca-4540-8a39-3c90121c4236,1,0,7c920b8b-1dbf-4f7e-99af-1ca784a59a64,7c920b8b-1dbf-4f7e-99af-1ca784a59a64,1,0,f47a9bec-2a9f-4955-a432-acb63a5b0e46,f47a9bec-2a9f-4955-a432-acb63a5b0e46,1,0,1ba73b6b-cb72-4370-a268-279dcd7a54b9,1ba73b6b-cb72-4370-a268-279dcd7a54b9,1,0,49de6b63-a845-4b5a-9818-18a3e0bb6fe8,49de6b63-a845-4b5a-9818-18a3e0bb6fe8,1,0,b787818e-5572-4ef2-ba54-1e9b69569824,b787818e-5572-4ef2-ba54-1e9b69569824,1,0,1e13bd37-61b5-4901-a607-e00e5d1900a8,1e13bd37-61b5-4901-a607-e00e5d1900a8,1,0,395b43e4-c18b-4f68-b99c-aed8d4b8cac9,395b43e4-c18b-4f68-b99c-aed8d4b8cac9,1,0,231d7b21-c00c-4782-b610-d56593be436f,231d7b21-c00c-4782-b610-d56593be436f,1,0,79250d1a-77ff-4015-a5b5-83460b1611e2,79250d1a-77ff-4015-a5b5-83460b1611e2,1,0,60018ee0-71ec-4975-a95d-f6f188748ff2,60018ee0-71ec-4975-a95d-f6f188748ff2,1,0,68d35468-279a-43ef-9d71-fed44a792177,68d35468-279a-43ef-9d71-fed44a792177,1,0,77bec3d8-582a-4156-861b-4902008f014c,77bec3d8-582a-4156-861b-4902008f014c,1,0,2ad1caba-7a89-4389-934f-419970260961,2ad1caba-7a89-4389-934f-419970260961,1,0,bfc1a708-662d-4dc1-82b4-7b09bb1b0751,bfc1a708-662d-4dc1-82b4-7b09bb1b0751,1,0,f88c4a72-368c-4f45-bb2c-d18f214a5079,f88c4a72-368c-4f45-bb2c-d18f214a5079,1,0,611876ba-7e6e-40c3-89a9-bb9b19cd1bfb,611876ba-7e6e-40c3-89a9-bb9b19cd1bfb,1,0,9dc2e313-c086-4fd9-83e8-911859ef480d,9dc2e313-c086-4fd9-83e8-911859ef480d,1,0,8a14ced0-9e45-4b3a-a135-11413c3a33c2,8a14ced0-9e45-4b3a-a135-11413c3a33c2,1,0,af7377db-0b27-42f7-a639-e2feb4015412,af7377db-0b27-42f7-a639-e2feb4015412,1,0,e1a200e2-64f3-434c-ae0d-5f24b9d65c9b,e1a200e2-64f3-434c-ae0d-5f24b9d65c9b,1,0,ab7db146-f26a-418a-8c45-e2513bf84e08,ab7db146-f26a-418a-8c45-e2513bf84e08,1,0,ece3bd8d-6616-44d5-9c14-6b3557738872,ece3bd8d-6616-44d5-9c14-6b3557738872,1,0,663a80ba-b97e-4265-a627-4a7d273f9472,663a80ba-b97e-4265-a627-4a7d273f9472,1,0,bf3304c0-5078-478f-bbf8-6178264c5f26,bf3304c0-5078-478f-bbf8-6178264c5f26,1,0,fbf754c3-ab89-4704-b01a-67f8bcea0c7c,fbf754c3-ab89-4704-b01a-67f8bcea0c7c,1,0,3b0afd55-f08d-4d59-b6df-d7c4d1c52446,3b0afd55-f08d-4d59-b6df-d7c4d1c52446,1,0,4893ad50-df19-4d86-9469-40491ba733c9,4893ad50-df19-4d86-9469-40491ba733c9,1,0,25a65c1e-8e67-4135-843d-1e0da72dfd64,25a65c1e-8e67-4135-843d-1e0da72dfd64,1,0,5724fbd5-4d91-4e6d-ae24-8925a4d83c83,5724fbd5-4d91-4e6d-ae24-8925a4d83c83,1,0,29a6416e-b0f5-4111-8f86-1ba80244e73a,29a6416e-b0f5-4111-8f86-1ba80244e73a,1,0,0f49085a-9b83-4256-be60-f341b2ef132e,0f49085a-9b83-4256-be60-f341b2ef132e,1,0,f44c66d6-cfe2-482f-a921-de3db3cd09ea,f44c66d6-cfe2-482f-a921-de3db3cd09ea,1,0,5ec1b7af-f4bc-4ec1-8f43-85c4f9d146a0,5ec1b7af-f4bc-4ec1-8f43-85c4f9d146a0,1,0,c521bd61-386e-41c8-bcc3-29d54b63cc32,c521bd61-386e-41c8-bcc3-29d54b63cc32,1,0,d46e3424-6d30-4229-9a56-ab256517534a,d46e3424-6d30-4229-9a56-ab256517534a,1,0,09d3633d-8e8c-47f3-8f34-d70eb94577e1,09d3633d-8e8c-47f3-8f34-d70eb94577e1,1,0,fe868143-363b-4da1-889b-98d4dd10a1fd,fe868143-363b-4da1-889b-98d4dd10a1fd,1,0,b791a549-ae94-46f2-8f04-771fdeb4cc54,b791a549-ae94-46f2-8f04-771fdeb4cc54,1,0,4681cb63-c581-4c08-b18c-016d9b478ef2,4681cb63-c581-4c08-b18c-016d9b478ef2,1,0,041c364f-0498-494f-9e41-82cb416c0862,041c364f-0498-494f-9e41-82cb416c0862,1,0,913830c8-da01-4b7e-9d83-d406c2fefd49,913830c8-da01-4b7e-9d83-d406c2fefd49,1,0,ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171,ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171,1,0,9f1c8979-2b3d-4a96-af6c-4577541696a3,9f1c8979-2b3d-4a96-af6c-4577541696a3,1,0,5adaafcf-3d67-418d-b47d-d0d8c65f1f46,5adaafcf-3d67-418d-b47d-d0d8c65f1f46,1,0,8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5,8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5,1,0,f68ec923-89c8-4c83-80a2-2d5e096dbbd8,f68ec923-89c8-4c83-80a2-2d5e096dbbd8,1,0,f278bdf8-543a-4427-b2f1-3670c61502ae,f278bdf8-543a-4427-b2f1-3670c61502ae,1,0,00ce0cd2-9840-49a0-b9df-dc64becd3e65,00ce0cd2-9840-49a0-b9df-dc64becd3e65,1,0,db6f11c0-8530-43c1-811a-48797be89ec1,db6f11c0-8530-43c1-811a-48797be89ec1,1,0,c2782a2b-f910-4d4d-ba1b-49ef7854bae0,c2782a2b-f910-4d4d-ba1b-49ef7854bae0,1,0,293cda8c-1cc8-42c0-a68f-d22163aed4f1,293cda8c-1cc8-42c0-a68f-d22163aed4f1,1,0,5e48841c-0a65-457f-8952-fa97aae3207d,5e48841c-0a65-457f-8952-fa97aae3207d,1,0,ee0275e4-a497-4623-9d2f-6308ea2e70ca,ee0275e4-a497-4623-9d2f-6308ea2e70ca,1,0,ec37d236-db36-44ef-afc2-267af1f40c1f,ec37d236-db36-44ef-afc2-267af1f40c1f,1,0,d835f08d-79c6-4e79-a7c1-f00dc05778b9,d835f08d-79c6-4e79-a7c1-f00dc05778b9,1,0,32371dfd-c890-4bed-bd68-45db299c9caf,32371dfd-c890-4bed-bd68-45db299c9caf,1,0,eeb298cf-8df3-41fe-bb48-9c83a24a8206,eeb298cf-8df3-41fe-bb48-9c83a24a8206,1,0,04055821-03ce-4049-af2c-8670c80517f6,04055821-03ce-4049-af2c-8670c80517f6,1,0,0101305d-62eb-4802-9cd4-d615a518d842,0101305d-62eb-4802-9cd4-d615a518d842,1,0,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,1,0,1d429511-9446-4102-95f4-df676125e14c,1d429511-9446-4102-95f4-df676125e14c,1,0,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,1,0,7c424424-9660-462d-9cf2-4c1e6bd284fa,7c424424-9660-462d-9cf2-4c1e6bd284fa,1,0,e118f957-ab2c-473b-ab64-37032f727416,e118f957-ab2c-473b-ab64-37032f727416,1,0,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,1,0,21f64e5f-dc94-4ce9-b836-e75646ae3325,21f64e5f-dc94-4ce9-b836-e75646ae3325,1,0,82e8a180-f2e1-406c-9609-89d33504aff2,82e8a180-f2e1-406c-9609-89d33504aff2,1,0,e7437c81-3d5b-466e-880c-8febe4a68e88,e7437c81-3d5b-466e-880c-8febe4a68e88,1,0,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,1,0,307771e6-bcf7-4016-b369-e1655bbe9e94,307771e6-bcf7-4016-b369-e1655bbe9e94,1,0,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,1,0,38fc6a54-846c-40b0-9254-3261f540bf18,38fc6a54-846c-40b0-9254-3261f540bf18,1,0,d9134d0c-56cd-4b8f-ab11-ae37fc306801,d9134d0c-56cd-4b8f-ab11-ae37fc306801,1,0,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,1,0,8f2af24b-f5fa-4f6d-831e-28453bdedefc,8f2af24b-f5fa-4f6d-831e-28453bdedefc,1,0,d119e21d-0087-4f22-b3bd-b14707b65330,d119e21d-0087-4f22-b3bd-b14707b65330,1,0,dc9b4072-11de-40fe-bf2a-f7b15af0a250,dc9b4072-11de-40fe-bf2a-f7b15af0a250,1,0,e2cf5ca9-c2a0-4506-89e6-318cad0a48a3,e2cf5ca9-c2a0-4506-89e6-318cad0a48a3,1,0,aa0e290d-21ab-4197-b8f3-cf1f97ab1b98,aa0e290d-21ab-4197-b8f3-cf1f97ab1b98,1,0,eefa9859-4168-4a10-923f-e4a713c99a3b,eefa9859-4168-4a10-923f-e4a713c99a3b,1,0,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,1,0,932b1c1a-72eb-49cd-8218-d0ced9c454d8,932b1c1a-72eb-49cd-8218-d0ced9c454d8,1,0,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,1,0,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,1,0,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,1,0,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,1,0,5dd336c4-88c5-4f53-acf0-5f86a658c528,5dd336c4-88c5-4f53-acf0-5f86a658c528,1,0,c723112b-286d-46f1-989d-81252062a025,c723112b-286d-46f1-989d-81252062a025,1,0,67e8b47e-4bad-4b2f-b196-8a9708893051,67e8b47e-4bad-4b2f-b196-8a9708893051,1,0,39bddcde-697c-4e77-adfd-e4a77529ea97,39bddcde-697c-4e77-adfd-e4a77529ea97,1,0,a3b15381-bf9b-4b26-96eb-392fa2cc8223,a3b15381-bf9b-4b26-96eb-392fa2cc8223,1,0,a583e53a-3f3c-48c7-8928-37ce40b2bafe,a583e53a-3f3c-48c7-8928-37ce40b2bafe,1,0,a844dd4a-274a-4894-9446-031dbe006084,a844dd4a-274a-4894-9446-031dbe006084,1,0,9a740f81-5437-47af-8ed9-ea62edcb2ea1,9a740f81-5437-47af-8ed9-ea62edcb2ea1,1,0,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,1,0,77bdd30f-4933-4bda-9c7a-b0a097da0910,77bdd30f-4933-4bda-9c7a-b0a097da0910,1,0,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,1,0,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,1,0,8e9eb604-5f15-4ef5-8906-5bcd57b3d099,8e9eb604-5f15-4ef5-8906-5bcd57b3d099,1,0,a682e9e1-284f-4e32-86b2-6736f159f585,a682e9e1-284f-4e32-86b2-6736f159f585,1,0,84f0bd89-9b86-440f-b942-9b685e22233e,84f0bd89-9b86-440f-b942-9b685e22233e,1,0,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,1,0,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,1,0,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,1,0,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,1,0,fabf8a0b-366f-4f23-9377-315534bb854b,fabf8a0b-366f-4f23-9377-315534bb854b,1,0,7aac6439-64c9-4492-b866-bf91dda82d06,7aac6439-64c9-4492-b866-bf91dda82d06,1,0,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,1,0,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,1,0,08b86f29-64ef-467a-af1a-d27ffdf621ba,08b86f29-64ef-467a-af1a-d27ffdf621ba,1,0,6483d1ab-c53d-4985-ad7e-b799adbcd9da,6483d1ab-c53d-4985-ad7e-b799adbcd9da,1,0,82f66233-ed13-49ae-ab72-7cf91c88c760,82f66233-ed13-49ae-ab72-7cf91c88c760,1,0,75cddbcd-e960-4164-81d8-ac0a2a36e95b,75cddbcd-e960-4164-81d8-ac0a2a36e95b,1,0,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,1,0,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,1,0,d9151001-a911-45c1-a8e6-dcf0da623ed3,d9151001-a911-45c1-a8e6-dcf0da623ed3,1,0,42f4ad3c-3724-4032-82f0-10c8dbe6cc9f,42f4ad3c-3724-4032-82f0-10c8dbe6cc9f,1,0,bbd8b83d-413a-4ffc-8351-e0ec4f4ae619,bbd8b83d-413a-4ffc-8351-e0ec4f4ae619,1,0,c49cef0d-3b71-4e66-9e35-72b94920dae5,c49cef0d-3b71-4e66-9e35-72b94920dae5,1,0,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,1,0,e589a693-ff50-4c36-ae26-a8fcae966d57,e589a693-ff50-4c36-ae26-a8fcae966d57,1,0,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,1,0,90f023f5-5b48-4f98-bfc6-b704277a355d,90f023f5-5b48-4f98-bfc6-b704277a355d,1,0,99485603-706d-4301-be25-82b1c0ee8f4d,99485603-706d-4301-be25-82b1c0ee8f4d,1,0,e7a28021-c75e-41b2-9974-cf4beee34d28,e7a28021-c75e-41b2-9974-cf4beee34d28,1,0,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,1,0,2a603c61-4cbf-4c6d-a0b2-40c835d36737,2a603c61-4cbf-4c6d-a0b2-40c835d36737,1,0,a8d7f071-401b-499e-957c-d077d8002e54,a8d7f071-401b-499e-957c-d077d8002e54,1,0,b6206c73-cf17-4e74-a14d-f2a2ef2b2cc1,b6206c73-cf17-4e74-a14d-f2a2ef2b2cc1,1,0,b363f72f-3629-453c-9f7d-9828ef6de733,b363f72f-3629-453c-9f7d-9828ef6de733,1,0,211a539b-4be9-4816-98f6-f756e65eafd8,211a539b-4be9-4816-98f6-f756e65eafd8,1,0,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,1,0,e9b9da80-7806-4c9c-a002-01cfa3109169,e9b9da80-7806-4c9c-a002-01cfa3109169,1,0,a271041d-0203-4ecd-bb39-70256c50192e,a271041d-0203-4ecd-bb39-70256c50192e,1,0,c6c26c3c-de7a-4ed4-944d-ada62cf1ab8f,c6c26c3c-de7a-4ed4-944d-ada62cf1ab8f,1,0,a54872fc-4e7e-4829-8564-1b2e7f0ee134,a54872fc-4e7e-4829-8564-1b2e7f0ee134,1,0,fe10d76e-3f80-4529-83a8-74c452a781f6,fe10d76e-3f80-4529-83a8-74c452a781f6,1,0,e3d1a7f5-ba86-414e-b2d2-89cc9db51667,e3d1a7f5-ba86-414e-b2d2-89cc9db51667,1,0,13333d66-ff04-49ec-973a-1229da8c9f50,13333d66-ff04-49ec-973a-1229da8c9f50,1,0,cb8ab5b6-876f-4aae-952f-2284bf0f539d,cb8ab5b6-876f-4aae-952f-2284bf0f539d,1,0,c9281eef-2e73-4b0f-ab72-7b4f6f10d787,c9281eef-2e73-4b0f-ab72-7b4f6f10d787,1,0,4a6fde33-6a58-4827-bdf9-b5e28e8cff6b,4a6fde33-6a58-4827-bdf9-b5e28e8cff6b,1,0,e2eadc5b-1b78-4ae4-8a55-a42402bb458b,e2eadc5b-1b78-4ae4-8a55-a42402bb458b,1,0,1e7effa9-3d8c-4d6c-bad2-98a3fd57ff33,1e7effa9-3d8c-4d6c-bad2-98a3fd57ff33,1,0,4c353b16-e6b6-4bd2-9d22-ce50a6281402,4c353b16-e6b6-4bd2-9d22-ce50a6281402,1,0,31f12f68-e5f7-4078-aca4-ebe32699fd6c,31f12f68-e5f7-4078-aca4-ebe32699fd6c,1,0,7e67f946-a80f-428e-a0eb-22c1a58b6fcf,7e67f946-a80f-428e-a0eb-22c1a58b6fcf,1,0,040cd37a-d272-4a87-b125-25d2cb8a2f9e,040cd37a-d272-4a87-b125-25d2cb8a2f9e,1,0,0f3e12fd-d60c-4323-8010-3f2951012d36,0f3e12fd-d60c-4323-8010-3f2951012d36,1,0,cf8c78d6-e1e0-4953-9928-b8d333e2c1ca,cf8c78d6-e1e0-4953-9928-b8d333e2c1ca,1,0,970421ca-4cb5-41f1-8e83-91ea4481ba9a,970421ca-4cb5-41f1-8e83-91ea4481ba9a,1,0,eb7aed6a-718d-4439-bea6-e7ede4987e3d,eb7aed6a-718d-4439-bea6-e7ede4987e3d,1,0,51ab4435-d8a2-4f54-b2ff-9465b0a4eef3,51ab4435-d8a2-4f54-b2ff-9465b0a4eef3,1,0,2f9d50bd-3e82-4321-81e6-2290b5a8a25e,2f9d50bd-3e82-4321-81e6-2290b5a8a25e,1,0,63a34a52-83e7-4644-8a70-9a845b5b18f2,63a34a52-83e7-4644-8a70-9a845b5b18f2,1,0,6f612a9e-c264-4856-98cf-e1a5b8ff7c97,6f612a9e-c264-4856-98cf-e1a5b8ff7c97,1,0,6d7b4670-9c33-41da-afca-bf1e01447623,6d7b4670-9c33-41da-afca-bf1e01447623,1,0,de31505e-3190-4b8c-81e9-8e2c2c7a1809,de31505e-3190-4b8c-81e9-8e2c2c7a1809,1,0,a07f12e8-f62c-4325-b0f4-df68b4b13e45,a07f12e8-f62c-4325-b0f4-df68b4b13e45,1,0,960dc389-b6bb-40ad-bcf7-a07b8c25d6f5,960dc389-b6bb-40ad-bcf7-a07b8c25d6f5,1,0,d8d61ffe-518a-4f06-ba47-238c0973a01a,d8d61ffe-518a-4f06-ba47-238c0973a01a,1,0,12b82221-3a4e-4d65-b1eb-001cc22725a7,12b82221-3a4e-4d65-b1eb-001cc22725a7,1,0,b301cd92-809f-4b0e-966b-8ab95e85ecb3,b301cd92-809f-4b0e-966b-8ab95e85ecb3,1,0,f0c12406-79a9-48e3-b470-b2148d3c9990,f0c12406-79a9-48e3-b470-b2148d3c9990,1,0,a587b305-efbf-43be-bf2e-95c4a33e9f3b,a587b305-efbf-43be-bf2e-95c4a33e9f3b,1,0,ba156cdc-ac78-4827-9598-f0bb7cc7569c,ba156cdc-ac78-4827-9598-f0bb7cc7569c,1,0,c7e646e7-c353-4549-ac4a-1b088be7f684,c7e646e7-c353-4549-ac4a-1b088be7f684,1,0,1db14384-34b2-422d-a7ee-fc930f48cfd1,1db14384-34b2-422d-a7ee-fc930f48cfd1,1,0,4b792d87-b16f-47b1-85a8-781365c2f135,4b792d87-b16f-47b1-85a8-781365c2f135,1,0,73eff626-a363-4a5a-879e-61ef6ce0726f,73eff626-a363-4a5a-879e-61ef6ce0726f,1,0,acf15b79-a6c4-4c46-8013-50d3b223baf6,acf15b79-a6c4-4c46-8013-50d3b223baf6,1,0,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,1,0,2d8d5d74-2bc0-4282-af66-e4a37694c147,2d8d5d74-2bc0-4282-af66-e4a37694c147,1,0,cfd31341-287b-4684-9ac0-b28b4e066f15,cfd31341-287b-4684-9ac0-b28b4e066f15,1,0,81de1b0b-7f2d-4098-ae99-061c6a90dc29,81de1b0b-7f2d-4098-ae99-061c6a90dc29,1,0,77c8a065-a8aa-4f39-93b6-c88f4c38ec66,77c8a065-a8aa-4f39-93b6-c88f4c38ec66,1,0,366fa6da-d3bf-4bb0-9a55-a307f9edee6a,366fa6da-d3bf-4bb0-9a55-a307f9edee6a,1,0,dd0610c8-cd87-4fe2-8a1f-70157132785b,dd0610c8-cd87-4fe2-8a1f-70157132785b,1,0,f829e2a9-5bdb-4171-8b32-8d10d5968813,f829e2a9-5bdb-4171-8b32-8d10d5968813,1,0,647ba8f8-57f7-4c19-af59-525517c1e392,647ba8f8-57f7-4c19-af59-525517c1e392,1,0,39062cb3-4ae8-4c0d-889b-038a55179946,39062cb3-4ae8-4c0d-889b-038a55179946,1,0,c62d4212-36ca-4afb-bac9-269b6f64ca51,c62d4212-36ca-4afb-bac9-269b6f64ca51,1,0,5cec5e16-46ad-4f8c-b869-f5b1cc487884,5cec5e16-46ad-4f8c-b869-f5b1cc487884,1,0,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,1,0,7aacdf81-49fd-47a3-a36a-c483f1b05872,7aacdf81-49fd-47a3-a36a-c483f1b05872,1,0,857015e2-afb2-403d-bfb7-7acb5080797b,857015e2-afb2-403d-bfb7-7acb5080797b,1,0,5657286b-114b-41de-ab7d-45d0f0d95e2d,5657286b-114b-41de-ab7d-45d0f0d95e2d,1,0,42a0271e-6783-44db-95c1-09805ae01f58,42a0271e-6783-44db-95c1-09805ae01f58,1,0,8628783e-4fad-4dff-8220-9e0ddc8580f8,8628783e-4fad-4dff-8220-9e0ddc8580f8,1,0,356fc245-3034-42d1-84d0-632c6dc7a3d5,356fc245-3034-42d1-84d0-632c6dc7a3d5,1,0,07462664-6b58-4f5a-9b3f-2e5c376f17df,07462664-6b58-4f5a-9b3f-2e5c376f17df,1,0,6f23e946-f700-424b-b9bf-3a9c8846908d,6f23e946-f700-424b-b9bf-3a9c8846908d,1,0,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,1,0,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,1,0,2aafb1a1-4321-47e9-9783-03ab616a2873,2aafb1a1-4321-47e9-9783-03ab616a2873,1,0,71109997-6da0-4eaf-bbf2-f94fa24f37cc,71109997-6da0-4eaf-bbf2-f94fa24f37cc,1,0,a3deeef2-f8a2-462f-a57f-87d89e4ec12a,a3deeef2-f8a2-462f-a57f-87d89e4ec12a,1,0,d601281c-379d-4a9d-843e-478fd6567415,d601281c-379d-4a9d-843e-478fd6567415,1,0,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,1,0,427e6f15-334e-42be-9554-895d8f7ebfc6,427e6f15-334e-42be-9554-895d8f7ebfc6,1,0,02abb5e3-9d4e-4c45-af19-71796966ed19,02abb5e3-9d4e-4c45-af19-71796966ed19,1,0,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,1,0,36bc8523-41a5-48ff-9bd0-758d078c4408,36bc8523-41a5-48ff-9bd0-758d078c4408,1,0,94ca1b45-3cf0-4857-8299-999c93f4fb56,94ca1b45-3cf0-4857-8299-999c93f4fb56,1,0,ee8419c6-79ca-4546-9a66-bacaa08d2a73,ee8419c6-79ca-4546-9a66-bacaa08d2a73,1,0,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,1,0,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,1,0,ada11ea2-94d5-4172-a383-a51774599568,ada11ea2-94d5-4172-a383-a51774599568,1,0,50515bbc-43ee-4b00-bfc5-105b7981bd8f,50515bbc-43ee-4b00-bfc5-105b7981bd8f,1,0,1ea080b0-0a11-4152-b8bb-4918bc142a23,1ea080b0-0a11-4152-b8bb-4918bc142a23,1,0,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,1,0,6930e471-7935-4d68-a980-2acde93ba801,6930e471-7935-4d68-a980-2acde93ba801,1,0,2c425fa5-b10b-4a6f-926a-5cb4c1f2d491,2c425fa5-b10b-4a6f-926a-5cb4c1f2d491,1,0,5135cc48-c749-4acb-a225-d110f386f482,5135cc48-c749-4acb-a225-d110f386f482,1,0,15e6f31b-556a-4f47-9f40-2f69ac7fcb43,15e6f31b-556a-4f47-9f40-2f69ac7fcb43,1,0,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,1,0,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,1,0,2e9fa546-96fb-4ecb-b933-7921e131e89b,2e9fa546-96fb-4ecb-b933-7921e131e89b,1,0,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,1,0,637a132b-1a88-44ba-b45f-ed4ed1ac1001,637a132b-1a88-44ba-b45f-ed4ed1ac1001,1,0,c3efa853-cd29-4618-929f-e3bec33dfd65,c3efa853-cd29-4618-929f-e3bec33dfd65,1,0,62185c28-3d24-487a-9441-b309dcf11e31,62185c28-3d24-487a-9441-b309dcf11e31,1,0,9f264aeb-664d-4724-8248-11873d63ef3b,9f264aeb-664d-4724-8248-11873d63ef3b,1,0,b926d058-53a9-4eea-b4f9-98e77f798dd9,b926d058-53a9-4eea-b4f9-98e77f798dd9,1,0,495e2c77-4868-4191-ac18-f94e55a5982e,495e2c77-4868-4191-ac18-f94e55a5982e,1,0,20191a65-322c-457d-85f5-ed1258b6fe8e,20191a65-322c-457d-85f5-ed1258b6fe8e,1,0,d71ca3bc-e41a-44d9-afe4-c68f1211b3a1,d71ca3bc-e41a-44d9-afe4-c68f1211b3a1,1,0,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,1,0,769c60aa-44f4-4c98-a461-d3f5c2b67f61,769c60aa-44f4-4c98-a461-d3f5c2b67f61,1,0,f9809c99-0eaa-4249-967c-a4bef4763277,f9809c99-0eaa-4249-967c-a4bef4763277,1,0,37fa88a0-f2c1-455f-a28d-74165e8b933d,37fa88a0-f2c1-455f-a28d-74165e8b933d,1,0,e4476f09-909b-49f7-8e01-72eea8ceaca6,e4476f09-909b-49f7-8e01-72eea8ceaca6,1,0,2861412c-46f0-454e-b81d-fe081afb5c7a,2861412c-46f0-454e-b81d-fe081afb5c7a,1,0,2b4ece05-b694-42e9-8239-55722fd84294,2b4ece05-b694-42e9-8239-55722fd84294,1,0,6564ce89-134f-4726-8693-fd93aad46180,6564ce89-134f-4726-8693-fd93aad46180,1,0,0d743731-da5d-4c99-b19f-e93c69b77e14,0d743731-da5d-4c99-b19f-e93c69b77e14,1,0,d6f15367-23e2-4766-bc7c-8acd0063aa0c,d6f15367-23e2-4766-bc7c-8acd0063aa0c,1,0,966b1bde-5b0c-446d-b38b-dc037e2ff7ad,966b1bde-5b0c-446d-b38b-dc037e2ff7ad,1,0,fa4c5665-4d73-4db2-a055-8c1c8a302f82,fa4c5665-4d73-4db2-a055-8c1c8a302f82,1,0,e3e0caa1-6d3f-45a6-9043-d58a34f35b8f,e3e0caa1-6d3f-45a6-9043-d58a34f35b8f,1,0,9100b286-8ae9-4de3-b116-5ce0fa95b80c,9100b286-8ae9-4de3-b116-5ce0fa95b80c,1,0,3d315df6-e000-4cbd-810d-0b26c0d1bc54,3d315df6-e000-4cbd-810d-0b26c0d1bc54,1,0,fa429302-ccaf-4c89-8a11-3a1d30817c00,fa429302-ccaf-4c89-8a11-3a1d30817c00,1,0,9b4c49ce-93da-439a-8d67-f3774e92800a,9b4c49ce-93da-439a-8d67-f3774e92800a,1,0,5f8fa827-7017-4b45-b458-3571b8b611f5,5f8fa827-7017-4b45-b458-3571b8b611f5,1,0,79749167-2912-4e06-9deb-7915a1b4390d,79749167-2912-4e06-9deb-7915a1b4390d,1,0,1c93fcd3-53a1-403f-a30b-454fbc941d55,1c93fcd3-53a1-403f-a30b-454fbc941d55,1,0,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,1,0,adec3963-b22f-4463-a3f4-c9ec27d187a8,adec3963-b22f-4463-a3f4-c9ec27d187a8,1,0,d8dae0c8-8e11-44bf-bf60-d316220f3e82,d8dae0c8-8e11-44bf-bf60-d316220f3e82,1,0,12afec4d-1728-4aa8-86e5-23cd2f1572b3,12afec4d-1728-4aa8-86e5-23cd2f1572b3,1,0,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,1,0,ee0c3960-d1bf-411f-a51f-e6e27dabea87,ee0c3960-d1bf-411f-a51f-e6e27dabea87,1,0,d7fb9441-1aef-4257-af3f-7f16340ac85e,d7fb9441-1aef-4257-af3f-7f16340ac85e,1,0,d07c094c-2795-4e0c-b030-bdb82be7ba6d,d07c094c-2795-4e0c-b030-bdb82be7ba6d,1,0,62637860-2013-4f9d-9aed-7cbb0dce8983,62637860-2013-4f9d-9aed-7cbb0dce8983,1,0,331217f6-7ec2-425d-93bd-f2979c5f2e05,331217f6-7ec2-425d-93bd-f2979c5f2e05,1,0,7d5b2b73-27e6-4a61-9558-eb2410eb9f2f,7d5b2b73-27e6-4a61-9558-eb2410eb9f2f,1,0,d754ed75-2a32-4b86-a153-7b50c39f9836,d754ed75-2a32-4b86-a153-7b50c39f9836,1,0,b81f3ee1-66f7-4626-a35b-ef85388c678e,b81f3ee1-66f7-4626-a35b-ef85388c678e,1,0,2ad04793-c162-4915-a260-ca4da535cdac,2ad04793-c162-4915-a260-ca4da535cdac,1,0,78942e92-a31c-4824-a614-a6e07ae26171,78942e92-a31c-4824-a614-a6e07ae26171,1,0,6568d853-dfe5-4064-aa73-c1f546e951b4,6568d853-dfe5-4064-aa73-c1f546e951b4,1,0,7cee27a7-9827-47f8-96f3-d4f1f3dcabe9,7cee27a7-9827-47f8-96f3-d4f1f3dcabe9,1,0,9bfba5cd-551a-4685-99dd-ebfd9f7fd7d1,9bfba5cd-551a-4685-99dd-ebfd9f7fd7d1,1,0,bbe718b2-6b4c-4d78-a408-5369d356a1e6,bbe718b2-6b4c-4d78-a408-5369d356a1e6,1,0,4ecd85c4-5be7-4e6b-8c53-7dd32bd4d707,4ecd85c4-5be7-4e6b-8c53-7dd32bd4d707,1,0,eb7623df-b4e3-4272-9f92-42a9214f9f17,eb7623df-b4e3-4272-9f92-42a9214f9f17,1,0,a5f5bc90-e670-4ee7-95fe-067fe1b129f7,a5f5bc90-e670-4ee7-95fe-067fe1b129f7,1,0,f790f620-2247-4a04-b0ad-8aa591655948,f790f620-2247-4a04-b0ad-8aa591655948,1,0,6d9d9087-91ad-4368-9087-0af8f83fdc9e,6d9d9087-91ad-4368-9087-0af8f83fdc9e,1,0,61fdb27e-b449-40a7-8ecd-7e3e8ae3aa23,61fdb27e-b449-40a7-8ecd-7e3e8ae3aa23,1,0,c7e4e97f-fb85-4e95-bfdf-7706e867d89b,c7e4e97f-fb85-4e95-bfdf-7706e867d89b,1,0,b08fd921-c3d6-44eb-9401-fec5acab5d22,b08fd921-c3d6-44eb-9401-fec5acab5d22,1,0,f4f185af-5507-427c-b82b-515ea71f3fc1,f4f185af-5507-427c-b82b-515ea71f3fc1,1,0,1611855a-abf4-4269-aed3-3f78dce7bea5,1611855a-abf4-4269-aed3-3f78dce7bea5,1,0,c5bd277c-b258-43af-9c80-3e328b1581f5,c5bd277c-b258-43af-9c80-3e328b1581f5,1,0,96dac7e8-5113-4217-ac0a-fffea4acc410,96dac7e8-5113-4217-ac0a-fffea4acc410,1,0,d6fa2b86-1c3b-4c14-8a66-b6dbd40bca19,d6fa2b86-1c3b-4c14-8a66-b6dbd40bca19,1,0,f9cefef4-2182-42ca-93ef-b6a51d6555cc,f9cefef4-2182-42ca-93ef-b6a51d6555cc,1,0,71e1c7de-7367-424c-ae07-6ec04b408b83,71e1c7de-7367-424c-ae07-6ec04b408b83,1,0,b3956392-199c-4934-80d1-8cdab453d879,b3956392-199c-4934-80d1-8cdab453d879,1,0,5e26aeb7-617c-4983-b40d-5a61c77aa6a4,5e26aeb7-617c-4983-b40d-5a61c77aa6a4,1,0,d1bd7448-aa5f-43fc-9735-224f36960c3e,d1bd7448-aa5f-43fc-9735-224f36960c3e,1,0,94dbfc4c-d530-4fbd-b7cf-a58a56289b97,94dbfc4c-d530-4fbd-b7cf-a58a56289b97,1,0,6fa25c57-411d-4f9c-9c3e-c7ea1b1f7195,6fa25c57-411d-4f9c-9c3e-c7ea1b1f7195,1,0,1bfa15cf-222e-4e5b-beb7-7a50f8131799,1bfa15cf-222e-4e5b-beb7-7a50f8131799,1,0,8227471b-8ffb-4ba7-b4da-b21570582876,8227471b-8ffb-4ba7-b4da-b21570582876,1,0,ea7ab9fa-5119-4773-b17d-fc74c7479d3d,ea7ab9fa-5119-4773-b17d-fc74c7479d3d,1,0,3e0fe508-87fa-47af-a47f-c0630a186900,3e0fe508-87fa-47af-a47f-c0630a186900,1,0,09740271-b8a8-4949-a116-b64449d80036,09740271-b8a8-4949-a116-b64449d80036,1,0,c8fedc0b-33d6-46a5-b4fc-a3cd728f5fd7,c8fedc0b-33d6-46a5-b4fc-a3cd728f5fd7,1,0,25864028-1a53-4a8d-b6e4-189fa62c62f5,25864028-1a53-4a8d-b6e4-189fa62c62f5,1,0,e923beae-0bd8-4119-a802-fd6bfb729f10,e923beae-0bd8-4119-a802-fd6bfb729f10,1,0,ecb7dd1b-46d6-46b5-a51f-699f068ad6a0,ecb7dd1b-46d6-46b5-a51f-699f068ad6a0,1,0,67c1269a-79e6-44d9-9254-671c50fb3974,67c1269a-79e6-44d9-9254-671c50fb3974,1,0,5d455d2a-910d-48c7-bc74-ba5ad7855110,5d455d2a-910d-48c7-bc74-ba5ad7855110,1,0,7cf3feea-75e2-42cc-9c89-4a9182034910,7cf3feea-75e2-42cc-9c89-4a9182034910,1,0,930a0156-feb3-4e14-96a5-cd183a4891f4,930a0156-feb3-4e14-96a5-cd183a4891f4,1,0,cd5c52d4-f832-4a3b-b4c7-b4f3e0c98222,cd5c52d4-f832-4a3b-b4c7-b4f3e0c98222,1,0,e268a337-f576-4ec2-8a22-0500b79b2441,e268a337-f576-4ec2-8a22-0500b79b2441,1,0,eb33a8fa-75a6-4926-a025-05bc0abe4374,eb33a8fa-75a6-4926-a025-05bc0abe4374,1,0,c352da94-ea64-44b1-b2df-2c4ed9e2efc5,c352da94-ea64-44b1-b2df-2c4ed9e2efc5,1,0,6babd40a-8b8f-454b-b4a4-7cf2854f49a2,6babd40a-8b8f-454b-b4a4-7cf2854f49a2,1,0,bf480259-6e72-4ad1-ac41-0b0d41a75387,bf480259-6e72-4ad1-ac41-0b0d41a75387,1,0,a41f060a-f0f6-4940-960b-5056082b2c45,a41f060a-f0f6-4940-960b-5056082b2c45,1,0,5d45a926-513f-4bbc-a002-54a2db94b297,5d45a926-513f-4bbc-a002-54a2db94b297,1,0,73f5ce9e-d5a7-45c0-965a-8af1d776a98a,73f5ce9e-d5a7-45c0-965a-8af1d776a98a,1,0,073e14d4-5d43-428b-a9a7-985d173e94c7,073e14d4-5d43-428b-a9a7-985d173e94c7,1,0,61dc318a-c17d-402e-bf64-a0c0a63a1c93,61dc318a-c17d-402e-bf64-a0c0a63a1c93,1,0,c4b0c101-8cd9-441c-b94c-9dfa1ad58d45,c4b0c101-8cd9-441c-b94c-9dfa1ad58d45,1,0,2394775b-8910-4667-9c74-e1606e0b13bc,2394775b-8910-4667-9c74-e1606e0b13bc,1,0,43c88ffd-a036-4563-890b-bdc60180e841,43c88ffd-a036-4563-890b-bdc60180e841,1,0,af6e5e8e-6482-4820-a810-9e275ae039bf,af6e5e8e-6482-4820-a810-9e275ae039bf,1,0,fe3ccb8b-fee7-4825-a7bc-4b0fd432d382,fe3ccb8b-fee7-4825-a7bc-4b0fd432d382,1,0,7690620b-21d9-463a-8c22-60844927b4a0,7690620b-21d9-463a-8c22-60844927b4a0,1,0,e7f96a15-9f62-4a7f-85f3-06ba5d30b130,e7f96a15-9f62-4a7f-85f3-06ba5d30b130,1,0,b1db3255-38da-4684-b44e-4e2e9ee1dc35,b1db3255-38da-4684-b44e-4e2e9ee1dc35,1,0,4761f89b-7894-4dca-83b0-3be2d0828781,4761f89b-7894-4dca-83b0-3be2d0828781,1,0,573ff1f2-0ef5-4962-a0f6-eb84d430fe03,573ff1f2-0ef5-4962-a0f6-eb84d430fe03,1,0,7236d52f-9068-45ad-8b92-a7319e737e08,7236d52f-9068-45ad-8b92-a7319e737e08,1,0,3b0b708f-1b6c-4eb2-a2ad-86c088d9f1bf,3b0b708f-1b6c-4eb2-a2ad-86c088d9f1bf,1,0,9db23e96-d13a-4847-941a-462f64d0619d,9db23e96-d13a-4847-941a-462f64d0619d,1,0,7575fd54-c91b-4220-a2ef-2cf533f60426,7575fd54-c91b-4220-a2ef-2cf533f60426,1,0,1b751f19-bb0c-40c2-a5d1-068544c36c6b,1b751f19-bb0c-40c2-a5d1-068544c36c6b,1,0,26e2c83b-8873-4ad3-9c50-e94421473a43,26e2c83b-8873-4ad3-9c50-e94421473a43,1,0,f0b2ec05-8e01-4ccf-b927-671329a9013b,f0b2ec05-8e01-4ccf-b927-671329a9013b,1,0,ab442b11-2482-4f80-ac82-01966e0657ec,ab442b11-2482-4f80-ac82-01966e0657ec,1,0,14fe4d39-81a1-470e-9724-6642ce34ad89,14fe4d39-81a1-470e-9724-6642ce34ad89,1,0,457578ab-dfe2-4419-8d8a-64283b341f42,457578ab-dfe2-4419-8d8a-64283b341f42,1,0,67ef6671-f537-46bf-88e6-f5bcf34a17a4,67ef6671-f537-46bf-88e6-f5bcf34a17a4,1,0,de778ca7-feaf-4531-80ae-11a534c56928,de778ca7-feaf-4531-80ae-11a534c56928,1,0,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,1,0,0a76a84d-e883-477e-8b87-7bf984cdc1cf,0a76a84d-e883-477e-8b87-7bf984cdc1cf,1,0,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,1,0,86df8648-e195-4661-99ee-6052788eb276,86df8648-e195-4661-99ee-6052788eb276,1,0,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,1,0,35133725-9647-42dc-a76a-2e62b2918ac4,35133725-9647-42dc-a76a-2e62b2918ac4,1,0,c7b883dc-6c26-4eb5-bc19-7919ad57da27,c7b883dc-6c26-4eb5-bc19-7919ad57da27,1,0,7fc37008-c378-4a70-a9a9-07543c7248a6,7fc37008-c378-4a70-a9a9-07543c7248a6,1,0,6410853e-a17e-44db-b8cc-bfefd7c4d239,6410853e-a17e-44db-b8cc-bfefd7c4d239,1,0,df042e4e-01a6-4480-a9c5-c0d7a454bb41,df042e4e-01a6-4480-a9c5-c0d7a454bb41,1,0,5a4abb96-8a18-4249-9fbb-7270fe2ba25b,5a4abb96-8a18-4249-9fbb-7270fe2ba25b,1,0,6852c584-d989-418d-8d18-255492891ef0,6852c584-d989-418d-8d18-255492891ef0,1,0,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,1,0,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,1,0,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,1,0,ff830967-faa9-415f-aa6e-8d27779f91f8,ff830967-faa9-415f-aa6e-8d27779f91f8,1,0,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,1,0,88618d0f-97af-4055-a490-561d4b8065a7,88618d0f-97af-4055-a490-561d4b8065a7,1,0,faffa228-4f4f-43f6-99b9-ed8c93af85c0,faffa228-4f4f-43f6-99b9-ed8c93af85c0,1,0,7b816ca0-ba60-4637-8348-23b26ad23e3f,7b816ca0-ba60-4637-8348-23b26ad23e3f,1,0,814a6db4-a43c-44e6-ac44-11983642c5ad,814a6db4-a43c-44e6-ac44-11983642c5ad,1,0,0bd74786-e018-4a66-b994-cdb439c57657,0bd74786-e018-4a66-b994-cdb439c57657,1,0,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,1,0,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,1,0,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,1,0,09502176-c53d-4525-b8ed-32d0a2e21a5d,09502176-c53d-4525-b8ed-32d0a2e21a5d,1,0,75ad984e-d41f-4591-b207-e8a4b05757a7,75ad984e-d41f-4591-b207-e8a4b05757a7,1,0,3f020f90-7aeb-4b21-ad71-4572ac796d4c,3f020f90-7aeb-4b21-ad71-4572ac796d4c,1,0,759e2ba0-2941-4cc1-8409-50b8a3620058,759e2ba0-2941-4cc1-8409-50b8a3620058,1,0,491cf25d-091e-4e09-b145-92d7073326cf,491cf25d-091e-4e09-b145-92d7073326cf,1,0,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,1,0,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,1,0,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,1,0,900bc96e-fbcc-473e-970c-96f561420f8e,900bc96e-fbcc-473e-970c-96f561420f8e,1,0,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,1,0,21d5a0b0-9a2b-4989-a50a-781645513179,21d5a0b0-9a2b-4989-a50a-781645513179,1,0,3255033a-e922-412e-a825-a3e8bd284703,3255033a-e922-412e-a825-a3e8bd284703,1,0,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1,0,f250f992-ad5a-4dab-ad38-240604adb0c4,f250f992-ad5a-4dab-ad38-240604adb0c4,1,0,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,1,0,e63671f6-c96d-4ea4-8300-af7dbd0d016f,e63671f6-c96d-4ea4-8300-af7dbd0d016f,1,0,2c511469-0df6-470f-a808-decb275e8b1a,2c511469-0df6-470f-a808-decb275e8b1a,1,0,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1,0,99b40f9f-f8f1-4779-8afc-59d30612f3d6,99b40f9f-f8f1-4779-8afc-59d30612f3d6,1,0,6131e875-3254-4281-9343-9118564c5451,6131e875-3254-4281-9343-9118564c5451,1,0,69622ff8-8a23-42fc-b63d-5097e3f636ac,69622ff8-8a23-42fc-b63d-5097e3f636ac,1,0,b88450cc-0dd4-4881-b3d9-a9e4e07e08f5,b88450cc-0dd4-4881-b3d9-a9e4e07e08f5,1,0,ef326bd8-1570-455e-ae8c-063b5578ad15,ef326bd8-1570-455e-ae8c-063b5578ad15,1,0,efd4e0a3-2f98-40ef-8089-c853cd588fa6,efd4e0a3-2f98-40ef-8089-c853cd588fa6,1,0,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,1,0,cb6d4979-2d70-4ceb-af08-deb2b19daf14,cb6d4979-2d70-4ceb-af08-deb2b19daf14,1,0,bf30b754-84fb-4104-b52b-a4f7df6fba12,bf30b754-84fb-4104-b52b-a4f7df6fba12,1,0,7bbd0835-b3e9-40cb-a424-670828b60bbb,7bbd0835-b3e9-40cb-a424-670828b60bbb,1,0,3e2138ea-48f9-4a60-8f22-53933bea49db,3e2138ea-48f9-4a60-8f22-53933bea49db,1,0,16bda2eb-eab8-4230-b89f-517fb943e009,16bda2eb-eab8-4230-b89f-517fb943e009,1,0,00964512-297f-4b8b-8def-8e4fc0eba991,00964512-297f-4b8b-8def-8e4fc0eba991,1,0,4185fea3-baba-4ba5-8019-9023b3011d4d,4185fea3-baba-4ba5-8019-9023b3011d4d,1,0,ea790035-92d6-445e-9fa3-08e565634d2b,ea790035-92d6-445e-9fa3-08e565634d2b,1,0,cce8900a-51eb-487d-b380-227d1b9d3943,cce8900a-51eb-487d-b380-227d1b9d3943,1,0,c043c36c-90c6-483b-bc20-7c2d85109b90,c043c36c-90c6-483b-bc20-7c2d85109b90,1,0,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,1,0,91d2d40a-c271-412c-b344-1fc98b94ba21,91d2d40a-c271-412c-b344-1fc98b94ba21,1,0,7ce47046-aee8-4809-bac9-a98930a844e1,7ce47046-aee8-4809-bac9-a98930a844e1,1,0,f480b8b9-ecec-4207-a0aa-12c5be4c2250,f480b8b9-ecec-4207-a0aa-12c5be4c2250,1,0,32717d25-6644-4903-8950-03e4c9b1a8fe,32717d25-6644-4903-8950-03e4c9b1a8fe,1,0,3644d8f3-db88-4fce-a851-39c115acfe03,3644d8f3-db88-4fce-a851-39c115acfe03,1,0,4653da74-34b2-47b9-ad88-efd761d6f1e9,4653da74-34b2-47b9-ad88-efd761d6f1e9,1,0,abf8a23d-45c3-4feb-8df2-279b709d7722,abf8a23d-45c3-4feb-8df2-279b709d7722,1,0,b0cd056f-c601-4d07-89c4-f7137b88bab6,b0cd056f-c601-4d07-89c4-f7137b88bab6,1,0,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,1,0,b9a21b8f-8a95-4c86-9ab2-ee6c90164e18,b9a21b8f-8a95-4c86-9ab2-ee6c90164e18,1,0,96ed4d39-3bdc-480f-af86-218f22000514,96ed4d39-3bdc-480f-af86-218f22000514,1,0,c9f72e74-22ac-4dc0-8462-0aa7819a9342,c9f72e74-22ac-4dc0-8462-0aa7819a9342,1,0,ca650484-293f-403a-b916-5ec7c3a8969e,ca650484-293f-403a-b916-5ec7c3a8969e,1,0,b71e706d-623e-4039-9bf0-24f151d861d8,b71e706d-623e-4039-9bf0-24f151d861d8,1,0,528f4823-33d8-49bd-a8fe-756a08a107c2,528f4823-33d8-49bd-a8fe-756a08a107c2,1,0,4869095b-b76e-45ca-b77d-0e74f59673f0,4869095b-b76e-45ca-b77d-0e74f59673f0,1,0,bcca2442-448b-4760-923b-cc9621ecb441,bcca2442-448b-4760-923b-cc9621ecb441,1,0,ba7657df-429a-4737-b787-19ef09fdebb2,ba7657df-429a-4737-b787-19ef09fdebb2,1,0,867d72be-f406-45a5-a511-b90459683f11,867d72be-f406-45a5-a511-b90459683f11,1,0,88b22e62-c144-401f-9635-3fb4d914772e,88b22e62-c144-401f-9635-3fb4d914772e,1,0,efeb2914-6604-403a-a11e-5cb995ab2bc9,efeb2914-6604-403a-a11e-5cb995ab2bc9,1,0,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,1,0,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,1,0,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,1,0,8525d945-08aa-4928-8dca-4e172ea94328,8525d945-08aa-4928-8dca-4e172ea94328,1,0,de506523-241a-4845-9259-37066afbf16a,de506523-241a-4845-9259-37066afbf16a,1,0,0510206f-eef0-4a5e-aeb7-d53c26d34adb,0510206f-eef0-4a5e-aeb7-d53c26d34adb,1,0,e616e007-43e7-4740-a083-b85f5435718a,e616e007-43e7-4740-a083-b85f5435718a,1,0,82be906c-bb06-40ea-b908-54574b0b4848,82be906c-bb06-40ea-b908-54574b0b4848,1,0,727da5b1-e054-4832-8e44-f5d5e56f52e5,727da5b1-e054-4832-8e44-f5d5e56f52e5,1,0,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,1,0,1f8cb390-2cbb-4a88-96ee-b31695b73d78,1f8cb390-2cbb-4a88-96ee-b31695b73d78,1,0,6feaad7c-9680-4341-b215-14581e2e2b37,6feaad7c-9680-4341-b215-14581e2e2b37,1,0,d5656a92-adfb-4733-830d-2b1565798b1f,d5656a92-adfb-4733-830d-2b1565798b1f,1,0,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,1,0,b0f6ea83-2849-4151-930d-692866919db3,b0f6ea83-2849-4151-930d-692866919db3,1,0,0abf70e0-0d81-4d85-a288-a2134da5fbf1,0abf70e0-0d81-4d85-a288-a2134da5fbf1,1,0,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,1,0,f66cb2da-3b3c-481f-823a-506f8290f619,f66cb2da-3b3c-481f-823a-506f8290f619,1,0,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,1,0,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,1,0,0bdcf045-5132-4a68-839c-a30515dc569e,0bdcf045-5132-4a68-839c-a30515dc569e,1,0,683861f9-9a5f-47db-8b03-959f839d5a3a,683861f9-9a5f-47db-8b03-959f839d5a3a,1,0,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,1,0,125be5bf-f410-451d-aa96-22fabc6a4d8a,125be5bf-f410-451d-aa96-22fabc6a4d8a,1,0,e5017fd0-ecea-48ae-99c8-7fc8c4f1d72b,e5017fd0-ecea-48ae-99c8-7fc8c4f1d72b,1,0,0a46166a-4562-4a50-b139-39dbe8a1fc84,0a46166a-4562-4a50-b139-39dbe8a1fc84,1,0,9aa6d1d1-75ad-40e4-b01f-274826c0c9da,9aa6d1d1-75ad-40e4-b01f-274826c0c9da,1,0,6ce64d65-f710-4d3f-a85f-26ce6915451e,6ce64d65-f710-4d3f-a85f-26ce6915451e,1,0,33eb9806-e34f-42a0-9825-3ff2de92c503,33eb9806-e34f-42a0-9825-3ff2de92c503,1,0,4905fcc5-9bd7-4b1b-b51d-882b11ee3d74,4905fcc5-9bd7-4b1b-b51d-882b11ee3d74,1,0,bcb58235-7cd7-4c15-a1eb-194ee38259e6,bcb58235-7cd7-4c15-a1eb-194ee38259e6,1,0,e19aefe7-634d-4218-8d40-75802d1691e0,e19aefe7-634d-4218-8d40-75802d1691e0,1,0,b885dbb2-6e18-46a6-929c-3d6d392343ad,b885dbb2-6e18-46a6-929c-3d6d392343ad,1,0,d31e24cf-7493-45dc-ba81-3a00618e53bc,d31e24cf-7493-45dc-ba81-3a00618e53bc,1,0,03f32b08-1b71-47cb-ba1d-965037df4d64,03f32b08-1b71-47cb-ba1d-965037df4d64,1,0,4ec26e3d-6c38-4c90-9f91-c2235f8b4154,4ec26e3d-6c38-4c90-9f91-c2235f8b4154,1,0,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,1,0,f942d212-9be0-4d80-84b6-5b63070e33e4,f942d212-9be0-4d80-84b6-5b63070e33e4,1,0,bea6bbc1-c1e4-4306-a0ca-efd47b9a8b23,bea6bbc1-c1e4-4306-a0ca-efd47b9a8b23,1,0,19a0b881-302e-4d0e-ace0-29a9d8379a48,19a0b881-302e-4d0e-ace0-29a9d8379a48,1,0,64c91eaa-084f-4801-8dbf-4e075c689c2b,64c91eaa-084f-4801-8dbf-4e075c689c2b,1,0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,1,0,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,1,0,3aa12805-823a-439b-b039-fb9940aee312,3aa12805-823a-439b-b039-fb9940aee312,1,0,87d53573-f266-4b74-94af-041ae4b6518f,87d53573-f266-4b74-94af-041ae4b6518f,1,0,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,1,0,801cf1f7-2c65-4126-a3e9-b66abfdde67a,801cf1f7-2c65-4126-a3e9-b66abfdde67a,1,0,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,1,0,29c2bc01-8838-4459-8ac2-79862aa1dbc9,29c2bc01-8838-4459-8ac2-79862aa1dbc9,1,0,ad556c33-6811-48b4-ae90-57700a4d3fd6,ad556c33-6811-48b4-ae90-57700a4d3fd6,1,0,6e0833f4-3b57-4a5f-810f-9e2a492335df,6e0833f4-3b57-4a5f-810f-9e2a492335df,1,0,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,1,0,977bc9d8-9843-4343-85af-11a3d91f9966,977bc9d8-9843-4343-85af-11a3d91f9966,1,0,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,1,0,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,1,0,a6582448-734d-4a4c-a32c-c4755ca1bc93,a6582448-734d-4a4c-a32c-c4755ca1bc93,1,0,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,1,0,53327cc4-22b0-40f9-bae7-db483f85901c,53327cc4-22b0-40f9-bae7-db483f85901c,1,0,098d904d-95c9-459e-86d0-357ba9a40191,098d904d-95c9-459e-86d0-357ba9a40191,1,0,e9ab9d00-6e42-439b-8efc-fcacf727016d,e9ab9d00-6e42-439b-8efc-fcacf727016d,1,0,2d58033f-e15d-4a91-8165-dd311025c7c4,2d58033f-e15d-4a91-8165-dd311025c7c4,1,0,49cb3a36-90b3-4154-b571-265fc5cee21e,49cb3a36-90b3-4154-b571-265fc5cee21e,1,0,10472d2c-18ca-49b0-bd9d-c750db8498c5,10472d2c-18ca-49b0-bd9d-c750db8498c5,1,0,8efe5daf-272d-4255-b5c4-66dca7463b50,8efe5daf-272d-4255-b5c4-66dca7463b50,1,0,65af25a6-f699-4c40-b13e-3b7dff3f16fe,65af25a6-f699-4c40-b13e-3b7dff3f16fe,1,0,c4d2486d-289c-4812-b223-5ccfcd7f29e3,c4d2486d-289c-4812-b223-5ccfcd7f29e3,1,0,f9229c3e-4a47-49a4-8b14-908218012ff7,f9229c3e-4a47-49a4-8b14-908218012ff7,1,0,7c8b9203-2808-4a78-a2b1-b7a71b4f13f6,7c8b9203-2808-4a78-a2b1-b7a71b4f13f6,1,0,b9743978-ba6d-4892-bb32-f24d4a47dd50,b9743978-ba6d-4892-bb32-f24d4a47dd50,1,0,c43accb9-f33d-437f-b305-0595f8fe3032,c43accb9-f33d-437f-b305-0595f8fe3032,1,0,084a398b-836e-424c-af93-22aa39d5a15a,084a398b-836e-424c-af93-22aa39d5a15a,1,0,7da57c89-af2c-445a-96f7-39250f70306f,7da57c89-af2c-445a-96f7-39250f70306f,1,0,b5b94d94-25f7-4cfa-b1e9-6009fb848763,b5b94d94-25f7-4cfa-b1e9-6009fb848763,1,0,a2accf54-5966-42e8-ab2e-e56e415963ee,a2accf54-5966-42e8-ab2e-e56e415963ee,1,0,d8eb5329-5900-4b5d-b45e-458513dddfef,d8eb5329-5900-4b5d-b45e-458513dddfef,1,0,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,1,0,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,1,0,a4322f22-7de0-4018-8e06-9f1aa7cf0c07,a4322f22-7de0-4018-8e06-9f1aa7cf0c07,1,0,eaaed107-69d4-4963-be83-74519e331715,eaaed107-69d4-4963-be83-74519e331715,1,0,38cddf96-8703-4396-8c73-47fb22828a48,38cddf96-8703-4396-8c73-47fb22828a48,1,0,2c2cb793-0177-4983-91ca-9c292c5b10f1,2c2cb793-0177-4983-91ca-9c292c5b10f1,1,0,2a2e7f51-a4e5-48ec-b969-b1fca18ba9b5,2a2e7f51-a4e5-48ec-b969-b1fca18ba9b5,1,0,221fa473-3327-44e6-a033-6fdfd2be713c,221fa473-3327-44e6-a033-6fdfd2be713c,1,0,7a5973f0-7e29-44af-8e7b-70af71f704a4,7a5973f0-7e29-44af-8e7b-70af71f704a4,1,0,2b2bf0f7-0946-4492-bba0-27f007a70e64,2b2bf0f7-0946-4492-bba0-27f007a70e64,1,0,22c9a703-5ed3-4156-8fa6-476b1c1452f1,22c9a703-5ed3-4156-8fa6-476b1c1452f1,1,0,8be10d88-8c37-4444-9c89-6cbbe9913bda,8be10d88-8c37-4444-9c89-6cbbe9913bda,1,0,27089e8e-2c75-431c-b808-5d4dcba3cdca,27089e8e-2c75-431c-b808-5d4dcba3cdca,1,0,9ab3980e-a480-4f90-a8cc-bde99d5ace35,9ab3980e-a480-4f90-a8cc-bde99d5ace35,1,0,ec928563-6e35-4b84-b477-90d2481cec1c,ec928563-6e35-4b84-b477-90d2481cec1c,1,0,5d3e9678-20fe-4128-867a-3f7addaa7831,5d3e9678-20fe-4128-867a-3f7addaa7831,1,0,bb878f73-8a0f-459a-9076-ce57fe7957dc,bb878f73-8a0f-459a-9076-ce57fe7957dc,1,0,cb1d4a41-20a9-4d76-8798-d47d8858bff1,cb1d4a41-20a9-4d76-8798-d47d8858bff1,1,0,a2b4110b-4d9c-40fd-ab46-bfa08d2eb993,a2b4110b-4d9c-40fd-ab46-bfa08d2eb993,1,0,4f262b7f-927e-45f2-ad90-9d5e1b3155d1,4f262b7f-927e-45f2-ad90-9d5e1b3155d1,1,0,9f4b8e36-83ff-4694-8540-b5f47b18395f,9f4b8e36-83ff-4694-8540-b5f47b18395f,1,0,b4c026eb-4271-4366-b529-1cdfe2874563,b4c026eb-4271-4366-b529-1cdfe2874563,1,0,314b0da2-24d3-48cc-8532-d36c45eb3bf8,314b0da2-24d3-48cc-8532-d36c45eb3bf8,1,0,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,1,0,4077e700-ec20-4afa-8155-bf7e516a70cb,4077e700-ec20-4afa-8155-bf7e516a70cb,1,0,5198c6db-2100-4902-82c8-85c8ea555e78,5198c6db-2100-4902-82c8-85c8ea555e78,1,0,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,1,0,f0b1e9f4-2e07-44e6-88d2-c11457135781,f0b1e9f4-2e07-44e6-88d2-c11457135781,1,0,e010c0f9-f770-4fdc-8607-50838c0262ef,e010c0f9-f770-4fdc-8607-50838c0262ef,1,0,f935399f-3554-4c08-b0a6-eba13074e1b7,f935399f-3554-4c08-b0a6-eba13074e1b7,1,0,10008125-3aeb-4912-8ad6-d92d283ea09a,10008125-3aeb-4912-8ad6-d92d283ea09a,1,0,765f9584-fefa-4695-b130-dd54c3b0d79d,765f9584-fefa-4695-b130-dd54c3b0d79d,1,0,dd050ca0-8335-4654-ab5c-7babcb4824ef,dd050ca0-8335-4654-ab5c-7babcb4824ef,1,0,706cbf55-626d-4cab-b589-a2464368f6c1,706cbf55-626d-4cab-b589-a2464368f6c1,1,0,d22a0a50-220d-459e-a23a-39730a1e67c4,d22a0a50-220d-459e-a23a-39730a1e67c4,1,0,2c1c9284-ba8b-4282-a89c-429f02ea41f6,2c1c9284-ba8b-4282-a89c-429f02ea41f6,1,0,8c241467-76f7-4161-a8a1-5da4a6576b75,8c241467-76f7-4161-a8a1-5da4a6576b75,1,0,1d3b9eff-5d0b-437b-932f-0ec466e092b2,1d3b9eff-5d0b-437b-932f-0ec466e092b2,1,0,fd7e5257-024c-46de-9ff3-edd302fadba5,fd7e5257-024c-46de-9ff3-edd302fadba5,1,0,a4168057-d99f-4b55-b762-214f95ae3a30,a4168057-d99f-4b55-b762-214f95ae3a30,1,0,ab4fe549-1c07-42d9-b412-8b89ed115591,ab4fe549-1c07-42d9-b412-8b89ed115591,1,0,0335804e-efe5-4fb9-9ae9-2ddca73d77f3,0335804e-efe5-4fb9-9ae9-2ddca73d77f3,1,0,b49c589d-b45d-4aff-8899-72cfe433e9a6,b49c589d-b45d-4aff-8899-72cfe433e9a6,1,0,f71a8d47-6a6c-4b7e-90b3-5b7a3be3ccd3,f71a8d47-6a6c-4b7e-90b3-5b7a3be3ccd3,1,0,273ad3f7-c645-434d-93b0-e832134f3043,273ad3f7-c645-434d-93b0-e832134f3043,1,0,d320803b-1de4-4e66-b455-0afe39be5c41,d320803b-1de4-4e66-b455-0afe39be5c41,1,0,67e85b9a-a138-49ea-b474-04475f0f8c90,67e85b9a-a138-49ea-b474-04475f0f8c90,1,0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,1,0,788a98e0-194f-466c-b4fa-bafd527aae26,788a98e0-194f-466c-b4fa-bafd527aae26,1,0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,1,0,364218e0-87ba-4008-a3e3-e2351a5e04b8,364218e0-87ba-4008-a3e3-e2351a5e04b8,1,0,143f6db9-a4dc-4039-90d0-6161394a3e2f,143f6db9-a4dc-4039-90d0-6161394a3e2f,1,0,97e853dc-065f-4c6d-84cb-3d3aff367b22,97e853dc-065f-4c6d-84cb-3d3aff367b22,1,0,2f1fdf47-2627-496f-9e1f-77019abb2104,2f1fdf47-2627-496f-9e1f-77019abb2104,1,0,c996532a-8795-4136-8a40-9bb4b263277c,c996532a-8795-4136-8a40-9bb4b263277c,1,0,64c77788-fc49-4979-8163-949a891bd8b7,64c77788-fc49-4979-8163-949a891bd8b7,1,0,c39750ca-e33f-40c2-b830-119423d9a2ae,c39750ca-e33f-40c2-b830-119423d9a2ae,1,0,9372ff6b-27b6-48f3-a2a2-762e7c485766,9372ff6b-27b6-48f3-a2a2-762e7c485766,1,0,f454595a-4a3d-451b-8e8b-b17aa8314591,f454595a-4a3d-451b-8e8b-b17aa8314591,1,0,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,1,0,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,1,0,bc708da8-7fc6-4da1-8129-9ef6a86667af,bc708da8-7fc6-4da1-8129-9ef6a86667af,1,0,061842fe-4077-4d6e-aefe-de79409da730,061842fe-4077-4d6e-aefe-de79409da730,1,0,86249619-8981-4fc4-85fc-ce30e4b9d542,86249619-8981-4fc4-85fc-ce30e4b9d542,1,0,da6e4bff-9835-4b92-b62b-291a5d6c86fe,da6e4bff-9835-4b92-b62b-291a5d6c86fe,1,0,98aa8a80-29fa-4a54-8d0e-90d413d63da1,98aa8a80-29fa-4a54-8d0e-90d413d63da1,1,0,60af0c11-852e-4b45-afb7-251d75a87150,60af0c11-852e-4b45-afb7-251d75a87150,1,0,37e81463-a558-4b03-b0e4-82ac0e99c80c,37e81463-a558-4b03-b0e4-82ac0e99c80c,1,0,8be35c43-32e6-418d-b3d6-e53ef56babb7,8be35c43-32e6-418d-b3d6-e53ef56babb7,1,0,3e4f5fd0-af15-41ae-896e-458ce9fb7e4d,3e4f5fd0-af15-41ae-896e-458ce9fb7e4d,1,0,935d01e1-232b-480e-a6bf-c21c617c6348,935d01e1-232b-480e-a6bf-c21c617c6348,1,0,9bc7cc99-1237-4f9c-8a4e-f3ab459186ef,9bc7cc99-1237-4f9c-8a4e-f3ab459186ef,1,0,05c702a1-2c74-45d5-b2ee-fdd795b0945a,05c702a1-2c74-45d5-b2ee-fdd795b0945a,1,0,5ede72fd-2510-4c06-b625-be740bb04e29,5ede72fd-2510-4c06-b625-be740bb04e29,1,0,17f37228-b0cd-420d-bc82-b18dc04c03c9,17f37228-b0cd-420d-bc82-b18dc04c03c9,1,0,3f9b66ea-7db2-434d-8e3b-00df8eb11dbd,3f9b66ea-7db2-434d-8e3b-00df8eb11dbd,1,0,d43fb14b-2051-4ba5-8379-af6996e603b3,d43fb14b-2051-4ba5-8379-af6996e603b3,1,0,cfb01fef-b70d-41ac-82b9-d6d2e9644388,cfb01fef-b70d-41ac-82b9-d6d2e9644388,1,0,91dee0d3-14b5-4aa1-9058-8f949e7df923,91dee0d3-14b5-4aa1-9058-8f949e7df923,1,0,3fadaeb7-2c41-42a4-bfa8-c585602b1028,3fadaeb7-2c41-42a4-bfa8-c585602b1028,1,0,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,1,0,083c709b-ed8c-47e4-a190-421e14259e73,083c709b-ed8c-47e4-a190-421e14259e73,1,0,b98dacc7-29e1-426b-a664-0a988f18186c,b98dacc7-29e1-426b-a664-0a988f18186c,1,0,d678856d-6e7c-443f-a6e3-350bbe8af659,d678856d-6e7c-443f-a6e3-350bbe8af659,1,0,d0979762-22ce-41be-b7a4-5e9ac149d94b,d0979762-22ce-41be-b7a4-5e9ac149d94b,1,0,ae23e70c-479e-47ad-9bfa-58560a903410,ae23e70c-479e-47ad-9bfa-58560a903410,1,0,c0d83781-bbda-43f7-bf0e-5defa3d47143,c0d83781-bbda-43f7-bf0e-5defa3d47143,1,0,21fa5fdd-acbc-403b-9acb-bbf95284bd20,21fa5fdd-acbc-403b-9acb-bbf95284bd20,1,0,576a01e3-4d6d-4241-a3c4-7661ba129bcb,576a01e3-4d6d-4241-a3c4-7661ba129bcb,1,0,9f7290dd-19f4-4163-9795-fe562e84f06d,9f7290dd-19f4-4163-9795-fe562e84f06d,1,0,c3b5c81f-b787-4f63-8cba-79def0921477,c3b5c81f-b787-4f63-8cba-79def0921477,1,0,1f0cb3d4-1344-451b-a257-be3cd854acfd,1f0cb3d4-1344-451b-a257-be3cd854acfd,1,0,0131fe59-ce47-48b7-8f7e-1544bf0fa031,0131fe59-ce47-48b7-8f7e-1544bf0fa031,1,0,c8b0a1be-97c6-4a16-b1dd-31901ac61cdc,c8b0a1be-97c6-4a16-b1dd-31901ac61cdc,1,0,372150e2-526e-4424-8c54-e4b16bdd25b5,372150e2-526e-4424-8c54-e4b16bdd25b5,1,0,2f9c347d-ee82-49f2-a5eb-97f55374856f,2f9c347d-ee82-49f2-a5eb-97f55374856f,1,0,752dc569-cf84-42d7-911d-49d455f7214e,752dc569-cf84-42d7-911d-49d455f7214e,1,0,fecab2b9-27e1-44d6-9082-79c3569b7477,fecab2b9-27e1-44d6-9082-79c3569b7477,1,0,07ae092f-8517-47b7-b54c-5dbcb6506929,07ae092f-8517-47b7-b54c-5dbcb6506929,1,0,db4c25bb-d199-43ec-833d-82972de04a41,db4c25bb-d199-43ec-833d-82972de04a41,1,0,43d19685-0794-41f2-9171-bf565133718d,43d19685-0794-41f2-9171-bf565133718d,1,0,b68c15c4-4966-4f13-8912-2d479b65089a,b68c15c4-4966-4f13-8912-2d479b65089a,1,0,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,1,0,a89ee622-6942-411a-8566-f03d139c9e5b,a89ee622-6942-411a-8566-f03d139c9e5b,1,0,f87e3935-dae1-4192-b6a7-05e3c700c590,f87e3935-dae1-4192-b6a7-05e3c700c590,1,0,ee635706-6ee2-4956-8d58-a235f64687f6,ee635706-6ee2-4956-8d58-a235f64687f6,1,0,a5a40ca7-d665-420b-a516-1355019d6901,a5a40ca7-d665-420b-a516-1355019d6901,1,0,198ea989-5001-47ac-86b8-aa2585a5f7d7,198ea989-5001-47ac-86b8-aa2585a5f7d7,1,0,4abe448b-a225-4ac2-8cc9-c3c6c0e9b1ac,4abe448b-a225-4ac2-8cc9-c3c6c0e9b1ac,1,0,fb84c5f7-11da-4b17-979e-41e27a74e789,fb84c5f7-11da-4b17-979e-41e27a74e789,1,0,adf9304c-ccf8-492e-95b1-0754764586a2,adf9304c-ccf8-492e-95b1-0754764586a2,1,0,fd175112-ec8f-4088-9b21-d8135056f0c5,fd175112-ec8f-4088-9b21-d8135056f0c5,1,0,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,1,0,df76a1b7-312a-4e77-bac1-79befadb4495,df76a1b7-312a-4e77-bac1-79befadb4495,1,0,ab39fad8-1039-491e-982a-c49637770ec0,ab39fad8-1039-491e-982a-c49637770ec0,1,0,7d93a6ba-3ca7-45ab-a540-743c79587535,7d93a6ba-3ca7-45ab-a540-743c79587535,1,0,76b58810-0527-4dfc-8858-bac68e7e65f3,76b58810-0527-4dfc-8858-bac68e7e65f3,1,0,aba97fd9-f05e-45cd-8404-ed702070e17a,aba97fd9-f05e-45cd-8404-ed702070e17a,1,0,f5c415cd-429b-469f-9332-c43ab5d1c8d6,f5c415cd-429b-469f-9332-c43ab5d1c8d6,1,0,6de34ed8-5d6c-4bb6-af94-328e692b862e,6de34ed8-5d6c-4bb6-af94-328e692b862e,1,0,e705bde3-45c3-4ffd-a767-0320c6cc8b91,e705bde3-45c3-4ffd-a767-0320c6cc8b91,1,0,504280a1-a451-4547-ae71-e217f8fdf8f6,504280a1-a451-4547-ae71-e217f8fdf8f6,1,0,b071a9fe-0e9f-4ded-8dab-b1388fd12897,b071a9fe-0e9f-4ded-8dab-b1388fd12897,1,0,a2accd5e-e6f5-4d5f-8243-51aadfa88b00,a2accd5e-e6f5-4d5f-8243-51aadfa88b00,1,0,458e9c6b-b828-404b-be5a-c6c0aeea34c9,458e9c6b-b828-404b-be5a-c6c0aeea34c9,1,0,7262eb4d-2d2d-454c-beaa-974645813af7,7262eb4d-2d2d-454c-beaa-974645813af7,1,0,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,1,0,e402b02e-fb2b-4ccc-aa30-ef1a9cb7e17b,e402b02e-fb2b-4ccc-aa30-ef1a9cb7e17b,1,0,10d1e6bf-5ec8-44d8-ae31-0d22bccb5f60,10d1e6bf-5ec8-44d8-ae31-0d22bccb5f60,1,0,7fddef11-7b49-4911-8c66-8d2f94d3cbbd,7fddef11-7b49-4911-8c66-8d2f94d3cbbd,1,0,be438a36-2036-4f27-a9a3-37fb5ba5d6ab,be438a36-2036-4f27-a9a3-37fb5ba5d6ab,1,0,fabf9c9e-d35c-42e0-a949-6c54cb24990f,fabf9c9e-d35c-42e0-a949-6c54cb24990f,1,0,e47df890-3925-4410-ae48-63cb8e3d94f8,e47df890-3925-4410-ae48-63cb8e3d94f8,1,0,49221b2f-aae2-4bee-9a1a-18263fc74244,49221b2f-aae2-4bee-9a1a-18263fc74244,1,0,da0cd264-da2f-4044-af28-c91d2efe1d5c,da0cd264-da2f-4044-af28-c91d2efe1d5c,1,0,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,1,0,fad26b16-8638-496b-bd12-381fc6f5b71f,fad26b16-8638-496b-bd12-381fc6f5b71f,1,0,ed3cfb74-a37a-4314-a2d7-4ce717a2edd9,ed3cfb74-a37a-4314-a2d7-4ce717a2edd9,1,0,324a56c9-02d9-4177-af84-a817b8c41169,324a56c9-02d9-4177-af84-a817b8c41169,1,0,64ed8c1a-6446-4f0d-a2ef-c599e84c4909,64ed8c1a-6446-4f0d-a2ef-c599e84c4909,1,0,52fc85fb-309b-4739-bbd3-c3966657e973,52fc85fb-309b-4739-bbd3-c3966657e973,1,0,87081ab5-bdd5-4daa-88ef-8a2cba8c7d53,87081ab5-bdd5-4daa-88ef-8a2cba8c7d53,1,0,be3cfba8-e6f6-4202-ab0f-96c00fbf7462,be3cfba8-e6f6-4202-ab0f-96c00fbf7462,1,0,64ef1b5c-ec04-45eb-9998-bc573f4038d7,64ef1b5c-ec04-45eb-9998-bc573f4038d7,1,0,4fde5159-8f21-4151-8dbd-b2cd376d9392,4fde5159-8f21-4151-8dbd-b2cd376d9392,1,0,3ea799a6-6642-4388-b0a3-c2962e71ff51,3ea799a6-6642-4388-b0a3-c2962e71ff51,1,0,1e44abfe-c173-4802-b535-96849d384983,1e44abfe-c173-4802-b535-96849d384983,1,0,2751a509-037b-49aa-9ca8-e87057d6d82c,2751a509-037b-49aa-9ca8-e87057d6d82c,1,0,35f62549-eb6a-4284-a6e3-406b0d9df0cf,35f62549-eb6a-4284-a6e3-406b0d9df0cf,1,0,cee94c04-7a46-47a5-bdd5-6f0dbd884e97,cee94c04-7a46-47a5-bdd5-6f0dbd884e97,1,0,fd66995b-ee76-41d3-983f-33d84bdcbbd4,fd66995b-ee76-41d3-983f-33d84bdcbbd4,1,0,73e97918-b34e-4ad2-8591-4c219eb92f2c,73e97918-b34e-4ad2-8591-4c219eb92f2c,1,0,445cf7eb-35d0-48f8-9579-c2ec574ef324,445cf7eb-35d0-48f8-9579-c2ec574ef324,1,0,1025657e-afd2-4c7b-96d5-ccbedaca4619,1025657e-afd2-4c7b-96d5-ccbedaca4619,1,0,64839c78-b2fa-4d80-bee0-b3d3a7e5db35,64839c78-b2fa-4d80-bee0-b3d3a7e5db35,1,0,e754ad5c-cf3c-4198-af81-128475924cb0,e754ad5c-cf3c-4198-af81-128475924cb0,1,0,ed65d504-b210-4014-85ec-275ad633ef04,ed65d504-b210-4014-85ec-275ad633ef04,1,0,dc31edb1-273e-4b1a-8e69-32393479ff36,dc31edb1-273e-4b1a-8e69-32393479ff36,1,0,b369842d-c20e-4b68-9d0e-701707584b2f,b369842d-c20e-4b68-9d0e-701707584b2f,1,0,de23a2ca-4607-4488-be7b-23ea28875d02,de23a2ca-4607-4488-be7b-23ea28875d02,1,0,3ab0649b-239f-4466-b897-73c0ab628927,3ab0649b-239f-4466-b897-73c0ab628927,1,0,4c697110-8941-4d6d-ba03-f2b9e96ff82e,4c697110-8941-4d6d-ba03-f2b9e96ff82e,1,0,7ea4112d-fc41-4f1e-bd22-f04adeac1d8f,7ea4112d-fc41-4f1e-bd22-f04adeac1d8f,1,0,b172631b-da0d-42f4-ae6b-ae122a46cced,b172631b-da0d-42f4-ae6b-ae122a46cced,1,0,1a25e744-37ae-46ca-a328-ff8eced21a82,1a25e744-37ae-46ca-a328-ff8eced21a82,1,0,dddabe54-a93b-4e4b-acbb-cc522e4d7c28,dddabe54-a93b-4e4b-acbb-cc522e4d7c28,1,0,46169f0b-8514-40a1-9d27-8489cab72503,46169f0b-8514-40a1-9d27-8489cab72503,1,0,d9cf39cc-8652-4c4d-bc5b-b4e455c0083f,d9cf39cc-8652-4c4d-bc5b-b4e455c0083f,1,0,4b0d7d39-5f79-4a21-b0bb-d3142a3bc8a9,4b0d7d39-5f79-4a21-b0bb-d3142a3bc8a9,1,0,c90243af-582c-4f5a-88e7-e0cbc0555fcb,c90243af-582c-4f5a-88e7-e0cbc0555fcb,1,0,14bf4066-15cb-4165-b854-45443ee27da1,14bf4066-15cb-4165-b854-45443ee27da1,1,0,a0861dd3-ced5-485e-8719-0ad0bc3adc0d,a0861dd3-ced5-485e-8719-0ad0bc3adc0d,1,0,5a94a307-3f54-4753-8ef5-ce9f88417827,5a94a307-3f54-4753-8ef5-ce9f88417827,1,0,0f09b6b8-72ac-4461-96c4-683be403e2ff,0f09b6b8-72ac-4461-96c4-683be403e2ff,1,0,b73d0f07-9c6e-41b1-9acc-8e83dacd7528,b73d0f07-9c6e-41b1-9acc-8e83dacd7528,1,0,19d1d74a-de5f-475a-896c-a32b7d28f918,19d1d74a-de5f-475a-896c-a32b7d28f918,1,0,316553f3-bed7-4517-86ed-6520c1e536d9,316553f3-bed7-4517-86ed-6520c1e536d9,1,0,1255dbc8-29fc-4cd1-a2ed-a97c626dea5c,1255dbc8-29fc-4cd1-a2ed-a97c626dea5c,1,0,ee538127-bfa3-487a-9595-e69968595113,ee538127-bfa3-487a-9595-e69968595113,1,0,6b297ab7-7ff9-45a7-9075-ca3a1878cb2b,6b297ab7-7ff9-45a7-9075-ca3a1878cb2b,1,0,4427cab9-4eea-4415-98ef-6021a447c60c,4427cab9-4eea-4415-98ef-6021a447c60c,1,0,fe46b4da-d865-468f-badd-83644bf88faa,fe46b4da-d865-468f-badd-83644bf88faa,1,0,2851c9d4-4366-4488-926d-a7fcd3b1548c,2851c9d4-4366-4488-926d-a7fcd3b1548c,1,0,31116aa2-cfbc-48e8-886b-45c1c17508fd,31116aa2-cfbc-48e8-886b-45c1c17508fd,1,0,6aa819d3-c56d-4561-a2e4-a1188ab1295a,6aa819d3-c56d-4561-a2e4-a1188ab1295a,1,0,2ddf344d-7065-40d5-9306-23870d8fc04a,2ddf344d-7065-40d5-9306-23870d8fc04a,1,0,c630ab2d-0a20-4136-88b6-220b2cad6a71,c630ab2d-0a20-4136-88b6-220b2cad6a71,1,0,00cd1dea-bc54-475c-956d-dc5221104932,00cd1dea-bc54-475c-956d-dc5221104932,1,0,c343495b-5947-4fe7-a94b-d1f2b2455b4f,c343495b-5947-4fe7-a94b-d1f2b2455b4f,1,0,fbce7316-bb9a-40c1-af3c-352f4b559ab6,fbce7316-bb9a-40c1-af3c-352f4b559ab6,1,0,a3721457-b33b-4742-b6e1-531af10969d1,a3721457-b33b-4742-b6e1-531af10969d1,1,0,9619a603-e578-4f30-bcc6-adfddfa915c0,9619a603-e578-4f30-bcc6-adfddfa915c0,1,0,3807f865-dd2c-44f7-9238-3db191f0a186,3807f865-dd2c-44f7-9238-3db191f0a186,1,0,4a55351b-77e2-4c7c-a7d7-aac213d3c2a7,4a55351b-77e2-4c7c-a7d7-aac213d3c2a7,1,0,f79ac41b-6ab2-4afc-aa98-b70b72d78bb4,f79ac41b-6ab2-4afc-aa98-b70b72d78bb4,1,0,2c5a56d3-386e-45df-adc2-4471f52f9bdc,2c5a56d3-386e-45df-adc2-4471f52f9bdc,1,0,8f184df5-bfe8-4df3-bc7c-18218cef7650,8f184df5-bfe8-4df3-bc7c-18218cef7650,1,0,387e273a-889f-454b-8b43-feaa12025fde,387e273a-889f-454b-8b43-feaa12025fde,1,0,22474ca3-565b-4b67-a5b4-b0b959306d10,22474ca3-565b-4b67-a5b4-b0b959306d10,1,0,1c38ad75-b294-4c05-89ce-69ce4d9a291f,1c38ad75-b294-4c05-89ce-69ce4d9a291f,1,0,078d1e8f-6d27-4761-9532-b1e7a60e4c13,078d1e8f-6d27-4761-9532-b1e7a60e4c13,1,0,4262193c-58ad-47c6-8088-735d8cd037ea,4262193c-58ad-47c6-8088-735d8cd037ea,1,0,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,1,0,de6d1aad-39eb-46ce-87aa-d29812bb37bf,de6d1aad-39eb-46ce-87aa-d29812bb37bf,1,0,4ad859ec-cc75-4bac-9e89-397798450e48,4ad859ec-cc75-4bac-9e89-397798450e48,1,0,d93ab94c-0f55-4b80-b226-41b44c73b3ea,d93ab94c-0f55-4b80-b226-41b44c73b3ea,1,0,94cbed80-5a35-471f-b354-439a11629210,94cbed80-5a35-471f-b354-439a11629210,1,0,1162cc0a-42e5-47cb-9507-68459579f110,1162cc0a-42e5-47cb-9507-68459579f110,1,0,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,1,0,bb49dc80-4934-4f44-8f27-9a363dca8dc4,bb49dc80-4934-4f44-8f27-9a363dca8dc4,1,0,7338e497-03a7-4ed4-85a2-ca802c065a9f,7338e497-03a7-4ed4-85a2-ca802c065a9f,1,0,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,1,0,5249687b-9ff4-46f5-be15-dbb5d5047fd1,5249687b-9ff4-46f5-be15-dbb5d5047fd1,1,0,d33df51c-3dcd-496c-90f2-7ee05582bdf7,d33df51c-3dcd-496c-90f2-7ee05582bdf7,1,0,24b39ebd-2424-4939-8e3e-d09eb674d409,24b39ebd-2424-4939-8e3e-d09eb674d409,1,0,08c751bb-9e57-4536-901e-bb316c8e96d7,08c751bb-9e57-4536-901e-bb316c8e96d7,1,0,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,1,0,034cdcef-08e5-4751-9885-400aa69e0b94,034cdcef-08e5-4751-9885-400aa69e0b94,1,0,3e44d463-f253-4a64-8d68-631fcb66935c,3e44d463-f253-4a64-8d68-631fcb66935c,1,0,653d6483-029b-4453-a7d0-3a3c6d9d0b05,653d6483-029b-4453-a7d0-3a3c6d9d0b05,1,0,ac507771-50bd-4f8b-b72f-5954562c9131,ac507771-50bd-4f8b-b72f-5954562c9131,1,0,efefebea-2032-4006-b9ca-50a23b7da1ef,efefebea-2032-4006-b9ca-50a23b7da1ef,1,0,4c794d37-3352-4acb-a939-5e90fb682db8,4c794d37-3352-4acb-a939-5e90fb682db8,1,0,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,1,0,008f5068-da9c-4dac-9c0a-a50366d27cbb,008f5068-da9c-4dac-9c0a-a50366d27cbb,1,0,950b3ee3-070f-4946-8b9b-0aa2058de986,950b3ee3-070f-4946-8b9b-0aa2058de986,1,0,bd04a870-0943-4bdb-9e30-50a69daa8a13,bd04a870-0943-4bdb-9e30-50a69daa8a13,1,0,573c2153-7069-4589-8a2a-4517edca877d,573c2153-7069-4589-8a2a-4517edca877d,1,0,0a2f03c1-87d7-4589-9c47-8dd67faa1759,0a2f03c1-87d7-4589-9c47-8dd67faa1759,1,0,d1475ede-879c-4085-9980-2edaaf0eb0e9,d1475ede-879c-4085-9980-2edaaf0eb0e9,1,0,54eac28f-da81-4939-b2f9-924d3c215de5,54eac28f-da81-4939-b2f9-924d3c215de5,1,0,20d34659-1bde-4af0-be2c-da922e4ace6e,20d34659-1bde-4af0-be2c-da922e4ace6e,1,0,dec45aee-a4a8-473c-904e-15d5ff31efc3,dec45aee-a4a8-473c-904e-15d5ff31efc3,1,0,8b9318e5-c6ce-4253-9759-8ddd42468775,8b9318e5-c6ce-4253-9759-8ddd42468775,1,0,e79dd738-4e6c-411a-97a2-d0acbe4918ee,e79dd738-4e6c-411a-97a2-d0acbe4918ee,1,0,571a910a-67c7-4fe9-b06e-78893498a606,571a910a-67c7-4fe9-b06e-78893498a606,1,0,86f98256-87d1-4922-8d70-a5d2cad1c385,86f98256-87d1-4922-8d70-a5d2cad1c385,1,0,05faa67b-195a-4f46-8e47-30c4208cbc64,05faa67b-195a-4f46-8e47-30c4208cbc64,1,0,be75d0b2-c9db-4dab-9e32-dbe26d667508,be75d0b2-c9db-4dab-9e32-dbe26d667508,1,0,299c014f-996a-4a99-a5be-a7cfd5ee45e4,299c014f-996a-4a99-a5be-a7cfd5ee45e4,1,0,2569b69d-006f-478e-83b7-9163048b34bb,2569b69d-006f-478e-83b7-9163048b34bb,1,0,1ee47933-8117-4d47-9245-476c0ed3a373,1ee47933-8117-4d47-9245-476c0ed3a373,1,0,31cac1e9-eb16-489c-9322-30d1e27a80b3,31cac1e9-eb16-489c-9322-30d1e27a80b3,1,0,0d100e33-7941-41c1-962d-7672c874e9c5,0d100e33-7941-41c1-962d-7672c874e9c5,1,0,c5ac53c9-c9b2-4b90-a21e-10f1daa756c5,c5ac53c9-c9b2-4b90-a21e-10f1daa756c5,1,0,6e61d717-de36-4dce-8af9-b6c14ed76acb,6e61d717-de36-4dce-8af9-b6c14ed76acb,1,0,474518fe-9cb5-4a12-9388-bc7a64511617,474518fe-9cb5-4a12-9388-bc7a64511617,1,0,64337614-b1c9-4931-b576-448721fa4602,64337614-b1c9-4931-b576-448721fa4602,1,0,1d73b59c-0594-4ed3-b584-cf1261941e1d,1d73b59c-0594-4ed3-b584-cf1261941e1d,1,0,8ff2547f-d596-4fa1-9e12-079e1cc4c057,8ff2547f-d596-4fa1-9e12-079e1cc4c057,1,0,1ab0c8f8-b908-4618-ae88-af37b8f1224e,1ab0c8f8-b908-4618-ae88-af37b8f1224e,1,0,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,1,0,05507f2b-eed8-4da4-8efc-77d9d8e2daca,05507f2b-eed8-4da4-8efc-77d9d8e2daca,1,0,0440ed06-3f42-48a8-9431-fd608920b577,0440ed06-3f42-48a8-9431-fd608920b577,1,0,37be75c9-bf1a-437a-ab05-f9e3aac6f440,37be75c9-bf1a-437a-ab05-f9e3aac6f440,1,0,b85b3a58-95e4-4698-b1ae-037901ecc1b1,b85b3a58-95e4-4698-b1ae-037901ecc1b1,1,0,b77d748a-d180-432d-91c3-774e6ccf7efa,b77d748a-d180-432d-91c3-774e6ccf7efa,1,0,e5b9c1b0-4690-442c-b160-e6c587e42e57,e5b9c1b0-4690-442c-b160-e6c587e42e57,1,0,e3adb576-6b33-475b-976b-7a6783de3184,e3adb576-6b33-475b-976b-7a6783de3184,1,0,c6cef8db-0689-42a6-9f43-c86b7c3cf0e9,c6cef8db-0689-42a6-9f43-c86b7c3cf0e9,1,0,78f5a205-dffb-4009-897a-e8f36372f33c,78f5a205-dffb-4009-897a-e8f36372f33c,1,0,f7597041-f182-42fb-803a-2521c70d627d,f7597041-f182-42fb-803a-2521c70d627d,1,0,ce988b8a-d0c1-400a-9466-aa757501bb58,ce988b8a-d0c1-400a-9466-aa757501bb58,1,0,ab98d665-8da8-406e-9e0e-3e130ab393ef,ab98d665-8da8-406e-9e0e-3e130ab393ef,1,0,9e823bb6-b0c0-439e-81e4-ebd46b79b99c,9e823bb6-b0c0-439e-81e4-ebd46b79b99c,1,0,ea8beea1-7d80-4613-b2f9-79ee612e977a,ea8beea1-7d80-4613-b2f9-79ee612e977a,1,0,afd62a32-fdbb-429a-9a64-89c61a07e018,afd62a32-fdbb-429a-9a64-89c61a07e018,1,0,027cef43-99bd-48d3-a1a3-2102ac003742,027cef43-99bd-48d3-a1a3-2102ac003742,1,0,00197ea9-de76-4e2a-97bc-93e44053e35e,00197ea9-de76-4e2a-97bc-93e44053e35e,1,0,540a47b8-f6d4-4531-ac87-3f7cfbef4c8c,540a47b8-f6d4-4531-ac87-3f7cfbef4c8c,1,0,a51f7c6f-2631-4d23-becc-c0e8b711fddd,a51f7c6f-2631-4d23-becc-c0e8b711fddd,1,0,37806357-d92c-4bea-a5ef-77f138578fda,37806357-d92c-4bea-a5ef-77f138578fda,1,0,91b100e6-fbbe-4bb0-8d51-d12595a2a3e8,91b100e6-fbbe-4bb0-8d51-d12595a2a3e8,1,0,0a880538-f97f-448e-a4a9-82b0194dbe28,0a880538-f97f-448e-a4a9-82b0194dbe28,1,0,24b4dd9e-825f-471b-b15d-ae21a508d183,24b4dd9e-825f-471b-b15d-ae21a508d183,1,0,179868b7-d342-4df0-9386-c114d75faf3a,179868b7-d342-4df0-9386-c114d75faf3a,1,0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,1,0,929e9199-dfd5-497d-ad77-6638d20c7336,929e9199-dfd5-497d-ad77-6638d20c7336,1,0,4d1546ee-30ff-4cf7-afd3-60b565e3cb53,4d1546ee-30ff-4cf7-afd3-60b565e3cb53,1,0,aaf51715-f468-4856-b9ae-fd66bc143633,aaf51715-f468-4856-b9ae-fd66bc143633,1,0,e9650eea-d35a-4abc-977c-fb9b2abba0e5,e9650eea-d35a-4abc-977c-fb9b2abba0e5,1,0,b00626a3-5438-40c4-8ca9-5609e9dfe476,b00626a3-5438-40c4-8ca9-5609e9dfe476,1,0,b537f309-f957-4804-9f0f-03a71aedf694,b537f309-f957-4804-9f0f-03a71aedf694,1,0,4d72bd30-8d60-4f84-9ad8-83489d9cb3fb,4d72bd30-8d60-4f84-9ad8-83489d9cb3fb,1,0,7e4afed8-5c56-4765-bcd0-a40e6121ba22,7e4afed8-5c56-4765-bcd0-a40e6121ba22,1,0,155660a1-8a63-4562-a715-d75a8af7176b,155660a1-8a63-4562-a715-d75a8af7176b,1,0,878fe826-fa99-44ad-9891-5eada9744017,878fe826-fa99-44ad-9891-5eada9744017,1,0,0d61712a-dfaf-46f1-b728-62993dd94fbe,0d61712a-dfaf-46f1-b728-62993dd94fbe,1,0,3a6cf496-09b9-4947-9df5-06d23b474558,3a6cf496-09b9-4947-9df5-06d23b474558,1,0,625b498a-33d1-4162-9525-fb7790cbb6a8,625b498a-33d1-4162-9525-fb7790cbb6a8,1,0,28223f7b-d15a-4f12-b57c-1f6d08a902f9,28223f7b-d15a-4f12-b57c-1f6d08a902f9,1,0,dd9eb5b7-5aed-4e51-9939-9ff14492d240,dd9eb5b7-5aed-4e51-9939-9ff14492d240,1,0,b2a14899-d589-4990-b85e-7bffb427e8af,b2a14899-d589-4990-b85e-7bffb427e8af,1,0,0981d114-05bd-4ee1-a8fd-398fa6620d0b,0981d114-05bd-4ee1-a8fd-398fa6620d0b,1,0,3210ba40-382e-4917-ad0f-9bd88d23dc25,3210ba40-382e-4917-ad0f-9bd88d23dc25,1,0,835e3ead-d01f-410b-937a-902dd5e66aec,835e3ead-d01f-410b-937a-902dd5e66aec,1,0,40141982-d1d6-416f-844e-19143a407ff9,40141982-d1d6-416f-844e-19143a407ff9,1,0,f5c4d4ad-dda6-4dc3-b112-61f776006f3c,f5c4d4ad-dda6-4dc3-b112-61f776006f3c,1,0,466d9fd7-188e-4f3b-a673-35db9075d537,466d9fd7-188e-4f3b-a673-35db9075d537,1,0,1c2e2c7d-c9d2-46a6-81f9-30078ca511c7,1c2e2c7d-c9d2-46a6-81f9-30078ca511c7,1,0,09d3717a-d6f9-42fd-ae9e-df5658fa3981,09d3717a-d6f9-42fd-ae9e-df5658fa3981,1,0,9b26aa5f-1e77-4261-adf6-6f2f24f5af33,9b26aa5f-1e77-4261-adf6-6f2f24f5af33,1,0,b6b5e6c1-3967-4c2f-b8bc-0acc96afe240,b6b5e6c1-3967-4c2f-b8bc-0acc96afe240,1,0,de355360-f87a-4b0d-a37c-d0a091e7e984,de355360-f87a-4b0d-a37c-d0a091e7e984,1,0,8819399f-4803-413c-ad5e-7fa2c8878e5f,8819399f-4803-413c-ad5e-7fa2c8878e5f,1,0,99ff834a-f030-4af3-9b7d-f92a03f7c6f4,99ff834a-f030-4af3-9b7d-f92a03f7c6f4,1,0,afea5f32-22ff-4940-8156-3ec8b9c7bbb9,afea5f32-22ff-4940-8156-3ec8b9c7bbb9,1,0,fa01c28c-44d1-4fa9-b167-73d6cecb7730,fa01c28c-44d1-4fa9-b167-73d6cecb7730,1,0,d82c675e-7d38-417c-9cfc-6af0e86addfd,d82c675e-7d38-417c-9cfc-6af0e86addfd,1,0,319c4428-9463-4aa4-a87a-2749c49f4069,319c4428-9463-4aa4-a87a-2749c49f4069,1,0,497deeb7-0630-4f72-bcdb-ebacf8963d79,497deeb7-0630-4f72-bcdb-ebacf8963d79,1,0,ef471953-7c99-40f9-a31d-f50ed8ba3fc5,ef471953-7c99-40f9-a31d-f50ed8ba3fc5,1,0,98393093-7ba6-4b4d-86be-ee5826cd8cd5,98393093-7ba6-4b4d-86be-ee5826cd8cd5,1,0,87de486d-3f35-4432-a7cd-9d3832db63cf,87de486d-3f35-4432-a7cd-9d3832db63cf,1,0,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,1,0,ea6c4830-a34d-4026-a0ca-5cf7e44f089d,ea6c4830-a34d-4026-a0ca-5cf7e44f089d,1,0,bb7ce04a-8143-4c0b-a196-1b57f1640142,bb7ce04a-8143-4c0b-a196-1b57f1640142,1,0,4872f12c-705c-4dd3-802f-d27496a0d634,4872f12c-705c-4dd3-802f-d27496a0d634,1,0,3bacfd93-dfc7-4154-9d3f-b61ddc5c6721,3bacfd93-dfc7-4154-9d3f-b61ddc5c6721,1,0,fc65918a-2ad1-47b1-980d-5afe63579964,fc65918a-2ad1-47b1-980d-5afe63579964,1,0,7ece6efe-16a1-4294-8c28-3fa6427ba9f0,7ece6efe-16a1-4294-8c28-3fa6427ba9f0,1,0,61094d92-b1e6-45b9-9258-38a7bb1d6469,61094d92-b1e6-45b9-9258-38a7bb1d6469,1,0,4791b5d4-3568-4420-8c25-89ecce7c6353,4791b5d4-3568-4420-8c25-89ecce7c6353,1,0,0c0bbfba-c1c4-4bb5-a813-10da4bef7911,0c0bbfba-c1c4-4bb5-a813-10da4bef7911,1,0,f9ada91a-e673-4821-9bce-cb0dd75ca28b,f9ada91a-e673-4821-9bce-cb0dd75ca28b,1,0,9fcf68bb-43e2-4cd1-89ec-8797ad9c0e8b,9fcf68bb-43e2-4cd1-89ec-8797ad9c0e8b,1,0,90ce635a-0277-4056-980d-d1a16d91cb30,90ce635a-0277-4056-980d-d1a16d91cb30,1,0,e61a8360-a0f8-4d86-b91a-2ae9b8552bf0,e61a8360-a0f8-4d86-b91a-2ae9b8552bf0,1,0,1e77e873-632c-482b-8f46-8f8cc3cc8cef,1e77e873-632c-482b-8f46-8f8cc3cc8cef,1,0,00605607-03ab-43fc-ba08-9fc32f582d0a,00605607-03ab-43fc-ba08-9fc32f582d0a,1,0,5ab0a910-74ab-4af0-b5a3-40845a789fde,5ab0a910-74ab-4af0-b5a3-40845a789fde,1,0,bb659006-c11e-4427-8d86-229ba43ef679,bb659006-c11e-4427-8d86-229ba43ef679,1,0,766208a3-2780-427b-a7d3-93abe99d236b,766208a3-2780-427b-a7d3-93abe99d236b,1,0,63ce4c3c-5bad-409c-904f-18f34cf1da78,63ce4c3c-5bad-409c-904f-18f34cf1da78,1,0,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,1,0,26ac22f9-0bbb-4671-b446-626e345e2461,26ac22f9-0bbb-4671-b446-626e345e2461,1,0,0d63ee6d-e17f-4a86-b384-adf9793f3331,0d63ee6d-e17f-4a86-b384-adf9793f3331,1,0,f152945b-2a7b-449e-a915-176166af7bac,f152945b-2a7b-449e-a915-176166af7bac,1,0,77f5d86a-7fae-4490-9740-0e31102dab5c,77f5d86a-7fae-4490-9740-0e31102dab5c,1,0,5a54bc1a-d178-412c-bf4a-cf92d7f141aa,5a54bc1a-d178-412c-bf4a-cf92d7f141aa,1,0,24be43ec-d39e-46aa-9c11-2536b835e515,24be43ec-d39e-46aa-9c11-2536b835e515,1,0,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,1,0,df9af3ee-6a69-4a03-8ff5-0735e9a38013,df9af3ee-6a69-4a03-8ff5-0735e9a38013,1,0,1b27eb77-d535-43a5-8ae1-fa2fec15d92c,1b27eb77-d535-43a5-8ae1-fa2fec15d92c,1,0,7743fe24-b941-4dad-bc76-05fb6b26b1d7,7743fe24-b941-4dad-bc76-05fb6b26b1d7,1,0,5bf2da0d-f318-4036-9234-8a3a6eca88b2,5bf2da0d-f318-4036-9234-8a3a6eca88b2,1,0,288525fc-d3fa-4c8e-a1d7-d2d1ef4cd0ef,288525fc-d3fa-4c8e-a1d7-d2d1ef4cd0ef,1,0,c3634571-6fe5-45ab-9362-161305eef661,c3634571-6fe5-45ab-9362-161305eef661,1,0,ec11342f-594f-416f-a10f-bd1bfa695c08,ec11342f-594f-416f-a10f-bd1bfa695c08,1,0,31c3ac44-204e-43fd-bca3-fd18fa091c58,31c3ac44-204e-43fd-bca3-fd18fa091c58,1,0,74f03c35-5da0-406e-a938-e8e5d49975ef,74f03c35-5da0-406e-a938-e8e5d49975ef,1,0,c9ab3890-6d16-431f-ab2b-b5058e6202a4,c9ab3890-6d16-431f-ab2b-b5058e6202a4,1,0,5ee9eed7-3c6c-4264-ab9a-6f24f9c80598,5ee9eed7-3c6c-4264-ab9a-6f24f9c80598,1,0,3c33adc7-abea-4e0f-9e5d-d8f10abb63df,3c33adc7-abea-4e0f-9e5d-d8f10abb63df,1,0,4090c6f7-1d25-4b17-9baa-18daa0640b0f,4090c6f7-1d25-4b17-9baa-18daa0640b0f,1,0,26125e58-dfc8-4bbb-a3a4-80616471746e,26125e58-dfc8-4bbb-a3a4-80616471746e,1,0,b1c699cd-efdc-461c-ad37-10bfd4bc9674,b1c699cd-efdc-461c-ad37-10bfd4bc9674,1,0,6add1920-5073-4b1e-b7e0-13bf1e65e4c3,6add1920-5073-4b1e-b7e0-13bf1e65e4c3,1,0,f12c946c-98e4-4da6-8a88-c555e9dc3bdd,f12c946c-98e4-4da6-8a88-c555e9dc3bdd,1,0,ec5718b7-1c4d-4bdc-9426-40a339bb29cf,ec5718b7-1c4d-4bdc-9426-40a339bb29cf,1,0,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,1,0,96661303-1286-4f84-93b7-0e6da2bd7893,96661303-1286-4f84-93b7-0e6da2bd7893,1,0,68076431-36e6-46dc-92cb-e0d8e605bf66,68076431-36e6-46dc-92cb-e0d8e605bf66,1,0,239fa55a-6572-4e5c-9918-c2e14063c76d,239fa55a-6572-4e5c-9918-c2e14063c76d,1,0,8211a1b6-c3b1-466b-8d11-22603fb50c7a,8211a1b6-c3b1-466b-8d11-22603fb50c7a,1,0,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,1,0,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,1,0,a83cb338-5707-42c9-9e88-11f6c68fcc32,a83cb338-5707-42c9-9e88-11f6c68fcc32,1,0,36b15776-5211-4afa-9b6c-c042121218c0,36b15776-5211-4afa-9b6c-c042121218c0,1,0,422a0e10-361f-46ba-b92e-3088d81e12a4,422a0e10-361f-46ba-b92e-3088d81e12a4,1,0,f37b7b25-abd2-4e19-9712-78aafceb4f43,f37b7b25-abd2-4e19-9712-78aafceb4f43,1,0,7cd4c6ea-5795-4bea-a159-1e66650c42fe,7cd4c6ea-5795-4bea-a159-1e66650c42fe,1,0,091fcffa-da7e-4375-bf0b-11cc4950b5ad,091fcffa-da7e-4375-bf0b-11cc4950b5ad,1,0,57e91491-73b6-43f7-b7f8-26efec56ce9e,57e91491-73b6-43f7-b7f8-26efec56ce9e,1,0,da031ebd-4aba-40e6-acb9-245cf73c4423,da031ebd-4aba-40e6-acb9-245cf73c4423,1,0,59d47246-e522-4baa-96b3-d7e93279e3ec,59d47246-e522-4baa-96b3-d7e93279e3ec,1,0,c222b2c0-5e92-4022-b2f7-49967b5a9de3,c222b2c0-5e92-4022-b2f7-49967b5a9de3,1,0,e9bf314a-a4d1-4fb8-a84c-84ac7df6c456,e9bf314a-a4d1-4fb8-a84c-84ac7df6c456,1,0,f93741c9-ab94-464b-b0d4-4af99c9f92d5,f93741c9-ab94-464b-b0d4-4af99c9f92d5,1,0,0fddbd8d-12dd-4af1-9e34-feebf4bc38b1,0fddbd8d-12dd-4af1-9e34-feebf4bc38b1,1,0,2e9548a6-1fd8-4430-8864-91bde0d2a7a1,2e9548a6-1fd8-4430-8864-91bde0d2a7a1,1,0,c59fd3f8-c734-49d3-90ba-e608a22ac981,c59fd3f8-c734-49d3-90ba-e608a22ac981,1,0,b26235ed-374c-44ab-8b3c-01d7c4d82d4c,b26235ed-374c-44ab-8b3c-01d7c4d82d4c,1,0,5056db9f-9ebe-4cca-98f0-5f4817a1cba4,5056db9f-9ebe-4cca-98f0-5f4817a1cba4,1,0,475f76ea-f494-41f1-9b65-f39907e5a427,475f76ea-f494-41f1-9b65-f39907e5a427,1,0,986280d1-41bb-4b15-a5ae-516d6a04c1f4,986280d1-41bb-4b15-a5ae-516d6a04c1f4,1,0,43bfd29a-d254-4c33-8639-200b483578c1,43bfd29a-d254-4c33-8639-200b483578c1,1,0,6a274167-7f80-4613-9890-259ffd8ccfc4,6a274167-7f80-4613-9890-259ffd8ccfc4,1,0,00696255-ea14-4fee-8633-0962f3c441d1,00696255-ea14-4fee-8633-0962f3c441d1,1,0,4e90e1ab-b1ec-4795-ad45-1db151a5492c,4e90e1ab-b1ec-4795-ad45-1db151a5492c,1,0,91791e56-ca80-4d90-b8a8-16145f6a9721,91791e56-ca80-4d90-b8a8-16145f6a9721,1,0,b242c6a2-5ac9-4edb-b5dd-24eda8162151,b242c6a2-5ac9-4edb-b5dd-24eda8162151,1,0,8d080f3c-06ed-48bf-9709-eea73d676741,8d080f3c-06ed-48bf-9709-eea73d676741,1,0,57b31a5d-9fdc-43d2-ae81-67157822c4b6,57b31a5d-9fdc-43d2-ae81-67157822c4b6,1,0,d4e2da66-9a70-459f-a873-cb4ad71d17b2,d4e2da66-9a70-459f-a873-cb4ad71d17b2,1,0,a84a91d2-d326-4bf4-82e6-d573ee35d090,a84a91d2-d326-4bf4-82e6-d573ee35d090,1,0,fef27478-ddfd-4ad9-8161-148761f29698,fef27478-ddfd-4ad9-8161-148761f29698,1,0,39cbda23-db3f-4ddd-8981-8540247406db,39cbda23-db3f-4ddd-8981-8540247406db,1,0,c8a18d99-62ff-45a4-acb5-48e3310c1b53,c8a18d99-62ff-45a4-acb5-48e3310c1b53,1,0,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,1,0,3500c6fa-813a-49dd-a4bf-163500db5b7f,3500c6fa-813a-49dd-a4bf-163500db5b7f,1,0,1d02493a-dd89-4a51-b75e-9c49f9818b95,1d02493a-dd89-4a51-b75e-9c49f9818b95,1,0,2845c5d1-e836-4499-bcae-f3c8fdae75ee,2845c5d1-e836-4499-bcae-f3c8fdae75ee,1,0,fe4e8e4e-9471-4583-b9b3-576007db08ee,fe4e8e4e-9471-4583-b9b3-576007db08ee,1,0,49deaaa8-6d50-4b25-8153-6712d88fb0fb,49deaaa8-6d50-4b25-8153-6712d88fb0fb,1,0,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,1,0,46a06de8-06fd-4b49-835f-4f24b832b3c4,46a06de8-06fd-4b49-835f-4f24b832b3c4,1,0,3845a567-4375-4c3a-af61-5b82674060ab,3845a567-4375-4c3a-af61-5b82674060ab,1,0,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,1,0,a835a3a7-989b-4247-b836-d23bba2f391a,a835a3a7-989b-4247-b836-d23bba2f391a,1,0,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,1,0,9b149c20-9328-4e2d-a34b-95c883ae4dcc,9b149c20-9328-4e2d-a34b-95c883ae4dcc,1,0,dd6fdc0d-49bb-4fa1-aa17-bd9dc38a0992,dd6fdc0d-49bb-4fa1-aa17-bd9dc38a0992,1,0,f8dbf226-ea56-4b15-baf1-a41fceba2a32,f8dbf226-ea56-4b15-baf1-a41fceba2a32,1,0,1422999b-9977-4bed-9990-b46bd0ec7471,1422999b-9977-4bed-9990-b46bd0ec7471,1,0,4c48db2f-2b79-4c6f-b8ee-002810c6190c,4c48db2f-2b79-4c6f-b8ee-002810c6190c,1,0,d0d90cbf-21fc-47cb-8e1c-549e67a1bf0c,d0d90cbf-21fc-47cb-8e1c-549e67a1bf0c,1,0,cf48ae02-ecb0-4db9-92da-585f89cddb70,cf48ae02-ecb0-4db9-92da-585f89cddb70,1,0,5650c5c7-3f43-4ec9-8b64-003c5467d06a,5650c5c7-3f43-4ec9-8b64-003c5467d06a,1,0,5bac3798-1193-4d74-bbdd-40aba11d742c,5bac3798-1193-4d74-bbdd-40aba11d742c,1,0,514f3514-ba90-493e-b0dd-2d02c6ba4d1d,514f3514-ba90-493e-b0dd-2d02c6ba4d1d,1,0,032de836-80a8-46ce-9e40-b3b6ac5f9e1e,032de836-80a8-46ce-9e40-b3b6ac5f9e1e,1,0,962c2c55-6a16-46f6-9ce0-67d1984b530e,962c2c55-6a16-46f6-9ce0-67d1984b530e,1,0,27e906c2-ea0e-489e-b869-547c48c29518,27e906c2-ea0e-489e-b869-547c48c29518,1,0,553ebd03-267b-4ced-805e-be7eca6db18f,553ebd03-267b-4ced-805e-be7eca6db18f,1,0,8bf95fa7-1067-45b3-82ea-286192f97e06,8bf95fa7-1067-45b3-82ea-286192f97e06,1,0,73996d67-4d70-4ce5-a58a-d70f44484f1e,73996d67-4d70-4ce5-a58a-d70f44484f1e,1,0,5e86a443-bd0f-411d-b1b9-41bfa0cf1a2f,5e86a443-bd0f-411d-b1b9-41bfa0cf1a2f,1,0,fcaecd43-b938-4680-93be-963db5218f35,fcaecd43-b938-4680-93be-963db5218f35,1,0,63415525-46a2-4d70-bdab-665945a9185c,63415525-46a2-4d70-bdab-665945a9185c,1,0,27e37fde-daf0-47fa-865c-3cd86151f5be,27e37fde-daf0-47fa-865c-3cd86151f5be,1,0,b3b63074-984a-48d2-ba5b-d69dd0b8067e,b3b63074-984a-48d2-ba5b-d69dd0b8067e,1,0,fc4a9f03-c81f-4201-814c-c6d5a5029168,fc4a9f03-c81f-4201-814c-c6d5a5029168,1,0,abba612c-137a-4dff-89f3-445945c30859,abba612c-137a-4dff-89f3-445945c30859,1,0,c4753515-a483-453e-a48b-b12d8ef48fd9,c4753515-a483-453e-a48b-b12d8ef48fd9,1,0,9b0e9fec-8261-4e20-9556-754a46d11c12,9b0e9fec-8261-4e20-9556-754a46d11c12,1,0,2d9048eb-abdf-4980-96ed-788fbb0f4ea7,2d9048eb-abdf-4980-96ed-788fbb0f4ea7,1,0,98c3bc52-2351-460c-8b8e-0d3f45ca3131,98c3bc52-2351-460c-8b8e-0d3f45ca3131,1,0,d1ade16c-bd56-46e5-874f-3117c5653192,d1ade16c-bd56-46e5-874f-3117c5653192,1,0,339398c0-6407-483c-82f7-266ef08b8657,339398c0-6407-483c-82f7-266ef08b8657,1,0,4f0a8f8c-68cb-4afe-b487-64e7ceeef9ab,4f0a8f8c-68cb-4afe-b487-64e7ceeef9ab,1,0,764bf84f-3aa5-4023-a15a-b546f8837141,764bf84f-3aa5-4023-a15a-b546f8837141,1,0,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,1,0,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,1,0,29645810-44aa-402c-9561-7819d6f4a7ab,29645810-44aa-402c-9561-7819d6f4a7ab,1,0,46bf4911-5200-44ac-9b4d-eb0089c12e34,46bf4911-5200-44ac-9b4d-eb0089c12e34,1,0,6e1685bd-7269-401c-b36e-def6a36b41d5,6e1685bd-7269-401c-b36e-def6a36b41d5,1,0,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,1,0,e03b6592-b597-4795-a78e-775d4f2258db,e03b6592-b597-4795-a78e-775d4f2258db,1,0,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,1,0,3b207d5f-6584-4cf2-9173-20235484f9f4,3b207d5f-6584-4cf2-9173-20235484f9f4,1,0,878d9efe-b0e7-487f-b8f7-83470c131e09,878d9efe-b0e7-487f-b8f7-83470c131e09,1,0,8270573d-8ed6-449d-853b-462d2dabaaa9,8270573d-8ed6-449d-853b-462d2dabaaa9,1,0,baeec6cd-b220-4240-95f2-3a0c1ee06c2e,baeec6cd-b220-4240-95f2-3a0c1ee06c2e,1,0,f2502463-67e4-4bfe-8ad5-fb80aa73975a,f2502463-67e4-4bfe-8ad5-fb80aa73975a,1,0,59e885e6-d978-40c2-95b6-35fc61074fb4,59e885e6-d978-40c2-95b6-35fc61074fb4,1,0,267dc512-9ee1-4bc1-9034-3effb7fb2949,267dc512-9ee1-4bc1-9034-3effb7fb2949,1,0,0f211e73-5be9-4015-93e7-ccf63e793cb6,0f211e73-5be9-4015-93e7-ccf63e793cb6,1,0,6574d8f4-fb97-4a26-b166-711fad63aa07,6574d8f4-fb97-4a26-b166-711fad63aa07,1,0,fb3eddaf-3241-4d59-8314-97a5ae9258c4,fb3eddaf-3241-4d59-8314-97a5ae9258c4,1,0,a3b0494c-f436-45ea-9577-4c0c86b057c9,a3b0494c-f436-45ea-9577-4c0c86b057c9,1,0,5101c142-b25c-4bef-80e7-7407f2c15c90,5101c142-b25c-4bef-80e7-7407f2c15c90,1,0,6d7872f1-fd54-41c4-8253-5f2b125f31ae,6d7872f1-fd54-41c4-8253-5f2b125f31ae,1,0,0c218200-27a8-4f71-9b09-3632dd453644,0c218200-27a8-4f71-9b09-3632dd453644,1,0,2d8a74e5-eb29-448b-b4c0-1f41fa171b5e,2d8a74e5-eb29-448b-b4c0-1f41fa171b5e,1,0,b5d30250-18ab-4af1-b99a-ff5dba334d1f,b5d30250-18ab-4af1-b99a-ff5dba334d1f,1,0,936f1aa5-7516-444b-b451-1162fa5d705f,936f1aa5-7516-444b-b451-1162fa5d705f,1,0,e8d5533e-2669-44f6-9eed-eaedab666d42,e8d5533e-2669-44f6-9eed-eaedab666d42,1,0,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,1,0,9e323b0d-4e3b-45d4-9705-aa30e63014f5,9e323b0d-4e3b-45d4-9705-aa30e63014f5,1,0,5afa798a-958e-4e0c-a380-0104f4c037a7,5afa798a-958e-4e0c-a380-0104f4c037a7,1,0,c0295fd9-c749-41b3-8d0d-6af16f484b1f,c0295fd9-c749-41b3-8d0d-6af16f484b1f,1,0,bd32a863-3090-432d-89c4-356ba86a0bdc,bd32a863-3090-432d-89c4-356ba86a0bdc,1,0,4621bf5a-46b5-4b82-8ae4-cc8e11e81ba0,4621bf5a-46b5-4b82-8ae4-cc8e11e81ba0,1,0,ed5465b4-a556-4078-ab18-49fef2afba2e,ed5465b4-a556-4078-ab18-49fef2afba2e,1,0,7368ab8f-59d5-4270-a43b-0f3e422169ed,7368ab8f-59d5-4270-a43b-0f3e422169ed,1,0,eeb0571b-1b74-4889-b8b5-f94186d692d7,eeb0571b-1b74-4889-b8b5-f94186d692d7,1,0,9ef3b72c-caa3-486b-9917-04c00f6689c1,9ef3b72c-caa3-486b-9917-04c00f6689c1,1,0,cb3039d8-4b11-4d03-b0ca-eae5dfc01b0a,cb3039d8-4b11-4d03-b0ca-eae5dfc01b0a,1,0,9245417f-f247-47ba-a1b4-a17ec2e8776c,9245417f-f247-47ba-a1b4-a17ec2e8776c,1,0,a4b721d7-b119-47eb-80e0-7db34c83964f,a4b721d7-b119-47eb-80e0-7db34c83964f,1,0,512629d1-e8b7-4f66-b613-b8c0cb9c250b,512629d1-e8b7-4f66-b613-b8c0cb9c250b,1,0,b7cf4684-4432-4658-9c06-b315d470a3a6,b7cf4684-4432-4658-9c06-b315d470a3a6,1,0,d3bc8211-54d8-47dd-aecf-5da72b65195f,d3bc8211-54d8-47dd-aecf-5da72b65195f,1,0,33f11da8-f670-4ec3-9d40-96fce031c60f,33f11da8-f670-4ec3-9d40-96fce031c60f,1,0,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,1,0,f74c2d41-2433-4bed-8aef-adfeed198252,f74c2d41-2433-4bed-8aef-adfeed198252,1,0,3c2b8a8a-bfe7-4e37-9d83-55a695a06605,3c2b8a8a-bfe7-4e37-9d83-55a695a06605,1,0,56c9703a-751a-4e6c-81f4-a8756fb040e3,56c9703a-751a-4e6c-81f4-a8756fb040e3,1,0,c3a86eec-1ff5-4392-9904-91a12a2e253a,c3a86eec-1ff5-4392-9904-91a12a2e253a,1,0,f5df72a3-c71c-412b-8c3e-6329f1d3a7da,f5df72a3-c71c-412b-8c3e-6329f1d3a7da,1,0,f02b7246-dae9-4e15-b4cd-b06133664d34,f02b7246-dae9-4e15-b4cd-b06133664d34,1,0,77f20022-17ce-4e00-8a84-015238bce6f3,77f20022-17ce-4e00-8a84-015238bce6f3,1,0,3734619b-7059-4547-8b97-0b3393389d4d,3734619b-7059-4547-8b97-0b3393389d4d,1,0,a30bf95f-aabd-4da0-8287-61e08f9362fb,a30bf95f-aabd-4da0-8287-61e08f9362fb,1,0,f5a7df18-2ddb-4053-9aeb-57fc37ae557e,f5a7df18-2ddb-4053-9aeb-57fc37ae557e,1,0,4078867c-2972-47f9-bebd-935a6f1cc667,4078867c-2972-47f9-bebd-935a6f1cc667,1,0,8502fe39-c241-4be5-a313-fd887bbbdfa1,8502fe39-c241-4be5-a313-fd887bbbdfa1,1,0,67a71201-13e5-42a3-902f-fb3a59710dfb,67a71201-13e5-42a3-902f-fb3a59710dfb,1,0,3a79a951-a997-4596-ab62-ba376d67725d,3a79a951-a997-4596-ab62-ba376d67725d,1,0,dd4fe688-c113-4ac5-8114-b89cf1b0eb55,dd4fe688-c113-4ac5-8114-b89cf1b0eb55,1,0,884c28de-434f-440a-8c63-67e659c097ad,884c28de-434f-440a-8c63-67e659c097ad,1,0,92ead3b5-8c55-4e4d-bd47-009e025b22f8,92ead3b5-8c55-4e4d-bd47-009e025b22f8,1,0,50d8e365-aa58-4b60-8992-01943379d485,50d8e365-aa58-4b60-8992-01943379d485,1,0,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,1,0,b3f7f763-bea9-4f59-9450-df95e5c3d89d,b3f7f763-bea9-4f59-9450-df95e5c3d89d,1,0,9111e28e-c1c7-414b-9288-61bd06a04d04,9111e28e-c1c7-414b-9288-61bd06a04d04,1,0,bcd705ba-c9ac-4e73-94b1-7632c0f06c04,bcd705ba-c9ac-4e73-94b1-7632c0f06c04,1,0,fec102ea-a3f6-49b5-b4b8-6884b0654129,fec102ea-a3f6-49b5-b4b8-6884b0654129,1,0,246571fb-38c7-4da6-929d-d8b44bc3437c,246571fb-38c7-4da6-929d-d8b44bc3437c,1,0,047fd6d7-5e30-4184-a09a-6525de526cc7,047fd6d7-5e30-4184-a09a-6525de526cc7,1,0,beb44b02-5d5e-4127-aee7-e184a43a4210,beb44b02-5d5e-4127-aee7-e184a43a4210,1,0,1dedfbc2-9250-4229-a6ea-5e085f33e7c3,1dedfbc2-9250-4229-a6ea-5e085f33e7c3,1,0,e24641ed-3e92-46d7-852b-9958ab7bc520,e24641ed-3e92-46d7-852b-9958ab7bc520,1,0,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,1,0,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,1,0,2c61114f-abd7-4415-8cdf-4fe95d9fe354,2c61114f-abd7-4415-8cdf-4fe95d9fe354,1,0,abd7a766-5cc1-48db-8d29-797e9d666a78,abd7a766-5cc1-48db-8d29-797e9d666a78,1,0,1704b5e3-8e77-4df6-9223-e6e5c41a280d,1704b5e3-8e77-4df6-9223-e6e5c41a280d,1,0,62eca88f-025d-44de-b92c-46cd8bc7e4a1,62eca88f-025d-44de-b92c-46cd8bc7e4a1,1,0,8fbf9432-77e8-4951-87a1-4368e3a5e117,8fbf9432-77e8-4951-87a1-4368e3a5e117,1,0,fbd5d6d8-05cd-43a3-85da-8dcbeee08333,fbd5d6d8-05cd-43a3-85da-8dcbeee08333,1,0,b0dde395-8498-4469-9507-d290798117d7,b0dde395-8498-4469-9507-d290798117d7,1,0,999616ea-0faa-4ae2-9841-6a6997ea6694,999616ea-0faa-4ae2-9841-6a6997ea6694,1,0,c5f91669-13d8-4f0a-a054-2701078da38a,c5f91669-13d8-4f0a-a054-2701078da38a,1,0,34f9872b-e02e-4093-ba06-3cb5b8995850,34f9872b-e02e-4093-ba06-3cb5b8995850,1,0,18515c19-c9ef-4c9f-8d12-4f58ffa251e8,18515c19-c9ef-4c9f-8d12-4f58ffa251e8,1,0,3afe11f6-7424-4b41-a42f-91db33756fa3,3afe11f6-7424-4b41-a42f-91db33756fa3,1,0,94e68502-adf1-476e-be2f-8418385959fa,94e68502-adf1-476e-be2f-8418385959fa,1,0,bf80ccc5-f907-4e7f-a007-6030c7ba682e,bf80ccc5-f907-4e7f-a007-6030c7ba682e,1,0,134bbd7c-cadd-4395-b7a4-0249dfe7d0b1,134bbd7c-cadd-4395-b7a4-0249dfe7d0b1,1,0,05f1f184-50cb-47c5-b3a8-62be6a9780c1,05f1f184-50cb-47c5-b3a8-62be6a9780c1,1,0,f908b81e-f5ba-46ca-b7c0-8cb43ab23901,f908b81e-f5ba-46ca-b7c0-8cb43ab23901,1,0,3c305f89-e453-46c7-987b-f01dc964efdb,3c305f89-e453-46c7-987b-f01dc964efdb,1,0,1809ff43-2af2-44d1-ac7b-91d5bbe4f0ce,1809ff43-2af2-44d1-ac7b-91d5bbe4f0ce,1,0,bf40c9ed-b7db-4200-9646-c4e751fc2014,bf40c9ed-b7db-4200-9646-c4e751fc2014,1,0,2bf9c338-d31e-467e-8281-d1d6a3a6b2e2,2bf9c338-d31e-467e-8281-d1d6a3a6b2e2,1,0,3c2c192e-4869-4cc6-ba47-1fadac5b9678,3c2c192e-4869-4cc6-ba47-1fadac5b9678,1,0,58c3936c-4db0-45c8-a22e-b5dd49a61497,58c3936c-4db0-45c8-a22e-b5dd49a61497,1,0,9aa607bc-5870-436a-bbe1-296560393e3b,9aa607bc-5870-436a-bbe1-296560393e3b,1,0,1635be16-4861-4a7d-babc-4caff448a7f7,1635be16-4861-4a7d-babc-4caff448a7f7,1,0,9e399087-c957-4a7a-ab9d-2b689736caab,9e399087-c957-4a7a-ab9d-2b689736caab,1,0,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,1,0,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,1,0,2b7372be-af0d-464e-8d09-8172229790af,2b7372be-af0d-464e-8d09-8172229790af,1,0,d85346db-be25-4dab-a2db-647c3d40dd17,d85346db-be25-4dab-a2db-647c3d40dd17,1,0,c7bafd34-5b15-42ec-b329-0be3002775ad,c7bafd34-5b15-42ec-b329-0be3002775ad,1,0,6feb2278-9149-47f8-a0ec-eb4bd9f44716,6feb2278-9149-47f8-a0ec-eb4bd9f44716,1,0,e99606f3-cf75-44b2-ad50-c88a8c3d189c,e99606f3-cf75-44b2-ad50-c88a8c3d189c,1,0,b4fa35f9-cb7e-46a8-b32b-801d212c8fcf,b4fa35f9-cb7e-46a8-b32b-801d212c8fcf,1,0,c960082b-8c16-4d7b-b7fd-b1f2bfe07e0b,c960082b-8c16-4d7b-b7fd-b1f2bfe07e0b,1,0,cd6770d5-cd3c-47af-bc46-c865993adf63,cd6770d5-cd3c-47af-bc46-c865993adf63,1,0,97ec899d-a2a0-4691-83ff-25b78dd49ef6,97ec899d-a2a0-4691-83ff-25b78dd49ef6,1,0,411db885-f761-44e5-bdd1-9fdf9e741ac1,411db885-f761-44e5-bdd1-9fdf9e741ac1,1,0,269ada84-71a9-4b4b-9604-caa40c5b7067,269ada84-71a9-4b4b-9604-caa40c5b7067,1,0,ea13607a-3e05-4468-9932-41b6d51cfedf,ea13607a-3e05-4468-9932-41b6d51cfedf,1,0,9f9936fc-54a0-4812-b12d-2f8f91551440,9f9936fc-54a0-4812-b12d-2f8f91551440,1,0,2eeea138-481c-4fde-9e8a-709d751cc469,2eeea138-481c-4fde-9e8a-709d751cc469,1,0,70a3df8f-c12a-4185-81c4-39a5114ef7a9,70a3df8f-c12a-4185-81c4-39a5114ef7a9,1,0,bd362ff9-3dec-4a4b-9595-8609de76e842,bd362ff9-3dec-4a4b-9595-8609de76e842,1,0,76cc9ae1-7ac2-4b99-8def-f21dc55ad07d,76cc9ae1-7ac2-4b99-8def-f21dc55ad07d,1,0,43e37533-ed38-4000-a387-5749f8d9aaf3,43e37533-ed38-4000-a387-5749f8d9aaf3,1,0,e93bdb44-64b3-43d8-b15a-c561dbb91974,e93bdb44-64b3-43d8-b15a-c561dbb91974,1,0,928e0e05-b946-48c8-9619-2d93eb94b036,928e0e05-b946-48c8-9619-2d93eb94b036,1,0,99e701f7-9206-4b20-bb32-e60c9a1d570e,99e701f7-9206-4b20-bb32-e60c9a1d570e,1,0,a7c7c835-5402-4bdd-a0e3-d21746174d5a,a7c7c835-5402-4bdd-a0e3-d21746174d5a,1,0,54766e6b-cf49-4c58-b5e5-dcb6362ac5e2,54766e6b-cf49-4c58-b5e5-dcb6362ac5e2,1,0,f2210cf1-f9f5-41ed-8b4d-937778da842b,f2210cf1-f9f5-41ed-8b4d-937778da842b,1,0,07e81872-afac-4720-86b4-91e7bf4a2881,07e81872-afac-4720-86b4-91e7bf4a2881,1,0,d4b49ed0-3d3f-4b68-bc1e-949e8e338e9a,d4b49ed0-3d3f-4b68-bc1e-949e8e338e9a,1,0,542a53f5-56c5-4ca9-90d1-d689532c69fd,542a53f5-56c5-4ca9-90d1-d689532c69fd,1,0,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,1,0,845262f8-8208-4c90-98ec-c85dd5734cf0,845262f8-8208-4c90-98ec-c85dd5734cf0,1,0,532dfa48-39b0-4d0f-9f8c-b51ca27e47a9,532dfa48-39b0-4d0f-9f8c-b51ca27e47a9,1,0,17bc0f34-c35b-4beb-be5f-8e8d8f06c053,17bc0f34-c35b-4beb-be5f-8e8d8f06c053,1,0,f91813e6-b75c-43fb-8da3-a0d958dc6fa0,f91813e6-b75c-43fb-8da3-a0d958dc6fa0,1,0,ad066c0d-4f4c-48af-9cc8-bb835372150a,ad066c0d-4f4c-48af-9cc8-bb835372150a,1,0,a2145e81-239e-4267-8a43-ea3f7babe878,a2145e81-239e-4267-8a43-ea3f7babe878,1,0,39598414-9c1d-46ec-a534-8bd43e622e45,39598414-9c1d-46ec-a534-8bd43e622e45,1,0,b552c510-4fd4-4c16-9022-dc5babcafc52,b552c510-4fd4-4c16-9022-dc5babcafc52,1,0,3892c06d-28f1-4238-a929-201316cac1ed,3892c06d-28f1-4238-a929-201316cac1ed,1,0,c13dea2e-17fa-4a5f-a70f-96e623db8a6b,c13dea2e-17fa-4a5f-a70f-96e623db8a6b,1,0,ecc0ac05-9813-482d-bc39-0be1490d3f8b,ecc0ac05-9813-482d-bc39-0be1490d3f8b,1,0,866f53c8-4f1e-484a-a809-6130f7eef872,866f53c8-4f1e-484a-a809-6130f7eef872,1,0,339e8cba-a92e-42f6-8d00-3b8b56ce3b0f,339e8cba-a92e-42f6-8d00-3b8b56ce3b0f,1,0,567c68fd-74c7-4b6e-9119-56ac8d78073c,567c68fd-74c7-4b6e-9119-56ac8d78073c,1,0,3326bbcb-b277-44db-a252-2448119e8146,3326bbcb-b277-44db-a252-2448119e8146,1,0,61cac5f7-320c-4098-9078-44fadcdeb219,61cac5f7-320c-4098-9078-44fadcdeb219,1,0,304304b1-36a4-42bb-8ab9-b23b59795001,304304b1-36a4-42bb-8ab9-b23b59795001,1,0,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,1,0,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,1,0,cd454738-62dd-4f95-af33-b52750678428,cd454738-62dd-4f95-af33-b52750678428,1,0,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,1,0,e4abafc6-f859-4d96-9818-5b9bf8d66d69,e4abafc6-f859-4d96-9818-5b9bf8d66d69,1,0,535acd2c-26d2-4f32-9ae6-cc1956317c59,535acd2c-26d2-4f32-9ae6-cc1956317c59,1,0,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,1,0,ac4e0868-ba49-46b4-8872-d42483a5591f,ac4e0868-ba49-46b4-8872-d42483a5591f,1,0,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,1,0,0493dcf1-5f94-41f9-a4c7-a52e12a29068,0493dcf1-5f94-41f9-a4c7-a52e12a29068,1,0,ca4c0299-625a-4b03-be0e-36ffb45c6d08,ca4c0299-625a-4b03-be0e-36ffb45c6d08,1,0,7fa1119b-4321-4b8f-a879-1d940084145a,7fa1119b-4321-4b8f-a879-1d940084145a,1,0,5d9c0841-6ea6-48dc-a53b-9f19894750f8,5d9c0841-6ea6-48dc-a53b-9f19894750f8,1,0,86b5303b-d967-4bc6-b2da-066c5a58613f,86b5303b-d967-4bc6-b2da-066c5a58613f,1,0,853b824d-9377-475f-913e-d02bd60f5f64,853b824d-9377-475f-913e-d02bd60f5f64,1,0,d5a73869-381e-4878-8db7-596643937202,d5a73869-381e-4878-8db7-596643937202,1,0,c91de10a-d370-4495-9d9e-98581e566385,c91de10a-d370-4495-9d9e-98581e566385,1,0,3a93f1d2-3e9c-41a9-9d53-314538a96bb2,3a93f1d2-3e9c-41a9-9d53-314538a96bb2,1,0,8bc4bece-027f-460c-ade0-d7c7d3d9a6b7,8bc4bece-027f-460c-ade0-d7c7d3d9a6b7,1,0,dd73a8d8-a6db-4d3c-a808-d82bad8876b9,dd73a8d8-a6db-4d3c-a808-d82bad8876b9,1,0,11a93e3a-3c5b-4242-913c-02474a383344,11a93e3a-3c5b-4242-913c-02474a383344,1,0,ddd2861c-592b-4879-b9de-4b05a22c0b43,ddd2861c-592b-4879-b9de-4b05a22c0b43,1,0,5b383021-a800-4f0b-b8a3-d344389bff6c,5b383021-a800-4f0b-b8a3-d344389bff6c,1,0,8fe71bce-a61a-4a2e-bd18-81c7a7bb4456,8fe71bce-a61a-4a2e-bd18-81c7a7bb4456,1,0,11e708d8-82f4-4d45-a77d-7b9d23c0ef54,11e708d8-82f4-4d45-a77d-7b9d23c0ef54,1,0,8a57d427-a34e-4121-84e6-1a86a9f9092d,8a57d427-a34e-4121-84e6-1a86a9f9092d,1,0,dbc1bf11-e92a-4f4e-90d4-6a3ccdaec7e5,dbc1bf11-e92a-4f4e-90d4-6a3ccdaec7e5,1,0,29ec9423-25ef-4cf2-ad6a-58f854c3e22b,29ec9423-25ef-4cf2-ad6a-58f854c3e22b,1,0,2607e4d1-4fc0-4270-ad45-2c95d4aa04da,2607e4d1-4fc0-4270-ad45-2c95d4aa04da,1,0,b4b4bd5d-a860-4994-90b7-0c60ab680c4e,b4b4bd5d-a860-4994-90b7-0c60ab680c4e,1,0,68447105-a784-4803-8eb8-3701b0fc819d,68447105-a784-4803-8eb8-3701b0fc819d,1,0,ec892726-dee3-4edb-ad71-020404b09477,ec892726-dee3-4edb-ad71-020404b09477,1,0,5fb5320c-cd7c-4f28-ad6a-8670a60a9e11,5fb5320c-cd7c-4f28-ad6a-8670a60a9e11,1,0,59dee70d-aeca-470a-b3c4-e43bb16c5753,59dee70d-aeca-470a-b3c4-e43bb16c5753,1,0,82777e92-0681-44bf-b51e-4d98fcd5d5bd,82777e92-0681-44bf-b51e-4d98fcd5d5bd,1,0,2e0b331d-92d4-4250-94c6-9ced8cdcb1e4,2e0b331d-92d4-4250-94c6-9ced8cdcb1e4,1,0,cee126de-d567-44d3-b14c-35da6e501324,cee126de-d567-44d3-b14c-35da6e501324,1,0,4599ef83-5f1e-44af-ae0c-67988656a99e,4599ef83-5f1e-44af-ae0c-67988656a99e,1,0,acb0d7eb-2ed9-4419-b79d-7dc661d70c30,acb0d7eb-2ed9-4419-b79d-7dc661d70c30,1,0,e1b94dcf-ec37-4b2d-a7af-120eeee40944,e1b94dcf-ec37-4b2d-a7af-120eeee40944,1,0,7d2a37b1-a1a0-435a-846a-95e255655044,7d2a37b1-a1a0-435a-846a-95e255655044,1,0,109db64c-00dc-490e-99a5-4430d9344e99,109db64c-00dc-490e-99a5-4430d9344e99,1,0,85837a55-fed5-4b7b-a622-30d728b9a677,85837a55-fed5-4b7b-a622-30d728b9a677,1,0,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,1,0,6ede8b5c-7df0-44a5-9136-8109bbd8b5a9,6ede8b5c-7df0-44a5-9136-8109bbd8b5a9,1,0,325bacdd-793f-47d8-b987-57e9d5f2782b,325bacdd-793f-47d8-b987-57e9d5f2782b,1,0,80395d47-70d7-4d8d-9b18-93283fba80c2,80395d47-70d7-4d8d-9b18-93283fba80c2,1,0,8b621ec9-24c9-4166-90ce-29c5ad30f78b,8b621ec9-24c9-4166-90ce-29c5ad30f78b,1,0,cc98670a-7b18-4973-b211-90261c5c8c10,cc98670a-7b18-4973-b211-90261c5c8c10,1,0,da9821c3-4b16-48b7-9088-d3cf8ac536a6,da9821c3-4b16-48b7-9088-d3cf8ac536a6,1,0,fb36c775-1124-4ba6-8af8-133bf66fcb54,fb36c775-1124-4ba6-8af8-133bf66fcb54,1,0,51f9aff4-71da-4b1b-b48b-04122a17d855,51f9aff4-71da-4b1b-b48b-04122a17d855,1,0,d5142574-a040-4dd0-a482-cdc61c1d86ab,d5142574-a040-4dd0-a482-cdc61c1d86ab,1,0,62957889-503f-4923-a372-29776dc3b5e5,62957889-503f-4923-a372-29776dc3b5e5,1,0,90385850-d37b-4b2e-ac87-95c17f32197c,90385850-d37b-4b2e-ac87-95c17f32197c,1,0,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,1,0,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,1,0,6b28a716-2fb1-47f7-a7d6-f2fe7edb32c3,6b28a716-2fb1-47f7-a7d6-f2fe7edb32c3,1,0,e849e46c-2ce6-427b-92bc-06d7997f59bf,e849e46c-2ce6-427b-92bc-06d7997f59bf,1,0,5a971dc0-28bf-4426-9426-9f456aea080a,5a971dc0-28bf-4426-9426-9f456aea080a,1,0,f480ac52-e2f1-4ed0-a0b1-20a622f77302,f480ac52-e2f1-4ed0-a0b1-20a622f77302,1,0,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,1,0,b9b0fbdc-8fda-46d1-bb3e-561a03604971,b9b0fbdc-8fda-46d1-bb3e-561a03604971,1,0,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,1,0,672c2936-9771-4e32-a970-7ac7f12a21e8,672c2936-9771-4e32-a970-7ac7f12a21e8,1,0,73afaad8-dfa9-43e3-bdaf-543c3545d788,73afaad8-dfa9-43e3-bdaf-543c3545d788,1,0,c264441d-4805-4968-baa2-37b8970049c7,c264441d-4805-4968-baa2-37b8970049c7,1,0,4f0bda80-2246-43be-95f8-ae8480682cd5,4f0bda80-2246-43be-95f8-ae8480682cd5,1,0,ac4fa2a4-93a1-4aa6-986a-5f576457fc8a,ac4fa2a4-93a1-4aa6-986a-5f576457fc8a,1,0,6f683f46-9eef-4e78-bc2f-7174238bf53c,6f683f46-9eef-4e78-bc2f-7174238bf53c,1,0,7d1ed38b-98cf-4a0e-a605-680bb580d904,7d1ed38b-98cf-4a0e-a605-680bb580d904,1,0,b769eda0-11de-401c-a68b-4fce4555d4fc,b769eda0-11de-401c-a68b-4fce4555d4fc,1,0,fd7a668f-3099-4e15-956a-92c6295dd4d5,fd7a668f-3099-4e15-956a-92c6295dd4d5,1,0,afcbd830-ec5f-4865-a176-ea3014dff908,afcbd830-ec5f-4865-a176-ea3014dff908,1,0,dc5fc801-14e4-42e8-b396-76eb30b69eea,dc5fc801-14e4-42e8-b396-76eb30b69eea,1,0,485b9f00-475a-49e5-ade2-b2e05d94ecf0,485b9f00-475a-49e5-ade2-b2e05d94ecf0,1,0,310aef5a-84d9-4a68-af78-d623beff8a88,310aef5a-84d9-4a68-af78-d623beff8a88,1,0,398bf9d1-c353-461e-a1be-683047dcbe41,398bf9d1-c353-461e-a1be-683047dcbe41,1,0,f36150de-33af-4410-8a4c-8c9f4b545793,f36150de-33af-4410-8a4c-8c9f4b545793,1,0,62f97480-7d4a-48f3-9d1d-612909b242c9,62f97480-7d4a-48f3-9d1d-612909b242c9,1,0,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,1,0,3068be84-a401-4701-8ac9-411fae130f84,3068be84-a401-4701-8ac9-411fae130f84,1,0,957394a7-e5b8-47fc-8680-1e71efe2be7d,957394a7-e5b8-47fc-8680-1e71efe2be7d,1,0,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,1,0,4f25ef45-c8d9-401d-b0e8-2217ac310f04,4f25ef45-c8d9-401d-b0e8-2217ac310f04,1,0,504ca240-b5ae-433e-ae5f-d818263eea23,504ca240-b5ae-433e-ae5f-d818263eea23,1,0,32461819-9437-417d-8d1e-851c9a2dcee2,32461819-9437-417d-8d1e-851c9a2dcee2,1,0,74228950-8a4b-4dd6-a053-8650de202521,74228950-8a4b-4dd6-a053-8650de202521,1,0,6b9ce91e-08b9-4972-9878-1724c67b68ec,6b9ce91e-08b9-4972-9878-1724c67b68ec,1,0,640814f2-6082-475e-8006-25fd5b24afdb,640814f2-6082-475e-8006-25fd5b24afdb,1,0,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,1,0,569047c2-0879-4fba-a814-44812d21043b,569047c2-0879-4fba-a814-44812d21043b,1,0,0c3c4494-c037-431e-9eeb-9b6cfd7372c3,0c3c4494-c037-431e-9eeb-9b6cfd7372c3,1,0,80512d95-5458-4934-98ae-a7b58099196b,80512d95-5458-4934-98ae-a7b58099196b,1,0,6f2354cd-4a34-4921-96bb-b786486f85cf,6f2354cd-4a34-4921-96bb-b786486f85cf,1,0,f1b66ea8-262d-4b38-a039-b83a843f6ee8,f1b66ea8-262d-4b38-a039-b83a843f6ee8,1,0,bcae6e05-f1fd-413e-9eef-2e1cee42a962,bcae6e05-f1fd-413e-9eef-2e1cee42a962,1,0,40da1bca-ebb3-4c64-bf54-1f37b71d47b6,40da1bca-ebb3-4c64-bf54-1f37b71d47b6,1,0,778b4c8f-7a1e-4b4b-9f68-12cbf52bf195,778b4c8f-7a1e-4b4b-9f68-12cbf52bf195,1,0,91562fe8-e630-4bcb-a14e-c0e1e129141a,91562fe8-e630-4bcb-a14e-c0e1e129141a,1,0,c261abfd-3828-47b5-aa32-dfdd3a1636ad,c261abfd-3828-47b5-aa32-dfdd3a1636ad,1,0,e9aa6dab-0d96-42ce-9bd6-b8b10d755f8c,e9aa6dab-0d96-42ce-9bd6-b8b10d755f8c,1,0,1db1cb24-f364-4b91-bc96-c216764207a0,1db1cb24-f364-4b91-bc96-c216764207a0,1,0,64d7c8a7-1c15-4afb-ad97-abf8729c604e,64d7c8a7-1c15-4afb-ad97-abf8729c604e,1,0,a3cbbc8a-4afd-48c5-91d4-4849d18905c1,a3cbbc8a-4afd-48c5-91d4-4849d18905c1,1,0,5d6b29dc-38af-4dce-b79c-ce8f23afb3b1,5d6b29dc-38af-4dce-b79c-ce8f23afb3b1,1,0,c04b685a-0d2d-404c-a74a-775ffab298ce,c04b685a-0d2d-404c-a74a-775ffab298ce,1,0,5fe6967d-e333-464b-a89e-8c868c0ce37d,5fe6967d-e333-464b-a89e-8c868c0ce37d,1,0,5aef2892-7a87-4d3b-bb46-8340a7fb97a8,5aef2892-7a87-4d3b-bb46-8340a7fb97a8,1,0,8efa4c12-b5ba-4dfd-bdc9-e824402fc4b1,8efa4c12-b5ba-4dfd-bdc9-e824402fc4b1,1,0,84da1ef8-1784-4dfc-b17a-7728aa7ff62a,84da1ef8-1784-4dfc-b17a-7728aa7ff62a,1,0,9155c95b-6afb-41bb-bd0b-d37e503fc163,9155c95b-6afb-41bb-bd0b-d37e503fc163,1,0,d917c19e-be15-41cc-9c8a-a97c8de85309,d917c19e-be15-41cc-9c8a-a97c8de85309,1,0,54b5b44c-5f24-4b2a-982c-4489b18db7f0,54b5b44c-5f24-4b2a-982c-4489b18db7f0,1,0,5bc04a9a-6a0a-4607-b8eb-743b87143ae7,5bc04a9a-6a0a-4607-b8eb-743b87143ae7,1,0,e8045f52-7b27-48b0-b009-d488718b3bef,e8045f52-7b27-48b0-b009-d488718b3bef,1,0,1796bcbb-a629-4509-95c9-78562689f809,1796bcbb-a629-4509-95c9-78562689f809,1,0,cd9799c9-f5bf-4537-8885-06fb6e6b8f93,cd9799c9-f5bf-4537-8885-06fb6e6b8f93,1,0,d19e8fcc-62cc-4ce4-81bc-ead33a2714df,d19e8fcc-62cc-4ce4-81bc-ead33a2714df,1,0,1aa6b483-0f87-4ed3-94ea-8b81813532d6,1aa6b483-0f87-4ed3-94ea-8b81813532d6,1,0,0f79d87e-3311-4281-8f46-6154e708b930,0f79d87e-3311-4281-8f46-6154e708b930,1,0,e057e428-99c1-419d-a169-697c1e825e94,e057e428-99c1-419d-a169-697c1e825e94,1,0,784a60bd-4070-476d-9b8b-f607c76dc52b,784a60bd-4070-476d-9b8b-f607c76dc52b,1,0,904d5bd0-3843-4aaa-86a3-f8e12282e5c0,904d5bd0-3843-4aaa-86a3-f8e12282e5c0,1,0,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,1,0,748f7ddb-4cdc-46e5-9108-f7a550b33537,748f7ddb-4cdc-46e5-9108-f7a550b33537,1,0,0534460b-0548-45f0-ac79-aa4bc109655c,0534460b-0548-45f0-ac79-aa4bc109655c,1,0,47907538-9357-4885-8b50-17f2e16c260f,47907538-9357-4885-8b50-17f2e16c260f,1,0,17e1840f-fef3-4f17-8476-273e6af24cb4,17e1840f-fef3-4f17-8476-273e6af24cb4,1,0,a64566fa-b706-49bc-8277-4531145c400e,a64566fa-b706-49bc-8277-4531145c400e,1,0,a8f32b13-249c-4ce6-a521-f06a87f2e670,a8f32b13-249c-4ce6-a521-f06a87f2e670,1,0,815775e4-cfb7-495b-87c4-d134b90d93d4,815775e4-cfb7-495b-87c4-d134b90d93d4,1,0,e867f2f1-0550-4d15-9e40-ba36c9aabfbd,e867f2f1-0550-4d15-9e40-ba36c9aabfbd,1,0,8bdbb9ef-3a91-4374-b3c5-9447005bb1b7,8bdbb9ef-3a91-4374-b3c5-9447005bb1b7,1,0,7a27b378-89ac-4cad-8c69-a0cd14812d7e,7a27b378-89ac-4cad-8c69-a0cd14812d7e,1,0,d2433a11-8e1d-4e4c-966d-37cde6283f72,d2433a11-8e1d-4e4c-966d-37cde6283f72,1,0,59eb5919-3c33-48bf-b322-ec78018e4142,59eb5919-3c33-48bf-b322-ec78018e4142,1,0,63f308a5-b955-48a5-8052-50c5bede65d0,63f308a5-b955-48a5-8052-50c5bede65d0,1,0,1b614b97-5c1d-497a-9574-40114059f836,1b614b97-5c1d-497a-9574-40114059f836,1,0,477dfea4-e401-4cf0-b0a8-2df7c3836c58,477dfea4-e401-4cf0-b0a8-2df7c3836c58,1,0,294c000f-6979-4ed1-bbc7-7402facd9185,294c000f-6979-4ed1-bbc7-7402facd9185,1,0,db607fbc-f785-47d5-9550-577424aa3fe9,db607fbc-f785-47d5-9550-577424aa3fe9,1,0,b7111ddf-a623-4bae-90aa-636148492ca2,b7111ddf-a623-4bae-90aa-636148492ca2,1,0,905d9dcd-5793-4362-8fe8-2edce8c35e32,905d9dcd-5793-4362-8fe8-2edce8c35e32,1,0,a96cb6fd-54e0-4514-9210-7f4636acd336,a96cb6fd-54e0-4514-9210-7f4636acd336,1,0,3580e7a7-95d1-4a8e-bc12-a1449fe03757,3580e7a7-95d1-4a8e-bc12-a1449fe03757,1,0,13759790-6c70-4323-9321-a68b90c51663,13759790-6c70-4323-9321-a68b90c51663,1,0,d9704b20-c29c-4e7f-b777-0ac9080a5631,d9704b20-c29c-4e7f-b777-0ac9080a5631,1,0,c1372891-0f55-4868-ab97-906eff52be0e,c1372891-0f55-4868-ab97-906eff52be0e,1,0,33e96bda-1708-4ee4-8d4d-3b919bda3e38,33e96bda-1708-4ee4-8d4d-3b919bda3e38,1,0,53fb35a7-44ab-42e7-8dba-6fa08bf5ba2c,53fb35a7-44ab-42e7-8dba-6fa08bf5ba2c,1,0,93fcaa62-2a19-468b-9128-c7930583fbfd,93fcaa62-2a19-468b-9128-c7930583fbfd,1,0,2d885109-4c96-41c0-a996-785bfd793c2d,2d885109-4c96-41c0-a996-785bfd793c2d,1,0,e870a1bd-0c08-4d1e-832a-357922983c19,e870a1bd-0c08-4d1e-832a-357922983c19,1,0,9f71aeac-f889-40dc-91bd-d670da4efd2b,9f71aeac-f889-40dc-91bd-d670da4efd2b,1,0,62f8a9b2-9e56-4d5c-a7e2-a85f5b27a5b7,62f8a9b2-9e56-4d5c-a7e2-a85f5b27a5b7,1,0,614ef0bd-3298-408b-bf71-37df8ee60702,614ef0bd-3298-408b-bf71-37df8ee60702,1,0,26ff1be6-f72a-456a-9dce-302029752603,26ff1be6-f72a-456a-9dce-302029752603,1,0,db850a08-0c99-4a57-9b04-38be64bd38fb,db850a08-0c99-4a57-9b04-38be64bd38fb,1,0,abeca127-5ae9-46af-a5e8-d6438fd68367,abeca127-5ae9-46af-a5e8-d6438fd68367,1,0,bce81631-9f6d-42b3-b4b6-2199afb08f2f,bce81631-9f6d-42b3-b4b6-2199afb08f2f,1,0,67d6878f-3e47-4142-8f98-c5a207f0b8a8,67d6878f-3e47-4142-8f98-c5a207f0b8a8,1,0,7f4b872f-0e50-49dd-984d-f5fc3ac3f2f0,7f4b872f-0e50-49dd-984d-f5fc3ac3f2f0,1,0,68636657-4d46-4c2a-9b2f-11521a55dfb4,68636657-4d46-4c2a-9b2f-11521a55dfb4,1,0,18a83f43-dc84-4f8a-9580-681b19f571c4,18a83f43-dc84-4f8a-9580-681b19f571c4,1,0,01c588b0-d0ce-4978-b04d-084e6a00fcc7,01c588b0-d0ce-4978-b04d-084e6a00fcc7,1,0,a23642d9-8c4f-44a5-8865-bfb286e47c55,a23642d9-8c4f-44a5-8865-bfb286e47c55,1,0,7b37e038-dcef-41e1-b6e7-ed73c6958415,7b37e038-dcef-41e1-b6e7-ed73c6958415,1,0,24df2d14-5ebf-4ded-ba14-5daee7a0c536,24df2d14-5ebf-4ded-ba14-5daee7a0c536,1,0,13d6e2e9-b268-4c1b-8b8b-30c5296cfe4c,13d6e2e9-b268-4c1b-8b8b-30c5296cfe4c,1,0,03bb028a-ee8c-411e-8382-653046f803c6,03bb028a-ee8c-411e-8382-653046f803c6,1,0,c4fa80ca-32d6-4a44-9fe2-7ffd67e1cb30,c4fa80ca-32d6-4a44-9fe2-7ffd67e1cb30,1,0,8aa73dfd-41ac-4f79-bf73-cd2da51b1232,8aa73dfd-41ac-4f79-bf73-cd2da51b1232,1,0,38d5ed93-133b-44fe-827a-69a6cfc0461d,38d5ed93-133b-44fe-827a-69a6cfc0461d,1,0,436a9c94-55f6-4463-becd-573189753ee7,436a9c94-55f6-4463-becd-573189753ee7,1,0,50bf4050-390c-419c-8f55-82a540093ab1,50bf4050-390c-419c-8f55-82a540093ab1,1,0,cae8a6f2-bbe9-4b73-b839-9bf8e5e2818d,cae8a6f2-bbe9-4b73-b839-9bf8e5e2818d,1,0,0a79ee40-e6d6-4dbf-8378-98c2ec1e8ef9,0a79ee40-e6d6-4dbf-8378-98c2ec1e8ef9,1,0,5148d263-de26-4c92-b090-ae59f42dfb05,5148d263-de26-4c92-b090-ae59f42dfb05,1,0,dbefe81f-85cf-4d84-9600-b359598c2543,dbefe81f-85cf-4d84-9600-b359598c2543,1,0,1a624a06-93b8-4d1f-8c14-2061e1e7927c,1a624a06-93b8-4d1f-8c14-2061e1e7927c,1,0,4ad54ca8-8e4a-4a35-9537-0395851fcdfb,4ad54ca8-8e4a-4a35-9537-0395851fcdfb,1,0,3e427c09-79ed-45f7-b4c9-d9aa7ccc01b2,3e427c09-79ed-45f7-b4c9-d9aa7ccc01b2,1,0,1a4dd1f5-c2d6-4e06-b428-ab7870810bf3,1a4dd1f5-c2d6-4e06-b428-ab7870810bf3,1,0,d5967e0f-03cd-4190-a702-7e9290eae1eb,d5967e0f-03cd-4190-a702-7e9290eae1eb,1,0,78fdbce8-8479-4edd-89c0-1bbaf8ffd482,78fdbce8-8479-4edd-89c0-1bbaf8ffd482,1,0,8eb18de5-8283-4d0c-bb11-b882e78181d5,8eb18de5-8283-4d0c-bb11-b882e78181d5,1,0,27b27cc5-d1ad-4a2a-bcf4-ec2ebb3eba43,27b27cc5-d1ad-4a2a-bcf4-ec2ebb3eba43,1,0,7059b117-714c-4710-aebe-76f88c4d41d5,7059b117-714c-4710-aebe-76f88c4d41d5,1,0,ea050453-4947-40dc-aa2a-503ddd1a235a,ea050453-4947-40dc-aa2a-503ddd1a235a,1,0,37d0e6d4-702e-46f5-ae87-4d393fa0c701,37d0e6d4-702e-46f5-ae87-4d393fa0c701,1,0,1e963c1e-f914-46e1-81d3-90d126fc6f8d,1e963c1e-f914-46e1-81d3-90d126fc6f8d,1,0,3a62d88e-9298-42c0-bd87-c749ecd01d19,3a62d88e-9298-42c0-bd87-c749ecd01d19,1,0,abbf064e-c6ea-4712-930b-a9fef42e0ee1,abbf064e-c6ea-4712-930b-a9fef42e0ee1,1,0,fc13dd80-ce44-4ed1-a9d7-dae44602b954,fc13dd80-ce44-4ed1-a9d7-dae44602b954,1,0,a3fe224e-c3ef-4e30-90e4-c4ed5eb11824,a3fe224e-c3ef-4e30-90e4-c4ed5eb11824,1,0,433b23a1-a863-4775-b2f2-1384e8f3cbbb,433b23a1-a863-4775-b2f2-1384e8f3cbbb,1,0,a1677c47-b9a4-427a-972d-9bb2293445b6,a1677c47-b9a4-427a-972d-9bb2293445b6,1,0,e4a328c0-e73b-465d-ae36-38e5a71690fa,e4a328c0-e73b-465d-ae36-38e5a71690fa,1,0,bf66612b-aec4-414b-bee6-9bcab145c7cc,bf66612b-aec4-414b-bee6-9bcab145c7cc,1,0,811f356f-554a-4a63-90b6-dedb5fec7c05,811f356f-554a-4a63-90b6-dedb5fec7c05,1,0,85bebd81-a355-4010-889b-cff6f72dafcb,85bebd81-a355-4010-889b-cff6f72dafcb,1,0,49521f36-fd1b-47dd-81cc-48b6fb651e22,49521f36-fd1b-47dd-81cc-48b6fb651e22,1,0,1491cc2a-b3be-4bcc-a181-ce68d4b5d4cb,1491cc2a-b3be-4bcc-a181-ce68d4b5d4cb,1,0,bc946e21-53bb-4332-8c63-7b0aa78826eb,bc946e21-53bb-4332-8c63-7b0aa78826eb,1,0,4be2bdad-9a43-4593-acbc-a02e9144a89f,4be2bdad-9a43-4593-acbc-a02e9144a89f,1,0,64a86d5d-f925-45ee-82da-76df1cc20729,64a86d5d-f925-45ee-82da-76df1cc20729,1,0,eb4455f2-a5a0-44fb-8302-7312bc32df66,eb4455f2-a5a0-44fb-8302-7312bc32df66,1,0,cd6d2ab5-8e5c-4db3-8c8c-0526046a9b68,cd6d2ab5-8e5c-4db3-8c8c-0526046a9b68,1,0,9f20e59e-7db8-466f-b965-7045fc3f1489,9f20e59e-7db8-466f-b965-7045fc3f1489,1,0,cb057756-d3f7-4c50-a9d0-bac9ca2abd46,cb057756-d3f7-4c50-a9d0-bac9ca2abd46,1,0,89ac3d39-1915-4e67-a4e4-5a67a155cb75,89ac3d39-1915-4e67-a4e4-5a67a155cb75,1,0,d27b637d-5a51-49ff-bf73-343891534586,d27b637d-5a51-49ff-bf73-343891534586,1,0,b5a073a2-54e2-47c9-b533-f75fd2c9f343,b5a073a2-54e2-47c9-b533-f75fd2c9f343,1,0,0c8571be-f9b6-4292-add9-980cfe7fa2ec,0c8571be-f9b6-4292-add9-980cfe7fa2ec,1,0,989b8ccd-bc05-48c1-9969-b3733028b65f,989b8ccd-bc05-48c1-9969-b3733028b65f,1,0,6c70b13d-f9d0-459f-8d38-c01c11f356f1,6c70b13d-f9d0-459f-8d38-c01c11f356f1,1,0,45ca19df-90f3-4143-a659-bc0cb97efee9,45ca19df-90f3-4143-a659-bc0cb97efee9,1,0,6fe997a3-d729-420b-b2b2-558e9a1031ee,6fe997a3-d729-420b-b2b2-558e9a1031ee,1,0,4e1b48b1-c998-4f99-94e7-50af22059bfa,4e1b48b1-c998-4f99-94e7-50af22059bfa,1,0,bbaed1bd-0eb7-4f2b-b844-ab79c1d0a091,bbaed1bd-0eb7-4f2b-b844-ab79c1d0a091,1,0,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,1,0,83ae9b22-20ff-4e94-9282-19daf2274328,83ae9b22-20ff-4e94-9282-19daf2274328,1,0,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,1,0,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,1,0,a92b2b70-7e69-49d1-b921-c9d1b0718f94,a92b2b70-7e69-49d1-b921-c9d1b0718f94,1,0,d57a3300-0f9f-4fe5-b627-01c96b723053,d57a3300-0f9f-4fe5-b627-01c96b723053,1,0,ccfdf89b-f63e-4e46-b942-0d145695fdc6,ccfdf89b-f63e-4e46-b942-0d145695fdc6,1,0,6d40a555-9c20-4643-b689-2f61df772f78,6d40a555-9c20-4643-b689-2f61df772f78,1,0,19f690a3-d27b-43c1-94b7-585fc628da05,19f690a3-d27b-43c1-94b7-585fc628da05,1,0,d375fac5-098c-42b5-a0bd-9a4ae7516ada,d375fac5-098c-42b5-a0bd-9a4ae7516ada,1,0,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,1,0,ce65563d-03dc-46d8-96d4-c2d4ae2a2960,ce65563d-03dc-46d8-96d4-c2d4ae2a2960,1,0,5079f17e-dfd6-43f4-83fa-6ac408e5bd3b,5079f17e-dfd6-43f4-83fa-6ac408e5bd3b,1,0,7a4346c3-f1aa-4ce0-886e-76cd9abf563c,7a4346c3-f1aa-4ce0-886e-76cd9abf563c,1,0,cf783265-a4cb-436f-963a-1ff8220ae246,cf783265-a4cb-436f-963a-1ff8220ae246,1,0,3560f949-48f9-4fca-9fe2-81efc1ec0eee,3560f949-48f9-4fca-9fe2-81efc1ec0eee,1,0,662078f0-b75d-4c44-896f-7b7f74fd1ed4,662078f0-b75d-4c44-896f-7b7f74fd1ed4,1,0,4fa11304-fbd4-4c90-909d-5024283a6868,4fa11304-fbd4-4c90-909d-5024283a6868,1,0,207290c2-5221-48ad-99aa-bb0f7955df3f,207290c2-5221-48ad-99aa-bb0f7955df3f,1,0,162137ef-dea2-4ace-9e67-897dad0e7c3d,162137ef-dea2-4ace-9e67-897dad0e7c3d,1,0,d91a016e-cca9-4976-9c53-2c96fa95cf1a,d91a016e-cca9-4976-9c53-2c96fa95cf1a,1,0,012fb2f1-1c15-4800-8968-78a90c2a1348,012fb2f1-1c15-4800-8968-78a90c2a1348,1,0,a29a36aa-3c90-4be9-8ffc-20237721d1d0,a29a36aa-3c90-4be9-8ffc-20237721d1d0,1,0,aec8f9e6-d177-45f5-ba55-2d662428c2ae,aec8f9e6-d177-45f5-ba55-2d662428c2ae,1,0,b0bf8af5-d824-459c-bc40-17495406af3c,b0bf8af5-d824-459c-bc40-17495406af3c,1,0,7dfdd08b-7cd9-480c-829d-97f5e7152eec,7dfdd08b-7cd9-480c-829d-97f5e7152eec,1,0,64752b64-80ae-4537-986a-d61423dc546b,64752b64-80ae-4537-986a-d61423dc546b,1,0,2c37e123-ea35-4501-93e1-2fa295444bec,2c37e123-ea35-4501-93e1-2fa295444bec,1,0,c8bd3ac8-3b49-46bb-aadd-7270ad2868fc,c8bd3ac8-3b49-46bb-aadd-7270ad2868fc,1,0,a997a430-3ea8-4fde-9f53-7b507a04c215,a997a430-3ea8-4fde-9f53-7b507a04c215,1,0,f648e19d-026b-4fa7-8e70-1866b27b94f8,f648e19d-026b-4fa7-8e70-1866b27b94f8,1,0,d32081fc-47d3-4e66-837e-705c94ba8ca8,d32081fc-47d3-4e66-837e-705c94ba8ca8,1,0,69c207c2-7699-4467-b127-286ecd6d0f29,69c207c2-7699-4467-b127-286ecd6d0f29,1,0,70a06a02-8fb8-4a39-9e50-b7c27c41f49f,70a06a02-8fb8-4a39-9e50-b7c27c41f49f,1,0,810755ad-e921-4250-a0d3-af77fe1b6c79,810755ad-e921-4250-a0d3-af77fe1b6c79,1,0,f0f2f6de-b5ca-416c-b2e7-70a2df0993a1,f0f2f6de-b5ca-416c-b2e7-70a2df0993a1,1,0,99a40d71-f47a-4c04-9137-d297eda2fad9,99a40d71-f47a-4c04-9137-d297eda2fad9,1,0,33fa908a-5516-43c8-94d3-28c60eba8d66,33fa908a-5516-43c8-94d3-28c60eba8d66,1,0,f3750ea4-5f9e-4ab3-9495-3f182ecff407,f3750ea4-5f9e-4ab3-9495-3f182ecff407,1,0,14002d51-87d4-4647-92ef-a9b1935cb666,14002d51-87d4-4647-92ef-a9b1935cb666,1,0,e941a39d-1f3c-4e6e-af17-75f92a15dd40,e941a39d-1f3c-4e6e-af17-75f92a15dd40,1,0,d9bbedcb-4872-4183-83c2-6c2aae9634b0,d9bbedcb-4872-4183-83c2-6c2aae9634b0,1,0,72c695c3-66f6-4aa8-8a39-737ec6967a1d,72c695c3-66f6-4aa8-8a39-737ec6967a1d,1,0,2beef1e0-7a59-407e-b454-ee2ec38ca4b3,2beef1e0-7a59-407e-b454-ee2ec38ca4b3,1,0,b57a1d6f-8375-4d57-a2c1-f53e25318ddb,b57a1d6f-8375-4d57-a2c1-f53e25318ddb,1,0,d5d11480-d5c7-4569-80c1-f872655ff084,d5d11480-d5c7-4569-80c1-f872655ff084,1,0,b1e45d36-08e9-430e-976b-03e6e3320c6a,b1e45d36-08e9-430e-976b-03e6e3320c6a,1,0,b5384eb7-40e4-4437-b96b-eab9b7b5b8f2,b5384eb7-40e4-4437-b96b-eab9b7b5b8f2,1,0,8e21374f-5a65-406c-856d-2040607da4bc,8e21374f-5a65-406c-856d-2040607da4bc,1,0,7904d64a-2c30-4434-8924-b4817b727db9,7904d64a-2c30-4434-8924-b4817b727db9,1,0,c550a43a-1240-4f29-9045-a262f37f703a,c550a43a-1240-4f29-9045-a262f37f703a,1,0,86b1feed-ed65-4672-a49a-c52282b40be3,86b1feed-ed65-4672-a49a-c52282b40be3,1,0,85ac42d7-400a-4469-8fcd-e6a14f258792,85ac42d7-400a-4469-8fcd-e6a14f258792,1,0,ec681c28-661c-43e3-9285-9fc606f2d24c,ec681c28-661c-43e3-9285-9fc606f2d24c,1,0,be0fbbfc-5873-41a6-80ef-35ed1b8adb4c,be0fbbfc-5873-41a6-80ef-35ed1b8adb4c,1,0,413c2d03-f717-4503-9723-c605114b2799,413c2d03-f717-4503-9723-c605114b2799,1,0,1b63cbbb-77b1-4e78-a4c7-ddea8ea7294d,1b63cbbb-77b1-4e78-a4c7-ddea8ea7294d,1,0,3e5f5167-8978-4191-b0f6-6a262b848b95,3e5f5167-8978-4191-b0f6-6a262b848b95,1,0,ae3aef9e-df3b-4ebc-912d-2bc581063745,ae3aef9e-df3b-4ebc-912d-2bc581063745,1,0,4ae40e81-f2ab-4ac4-89e5-73545db42de9,4ae40e81-f2ab-4ac4-89e5-73545db42de9,1,0,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,1,0,a8c09e65-6e10-4772-b264-6ead83d52fe3,a8c09e65-6e10-4772-b264-6ead83d52fe3,1,0,8850b346-364d-457b-9554-acce031394fe,8850b346-364d-457b-9554-acce031394fe,1,0,797f4377-ee0f-4a2d-be90-a74ac10ef682,797f4377-ee0f-4a2d-be90-a74ac10ef682,1,0,f401c5be-2698-452d-8908-08faad120a47,f401c5be-2698-452d-8908-08faad120a47,1,0,98de52ae-dfab-480b-a167-4cf2a3962ed1,98de52ae-dfab-480b-a167-4cf2a3962ed1,1,0,efa5c204-b827-4860-aadd-3737c8fc5f6b,efa5c204-b827-4860-aadd-3737c8fc5f6b,1,0,ef438c21-9d10-4116-8fc7-03927062db59,ef438c21-9d10-4116-8fc7-03927062db59,1,0,7ffa25d5-5199-4e08-af76-969c17709ad4,7ffa25d5-5199-4e08-af76-969c17709ad4,1,0,a93180c6-fcb7-4b28-b954-d2f2831f1832,a93180c6-fcb7-4b28-b954-d2f2831f1832,1,0,b46fff37-cc0e-4ff4-8fde-6bd9d9b895ec,b46fff37-cc0e-4ff4-8fde-6bd9d9b895ec,1,0,eeeede5e-9534-498e-b820-87a5f919c068,eeeede5e-9534-498e-b820-87a5f919c068,1,0,8b1f81e0-1eb0-4aae-9bb6-b25d97a6c9c2,8b1f81e0-1eb0-4aae-9bb6-b25d97a6c9c2,1,0,55ecc3a2-3d94-4201-8a29-06469e0b1a17,55ecc3a2-3d94-4201-8a29-06469e0b1a17,1,0,4123c760-0e30-48d0-8211-1db84f53314b,4123c760-0e30-48d0-8211-1db84f53314b,1,0,a086da23-29d8-4d02-846b-5d171e14d730,a086da23-29d8-4d02-846b-5d171e14d730,1,0,9ec76352-5e4a-485d-bd93-eb739869e406,9ec76352-5e4a-485d-bd93-eb739869e406,1,0,6d3619e3-d125-44b6-9b51-ebf9505b04d2,6d3619e3-d125-44b6-9b51-ebf9505b04d2,1,0,9d2c802c-c946-44e5-b9bc-13ef534968cd,9d2c802c-c946-44e5-b9bc-13ef534968cd,1,0,8046b46e-d855-4a80-8270-72a104e4a941,8046b46e-d855-4a80-8270-72a104e4a941,1,0,4524e15c-4c35-4e1d-910f-5859b5702dff,4524e15c-4c35-4e1d-910f-5859b5702dff,1,0,e200002c-9f3a-49d9-bba1-dca11555511d,e200002c-9f3a-49d9-bba1-dca11555511d,1,0,efa0f74a-7ec0-42f4-a948-7ce3890559d8,efa0f74a-7ec0-42f4-a948-7ce3890559d8,1,0,97e11b91-9590-44b3-afcd-f465ce23e509,97e11b91-9590-44b3-afcd-f465ce23e509,1,0,301c1fc5-ca0a-4fac-ac51-c2e42fb3c2a8,301c1fc5-ca0a-4fac-ac51-c2e42fb3c2a8,1,0,6f2d0c99-3354-4924-959c-59320e1b0063,6f2d0c99-3354-4924-959c-59320e1b0063,1,0,aee8df57-983b-440d-9c02-cace7e632f15,aee8df57-983b-440d-9c02-cace7e632f15,1,0,6e9648dd-388f-4563-88b0-feddc6e9ce8e,6e9648dd-388f-4563-88b0-feddc6e9ce8e,1,0,eb975d96-d230-4454-8f14-6bf5522e06d2,eb975d96-d230-4454-8f14-6bf5522e06d2,1,0,6aa6513c-6f3b-4897-96fd-4a08aeb9eb1e,6aa6513c-6f3b-4897-96fd-4a08aeb9eb1e,1,0,c29d3ae4-9458-46b8-a09b-012e5d435d43,c29d3ae4-9458-46b8-a09b-012e5d435d43,1,0,dad62d28-168c-4659-a800-e484772d9003,dad62d28-168c-4659-a800-e484772d9003,1,0,4cada7d2-f1b1-4914-95fc-c5e1431c13a7,4cada7d2-f1b1-4914-95fc-c5e1431c13a7,1,0,ecbe1ead-4e4b-49db-b7f1-c097c9df2fb9,ecbe1ead-4e4b-49db-b7f1-c097c9df2fb9,1,0,be026f77-285b-4470-8a4e-c68f6e9859e2,be026f77-285b-4470-8a4e-c68f6e9859e2,1,0,a9d54a18-9c35-471b-ad8b-44ba743b7977,a9d54a18-9c35-471b-ad8b-44ba743b7977,1,0,4f75014c-831f-4de5-8b6e-94874ce274ce,4f75014c-831f-4de5-8b6e-94874ce274ce,1,0,c9f74923-95e1-4f5c-8649-3543fae6b116,c9f74923-95e1-4f5c-8649-3543fae6b116,1,0,b00616bb-406d-4e8e-80a0-f0c14cc850c0,b00616bb-406d-4e8e-80a0-f0c14cc850c0,1,0,d60aae4f-7c61-416c-bbc9-e7c95d757848,d60aae4f-7c61-416c-bbc9-e7c95d757848,1,0,c8a0da4e-0b0f-4def-a61e-5f6e04468e01,c8a0da4e-0b0f-4def-a61e-5f6e04468e01,1,0,a55e9aef-79ad-4cb6-b80a-c7f769bebbea,a55e9aef-79ad-4cb6-b80a-c7f769bebbea,1,0,c26283d2-dda1-438c-a444-05bdd2797691,c26283d2-dda1-438c-a444-05bdd2797691,1,0,3ae1ecf1-e062-4e89-96d6-9ac88bbc8aa8,3ae1ecf1-e062-4e89-96d6-9ac88bbc8aa8,1,0,62f9c12c-1837-4320-99b0-8f7ae44af735,62f9c12c-1837-4320-99b0-8f7ae44af735,1,0,ae352e0c-9f89-4ed9-ab45-f4e9040f7858,ae352e0c-9f89-4ed9-ab45-f4e9040f7858,1,0,853a5fdc-3621-442c-abd3-2fd266fddd84,853a5fdc-3621-442c-abd3-2fd266fddd84,1,0,daaff4d7-bc0b-4ab5-a277-fc02472f76ed,daaff4d7-bc0b-4ab5-a277-fc02472f76ed,1,0,bc3183cb-8691-4fa5-b154-3645f3cd8944,bc3183cb-8691-4fa5-b154-3645f3cd8944,1,0,33c9ebee-7b42-4010-a5c9-71ca7479d95c,33c9ebee-7b42-4010-a5c9-71ca7479d95c,1,0,cf202dca-e0ee-45c8-8792-46fc2f126e68,cf202dca-e0ee-45c8-8792-46fc2f126e68,1,0,be150cca-e977-4663-af19-79d8b0f91b3d,be150cca-e977-4663-af19-79d8b0f91b3d,1,0,f12857d7-bcae-4c6c-9169-2a0b1f9e9e6a,f12857d7-bcae-4c6c-9169-2a0b1f9e9e6a,1,0,1c13d12d-5c96-4d96-a07d-ec4a766c86ac,1c13d12d-5c96-4d96-a07d-ec4a766c86ac,1,0,018390b5-06d9-4d04-abad-1de1ccf0843c,018390b5-06d9-4d04-abad-1de1ccf0843c,1,0,a8b828da-6172-4732-a01e-c5127175cd60,a8b828da-6172-4732-a01e-c5127175cd60,1,0,6279f4bc-b77f-4618-9ce3-d50efc798871,6279f4bc-b77f-4618-9ce3-d50efc798871,1,0,fb05b40b-8cf5-4821-afcb-f00a77458a9b,fb05b40b-8cf5-4821-afcb-f00a77458a9b,1,0,37c68cb5-6aaf-4e57-b68c-1a5b5db252b7,37c68cb5-6aaf-4e57-b68c-1a5b5db252b7,1,0,3967bec7-9af5-40bf-9e22-a0f6b13cc795,3967bec7-9af5-40bf-9e22-a0f6b13cc795,1,0,eab9da25-07b6-4c60-9a83-08e8277d0ae7,eab9da25-07b6-4c60-9a83-08e8277d0ae7,1,0,b79ed991-f5d9-42b6-8f0b-0df49e550ced,b79ed991-f5d9-42b6-8f0b-0df49e550ced,1,0,ac50e8d6-fe0b-45a4-b0dd-cc81d7fd7357,ac50e8d6-fe0b-45a4-b0dd-cc81d7fd7357,1,0,f58a3df1-ddf3-45c8-b470-cc026cb0537f,f58a3df1-ddf3-45c8-b470-cc026cb0537f,1,0,c4e9954b-59d8-46e3-ada8-bda66e8aaceb,c4e9954b-59d8-46e3-ada8-bda66e8aaceb,1,0,9ac5a405-4eb7-4013-8bbd-5d1b6d0929ab,9ac5a405-4eb7-4013-8bbd-5d1b6d0929ab,1,0,568c16cf-c3fc-4e16-8f05-e00be8e136c2,568c16cf-c3fc-4e16-8f05-e00be8e136c2,1,0,b36ad726-fb8f-4974-986a-33f997e3fc64,b36ad726-fb8f-4974-986a-33f997e3fc64,1,0,e196c73e-c09b-4aed-b403-2b97a8bf6e47,e196c73e-c09b-4aed-b403-2b97a8bf6e47,1,0,27fdab52-f1ab-48d3-b117-06afcf319eaa,27fdab52-f1ab-48d3-b117-06afcf319eaa,1,0,bf3530c3-3244-4528-a846-ea175af53804,bf3530c3-3244-4528-a846-ea175af53804,1,0,5bdfff5e-f04c-4fe3-ae92-10a99da3a6a8,5bdfff5e-f04c-4fe3-ae92-10a99da3a6a8,1,0,3d0ae989-2d16-42df-a442-7bde817ec1b2,3d0ae989-2d16-42df-a442-7bde817ec1b2,1,0,f3d1adac-197a-4194-89fe-7178f8ccd788,f3d1adac-197a-4194-89fe-7178f8ccd788,1,0,7077b04e-75c0-414d-b295-d28aeda2bdd4,7077b04e-75c0-414d-b295-d28aeda2bdd4,1,0,c8330995-22f4-4be6-beff-64f87c6f09ed,c8330995-22f4-4be6-beff-64f87c6f09ed,1,0,56b6b570-764b-4220-9b5f-70753b0fadbd,56b6b570-764b-4220-9b5f-70753b0fadbd,1,0,588f481e-4486-4649-b584-08f7e3ab8cde,588f481e-4486-4649-b584-08f7e3ab8cde,1,0,5dfe90e2-cb1a-4510-b22c-af94ca06dd7b,5dfe90e2-cb1a-4510-b22c-af94ca06dd7b,1,0,70c217b8-ddf0-4b7c-80b0-f5a76dbbcec7,70c217b8-ddf0-4b7c-80b0-f5a76dbbcec7,1,0,74e3e5c4-7dec-4fde-975b-01e7f4002a87,74e3e5c4-7dec-4fde-975b-01e7f4002a87,1,0,689b382f-308e-4558-817c-819ceb59f61e,689b382f-308e-4558-817c-819ceb59f61e,1,0,ed96d8d2-3164-4a85-8408-06d9a1f0c2ce,ed96d8d2-3164-4a85-8408-06d9a1f0c2ce,1,0,2482e800-50c9-4c7c-909f-18ba2e30ff31,2482e800-50c9-4c7c-909f-18ba2e30ff31,1,0,fdb20bf0-6dc5-4ce6-acdc-4def1cc23a67,fdb20bf0-6dc5-4ce6-acdc-4def1cc23a67,1,0,b528d506-be3f-47f2-880b-af7093c71649,b528d506-be3f-47f2-880b-af7093c71649,1,0,7f3f55d5-b1f5-4b6b-b189-ff5715341489,7f3f55d5-b1f5-4b6b-b189-ff5715341489,1,0,5a32d342-8b80-4069-98c3-cf392f473b06,5a32d342-8b80-4069-98c3-cf392f473b06,1,0,888c5a1f-5329-40da-9102-eac26657a7d9,888c5a1f-5329-40da-9102-eac26657a7d9,1,0,75daf728-ee8c-41a4-a249-8db123bb802e,75daf728-ee8c-41a4-a249-8db123bb802e,1,0,0b154103-47b5-4c54-a4ea-60aa41190940,0b154103-47b5-4c54-a4ea-60aa41190940,1,0,1eb52621-8915-46f4-b1bb-db04bb58b065,1eb52621-8915-46f4-b1bb-db04bb58b065,1,0,d0fcb0f9-6d6c-444a-8b32-4287a963f72b,d0fcb0f9-6d6c-444a-8b32-4287a963f72b,1,0,1d583292-1820-498a-890a-66f5b154e698,1d583292-1820-498a-890a-66f5b154e698,1,0,a3b0430c-743d-4351-a928-9be3c8db9a0b,a3b0430c-743d-4351-a928-9be3c8db9a0b,1,0,f094241b-ae82-426c-92b0-18be87566ad6,f094241b-ae82-426c-92b0-18be87566ad6,1,0,1a570b62-6644-4427-a432-c6823c7d522a,1a570b62-6644-4427-a432-c6823c7d522a,1,0,7bae5ebc-85a5-43eb-8dfa-bc75cd54c013,7bae5ebc-85a5-43eb-8dfa-bc75cd54c013,1,0,0b2c1689-22ba-4ed6-80f3-10475f11db1a,0b2c1689-22ba-4ed6-80f3-10475f11db1a,1,0,46bbfede-5b4d-44fc-90ec-f6f3598340c4,46bbfede-5b4d-44fc-90ec-f6f3598340c4,1,0,acc6358f-be29-4931-8ed2-b769a48cee08,acc6358f-be29-4931-8ed2-b769a48cee08,1,0,51c58d33-32f7-401a-84d4-5a942129fbd5,51c58d33-32f7-401a-84d4-5a942129fbd5,1,0,07d5174e-8422-471f-a435-bf51d5af1bf0,07d5174e-8422-471f-a435-bf51d5af1bf0,1,0,e58672f5-84c9-462f-b5a6-7f15a6f2f797,e58672f5-84c9-462f-b5a6-7f15a6f2f797,1,0,4fbb189a-ecf0-483f-a904-0c34b1c23433,4fbb189a-ecf0-483f-a904-0c34b1c23433,1,0,2a34c9e8-eb4f-4600-988e-594ac7399abc,2a34c9e8-eb4f-4600-988e-594ac7399abc,1,0,256618cc-0956-4cda-9691-e4ced68a791f,256618cc-0956-4cda-9691-e4ced68a791f,1,0,e20593fd-b3e3-41d2-8c8d-97b5d6148fa4,e20593fd-b3e3-41d2-8c8d-97b5d6148fa4,1,0,4b9771a7-b924-4e61-8468-4633e3c54706,4b9771a7-b924-4e61-8468-4633e3c54706,1,0,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,1,0,667de710-cee5-4a97-8434-641d199f3b68,667de710-cee5-4a97-8434-641d199f3b68,1,0,e9a2320b-71a1-4974-8b5a-1990062ec7df,e9a2320b-71a1-4974-8b5a-1990062ec7df,1,0,2e459a7c-c448-4db4-ae21-e59646527030,2e459a7c-c448-4db4-ae21-e59646527030,1,0,891194d9-9f02-4b22-89cd-941181c83ecb,891194d9-9f02-4b22-89cd-941181c83ecb,1,0,a4d3b738-9ae3-46a9-ac21-7ac3d081c727,a4d3b738-9ae3-46a9-ac21-7ac3d081c727,1,0,f6e85eeb-d81b-4526-9a33-ab77bd447236,f6e85eeb-d81b-4526-9a33-ab77bd447236,1,0,470e37fe-d149-4007-b397-12fc84f93041,470e37fe-d149-4007-b397-12fc84f93041,1,0,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,1,0,7175cfa0-885c-4807-98ec-af255dcd55d9,7175cfa0-885c-4807-98ec-af255dcd55d9,1,0,f5b66759-8102-4cba-a3fd-ee96db5bc809,f5b66759-8102-4cba-a3fd-ee96db5bc809,1,0,af6bccbb-a6cb-41ee-bc4e-f2d6a5e0f419,af6bccbb-a6cb-41ee-bc4e-f2d6a5e0f419,1,0,d08679db-f83f-476e-b8c4-f3f52c3cf6fd,d08679db-f83f-476e-b8c4-f3f52c3cf6fd,1,0,fad0898f-5769-46ab-bc5e-301924b851a0,fad0898f-5769-46ab-bc5e-301924b851a0,1,0,e0227e4b-be22-4614-8980-5d573fae705d,e0227e4b-be22-4614-8980-5d573fae705d,1,0,7a7b7882-a4c1-40c8-a807-cb2d71d054cc,7a7b7882-a4c1-40c8-a807-cb2d71d054cc,1,0,6f36007b-04dc-4007-abf7-e20fbd126b97,6f36007b-04dc-4007-abf7-e20fbd126b97,1,0,791dbdee-56f6-4fe3-ada4-965c9111d69e,791dbdee-56f6-4fe3-ada4-965c9111d69e,1,0,66ef1631-277b-4c22-99d7-1434b4dbbb3f,66ef1631-277b-4c22-99d7-1434b4dbbb3f,1,0,aa6444a8-6c17-4207-a623-9b734e08e30e,aa6444a8-6c17-4207-a623-9b734e08e30e,1,0,898535ff-50cd-464a-aadc-5e4f9de15b04,898535ff-50cd-464a-aadc-5e4f9de15b04,1,0,385e209d-65aa-43b1-8591-f92544882740,385e209d-65aa-43b1-8591-f92544882740,1,0,7cfa5a37-b9f8-43e4-ae33-e3a7251dd052,7cfa5a37-b9f8-43e4-ae33-e3a7251dd052,1,0,2f8a5b9d-ab86-492b-85d1-5a28535b2ebc,2f8a5b9d-ab86-492b-85d1-5a28535b2ebc,1,0,737f6f1b-9ffc-4916-b378-7321eab1f886,737f6f1b-9ffc-4916-b378-7321eab1f886,1,0,8381bc76-0e0f-4196-9911-ec05730cb1c9,8381bc76-0e0f-4196-9911-ec05730cb1c9,1,0,01dedf5b-2cce-4d24-81ea-2e3af82f5794,01dedf5b-2cce-4d24-81ea-2e3af82f5794,1,0,771a1900-46be-49fe-a02d-584780de8363,771a1900-46be-49fe-a02d-584780de8363,1,0,f81b1f2d-6fde-4861-8fee-1dbe6acf3985,f81b1f2d-6fde-4861-8fee-1dbe6acf3985,1,0,b62eecf6-6ee3-4a70-a4d6-3f064ae35c43,b62eecf6-6ee3-4a70-a4d6-3f064ae35c43,1,0,9bf2525c-e8fc-44e6-ac14-7df3208dbb0f,9bf2525c-e8fc-44e6-ac14-7df3208dbb0f,1,0,a2faa3f8-5064-4fbf-a90e-26d15c021cd3,a2faa3f8-5064-4fbf-a90e-26d15c021cd3,1,0,527ea8ca-e723-454a-8e9e-f2e7a38e62ee,527ea8ca-e723-454a-8e9e-f2e7a38e62ee,1,0,ef257b20-da10-4cda-8b9d-7de2d68a2f71,ef257b20-da10-4cda-8b9d-7de2d68a2f71,1,0,de0d41b7-acc0-4ebc-8933-d6b5ad351860,de0d41b7-acc0-4ebc-8933-d6b5ad351860,1,0,acd30e63-68dc-4ab2-a6fe-16eb69d09271,acd30e63-68dc-4ab2-a6fe-16eb69d09271,1,0,04013c34-8d59-4f87-b272-732d5a6dd675,04013c34-8d59-4f87-b272-732d5a6dd675,1,0,f9df9b6b-5051-46ef-bb1f-1974f41054a7,f9df9b6b-5051-46ef-bb1f-1974f41054a7,1,0,9ef5dd5e-1f26-4187-90a0-a3ac7aaabc1d,9ef5dd5e-1f26-4187-90a0-a3ac7aaabc1d,1,0,1a354069-07ea-40e0-bbac-e1b6232750c2,1a354069-07ea-40e0-bbac-e1b6232750c2,1,0,df31548b-0b8e-412b-999a-761970ae3c23,df31548b-0b8e-412b-999a-761970ae3c23,1,0,05135747-43e7-4b61-bc30-57b3289ea923,05135747-43e7-4b61-bc30-57b3289ea923,1,0,6d63728d-3384-4131-b890-1b82d14a04b7,6d63728d-3384-4131-b890-1b82d14a04b7,1,0,13b3c973-6be3-4898-89d5-20852cd14e46,13b3c973-6be3-4898-89d5-20852cd14e46,1,0,d978d078-4fd8-40b9-90c2-047cdaf94cba,d978d078-4fd8-40b9-90c2-047cdaf94cba,1,0,8640eacd-e6f9-4b0b-8511-c6ad2336ec6c,8640eacd-e6f9-4b0b-8511-c6ad2336ec6c,1,0,b374e22f-17f3-4186-af1f-fa35d1a7e559,b374e22f-17f3-4186-af1f-fa35d1a7e559,1,0,53555ee4-f99d-4935-a884-89313aa3ca6a,53555ee4-f99d-4935-a884-89313aa3ca6a,1,0,f38bb317-8a59-4786-be76-e1d4e534628d,f38bb317-8a59-4786-be76-e1d4e534628d,1,0,25741b39-1c6b-4851-8584-9711d25ef05a,25741b39-1c6b-4851-8584-9711d25ef05a,1,0,f4554046-493e-4960-94df-0a8b9d02f474,f4554046-493e-4960-94df-0a8b9d02f474,1,0,06abad33-2d69-4e8b-a16c-8aa0d4422d5a,06abad33-2d69-4e8b-a16c-8aa0d4422d5a,1,0,9222a6c0-b785-4811-bfb6-44ac44a55925,9222a6c0-b785-4811-bfb6-44ac44a55925,1,0,ea84021d-2431-44ad-a446-f1fb979c9e96,ea84021d-2431-44ad-a446-f1fb979c9e96,1,0,d86acdeb-fa70-4d1c-bd0c-1b4ea30c03dd,d86acdeb-fa70-4d1c-bd0c-1b4ea30c03dd,1,0,8fa21575-177f-4b7c-94b5-dfeefe737cb4,8fa21575-177f-4b7c-94b5-dfeefe737cb4,1,0,6da034af-0481-4a3c-aff9-c50ced6f21d4,6da034af-0481-4a3c-aff9-c50ced6f21d4,1,0,d07016c8-7d97-42cd-865b-85b49075adfb,d07016c8-7d97-42cd-865b-85b49075adfb,1,0,491a2337-1bf9-45c1-8ae6-95605ef41992,491a2337-1bf9-45c1-8ae6-95605ef41992,1,0,c3f2a760-610a-40e0-945b-1f9f6369444d,c3f2a760-610a-40e0-945b-1f9f6369444d,1,0,9202335d-50bb-4282-9438-24c7fb9cf637,9202335d-50bb-4282-9438-24c7fb9cf637,1,0,a62906e5-27f8-4e72-8769-9a3eed6997d7,a62906e5-27f8-4e72-8769-9a3eed6997d7,1,0,6c5d0ac3-6086-434c-812b-1c1158ecc574,6c5d0ac3-6086-434c-812b-1c1158ecc574,1,0,783536d7-c0db-44c9-96e8-58b57804d7c8,783536d7-c0db-44c9-96e8-58b57804d7c8,1,0,a8295435-c2c4-4aff-874b-7412556aa76d,a8295435-c2c4-4aff-874b-7412556aa76d,1,0,f6c4e24b-172b-4ba3-8e3e-988306ade660,f6c4e24b-172b-4ba3-8e3e-988306ade660,1,0,9baab24c-a5a3-46f4-ad17-a28d4a49f851,9baab24c-a5a3-46f4-ad17-a28d4a49f851,1,0,d1952319-0e42-4684-a386-fbe7c24526c2,d1952319-0e42-4684-a386-fbe7c24526c2,1,0,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,1,0,83b47a9d-d44b-4c40-becd-df74f9cb2e91,83b47a9d-d44b-4c40-becd-df74f9cb2e91,1,0,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,1,0,86e2a2eb-160f-4e93-a449-b2f726286d1b,86e2a2eb-160f-4e93-a449-b2f726286d1b,1,0,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,1,0,364184c2-ec71-44be-b40c-ba719b4ab0e1,364184c2-ec71-44be-b40c-ba719b4ab0e1,1,0,7ef46c54-ec0c-4211-a750-e5949956b593,7ef46c54-ec0c-4211-a750-e5949956b593,1,0,04823681-875e-459a-b3cf-051c89527f38,04823681-875e-459a-b3cf-051c89527f38,1,0,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,1,0,38265f08-3301-40d1-b630-a319c983e826,38265f08-3301-40d1-b630-a319c983e826,1,0,5175c496-bac7-4c57-9628-793b727aecd0,5175c496-bac7-4c57-9628-793b727aecd0,1,0,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,1,0,fc42df4a-93f0-461f-acfe-fea09158030f,fc42df4a-93f0-461f-acfe-fea09158030f,1,0,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,1,0,6d002aef-00c9-4069-80df-153151218831,6d002aef-00c9-4069-80df-153151218831,1,0,4fec3a6c-5a99-4763-aa07-d5de8712559e,4fec3a6c-5a99-4763-aa07-d5de8712559e,1,0,968a1202-d271-43e0-bfd4-d38e49ceadd4,968a1202-d271-43e0-bfd4-d38e49ceadd4,1,0,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,1,0,b3b4fbf1-cbf0-4ee2-a490-4d657693479b,b3b4fbf1-cbf0-4ee2-a490-4d657693479b,1,0,ea61e442-273e-4ce4-a806-8090893729ba,ea61e442-273e-4ce4-a806-8090893729ba,1,0,aef03c0b-2846-43b7-b382-9a51ec783e85,aef03c0b-2846-43b7-b382-9a51ec783e85,1,0,e7100f2b-d169-4635-ab87-7a2225ff12ee,e7100f2b-d169-4635-ab87-7a2225ff12ee,1,0,c0804a4a-64d5-457f-a542-8e5badccbdf1,c0804a4a-64d5-457f-a542-8e5badccbdf1,1,0,d6bd5459-6f95-4f9c-8d84-c67bdc716acf,d6bd5459-6f95-4f9c-8d84-c67bdc716acf,1,0,4a2d2790-debf-4dc2-8216-878d8808d161,4a2d2790-debf-4dc2-8216-878d8808d161,1,0,6dcbb379-d4f5-418a-a3ab-bb7c0e169058,6dcbb379-d4f5-418a-a3ab-bb7c0e169058,1,0,4507a92e-abb6-4329-88b2-3429bc694bc6,4507a92e-abb6-4329-88b2-3429bc694bc6,1,0,2694c1b4-536b-4187-adf6-0f8757aaae76,2694c1b4-536b-4187-adf6-0f8757aaae76,1,0,e523f88b-b3de-476e-a3cc-592970492dec,e523f88b-b3de-476e-a3cc-592970492dec,1,0,0e2107e2-8648-4b2e-9dfb-c23b1ff5b007,0e2107e2-8648-4b2e-9dfb-c23b1ff5b007,1,0,efb6b3b6-d57b-469f-a7c2-f4e0308d0c7f,efb6b3b6-d57b-469f-a7c2-f4e0308d0c7f,1,0,ea0843f4-60fb-4d44-abf4-0021867c636b,ea0843f4-60fb-4d44-abf4-0021867c636b,1,0,59aadc03-adbc-481f-89bc-d7f391789522,59aadc03-adbc-481f-89bc-d7f391789522,1,0,254f6ccd-0451-4231-91c9-4abe57b647be,254f6ccd-0451-4231-91c9-4abe57b647be,1,0,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,1,0,0dcc537b-76b3-4e73-b060-6cbdcf6345db,0dcc537b-76b3-4e73-b060-6cbdcf6345db,1,0,ae662b53-e11e-4b59-be52-b9d4ab00c4a4,ae662b53-e11e-4b59-be52-b9d4ab00c4a4,1,0,ce55df94-71e4-46ac-9b3b-bdae5d336b0a,ce55df94-71e4-46ac-9b3b-bdae5d336b0a,1,0,7601fa7e-079a-4347-abea-e161b2d00783,7601fa7e-079a-4347-abea-e161b2d00783,1,0,ee84cb40-f82d-4558-91be-229d68ad9f4a,ee84cb40-f82d-4558-91be-229d68ad9f4a,1,0,101a7eff-9556-4165-879a-a7c8a852e236,101a7eff-9556-4165-879a-a7c8a852e236,1,0,01775932-3603-4efc-9235-abdb97490dea,01775932-3603-4efc-9235-abdb97490dea,1,0,7637844b-4059-4f8a-8436-b4f4e8cb4f74,7637844b-4059-4f8a-8436-b4f4e8cb4f74,1,0,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,1,0,0ee5b788-61dc-464b-86da-f985df7704b6,0ee5b788-61dc-464b-86da-f985df7704b6,1,0,1c2da2ac-e797-11e6-0489-a8667f21fde4,1c2da2ac-e797-11e6-0489-a8667f21fde4,1,0,2375c6a8-9799-4b7c-a48d-091a90c67693,2375c6a8-9799-4b7c-a48d-091a90c67693,1,0,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,1,0,df7892fe-e796-11e6-0489-a8667f21fde4,df7892fe-e796-11e6-0489-a8667f21fde4,1,0,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,1,0,63c6522f-be04-422a-b4f4-0f55f58b09a8,63c6522f-be04-422a-b4f4-0f55f58b09a8,1,0,be919dc1-a377-43e1-82e6-ce946cabdd55,be919dc1-a377-43e1-82e6-ce946cabdd55,1,0,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,1,0,9ded532e-9e60-4895-a4c5-4ea6697aa83c,9ded532e-9e60-4895-a4c5-4ea6697aa83c,1,0,106c5159-ffc7-4059-b3e3-acf74326a44f,106c5159-ffc7-4059-b3e3-acf74326a44f,1,0,d39fd717-1a69-4fd3-889e-4fa9abefea1c,d39fd717-1a69-4fd3-889e-4fa9abefea1c,1,0,fae8b26c-e796-11e6-0489-a8667f21fde4,fae8b26c-e796-11e6-0489-a8667f21fde4,1,0,5b85e6df-7493-4201-97ad-2aea14de6006,5b85e6df-7493-4201-97ad-2aea14de6006,1,0,061e6c0f-ba52-40ec-96ad-2eba3eee3097,061e6c0f-ba52-40ec-96ad-2eba3eee3097,1,0,d77e3c65-e9fd-4ba7-885f-a8a2f4c827d2,d77e3c65-e9fd-4ba7-885f-a8a2f4c827d2,1,0,4fb86bf3-02ad-4f0e-85a9-98be6c350a06,4fb86bf3-02ad-4f0e-85a9-98be6c350a06,1,0,4840753b-e2e1-4e67-b35f-2f5eab7754f5,4840753b-e2e1-4e67-b35f-2f5eab7754f5,1,0,4095c9e7-83ab-4db9-a2d0-a9f4ef9ee53e,4095c9e7-83ab-4db9-a2d0-a9f4ef9ee53e,1,0,6ffd9c17-d90b-4d19-b337-0fbc2c717557,6ffd9c17-d90b-4d19-b337-0fbc2c717557,1,0,9a11a6bd-0c13-4be2-9e34-b12b7554f3c9,9a11a6bd-0c13-4be2-9e34-b12b7554f3c9,1,0,3bb83275-7a0e-420f-8c6b-028038f11a8c,3bb83275-7a0e-420f-8c6b-028038f11a8c,1,0,e1950a23-f6e7-48af-b78a-77aa61f08ece,e1950a23-f6e7-48af-b78a-77aa61f08ece,1,0,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,1,0,0a7d282e-45bb-4a87-b325-1659519867fb,0a7d282e-45bb-4a87-b325-1659519867fb,1,0,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,1,0,5d726fa3-bde0-4d97-a577-415857bbb5c1,5d726fa3-bde0-4d97-a577-415857bbb5c1,1,0,f63d0e2d-4685-4ac5-b22c-1b83e3ab955f,f63d0e2d-4685-4ac5-b22c-1b83e3ab955f,1,0,49068231-202c-4ac6-a39a-69207cb597dd,49068231-202c-4ac6-a39a-69207cb597dd,1,0,5a470575-e012-42ad-9ad7-53930a8e843f,5a470575-e012-42ad-9ad7-53930a8e843f,1,0,5872d4ed-6503-422d-bcf9-63a8df3e777d,5872d4ed-6503-422d-bcf9-63a8df3e777d,1,0,e21cda29-2579-485e-a207-20b76f719c80,e21cda29-2579-485e-a207-20b76f719c80,1,0,1b232a57-2833-42c6-b318-38dae2af1ab2,1b232a57-2833-42c6-b318-38dae2af1ab2,1,0,007ade8c-b102-408b-b877-b531e046560b,007ade8c-b102-408b-b877-b531e046560b,1,0,a8dfea6c-0c21-456d-96ab-f4bb5d579b13,a8dfea6c-0c21-456d-96ab-f4bb5d579b13,1,0,305f1ef1-4f9c-40a2-a978-3a4c0ecf75d4,305f1ef1-4f9c-40a2-a978-3a4c0ecf75d4,1,0,eb69c41a-392d-43bb-9b67-a0adcb651b1e,eb69c41a-392d-43bb-9b67-a0adcb651b1e,1,0,93b01c88-48a2-4753-b443-0e9892395a8f,93b01c88-48a2-4753-b443-0e9892395a8f,1,0,0b7f8e05-bb34-47cc-9775-04362e814316,0b7f8e05-bb34-47cc-9775-04362e814316,1,0,e71e0297-3709-4247-933e-18a6350cbf39,e71e0297-3709-4247-933e-18a6350cbf39,1,0,0b32e372-c6ad-4dda-acd1-8b5d58537d37,0b32e372-c6ad-4dda-acd1-8b5d58537d37,1,0,602dac6f-abe6-407a-92d3-7f1613e5dda6,602dac6f-abe6-407a-92d3-7f1613e5dda6,1,0,db03a88b-2804-45c2-9089-7ddb87ef2f18,db03a88b-2804-45c2-9089-7ddb87ef2f18,1,0,df6417d1-c722-4a87-a543-5d2c31795b20,df6417d1-c722-4a87-a543-5d2c31795b20,1,0,526a85c9-3a8d-4044-adb9-fd0689c70601,526a85c9-3a8d-4044-adb9-fd0689c70601,1,0,c4203772-580c-4db1-9bde-8925faa90688,c4203772-580c-4db1-9bde-8925faa90688,1,0,f64a91c4-f5cb-4e8e-8387-9f242ce6de44,f64a91c4-f5cb-4e8e-8387-9f242ce6de44,1,0,dc024d33-1715-40da-9c00-443d25a31ebc,dc024d33-1715-40da-9c00-443d25a31ebc,1,0,d029aa93-fea4-40e4-8cfb-2dc96544829b,d029aa93-fea4-40e4-8cfb-2dc96544829b,1,0,f8f585d1-01a0-4892-8852-c692ffaa1344,f8f585d1-01a0-4892-8852-c692ffaa1344,1,0,35c237a7-71e1-415c-809d-e99babee4e0e,35c237a7-71e1-415c-809d-e99babee4e0e,1,0,2116119f-7637-45a1-8e59-c9149619413b,2116119f-7637-45a1-8e59-c9149619413b,1,0,43882a2c-b625-4cfb-8220-3d12bfee09e4,43882a2c-b625-4cfb-8220-3d12bfee09e4,1,0,90639fdb-144d-495a-a097-76c45107fc97,90639fdb-144d-495a-a097-76c45107fc97,1,0,24ce9257-6dcf-4ba6-839e-1e635c069e75,24ce9257-6dcf-4ba6-839e-1e635c069e75,1,0,ecb2048d-4c1d-4194-a728-604734683b3b,ecb2048d-4c1d-4194-a728-604734683b3b,1,0,b33e046c-b580-4c90-940d-71f38d9ceff2,b33e046c-b580-4c90-940d-71f38d9ceff2,1,0,c076b7fd-7e17-4811-82e7-047e2bf43bb0,c076b7fd-7e17-4811-82e7-047e2bf43bb0,1,0,84b28732-9001-4798-b613-35ea65c26cce,84b28732-9001-4798-b613-35ea65c26cce,1,0,77d8285f-a87b-4a4e-b6ee-85bcd54dee12,77d8285f-a87b-4a4e-b6ee-85bcd54dee12,1,0,f2ec9416-3830-4607-90f3-f77fc53c9c70,f2ec9416-3830-4607-90f3-f77fc53c9c70,1,0,3057de81-eb41-4161-9dc2-5445699906af,3057de81-eb41-4161-9dc2-5445699906af,1,0,984ed6c0-e25b-46ff-9b3c-6bc0370071da,984ed6c0-e25b-46ff-9b3c-6bc0370071da,1,0,35fe84b6-7d3c-4729-a75c-a5f3ef122124,35fe84b6-7d3c-4729-a75c-a5f3ef122124,1,0,f7d5815e-511e-48c2-bc31-f9987423439b,f7d5815e-511e-48c2-bc31-f9987423439b,1,0,f660bf92-7de1-4a22-9cea-777069e4679d,f660bf92-7de1-4a22-9cea-777069e4679d,1,0,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,1,0,8b0fb329-098b-46db-8766-bc034d6f20a8,8b0fb329-098b-46db-8766-bc034d6f20a8,1,0,c630e43c-98a6-4059-9b14-25d267410ba6,c630e43c-98a6-4059-9b14-25d267410ba6,1,0,d01089f3-427f-4624-955d-1a5a96098141,d01089f3-427f-4624-955d-1a5a96098141,1,0,6520d7f5-7326-4921-b8c1-6e6fbc56089c,6520d7f5-7326-4921-b8c1-6e6fbc56089c,1,0,766f2abe-1dfd-4e16-bffd-83f44d25d82a,766f2abe-1dfd-4e16-bffd-83f44d25d82a,1,0,0e7a34a8-ce5a-4767-8283-fd094e13d969,0e7a34a8-ce5a-4767-8283-fd094e13d969,1,0,20feb794-eb05-46a6-90e7-ca4e2376d7b2,20feb794-eb05-46a6-90e7-ca4e2376d7b2,1,0,8deb4f57-18fc-4db0-ad0f-82d60af3d80b,8deb4f57-18fc-4db0-ad0f-82d60af3d80b,1,0,2f484aa4-452a-46af-a707-a5a6917bc0db,2f484aa4-452a-46af-a707-a5a6917bc0db,1,0,fd6ff934-6f11-4182-b0cb-6926902d33c0,fd6ff934-6f11-4182-b0cb-6926902d33c0,1,0,315af891-2075-4833-a404-6c0f2004ee53,315af891-2075-4833-a404-6c0f2004ee53,1,0,5725db77-bfbf-4d85-9565-163b309a53ee,5725db77-bfbf-4d85-9565-163b309a53ee,1,0,99a7142c-b3c7-4221-abf8-6831a3cbc16e,99a7142c-b3c7-4221-abf8-6831a3cbc16e,1,0,d367a1a1-5a54-4bf9-96c7-d55667e2fb16,d367a1a1-5a54-4bf9-96c7-d55667e2fb16,1,0,2e09abe1-0934-42ae-970f-5e001c35c31a,2e09abe1-0934-42ae-970f-5e001c35c31a,1,0,587d48a3-5627-4481-b13e-c22740b57d8a,587d48a3-5627-4481-b13e-c22740b57d8a,1,0,1f3e3089-1e04-4147-8ece-aa96a76467dd,1f3e3089-1e04-4147-8ece-aa96a76467dd,1,0,22a213b5-ed72-4181-8ff8-89f860c87aa1,22a213b5-ed72-4181-8ff8-89f860c87aa1,1,0,4c56cbff-653e-4f16-b702-c77190d7eb7f,4c56cbff-653e-4f16-b702-c77190d7eb7f,1,0,172ff335-c7ae-4905-b705-2a1475b95713,172ff335-c7ae-4905-b705-2a1475b95713,1,0,db4c311d-ee62-4d47-ac31-5a20cadb7ed1,db4c311d-ee62-4d47-ac31-5a20cadb7ed1,1,0,1d852dc0-90c9-4568-84f9-b1d822573b6b,1d852dc0-90c9-4568-84f9-b1d822573b6b,1,0,24f85dbd-59be-4b8d-bea8-7ff8ddb7486a,24f85dbd-59be-4b8d-bea8-7ff8ddb7486a,1,0,c997f56c-ef9c-434e-bc4e-7fc5f885aaba,c997f56c-ef9c-434e-bc4e-7fc5f885aaba,1,0,37c8f5e1-3513-47f8-896d-a54d11b83dcd,37c8f5e1-3513-47f8-896d-a54d11b83dcd,1,0,9e07733c-39f0-491b-91e1-bf2782d957dd,9e07733c-39f0-491b-91e1-bf2782d957dd,1,0,cc584a1d-dc91-4693-a5c9-6e8c6607e9d8,cc584a1d-dc91-4693-a5c9-6e8c6607e9d8,1,0,5902d979-1235-4d5a-ace7-93261bdeb725,5902d979-1235-4d5a-ace7-93261bdeb725,1,0,5a090286-7969-44c9-815b-fc58aeb5d8d3,5a090286-7969-44c9-815b-fc58aeb5d8d3,1,0,8e87cf35-af54-4fa2-9428-460b765b282b,8e87cf35-af54-4fa2-9428-460b765b282b,1,0,73380bb1-bee3-4b73-a3df-1dbea99011d2,73380bb1-bee3-4b73-a3df-1dbea99011d2,1,0,8be29533-38de-413d-b420-7dac2e80af6c,8be29533-38de-413d-b420-7dac2e80af6c,1,0,82a77018-8e38-41dd-9d1f-3130bc29a707,82a77018-8e38-41dd-9d1f-3130bc29a707,1,0,4d75aaef-532e-4ed3-8153-083f04f05cc1,4d75aaef-532e-4ed3-8153-083f04f05cc1,1,0,3854a0ba-e156-4ba3-a301-b1a41ac386c4,3854a0ba-e156-4ba3-a301-b1a41ac386c4,1,0,f8136f59-ef0c-4c0f-8207-f7a4000e4f0c,f8136f59-ef0c-4c0f-8207-f7a4000e4f0c,1,0,c2321963-cd86-45ec-b323-3fdb5932da3a,c2321963-cd86-45ec-b323-3fdb5932da3a,1,0,d5af38bf-6261-4177-8f74-998a85f0ef39,d5af38bf-6261-4177-8f74-998a85f0ef39,1,0,42bbd9f7-ef72-440f-9eb1-fcb3bdc1d91e,42bbd9f7-ef72-440f-9eb1-fcb3bdc1d91e,1,0,c6a4d03d-f3b2-449c-8a2b-deb542dd2c99,c6a4d03d-f3b2-449c-8a2b-deb542dd2c99,1,0,4b714d9c-26f4-46e8-ac79-471522b3853b,4b714d9c-26f4-46e8-ac79-471522b3853b,1,0,411489de-f907-4d60-a776-64bb0aa12a0e,411489de-f907-4d60-a776-64bb0aa12a0e,1,0,58d9ba60-a0c7-405d-a76e-0b0a796daaf3,58d9ba60-a0c7-405d-a76e-0b0a796daaf3,1,0,9c47670e-9eb9-49ec-876c-cd545aaa093c,9c47670e-9eb9-49ec-876c-cd545aaa093c,1,0,f57e74e6-75e8-4136-911e-86793036a077,f57e74e6-75e8-4136-911e-86793036a077,1,0,8492ee20-3f15-45d8-b70d-19b5cd6f1ae3,8492ee20-3f15-45d8-b70d-19b5cd6f1ae3,1,0,3ba8c378-ef3d-4646-90b3-6d8078aa623e,3ba8c378-ef3d-4646-90b3-6d8078aa623e,1,0,b96b2e45-8fb3-4d48-ab53-d3bbf6ef0284,b96b2e45-8fb3-4d48-ab53-d3bbf6ef0284,1,0,5ac38b5a-92e5-47eb-b956-24d9f010cb9f,5ac38b5a-92e5-47eb-b956-24d9f010cb9f,1,0,d61ca454-505b-4fd6-be15-d7ed948a5ff6,d61ca454-505b-4fd6-be15-d7ed948a5ff6,1,0,2dd7eb87-8130-425a-be13-85235508cde6,2dd7eb87-8130-425a-be13-85235508cde6,1,0,8a62c997-4fda-4464-90bd-ab719161949f,8a62c997-4fda-4464-90bd-ab719161949f,1,0,28af52dd-3144-428b-956d-b6f27863ec4a,28af52dd-3144-428b-956d-b6f27863ec4a,1,0,8ac94328-2300-4681-9c35-fd7e2f830310,8ac94328-2300-4681-9c35-fd7e2f830310,1,0,da0ee165-1917-466b-ac5c-16c28e2318bb,da0ee165-1917-466b-ac5c-16c28e2318bb,1,0,4868cb2e-0892-42bc-9de1-73cb8a15a96f,4868cb2e-0892-42bc-9de1-73cb8a15a96f,1,0,e8b80879-33b3-4c45-ad68-1acabcf91faf,e8b80879-33b3-4c45-ad68-1acabcf91faf,1,0,4a87fafc-7ca7-478e-bb31-358c2b85fa92,4a87fafc-7ca7-478e-bb31-358c2b85fa92,1,0,239601eb-e8de-4d58-a32a-01ee52f6e698,239601eb-e8de-4d58-a32a-01ee52f6e698,1,0,11370667-bec5-4a2d-8aa1-97f4d795718f,11370667-bec5-4a2d-8aa1-97f4d795718f,1,0,2032162d-fbb5-4e6a-be72-cda79869b9ff,2032162d-fbb5-4e6a-be72-cda79869b9ff,1,0,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,1,0,10543f9a-4e3f-427a-b36a-9c66709dd6fb,10543f9a-4e3f-427a-b36a-9c66709dd6fb,1,0,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,1,0,96ab5424-7be1-416d-b74d-d0c815726b1f,96ab5424-7be1-416d-b74d-d0c815726b1f,1,0,3714e794-ddef-4ad9-a933-6130bbc84545,3714e794-ddef-4ad9-a933-6130bbc84545,1,0,282b089c-7411-40d6-9a0a-ceaf6abb5586,282b089c-7411-40d6-9a0a-ceaf6abb5586,1,0,678188aa-76e7-49bc-a4be-1c55ccd625b1,678188aa-76e7-49bc-a4be-1c55ccd625b1,1,0,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,1,0,b3415b4a-d8de-4536-aa4b-82e75fd986ee,b3415b4a-d8de-4536-aa4b-82e75fd986ee,1,0,acc996ab-672a-4602-b7ad-8eee83557e61,acc996ab-672a-4602-b7ad-8eee83557e61,1,0,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,1,0,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,1,0,97745768-ed35-44f1-beba-abb8b28a29ae,97745768-ed35-44f1-beba-abb8b28a29ae,1,0,69364942-bcd1-4b06-9b57-fa59b4e7c552,69364942-bcd1-4b06-9b57-fa59b4e7c552,1,0,ab201c5f-4134-42cf-a528-c1c4df02f2d7,ab201c5f-4134-42cf-a528-c1c4df02f2d7,1,0,303fb7b5-6a23-40ea-ae12-b54f4ebae026,303fb7b5-6a23-40ea-ae12-b54f4ebae026,1,0,634cd26b-78f1-4446-8aad-b96ed16e5329,634cd26b-78f1-4446-8aad-b96ed16e5329,1,0,d8e62f1a-92ca-4971-9609-e79da798c083,d8e62f1a-92ca-4971-9609-e79da798c083,1,0,eb74ebf0-a9c6-4c4c-b279-5a46f40ea0d3,eb74ebf0-a9c6-4c4c-b279-5a46f40ea0d3,1,0,d5e1806b-9827-40ab-9cfa-23c22456d137,d5e1806b-9827-40ab-9cfa-23c22456d137,1,0,b57b186a-ec1e-46a2-87ae-6ba27793ebf6,b57b186a-ec1e-46a2-87ae-6ba27793ebf6,1,0,d24170d7-5477-4ec8-acd2-0de8bd2067d6,d24170d7-5477-4ec8-acd2-0de8bd2067d6,1,0,f047da82-7574-4da4-b54e-480195280a11,f047da82-7574-4da4-b54e-480195280a11,1,0,a469f018-da26-485f-87c3-f580321a34f0,a469f018-da26-485f-87c3-f580321a34f0,1,0,adcb0dca-d810-461e-8f45-1d3cd6ffad4d,adcb0dca-d810-461e-8f45-1d3cd6ffad4d,1,0,388f7571-8f1b-45c5-a8b8-45d648f2f5dd,388f7571-8f1b-45c5-a8b8-45d648f2f5dd,1,0,886df9ab-09b4-4c7a-bd44-6afeab68d831,886df9ab-09b4-4c7a-bd44-6afeab68d831,1,0,9e16edb6-d841-48fa-bfe1-f9aabdcf9e46,9e16edb6-d841-48fa-bfe1-f9aabdcf9e46,1,0,628de771-c19c-4474-989f-8fb6cd7756a2,628de771-c19c-4474-989f-8fb6cd7756a2,1,0,6b0ddefa-ee70-4b27-989f-e23c734ab943,6b0ddefa-ee70-4b27-989f-e23c734ab943,1,0,ee873280-28ea-41fb-af52-c10c2018cbe4,ee873280-28ea-41fb-af52-c10c2018cbe4,1,0,6789e57b-1293-442c-97d0-b8007367602e,6789e57b-1293-442c-97d0-b8007367602e,1,0,0f193c89-b664-448e-bed3-2147430367f7,0f193c89-b664-448e-bed3-2147430367f7,1,0,4c9b2506-75a8-47d3-a5d5-d946088ba14a,4c9b2506-75a8-47d3-a5d5-d946088ba14a,1,0,36eacaa1-2efd-49c0-82de-2f8972535bf2,36eacaa1-2efd-49c0-82de-2f8972535bf2,1,0,c35a643d-fe3a-4293-93c0-074fa68a31e3,c35a643d-fe3a-4293-93c0-074fa68a31e3,1,0,9f7b9fd8-4bdd-4492-abf7-09b3f7f23e16,9f7b9fd8-4bdd-4492-abf7-09b3f7f23e16,1,0,72ee9a03-a320-4e60-be04-0ee813ea567f,72ee9a03-a320-4e60-be04-0ee813ea567f,1,0,f6f52cc8-23a3-4402-b1eb-0e41584c802a,f6f52cc8-23a3-4402-b1eb-0e41584c802a,1,0,8398e065-8b4b-4901-b057-2a048776bafe,8398e065-8b4b-4901-b057-2a048776bafe,1,0,073c56ca-bf45-422d-957a-f9c57aeee4d0,073c56ca-bf45-422d-957a-f9c57aeee4d0,1,0,d73e084f-9201-40c8-8ad4-f61b6cbb47c9,d73e084f-9201-40c8-8ad4-f61b6cbb47c9,1,0,52f065fe-556a-47cd-82b1-c56d7894df30,52f065fe-556a-47cd-82b1-c56d7894df30,1,0,186efec4-1343-4234-a9b6-c8d8096faf76,186efec4-1343-4234-a9b6-c8d8096faf76,1,0,6b15631a-0c98-4771-ba87-9d6f5795df63,6b15631a-0c98-4771-ba87-9d6f5795df63,1,0,ed72e5ef-a8b9-404b-a8b4-cb587c7f3018,ed72e5ef-a8b9-404b-a8b4-cb587c7f3018,1,0,51d30e7e-54b4-40be-a5bc-46fec691a425,51d30e7e-54b4-40be-a5bc-46fec691a425,1,0,bdff2b56-efbc-44ce-8141-7df2b095de37,bdff2b56-efbc-44ce-8141-7df2b095de37,1,0,be158212-2b71-43b1-8dda-f34ea30f16e7,be158212-2b71-43b1-8dda-f34ea30f16e7,1,0,68598d98-0c59-4cda-b0b2-6901d3aff88b,68598d98-0c59-4cda-b0b2-6901d3aff88b,1,0,219c1375-f26e-4698-aa82-4b9d735df783,219c1375-f26e-4698-aa82-4b9d735df783,1,0,ff5121c1-7f11-48cd-a9df-3588cf9f6d21,ff5121c1-7f11-48cd-a9df-3588cf9f6d21,1,0,32012b27-1b43-49be-b9af-df0c877e7a4c,32012b27-1b43-49be-b9af-df0c877e7a4c,1,0,e97d5152-9e58-4a91-a691-b4d358f1c89d,e97d5152-9e58-4a91-a691-b4d358f1c89d,1,0,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,1,0,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,1,0,296c478b-4103-46cb-9d14-97f59034ffd4,296c478b-4103-46cb-9d14-97f59034ffd4,1,0,fb918a68-f86d-46c0-9078-61d2b32b5aef,fb918a68-f86d-46c0-9078-61d2b32b5aef,1,0,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,1,0,1ddfc773-4f3c-4764-978e-585aab4666de,1ddfc773-4f3c-4764-978e-585aab4666de,1,0,e424d122-1dbb-4545-975c-177997129f2e,e424d122-1dbb-4545-975c-177997129f2e,1,0,c83bc626-dfdd-4451-92b0-b53eed40f534,c83bc626-dfdd-4451-92b0-b53eed40f534,1,0,7b9b1d11-4f78-4113-8fca-1a3a30953aef,7b9b1d11-4f78-4113-8fca-1a3a30953aef,1,0,7f84cb85-c3e4-4b53-b829-3b1e216f978a,7f84cb85-c3e4-4b53-b829-3b1e216f978a,1,0,7e621ecc-7d2b-42bf-a502-f8e59de56b63,7e621ecc-7d2b-42bf-a502-f8e59de56b63,1,0,798fd445-d02e-4e97-890a-0283f33317cf,798fd445-d02e-4e97-890a-0283f33317cf,1,0,095583ca-010d-43ad-8c7a-8938fa4cb761,095583ca-010d-43ad-8c7a-8938fa4cb761,1,0,178d210c-e847-4805-a8d4-31acdf4983af,178d210c-e847-4805-a8d4-31acdf4983af,1,0,aa214d9f-23b1-4996-8a43-9010dceeb53d,aa214d9f-23b1-4996-8a43-9010dceeb53d,1,0,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,1,0,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,1,0,d9d103bd-1dd6-48a9-8869-6c8485705393,d9d103bd-1dd6-48a9-8869-6c8485705393,1,0,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,1,0,ff0e8487-bdbf-4b21-877e-00008c81bc09,ff0e8487-bdbf-4b21-877e-00008c81bc09,1,0,39c9f8ac-56a0-4057-8359-7228bf97184a,39c9f8ac-56a0-4057-8359-7228bf97184a,1,0,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,1,0,2c0dd892-1d3e-4497-850b-080bdb9c59d8,2c0dd892-1d3e-4497-850b-080bdb9c59d8,1,0,3b727d49-c9ed-4d9e-af61-c13b9a170c75,3b727d49-c9ed-4d9e-af61-c13b9a170c75,1,0,1b264744-bdcd-4c5c-932b-0ac4b990dd78,1b264744-bdcd-4c5c-932b-0ac4b990dd78,1,0,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,1,0,37bde288-8e02-4127-bd80-de8ae7590a14,37bde288-8e02-4127-bd80-de8ae7590a14,1,0,a9b8e517-78cd-4428-b2fc-9e16af0069d7,a9b8e517-78cd-4428-b2fc-9e16af0069d7,1,0,5c592024-c009-4674-bbb8-283669e673ef,5c592024-c009-4674-bbb8-283669e673ef,1,0,e76f16b9-77a0-4033-90d0-6e04e4494747,e76f16b9-77a0-4033-90d0-6e04e4494747,1,0,cfb221fc-8639-4e15-9a78-f7837d657a99,cfb221fc-8639-4e15-9a78-f7837d657a99,1,0,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,1,0,022147c1-1ebe-4c8d-b367-4c47115b101d,022147c1-1ebe-4c8d-b367-4c47115b101d,1,0,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,1,0,fca6b230-a38e-4791-9cc5-3d215f79dc6f,fca6b230-a38e-4791-9cc5-3d215f79dc6f,1,0,04e87de4-940a-4533-8c81-8f145b201dc0,04e87de4-940a-4533-8c81-8f145b201dc0,1,0,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,1,0,fa488af9-a5ec-47d8-8661-fa5058a60a6b,fa488af9-a5ec-47d8-8661-fa5058a60a6b,1,0,97cc84c6-3565-474c-a028-83acb5390446,97cc84c6-3565-474c-a028-83acb5390446,1,0,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,1,0,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,1,0,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,1,0,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,1,0,b366d7eb-626c-4c0c-b4cc-c392763e6e94,b366d7eb-626c-4c0c-b4cc-c392763e6e94,1,0,4c7e24aa-726a-4595-82ad-ef1e525b14fa,4c7e24aa-726a-4595-82ad-ef1e525b14fa,1,0,aed2ceeb-cc0f-4bdc-bb94-2e15cd68aa96,aed2ceeb-cc0f-4bdc-bb94-2e15cd68aa96,1,0,04b5ae71-7fa4-4a64-b406-59dc603b80c5,04b5ae71-7fa4-4a64-b406-59dc603b80c5,1,0,f23a2023-f776-40db-8689-1fc3f7ebc482,f23a2023-f776-40db-8689-1fc3f7ebc482,1,0,1e7684f0-1b3b-4a32-8602-dd0672c5a800,1e7684f0-1b3b-4a32-8602-dd0672c5a800,1,0,ab178a93-8570-43b6-ae42-f34a7cc4f359,ab178a93-8570-43b6-ae42-f34a7cc4f359,1,0,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,1,0,168e3189-2676-4cdb-bc9d-78d85df51faf,168e3189-2676-4cdb-bc9d-78d85df51faf,1,0,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,1,0,470bbff8-20d0-475c-a61a-1a09ac14c2db,470bbff8-20d0-475c-a61a-1a09ac14c2db,1,0,6ea25680-c4db-4717-9498-62420ca16970,6ea25680-c4db-4717-9498-62420ca16970,1,0,55412118-700a-4a2d-b7c9-d3b7c0f4bd9a,55412118-700a-4a2d-b7c9-d3b7c0f4bd9a,1,0,14e20d48-635e-4c52-9099-e743323fc190,14e20d48-635e-4c52-9099-e743323fc190,1,0,c37a660e-16c5-495e-9486-e61bcb693fa0,c37a660e-16c5-495e-9486-e61bcb693fa0,1,0,8f44ebad-1160-474e-a566-fb9da55ffcba,8f44ebad-1160-474e-a566-fb9da55ffcba,1,0,11cf336e-7890-4972-bf71-32d7416ff647,11cf336e-7890-4972-bf71-32d7416ff647,1,0,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,1,0,14bd3392-36cd-4ed0-8847-44375d6fb861,14bd3392-36cd-4ed0-8847-44375d6fb861,1,0,759ede7a-e832-44e6-9b11-5bfb3c507820,759ede7a-e832-44e6-9b11-5bfb3c507820,1,0,c99c7271-cb3c-4fd2-8789-8637cf984514,c99c7271-cb3c-4fd2-8789-8637cf984514,1,0,64484611-b32c-4155-a063-7df5a3f924dd,64484611-b32c-4155-a063-7df5a3f924dd,1,0,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,1,0,821b93bd-f0dd-4468-972a-d9b2b4de72f1,821b93bd-f0dd-4468-972a-d9b2b4de72f1,1,0,56900066-90e3-40c0-b64a-8f7964a4dfc1,56900066-90e3-40c0-b64a-8f7964a4dfc1,1,0,56f0c4d6-9b13-486a-9586-05e657dca8be,56f0c4d6-9b13-486a-9586-05e657dca8be,1,0,c795c0d3-6a0d-4311-9821-df320663727e,c795c0d3-6a0d-4311-9821-df320663727e,1,0,512b8d89-8798-4549-9e79-b9c3f7d9098f,512b8d89-8798-4549-9e79-b9c3f7d9098f,1,0,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,1,0,7f356abf-9045-4a76-89f3-8b52d467122a,7f356abf-9045-4a76-89f3-8b52d467122a,1,0,625a61ac-4ad0-4b31-aa67-9f864154b9c4,625a61ac-4ad0-4b31-aa67-9f864154b9c4,1,0,51fa8d01-44a1-4e75-9b04-6a2504972f08,51fa8d01-44a1-4e75-9b04-6a2504972f08,1,0,73dae482-a1ee-4c57-8859-2dd8e8635a49,73dae482-a1ee-4c57-8859-2dd8e8635a49,1,0,9c57c3d0-aaa1-4c87-a81c-36ac4dd48eaa,9c57c3d0-aaa1-4c87-a81c-36ac4dd48eaa,1,0,e4ea640f-e3a4-44ad-b17d-51f32136372e,e4ea640f-e3a4-44ad-b17d-51f32136372e,1,0,7dca913d-e37a-4740-8e3d-677d379605ee,7dca913d-e37a-4740-8e3d-677d379605ee,1,0,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,1,0,e62845df-704f-4ad5-b227-e0128877a814,e62845df-704f-4ad5-b227-e0128877a814,1,0,4f1393e4-9db5-43d6-b47e-caa1aad9b35c,4f1393e4-9db5-43d6-b47e-caa1aad9b35c,1,0,e62e60ea-9f0c-4a7e-869f-4639f31f826c,e62e60ea-9f0c-4a7e-869f-4639f31f826c,1,0,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,1,0,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,1,0,4cd4694f-17f8-43ba-8940-07628bd937fe,4cd4694f-17f8-43ba-8940-07628bd937fe,1,0,9b9e81f9-e23f-4c77-bf6f-edbce8ebabfa,9b9e81f9-e23f-4c77-bf6f-edbce8ebabfa,1,0,fb5e93bb-e1ff-47a6-a362-ea94e6cbac65,fb5e93bb-e1ff-47a6-a362-ea94e6cbac65,1,0,7df6c94b-3cfe-4764-988e-858d733e35d9,7df6c94b-3cfe-4764-988e-858d733e35d9,1,0,8b251c7d-2d55-4734-a1da-7f1115d95080,8b251c7d-2d55-4734-a1da-7f1115d95080,1,0,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,1,0,5a8c3621-595a-4168-8bba-a7f8d499e47e,5a8c3621-595a-4168-8bba-a7f8d499e47e,1,0,fc4cfed6-e492-4420-b357-8143a8c2a41a,fc4cfed6-e492-4420-b357-8143a8c2a41a,1,0,4311a250-64af-443e-a711-93b7c41175cf,4311a250-64af-443e-a711-93b7c41175cf,1,0,804b6c57-1d7b-4927-be5b-84b7959fe55e,804b6c57-1d7b-4927-be5b-84b7959fe55e,1,0,f2655d85-79ea-4736-8f41-94a4f9b2b998,f2655d85-79ea-4736-8f41-94a4f9b2b998,1,0,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,1,0,a8eb5ed9-df99-405b-afad-eeaa98956eee,a8eb5ed9-df99-405b-afad-eeaa98956eee,1,0,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,1,0,26a1279f-91f0-4632-ad7c-21cf2f524208,26a1279f-91f0-4632-ad7c-21cf2f524208,1,0,bf751ed0-ee47-4eaf-81bd-f0da00bef343,bf751ed0-ee47-4eaf-81bd-f0da00bef343,1,0,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,1,0,1f1def7c-e0ee-4963-afea-1751bf1b812c,1f1def7c-e0ee-4963-afea-1751bf1b812c,1,0,9a4c0898-ab56-425c-8191-5ab90f4e12bf,9a4c0898-ab56-425c-8191-5ab90f4e12bf,1,0,6841ec47-7a84-441a-b975-69d089072ce7,6841ec47-7a84-441a-b975-69d089072ce7,1,0,ead4001a-0d8a-4b95-8212-2a40e5aa6659,ead4001a-0d8a-4b95-8212-2a40e5aa6659,1,0,22165c8a-2179-4cd5-b195-bd2721e9e232,22165c8a-2179-4cd5-b195-bd2721e9e232,1,0,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,1,0,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,1,0,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,1,0,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,1,0,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,1,0,9d9debfd-4a10-4f09-9d09-2aa5e058b525,9d9debfd-4a10-4f09-9d09-2aa5e058b525,1,0,fc19586c-d89c-495c-b473-6f85967ed48e,fc19586c-d89c-495c-b473-6f85967ed48e,1,0,2ac7c701-a281-4e77-a5f8-294526021e2d,2ac7c701-a281-4e77-a5f8-294526021e2d,1,0,979df549-889d-496a-b6ce-c56d54c771b5,979df549-889d-496a-b6ce-c56d54c771b5,1,0,91b320d8-3426-44d3-97d7-c200287d7343,91b320d8-3426-44d3-97d7-c200287d7343,1,0,b9297f72-b40a-4adb-9975-bb693d4834a4,b9297f72-b40a-4adb-9975-bb693d4834a4,1,0,41cf3916-216f-4c4e-a587-82777f4263e0,41cf3916-216f-4c4e-a587-82777f4263e0,1,0,2ce3a350-86f1-4275-8299-3c3693ca11fa,2ce3a350-86f1-4275-8299-3c3693ca11fa,1,0,59f0ed15-c84c-4f41-bdd4-26317e4e914d,59f0ed15-c84c-4f41-bdd4-26317e4e914d,1,0,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,1,0,8fef790c-a3f4-460c-9093-5065cbdba196,8fef790c-a3f4-460c-9093-5065cbdba196,1,0,79bd24d0-61a9-4558-90ac-4e726066789c,79bd24d0-61a9-4558-90ac-4e726066789c,1,0,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,1,0,ef356548-51a4-4b09-b37d-ede5b8f3edb6,ef356548-51a4-4b09-b37d-ede5b8f3edb6,1,0,53c0d900-5e96-4381-a1ed-4424a5799608,53c0d900-5e96-4381-a1ed-4424a5799608,1,0,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,1,0,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,1,0,45ca9e20-1246-4400-a019-ffb521af6ea7,45ca9e20-1246-4400-a019-ffb521af6ea7,1,0,73eed854-5c3a-4a10-9bfa-793fd517f303,73eed854-5c3a-4a10-9bfa-793fd517f303,1,0,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,1,0,9134dc40-a8f1-4c60-9431-27cb98be5ecd,9134dc40-a8f1-4c60-9431-27cb98be5ecd,1,0,16c4622a-33af-4a95-b44e-0861a6df21d2,16c4622a-33af-4a95-b44e-0861a6df21d2,1,0,d8cac67b-cce2-4a00-a8df-c6570c50153f,d8cac67b-cce2-4a00-a8df-c6570c50153f,1,0,37213c65-bf26-4e50-a2fa-58eb45439b58,37213c65-bf26-4e50-a2fa-58eb45439b58,1,0,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,1,0,b6b31892-73ee-4c9b-92b0-2735536c4938,b6b31892-73ee-4c9b-92b0-2735536c4938,1,0,deb8b883-142e-47d0-a722-7c734a0cf9b3,deb8b883-142e-47d0-a722-7c734a0cf9b3,1,0,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,1,0,29233058-ccb1-4110-a9bc-cdb4c531f35a,29233058-ccb1-4110-a9bc-cdb4c531f35a,1,0,cf3729b2-9ee6-437c-81df-83966793be50,cf3729b2-9ee6-437c-81df-83966793be50,1,0,429d08b7-0b98-4f9b-a053-d04dd84a7026,429d08b7-0b98-4f9b-a053-d04dd84a7026,1,0,b64fd964-cee8-4619-872f-82d2fdc14240,b64fd964-cee8-4619-872f-82d2fdc14240,1,0,5ce7846d-9806-40f5-8631-4e14deb8bc95,5ce7846d-9806-40f5-8631-4e14deb8bc95,1,0,79528a0e-1e48-4d14-bd28-756fd5db57b9,79528a0e-1e48-4d14-bd28-756fd5db57b9,1,0,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,1,0,d9426219-4b37-4776-8d5d-acab5825e789,d9426219-4b37-4776-8d5d-acab5825e789,1,0,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,1,0,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,1,0,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,1,0,29e7299a-ce80-497a-8102-615d0a001ea8,29e7299a-ce80-497a-8102-615d0a001ea8,1,0,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,1,0,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,1,0,adc2cc11-b647-453f-a98e-8a73b7c368c7,adc2cc11-b647-453f-a98e-8a73b7c368c7,1,0,905b787b-c638-4703-af70-416a2ce43b50,905b787b-c638-4703-af70-416a2ce43b50,1,0,d7ea882a-6ef9-407f-b0e9-7bb42cf5ef17,d7ea882a-6ef9-407f-b0e9-7bb42cf5ef17,1,0,4522c564-61da-40da-a749-5312121a331d,4522c564-61da-40da-a749-5312121a331d,1,0,9394c709-6cbe-4ef6-bc8c-cba8af65821e,9394c709-6cbe-4ef6-bc8c-cba8af65821e,1,0,2943b572-7411-4f92-a6cc-7ee552b85223,2943b572-7411-4f92-a6cc-7ee552b85223,1,0,28478e7a-e8aa-40aa-866c-a3624f903141,28478e7a-e8aa-40aa-866c-a3624f903141,1,0,f692ab21-a8de-4feb-914f-4beef350543a,f692ab21-a8de-4feb-914f-4beef350543a,1,0,a5663ce2-587d-4255-b30e-6979c909cc05,a5663ce2-587d-4255-b30e-6979c909cc05,1,0,942b3e77-2a66-4879-972d-b5d25a706f9a,942b3e77-2a66-4879-972d-b5d25a706f9a,1,0,49f67edf-49e7-4198-9f9a-7bddf0a89248,49f67edf-49e7-4198-9f9a-7bddf0a89248,1,0,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,1,0,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,1,0,dabb3395-6100-4f53-913d-e0230e81b494,dabb3395-6100-4f53-913d-e0230e81b494,1,0,e0a3fae1-1582-4c7a-acd8-870b558acec4,e0a3fae1-1582-4c7a-acd8-870b558acec4,1,0,4f06c867-6fec-4a4d-a360-6d8e98e4e7a4,4f06c867-6fec-4a4d-a360-6d8e98e4e7a4,1,0,34ee9617-9935-425f-9637-bdffd5a64042,34ee9617-9935-425f-9637-bdffd5a64042,1,0,3e6160f4-eed6-4dd6-a8fb-96c1a90d39be,3e6160f4-eed6-4dd6-a8fb-96c1a90d39be,1,0,778cd9f9-7afd-4eb7-bd4e-90ff7d9cf4f0,778cd9f9-7afd-4eb7-bd4e-90ff7d9cf4f0,1,0,fb8f3edd-bf12-4312-8ffe-7bbd627fa52b,fb8f3edd-bf12-4312-8ffe-7bbd627fa52b,1,0,6ddad5e2-b2c3-47bc-b339-54ccd7391e33,6ddad5e2-b2c3-47bc-b339-54ccd7391e33,1,0,761ca1c1-c843-47a1-bacc-2f9d1d68634d,761ca1c1-c843-47a1-bacc-2f9d1d68634d,1,0,af4a815b-d9d4-4fe6-9b2b-3932381e7346,af4a815b-d9d4-4fe6-9b2b-3932381e7346,1,0,9dbca72a-fb38-4d86-a3ff-83f7edc0fdb4,9dbca72a-fb38-4d86-a3ff-83f7edc0fdb4,1,0,fab77796-a103-40a6-95bd-238979fc345d,fab77796-a103-40a6-95bd-238979fc345d,1,0,6fad175b-eaf0-4e45-aaa1-c1ebc98e0ed0,6fad175b-eaf0-4e45-aaa1-c1ebc98e0ed0,1,0,0ef5e38c-6f7c-46e7-9c14-4fde6814f93f,0ef5e38c-6f7c-46e7-9c14-4fde6814f93f,1,0,f306dafa-350e-4ff9-bfe2-211be647afe8,f306dafa-350e-4ff9-bfe2-211be647afe8,1,0,6d447b01-21ae-4cc1-9262-4ec4ed5e04f5,6d447b01-21ae-4cc1-9262-4ec4ed5e04f5,1,0,dcd64d40-e57f-4cb5-9ccd-67b27ac546d4,dcd64d40-e57f-4cb5-9ccd-67b27ac546d4,1,0,8d0ad48c-6e27-44c2-87f6-62eef78b6427,8d0ad48c-6e27-44c2-87f6-62eef78b6427,1,0,e4fb3b42-60f6-4413-bba8-6e507b13d5d3,e4fb3b42-60f6-4413-bba8-6e507b13d5d3,1,0,a5e3b305-392c-40a2-9b66-7fdc72c041a3,a5e3b305-392c-40a2-9b66-7fdc72c041a3,1,0,266d41c0-92a1-4d42-bf5b-60a1bddb8912,266d41c0-92a1-4d42-bf5b-60a1bddb8912,1,0,1aad9f99-422a-40e8-83da-6e29b8a4e85a,1aad9f99-422a-40e8-83da-6e29b8a4e85a,1,0,d9010dc7-b0de-4079-944d-fbec7ba5997f,d9010dc7-b0de-4079-944d-fbec7ba5997f,1,0,5defd7f7-cc7d-4e7b-83e3-755f8a2514ea,5defd7f7-cc7d-4e7b-83e3-755f8a2514ea,1,0,744ca01b-41b6-4c30-a280-85e44ad456ba,744ca01b-41b6-4c30-a280-85e44ad456ba,1,0,779856af-2c4a-4643-9bea-a04aa24ee488,779856af-2c4a-4643-9bea-a04aa24ee488,1,0,5c6f12f3-7cb6-4b10-9859-7b72bae3fc76,5c6f12f3-7cb6-4b10-9859-7b72bae3fc76,1,0,d00313c8-ee4a-4463-8d5b-7e87e4e14986,d00313c8-ee4a-4463-8d5b-7e87e4e14986,1,0,6db400f2-873a-44a2-9274-2cd7883bfd87,6db400f2-873a-44a2-9274-2cd7883bfd87,1,0,3b925fd2-adb8-451a-8675-7b081fc7c570,3b925fd2-adb8-451a-8675-7b081fc7c570,1,0,70e9e13d-8f87-4a5b-9c80-49d2cff1a290,70e9e13d-8f87-4a5b-9c80-49d2cff1a290,1,0,04b7e8b2-6bc1-49dc-9476-7eadf94b9188,04b7e8b2-6bc1-49dc-9476-7eadf94b9188,1,0,135c86fc-2979-4833-9107-38d749a9f82f,135c86fc-2979-4833-9107-38d749a9f82f,1,0,78288ff9-d838-4970-84bd-9a6b229e6ef0,78288ff9-d838-4970-84bd-9a6b229e6ef0,1,0,8310f927-1123-4b4b-a65e-0ff29be73329,8310f927-1123-4b4b-a65e-0ff29be73329,1,0,80a9df2d-593d-483d-8d69-28b1c08ec648,80a9df2d-593d-483d-8d69-28b1c08ec648,1,0,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,1,0,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,1,0,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,1,0,ecbe625a-55eb-437a-8dee-33fb034d4c0d,ecbe625a-55eb-437a-8dee-33fb034d4c0d,1,0,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,1,0,948b10b3-0d7c-4dca-8816-75eb86e7881b,948b10b3-0d7c-4dca-8816-75eb86e7881b,1,0,9de91b5a-98e4-414b-b650-b669b0159b49,9de91b5a-98e4-414b-b650-b669b0159b49,1,0,3de3948d-40ff-4e0d-8445-9bf49c916161,3de3948d-40ff-4e0d-8445-9bf49c916161,1,0,73a093ea-1927-483b-b6f5-8f0cbd253753,73a093ea-1927-483b-b6f5-8f0cbd253753,1,0,345f04c0-0274-4e79-b523-f1fa3cf0d92a,345f04c0-0274-4e79-b523-f1fa3cf0d92a,1,0,f3a14787-de1b-4b65-8cb1-bc33a785821c,f3a14787-de1b-4b65-8cb1-bc33a785821c,1,0,ec61075e-fbcb-494a-b790-81548a212d2b,ec61075e-fbcb-494a-b790-81548a212d2b,1,0,0c444045-302b-4dbd-a9a3-81fd40004948,0c444045-302b-4dbd-a9a3-81fd40004948,1,0,f9c0862c-34a2-41a3-ae46-b6a8e1ad1b08,f9c0862c-34a2-41a3-ae46-b6a8e1ad1b08,1,0,1528b799-1c0f-4244-85e8-e738b827934a,1528b799-1c0f-4244-85e8-e738b827934a,1,0,45d79e4d-8c2a-432b-abb8-fb9046abea40,45d79e4d-8c2a-432b-abb8-fb9046abea40,1,0,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,1,0,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,1,0,bd0f9ec3-156a-4a6f-a52b-1213ec825bc0,bd0f9ec3-156a-4a6f-a52b-1213ec825bc0,1,0,71e52f63-04db-4336-ace6-b143d0a7d250,71e52f63-04db-4336-ace6-b143d0a7d250,1,0,ab4dbaff-cee6-47b3-9d69-13ac5c906f95,ab4dbaff-cee6-47b3-9d69-13ac5c906f95,1,0,82d5ed02-654f-4b86-b995-baf64a147a12,82d5ed02-654f-4b86-b995-baf64a147a12,1,0,ba96177b-d10c-4ad2-9851-dea312eeafd2,ba96177b-d10c-4ad2-9851-dea312eeafd2,1,0,7652c0d3-1b6e-4e0d-96d0-7bbdff808ce9,7652c0d3-1b6e-4e0d-96d0-7bbdff808ce9,1,0,caa287fe-4f60-4243-a6fe-8b2bd607205f,caa287fe-4f60-4243-a6fe-8b2bd607205f,1,0,ba6e2356-8b0e-4af6-9941-3b808e17c570,ba6e2356-8b0e-4af6-9941-3b808e17c570,1,0,f2f90525-566b-4add-ae3e-cc683dee6209,f2f90525-566b-4add-ae3e-cc683dee6209,1,0,59561ccb-5412-4f8a-8961-3d43639e4742,59561ccb-5412-4f8a-8961-3d43639e4742,1,0,8ce1e84a-9e69-4a75-9c3e-481ba3b5eaae,8ce1e84a-9e69-4a75-9c3e-481ba3b5eaae,1,0,0ec665f2-bbde-4e41-8cd0-2578253ecdf3,0ec665f2-bbde-4e41-8cd0-2578253ecdf3,1,0,e82ab008-d6b9-4f02-b4a5-0c0c57b06988,e82ab008-d6b9-4f02-b4a5-0c0c57b06988,1,0,50d2d02d-b812-4c2b-964a-4c2ded54284f,50d2d02d-b812-4c2b-964a-4c2ded54284f,1,0,5503d2c4-0b5e-4ba1-a26d-2f63628b25c8,5503d2c4-0b5e-4ba1-a26d-2f63628b25c8,1,0,53f519d2-0ee6-4314-a986-2f456722f2ae,53f519d2-0ee6-4314-a986-2f456722f2ae,1,0,c94a168f-e10f-4b09-8a82-7e53c056a643,c94a168f-e10f-4b09-8a82-7e53c056a643,1,0,35f56bf0-bb91-4ff4-ade4-fa06296e68a2,35f56bf0-bb91-4ff4-ade4-fa06296e68a2,1,0,a22ba49d-7a11-4dc7-8b0e-874da6f0874d,a22ba49d-7a11-4dc7-8b0e-874da6f0874d,1,0,888e5183-a152-435f-b105-6b924e0d4f4f,888e5183-a152-435f-b105-6b924e0d4f4f,1,0,f69a29cd-035f-4d16-8bec-150f563691b9,f69a29cd-035f-4d16-8bec-150f563691b9,1,0,6d4e26f4-4cc4-4445-ad7b-547cd0afc750,6d4e26f4-4cc4-4445-ad7b-547cd0afc750,1,0,5736ef36-69eb-4406-a98e-1e4b4227a10d,5736ef36-69eb-4406-a98e-1e4b4227a10d,1,0,0ab0a57c-24c6-4ba8-9be1-5773fd82367e,0ab0a57c-24c6-4ba8-9be1-5773fd82367e,1,0,9964f9e3-613c-479f-8557-742e409da4ab,9964f9e3-613c-479f-8557-742e409da4ab,1,0,ea6d3ce8-cbac-438a-92f1-b246d558fecd,ea6d3ce8-cbac-438a-92f1-b246d558fecd,1,0,84a655d4-49fb-44bb-bdc5-59776046e66b,84a655d4-49fb-44bb-bdc5-59776046e66b,1,0,8d5d9ad3-31a7-4877-b053-64edb7332af4,8d5d9ad3-31a7-4877-b053-64edb7332af4,1,0,3dbcdc42-8583-49e4-9c57-a1b06071be66,3dbcdc42-8583-49e4-9c57-a1b06071be66,1,0,79529e32-4c86-41e3-84ec-17f72b022855,79529e32-4c86-41e3-84ec-17f72b022855,1,0,6ef107de-6385-4448-9ef8-82110452a2b6,6ef107de-6385-4448-9ef8-82110452a2b6,1,0,3ce07fcb-f1a4-41db-891a-547311567ce0,3ce07fcb-f1a4-41db-891a-547311567ce0,1,0,3bcc76a7-f28a-4d28-a95e-af7ac1138993,3bcc76a7-f28a-4d28-a95e-af7ac1138993,1,0,50b4bf05-7810-4068-8be9-0be410d9b9db,50b4bf05-7810-4068-8be9-0be410d9b9db,1,0,f9f021ca-8b3e-4d10-9538-1bce7e851fdd,f9f021ca-8b3e-4d10-9538-1bce7e851fdd,1,0,bb7cf0f8-56b0-4c0d-b206-79051ba83f6d,bb7cf0f8-56b0-4c0d-b206-79051ba83f6d,1,0,ab057ce4-ac51-4465-8aad-eadc9088c62d,ab057ce4-ac51-4465-8aad-eadc9088c62d,1,0,8842c0e3-2e20-4f37-ae7c-f5449004994b,8842c0e3-2e20-4f37-ae7c-f5449004994b,1,0,5b2cc44b-69cb-495c-a26b-003a495df40b,5b2cc44b-69cb-495c-a26b-003a495df40b,1,0,30250d93-10ff-45c9-920b-5fed3f9d8093,30250d93-10ff-45c9-920b-5fed3f9d8093,1,0,fc959221-6313-45d9-b2c4-85befaede226,fc959221-6313-45d9-b2c4-85befaede226,1,0,6ffa8536-7639-4e9a-9f6d-4eda71f5ca3b,6ffa8536-7639-4e9a-9f6d-4eda71f5ca3b,1,0,5206d407-ac91-477e-80e7-97c312da934c,5206d407-ac91-477e-80e7-97c312da934c,1,0,15b53eaa-cb35-4385-9515-c2ec6e1fdb4b,15b53eaa-cb35-4385-9515-c2ec6e1fdb4b,1,0,ccb8a530-260a-4488-b1d9-c67325c69bf4,ccb8a530-260a-4488-b1d9-c67325c69bf4,1,0,c869c1b7-3c04-4e5e-a033-d3f2fb0af03c,c869c1b7-3c04-4e5e-a033-d3f2fb0af03c,1,0,23f93492-59f5-491b-8708-45096934c7e6,23f93492-59f5-491b-8708-45096934c7e6,1,0,30f5471a-17fb-4184-9798-4f8e3ef0cccb,30f5471a-17fb-4184-9798-4f8e3ef0cccb,1,0,27abda4c-a43c-49b4-90cd-db780afe0c45,27abda4c-a43c-49b4-90cd-db780afe0c45,1,0,450a36cb-9bc1-4c5b-ae21-0e023f3eb951,450a36cb-9bc1-4c5b-ae21-0e023f3eb951,1,0,1a28db16-d410-4101-bf31-21cefa880dae,1a28db16-d410-4101-bf31-21cefa880dae,1,0,2b85bcf6-85b0-4efb-bada-b65414a8d264,2b85bcf6-85b0-4efb-bada-b65414a8d264,1,0,cf027de4-59c9-4b8f-9695-b1d4d16548fe,cf027de4-59c9-4b8f-9695-b1d4d16548fe,1,0,d33ceaee-a374-40a3-9406-cbcbf82fd8ae,d33ceaee-a374-40a3-9406-cbcbf82fd8ae,1,0,0b13cad5-91ae-4cd1-a620-9a315ae8024c,0b13cad5-91ae-4cd1-a620-9a315ae8024c,1,0,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,1,0,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,1,0,81dd61e5-fe02-4272-a525-affda9b606ca,81dd61e5-fe02-4272-a525-affda9b606ca,1,0,8de7b423-b7d1-46fe-b1dc-fb936736b864,8de7b423-b7d1-46fe-b1dc-fb936736b864,1,0,f565876c-0326-4b12-895e-c248b9e64115,f565876c-0326-4b12-895e-c248b9e64115,1,0,62f075c5-1ad0-4a29-9f40-567b9fa70cdf,62f075c5-1ad0-4a29-9f40-567b9fa70cdf,1,0,88cefe4a-a6c5-4753-935e-f956d9de9f77,88cefe4a-a6c5-4753-935e-f956d9de9f77,1,0,882e78b7-90bd-4b95-8852-146bdb51ec15,882e78b7-90bd-4b95-8852-146bdb51ec15,1,0,ae4435c3-62c0-4f08-b526-7f9571eed8ae,ae4435c3-62c0-4f08-b526-7f9571eed8ae,1,0,91a1bd81-e6fa-476c-85e6-317a91f6c8bc,91a1bd81-e6fa-476c-85e6-317a91f6c8bc,1,0,f799e1d1-bb78-4a7a-bb1a-d79ba29acd0c,f799e1d1-bb78-4a7a-bb1a-d79ba29acd0c,1,0,c7b46558-d688-4c42-ae52-f98de7923176,c7b46558-d688-4c42-ae52-f98de7923176,1,0,31fdbb46-1df1-4b74-a54e-b922260dcca6,31fdbb46-1df1-4b74-a54e-b922260dcca6,1,0,ee494dc9-549b-4595-97d1-ca73bacff954,ee494dc9-549b-4595-97d1-ca73bacff954,1,0,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,1,0,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,1,0,47a24216-3299-470b-a18c-d8c1258fff24,47a24216-3299-470b-a18c-d8c1258fff24,1,0,72dcfd46-491e-4f88-a0ea-57919f8fbdea,72dcfd46-491e-4f88-a0ea-57919f8fbdea,1,0,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,1,0,8317ac49-890d-4921-8c0d-1bfc676f0b40,8317ac49-890d-4921-8c0d-1bfc676f0b40,1,0,f9161bc3-9a1c-4870-8681-8e97d8ce838a,f9161bc3-9a1c-4870-8681-8e97d8ce838a,1,0,5e53ccc6-5ab4-4f9d-b524-0081d345d7a2,5e53ccc6-5ab4-4f9d-b524-0081d345d7a2,1,0,c3b3805b-3501-47a7-b280-46180049b235,c3b3805b-3501-47a7-b280-46180049b235,1,0,29af05c2-37de-495b-b3cf-477d452abe5e,29af05c2-37de-495b-b3cf-477d452abe5e,1,0,0c732569-a50f-4be3-a214-0843c6a3da47,0c732569-a50f-4be3-a214-0843c6a3da47,1,0,f55d74bf-5824-4228-9683-31f7c7fdf74d,f55d74bf-5824-4228-9683-31f7c7fdf74d,1,0,5e922083-0ceb-449a-8201-7dd27a46f2fc,5e922083-0ceb-449a-8201-7dd27a46f2fc,1,0,0d142fcd-a596-4cdf-a3f6-c31becdb7b59,0d142fcd-a596-4cdf-a3f6-c31becdb7b59,1,0,c30c6860-befb-497e-b432-3dba0f86c540,c30c6860-befb-497e-b432-3dba0f86c540,1,0,d97e78c7-f2c1-4e0e-9c9b-d2dd6a94da22,d97e78c7-f2c1-4e0e-9c9b-d2dd6a94da22,1,0,e757303e-c61a-4e42-9829-c5a36dba9414,e757303e-c61a-4e42-9829-c5a36dba9414,1,0,cb3bb725-ed7a-4cde-a0ac-26a0b168c0ea,cb3bb725-ed7a-4cde-a0ac-26a0b168c0ea,1,0,977748b7-13d3-41ef-8206-82595ed8fc0c,977748b7-13d3-41ef-8206-82595ed8fc0c,1,0,091de87c-0801-4bd3-aaaa-ed37bc4cd161,091de87c-0801-4bd3-aaaa-ed37bc4cd161,1,0,9a6bfcbe-6ac7-4839-bfb9-a11b97e64185,9a6bfcbe-6ac7-4839-bfb9-a11b97e64185,1,0,b53c545c-3b1c-4315-a213-4f2b2c7128aa,b53c545c-3b1c-4315-a213-4f2b2c7128aa,1,0,02a84df9-2171-43e6-8135-a74edd384826,02a84df9-2171-43e6-8135-a74edd384826,1,0,ff36356d-cb1d-4316-896a-c6ae83b92437,ff36356d-cb1d-4316-896a-c6ae83b92437,1,0,465cce6a-7064-4b0a-932c-40f842042f33,465cce6a-7064-4b0a-932c-40f842042f33,1,0,f9cd82e7-8252-4bb6-8e08-23ab45ed3976,f9cd82e7-8252-4bb6-8e08-23ab45ed3976,1,0,e67dff00-92e2-4f58-a950-d5bbca9291c5,e67dff00-92e2-4f58-a950-d5bbca9291c5,1,0,e1964724-804a-4ecc-be9e-5b84e58f2b84,e1964724-804a-4ecc-be9e-5b84e58f2b84,1,0,46e961c2-cd45-4d76-a6ad-c1d5c8dc95cc,46e961c2-cd45-4d76-a6ad-c1d5c8dc95cc,1,0,bf3cb513-2856-472b-8713-7bf8ba70cdce,bf3cb513-2856-472b-8713-7bf8ba70cdce,1,0,de4815c8-0853-47e0-862b-b60119c674f6,de4815c8-0853-47e0-862b-b60119c674f6,1,0,dbe02a79-3179-42bb-a8e8-dd9bf3ff705c,dbe02a79-3179-42bb-a8e8-dd9bf3ff705c,1,0,8f17ec3f-6d62-46b8-baef-b20430e948ce,8f17ec3f-6d62-46b8-baef-b20430e948ce,1,0,ea1298d0-9396-4a50-b83e-24064e8dd99d,ea1298d0-9396-4a50-b83e-24064e8dd99d,1,0,038dbb00-e4c6-4e64-b861-3a0764f54ab3,038dbb00-e4c6-4e64-b861-3a0764f54ab3,1,0,1c291f7d-a493-4297-8aaa-912896800066,1c291f7d-a493-4297-8aaa-912896800066,1,0,69149801-a825-4ed2-b077-c26660dff271,69149801-a825-4ed2-b077-c26660dff271,1,0,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,1,0,518ab687-b84a-40c8-8547-aee4257c1b71,518ab687-b84a-40c8-8547-aee4257c1b71,1,0,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,1,0,7732ef07-16eb-46a0-9645-7de95c5482af,7732ef07-16eb-46a0-9645-7de95c5482af,1,0,75dac536-b316-4b04-a57b-03656c678bec,75dac536-b316-4b04-a57b-03656c678bec,1,0,a07d6c85-159d-4d09-b117-561a1e20329f,a07d6c85-159d-4d09-b117-561a1e20329f,1,0,8a2f9733-4f83-41f2-9d74-dca7161a4b41,8a2f9733-4f83-41f2-9d74-dca7161a4b41,1,0,fbd2d900-1e0d-48f3-9793-0186ee49915c,fbd2d900-1e0d-48f3-9793-0186ee49915c,1,0,436b558e-6547-4ba6-8cee-954fe36743ea,436b558e-6547-4ba6-8cee-954fe36743ea,1,0,6120bb6e-b177-48bf-b467-02bab0d4cc0d,6120bb6e-b177-48bf-b467-02bab0d4cc0d,1,0,a5af4715-6c4f-484b-9599-5b1b9147713f,a5af4715-6c4f-484b-9599-5b1b9147713f,1,0,307b6e66-6fef-4777-b20a-37898928932f,307b6e66-6fef-4777-b20a-37898928932f,1,0,a69494c0-dcce-4359-aa82-c1cfae8a43eb,a69494c0-dcce-4359-aa82-c1cfae8a43eb,1,0,2b243d49-5500-403a-b177-ac1c70bb889d,2b243d49-5500-403a-b177-ac1c70bb889d,1,0,51c040c6-e7a4-4e0e-b479-039636fdb6ec,51c040c6-e7a4-4e0e-b479-039636fdb6ec,1,0,8ede4c18-ebf0-4c39-9e82-c59df8d62ca7,8ede4c18-ebf0-4c39-9e82-c59df8d62ca7,1,0,b2c200a7-b9cc-4d84-b839-e69f2a14a8f5,b2c200a7-b9cc-4d84-b839-e69f2a14a8f5,1,0,8a50e7f2-97a9-4ed8-a46f-6413f7fcf8cd,8a50e7f2-97a9-4ed8-a46f-6413f7fcf8cd,1,0,4a69a70d-1b4c-4999-a3dd-ae1deb331fea,4a69a70d-1b4c-4999-a3dd-ae1deb331fea,1,0,3a36e0f5-a645-47f1-99ae-5b0493d604ad,3a36e0f5-a645-47f1-99ae-5b0493d604ad,1,0,57f762f7-b8e4-498b-a3dc-3d40c94855ec,57f762f7-b8e4-498b-a3dc-3d40c94855ec,1,0,ca7d4086-de35-40fd-af65-73369d452135,ca7d4086-de35-40fd-af65-73369d452135,1,0,563c0f5c-e0b4-4229-a3f6-183091060aa4,563c0f5c-e0b4-4229-a3f6-183091060aa4,1,0,bf967588-ea8f-49a3-9331-af2331ffa162,bf967588-ea8f-49a3-9331-af2331ffa162,1,0,d59c2725-5d98-495e-9f86-f5d38dbfad90,d59c2725-5d98-495e-9f86-f5d38dbfad90,1,0,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,1,0,0ba68198-983d-409b-be27-96f1572b3f12,0ba68198-983d-409b-be27-96f1572b3f12,1,0,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,1,0,decb27a8-7dd3-4601-a694-30429e638b39,decb27a8-7dd3-4601-a694-30429e638b39,1,0,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,1,0,d7a128e4-f31f-4b09-8424-e816ab59d5c3,d7a128e4-f31f-4b09-8424-e816ab59d5c3,1,0,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,1,0,aa9513b4-f575-4030-a7f9-ac09aa319e98,aa9513b4-f575-4030-a7f9-ac09aa319e98,1,0,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,1,0,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,1,0,d03f66b1-48a3-434b-bb58-9fd53c183514,d03f66b1-48a3-434b-bb58-9fd53c183514,1,0,a469e55e-d7ca-4c27-b350-fafe7364c18f,a469e55e-d7ca-4c27-b350-fafe7364c18f,1,0,b4dde44e-57d5-4c3a-bb9b-643787ce07b0,b4dde44e-57d5-4c3a-bb9b-643787ce07b0,1,0,d2160866-78ca-424a-92b9-d389fb341ee0,d2160866-78ca-424a-92b9-d389fb341ee0,1,0,73b36823-72a4-4286-8ee2-02b2f086d5ea,73b36823-72a4-4286-8ee2-02b2f086d5ea,1,0,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,1,0,4378ab20-5467-476b-8f04-4b6876efdee6,4378ab20-5467-476b-8f04-4b6876efdee6,1,0,55e47901-c79c-41c5-9d7f-6b6846ed2782,55e47901-c79c-41c5-9d7f-6b6846ed2782,1,0,c013a650-bd4b-4e14-97cc-05df17dbb0d5,c013a650-bd4b-4e14-97cc-05df17dbb0d5,1,0,00bc2e99-c7c9-4a4b-b0bc-c9babe17deda,00bc2e99-c7c9-4a4b-b0bc-c9babe17deda,1,0,90a7425e-3fc9-41ec-9373-f410936e1b53,90a7425e-3fc9-41ec-9373-f410936e1b53,1,0,509cdfc8-fad3-4628-869c-6c03d9519d69,509cdfc8-fad3-4628-869c-6c03d9519d69,1,0,c69f8196-5d7e-4ca9-a84e-c85d9ecf8777,c69f8196-5d7e-4ca9-a84e-c85d9ecf8777,1,0,663cf316-3077-4fac-b821-94bd5cdde65c,663cf316-3077-4fac-b821-94bd5cdde65c,1,0,4b37d2c0-4181-4c47-951c-987017972bf7,4b37d2c0-4181-4c47-951c-987017972bf7,1,0,8ae35de6-c7f0-4839-bc27-cc8619e30a43,8ae35de6-c7f0-4839-bc27-cc8619e30a43,1,0,9ef01e37-030a-44b7-824b-110e0f5a88f3,9ef01e37-030a-44b7-824b-110e0f5a88f3,1,0,98bf409f-de8d-4306-b290-716b006e6fd8,98bf409f-de8d-4306-b290-716b006e6fd8,1,0,c15f648b-3aed-4734-bcd2-524e2d3336c0,c15f648b-3aed-4734-bcd2-524e2d3336c0,1,0,600ac5b6-d3ac-4262-820d-5a989fa7f44d,600ac5b6-d3ac-4262-820d-5a989fa7f44d,1,0,3c671c62-5614-4c1b-a823-ac4922c9daf7,3c671c62-5614-4c1b-a823-ac4922c9daf7,1,0,c347e3a2-d6d9-46a0-971f-ec56a45dcbe8,c347e3a2-d6d9-46a0-971f-ec56a45dcbe8,1,0,455c94b6-6b10-405f-a198-f680c7ad5ffe,455c94b6-6b10-405f-a198-f680c7ad5ffe,1,0,d16a63b9-2b84-447e-9c32-1d8f7c4c5a11,d16a63b9-2b84-447e-9c32-1d8f7c4c5a11,1,0,48cc3006-9f06-4be1-aec4-5c04308200d5,48cc3006-9f06-4be1-aec4-5c04308200d5,1,0,bae8ba70-a19e-41fa-b11c-6513453bd3ac,bae8ba70-a19e-41fa-b11c-6513453bd3ac,1,0,f4a9a13e-91b0-4440-8662-25acf099220e,f4a9a13e-91b0-4440-8662-25acf099220e,1,0,ff87a40b-07da-4951-b469-a75d418e88b3,ff87a40b-07da-4951-b469-a75d418e88b3,1,0,708b4656-7d14-491f-95b5-8fe3f0d6d44b,708b4656-7d14-491f-95b5-8fe3f0d6d44b,1,0,331db59d-ef90-4255-89c2-d7fdd6bc5c4c,331db59d-ef90-4255-89c2-d7fdd6bc5c4c,1,0,e520fbbb-3521-4707-bbe7-c8ead04fb2dc,e520fbbb-3521-4707-bbe7-c8ead04fb2dc,1,0,a87faa63-4e1c-440c-b852-0e4e1485a047,a87faa63-4e1c-440c-b852-0e4e1485a047,1,0,36244ad9-5b3a-431e-9dbf-b05ee9da1188,36244ad9-5b3a-431e-9dbf-b05ee9da1188,1,0,6cf7fd67-e426-4fe3-a49d-fbcfae5fb52d,6cf7fd67-e426-4fe3-a49d-fbcfae5fb52d,1,0,92c4d60b-22df-4fef-a5b9-a97bc63b4858,92c4d60b-22df-4fef-a5b9-a97bc63b4858,1,0,8264b98b-7eec-4651-96fc-02620c87f274,8264b98b-7eec-4651-96fc-02620c87f274,1,0,bcd6e5f0-a800-4f21-ad75-24c428157cee,bcd6e5f0-a800-4f21-ad75-24c428157cee,1,0,9f351f0a-2d43-4215-8d74-040911230683,9f351f0a-2d43-4215-8d74-040911230683,1,0,6a9c1bd4-b550-4911-a8d1-321a7713a5a5,6a9c1bd4-b550-4911-a8d1-321a7713a5a5,1,0,019fa716-e91a-4116-abcf-c87349c153a4,019fa716-e91a-4116-abcf-c87349c153a4,1,0,f9fed640-0121-4c36-a822-0db7a9155adc,f9fed640-0121-4c36-a822-0db7a9155adc,1,0,e418d7c4-7322-41b1-a8df-d86a11f7711c,e418d7c4-7322-41b1-a8df-d86a11f7711c,1,0,3fcdfe26-1668-4aa7-bb10-ef8d8bd0ae39,3fcdfe26-1668-4aa7-bb10-ef8d8bd0ae39,1,0,a0ebcc8a-267b-4f95-a986-46db8fb5df4d,a0ebcc8a-267b-4f95-a986-46db8fb5df4d,1,0,9c890915-1ae3-457e-8a3d-7b39f181304b,9c890915-1ae3-457e-8a3d-7b39f181304b,1,0,3ad5d8a7-3071-46aa-aebf-306bdb67983b,3ad5d8a7-3071-46aa-aebf-306bdb67983b,1,0,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,1,0,cb954476-c551-4a06-9bcd-18d67ba47dc8,cb954476-c551-4a06-9bcd-18d67ba47dc8,1,0,79201015-bfae-463e-81f1-0ae2d3066f3f,79201015-bfae-463e-81f1-0ae2d3066f3f,1,0,bed8af4e-fa3a-4b25-ba6e-5b7b4a6cd363,bed8af4e-fa3a-4b25-ba6e-5b7b4a6cd363,1,0,951927d4-7bfc-4edb-b97f-dcc29a937400,951927d4-7bfc-4edb-b97f-dcc29a937400,1,0,71309e88-d514-40f3-a329-b2a420e75504,71309e88-d514-40f3-a329-b2a420e75504,1,0,1ea3178b-73dd-4063-9140-c61687a4b1b8,1ea3178b-73dd-4063-9140-c61687a4b1b8,1,0,85fd7ef4-2886-4e2c-a6eb-63d0b0b9cd55,85fd7ef4-2886-4e2c-a6eb-63d0b0b9cd55,1,0,696723be-7b4f-4321-956e-eff07ea9f5fa,696723be-7b4f-4321-956e-eff07ea9f5fa,1,0,616c27dc-5c59-4469-97a7-27e0752bd3a7,616c27dc-5c59-4469-97a7-27e0752bd3a7,1,0,f7323121-74bc-441c-a3e9-dd5cb4f0accd,f7323121-74bc-441c-a3e9-dd5cb4f0accd,1,0,5225b4da-431e-469d-a30c-31fa434b7e86,5225b4da-431e-469d-a30c-31fa434b7e86,1,0,68dcbdd5-c1fd-472f-873c-359d3a237b8c,68dcbdd5-c1fd-472f-873c-359d3a237b8c,1,0,3c6e831c-c934-46bb-8040-edd6de81ba1b,3c6e831c-c934-46bb-8040-edd6de81ba1b,1,0,3c737aff-9581-409a-9a6e-d5e3c133d8df,3c737aff-9581-409a-9a6e-d5e3c133d8df,1,0,916a9ea9-309d-4a7a-9ded-63bda01a39d4,916a9ea9-309d-4a7a-9ded-63bda01a39d4,1,0,2197147c-f67c-4e92-9e69-2c9900144e82,2197147c-f67c-4e92-9e69-2c9900144e82,1,0,7692e2fd-9ab5-45ee-9a4c-380107769ef7,7692e2fd-9ab5-45ee-9a4c-380107769ef7,1,0,6586260a-3abd-4283-b710-bc2ae3b965d8,6586260a-3abd-4283-b710-bc2ae3b965d8,1,0,2af20999-4b9a-44c7-9edf-40446e083796,2af20999-4b9a-44c7-9edf-40446e083796,1,0,100acfa0-d5f3-4a20-8a05-9d9d00aff2c9,100acfa0-d5f3-4a20-8a05-9d9d00aff2c9,1,0,ccdaa099-3739-4731-b028-3cb4e75834a5,ccdaa099-3739-4731-b028-3cb4e75834a5,1,0,ee07ebbe-b34d-4c42-a4b4-d5e14ef4c103,ee07ebbe-b34d-4c42-a4b4-d5e14ef4c103,1,0,1d44bf7e-3dc9-4ca4-86c8-bdabdb5650b8,1d44bf7e-3dc9-4ca4-86c8-bdabdb5650b8,1,0,d4757882-e0bd-4f54-962b-32d49c90fb60,d4757882-e0bd-4f54-962b-32d49c90fb60,1,0,6e650778-3ddd-44ca-bd7f-ffa5e8f4cce4,6e650778-3ddd-44ca-bd7f-ffa5e8f4cce4,1,0,ec81b967-a4a1-48ac-beda-cdc00f1222a0,ec81b967-a4a1-48ac-beda-cdc00f1222a0,1,0,0040f7b0-3499-41bd-94bf-d63679d9d9c1,0040f7b0-3499-41bd-94bf-d63679d9d9c1,1,0,e5c31a93-cda7-4972-a13b-8cb864cc40ed,e5c31a93-cda7-4972-a13b-8cb864cc40ed,1,0,e2a5f14f-9b64-4d1c-9c66-332ea0157cc2,e2a5f14f-9b64-4d1c-9c66-332ea0157cc2,1,0,0fdbd1ab-716d-46b5-aa75-fb09812ced5b,0fdbd1ab-716d-46b5-aa75-fb09812ced5b,1,0,b26ab92b-9739-4eb4-b855-be6850274432,b26ab92b-9739-4eb4-b855-be6850274432,1,0,17944416-85a5-49e4-9fa8-652c671c3df0,17944416-85a5-49e4-9fa8-652c671c3df0,1,0,b7936cda-654e-4707-af76-385a63243cdf,b7936cda-654e-4707-af76-385a63243cdf,1,0,192844c3-7cb9-4477-a4af-0edb8ce5129d,192844c3-7cb9-4477-a4af-0edb8ce5129d,1,0,33324481-55d1-475f-9f12-7542a05429a2,33324481-55d1-475f-9f12-7542a05429a2,1,0,07b7591f-dcfc-483f-85f6-b5a08d952fe2,07b7591f-dcfc-483f-85f6-b5a08d952fe2,1,0,866c418f-332e-415a-bb8e-794d38f15080,866c418f-332e-415a-bb8e-794d38f15080,1,0,a34b8fdc-e756-4065-b68a-12a07fa7c40e,a34b8fdc-e756-4065-b68a-12a07fa7c40e,1,0,b853debb-d715-4296-9070-45cc5dae571d,b853debb-d715-4296-9070-45cc5dae571d,1,0,fc406b50-f267-44b8-a833-ba7e8880903e,fc406b50-f267-44b8-a833-ba7e8880903e,1,0,6517bf8b-d2fd-4b6b-a4a5-b3086ebad8de,6517bf8b-d2fd-4b6b-a4a5-b3086ebad8de,1,0,391a1891-85a2-45b8-a747-3ecd705fc75b,391a1891-85a2-45b8-a747-3ecd705fc75b,1,0,05681509-254d-4232-af69-62a63ed05716,05681509-254d-4232-af69-62a63ed05716,1,0,cc815221-3d2a-4ea3-b1e6-6cb9fb410bd9,cc815221-3d2a-4ea3-b1e6-6cb9fb410bd9,1,0,b9ef62f6-9b1d-4d13-8016-73ed531d195a,b9ef62f6-9b1d-4d13-8016-73ed531d195a,1,0,742ed6d8-0f8d-4569-b30f-9ff3804cc3b7,742ed6d8-0f8d-4569-b30f-9ff3804cc3b7,1,0,229fe764-87f5-4d19-b042-c31fef5cddd6,229fe764-87f5-4d19-b042-c31fef5cddd6,1,0,74cd7504-d34f-42ff-90ff-7abcd54e8b6c,74cd7504-d34f-42ff-90ff-7abcd54e8b6c,1,0,e932800c-fd81-417d-a601-c774b888d66a,e932800c-fd81-417d-a601-c774b888d66a,1,0,a2335b6f-1dbb-4722-979b-8bed83aa8c94,a2335b6f-1dbb-4722-979b-8bed83aa8c94,1,0,211cf921-d880-4f74-b8ee-5312dea28613,211cf921-d880-4f74-b8ee-5312dea28613,1,0,2fd3a396-b8ae-409e-9373-02a039393a80,2fd3a396-b8ae-409e-9373-02a039393a80,1,0,61ae74be-64b2-4bf2-aa63-8fe3dc7ed47d,61ae74be-64b2-4bf2-aa63-8fe3dc7ed47d,1,0,346ef414-b20b-4095-86fe-18ca21c9887f,346ef414-b20b-4095-86fe-18ca21c9887f,1,0,c01ab97b-4964-4f7d-b749-56c0b94feb93,c01ab97b-4964-4f7d-b749-56c0b94feb93,1,0,0cc63813-cf16-4a99-b3bd-18a773091230,0cc63813-cf16-4a99-b3bd-18a773091230,1,0,4fc00971-c980-468a-9690-5cd520d12eb0,4fc00971-c980-468a-9690-5cd520d12eb0,1,0,85972c27-4f39-4982-9307-7877e87ef87b,85972c27-4f39-4982-9307-7877e87ef87b,1,0,96afdffb-7595-4c49-9e86-8296f50bd2f5,96afdffb-7595-4c49-9e86-8296f50bd2f5,1,0,823d5b5e-e9bf-40f0-9dcd-579bb53847bb,823d5b5e-e9bf-40f0-9dcd-579bb53847bb,1,0,e125d3e0-950f-42ee-8904-bd26091afa55,e125d3e0-950f-42ee-8904-bd26091afa55,1,0,2b4797a5-074a-4a01-b99f-1c5590cfde40,2b4797a5-074a-4a01-b99f-1c5590cfde40,1,0,718e53d2-24ec-40fb-9def-825441ada46c,718e53d2-24ec-40fb-9def-825441ada46c,1,0,4c0a7fd6-8f09-41d6-949f-65ce708c1256,4c0a7fd6-8f09-41d6-949f-65ce708c1256,1,0,792abc06-b52a-4691-ba92-96ed73ca702a,792abc06-b52a-4691-ba92-96ed73ca702a,1,0,148dbe44-86d1-4362-b9db-8ff68cd2b34d,148dbe44-86d1-4362-b9db-8ff68cd2b34d,1,0,1fbc893e-3000-4fac-88f5-c82251835d65,1fbc893e-3000-4fac-88f5-c82251835d65,1,0,05852816-63ec-4179-abca-66372bbfb04c,05852816-63ec-4179-abca-66372bbfb04c,1,0,0165f721-b011-4524-bfd5-81e35092f2be,0165f721-b011-4524-bfd5-81e35092f2be,1,0,e74925d4-1979-4600-8560-0932d26450ad,e74925d4-1979-4600-8560-0932d26450ad,1,0,aa108131-151d-4356-8a24-345e4ec74281,aa108131-151d-4356-8a24-345e4ec74281,1,0,284b77a8-d9f4-44c4-a2dc-91c1f8bd5808,284b77a8-d9f4-44c4-a2dc-91c1f8bd5808,1,0,e3251f1a-3c80-4c86-9960-270920bd512f,e3251f1a-3c80-4c86-9960-270920bd512f,1,0,3c3d5474-977b-4df9-88de-042e997bd10d,3c3d5474-977b-4df9-88de-042e997bd10d,1,0,4b88d172-5a44-4011-bb38-e94bf7a9c879,4b88d172-5a44-4011-bb38-e94bf7a9c879,1,0,3bced2d4-e3d7-4489-a26d-f84620b096f4,3bced2d4-e3d7-4489-a26d-f84620b096f4,1,0,e8c048fc-0f39-4778-aaf3-d6bff5acb06a,e8c048fc-0f39-4778-aaf3-d6bff5acb06a,1,0,c7efb89b-f9e5-4b58-b7a0-502cea8cf1d4,c7efb89b-f9e5-4b58-b7a0-502cea8cf1d4,1,0,cd133f15-aa45-4ec9-93c2-2f0f66baf3f3,cd133f15-aa45-4ec9-93c2-2f0f66baf3f3,1,0,18436045-1008-4114-8032-274fea0f4627,18436045-1008-4114-8032-274fea0f4627,1,0,cad93727-cffb-44a6-aaee-be73a078e802,cad93727-cffb-44a6-aaee-be73a078e802,1,0,c034f410-ff8e-45d7-925f-94448f88a7af,c034f410-ff8e-45d7-925f-94448f88a7af,1,0,0027727b-3917-4010-9953-1649266e8ed7,0027727b-3917-4010-9953-1649266e8ed7,1,0,b088786a-046f-458c-8e7a-5bebf8df8b34,b088786a-046f-458c-8e7a-5bebf8df8b34,1,0,6d015113-1e32-4f5e-aacd-8134d7307125,6d015113-1e32-4f5e-aacd-8134d7307125,1,0,58230238-d2f2-422e-90cb-de355996eb19,58230238-d2f2-422e-90cb-de355996eb19,1,0,3d907678-628d-4fb2-85c2-149839024c08,3d907678-628d-4fb2-85c2-149839024c08,1,0,71384d10-6acf-4139-b766-cb8b5796f1a7,71384d10-6acf-4139-b766-cb8b5796f1a7,1,0,a8f149d7-e9bc-4695-b4f4-88434e31aafb,a8f149d7-e9bc-4695-b4f4-88434e31aafb,1,0,10dcbcc6-7793-4da7-a9a5-e4f124209d3e,10dcbcc6-7793-4da7-a9a5-e4f124209d3e,1,0,11ba510f-cb57-43d0-9897-c49e10b67ccd,11ba510f-cb57-43d0-9897-c49e10b67ccd,1,0,9d92af67-c88d-4429-9e85-0b5bf04c4b79,9d92af67-c88d-4429-9e85-0b5bf04c4b79,1,0,b009bc99-ea12-46db-a7f8-cb3e285b20d0,b009bc99-ea12-46db-a7f8-cb3e285b20d0,1,0,43523bbb-c923-4a20-bcb5-50d30cc826ee,43523bbb-c923-4a20-bcb5-50d30cc826ee,1,0,c89d9aad-3364-45df-88b5-b23ae76edbba,c89d9aad-3364-45df-88b5-b23ae76edbba,1,0,9a2f2cd1-4c9f-460b-b3b7-64706a0164ab,9a2f2cd1-4c9f-460b-b3b7-64706a0164ab,1,0,7e4b9dce-e332-4d35-8b5f-d3f88918989d,7e4b9dce-e332-4d35-8b5f-d3f88918989d,1,0,15cd04c9-c12a-44ea-a397-d2adbac99c5b,15cd04c9-c12a-44ea-a397-d2adbac99c5b,1,0,182f92f5-0a8e-4f6a-9f9e-7878fafd0a2a,182f92f5-0a8e-4f6a-9f9e-7878fafd0a2a,1,0,45ca26ef-2a9f-4f24-a81b-2fe10c02ed9f,45ca26ef-2a9f-4f24-a81b-2fe10c02ed9f,1,0,56aa4b2f-5b7e-457d-a59d-837405f17fde,56aa4b2f-5b7e-457d-a59d-837405f17fde,1,0,819e2442-cb5a-4826-8a66-b34a3270e8e0,819e2442-cb5a-4826-8a66-b34a3270e8e0,1,0,49987536-3ab9-4a68-83a2-5dc3cd5d58fb,49987536-3ab9-4a68-83a2-5dc3cd5d58fb,1,0,8e4eec45-6ad3-4ac8-940a-b3130f504685,8e4eec45-6ad3-4ac8-940a-b3130f504685,1,0,ccdfef4b-a022-4bde-9c6c-84129b2bad65,ccdfef4b-a022-4bde-9c6c-84129b2bad65,1,0,95adcac2-bc88-46bc-aae5-d13cfb9a170c,95adcac2-bc88-46bc-aae5-d13cfb9a170c,1,0,d845ca4c-3af2-4322-8565-64f3aee61e3a,d845ca4c-3af2-4322-8565-64f3aee61e3a,1,0,430cf66c-5cfc-4fd4-bbf3-d9df6070e115,430cf66c-5cfc-4fd4-bbf3-d9df6070e115,1,0,6321fc1e-c1d7-4b49-b730-258857b2d936,6321fc1e-c1d7-4b49-b730-258857b2d936,1,0,f48abfe8-e400-4544-a80a-d1cb0b7d3ea8,f48abfe8-e400-4544-a80a-d1cb0b7d3ea8,1,0,ce40016b-7ca7-4803-81fa-5df0b92dbc54,ce40016b-7ca7-4803-81fa-5df0b92dbc54,1,0,b58b711b-8e9a-44a0-b62d-6b6362177a4b,b58b711b-8e9a-44a0-b62d-6b6362177a4b,1,0,f7c0af11-1b64-4504-a8db-0fd09c2ce20f,f7c0af11-1b64-4504-a8db-0fd09c2ce20f,1,0,b3c7cd75-fb40-4121-a727-d557fe66a5e0,b3c7cd75-fb40-4121-a727-d557fe66a5e0,1,0,38be384a-3abb-4f4d-b8b7-164c2c8d8b28,38be384a-3abb-4f4d-b8b7-164c2c8d8b28,1,0,8c697e44-1a1d-4c4a-b141-5254cfb229a5,8c697e44-1a1d-4c4a-b141-5254cfb229a5,1,0,96fe619a-b819-4f96-9788-e1f4ef57833a,96fe619a-b819-4f96-9788-e1f4ef57833a,1,0,94dff2da-f721-411a-9fc0-5d013b685dcc,94dff2da-f721-411a-9fc0-5d013b685dcc,1,0,9343fc5f-7b08-4be5-8cd5-dbed635b819d,9343fc5f-7b08-4be5-8cd5-dbed635b819d,1,0,99e87e66-1b07-451b-a476-f5213cbd7150,99e87e66-1b07-451b-a476-f5213cbd7150,1,0,c3317f75-f6ad-41f6-97f1-77074c3ff62a,c3317f75-f6ad-41f6-97f1-77074c3ff62a,1,0,8800dec9-84f8-4643-8742-1d76fe575f58,8800dec9-84f8-4643-8742-1d76fe575f58,1,0,62903794-3b41-4d21-b800-1c26dbeda3ce,62903794-3b41-4d21-b800-1c26dbeda3ce,1,0,9bda4a0b-e8a7-4acf-9f07-4033b3a84ebc,9bda4a0b-e8a7-4acf-9f07-4033b3a84ebc,1,0,4ba2e55e-29bc-4fbe-83e8-8bfa36abfdab,4ba2e55e-29bc-4fbe-83e8-8bfa36abfdab,1,0,93de88de-0069-4aa8-96b2-d5709e4def2f,93de88de-0069-4aa8-96b2-d5709e4def2f,1,0,9f94fadf-ac9d-4e57-9fe4-41ce8cfbec6a,9f94fadf-ac9d-4e57-9fe4-41ce8cfbec6a,1,0,12d4ffc8-592e-42a7-b8c6-20bd58f6da90,12d4ffc8-592e-42a7-b8c6-20bd58f6da90,1,0,3a8d9010-8785-4d8d-b908-b821d7d681c9,3a8d9010-8785-4d8d-b908-b821d7d681c9,1,0,2568a935-ea49-4b99-aa9c-de27de6a0e81,2568a935-ea49-4b99-aa9c-de27de6a0e81,1,0,de2bdd4f-93f2-4341-86d6-7082fc286a5c,de2bdd4f-93f2-4341-86d6-7082fc286a5c,1,0,ba96ec0e-931e-45be-a782-e68ba4fedddb,ba96ec0e-931e-45be-a782-e68ba4fedddb,1,0,9af5882f-3a42-4fae-83df-6aa8de577112,9af5882f-3a42-4fae-83df-6aa8de577112,1,0,79bc5e39-3017-48bf-8e42-fa34e8b581ef,79bc5e39-3017-48bf-8e42-fa34e8b581ef,1,0,fe6e207f-d306-4470-8441-ffd3f3710d31,fe6e207f-d306-4470-8441-ffd3f3710d31,1,0,7451af80-7387-4e8d-a3da-2ae0540c3fd4,7451af80-7387-4e8d-a3da-2ae0540c3fd4,1,0,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,1,0,df459525-4e4d-4819-b996-5a6379b22a88,df459525-4e4d-4819-b996-5a6379b22a88,1,0,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,1,0,e67b4a32-4bac-450e-be6d-88c262383f31,e67b4a32-4bac-450e-be6d-88c262383f31,1,0,8b83bb54-4c23-4bd8-bd00-374a7a101cfa,8b83bb54-4c23-4bd8-bd00-374a7a101cfa,1,0,6c4c3eca-8b02-451b-af52-93073c3da146,6c4c3eca-8b02-451b-af52-93073c3da146,1,0,095c281c-3903-465d-baea-af1e6abf8019,095c281c-3903-465d-baea-af1e6abf8019,1,0,440d115d-a769-427e-891a-88d65fba2057,440d115d-a769-427e-891a-88d65fba2057,1,0,f7932210-027e-4fad-b7f7-3530789ce803,f7932210-027e-4fad-b7f7-3530789ce803,1,0,7bbfd95e-39a1-485b-930f-c9210c18dcd0,7bbfd95e-39a1-485b-930f-c9210c18dcd0,1,0,4975d3d6-b5a2-41c6-973b-6817013a388d,4975d3d6-b5a2-41c6-973b-6817013a388d,1,0,18ebc799-9724-4ffb-855e-b09a0723869e,18ebc799-9724-4ffb-855e-b09a0723869e,1,0,a06b8ef5-83e6-4fc6-91e1-256004134d69,a06b8ef5-83e6-4fc6-91e1-256004134d69,1,0,1d6a68ec-917f-4c3b-b970-797a6921cbc9,1d6a68ec-917f-4c3b-b970-797a6921cbc9,1,0,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,1,0,5b663988-3599-46dc-8d59-4c82ceac537c,5b663988-3599-46dc-8d59-4c82ceac537c,1,0,0f5f136c-688b-491e-a72b-3d9c2e609f0e,0f5f136c-688b-491e-a72b-3d9c2e609f0e,1,0,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,1,0,679cc0df-df5c-4c33-8c64-c0b6cee39116,679cc0df-df5c-4c33-8c64-c0b6cee39116,1,0,b156752b-f25c-4f35-9474-8ac3636597f5,b156752b-f25c-4f35-9474-8ac3636597f5,1,0,bdc51d67-5fc2-4d28-8875-69e33e625be6,bdc51d67-5fc2-4d28-8875-69e33e625be6,1,0,94ca9aa0-f61f-496b-8fef-9e6fb7bd8f87,94ca9aa0-f61f-496b-8fef-9e6fb7bd8f87,1,0,b494ca7b-6548-4fa2-932c-acdf8c62a78a,b494ca7b-6548-4fa2-932c-acdf8c62a78a,1,0,2d279292-f9d6-4d5a-aaeb-f82f6485ac54,2d279292-f9d6-4d5a-aaeb-f82f6485ac54,1,0,f335aa38-4e9e-4653-9a76-b6d4ae178c93,f335aa38-4e9e-4653-9a76-b6d4ae178c93,1,0,a62894bc-fab4-4ed4-a57d-cbe725527198,a62894bc-fab4-4ed4-a57d-cbe725527198,1,0,d4e567c7-55f1-4564-b066-f5b2355ad82c,d4e567c7-55f1-4564-b066-f5b2355ad82c,1,0,89cf2cd8-dc43-4742-af5a-5975e9546786,89cf2cd8-dc43-4742-af5a-5975e9546786,1,0,089ae618-cd90-482a-b4a2-45a04aaecc0c,089ae618-cd90-482a-b4a2-45a04aaecc0c,1,0,d1beef4e-9c78-49f5-9e52-1568fadf861d,d1beef4e-9c78-49f5-9e52-1568fadf861d,1,0,e6032a40-6195-4889-99f5-f7f4c74d4e8f,e6032a40-6195-4889-99f5-f7f4c74d4e8f,1,0,f9f12c11-04e8-4999-b1ab-ddea896638a2,f9f12c11-04e8-4999-b1ab-ddea896638a2,1,0,47ae26c4-1c47-4d9d-a0b8-a9899d08a4ce,47ae26c4-1c47-4d9d-a0b8-a9899d08a4ce,1,0,83245a76-8502-47a4-98ae-2ffadb78a029,83245a76-8502-47a4-98ae-2ffadb78a029,1,0,c9d5a41d-a2d9-4ec6-9a51-e4d254df1927,c9d5a41d-a2d9-4ec6-9a51-e4d254df1927,1,0,22d7df25-5885-4ad6-bb29-28257256da22,22d7df25-5885-4ad6-bb29-28257256da22,1,0,3bb85423-6ce7-416f-884a-89c75deed890,3bb85423-6ce7-416f-884a-89c75deed890,1,0,132c8921-189a-4c00-a8a4-417728520203,132c8921-189a-4c00-a8a4-417728520203,1,0,18535b06-82f0-4179-af3c-975a5ba85872,18535b06-82f0-4179-af3c-975a5ba85872,1,0,1d0981b4-cf7c-4094-a597-d709a8573d71,1d0981b4-cf7c-4094-a597-d709a8573d71,1,0,b5bb5376-27a6-43f2-9e91-bf7c913b89fd,b5bb5376-27a6-43f2-9e91-bf7c913b89fd,1,0,24861cd2-2be0-4454-8154-2201e63be266,24861cd2-2be0-4454-8154-2201e63be266,1,0,2e364599-aad9-4d1d-a4df-6cbd3ed768e7,2e364599-aad9-4d1d-a4df-6cbd3ed768e7,1,0,c14cac09-820e-47ae-81bb-eb497950d40c,c14cac09-820e-47ae-81bb-eb497950d40c,1,0,201cd431-6027-466c-abec-09ff65f42244,201cd431-6027-466c-abec-09ff65f42244,1,0,1018c5d8-8aed-49ba-a27c-a44bddd96144,1018c5d8-8aed-49ba-a27c-a44bddd96144,1,0,a81e5d20-9c42-462d-83a3-f86522c473f5,a81e5d20-9c42-462d-83a3-f86522c473f5,1,0,1ce4440e-3709-4cb1-8505-2379d5146be3,1ce4440e-3709-4cb1-8505-2379d5146be3,1,0,a26d8489-88a8-438e-bb58-c7b5a742a243,a26d8489-88a8-438e-bb58-c7b5a742a243,1,0,67dc31fa-cc64-4d29-96aa-65a7fd480790,67dc31fa-cc64-4d29-96aa-65a7fd480790,1,0,17f0e86d-8661-492c-85fa-2ce3cd1a57d5,17f0e86d-8661-492c-85fa-2ce3cd1a57d5,1,0,9728fd22-163c-443d-a89f-79d15c51c086,9728fd22-163c-443d-a89f-79d15c51c086,1,0,7030a503-e97c-4cb8-b6cd-79dbd08fd2cc,7030a503-e97c-4cb8-b6cd-79dbd08fd2cc,1,0,0a7c25db-dba6-44d3-b994-d672c4f33f1f,0a7c25db-dba6-44d3-b994-d672c4f33f1f,1,0,618b565c-f80f-4e58-94f1-227d4bdc8fe7,618b565c-f80f-4e58-94f1-227d4bdc8fe7,1,0,e36ed6bf-7bb2-419f-b3d4-fe6f7e75188d,e36ed6bf-7bb2-419f-b3d4-fe6f7e75188d,1,0,018bd653-a526-4e2c-8483-1192ae997458,018bd653-a526-4e2c-8483-1192ae997458,1,0,788a38ca-6ef8-4a05-a0c7-032766b135d9,788a38ca-6ef8-4a05-a0c7-032766b135d9,1,0,82e0e020-d6a7-45ae-bdbd-d29aacff313a,82e0e020-d6a7-45ae-bdbd-d29aacff313a,1,0,31ac5bc1-3642-456b-aaed-d604669556f6,31ac5bc1-3642-456b-aaed-d604669556f6,1,0,3157f1b3-5d78-4fe4-89bf-afca0026a8d5,3157f1b3-5d78-4fe4-89bf-afca0026a8d5,1,0,317e6068-5c8e-4455-932c-f5ae09e398c3,317e6068-5c8e-4455-932c-f5ae09e398c3,1,0,8424768a-3673-4e7c-840f-836515f85ba9,8424768a-3673-4e7c-840f-836515f85ba9,1,0,37ba6039-9162-4c7e-9975-de3aec39664f,37ba6039-9162-4c7e-9975-de3aec39664f,1,0,1ed0209f-4e11-452b-8520-66bf02186f1a,1ed0209f-4e11-452b-8520-66bf02186f1a,1,0,d1e25f7f-f2c5-48bf-a7f4-4cd40d992e53,d1e25f7f-f2c5-48bf-a7f4-4cd40d992e53,1,0,4d7f4a37-8426-4f06-9b64-cae252cb8e9e,4d7f4a37-8426-4f06-9b64-cae252cb8e9e,1,0,ae5b5521-a525-402d-99b0-e83a7b2caaa4,ae5b5521-a525-402d-99b0-e83a7b2caaa4,1,0,3858dbf0-cb6b-4c67-9dd9-eb900c3688f4,3858dbf0-cb6b-4c67-9dd9-eb900c3688f4,1,0,a04a50db-cb4a-496e-8c25-5591d863a7d5,a04a50db-cb4a-496e-8c25-5591d863a7d5,1,0,17aadd5f-cda2-4785-a07f-3ab4b04434a6,17aadd5f-cda2-4785-a07f-3ab4b04434a6,1,0,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,1,0,1832336e-32f6-42c4-9087-8614ead52bb3,1832336e-32f6-42c4-9087-8614ead52bb3,1,0,ff9f7b5c-70f4-4eed-8216-64448e7da76f,ff9f7b5c-70f4-4eed-8216-64448e7da76f,1,0,44ac2869-990d-4cac-a14b-c1a28854341e,44ac2869-990d-4cac-a14b-c1a28854341e,1,0,d5df31c3-89f9-469c-80a9-fb4706d30bc4,d5df31c3-89f9-469c-80a9-fb4706d30bc4,1,0,65ad33ce-edab-4f8b-8f44-1a5634d87191,65ad33ce-edab-4f8b-8f44-1a5634d87191,1,0,bcd727b5-4678-41e9-85d5-98d4157cdd77,bcd727b5-4678-41e9-85d5-98d4157cdd77,1,0,38c6dd83-2a70-4c4a-9f29-3b2b54a15501,38c6dd83-2a70-4c4a-9f29-3b2b54a15501,1,0,f403fcb3-a4f8-479d-9fa1-85d458b9a4b5,f403fcb3-a4f8-479d-9fa1-85d458b9a4b5,1,0,c56d3cfe-6ae1-4fe3-abdc-2d845049ddde,c56d3cfe-6ae1-4fe3-abdc-2d845049ddde,1,0,66f1dc54-f28c-4fb7-a6c9-f839d656e87c,66f1dc54-f28c-4fb7-a6c9-f839d656e87c,1,0,b8e3d08d-d442-4ffa-83d8-f372a7d2d340,b8e3d08d-d442-4ffa-83d8-f372a7d2d340,1,0,ebba727b-8155-4dd8-8ea0-207ca396566b,ebba727b-8155-4dd8-8ea0-207ca396566b,1,0,e4166141-f18f-4d27-beb5-9e30fe30f842,e4166141-f18f-4d27-beb5-9e30fe30f842,1,0,b62434ac-ef9f-4fe7-8279-357e0dd760ac,b62434ac-ef9f-4fe7-8279-357e0dd760ac,1,0,eb1c7d02-f5fc-4b37-9b32-7dd828958d76,eb1c7d02-f5fc-4b37-9b32-7dd828958d76,1,0,db2f20a7-e01f-4c03-9343-a815e1b46b50,db2f20a7-e01f-4c03-9343-a815e1b46b50,1,0,cf122ec9-d781-434c-9742-300e701317d6,cf122ec9-d781-434c-9742-300e701317d6,1,0,2aa2a968-2cac-4883-9bc8-5a3ccbd2e7a9,2aa2a968-2cac-4883-9bc8-5a3ccbd2e7a9,1,0,7d1361af-c5d3-4312-ab5e-ba00bf3418f2,7d1361af-c5d3-4312-ab5e-ba00bf3418f2,1,0,d7fdb3d5-3c18-4d9c-938a-2fbe8a96e877,d7fdb3d5-3c18-4d9c-938a-2fbe8a96e877,1,0,b8658e11-42b6-41bb-b384-5380e2228338,b8658e11-42b6-41bb-b384-5380e2228338,1,0,40c0919f-2c53-4502-af06-745dfa47fd8e,40c0919f-2c53-4502-af06-745dfa47fd8e,1,0,b01e4e7f-1b01-4c19-ab4b-7a8c1f6b0d22,b01e4e7f-1b01-4c19-ab4b-7a8c1f6b0d22,1,0,662a2803-da19-40c7-a906-e20d0843f67f,662a2803-da19-40c7-a906-e20d0843f67f,1,0,327c0731-1496-4463-837f-8f9c3e4c1a49,327c0731-1496-4463-837f-8f9c3e4c1a49,1,0,d74a37c2-7f50-40da-b7f8-29f79ae7230c,d74a37c2-7f50-40da-b7f8-29f79ae7230c,1,0,37a677e7-6661-41b5-ba68-740361168ccf,37a677e7-6661-41b5-ba68-740361168ccf,1,0,2a41d20d-d57a-4ce8-832f-c1b83099e563,2a41d20d-d57a-4ce8-832f-c1b83099e563,1,0,a0701ad3-572a-4806-91c0-6c5fff8dd350,a0701ad3-572a-4806-91c0-6c5fff8dd350,1,0,c9f268d1-6d2a-47d5-9371-f951b95d24a6,c9f268d1-6d2a-47d5-9371-f951b95d24a6,1,0,86b155be-d611-46b4-8275-bb19a2fa20ba,86b155be-d611-46b4-8275-bb19a2fa20ba,1,0,fedb2d36-bb2e-49dd-9d52-afcc41f3636b,fedb2d36-bb2e-49dd-9d52-afcc41f3636b,1,0,5d74d2d1-a2af-4a52-a884-a60e6b07ffac,5d74d2d1-a2af-4a52-a884-a60e6b07ffac,1,0,69e67507-e063-4221-9b84-2ee9d8903c1a,69e67507-e063-4221-9b84-2ee9d8903c1a,1,0,a649cb56-2a53-4508-8bf4-9aa01373ede2,a649cb56-2a53-4508-8bf4-9aa01373ede2,1,0,7e572d75-3a89-43c0-ad68-18498d67f8ca,7e572d75-3a89-43c0-ad68-18498d67f8ca,1,0,3c159a42-d9f9-4de4-a86f-893b1fc65b46,3c159a42-d9f9-4de4-a86f-893b1fc65b46,1,0,545cd0e7-4125-48f1-9123-0bc39e436e5e,545cd0e7-4125-48f1-9123-0bc39e436e5e,1,0,9a17eec6-b517-4133-8d25-bb953d84461f,9a17eec6-b517-4133-8d25-bb953d84461f,1,0,a0a61d7f-879d-4e92-98a3-5291c834c341,a0a61d7f-879d-4e92-98a3-5291c834c341,1,0,7bf60016-2edc-443b-98b4-0864b548c482,7bf60016-2edc-443b-98b4-0864b548c482,1,0,74139209-f345-4fd9-9ade-15cc4d399836,74139209-f345-4fd9-9ade-15cc4d399836,1,0,e39de1c5-b43b-4f71-aa32-c03b8afd6f65,e39de1c5-b43b-4f71-aa32-c03b8afd6f65,1,0,d5b6aad4-b1bd-464b-aca0-f8455d6388b4,d5b6aad4-b1bd-464b-aca0-f8455d6388b4,1,0,033ab408-fa51-4af2-a82c-f3167de00681,033ab408-fa51-4af2-a82c-f3167de00681,1,0,f7267120-f367-4d47-be5e-e2aa7a2ada46,f7267120-f367-4d47-be5e-e2aa7a2ada46,1,0,911b4ba4-1902-4c69-a4c9-963ab93d35b0,911b4ba4-1902-4c69-a4c9-963ab93d35b0,1,0,70cf60eb-a5f8-4573-a28b-6844721459de,70cf60eb-a5f8-4573-a28b-6844721459de,1,0,e2666bd9-bf44-408b-98fa-b9be26bde33f,e2666bd9-bf44-408b-98fa-b9be26bde33f,1,0,9151fa13-6612-4c4c-a264-3fd669205de7,9151fa13-6612-4c4c-a264-3fd669205de7,1,0,fee8fd9d-be7d-4560-9b96-819ffd497c88,fee8fd9d-be7d-4560-9b96-819ffd497c88,1,0,c86135b4-063c-4ca8-99e2-35c61026b43f,c86135b4-063c-4ca8-99e2-35c61026b43f,1,0,186792a9-0a07-4b6d-a9a0-337221f6b009,186792a9-0a07-4b6d-a9a0-337221f6b009,1,0,49163bf6-4a6a-4da9-a0ed-257c22224b47,49163bf6-4a6a-4da9-a0ed-257c22224b47,1,0,74c71abe-90eb-4c05-a4a6-375a93e7b99c,74c71abe-90eb-4c05-a4a6-375a93e7b99c,1,0,d36efd98-34a7-41b4-99b6-34c09e71525a,d36efd98-34a7-41b4-99b6-34c09e71525a,1,0,e73a6a9d-8ddd-4531-9f17-745117d9da9b,e73a6a9d-8ddd-4531-9f17-745117d9da9b,1,0,9dd4e17c-d10b-435e-8665-08997edc3e7e,9dd4e17c-d10b-435e-8665-08997edc3e7e,1,0,cafd44e1-8509-4550-8329-ff8cab0c31ae,cafd44e1-8509-4550-8329-ff8cab0c31ae,1,0,ee0412d3-58e7-4715-8774-d49778e1ef73,ee0412d3-58e7-4715-8774-d49778e1ef73,1,0,ea31df21-1402-417a-9788-b17a7116e842,ea31df21-1402-417a-9788-b17a7116e842,1,0,7a93efb9-62bb-437a-8095-b26a2c8ce8ed,7a93efb9-62bb-437a-8095-b26a2c8ce8ed,1,0,e964753f-7f4c-4f9f-bd17-cdac317c1d35,e964753f-7f4c-4f9f-bd17-cdac317c1d35,1,0,20c2aba0-e2b2-4e4f-9d48-1515c0ae7b4d,20c2aba0-e2b2-4e4f-9d48-1515c0ae7b4d,1,0,43c22498-3fd6-4038-a291-05f0db9ab66a,43c22498-3fd6-4038-a291-05f0db9ab66a,1,0,4ffc9d16-c450-4ecb-b8f6-9ec6fe37fc75,4ffc9d16-c450-4ecb-b8f6-9ec6fe37fc75,1,0,ee6e5e56-5848-46b6-89bf-b9345a57d94c,ee6e5e56-5848-46b6-89bf-b9345a57d94c,1,0,8817c872-bdee-4577-bcc3-4046edc72803,8817c872-bdee-4577-bcc3-4046edc72803,1,0,5b88c214-4e4e-45c2-b8c5-14eb852e9900,5b88c214-4e4e-45c2-b8c5-14eb852e9900,1,0,851118bb-7e22-4c3c-a050-51b89216df86,851118bb-7e22-4c3c-a050-51b89216df86,1,0,4575003b-10c6-4d8e-bc5e-c643f38b24d9,4575003b-10c6-4d8e-bc5e-c643f38b24d9,1,0,b3fd4c7b-b7ae-40b9-bbe0-42fae0bc6bf5,b3fd4c7b-b7ae-40b9-bbe0-42fae0bc6bf5,1,0,e68e3408-ae45-4d3f-8cbf-e1f517cd4dec,e68e3408-ae45-4d3f-8cbf-e1f517cd4dec,1,0,6252386c-865f-41cc-aef4-1d8bf7087798,6252386c-865f-41cc-aef4-1d8bf7087798,1,0,9d256a1d-5a06-4716-9d83-c5877a5ffc14,9d256a1d-5a06-4716-9d83-c5877a5ffc14,1,0,63623218-8035-4ad9-b4db-a1f917c5641a,63623218-8035-4ad9-b4db-a1f917c5641a,1,0,d58babbe-6f59-4027-86db-54343d11e1c8,d58babbe-6f59-4027-86db-54343d11e1c8,1,0,a4cc0476-99a7-4b61-a382-2a6bb8d2043e,a4cc0476-99a7-4b61-a382-2a6bb8d2043e,1,0,8dbca9a8-97c0-4c95-b0a6-1c3f54e6fbab,8dbca9a8-97c0-4c95-b0a6-1c3f54e6fbab,1,0,4d23fa01-b9ef-419c-8806-e0b0fad14be0,4d23fa01-b9ef-419c-8806-e0b0fad14be0,1,0,3eb4e1a4-8653-410f-ae73-b25c03348880,3eb4e1a4-8653-410f-ae73-b25c03348880,1,0,105cd740-1f60-45e1-871c-adeecd291b0d,105cd740-1f60-45e1-871c-adeecd291b0d,1,0,95aec7d2-179b-4ea3-a3df-3d737b713564,95aec7d2-179b-4ea3-a3df-3d737b713564,1,0,4bd1cae4-d5b5-444e-9cf5-67a969714293,4bd1cae4-d5b5-444e-9cf5-67a969714293,1,0,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,1,0,f279a625-b88f-43b4-bce9-de1186fe7d7e,f279a625-b88f-43b4-bce9-de1186fe7d7e,1,0,a2f19cb2-9f2e-442b-b9f2-e5253c70871c,a2f19cb2-9f2e-442b-b9f2-e5253c70871c,1,0,0c67453e-038b-46f3-8c13-2786e8622ad8,0c67453e-038b-46f3-8c13-2786e8622ad8,1,0,8ff1dc4d-b46c-4519-80fe-19448e620e74,8ff1dc4d-b46c-4519-80fe-19448e620e74,1,0,7cd5ca8c-cc97-4664-964e-152fdcb5bdef,7cd5ca8c-cc97-4664-964e-152fdcb5bdef,1,0,be0a5f9a-ffab-41d8-b55a-a61355f5d269,be0a5f9a-ffab-41d8-b55a-a61355f5d269,1,0,9286105d-9aa9-44f9-ae63-bbbcec64eade,9286105d-9aa9-44f9-ae63-bbbcec64eade,1,0,99fc224a-2a61-441a-85e9-d69df6aa8b5e,99fc224a-2a61-441a-85e9-d69df6aa8b5e,1,0,a528c26f-3ceb-4ae4-8420-edfbdea6e1ac,a528c26f-3ceb-4ae4-8420-edfbdea6e1ac,1,0,d009782b-d73e-42d1-9979-2cbaf20ee98e,d009782b-d73e-42d1-9979-2cbaf20ee98e,1,0,1ef6282c-ae81-4d76-8e3e-99fec58fc7bd,1ef6282c-ae81-4d76-8e3e-99fec58fc7bd,1,0,88d8edf7-654f-4627-b68d-c7e929726da6,88d8edf7-654f-4627-b68d-c7e929726da6,1,0,483720db-6c9e-4179-b5c7-56159c9b6073,483720db-6c9e-4179-b5c7-56159c9b6073,1,0,88fafb0d-d624-4b91-8c68-c354817ccddb,88fafb0d-d624-4b91-8c68-c354817ccddb,1,0,f4a3e032-61fb-4004-bd4d-6eaffb53437b,f4a3e032-61fb-4004-bd4d-6eaffb53437b,1,0,9126b840-ddcc-4054-aa16-4156288a379e,9126b840-ddcc-4054-aa16-4156288a379e,1,0,a6facfdb-7529-479c-9bb3-e63316b032f4,a6facfdb-7529-479c-9bb3-e63316b032f4,1,0,1725c619-9c4a-40ac-9044-00fee71945a4,1725c619-9c4a-40ac-9044-00fee71945a4,1,0,45a85e25-7c33-4ff5-87a0-2a0b4cda8130,45a85e25-7c33-4ff5-87a0-2a0b4cda8130,1,0,e95b126d-797d-4071-b7b4-b14aaf595f2d,e95b126d-797d-4071-b7b4-b14aaf595f2d,1,0,9241ea3c-633f-4469-9e70-c5a20e464da8,9241ea3c-633f-4469-9e70-c5a20e464da8,1,0,bbadbe1b-cb33-4cc5-84c8-a4fdfc8a2247,bbadbe1b-cb33-4cc5-84c8-a4fdfc8a2247,1,0,961ae0fb-7f7b-414d-8fbf-32b893b41085,961ae0fb-7f7b-414d-8fbf-32b893b41085,1,0,10adf8c8-6f5f-477f-b244-4452b774b766,10adf8c8-6f5f-477f-b244-4452b774b766,1,0,ac9dcb8c-d4f5-4f0d-affb-e4187eafdf14,ac9dcb8c-d4f5-4f0d-affb-e4187eafdf14,1,0,04ec5e44-8469-4e9c-8021-83d258f2ec54,04ec5e44-8469-4e9c-8021-83d258f2ec54,1,0,cff36ede-0bd1-424b-8c75-b9695133f32e,cff36ede-0bd1-424b-8c75-b9695133f32e,1,0,9d872d99-eac7-43ee-8ce2-c9d31a76bd75,9d872d99-eac7-43ee-8ce2-c9d31a76bd75,1,0,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,1,0,58b33683-1916-4aef-9b98-5569ef7782ed,58b33683-1916-4aef-9b98-5569ef7782ed,1,0,d3e1f622-f438-4cad-94ae-0272f51610f7,d3e1f622-f438-4cad-94ae-0272f51610f7,1,0,8569cd73-d40d-4d92-83e0-8ece0c03a86a,8569cd73-d40d-4d92-83e0-8ece0c03a86a,1,0,9ebe2809-be6b-4c91-9443-b237fb7ad43c,9ebe2809-be6b-4c91-9443-b237fb7ad43c,1,0,bf29c091-de15-4cd4-be0e-a9785f97d444,bf29c091-de15-4cd4-be0e-a9785f97d444,1,0,060b2bb4-ca03-4da9-930f-7f91f6299a35,060b2bb4-ca03-4da9-930f-7f91f6299a35,1,0,394b1a1c-a7ae-41b7-a346-4bac99fa567d,394b1a1c-a7ae-41b7-a346-4bac99fa567d,1,0,9a5fa511-59e8-4a1b-a101-f276f0b7b261,9a5fa511-59e8-4a1b-a101-f276f0b7b261,1,0,ccfe4e36-80b6-419f-8bb3-c1046203d023,ccfe4e36-80b6-419f-8bb3-c1046203d023,1,0,94b2e060-53b7-4b40-af05-30bea3520330,94b2e060-53b7-4b40-af05-30bea3520330,1,0,0f634f7e-7d6b-43e4-8e5e-a31ed05898ea,0f634f7e-7d6b-43e4-8e5e-a31ed05898ea,1,0,41b0dabd-85a3-4819-84dd-371eaf4f996e,41b0dabd-85a3-4819-84dd-371eaf4f996e,1,0,86a5ba4d-0681-4ddc-a505-0f537528e1a3,86a5ba4d-0681-4ddc-a505-0f537528e1a3,1,0,12d936f5-932b-4561-b934-c8444808a450,12d936f5-932b-4561-b934-c8444808a450,1,0,2ccb06ca-9bb7-4b74-9a96-c109bb117984,2ccb06ca-9bb7-4b74-9a96-c109bb117984,1,0,ac1a661d-db18-4576-80a9-a19d4140c05e,ac1a661d-db18-4576-80a9-a19d4140c05e,1,0,acd89f6c-a25f-47b9-ac21-036bfafcc0fc,acd89f6c-a25f-47b9-ac21-036bfafcc0fc,1,0,aa114d56-2faf-4925-8319-f0aa3993e9ee,aa114d56-2faf-4925-8319-f0aa3993e9ee,1,0,c3ffeb09-121b-4d77-9c15-def4648b4f3c,c3ffeb09-121b-4d77-9c15-def4648b4f3c,1,0,c2de0724-04c1-4adb-b62a-b7ba727dbe67,c2de0724-04c1-4adb-b62a-b7ba727dbe67,1,0,4ae26777-69ff-4a55-942b-0bad8ab7a70a,4ae26777-69ff-4a55-942b-0bad8ab7a70a,1,0,a0d8fb0a-0e90-4140-8687-e249b153dc66,a0d8fb0a-0e90-4140-8687-e249b153dc66,1,0,917c6f60-2a07-4587-9496-d393aff93953,917c6f60-2a07-4587-9496-d393aff93953,1,0,4bac50a2-762a-44e6-b8c5-3b09ef1a3f5e,4bac50a2-762a-44e6-b8c5-3b09ef1a3f5e,1,0,9fe72d73-4c95-47e0-bf92-dcb714d747c6,9fe72d73-4c95-47e0-bf92-dcb714d747c6,1,0,fe00e64f-2fa9-44a7-9bd7-854ebb6c0185,fe00e64f-2fa9-44a7-9bd7-854ebb6c0185,1,0,4d84bb11-e06e-4ed9-915b-76ee0e385a8b,4d84bb11-e06e-4ed9-915b-76ee0e385a8b,1,0,2b94076d-39ee-45ad-9ba5-435115cf5d4f,2b94076d-39ee-45ad-9ba5-435115cf5d4f,1,0,72ace16c-e90a-4d05-bc23-4351d4c87683,72ace16c-e90a-4d05-bc23-4351d4c87683,1,0,bd86e378-84bb-486a-be7b-319a3fe3b70b,bd86e378-84bb-486a-be7b-319a3fe3b70b,1,0,ef3bc279-6721-4949-8dc0-f96141f7f05c,ef3bc279-6721-4949-8dc0-f96141f7f05c,1,0,f81c7e21-48ad-4b64-975d-e62d34c7235a,f81c7e21-48ad-4b64-975d-e62d34c7235a,1,0,d0523c14-585e-45d3-9735-891235631004,d0523c14-585e-45d3-9735-891235631004,1,0,db5fde74-275f-4d82-825c-5c245a7fef6b,db5fde74-275f-4d82-825c-5c245a7fef6b,1,0,e4e534e9-7ccc-4ced-b961-613989a6194b,e4e534e9-7ccc-4ced-b961-613989a6194b,1,0,cc925b83-839b-48da-8f62-7f8cde76ac2a,cc925b83-839b-48da-8f62-7f8cde76ac2a,1,0,7d06f855-8a6a-45e0-a1c2-fd5f03d2a8ed,7d06f855-8a6a-45e0-a1c2-fd5f03d2a8ed,1,0,a156434c-a1f0-401e-90b4-c0adae8800e3,a156434c-a1f0-401e-90b4-c0adae8800e3,1,0,f9681a4d-d47c-4a8d-a8a3-4aafc751e61b,f9681a4d-d47c-4a8d-a8a3-4aafc751e61b,1,0,e6e76d04-8adc-4462-8919-0979258e5a7b,e6e76d04-8adc-4462-8919-0979258e5a7b,1,0,6ee85be2-55f6-4d4b-abf1-0d1d25f61ea3,6ee85be2-55f6-4d4b-abf1-0d1d25f61ea3,1,0,f850e1d5-5108-4ca8-b397-983627e4871b,f850e1d5-5108-4ca8-b397-983627e4871b,1,0,b6f8bc3e-f0cd-43ef-b060-d701cd446197,b6f8bc3e-f0cd-43ef-b060-d701cd446197,1,0,4f10e5f9-6cfd-4fa9-9c72-d19a484a796c,4f10e5f9-6cfd-4fa9-9c72-d19a484a796c,1,0,b94e805f-e1ab-4870-b855-98aa401864b2,b94e805f-e1ab-4870-b855-98aa401864b2,1,0,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,1,0,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,1,0,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,1,0,45af8f5d-d505-466b-a798-19f2219a180c,45af8f5d-d505-466b-a798-19f2219a180c,1,0,8a8229bc-f70a-4434-bacc-8a81fc58154b,8a8229bc-f70a-4434-bacc-8a81fc58154b,1,0,6324ad14-82ca-467b-b6b7-8d5f6049ca65,6324ad14-82ca-467b-b6b7-8d5f6049ca65,1,0,273446f0-f28b-4ce2-874c-3c6a57299b71,273446f0-f28b-4ce2-874c-3c6a57299b71,1,0,eb2f7449-ee42-43ec-b59c-3e07a6e3c139,eb2f7449-ee42-43ec-b59c-3e07a6e3c139,1,0,f8a7913a-2c64-47e1-8ae9-622fc6e9477e,f8a7913a-2c64-47e1-8ae9-622fc6e9477e,1,0,9b46a2b4-223d-4527-a94e-37ecd4fe72d7,9b46a2b4-223d-4527-a94e-37ecd4fe72d7,1,0,7a4e17bf-3649-4982-a9c6-5982390f1f1d,7a4e17bf-3649-4982-a9c6-5982390f1f1d,1,0,722be6e0-2698-431b-9206-777a36e6742f,722be6e0-2698-431b-9206-777a36e6742f,1,0,75bb0122-26bd-40be-8de8-7a57680c85ae,75bb0122-26bd-40be-8de8-7a57680c85ae,1,0,28dd22df-07cc-4e6d-89b2-b15a13f76615,28dd22df-07cc-4e6d-89b2-b15a13f76615,1,0,0c98b025-5adb-44dc-ab14-4c6517cc230b,0c98b025-5adb-44dc-ab14-4c6517cc230b,1,0,da2f09bd-109f-43aa-a90b-f033d17ed689,da2f09bd-109f-43aa-a90b-f033d17ed689,1,0,c4b3cb31-356e-4868-921c-f6710349def8,c4b3cb31-356e-4868-921c-f6710349def8,1,0,f98a7b6d-f364-4b84-9aeb-8dd822ef582f,f98a7b6d-f364-4b84-9aeb-8dd822ef582f,1,0,44526cb1-561d-4b87-a628-d79cc64ccdec,44526cb1-561d-4b87-a628-d79cc64ccdec,1,0,5e4dbba3-07df-4e30-be14-d9244f5ec21c,5e4dbba3-07df-4e30-be14-d9244f5ec21c,1,0,c8116351-4487-40f3-ae04-1e0741cc5df6,c8116351-4487-40f3-ae04-1e0741cc5df6,1,0,a6be80f7-d6aa-4371-a180-3d355080d849,a6be80f7-d6aa-4371-a180-3d355080d849,1,0,b37722c3-e29f-4a40-b4eb-0317919fc7a5,b37722c3-e29f-4a40-b4eb-0317919fc7a5,1,0,b1b1cd90-094d-428b-a6bc-156521c1c54d,b1b1cd90-094d-428b-a6bc-156521c1c54d,1,0,4f79ef7c-79be-4a69-acc0-bd591c712d03,4f79ef7c-79be-4a69-acc0-bd591c712d03,1,0,a0dd2129-d3a1-4bca-b555-72b065be1c13,a0dd2129-d3a1-4bca-b555-72b065be1c13,1,0,dc5e8229-e301-477c-846e-2e7078e3ee5f,dc5e8229-e301-477c-846e-2e7078e3ee5f,1,0,24836e44-8fdd-44bd-91d8-4ddab2caf485,24836e44-8fdd-44bd-91d8-4ddab2caf485,1,0,3727bcfe-4d75-4270-86e7-4a66ab14866c,3727bcfe-4d75-4270-86e7-4a66ab14866c,1,0,870a4708-0b5a-4fa3-9978-d94b161d289a,870a4708-0b5a-4fa3-9978-d94b161d289a,1,0,30e9f89d-7b94-488e-9963-886c271b1af7,30e9f89d-7b94-488e-9963-886c271b1af7,1,0,91af7a52-0825-4af5-94df-cc501e0123cd,91af7a52-0825-4af5-94df-cc501e0123cd,1,0,1c2cc78a-2ae6-4996-a743-7b55aecbe84c,1c2cc78a-2ae6-4996-a743-7b55aecbe84c,1,0,9292bf81-5668-4d52-a4ec-a93bc4b0ad3b,9292bf81-5668-4d52-a4ec-a93bc4b0ad3b,1,0,9693cc78-852e-445b-a7d2-f1689fa9eeec,9693cc78-852e-445b-a7d2-f1689fa9eeec,1,0,eb33e555-db41-462a-a45d-c7e0945cece8,eb33e555-db41-462a-a45d-c7e0945cece8,1,0,9cfd517c-1008-483a-9f65-7d15feb2cefc,9cfd517c-1008-483a-9f65-7d15feb2cefc,1,0,d66adc5e-25a3-472e-b0a4-5f22f88d7a0f,d66adc5e-25a3-472e-b0a4-5f22f88d7a0f,1,0,ae48d48f-cd39-4821-a4b7-9394b2a77ef6,ae48d48f-cd39-4821-a4b7-9394b2a77ef6,1,0,f34d3a69-533e-49df-b91d-f7f7f49c5fb1,f34d3a69-533e-49df-b91d-f7f7f49c5fb1,1,0,1d76f613-f4f6-4772-8c16-d97b3104a553,1d76f613-f4f6-4772-8c16-d97b3104a553,1,0,3e58d607-b906-449f-b044-9c130a487b86,3e58d607-b906-449f-b044-9c130a487b86,1,0,7a911212-7fde-4ea8-a1fa-229116b60895,7a911212-7fde-4ea8-a1fa-229116b60895,1,0,f4580043-5bc2-4295-8523-909302009b44,f4580043-5bc2-4295-8523-909302009b44,1,0,dc8af632-a5a4-4270-ba5f-2d3ba506f7e3,dc8af632-a5a4-4270-ba5f-2d3ba506f7e3,1,0,81936ac2-32fe-4e14-897b-0aba92b90c05,81936ac2-32fe-4e14-897b-0aba92b90c05,1,0,9f88e355-3f8f-4fcd-b45f-39c3d45490f5,9f88e355-3f8f-4fcd-b45f-39c3d45490f5,1,0,2e233e3c-687c-4516-87c6-5d6c5f9f04a2,2e233e3c-687c-4516-87c6-5d6c5f9f04a2,1,0,2afdcde7-46ef-4624-8b84-c6381ff2f3a4,2afdcde7-46ef-4624-8b84-c6381ff2f3a4,1,0,2d279d24-1953-4a2f-8206-77481d2fd718,2d279d24-1953-4a2f-8206-77481d2fd718,1,0,aa6abffe-1b09-48f9-9aee-4f234db6b2a2,aa6abffe-1b09-48f9-9aee-4f234db6b2a2,1,0,0a920200-77d0-42ea-abf6-0d40d63289b0,0a920200-77d0-42ea-abf6-0d40d63289b0,1,0,c850bafc-4073-44ef-b148-194f87c46f0e,c850bafc-4073-44ef-b148-194f87c46f0e,1,0,6d1dd726-815d-476e-b668-95cff4182e54,6d1dd726-815d-476e-b668-95cff4182e54,1,0,12f4a0ed-4798-4467-8834-de3eb385e22d,12f4a0ed-4798-4467-8834-de3eb385e22d,1,0,5710809e-4c41-42ab-952f-f7778fe9be0f,5710809e-4c41-42ab-952f-f7778fe9be0f,1,0,0811f6c2-6bb3-43b8-9944-910adc4c6f23,0811f6c2-6bb3-43b8-9944-910adc4c6f23,1,0,c1646df4-9fce-44f0-9cc3-a5dab0bbef2e,c1646df4-9fce-44f0-9cc3-a5dab0bbef2e,1,0,c86b02ab-3532-4f4c-b993-e237ed0d4d12,c86b02ab-3532-4f4c-b993-e237ed0d4d12,1,0,83c860a2-d0d7-4b7c-a127-78d86b155cfa,83c860a2-d0d7-4b7c-a127-78d86b155cfa,1,0,06e45039-8bc4-44dd-8a93-2cec34ad51ee,06e45039-8bc4-44dd-8a93-2cec34ad51ee,1,0,46e01647-cbdd-4387-affc-29b92ede8644,46e01647-cbdd-4387-affc-29b92ede8644,1,0,faa44953-118b-4027-a913-c485bca7a93f,faa44953-118b-4027-a913-c485bca7a93f,1,0,c9bd0dcd-98ec-4dc9-869a-e735fd269046,c9bd0dcd-98ec-4dc9-869a-e735fd269046,1,0,d039bfa4-39a0-43d4-ab6a-0697f9d2b375,d039bfa4-39a0-43d4-ab6a-0697f9d2b375,1,0,09072c75-75c7-4050-b674-9454558a1f87,09072c75-75c7-4050-b674-9454558a1f87,1,0,f0c8d2d2-d597-4f09-8257-0fa7524f1e44,f0c8d2d2-d597-4f09-8257-0fa7524f1e44,1,0,3e2f75ab-4143-48ca-83db-3006cb2a8584,3e2f75ab-4143-48ca-83db-3006cb2a8584,1,0,91a82492-5e27-46b6-b1a8-48e89a437715,91a82492-5e27-46b6-b1a8-48e89a437715,1,0,53bc7bfd-8786-464f-a615-ceae2971cbc9,53bc7bfd-8786-464f-a615-ceae2971cbc9,1,0,aa77817b-bd2f-4757-99b0-5e67a1b032d3,aa77817b-bd2f-4757-99b0-5e67a1b032d3,1,0,8cc27936-976d-4f31-91c6-644d15b69c55,8cc27936-976d-4f31-91c6-644d15b69c55,1,0,cf9de063-89f4-4632-b7a1-0cfbea6df643,cf9de063-89f4-4632-b7a1-0cfbea6df643,1,0,ee3bab2c-bd6a-4a33-89a2-78b4dd89bb88,ee3bab2c-bd6a-4a33-89a2-78b4dd89bb88,1,0,2478fb43-57a3-4348-b3d4-61f015e4e231,2478fb43-57a3-4348-b3d4-61f015e4e231,1,0,daa99b45-b2d2-47bc-9d7e-2d21b1a3dfd8,daa99b45-b2d2-47bc-9d7e-2d21b1a3dfd8,1,0,0449c160-01e5-4fe4-8759-5b93c484b467,0449c160-01e5-4fe4-8759-5b93c484b467,1,0,0684e4ba-28c7-4032-a43f-a3a4a37ec50b,0684e4ba-28c7-4032-a43f-a3a4a37ec50b,1,0,bcac012d-b4a9-49bb-9c54-722c741d183c,bcac012d-b4a9-49bb-9c54-722c741d183c,1,0,5370d079-975f-4f7c-95c3-7868147ecc76,5370d079-975f-4f7c-95c3-7868147ecc76,1,0,4dd66f76-e4e0-4f84-9fad-bb922cd51503,4dd66f76-e4e0-4f84-9fad-bb922cd51503,1,0,e76a411a-121b-4791-a785-dd54795eaa7f,e76a411a-121b-4791-a785-dd54795eaa7f,1,0,66844ae3-f098-462c-aef8-1fd38c403760,66844ae3-f098-462c-aef8-1fd38c403760,1,0,be96718a-223d-4597-bccf-2fb7d16dbbcc,be96718a-223d-4597-bccf-2fb7d16dbbcc,1,0,e59e9cfc-43b2-4bdf-a512-b6f87f781cee,e59e9cfc-43b2-4bdf-a512-b6f87f781cee,1,0,eb551461-ae0d-41dd-89fa-2f6e7f3c4840,eb551461-ae0d-41dd-89fa-2f6e7f3c4840,1,0,acec1961-a953-4f7b-b42b-baa1b8b3be14,acec1961-a953-4f7b-b42b-baa1b8b3be14,1,0,eb6394d4-1679-4494-8d23-419f5a714cdc,eb6394d4-1679-4494-8d23-419f5a714cdc,1,0,ffb3c2e4-bb9b-4d12-80bb-79e3c6d5700d,ffb3c2e4-bb9b-4d12-80bb-79e3c6d5700d,1,0,178342fd-1ba5-422d-89d2-4f486e45dae9,178342fd-1ba5-422d-89d2-4f486e45dae9,1,0,7e9fadd6-d0ad-4856-a195-1058f00bf488,7e9fadd6-d0ad-4856-a195-1058f00bf488,1,0,76d0c5ee-5b85-4670-ba1c-8fdaa7ba872a,76d0c5ee-5b85-4670-ba1c-8fdaa7ba872a,1,0,84f67d35-ca48-4fff-94e4-5f4beb7e3c08,84f67d35-ca48-4fff-94e4-5f4beb7e3c08,1,0,2972c142-0aac-4e36-b34e-4e73f18ba9cb,2972c142-0aac-4e36-b34e-4e73f18ba9cb,1,0,d6915227-4ede-4cd2-9e7c-d23dc409936e,d6915227-4ede-4cd2-9e7c-d23dc409936e,1,0,46c3341c-352c-43fb-b338-15c8ad487fbf,46c3341c-352c-43fb-b338-15c8ad487fbf,1,0,a2a8b35e-04e5-4176-8d3b-2cd4dfb6d653,a2a8b35e-04e5-4176-8d3b-2cd4dfb6d653,1,0,ea7ad7f5-e502-49a9-b4a6-e9adceb15057,ea7ad7f5-e502-49a9-b4a6-e9adceb15057,1,0,f9450d6a-849c-4621-b528-9cafc4819b44,f9450d6a-849c-4621-b528-9cafc4819b44,1,0,5b7cac99-2fca-4dbb-8d49-b84f310a2496,5b7cac99-2fca-4dbb-8d49-b84f310a2496,1,0,a4673d5c-9dae-48f7-9c91-53c1302a266a,a4673d5c-9dae-48f7-9c91-53c1302a266a,1,0,1a2a0dd2-b0dc-41e1-8c4f-f275f025bad2,1a2a0dd2-b0dc-41e1-8c4f-f275f025bad2,1,0,c255932e-fc34-402c-a6e9-2fda1ffbcdf2,c255932e-fc34-402c-a6e9-2fda1ffbcdf2,1,0,0d323d88-2823-493e-8c1e-b2b9f3dcdd3e,0d323d88-2823-493e-8c1e-b2b9f3dcdd3e,1,0,3f410b53-e762-41fe-9469-d538dfec3a9a,3f410b53-e762-41fe-9469-d538dfec3a9a,1,0,bb11c22e-0fbd-4985-be67-0866df7f7e61,bb11c22e-0fbd-4985-be67-0866df7f7e61,1,0,92ea60c0-1027-4337-9130-40028951f09b,92ea60c0-1027-4337-9130-40028951f09b,1,0,46710ce6-0f82-4c4c-91e8-f8ee726e00ce,46710ce6-0f82-4c4c-91e8-f8ee726e00ce,1,0,d64f18a4-ff93-4284-9eca-085109eafd24,d64f18a4-ff93-4284-9eca-085109eafd24,1,0,6381b8d2-7722-45c7-8800-19f6574d7d7a,6381b8d2-7722-45c7-8800-19f6574d7d7a,1,0,bf428e7a-2970-4bab-8c8e-35ea16151c0e,bf428e7a-2970-4bab-8c8e-35ea16151c0e,1,0,232dbd5f-b7f1-4463-946c-b8fbf93ac466,232dbd5f-b7f1-4463-946c-b8fbf93ac466,1,0,a1a74b34-4174-4769-8f03-bd4a32e83418,a1a74b34-4174-4769-8f03-bd4a32e83418,1,0,32fd1fe7-34d3-43ed-baba-16ccd43aa25a,32fd1fe7-34d3-43ed-baba-16ccd43aa25a,1,0,8f4d1259-abdc-4495-8e1e-8c8abcd336ca,8f4d1259-abdc-4495-8e1e-8c8abcd336ca,1,0,7086199b-20ec-4a74-a52f-71824134e8c5,7086199b-20ec-4a74-a52f-71824134e8c5,1,0,1731708f-53cb-4b00-b90e-f581b4baa845,1731708f-53cb-4b00-b90e-f581b4baa845,1,0,d4b0feca-c00a-4d48-9f23-d92277ea6483,d4b0feca-c00a-4d48-9f23-d92277ea6483,1,0,00b2a0b3-6af8-4ea4-aa38-d1e078d5cbff,00b2a0b3-6af8-4ea4-aa38-d1e078d5cbff,1,0,20f7fdd2-30f6-4a52-a63b-7d2c326c0e83,20f7fdd2-30f6-4a52-a63b-7d2c326c0e83,1,0,23cb5bc2-9638-4d1c-b4bc-d5297e271570,23cb5bc2-9638-4d1c-b4bc-d5297e271570,1,0,6e547ccb-6d5a-4f7c-aaf0-568c22d2c276,6e547ccb-6d5a-4f7c-aaf0-568c22d2c276,1,0,04b7389d-697d-4b0d-a239-ac8c674cc46f,04b7389d-697d-4b0d-a239-ac8c674cc46f,1,0,a1cf5173-2e86-4ed7-9a0b-1bd5e578326a,a1cf5173-2e86-4ed7-9a0b-1bd5e578326a,1,0,864cad61-8280-415d-8fe1-bcb39d56670a,864cad61-8280-415d-8fe1-bcb39d56670a,1,0,b106bd29-5dc7-44d7-94d0-00f61499392e,b106bd29-5dc7-44d7-94d0-00f61499392e,1,0,a4febff8-0566-4977-bf55-1d574568fe9f,a4febff8-0566-4977-bf55-1d574568fe9f,1,0,5199cc65-bed1-40b9-96fe-cf6d855a8b91,5199cc65-bed1-40b9-96fe-cf6d855a8b91,1,0,f518add9-5c26-4dac-ab2e-b30fe3fbd347,f518add9-5c26-4dac-ab2e-b30fe3fbd347,1,0,23f53317-7aa8-4816-8a69-3d39d5e76da0,23f53317-7aa8-4816-8a69-3d39d5e76da0,1,0,9ade5155-fa6d-4999-b019-a5e7e235a158,9ade5155-fa6d-4999-b019-a5e7e235a158,1,0,8b302c5e-b255-4cb5-94d9-0dfef4250097,8b302c5e-b255-4cb5-94d9-0dfef4250097,1,0,08eb74b6-1e1c-4004-a0f8-b6f1fdfc68ef,08eb74b6-1e1c-4004-a0f8-b6f1fdfc68ef,1,0,d4eb3e9a-feb5-42d9-841b-ff20288228b6,d4eb3e9a-feb5-42d9-841b-ff20288228b6,1,0,49d713b8-6a61-4bd1-9650-0de1869967d2,49d713b8-6a61-4bd1-9650-0de1869967d2,1,0,4738ffd0-3c3b-4e5f-8773-0c9a80efdfbf,4738ffd0-3c3b-4e5f-8773-0c9a80efdfbf,1,0,bd0e4aeb-19f9-48fc-b838-38d785004360,bd0e4aeb-19f9-48fc-b838-38d785004360,1,0,3d1bae2a-4dfd-48e5-bfe9-b7e30c8475f6,3d1bae2a-4dfd-48e5-bfe9-b7e30c8475f6,1,0,0f2ec7ac-6d3f-4fcf-af3d-b0bfaa187a4b,0f2ec7ac-6d3f-4fcf-af3d-b0bfaa187a4b,1,0,6d351276-2c04-4198-a3e4-865881c12f5c,6d351276-2c04-4198-a3e4-865881c12f5c,1,0,73b1d2e2-0eeb-45dc-8ca3-3bda594d6823,73b1d2e2-0eeb-45dc-8ca3-3bda594d6823,1,0,5c4abd61-2f29-499e-a2ca-d133e9eeeaea,5c4abd61-2f29-499e-a2ca-d133e9eeeaea,1,0,8e07a76d-db30-491c-b296-181c8e689382,8e07a76d-db30-491c-b296-181c8e689382,1,0,4f1752ae-42d0-477d-854b-de143c428a85,4f1752ae-42d0-477d-854b-de143c428a85,1,0,29674b66-c542-4a34-8caa-8e57a51bd190,29674b66-c542-4a34-8caa-8e57a51bd190,1,0,1a41acdd-3503-4c69-b93b-eb1cb6749712,1a41acdd-3503-4c69-b93b-eb1cb6749712,1,0,0e45c53e-7571-49bf-b673-cff53d32af89,0e45c53e-7571-49bf-b673-cff53d32af89,1,0,169b0670-8fa7-48d1-b6b1-2cf581b18390,169b0670-8fa7-48d1-b6b1-2cf581b18390,1,0,2e239650-973b-4908-b91e-477062046528,2e239650-973b-4908-b91e-477062046528,1,0,4692eeee-5b73-42f3-ad39-794141af9e2b,4692eeee-5b73-42f3-ad39-794141af9e2b,1,0,0ddeed48-b98a-47c3-84a2-2eac065be06c,0ddeed48-b98a-47c3-84a2-2eac065be06c,1,0,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,1,0,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,1,0,47714327-dd28-4e32-a1c9-20ee47d9afd0,47714327-dd28-4e32-a1c9-20ee47d9afd0,1,0,4d76ef7a-f1a6-4147-84f4-6e1717dfd77e,4d76ef7a-f1a6-4147-84f4-6e1717dfd77e,1,0,d1eb0aa7-b485-4f3a-846d-be069ca807c0,d1eb0aa7-b485-4f3a-846d-be069ca807c0,1,0,afde7867-15d3-43fa-b439-6d9e40df580b,afde7867-15d3-43fa-b439-6d9e40df580b,1,0,a676ff94-a0d1-4de9-8690-ec67f2c891d8,a676ff94-a0d1-4de9-8690-ec67f2c891d8,1,0,012bf716-3672-462e-b390-7bb4384ab4b1,012bf716-3672-462e-b390-7bb4384ab4b1,1,0,65342599-ff37-4f99-8e40-f05d87403bcf,65342599-ff37-4f99-8e40-f05d87403bcf,1,0,3a3f505a-7a50-4111-8029-5b9057fed232,3a3f505a-7a50-4111-8029-5b9057fed232,1,0,1d66cd80-fd61-4bf2-a7f9-34b33443e1ea,1d66cd80-fd61-4bf2-a7f9-34b33443e1ea,1,0,7b638691-416d-4484-81f4-e4c796a92818,7b638691-416d-4484-81f4-e4c796a92818,1,0,03ab92e2-81a3-4e38-84a8-85c1d78d51e9,03ab92e2-81a3-4e38-84a8-85c1d78d51e9,1,0,ef09e296-af08-44ff-8303-4833b23a12c3,ef09e296-af08-44ff-8303-4833b23a12c3,1,0,8984f28e-8c83-499a-838c-5f51410d7b0e,8984f28e-8c83-499a-838c-5f51410d7b0e,1,0,73bf8c40-76ee-4c61-b56a-898bcd6da1ca,73bf8c40-76ee-4c61-b56a-898bcd6da1ca,1,0,434a0471-1389-4764-a901-69249e1fdc38,434a0471-1389-4764-a901-69249e1fdc38,1,0,7b6c1d9f-968e-4126-990e-fa2787ad83b2,7b6c1d9f-968e-4126-990e-fa2787ad83b2,1,0,b89108a9-8b4e-4b34-8f72-4eb502963743,b89108a9-8b4e-4b34-8f72-4eb502963743,1,0,398b93b1-620d-4942-ba44-7ea0f9cc14f0,398b93b1-620d-4942-ba44-7ea0f9cc14f0,1,0,7b06537e-d818-41b3-acc5-b6b63b543be8,7b06537e-d818-41b3-acc5-b6b63b543be8,1,0,74226c30-5f9b-4e47-b7cc-35e92139cbfa,74226c30-5f9b-4e47-b7cc-35e92139cbfa,1,0,09f812cb-770c-4f85-87f0-db35952c764e,09f812cb-770c-4f85-87f0-db35952c764e,1,0,8bbbcfd9-b6da-41f6-b543-863b12b9fb59,8bbbcfd9-b6da-41f6-b543-863b12b9fb59,1,0,eb48f8a9-1644-432d-a8a8-e63bc013a2fe,eb48f8a9-1644-432d-a8a8-e63bc013a2fe,1,0,36951804-70a4-45fa-9fad-1c37fd3ce7b7,36951804-70a4-45fa-9fad-1c37fd3ce7b7,1,0,d0031774-fa35-469f-9f8a-3aaa920928a0,d0031774-fa35-469f-9f8a-3aaa920928a0,1,0,6da02618-2454-48fe-b1dc-399d0d40d043,6da02618-2454-48fe-b1dc-399d0d40d043,1,0,5a080203-ecd2-4f40-ac64-c8024eda595e,5a080203-ecd2-4f40-ac64-c8024eda595e,1,0,3eabcb69-398b-43f5-bf53-c20f90bee5c4,3eabcb69-398b-43f5-bf53-c20f90bee5c4,1,0,9c33639e-529a-490f-9365-80778b54c3f7,9c33639e-529a-490f-9365-80778b54c3f7,1,0,561b97a0-9d42-4735-a606-8d5b5862689f,561b97a0-9d42-4735-a606-8d5b5862689f,1,0,10d5c0c2-301f-4477-a88f-254f99a30fa0,10d5c0c2-301f-4477-a88f-254f99a30fa0,1,0,84ba4ba7-2743-438a-8b65-cc14090f8a92,84ba4ba7-2743-438a-8b65-cc14090f8a92,1,0,cdc4312c-b1af-407c-bfc3-28db04915aa6,cdc4312c-b1af-407c-bfc3-28db04915aa6,1,0,97b76ee8-c73f-456b-9008-b453bd376317,97b76ee8-c73f-456b-9008-b453bd376317,1,0,ee305e39-978b-4069-a4e6-05e761a5d6ae,ee305e39-978b-4069-a4e6-05e761a5d6ae,1,0,965650ae-8a6e-469a-869a-0ce821818058,965650ae-8a6e-469a-869a-0ce821818058,1,0,00fde8e2-3eb3-484a-a960-a390cbdaa16a,00fde8e2-3eb3-484a-a960-a390cbdaa16a,1,0,c7a82aa5-043c-46a2-9f5a-cba098ca36bd,c7a82aa5-043c-46a2-9f5a-cba098ca36bd,1,0,94744edd-61d0-4329-95d8-fc19dc7c6af1,94744edd-61d0-4329-95d8-fc19dc7c6af1,1,0,43bbf87f-8f21-49b9-be2f-eceb64c2c650,43bbf87f-8f21-49b9-be2f-eceb64c2c650,1,0,69db1a1c-3e9d-4e3c-b31e-731f2b8635b9,69db1a1c-3e9d-4e3c-b31e-731f2b8635b9,1,0,621b1881-9a7f-4fa4-a373-46467743e29c,621b1881-9a7f-4fa4-a373-46467743e29c,1,0,932ef5a0-4bad-424d-9772-ad8393c12006,932ef5a0-4bad-424d-9772-ad8393c12006,1,0,6e82e4ec-cf8e-4e9f-aaed-69b146c2ed84,6e82e4ec-cf8e-4e9f-aaed-69b146c2ed84,1,0,35dbc542-3ad9-4a72-9863-229a67cda425,35dbc542-3ad9-4a72-9863-229a67cda425,1,0,8e4277e9-983a-4d43-b08e-a4f918df87bf,8e4277e9-983a-4d43-b08e-a4f918df87bf,1,0,ea232693-49b2-4e10-9349-66e26760602c,ea232693-49b2-4e10-9349-66e26760602c,1,0,110e76d3-26ad-4392-9f82-255d792478a1,110e76d3-26ad-4392-9f82-255d792478a1,1,0,9117730e-1d3f-47b6-84fc-7a02377f86a0,9117730e-1d3f-47b6-84fc-7a02377f86a0,1,0,0a7eec2f-41c6-4d77-98a4-5e0bfc698997,0a7eec2f-41c6-4d77-98a4-5e0bfc698997,1,0,ec06e6a7-7894-4411-9b54-f811837b8a2e,ec06e6a7-7894-4411-9b54-f811837b8a2e,1,0,f43f3a1b-7f71-4a4f-9ec2-5f4d7d77efca,f43f3a1b-7f71-4a4f-9ec2-5f4d7d77efca,1,0,0947bd87-9542-4d2b-8439-9f6ccdb2c9cc,0947bd87-9542-4d2b-8439-9f6ccdb2c9cc,1,0,c0e2673a-1846-4ae5-933a-4e33b73a866b,c0e2673a-1846-4ae5-933a-4e33b73a866b,1,0,3996aff6-b6ce-4f6b-a2f3-1b0bf8b1d0c2,3996aff6-b6ce-4f6b-a2f3-1b0bf8b1d0c2,1,0,f5fadf27-b8ca-421b-8a73-c3f10aef248b,f5fadf27-b8ca-421b-8a73-c3f10aef248b,1,0,006fa20c-ba4b-4003-a743-b47c4b7bd815,006fa20c-ba4b-4003-a743-b47c4b7bd815,1,0,4ecd2da3-4d0c-416b-ae97-66f6f753226b,4ecd2da3-4d0c-416b-ae97-66f6f753226b,1,0,ec680d71-eb28-4b42-a664-c6137c259eaa,ec680d71-eb28-4b42-a664-c6137c259eaa,1,0,efa1d27f-0620-4b3a-b058-12f160008478,efa1d27f-0620-4b3a-b058-12f160008478,1,0,2dd0ec2e-457d-4147-b806-ff3d6fa091fb,2dd0ec2e-457d-4147-b806-ff3d6fa091fb,1,0,005d4afc-7d09-4cef-acaa-50d49e455df0,005d4afc-7d09-4cef-acaa-50d49e455df0,1,0,d773673e-992d-4f22-9fb3-acfb8863217d,d773673e-992d-4f22-9fb3-acfb8863217d,1,0,6cf00002-d685-4340-a873-196126a19664,6cf00002-d685-4340-a873-196126a19664,1,0,e422c08d-f54f-4a49-b0c5-a50bf63973c9,e422c08d-f54f-4a49-b0c5-a50bf63973c9,1,0,8288078e-0d2f-47c5-8e58-c5a17a76cc11,8288078e-0d2f-47c5-8e58-c5a17a76cc11,1,0,82abcc34-c8aa-42a0-b2fe-f66b7cafc2a0,82abcc34-c8aa-42a0-b2fe-f66b7cafc2a0,1,0,1908b558-9619-477e-ab33-0c731adf2b0e,1908b558-9619-477e-ab33-0c731adf2b0e,1,0,2bed313f-06ac-43a1-a0bd-008c5457deb1,2bed313f-06ac-43a1-a0bd-008c5457deb1,1,0,304feda3-6d33-466c-9e0d-9cea97d763be,304feda3-6d33-466c-9e0d-9cea97d763be,1,0,d6d20d2e-ac18-4bed-aa98-2466871996ac,d6d20d2e-ac18-4bed-aa98-2466871996ac,1,0,53617fbd-4c88-4b13-b3f5-acc78064fdea,53617fbd-4c88-4b13-b3f5-acc78064fdea,1,0,fae5d2ca-4a2d-4ba3-945c-d6545a6b57f1,fae5d2ca-4a2d-4ba3-945c-d6545a6b57f1,1,0,7a043029-1b09-4c11-adfd-9f0588e323e8,7a043029-1b09-4c11-adfd-9f0588e323e8,1,0,ecaf5d2f-0cea-4ad0-8550-51be37cead5c,ecaf5d2f-0cea-4ad0-8550-51be37cead5c,1,0,448e7386-cc56-4578-9c57-ef270980a0ff,448e7386-cc56-4578-9c57-ef270980a0ff,1,0,c2cdc60c-157d-450f-b3ba-2b6242459ebb,c2cdc60c-157d-450f-b3ba-2b6242459ebb,1,0,186f87ca-b9d5-48fa-b196-eed2794bade4,186f87ca-b9d5-48fa-b196-eed2794bade4,1,0,b87d9e04-9e12-42a5-b9fd-ea9a9bab59eb,b87d9e04-9e12-42a5-b9fd-ea9a9bab59eb,1,0,65b653b7-1298-40e4-9d69-2ce7810d5985,65b653b7-1298-40e4-9d69-2ce7810d5985,1,0,5fd170a9-44fc-4d18-9e51-2dbf09ca902e,5fd170a9-44fc-4d18-9e51-2dbf09ca902e,1,0,66359bb1-8692-415a-86d9-f40545f88d3a,66359bb1-8692-415a-86d9-f40545f88d3a,1,0,83be7bdf-e915-440f-a39f-1bb74db34b3e,83be7bdf-e915-440f-a39f-1bb74db34b3e,1,0,190b6efe-e67e-4274-abb9-263178a6ec4a,190b6efe-e67e-4274-abb9-263178a6ec4a,1,0,1363523a-929e-49ac-ae39-d43acf9f0478,1363523a-929e-49ac-ae39-d43acf9f0478,1,0,f6ff0bb8-c1fd-4eae-b919-6d10d4504f0c,f6ff0bb8-c1fd-4eae-b919-6d10d4504f0c,1,0,2876c476-8280-426d-8bf9-c93beda0ddd5,2876c476-8280-426d-8bf9-c93beda0ddd5,1,0,963e0813-4f6b-4d31-b66d-77125c47ce19,963e0813-4f6b-4d31-b66d-77125c47ce19,1,0,a720abc8-dcf0-4684-8d94-22d394a8e4df,a720abc8-dcf0-4684-8d94-22d394a8e4df,1,0,e40f53de-c27b-4e74-8241-f784d7ca5c84,e40f53de-c27b-4e74-8241-f784d7ca5c84,1,0,ef38b84d-277e-48c2-8826-330132eb6807,ef38b84d-277e-48c2-8826-330132eb6807,1,0,67a50910-059a-4724-84e0-c21bc3ac74c2,67a50910-059a-4724-84e0-c21bc3ac74c2,1,0,fdd83a89-a2fe-40d8-a531-a10bfeb36a1d,fdd83a89-a2fe-40d8-a531-a10bfeb36a1d,1,0,d9f76f2f-2b32-4986-8987-a585f831d951,d9f76f2f-2b32-4986-8987-a585f831d951,1,0,b1a96083-1c12-43f4-ba61-3a0588fc7310,b1a96083-1c12-43f4-ba61-3a0588fc7310,1,0,2e37c7d0-b97f-4c72-821e-b2bb77fb3140,2e37c7d0-b97f-4c72-821e-b2bb77fb3140,1,0,0d190f8b-87c5-4dd1-bcfb-609ec3a44f72,0d190f8b-87c5-4dd1-bcfb-609ec3a44f72,1,0,53a2f4b2-e8ea-4347-b4c7-b73f4ea8f9b7,53a2f4b2-e8ea-4347-b4c7-b73f4ea8f9b7,1,0,6b814a99-441e-4a51-997b-1c56bc40b134,6b814a99-441e-4a51-997b-1c56bc40b134,1,0,9388e5d5-3a02-4019-a060-141f8a3bb055,9388e5d5-3a02-4019-a060-141f8a3bb055,1,0,c1b000a1-8094-4a06-805f-b84d4e9c6dc0,c1b000a1-8094-4a06-805f-b84d4e9c6dc0,1,0,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,1,0,2c0d11fc-b927-4b5d-a16c-d60e69580824,2c0d11fc-b927-4b5d-a16c-d60e69580824,1,0,ee49981d-91f6-4002-9205-b8a53e6f54e0,ee49981d-91f6-4002-9205-b8a53e6f54e0,1,0,64a74365-ca32-4b7d-af8e-695624e3dcb6,64a74365-ca32-4b7d-af8e-695624e3dcb6,1,0,ed1b3c28-99be-49e9-90eb-81e24c8323a5,ed1b3c28-99be-49e9-90eb-81e24c8323a5,1,0,1e20958d-79dc-4c53-b09f-e627c6463fca,1e20958d-79dc-4c53-b09f-e627c6463fca,1,0,0efdbcc2-e5a8-4b00-a72a-2823fb0b2658,0efdbcc2-e5a8-4b00-a72a-2823fb0b2658,1,0,0fa7190d-bafd-4113-a623-9d7d818f70c7,0fa7190d-bafd-4113-a623-9d7d818f70c7,1,0,5251e744-666e-48a0-a5b4-9cef313c7631,5251e744-666e-48a0-a5b4-9cef313c7631,1,0,d3aca87c-2b47-48da-82dd-18ca867c8463,d3aca87c-2b47-48da-82dd-18ca867c8463,1,0,669b81a6-6526-4b5c-aafa-1988ae5253ce,669b81a6-6526-4b5c-aafa-1988ae5253ce,1,0,ab138a0c-71fe-4ca2-9d82-21f5830dde24,ab138a0c-71fe-4ca2-9d82-21f5830dde24,1,0,ffa6c000-ec84-4749-8ffe-42b0599751cd,ffa6c000-ec84-4749-8ffe-42b0599751cd,1,0,740bde9c-9fe1-4183-ab01-3fbe91d33b61,740bde9c-9fe1-4183-ab01-3fbe91d33b61,1,0,e8e19542-c5c8-418b-8a83-20336fd9075a,e8e19542-c5c8-418b-8a83-20336fd9075a,1,0,1117fce9-6e77-4d1d-aa86-49e7baddfe4b,1117fce9-6e77-4d1d-aa86-49e7baddfe4b,1,0,23f96afc-28e2-470d-9732-220f8867fc23,23f96afc-28e2-470d-9732-220f8867fc23,1,0,aef883c7-c1f5-46ff-a95a-6828d3509069,aef883c7-c1f5-46ff-a95a-6828d3509069,1,0,36b3b988-bf64-4466-9887-93583f59833d,36b3b988-bf64-4466-9887-93583f59833d,1,0,c2997234-864c-408c-94d3-85a2a1820a16,c2997234-864c-408c-94d3-85a2a1820a16,1,0,9d5b351e-5533-4e9f-a23f-d0f7b03d72ca,9d5b351e-5533-4e9f-a23f-d0f7b03d72ca,1,0,d5775cec-e600-4259-82fc-f313cee1cd6f,d5775cec-e600-4259-82fc-f313cee1cd6f,1,0,df918f4e-1a0a-4a7a-997b-f4757185b691,df918f4e-1a0a-4a7a-997b-f4757185b691,1,0,4e305be6-8bbf-4215-aeea-1283aba6d19e,4e305be6-8bbf-4215-aeea-1283aba6d19e,1,0,ebedc283-5eb0-459b-b686-f8643666b8b8,ebedc283-5eb0-459b-b686-f8643666b8b8,1,0,6a6afffd-cfed-4801-8b59-34d27e46565c,6a6afffd-cfed-4801-8b59-34d27e46565c,1,0,a469b12d-4537-419c-91e0-37abc9d31505,a469b12d-4537-419c-91e0-37abc9d31505,1,0,6f312bda-1f4d-48a6-bd95-f23f34f0ea4b,6f312bda-1f4d-48a6-bd95-f23f34f0ea4b,1,0,82c42232-531e-403f-8599-cc21a248fa2c,82c42232-531e-403f-8599-cc21a248fa2c,1,0,9104b791-9ac4-41ba-a7f0-9e609db3b578,9104b791-9ac4-41ba-a7f0-9e609db3b578,1,0,2d3721d1-816f-4e84-9df1-863cb269d83d,2d3721d1-816f-4e84-9df1-863cb269d83d,1,0,5ffc2b03-28c0-45da-ab3e-e4c5d449a898,5ffc2b03-28c0-45da-ab3e-e4c5d449a898,1,0,5c1a1206-0521-44db-8cdd-3e132f2e5a34,5c1a1206-0521-44db-8cdd-3e132f2e5a34,1,0,a630b2d5-2a8e-471e-a7ca-2498e15ace47,a630b2d5-2a8e-471e-a7ca-2498e15ace47,1,0,ba0855a3-8384-4681-a6f0-6373f23cf52d,ba0855a3-8384-4681-a6f0-6373f23cf52d,1,0,0b09cf2f-1759-4362-b997-29e09ac00445,0b09cf2f-1759-4362-b997-29e09ac00445,1,0,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,1,0,828ddf5d-ca09-4baf-897f-77d569e02a6b,828ddf5d-ca09-4baf-897f-77d569e02a6b,1,0,8856015c-a695-4b1a-99ef-770263f9dc4a,8856015c-a695-4b1a-99ef-770263f9dc4a,1,0,183ec2b5-e173-4885-9e26-1098ffa15020,183ec2b5-e173-4885-9e26-1098ffa15020,1,0,74702fdf-bfc5-4658-ba58-e39bcfbaa647,74702fdf-bfc5-4658-ba58-e39bcfbaa647,1,0,2f436ec3-6a04-4d2c-998a-c60ea875ca86,2f436ec3-6a04-4d2c-998a-c60ea875ca86,1,0,c91f630a-286c-4eb8-b87e-6e6bc7670482,c91f630a-286c-4eb8-b87e-6e6bc7670482,1,0,8ace2dbf-ed9d-46fd-bda7-d884da77e30c,8ace2dbf-ed9d-46fd-bda7-d884da77e30c,1,0,ba59bf05-b815-4679-94ce-601923d60461,ba59bf05-b815-4679-94ce-601923d60461,1,0,65ff172c-3892-4dd2-821b-5d6293805528,65ff172c-3892-4dd2-821b-5d6293805528,1,0,00c47343-9f64-4368-896e-85f1639e4dae,00c47343-9f64-4368-896e-85f1639e4dae,1,0,afc02a73-15bd-4ab1-97bb-5cea6206a44f,afc02a73-15bd-4ab1-97bb-5cea6206a44f,1,0,27a9ef3c-902c-49e3-ab84-ba51185ab111,27a9ef3c-902c-49e3-ab84-ba51185ab111,1,0,20ba43f5-348f-41e4-b365-ff9485a3951d,20ba43f5-348f-41e4-b365-ff9485a3951d,1,0,2f6bc78d-d2ed-491f-bc66-3f95e2ca574c,2f6bc78d-d2ed-491f-bc66-3f95e2ca574c,1,0,bf3e3395-3e41-49c2-b59e-fdcdc3ef956f,bf3e3395-3e41-49c2-b59e-fdcdc3ef956f,1,0,164db402-4516-4d99-80d2-6cb7b6fd7698,164db402-4516-4d99-80d2-6cb7b6fd7698,1,0,93b18f0a-7aa1-42db-809b-1e543cda57de,93b18f0a-7aa1-42db-809b-1e543cda57de,1,0,a8e04267-5a28-40af-8d45-e65375cd8273,a8e04267-5a28-40af-8d45-e65375cd8273,1,0,6a947b2d-3e6b-42c8-a9fd-4c5a71d600a9,6a947b2d-3e6b-42c8-a9fd-4c5a71d600a9,1,0,ae641a80-4ada-4592-ace9-29a82e6700e4,ae641a80-4ada-4592-ace9-29a82e6700e4,1,0,c6bf0d10-5406-44e8-b3f3-74b7db2b71e6,c6bf0d10-5406-44e8-b3f3-74b7db2b71e6,1,0,8d653af4-ac00-4ca9-a9e6-4e1a888c6dfb,8d653af4-ac00-4ca9-a9e6-4e1a888c6dfb,1,0,703453e8-cb49-491b-8e19-a17b89894d1e,703453e8-cb49-491b-8e19-a17b89894d1e,1,0,f0b0608c-178f-4dea-b461-0d8f00d79d30,f0b0608c-178f-4dea-b461-0d8f00d79d30,1,0,ed2dba0c-7fe3-4d24-b6a6-b104beadc286,ed2dba0c-7fe3-4d24-b6a6-b104beadc286,1,0,a4c98768-c9fc-4f95-b89b-bb1cb0e8fade,a4c98768-c9fc-4f95-b89b-bb1cb0e8fade,1,0,5546b9a9-a4fe-4a2b-9492-883bcb37a210,5546b9a9-a4fe-4a2b-9492-883bcb37a210,1,0,6fb76c5f-844f-4cbc-ae7c-4ac834fddfc9,6fb76c5f-844f-4cbc-ae7c-4ac834fddfc9,1,0,275a5772-8428-497a-81ef-c919f15fcccd,275a5772-8428-497a-81ef-c919f15fcccd,1,0,8df6e7e6-2a1e-4cf3-bdc9-60e52ea3f625,8df6e7e6-2a1e-4cf3-bdc9-60e52ea3f625,1,0,b5278cbd-1771-4739-9013-a28682689778,b5278cbd-1771-4739-9013-a28682689778,1,0,a52f2de4-f414-4837-9b1a-6d8f282e1327,a52f2de4-f414-4837-9b1a-6d8f282e1327,1,0,82573440-0ef5-4c07-bb1e-fe90295981d2,82573440-0ef5-4c07-bb1e-fe90295981d2,1,0,804be484-09cf-45a4-bd1f-c8850067e2b2,804be484-09cf-45a4-bd1f-c8850067e2b2,1,0,f1a145ce-a199-475c-ab8a-065c11a27277,f1a145ce-a199-475c-ab8a-065c11a27277,1,0,8d509c4e-fcea-4ccd-aec4-e146f2d4319b,8d509c4e-fcea-4ccd-aec4-e146f2d4319b,1,0,d126a11e-c770-4309-941f-cbcdd5cbad5d,d126a11e-c770-4309-941f-cbcdd5cbad5d,1,0,f4d88096-bff9-416a-8f75-9143ede1213f,f4d88096-bff9-416a-8f75-9143ede1213f,1,0,6b0721fe-d27f-4d1a-b377-26fce2ed1687,6b0721fe-d27f-4d1a-b377-26fce2ed1687,1,0,25c97480-330c-42f2-a2a5-031062a3a683,25c97480-330c-42f2-a2a5-031062a3a683,1,0,a2fb1bf9-d29a-4bfe-95f1-10883fa019b3,a2fb1bf9-d29a-4bfe-95f1-10883fa019b3,1,0,6adc3aa8-8784-467d-8e12-b60418a5c729,6adc3aa8-8784-467d-8e12-b60418a5c729,1,0,265206ed-4d41-497e-a483-c14052134500,265206ed-4d41-497e-a483-c14052134500,1,0,bf070420-9eb7-4372-96a6-b0d00ac3ce8c,bf070420-9eb7-4372-96a6-b0d00ac3ce8c,1,0,10336352-f3a1-4bc3-bdec-1a2eef15f176,10336352-f3a1-4bc3-bdec-1a2eef15f176,1,0,cacabf2f-6d1c-4c33-80c7-c27a5e757cc9,cacabf2f-6d1c-4c33-80c7-c27a5e757cc9,1,0,3b7c713e-81ae-4adc-9519-99c936599ef7,3b7c713e-81ae-4adc-9519-99c936599ef7,1,0,1c8ffbbd-035c-45cf-8ec8-dc5d26d7f673,1c8ffbbd-035c-45cf-8ec8-dc5d26d7f673,1,0,ecda2c4b-6411-4b47-ab59-1918bad5acdd,ecda2c4b-6411-4b47-ab59-1918bad5acdd,1,0,a9a05a66-0a1c-4e53-9d09-1abe8f45e354,a9a05a66-0a1c-4e53-9d09-1abe8f45e354,1,0,2c811ee8-f50d-4c39-82ee-0492feb1c431,2c811ee8-f50d-4c39-82ee-0492feb1c431,1,0,399f679b-f48a-4d4e-b890-5eab9e4598c3,399f679b-f48a-4d4e-b890-5eab9e4598c3,1,0,da9ca4c4-c291-4f8b-accd-bc1b123ed4f8,da9ca4c4-c291-4f8b-accd-bc1b123ed4f8,1,0,9ad1ea04-1aee-4a80-b4df-60526cdf3ad0,9ad1ea04-1aee-4a80-b4df-60526cdf3ad0,1,0,b65954b9-39f9-4f7c-8af2-939af0694368,b65954b9-39f9-4f7c-8af2-939af0694368,1,0,3a984dac-c971-42c3-9736-a45c46b55f01,3a984dac-c971-42c3-9736-a45c46b55f01,1,0,edaa4ad4-4dd9-4225-85e8-b0d74d167985,edaa4ad4-4dd9-4225-85e8-b0d74d167985,1,0,c060feda-b1ec-4db3-b16e-d19b36833a2c,c060feda-b1ec-4db3-b16e-d19b36833a2c,1,0,3ff6a150-b687-4e7e-b09d-2aebb8312a61,3ff6a150-b687-4e7e-b09d-2aebb8312a61,1,0,2116217b-1660-499f-953d-f685738b0f30,2116217b-1660-499f-953d-f685738b0f30,1,0,45b46613-13cc-4888-9bb7-53780402206f,45b46613-13cc-4888-9bb7-53780402206f,1,0,5c224274-5495-49bc-b124-e6d649b09d57,5c224274-5495-49bc-b124-e6d649b09d57,1,0,0a92df3d-fb51-4fba-938c-55846929bd5f,0a92df3d-fb51-4fba-938c-55846929bd5f,1,0,1d005a8d-aaac-4442-a7dc-12634d03f6f3,1d005a8d-aaac-4442-a7dc-12634d03f6f3,1,0,348d0ad2-f64e-4ea0-8b8e-11bbc10926f7,348d0ad2-f64e-4ea0-8b8e-11bbc10926f7,1,0,7f7eb00d-7a38-4025-8853-9d1cf2dab1e3,7f7eb00d-7a38-4025-8853-9d1cf2dab1e3,1,0,36221881-a9c8-4b91-acac-44f7c065c05a,36221881-a9c8-4b91-acac-44f7c065c05a,1,0,3fdcf013-38e0-4a30-9ae8-19100e6704ba,3fdcf013-38e0-4a30-9ae8-19100e6704ba,1,0,876e31ff-ab7b-4ea4-b491-161963727dd1,876e31ff-ab7b-4ea4-b491-161963727dd1,1,0,bb43995b-68b4-41a1-8458-e10a2d8925f1,bb43995b-68b4-41a1-8458-e10a2d8925f1,1,0,61730dd9-fed7-43ce-8f38-724cac8f3d08,61730dd9-fed7-43ce-8f38-724cac8f3d08,1,0,b6424caf-3db8-4cfe-b92d-7435c23606a5,b6424caf-3db8-4cfe-b92d-7435c23606a5,1,0,e6a494b8-27e7-46a6-9435-7be6e150a69e,e6a494b8-27e7-46a6-9435-7be6e150a69e,1,0,133dc852-59d3-4351-934d-8845f8a38431,133dc852-59d3-4351-934d-8845f8a38431,1,0,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,1,0,b67914a8-d483-4bed-bd4d-a4aadd4998a4,b67914a8-d483-4bed-bd4d-a4aadd4998a4,1,0,707a8a49-fec5-454c-9e80-c3da829d395c,707a8a49-fec5-454c-9e80-c3da829d395c,1,0,b5ea4aff-11be-4232-94a2-cb92801b6c49,b5ea4aff-11be-4232-94a2-cb92801b6c49,1,0,6f630213-c16c-421c-a160-09e3c729ab26,6f630213-c16c-421c-a160-09e3c729ab26,1,0,878c638c-7c84-4914-896a-d4fdf0d759ef,878c638c-7c84-4914-896a-d4fdf0d759ef,1,0,6065653e-b7a9-4033-9617-f64430c57d89,6065653e-b7a9-4033-9617-f64430c57d89,1,0,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,1,0,00d1d85b-c258-4f10-9d13-a99375a29fc1,00d1d85b-c258-4f10-9d13-a99375a29fc1,1,0,f6d79449-eca9-4d13-9ddc-8b36ae9e729e,f6d79449-eca9-4d13-9ddc-8b36ae9e729e,1,0,b9d56dc6-3a10-4795-9ca3-dbf69310813e,b9d56dc6-3a10-4795-9ca3-dbf69310813e,1,0,f4b53ce1-8c1b-4f57-b5de-acb4692a37d8,f4b53ce1-8c1b-4f57-b5de-acb4692a37d8,1,0,9b18e04f-036d-43ae-b949-9432f96d71d9,9b18e04f-036d-43ae-b949-9432f96d71d9,1,0,e99a1f54-4001-45ee-81e3-472656c05f57,e99a1f54-4001-45ee-81e3-472656c05f57,1,0,b104e7b9-8a41-4154-a84b-d1bb12fab939,b104e7b9-8a41-4154-a84b-d1bb12fab939,1,0,86b835c4-341e-4b0d-99e5-2369684ff3f4,86b835c4-341e-4b0d-99e5-2369684ff3f4,1,0,55c48fa8-8d12-4378-97a0-c0ed683f6b83,55c48fa8-8d12-4378-97a0-c0ed683f6b83,1,0,b0f74a92-f5e4-4859-9a72-643ddb5315cb,b0f74a92-f5e4-4859-9a72-643ddb5315cb,1,0,1864093d-62ac-4b12-ad16-c460432c99f6,1864093d-62ac-4b12-ad16-c460432c99f6,1,0,6eb78c87-24ed-43a8-800d-ccde02358b32,6eb78c87-24ed-43a8-800d-ccde02358b32,1,0,787d5fec-c476-4519-884b-f62492fc8396,787d5fec-c476-4519-884b-f62492fc8396,1,0,59ebd5fb-d782-46ea-b693-7885d2ababa8,59ebd5fb-d782-46ea-b693-7885d2ababa8,1,0,39a39567-43d8-47c5-9f17-0a11f31e129a,39a39567-43d8-47c5-9f17-0a11f31e129a,1,0,b24e8ff0-eb86-4ce6-84f5-49134b48f031,b24e8ff0-eb86-4ce6-84f5-49134b48f031,1,0,52ab6aea-e6a0-43f0-9cc8-f7c9126635cc,52ab6aea-e6a0-43f0-9cc8-f7c9126635cc,1,0,e983f539-e369-491e-9cee-510518187870,e983f539-e369-491e-9cee-510518187870,1,0,876b23bf-2f48-4916-ad0f-4de8306e1864,876b23bf-2f48-4916-ad0f-4de8306e1864,1,0,9a402a9c-a31f-4082-91d5-b4fe7576a5c2,9a402a9c-a31f-4082-91d5-b4fe7576a5c2,1,0,e7c63a25-c804-4bc4-a6f1-81009dd889e2,e7c63a25-c804-4bc4-a6f1-81009dd889e2,1,0,e99a1b17-0e37-489a-bc39-3dd2e23b0861,e99a1b17-0e37-489a-bc39-3dd2e23b0861,1,0,7ccd86cd-4294-4f6c-84f4-98e25e479f4d,7ccd86cd-4294-4f6c-84f4-98e25e479f4d,1,0,4c1576c4-b327-4ec1-87bc-662c5aba343b,4c1576c4-b327-4ec1-87bc-662c5aba343b,1,0,70e710c5-42df-465f-a9c5-8345c87e1f19,70e710c5-42df-465f-a9c5-8345c87e1f19,1,0,0f694ef1-4a97-4aed-ab4b-0b2c18ea7e17,0f694ef1-4a97-4aed-ab4b-0b2c18ea7e17,1,0,14facdfb-9835-4bb6-98a8-5a6ca9a5d2f8,14facdfb-9835-4bb6-98a8-5a6ca9a5d2f8,1,0,4492ac73-eb91-41f8-98f1-54c2b3ad212a,4492ac73-eb91-41f8-98f1-54c2b3ad212a,1,0,869b43fb-968f-4fe0-b945-5030c90a38f2,869b43fb-968f-4fe0-b945-5030c90a38f2,1,0,af071a52-212b-4131-98e6-81f6048a70e6,af071a52-212b-4131-98e6-81f6048a70e6,1,0,37210dde-9a2f-475c-8341-578ac99f0e17,37210dde-9a2f-475c-8341-578ac99f0e17,1,0,e5094d4f-ee61-4142-a97b-d96172350f65,e5094d4f-ee61-4142-a97b-d96172350f65,1,0,3a8fffb6-a732-440c-afb9-d1c699ea53b6,3a8fffb6-a732-440c-afb9-d1c699ea53b6,1,0,b0650787-8ff5-4407-b491-bcdc2f61fd58,b0650787-8ff5-4407-b491-bcdc2f61fd58,1,0,33dd6bba-0044-4e2f-ae9e-c8a26079ab2a,33dd6bba-0044-4e2f-ae9e-c8a26079ab2a,1,0,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,1,0,9aadad98-69f5-41ce-ad1c-0afd8c610d86,9aadad98-69f5-41ce-ad1c-0afd8c610d86,1,0,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,1,0,3d662173-e19d-4077-9a08-8c8899226e24,3d662173-e19d-4077-9a08-8c8899226e24,1,0,69fd1e6e-7302-4ca8-8419-ec567ae66bef,69fd1e6e-7302-4ca8-8419-ec567ae66bef,1,0,0eee931a-57bb-4844-8e6e-eaca342640a0,0eee931a-57bb-4844-8e6e-eaca342640a0,1,0,20c57e30-5856-4801-9e77-8006471d89f8,20c57e30-5856-4801-9e77-8006471d89f8,1,0,64eff9f4-c57b-40a0-bd83-7e371fd010ce,64eff9f4-c57b-40a0-bd83-7e371fd010ce,1,0,4a3fe393-8aea-4394-8c10-a234f1f191ad,4a3fe393-8aea-4394-8c10-a234f1f191ad,1,0,6f9a3d00-d935-4fa6-9fd2-14700226daff,6f9a3d00-d935-4fa6-9fd2-14700226daff,1,0,d792831c-698d-40c6-96c2-dd0ae6f30707,d792831c-698d-40c6-96c2-dd0ae6f30707,1,0,a1d91c5f-1acd-4b46-887e-d06e7260dd20,a1d91c5f-1acd-4b46-887e-d06e7260dd20,1,0,3fd26019-c464-4c73-b18e-0888740b1747,3fd26019-c464-4c73-b18e-0888740b1747,1,0,1c2103d3-3feb-4412-98c4-c731f22eef2b,1c2103d3-3feb-4412-98c4-c731f22eef2b,1,0,569bb515-cec2-4da0-80f0-34dae50206e0,569bb515-cec2-4da0-80f0-34dae50206e0,1,0,a21989bd-a57f-4969-be3b-d8b39ead4145,a21989bd-a57f-4969-be3b-d8b39ead4145,1,0,c4aee120-cdbb-4b48-a1c7-99cccbafb120,c4aee120-cdbb-4b48-a1c7-99cccbafb120,1,0,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,1,0,a3667b25-7c18-446d-a318-685a4fe4bf89,a3667b25-7c18-446d-a318-685a4fe4bf89,1,0,fd271670-bde6-4351-abec-eb82548c6c98,fd271670-bde6-4351-abec-eb82548c6c98,1,0,498b012b-bb63-490e-8100-1d33dc84b400,498b012b-bb63-490e-8100-1d33dc84b400,1,0,8103f12c-ed50-4052-8117-33b6d11ef620,8103f12c-ed50-4052-8117-33b6d11ef620,1,0,4f8653e4-3f58-4bad-8ded-424fe7b1d18a,4f8653e4-3f58-4bad-8ded-424fe7b1d18a,1,0,799b3dda-fbfc-4dea-a577-30321e64f4d5,799b3dda-fbfc-4dea-a577-30321e64f4d5,1,0,7c7857b6-90e8-4b3f-9902-fd81bf68d133,7c7857b6-90e8-4b3f-9902-fd81bf68d133,1,0,617de19c-bf01-4900-832a-c169e9faeb79,617de19c-bf01-4900-832a-c169e9faeb79,1,0,70b73fd0-f5dc-411e-9bbb-10a538e8281b,70b73fd0-f5dc-411e-9bbb-10a538e8281b,1,0,758f44ad-54da-4f72-accf-0afecc4f4827,758f44ad-54da-4f72-accf-0afecc4f4827,1,0,05ee4a7c-63e6-4587-8be7-e206345e3471,05ee4a7c-63e6-4587-8be7-e206345e3471,1,0,98d5e98b-0382-4b28-a5d9-24392925664a,98d5e98b-0382-4b28-a5d9-24392925664a,1,0,7c424a77-2a83-4a85-8b7d-e8bb6d013c77,7c424a77-2a83-4a85-8b7d-e8bb6d013c77,1,0,2a77eb39-0487-4fb0-8d5b-d4a27592ea60,2a77eb39-0487-4fb0-8d5b-d4a27592ea60,1,0,19a18193-c5d3-4e56-86c5-5a81c525e9ad,19a18193-c5d3-4e56-86c5-5a81c525e9ad,1,0,c208fcc0-d7b2-435b-963a-e18c97727f8f,c208fcc0-d7b2-435b-963a-e18c97727f8f,1,0,ac5db038-8bc3-45ff-9e8d-04ea9fef6d43,ac5db038-8bc3-45ff-9e8d-04ea9fef6d43,1,0,bf11f7b1-6332-4499-ba48-b94bc10ef869,bf11f7b1-6332-4499-ba48-b94bc10ef869,1,0,4de445f0-7c27-4540-a5a8-9c3ca2a13fd2,4de445f0-7c27-4540-a5a8-9c3ca2a13fd2,1,0,2977fedd-2c56-4d21-8eb1-a424e1b17cb3,2977fedd-2c56-4d21-8eb1-a424e1b17cb3,1,0,0b8a2936-07c5-4b90-80e6-5a058e546de6,0b8a2936-07c5-4b90-80e6-5a058e546de6,1,0,34524248-668e-48e5-a801-f489cd664de8,34524248-668e-48e5-a801-f489cd664de8,1,0,ae0891ae-ecd2-4072-8d2b-0556030c9dfd,ae0891ae-ecd2-4072-8d2b-0556030c9dfd,1,0,e8f36bca-738b-471c-b8d3-8a484978934a,e8f36bca-738b-471c-b8d3-8a484978934a,1,0,336cb96e-8867-4c9d-b74c-b4287ac9212a,336cb96e-8867-4c9d-b74c-b4287ac9212a,1,0,fc7dbc20-7bef-4cbc-9b32-5d86cef5532c,fc7dbc20-7bef-4cbc-9b32-5d86cef5532c,1,0,29f616a6-b914-4ffb-8a86-1ae17089e2f7,29f616a6-b914-4ffb-8a86-1ae17089e2f7,1,0,c50075b0-e8e2-4a6c-92ef-05882aa3cfea,c50075b0-e8e2-4a6c-92ef-05882aa3cfea,1,0,5a1058fc-35f6-43c2-95e5-ae678e19e7d6,5a1058fc-35f6-43c2-95e5-ae678e19e7d6,1,0,05c27c89-2c26-4252-842d-9aa43ba0ea2f,05c27c89-2c26-4252-842d-9aa43ba0ea2f,1,0,7c1e16c2-201d-4a3f-b0f4-9d66f5f8a68b,7c1e16c2-201d-4a3f-b0f4-9d66f5f8a68b,1,0,f092729c-6b5d-4709-8b28-15e06129731d,f092729c-6b5d-4709-8b28-15e06129731d,1,0,c03be2f7-d681-417d-975a-5c8c7b716659,c03be2f7-d681-417d-975a-5c8c7b716659,1,0,fca7af5f-bdc0-4264-be68-5e5e38545368,fca7af5f-bdc0-4264-be68-5e5e38545368,1,0,a3fc0bce-a87e-4c15-b57b-f285a694bcdf,a3fc0bce-a87e-4c15-b57b-f285a694bcdf,1,0,ae124745-edfb-11e6-4681-a8667f21fde4,ae124745-edfb-11e6-4681-a8667f21fde4,1,0,f6fcf9c2-edfb-11e6-4681-a8667f21fde4,f6fcf9c2-edfb-11e6-4681-a8667f21fde4,1,0,ec70cf10-edfb-11e6-4681-a8667f21fde4,ec70cf10-edfb-11e6-4681-a8667f21fde4,1,0,7c47f039-1ca9-4c6f-ac36-f4cb59b48b65,7c47f039-1ca9-4c6f-ac36-f4cb59b48b65,1,0,0b7cee9b-3870-49f5-a58e-063cf5353467,0b7cee9b-3870-49f5-a58e-063cf5353467,1,0,d392a791-af74-40c9-ab20-6ed6aeabe864,d392a791-af74-40c9-ab20-6ed6aeabe864,1,0,974d2430-1ff6-4be9-a5aa-aa896e9a66d4,974d2430-1ff6-4be9-a5aa-aa896e9a66d4,1,0,1612570d-b069-405a-9dd3-80b8175fb468,1612570d-b069-405a-9dd3-80b8175fb468,1,0,3c429fe8-e663-4a58-817f-8f8382697dbb,3c429fe8-e663-4a58-817f-8f8382697dbb,1,0,c37be0c3-d2db-4e63-a8cb-7956a5396650,c37be0c3-d2db-4e63-a8cb-7956a5396650,1,0,83180e0d-fc4b-41ec-9a17-5af555a4776f,83180e0d-fc4b-41ec-9a17-5af555a4776f,1,0,27c52afc-7127-41e1-af8a-1b1bd2c9bfa8,27c52afc-7127-41e1-af8a-1b1bd2c9bfa8,1,0,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,1,0,561ed574-617d-4a46-b32b-f022e07846c8,561ed574-617d-4a46-b32b-f022e07846c8,1,0,cba706bf-a9a7-4dda-9c5a-a26e85119396,cba706bf-a9a7-4dda-9c5a-a26e85119396,1,0,159a4eb5-00cd-426c-86e3-09cd3f569f22,159a4eb5-00cd-426c-86e3-09cd3f569f22,1,0,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,1,0,3e8c6546-416c-4437-8c85-2cf591b4fc3f,3e8c6546-416c-4437-8c85-2cf591b4fc3f,1,0,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,1,0,9a0b27db-e4ac-496b-b6de-876b90381527,9a0b27db-e4ac-496b-b6de-876b90381527,1,0,2ded5135-b6c3-46dd-b563-7b6fab986d23,2ded5135-b6c3-46dd-b563-7b6fab986d23,1,0,14215720-ccb3-4e5a-8345-cd42c96a3e77,14215720-ccb3-4e5a-8345-cd42c96a3e77,1,0,24fa0604-b6a5-49ad-9d03-b2cf8e81dad8,24fa0604-b6a5-49ad-9d03-b2cf8e81dad8,1,0,0690a5c7-bc25-4101-afa5-69c095d415c2,0690a5c7-bc25-4101-afa5-69c095d415c2,1,0,2ad7b509-4cd1-456a-a6ae-94649fdf8c3e,2ad7b509-4cd1-456a-a6ae-94649fdf8c3e,1,0,79013bba-a0f2-481c-a63e-095a54ee52aa,79013bba-a0f2-481c-a63e-095a54ee52aa,1,0,8523c346-f144-41b8-a702-2d588e7097c2,8523c346-f144-41b8-a702-2d588e7097c2,1,0,93969a30-d9d7-4f2f-85fa-57a4eb7495bf,93969a30-d9d7-4f2f-85fa-57a4eb7495bf,1,0,9fb73c9b-05de-4474-8a28-7e3fd5b2b143,9fb73c9b-05de-4474-8a28-7e3fd5b2b143,1,0,fa2bd6a6-bb46-4e21-8684-248578310164,fa2bd6a6-bb46-4e21-8684-248578310164,1,0,f7cf3b42-39c0-48db-b8ca-fe9ea267a45a,f7cf3b42-39c0-48db-b8ca-fe9ea267a45a,1,0,3a0c06eb-f6d5-46c3-b0b9-c8d98e572093,3a0c06eb-f6d5-46c3-b0b9-c8d98e572093,1,0,88ccac36-169d-48f8-bc68-15e3bb775b79,88ccac36-169d-48f8-bc68-15e3bb775b79,1,0,a1640988-bd60-43b3-86f1-184b9db275c6,a1640988-bd60-43b3-86f1-184b9db275c6,1,0,300a02f7-8062-4843-b11e-0321f8b40f4d,300a02f7-8062-4843-b11e-0321f8b40f4d,1,0,c8015ae6-31a7-49f4-a9e6-5d13774f64e5,c8015ae6-31a7-49f4-a9e6-5d13774f64e5,1,0,970430c4-37fc-476c-a3f6-5f6bebd2e663,970430c4-37fc-476c-a3f6-5f6bebd2e663,1,0,4cddde4a-42d5-44d0-a693-ea90eab9b169,4cddde4a-42d5-44d0-a693-ea90eab9b169,1,0,d9d612bb-6d04-4186-b243-f99aded0ba43,d9d612bb-6d04-4186-b243-f99aded0ba43,1,0,15db8b7b-59f5-4551-b2bd-b24801f056b5,15db8b7b-59f5-4551-b2bd-b24801f056b5,1,0,88d2236b-794b-485a-b075-f1a54cadcd3a,88d2236b-794b-485a-b075-f1a54cadcd3a,1,0,b7f9553f-6219-4401-a6f4-9debd47186d2,b7f9553f-6219-4401-a6f4-9debd47186d2,1,0,26a7e044-a583-40af-9daa-5aea628c8f19,26a7e044-a583-40af-9daa-5aea628c8f19,1,0,548717ca-0645-49b4-9580-c77cd4d03ebb,548717ca-0645-49b4-9580-c77cd4d03ebb,1,0,29c337bd-9811-4fce-91bb-20c253d2d14a,29c337bd-9811-4fce-91bb-20c253d2d14a,1,0,b451f2fc-ced2-418a-a803-4fe99488b394,b451f2fc-ced2-418a-a803-4fe99488b394,1,0,62269222-67a7-489e-ba59-4294902275bc,62269222-67a7-489e-ba59-4294902275bc,1,0,fed1b714-a2c9-42cf-9ced-35ed895e4167,fed1b714-a2c9-42cf-9ced-35ed895e4167,1,0,6f334263-10c8-4187-9a84-d2fd1afadc48,6f334263-10c8-4187-9a84-d2fd1afadc48,1,0,f5674a0d-a106-4cc0-a402-b378280eab3d,f5674a0d-a106-4cc0-a402-b378280eab3d,1,0,9a68a81b-c6bd-4353-baf4-da8a21f98fb9,9a68a81b-c6bd-4353-baf4-da8a21f98fb9,1,0,8db2b1d8-c415-4846-bd1a-9fec1b105ff0,8db2b1d8-c415-4846-bd1a-9fec1b105ff0,1,0,3ed20a3b-031c-4f2b-a66a-14cceed80407,3ed20a3b-031c-4f2b-a66a-14cceed80407,1,0,3831a5d8-12d5-4730-ac2e-e11f084dc684,3831a5d8-12d5-4730-ac2e-e11f084dc684,1,0,b6dce793-c652-48de-b2da-1dc3e89e1521,b6dce793-c652-48de-b2da-1dc3e89e1521,1,0,41990cad-a43e-46fd-b9bc-e8acc1d6e937,41990cad-a43e-46fd-b9bc-e8acc1d6e937,1,0,3bcce139-d42e-45c2-ace8-28aa34e01a38,3bcce139-d42e-45c2-ace8-28aa34e01a38,1,0,2e6a596c-c203-48b3-af11-bf0aef0f70a1,2e6a596c-c203-48b3-af11-bf0aef0f70a1,1,0,82eb7d08-12ad-42a2-9257-91b93f7cc890,82eb7d08-12ad-42a2-9257-91b93f7cc890,1,0,50754c7d-9c8a-497c-a4c8-76d7400b3412,50754c7d-9c8a-497c-a4c8-76d7400b3412,1,0,193f2d79-83a7-4044-89c6-0b5d7c7cf80a,193f2d79-83a7-4044-89c6-0b5d7c7cf80a,1,0,93070fc1-4204-43b7-b8eb-1bf905f5fa3f,93070fc1-4204-43b7-b8eb-1bf905f5fa3f,1,0,d29ba846-bc42-4364-b69d-4b56532920e0,d29ba846-bc42-4364-b69d-4b56532920e0,1,0,83239cd4-50cb-4281-8be3-fd89e410c15c,83239cd4-50cb-4281-8be3-fd89e410c15c,1,0,fa99302b-3e86-4330-b9ff-c38d933f81f0,fa99302b-3e86-4330-b9ff-c38d933f81f0,1,0,fb9c08ee-92e9-4bd9-8794-ef0f221eee99,fb9c08ee-92e9-4bd9-8794-ef0f221eee99,1,0,e4cd44e6-1255-490f-96d9-f805ac92cf67,e4cd44e6-1255-490f-96d9-f805ac92cf67,1,0,8ae9be37-cda5-4b66-8a97-5e77d2a2c75f,8ae9be37-cda5-4b66-8a97-5e77d2a2c75f,1,0,5a9011fc-c023-47fb-a999-2c6ca33a04b9,5a9011fc-c023-47fb-a999-2c6ca33a04b9,1,0,ab574fa5-0730-4456-b741-111e5ea8a896,ab574fa5-0730-4456-b741-111e5ea8a896,1,0,b8d5adf0-dc2f-4041-bc97-cb2442f00054,b8d5adf0-dc2f-4041-bc97-cb2442f00054,1,0,398199c4-4830-48e9-89c5-45c2c5a30ee6,398199c4-4830-48e9-89c5-45c2c5a30ee6,1,0,546ba3bb-4614-423f-954c-466530f42784,546ba3bb-4614-423f-954c-466530f42784,1,0,e5bc54f0-d7d0-471c-adda-a0e73e0dd3cf,e5bc54f0-d7d0-471c-adda-a0e73e0dd3cf,1,0,af447f33-ef41-4eda-96ec-5bac26fff33e,af447f33-ef41-4eda-96ec-5bac26fff33e,1,0,f0c83fc5-6e9a-4185-ab43-2b419ace7909,f0c83fc5-6e9a-4185-ab43-2b419ace7909,1,0,4bd15718-6a0e-4a86-921a-09d38ba4be4c,4bd15718-6a0e-4a86-921a-09d38ba4be4c,1,0,32586ba6-8922-4321-b134-70d1b77a16a4,32586ba6-8922-4321-b134-70d1b77a16a4,1,0,a21cf522-d657-49ba-a198-01ff1de5e3f0,a21cf522-d657-49ba-a198-01ff1de5e3f0,1,0,4dc698da-8471-4b3f-816d-f1467cd2e5f1,4dc698da-8471-4b3f-816d-f1467cd2e5f1,1,0,7ceb2f18-4dae-4b13-a5be-e949be165b4e,7ceb2f18-4dae-4b13-a5be-e949be165b4e,1,0,c4f94f6d-e33f-4226-bf47-c4b544098082,c4f94f6d-e33f-4226-bf47-c4b544098082,1,0,0abca5b8-4974-48aa-bf5d-dbbe2c2ea0e6,0abca5b8-4974-48aa-bf5d-dbbe2c2ea0e6,1,0,fc67b510-3fb4-4305-92d2-c252bc718f03,fc67b510-3fb4-4305-92d2-c252bc718f03,1,0,ed98a7b2-ad31-401f-a65e-dfbcc8e5a4a8,ed98a7b2-ad31-401f-a65e-dfbcc8e5a4a8,1,0,9a5e3d2c-ab69-4f9d-a56f-20bb5f0be1e2,9a5e3d2c-ab69-4f9d-a56f-20bb5f0be1e2,1,0,cf1f7915-94ad-47e7-8676-73271d0cf71e,cf1f7915-94ad-47e7-8676-73271d0cf71e,1,0,fceb6e4a-bd51-4193-a542-70d2317af669,fceb6e4a-bd51-4193-a542-70d2317af669,1,0,f9f991a6-ddf3-4953-8a1f-e6c0e1a7f4e9,f9f991a6-ddf3-4953-8a1f-e6c0e1a7f4e9,1,0,80847d57-1795-46c7-a106-926e1f43ac1e,80847d57-1795-46c7-a106-926e1f43ac1e,1,0,38685415-dc87-48b4-8cc4-f85b438f2ec2,38685415-dc87-48b4-8cc4-f85b438f2ec2,1,0,110eff8b-aeec-4ba5-b710-fefc1bd60284,110eff8b-aeec-4ba5-b710-fefc1bd60284,1,0,0a8a6bb9-8b6a-43cf-9d46-b18a8a9591d8,0a8a6bb9-8b6a-43cf-9d46-b18a8a9591d8,1,0,75eca481-002b-4046-898d-dfac9357611f,75eca481-002b-4046-898d-dfac9357611f,1,0,5d81af5c-3133-4e21-9ea4-ffe3d3ca9769,5d81af5c-3133-4e21-9ea4-ffe3d3ca9769,1,0,0f83d532-f675-4aea-802e-d640cc53e4a9,0f83d532-f675-4aea-802e-d640cc53e4a9,1,0,75b0d16b-4acd-4870-8e9d-f2764171e747,75b0d16b-4acd-4870-8e9d-f2764171e747,1,0,8f2cd606-d326-4c92-bfff-e5ec8b5057b5,8f2cd606-d326-4c92-bfff-e5ec8b5057b5,1,0,ed56abb2-66c6-412e-bead-9b23c59bd49a,ed56abb2-66c6-412e-bead-9b23c59bd49a,1,0,47ad737d-c9d3-4d4d-8d4d-b550412062c4,47ad737d-c9d3-4d4d-8d4d-b550412062c4,1,0,204f67e9-204d-47b6-afdd-8e880b7563bc,204f67e9-204d-47b6-afdd-8e880b7563bc,1,0,4da10de3-d999-4acd-bf5a-b1c60cf01b32,4da10de3-d999-4acd-bf5a-b1c60cf01b32,1,0,5e52263e-856f-43da-96ca-d4f06127f604,5e52263e-856f-43da-96ca-d4f06127f604,1,0,ab6f18fe-4ce4-4ecb-945b-bf71ef793549,ab6f18fe-4ce4-4ecb-945b-bf71ef793549,1,0,57904a00-a127-4add-a9fb-639e17c80e33,57904a00-a127-4add-a9fb-639e17c80e33,1,0,2f2f70b7-8f78-4eee-acb7-fe103827e88a,2f2f70b7-8f78-4eee-acb7-fe103827e88a,1,0,f6e8a922-c28b-49b2-ace5-0c812946270d,f6e8a922-c28b-49b2-ace5-0c812946270d,1,0,3d9d472e-a914-4f76-b087-19d4cfe19c19,3d9d472e-a914-4f76-b087-19d4cfe19c19,1,0,81225721-7e65-451d-9175-76fddc50f0c4,81225721-7e65-451d-9175-76fddc50f0c4,1,0,4a6bfd2c-0690-4504-9952-10e7c31156e9,4a6bfd2c-0690-4504-9952-10e7c31156e9,1,0,8f2dfd13-5e16-4fdd-be02-033d27b43317,8f2dfd13-5e16-4fdd-be02-033d27b43317,1,0,2c3849f2-46cc-4350-a6c5-f5587af2c699,2c3849f2-46cc-4350-a6c5-f5587af2c699,1,0,0110decc-d06e-43cf-9d01-30d412edcdd7,0110decc-d06e-43cf-9d01-30d412edcdd7,1,0,3ea32a24-d37b-4fad-937a-9d1357d649a9,3ea32a24-d37b-4fad-937a-9d1357d649a9,1,0,2856ee9a-0fea-4684-b7b8-4844773eae07,2856ee9a-0fea-4684-b7b8-4844773eae07,1,0,84e09840-8d67-416f-87a2-7f03c04180c9,84e09840-8d67-416f-87a2-7f03c04180c9,1,0,0388f22d-f91d-45c9-a8ae-900a24cbfe67,0388f22d-f91d-45c9-a8ae-900a24cbfe67,1,0,60fa2562-4914-46d6-a00a-1bb6e2803263,60fa2562-4914-46d6-a00a-1bb6e2803263,1,0,0d61a8d4-2dc8-435e-a238-416d7640576f,0d61a8d4-2dc8-435e-a238-416d7640576f,1,0,5ea899d4-e076-4a1c-838c-e369abc4705f,5ea899d4-e076-4a1c-838c-e369abc4705f,1,0,f2bf5f4a-e53b-4300-bbc7-97ac2e06f3c2,f2bf5f4a-e53b-4300-bbc7-97ac2e06f3c2,1,0,ab2e75f0-8da7-4b38-8f30-537424b719db,ab2e75f0-8da7-4b38-8f30-537424b719db,1,0,db344a42-61b8-4544-9aa1-8840ab8a70f0,db344a42-61b8-4544-9aa1-8840ab8a70f0,1,0,bd029e3f-a6bd-4be9-81f3-f3ea84f424ce,bd029e3f-a6bd-4be9-81f3-f3ea84f424ce,1,0,043bd776-5a7b-45ff-8b4a-5eed2bba0054,043bd776-5a7b-45ff-8b4a-5eed2bba0054,1,0,6a708860-e3b6-46ea-bea5-0d3e426c72f6,6a708860-e3b6-46ea-bea5-0d3e426c72f6,1,0,7c9e30d0-4a25-4d1d-a5ad-c48b231f453c,7c9e30d0-4a25-4d1d-a5ad-c48b231f453c,1,0,f53a3a46-edad-4cc0-8814-3755c2ea2c03,f53a3a46-edad-4cc0-8814-3755c2ea2c03,1,0,0a60b201-23f7-483b-ac16-5d270f32344e,0a60b201-23f7-483b-ac16-5d270f32344e,1,0,78058cd3-eb56-483c-96f5-1bf8883abc76,78058cd3-eb56-483c-96f5-1bf8883abc76,1,0,cd1fbfdd-d05e-4c22-aa04-83e9d36fb557,cd1fbfdd-d05e-4c22-aa04-83e9d36fb557,1,0,735eb95a-f4a9-4a90-a9a0-ab269b89f4de,735eb95a-f4a9-4a90-a9a0-ab269b89f4de,1,0,49f4a74c-abc2-446f-8f3c-de7bc02d84bf,49f4a74c-abc2-446f-8f3c-de7bc02d84bf,1,0,9d55341b-ceb2-4400-aeb6-3b579d9c6f2b,9d55341b-ceb2-4400-aeb6-3b579d9c6f2b,1,0,ab1efcef-f81b-45e5-893d-56e75c1e0a6f,ab1efcef-f81b-45e5-893d-56e75c1e0a6f,1,0,bbefbf22-6d11-4639-b53e-b72e94ff307c,bbefbf22-6d11-4639-b53e-b72e94ff307c,1,0,dca6a730-8a3f-4b78-926b-2287e21a25a1,dca6a730-8a3f-4b78-926b-2287e21a25a1,1,0,bdec80e6-4aef-4603-98dc-3332abda955c,bdec80e6-4aef-4603-98dc-3332abda955c,1,0,8be7adcd-b49a-4192-9f62-e0b0089b0386,8be7adcd-b49a-4192-9f62-e0b0089b0386,1,0,e4e8e36b-6060-43f3-8b05-bbbf61c3decc,e4e8e36b-6060-43f3-8b05-bbbf61c3decc,1,0,a53447c8-0299-4cf0-a6f9-5a3af423be38,a53447c8-0299-4cf0-a6f9-5a3af423be38,1,0,4f8a2980-bdb4-4a4f-82ec-2822dc1adc49,4f8a2980-bdb4-4a4f-82ec-2822dc1adc49,1,0,91b5a3ca-5f7b-462d-b322-ab8e938add40,91b5a3ca-5f7b-462d-b322-ab8e938add40,1,0,8db8d80c-bf04-4252-8371-46a1dd7e2720,8db8d80c-bf04-4252-8371-46a1dd7e2720,1,0,6fdb4b65-1caf-4472-8135-c6a479bda6d4,6fdb4b65-1caf-4472-8135-c6a479bda6d4,1,0,b5a8b32f-8f8d-4e13-9113-94e66f5c9621,b5a8b32f-8f8d-4e13-9113-94e66f5c9621,1,0,9b8cf6f0-2b56-4954-b982-db18ad78c5ef,9b8cf6f0-2b56-4954-b982-db18ad78c5ef,1,0,1e869478-9bff-4854-9f9c-699b7d1c8faa,1e869478-9bff-4854-9f9c-699b7d1c8faa,1,0,b8fe43d1-b9a7-4ec1-94bd-1e7fad424f8d,b8fe43d1-b9a7-4ec1-94bd-1e7fad424f8d,1,0,f64089ee-72dd-4fcf-8926-31e95c6fcf77,f64089ee-72dd-4fcf-8926-31e95c6fcf77,1,0,5d93aea8-3f41-4e77-bed5-4b2377cbfe0e,5d93aea8-3f41-4e77-bed5-4b2377cbfe0e,1,0,e1e151cc-7b8a-4125-804f-c902a522ed81,e1e151cc-7b8a-4125-804f-c902a522ed81,1,0,f475494e-fe94-4902-b2da-3ade01eba5bb,f475494e-fe94-4902-b2da-3ade01eba5bb,1,0,fbb814b2-cb2f-474d-9c96-5571cef3030e,fbb814b2-cb2f-474d-9c96-5571cef3030e,1,0,4e892154-3279-492c-9eae-124304225c5d,4e892154-3279-492c-9eae-124304225c5d,1,0,53a6ffa4-31f8-4717-9ecc-2852e6e4cce9,53a6ffa4-31f8-4717-9ecc-2852e6e4cce9,1,0,575a135a-6ffd-4ae8-a597-7e584df9bac4,575a135a-6ffd-4ae8-a597-7e584df9bac4,1,0,693a7196-f525-4bd2-a417-e902977f21cb,693a7196-f525-4bd2-a417-e902977f21cb,1,0,9bb39184-08b7-440e-a8f8-5caf0083ba0f,9bb39184-08b7-440e-a8f8-5caf0083ba0f,1,0,f2aa4137-07b6-4fc7-8009-8127762dc698,f2aa4137-07b6-4fc7-8009-8127762dc698,1,0,d48e817e-f6a4-47e5-a052-35d09e066490,d48e817e-f6a4-47e5-a052-35d09e066490,1,0,7bf36370-3761-4fd5-bea5-90fa142a9d57,7bf36370-3761-4fd5-bea5-90fa142a9d57,1,0,3b81427f-cf64-4a5e-adb3-5415d515fecd,3b81427f-cf64-4a5e-adb3-5415d515fecd,1,0,e9f2b604-7181-476d-8b34-3a544cbb353d,e9f2b604-7181-476d-8b34-3a544cbb353d,1,0,73773919-d01c-41dd-bb31-9c66648ac0ff,73773919-d01c-41dd-bb31-9c66648ac0ff,1,0,5d1afad0-3d7e-4214-b52a-72c184490084,5d1afad0-3d7e-4214-b52a-72c184490084,1,0,5f7901a1-f992-42fa-9ddb-d63574da3b56,5f7901a1-f992-42fa-9ddb-d63574da3b56,1,0,26abd45a-12b3-4312-88fb-53c90a6e6679,26abd45a-12b3-4312-88fb-53c90a6e6679,1,0,1541ad74-3e73-4699-bccf-c13313fbedfe,1541ad74-3e73-4699-bccf-c13313fbedfe,1,0,1037ecb7-6819-4ba2-8c93-eccbbdf825be,1037ecb7-6819-4ba2-8c93-eccbbdf825be,1,0,1f03420b-0480-451a-9263-8431ff0b0c73,1f03420b-0480-451a-9263-8431ff0b0c73,1,0,2bf547e4-d295-4f69-9dbf-9a9d91b2db98,2bf547e4-d295-4f69-9dbf-9a9d91b2db98,1,0,46506a80-495e-4f06-a191-54ccf5d6cc3f,46506a80-495e-4f06-a191-54ccf5d6cc3f,1,0,b9788ea3-b910-4b5b-96c3-921d62745b6e,b9788ea3-b910-4b5b-96c3-921d62745b6e,1,0,0646de72-49fd-466d-af0f-843bfa527049,0646de72-49fd-466d-af0f-843bfa527049,1,0,7c3463c8-ea36-415a-8e9d-dc7bd927b9d1,7c3463c8-ea36-415a-8e9d-dc7bd927b9d1,1,0,260f4fb1-02cb-4c32-ba4b-5aa202cd0311,260f4fb1-02cb-4c32-ba4b-5aa202cd0311,1,0,be2b4dba-e77e-4947-bd2f-0710b357ca2a,be2b4dba-e77e-4947-bd2f-0710b357ca2a,1,0,df750e63-50fc-4085-b8b8-f05e4751ff51,df750e63-50fc-4085-b8b8-f05e4751ff51,1,0,86182e9a-89e0-40d7-b2d7-fcd92ee42942,86182e9a-89e0-40d7-b2d7-fcd92ee42942,1,0,091cb921-c7e3-4a5f-97b7-34e625159b9c,091cb921-c7e3-4a5f-97b7-34e625159b9c,1,0,f6118cdd-1dcd-464e-a49d-e95c69466750,f6118cdd-1dcd-464e-a49d-e95c69466750,1,0,39932897-959b-41a6-94ad-61426abfdbd9,39932897-959b-41a6-94ad-61426abfdbd9,1,0,c56ea6f3-1032-4b7a-a20e-e912196da1cd,c56ea6f3-1032-4b7a-a20e-e912196da1cd,1,0,b69b611d-18d3-4e78-8a09-f010bcf9c261,b69b611d-18d3-4e78-8a09-f010bcf9c261,1,0,e8e087c1-9131-4037-8562-8bce8c38f78c,e8e087c1-9131-4037-8562-8bce8c38f78c,1,0,3b1c9126-9b9f-4658-967c-cc9ef5b1000f,3b1c9126-9b9f-4658-967c-cc9ef5b1000f,1,0,6adaef8e-82b6-4664-9748-4f41b170d91a,6adaef8e-82b6-4664-9748-4f41b170d91a,1,0,20d655a7-788c-48bc-83ae-25003106bedb,20d655a7-788c-48bc-83ae-25003106bedb,1,0,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,1,0,68a72014-4b2e-4347-aaa7-54d95b8eb919,68a72014-4b2e-4347-aaa7-54d95b8eb919,1,0,379c9295-d0d5-418d-82f3-5ae19985cc53,379c9295-d0d5-418d-82f3-5ae19985cc53,1,0,25830f5b-27e2-4eff-9728-b21eb498727d,25830f5b-27e2-4eff-9728-b21eb498727d,1,0,af02f534-8508-4f9f-bcc1-0c6f3d696971,af02f534-8508-4f9f-bcc1-0c6f3d696971,1,0,dd345cfb-ea0c-4ea8-9b35-22547b000275,dd345cfb-ea0c-4ea8-9b35-22547b000275,1,0,a71d9c41-7510-4d38-90df-1034977b8f45,a71d9c41-7510-4d38-90df-1034977b8f45,1,0,86a871da-3725-43a1-a7c3-98acd187011b,86a871da-3725-43a1-a7c3-98acd187011b,1,0,2447cfeb-d877-4222-8ac2-b0026b85f932,2447cfeb-d877-4222-8ac2-b0026b85f932,1,0,fb94e9cb-1f27-42a6-a701-18bbe5888e70,fb94e9cb-1f27-42a6-a701-18bbe5888e70,1,0,2e26e32e-a0c6-4460-99de-865622202166,2e26e32e-a0c6-4460-99de-865622202166,1,0,c9489a6e-45af-4877-9788-158071571a0a,c9489a6e-45af-4877-9788-158071571a0a,1,0,23959912-f8fc-42bc-9ec2-1d520ebc5dad,23959912-f8fc-42bc-9ec2-1d520ebc5dad,1,0,4770398f-8013-4d43-93ce-ec1165e40c4e,4770398f-8013-4d43-93ce-ec1165e40c4e,1,0,9a706997-90cb-430d-972c-d2bad87c4a79,9a706997-90cb-430d-972c-d2bad87c4a79,1,0,6f661660-b9c4-41d4-99a8-e08006cfe9c8,6f661660-b9c4-41d4-99a8-e08006cfe9c8,1,0,199e79fa-54d6-4748-aaaa-9c55283582a3,199e79fa-54d6-4748-aaaa-9c55283582a3,1,0,5ef026c2-2ef4-45d6-9792-5ba0d298714b,5ef026c2-2ef4-45d6-9792-5ba0d298714b,1,0,45d61391-4cf7-4f45-8775-ada582c42400,45d61391-4cf7-4f45-8775-ada582c42400,1,0,78b2a913-2ab9-455d-85a3-504f0f468468,78b2a913-2ab9-455d-85a3-504f0f468468,1,0,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,1,0,560b5b12-4dee-4c69-ab6b-7680757a2797,560b5b12-4dee-4c69-ab6b-7680757a2797,1,0,3cfb1ce0-de42-4914-85c0-807d0c10f77e,3cfb1ce0-de42-4914-85c0-807d0c10f77e,1,0,a27244c2-ac65-423f-afce-42efd288a83d,a27244c2-ac65-423f-afce-42efd288a83d,1,0,d4002184-8e08-4dcc-9070-62f595e82e23,d4002184-8e08-4dcc-9070-62f595e82e23,1,0,62163fda-1a09-4d4f-b290-76ff324042ab,62163fda-1a09-4d4f-b290-76ff324042ab,1,0,f2816dd2-47dd-41e8-9709-6dac1e4f4d21,f2816dd2-47dd-41e8-9709-6dac1e4f4d21,1,0,6e6a1557-06fa-45c0-ad98-c43809553cd7,6e6a1557-06fa-45c0-ad98-c43809553cd7,1,0,179f7436-e328-42b8-9382-19ee6f10c768,179f7436-e328-42b8-9382-19ee6f10c768,1,0,2093344a-47d4-43ac-98df-29c4dff7fca9,2093344a-47d4-43ac-98df-29c4dff7fca9,1,0,3343cb0c-0f80-4ef9-9871-3db9f2299186,3343cb0c-0f80-4ef9-9871-3db9f2299186,1,0,791d7289-b188-4120-a5f5-f5eb1fd675bf,791d7289-b188-4120-a5f5-f5eb1fd675bf,1,0,e996d749-1aa5-4fe5-b87b-3d8d06144d93,e996d749-1aa5-4fe5-b87b-3d8d06144d93,1,0,6613153f-4f81-4bac-8144-7562cce67f55,6613153f-4f81-4bac-8144-7562cce67f55,1,0,488ce902-b60e-4255-8aec-92dafd1d5dd0,488ce902-b60e-4255-8aec-92dafd1d5dd0,1,0,411779cc-de2c-4731-acc0-631a01367eb5,411779cc-de2c-4731-acc0-631a01367eb5,1,0,30794af1-3180-4ed5-b11d-ca139acb22fa,30794af1-3180-4ed5-b11d-ca139acb22fa,1,0,39aeb27d-62d2-480a-aa6b-33e2363194d1,39aeb27d-62d2-480a-aa6b-33e2363194d1,1,0,e69be74a-0e2c-4a7b-8814-ab15ab28f948,e69be74a-0e2c-4a7b-8814-ab15ab28f948,1,0,60410722-dca9-4c3a-a9c4-33fcd45fe584,60410722-dca9-4c3a-a9c4-33fcd45fe584,1,0,3f200f5a-01bd-4304-9c57-18703cac9ec9,3f200f5a-01bd-4304-9c57-18703cac9ec9,1,0,aa89881f-f111-4384-911c-847b04bb56dd,aa89881f-f111-4384-911c-847b04bb56dd,1,0,444d9e3b-c702-4ad6-a929-a220eff0f6e7,444d9e3b-c702-4ad6-a929-a220eff0f6e7,1,0,022c4519-1cdb-45b6-a699-89fd6688999c,022c4519-1cdb-45b6-a699-89fd6688999c,1,0,fb5b79a2-caec-4c6e-a112-27e78a184d5e,fb5b79a2-caec-4c6e-a112-27e78a184d5e,1,0,fa523958-ce1e-42e1-ae00-2dcb401b7eda,fa523958-ce1e-42e1-ae00-2dcb401b7eda,1,0,1518bca2-a004-4566-8991-7c60e6745a49,1518bca2-a004-4566-8991-7c60e6745a49,1,0,ed8618e2-3ce6-4956-856a-9f40279b4da6,ed8618e2-3ce6-4956-856a-9f40279b4da6,1,0,733f6bc2-544d-4fac-bca8-11b981b95a03,733f6bc2-544d-4fac-bca8-11b981b95a03,1,0,3d140a17-40b4-46a7-a846-78f2f77d49f2,3d140a17-40b4-46a7-a846-78f2f77d49f2,1,0,965646a5-5e5b-49cd-864a-c3870844cfdb,965646a5-5e5b-49cd-864a-c3870844cfdb,1,0,27c88cf7-c0ed-44af-bb70-f14269ce1e87,27c88cf7-c0ed-44af-bb70-f14269ce1e87,1,0,0333cd9e-392d-40b2-869d-ad47119e0384,0333cd9e-392d-40b2-869d-ad47119e0384,1,0,82cc8820-0b92-4bb7-b097-7ac79e922f01,82cc8820-0b92-4bb7-b097-7ac79e922f01,1,0,25451a36-c842-44a5-94f4-7e540050b825,25451a36-c842-44a5-94f4-7e540050b825,1,0,8e0340c9-6469-4fc9-b19a-4be4e0e6ee82,8e0340c9-6469-4fc9-b19a-4be4e0e6ee82,1,0,f2267d6c-6972-4621-b677-87798056363b,f2267d6c-6972-4621-b677-87798056363b,1,0,243d201b-3714-4700-b410-c74c9093e6f6,243d201b-3714-4700-b410-c74c9093e6f6,1,0,e1e9862e-c87b-400f-bca1-b1380cb98ddc,e1e9862e-c87b-400f-bca1-b1380cb98ddc,1,0,de3cb50c-ef99-419e-b922-c6a453da6a5b,de3cb50c-ef99-419e-b922-c6a453da6a5b,1,0,d4ca4802-756a-494c-bab3-e77e0777a3fa,d4ca4802-756a-494c-bab3-e77e0777a3fa,1,0,134c1054-8d65-405f-ba3b-5beeca803a72,134c1054-8d65-405f-ba3b-5beeca803a72,1,0,cfa1669b-5310-4171-83fd-4dff3c6ac345,cfa1669b-5310-4171-83fd-4dff3c6ac345,1,0,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,1,0,aec7df6a-21a1-495d-b0a9-3769e1069888,aec7df6a-21a1-495d-b0a9-3769e1069888,1,0,463b98bf-b4d4-4edb-995d-0a75ff29b60d,463b98bf-b4d4-4edb-995d-0a75ff29b60d,1,0,317f88a7-12a4-4d21-b637-3050525406f4,317f88a7-12a4-4d21-b637-3050525406f4,1,0,2d9d2319-68fb-436d-b431-98858b88a75a,2d9d2319-68fb-436d-b431-98858b88a75a,1,0,9016988e-1aea-460a-b5eb-644dc5923d87,9016988e-1aea-460a-b5eb-644dc5923d87,1,0,8593c908-9f6f-42df-9fd4-e41ccffba315,8593c908-9f6f-42df-9fd4-e41ccffba315,1,0,d6eb3484-b0ab-40e3-aa95-c18a40259f77,d6eb3484-b0ab-40e3-aa95-c18a40259f77,1,0,08ec3f2e-e523-4e37-8d44-fbc52c66263c,08ec3f2e-e523-4e37-8d44-fbc52c66263c,1,0,7300e566-06ea-42a3-b046-477ee9883559,7300e566-06ea-42a3-b046-477ee9883559,1,0,72ef831d-9d37-4b7f-8b71-fb9dd0ab6038,72ef831d-9d37-4b7f-8b71-fb9dd0ab6038,1,0,a0ff40b4-5815-445e-ad67-f524dfa3aaa7,a0ff40b4-5815-445e-ad67-f524dfa3aaa7,1,0,4d7ef262-8449-4511-a408-e5d322ce3d78,4d7ef262-8449-4511-a408-e5d322ce3d78,1,0,3f8130d4-12b2-4a2b-8f75-9ca8289624c8,3f8130d4-12b2-4a2b-8f75-9ca8289624c8,1,0,02877723-66fb-4984-b760-511d1c6c29f0,02877723-66fb-4984-b760-511d1c6c29f0,1,0,ec0bc645-5abf-423f-a517-2aa7adf9044c,ec0bc645-5abf-423f-a517-2aa7adf9044c,1,0,d8430167-5d4e-4603-9797-36781210cdff,d8430167-5d4e-4603-9797-36781210cdff,1,0,c4b3f94d-6f5f-457b-a425-56c0f745c75f,c4b3f94d-6f5f-457b-a425-56c0f745c75f,1,0,0db78226-37d0-4016-b4c9-5134af1aabc7,0db78226-37d0-4016-b4c9-5134af1aabc7,1,0,8d6b4d23-a260-4352-9975-c13ce3e05220,8d6b4d23-a260-4352-9975-c13ce3e05220,1,0,e0be0bc7-def6-4ae9-9a33-9689aa829b5e,e0be0bc7-def6-4ae9-9a33-9689aa829b5e,1,0,97d4ffd0-07ef-4dc2-8fbc-449c3c8453ef,97d4ffd0-07ef-4dc2-8fbc-449c3c8453ef,1,0,6f5ac40b-ea22-47cf-acf2-614406669a72,6f5ac40b-ea22-47cf-acf2-614406669a72,1,0,b6caaa9e-a9d1-4519-a61f-7fa0ab0ff201,b6caaa9e-a9d1-4519-a61f-7fa0ab0ff201,1,0,488d2644-6fef-488a-af38-40f59c0e0d8c,488d2644-6fef-488a-af38-40f59c0e0d8c,1,0,5d76a28c-5d6c-49cb-8b91-2527e8d06aba,5d76a28c-5d6c-49cb-8b91-2527e8d06aba,1,0,688d86cd-1044-4b77-bb63-2c05aaafbcd0,688d86cd-1044-4b77-bb63-2c05aaafbcd0,1,0,f1efef30-8651-4728-becd-abe3f9026a43,f1efef30-8651-4728-becd-abe3f9026a43,1,0,c2612e22-4f0d-4713-b4eb-decd9780d088,c2612e22-4f0d-4713-b4eb-decd9780d088,1,0,11b1410f-8e14-4b2f-8890-177f4875020e,11b1410f-8e14-4b2f-8890-177f4875020e,1,0,2276b2b0-1705-4014-956f-5087e9dd5c1e,2276b2b0-1705-4014-956f-5087e9dd5c1e,1,0,f72b9d4b-7196-45a3-9349-e32fc91e875a,f72b9d4b-7196-45a3-9349-e32fc91e875a,1,0,6c509dcc-4529-4ac3-86fe-26f807991b1c,6c509dcc-4529-4ac3-86fe-26f807991b1c,1,0,529c8887-f691-4ba8-aeaf-937858d61c30,529c8887-f691-4ba8-aeaf-937858d61c30,1,0,43435d30-8c25-4757-9a29-9173415959ff,43435d30-8c25-4757-9a29-9173415959ff,1,0,4aef5419-7cf5-4443-b773-9273c983844f,4aef5419-7cf5-4443-b773-9273c983844f,1,0,b090cfa5-1bd8-43aa-84d6-6e04375c4b57,b090cfa5-1bd8-43aa-84d6-6e04375c4b57,1,0,9378d484-2143-45eb-a71e-651055611789,9378d484-2143-45eb-a71e-651055611789,1,0,a2d24b4d-6039-49ab-8cc2-14d03a2d5546,a2d24b4d-6039-49ab-8cc2-14d03a2d5546,1,0,c5d0eafb-469e-4a24-8b5e-ce25fb627d3d,c5d0eafb-469e-4a24-8b5e-ce25fb627d3d,1,0,2bb5c23c-ad87-4b66-b766-d2e3f82715bd,2bb5c23c-ad87-4b66-b766-d2e3f82715bd,1,0,d01871bb-492e-4ab8-ada9-e9d8ec1adbce,d01871bb-492e-4ab8-ada9-e9d8ec1adbce,1,0,dd931c85-8c19-42a8-a39e-7af0c5bd346c,dd931c85-8c19-42a8-a39e-7af0c5bd346c,1,0,4fa153eb-1efb-43e5-ac09-e5431d4800df,4fa153eb-1efb-43e5-ac09-e5431d4800df,1,0,ada760f3-6a9f-4b81-afc1-98eb164af747,ada760f3-6a9f-4b81-afc1-98eb164af747,1,0,262dea64-4ccd-4b97-ac7e-ec1dbdd9ac98,262dea64-4ccd-4b97-ac7e-ec1dbdd9ac98,1,0,8a0d4f7f-7a80-4e5d-8238-05fc169e0319,8a0d4f7f-7a80-4e5d-8238-05fc169e0319,1,0,8e9f9baf-8d12-46cc-915f-f6f290af5512,8e9f9baf-8d12-46cc-915f-f6f290af5512,1,0,a8e14d2e-911d-4096-9027-deb7a08838e0,a8e14d2e-911d-4096-9027-deb7a08838e0,1,0,c51d8ae2-66fe-4052-8ee4-980855b1f90c,c51d8ae2-66fe-4052-8ee4-980855b1f90c,1,0,27610803-846f-40bd-b817-f73708f1fdb7,27610803-846f-40bd-b817-f73708f1fdb7,1,0,4e2a3873-0317-44be-8dbb-e4cefc0361a8,4e2a3873-0317-44be-8dbb-e4cefc0361a8,1,0,5808331f-9ab4-4a23-a592-1f65087f3214,5808331f-9ab4-4a23-a592-1f65087f3214,1,0,9316738d-3d38-4068-818e-a001355b19fb,9316738d-3d38-4068-818e-a001355b19fb,1,0,d86d766f-021a-4c11-b9e8-403af08918cc,d86d766f-021a-4c11-b9e8-403af08918cc,1,0,2cedfef0-5d93-475a-b2dd-ee36e553e6e1,2cedfef0-5d93-475a-b2dd-ee36e553e6e1,1,0,29200d04-d7da-435a-89e6-858c11a1a98c,29200d04-d7da-435a-89e6-858c11a1a98c,1,0,8e5f6c70-04b3-46a1-94ef-82c9f6019f8f,8e5f6c70-04b3-46a1-94ef-82c9f6019f8f,1,0,6c119ef2-d24b-4c3d-ad07-611bed89cab1,6c119ef2-d24b-4c3d-ad07-611bed89cab1,1,0,13b1cb1f-88df-4ff8-b4cc-0473e4f96005,13b1cb1f-88df-4ff8-b4cc-0473e4f96005,1,0,0e861ad8-6fa3-4b0f-a9b0-6c91df1dfc6b,0e861ad8-6fa3-4b0f-a9b0-6c91df1dfc6b,1,0,27df6c22-85d7-4cb6-be19-82af76c84bf9,27df6c22-85d7-4cb6-be19-82af76c84bf9,1,0,d5b23aac-ea1c-497e-bed7-8685bb682e36,d5b23aac-ea1c-497e-bed7-8685bb682e36,1,0,6da15163-dd4c-4981-82e8-ad3bd2f516aa,6da15163-dd4c-4981-82e8-ad3bd2f516aa,1,0,e3000fff-aaba-4396-8026-768108ea8f2b,e3000fff-aaba-4396-8026-768108ea8f2b,1,0,c49054f1-3a96-4bf1-917e-f11407c67b5b,c49054f1-3a96-4bf1-917e-f11407c67b5b,1,0,01ede889-689f-45f3-b9a3-5e4c1188bea1,01ede889-689f-45f3-b9a3-5e4c1188bea1,1,0,a05f99a4-c764-4283-9fbb-6e641c3a15ae,a05f99a4-c764-4283-9fbb-6e641c3a15ae,1,0,cbe31324-feba-4137-9b82-b1b2afbcfb9d,cbe31324-feba-4137-9b82-b1b2afbcfb9d,1,0,03e80316-735f-4087-afe9-218d41dce028,03e80316-735f-4087-afe9-218d41dce028,1,0,eca391b3-ee95-47ab-a3d6-a80c745f99e7,eca391b3-ee95-47ab-a3d6-a80c745f99e7,1,0,b3035b26-9ead-4082-90b0-7dd61b4a6990,b3035b26-9ead-4082-90b0-7dd61b4a6990,1,0,cd68ac77-8df5-42d4-b729-da73cae0a78b,cd68ac77-8df5-42d4-b729-da73cae0a78b,1,0,1fc05949-c1ba-4363-8353-6902bc041021,1fc05949-c1ba-4363-8353-6902bc041021,1,0,d6e61d59-fe83-4a9e-aa15-e072a39fd8fd,d6e61d59-fe83-4a9e-aa15-e072a39fd8fd,1,0,614fc08c-78b6-4d49-9488-05fcf9b76d58,614fc08c-78b6-4d49-9488-05fcf9b76d58,1,0,d983cae8-edbb-4f26-9c0a-2f701cb11046,d983cae8-edbb-4f26-9c0a-2f701cb11046,1,0,40e2fb30-bb03-4178-a8eb-ddf48337ef23,40e2fb30-bb03-4178-a8eb-ddf48337ef23,1,0,1026fbcb-acd8-40dc-b638-6e02c6378c55,1026fbcb-acd8-40dc-b638-6e02c6378c55,1,0,dc9e2ba6-f4f1-493f-9054-cac633f239dd,dc9e2ba6-f4f1-493f-9054-cac633f239dd,1,0,7b95d0b1-c7b2-43b4-9119-320cb8912032,7b95d0b1-c7b2-43b4-9119-320cb8912032,1,0,004582b7-00aa-405e-8e24-ce76c945edae,004582b7-00aa-405e-8e24-ce76c945edae,1,0,97a9b005-a836-4308-8e63-0e00f6890baa,97a9b005-a836-4308-8e63-0e00f6890baa,1,0,98c34ada-0b78-41db-9183-6d7b9e466bde,98c34ada-0b78-41db-9183-6d7b9e466bde,1,0,fb688339-918e-40a1-8721-a26f3077973e,fb688339-918e-40a1-8721-a26f3077973e,1,0,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1,0,dea1f169-5426-4623-9e5e-3c8c2360858f,dea1f169-5426-4623-9e5e-3c8c2360858f,1,0,039b1cc5-a831-41fb-933a-b9c0fb9c9f55,039b1cc5-a831-41fb-933a-b9c0fb9c9f55,1,0,b50f3157-3c3a-4553-a16a-7fcd660e2824,b50f3157-3c3a-4553-a16a-7fcd660e2824,1,0,a3b14a36-049d-4f94-bafc-cf7b874f9bf0,a3b14a36-049d-4f94-bafc-cf7b874f9bf0,1,0,6c954862-62d0-4901-8448-ea62a1174660,6c954862-62d0-4901-8448-ea62a1174660,1,0,19858faf-2bc5-4cfb-b258-cb101ab66e87,19858faf-2bc5-4cfb-b258-cb101ab66e87,1,0,f779f4a1-1fab-46d4-8043-ac25c247d361,f779f4a1-1fab-46d4-8043-ac25c247d361,1,0,308358bc-773a-43fa-adff-dcc5884a2bd4,308358bc-773a-43fa-adff-dcc5884a2bd4,1,0,ed541a1c-a842-40a9-b357-612db71ec32c,ed541a1c-a842-40a9-b357-612db71ec32c,1,0,b0e37495-7d9e-41d0-8225-652f9ac328cf,b0e37495-7d9e-41d0-8225-652f9ac328cf,1,0,3bd2e1c8-9ef3-449b-acf6-397b90669c49,3bd2e1c8-9ef3-449b-acf6-397b90669c49,1,0,cb334191-2ff3-439e-bdaf-4b8fe6561c3b,cb334191-2ff3-439e-bdaf-4b8fe6561c3b,1,0,f9865a2a-50e3-4f9c-a509-319be62dc468,f9865a2a-50e3-4f9c-a509-319be62dc468,1,0,5f3a30b0-1ba8-423c-9bc2-f9a87cafe818,5f3a30b0-1ba8-423c-9bc2-f9a87cafe818,1,0,766d8852-3bb4-4a6c-81c0-911722af4e8e,766d8852-3bb4-4a6c-81c0-911722af4e8e,1,0,54bfe81c-06b2-45a8-8bc1-bd22240cfe32,54bfe81c-06b2-45a8-8bc1-bd22240cfe32,1,0,46f71ecc-5cee-4b8d-9f6d-d38a86787a76,46f71ecc-5cee-4b8d-9f6d-d38a86787a76,1,0,f6dae699-06eb-41ef-878b-3fdfe1b1f213,f6dae699-06eb-41ef-878b-3fdfe1b1f213,1,0,fe6de86a-54c9-4ae2-9f17-cfce38b7b560,fe6de86a-54c9-4ae2-9f17-cfce38b7b560,1,0,911f8810-e96e-4f02-9377-47e49919f87e,911f8810-e96e-4f02-9377-47e49919f87e,1,0,cde46d6d-9f8a-45b6-98a7-9411030ccd72,cde46d6d-9f8a-45b6-98a7-9411030ccd72,1,0,ff1a4c30-03ff-4bdd-9df2-a2579aeb4157,ff1a4c30-03ff-4bdd-9df2-a2579aeb4157,1,0,224b9439-4b30-4b64-8edf-e7718ee90a7d,224b9439-4b30-4b64-8edf-e7718ee90a7d,1,0,74dc2374-daf1-4a8a-ba10-d3aced96af3b,74dc2374-daf1-4a8a-ba10-d3aced96af3b,1,0,15f1a3a8-5d42-486d-95f9-3d43ff1d5d56,15f1a3a8-5d42-486d-95f9-3d43ff1d5d56,1,0,e28e953f-93b3-4d4d-9ee4-c56df26037eb,e28e953f-93b3-4d4d-9ee4-c56df26037eb,1,0,578e0fd2-997c-437a-befc-33d128097a7e,578e0fd2-997c-437a-befc-33d128097a7e,1,0,14089231-31a8-4471-b85b-064836794ff3,14089231-31a8-4471-b85b-064836794ff3,1,0,014de276-fb2f-4deb-873f-475729be0f66,014de276-fb2f-4deb-873f-475729be0f66,1,0,40a60ff7-96ca-485b-a2d9-640a208a7de6,40a60ff7-96ca-485b-a2d9-640a208a7de6,1,0,03e6caa4-eaa2-43aa-bdd1-768f9cce7848,03e6caa4-eaa2-43aa-bdd1-768f9cce7848,1,0,ac028c56-b2a8-4a9b-a325-554c636f838e,ac028c56-b2a8-4a9b-a325-554c636f838e,1,0,0ed85f4c-c002-49b6-99b9-0c3c4b7f940e,0ed85f4c-c002-49b6-99b9-0c3c4b7f940e,1,0,f99e98ac-cd94-4989-8c02-ef8b323c6815,f99e98ac-cd94-4989-8c02-ef8b323c6815,1,0,e2562347-4549-4111-862e-86c20a6daade,e2562347-4549-4111-862e-86c20a6daade,1,0,b270fc64-15c6-41ed-ad09-44c833ca7c41,b270fc64-15c6-41ed-ad09-44c833ca7c41,1,0,4c3312fd-5613-4e9b-ae7c-572fa1887ded,4c3312fd-5613-4e9b-ae7c-572fa1887ded,1,0,6c8c9618-287a-41ab-890c-60250925ad52,6c8c9618-287a-41ab-890c-60250925ad52,1,0,55b9650e-098b-4d44-9fb5-d525b46f014b,55b9650e-098b-4d44-9fb5-d525b46f014b,1,0,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,1,0,bc55dc06-a769-40be-9c99-0794bdd2dbea,bc55dc06-a769-40be-9c99-0794bdd2dbea,1,0,feb5f490-e791-11e6-508c-a8667f21fde4,feb5f490-e791-11e6-508c-a8667f21fde4,1,0,7861e179-96d2-422f-a7c2-b38b59074956,7861e179-96d2-422f-a7c2-b38b59074956,1,0,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,1,0,6962f838-e792-11e6-508c-a8667f21fde4,6962f838-e792-11e6-508c-a8667f21fde4,1,0,3797b4c6-e336-4cbe-8d0b-0902e1247b42,3797b4c6-e336-4cbe-8d0b-0902e1247b42,1,0,67ebc493-d29a-4614-890a-feb8b5bd884b,67ebc493-d29a-4614-890a-feb8b5bd884b,1,0,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,1,0,dba6cb38-79c6-4060-87c5-a993548f36c4,dba6cb38-79c6-4060-87c5-a993548f36c4,1,0,6b44227a-e226-4bcb-8638-06b49f830669,6b44227a-e226-4bcb-8638-06b49f830669,1,0,f2406400-87e9-4df2-bcd3-8f1e3ad62088,f2406400-87e9-4df2-bcd3-8f1e3ad62088,1,0,4f2b6bf8-e792-11e6-508c-a8667f21fde4,4f2b6bf8-e792-11e6-508c-a8667f21fde4,1,0,ecaacedb-bf2d-4736-a9e1-fa89cda85ee6,ecaacedb-bf2d-4736-a9e1-fa89cda85ee6,1,0,a5623e87-3102-4521-b4ab-c41bf2403a1a,a5623e87-3102-4521-b4ab-c41bf2403a1a,1,0,599b1692-5f4e-42ef-ae1a-822ff527a415,599b1692-5f4e-42ef-ae1a-822ff527a415,1,0,ee9abe8a-b3a2-48a9-9157-ea537e83b7e7,ee9abe8a-b3a2-48a9-9157-ea537e83b7e7,1,0,4bb7372a-87a9-426e-b09f-fc0110455b10,4bb7372a-87a9-426e-b09f-fc0110455b10,1,0,ac853a0f-c185-4cdb-9f09-c921770937b5,ac853a0f-c185-4cdb-9f09-c921770937b5,1,0,920a7940-4d12-476d-a909-2231787839a9,920a7940-4d12-476d-a909-2231787839a9,1,0,168fce48-2413-45fc-ad21-9b465121d81b,168fce48-2413-45fc-ad21-9b465121d81b,1,0,d65c8992-aabc-4b67-9893-01862231ebe1,d65c8992-aabc-4b67-9893-01862231ebe1,1,0,23f70675-6a05-4b50-ad68-c55ddc93e857,23f70675-6a05-4b50-ad68-c55ddc93e857,1,0,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,1,0,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,1,0,3370d43e-8e97-4411-8123-2bb2bcf60a75,3370d43e-8e97-4411-8123-2bb2bcf60a75,1,0,d9d377c9-406f-4bc9-8076-1f049348b816,d9d377c9-406f-4bc9-8076-1f049348b816,1,0,dcfcb108-3761-43d9-ad2a-29633bd1ae47,dcfcb108-3761-43d9-ad2a-29633bd1ae47,1,0,bac41d45-249f-40b4-a013-008e261369c8,bac41d45-249f-40b4-a013-008e261369c8,1,0,84e34b4a-02e8-4676-8b81-771ddf3c2931,84e34b4a-02e8-4676-8b81-771ddf3c2931,1,0,0aa6a024-66ae-4592-87d6-f7cb2a59f906,0aa6a024-66ae-4592-87d6-f7cb2a59f906,1,0,734b4dc5-dc91-4945-a2d7-cefe56a6e0a6,734b4dc5-dc91-4945-a2d7-cefe56a6e0a6,1,0,bb2dcb37-410d-4a6c-9ace-1f04177d6e88,bb2dcb37-410d-4a6c-9ace-1f04177d6e88,1,0,cb6ecc18-a14f-4c3c-a39d-2cd2d1ab4e03,cb6ecc18-a14f-4c3c-a39d-2cd2d1ab4e03,1,0,f71ac535-74a5-4001-a613-455a9e1bf734,f71ac535-74a5-4001-a613-455a9e1bf734,1,0,55a42b83-b6d2-409b-a8ff-7849b08e07ed,55a42b83-b6d2-409b-a8ff-7849b08e07ed,1,0,61889399-ecc2-442c-a790-a8b27a7a540c,61889399-ecc2-442c-a790-a8b27a7a540c,1,0,ecd3a928-3e59-439c-8f58-ba360f2a8b3c,ecd3a928-3e59-439c-8f58-ba360f2a8b3c,1,0,079ba95c-8293-47e2-b8bd-7acf73c2d880,079ba95c-8293-47e2-b8bd-7acf73c2d880,1,0,fbe1dcf7-c11d-4395-ab3a-c2f986c25419,fbe1dcf7-c11d-4395-ab3a-c2f986c25419,1,0,a5f264a8-a547-4653-abb1-eb1666d527dc,a5f264a8-a547-4653-abb1-eb1666d527dc,1,0,dabae379-6356-497a-aab5-cf102f16a72a,dabae379-6356-497a-aab5-cf102f16a72a,1,0,337370e0-1021-4887-9d38-6c3833c90a5b,337370e0-1021-4887-9d38-6c3833c90a5b,1,0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,1,0,d6f01f1c-801b-4776-ae11-48236103f76a,d6f01f1c-801b-4776-ae11-48236103f76a,1,0,b6fe68cf-657b-40e0-af2e-247607a86519,b6fe68cf-657b-40e0-af2e-247607a86519,1,0,9b0b8191-94b7-428f-be86-e9e4cd24a72f,9b0b8191-94b7-428f-be86-e9e4cd24a72f,1,0,a923dbcb-7146-4445-ad17-f4a32c16a837,a923dbcb-7146-4445-ad17-f4a32c16a837,1,0,41dec792-1d1a-4e06-a54b-a86193b98225,41dec792-1d1a-4e06-a54b-a86193b98225,1,0,52257beb-3e0c-4681-b430-9690398cd13a,52257beb-3e0c-4681-b430-9690398cd13a,1,0,135e637c-c28e-4547-8da2-d897dca54cb2,135e637c-c28e-4547-8da2-d897dca54cb2,1,0,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,1,0,56d97df6-9c8b-4fc5-a7a6-52107d38dcd5,56d97df6-9c8b-4fc5-a7a6-52107d38dcd5,1,0,a0be938b-139e-41bd-b067-f5241ff68c90,a0be938b-139e-41bd-b067-f5241ff68c90,1,0,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,1,0,5356543a-db9a-4265-b83f-31d45544c8e6,5356543a-db9a-4265-b83f-31d45544c8e6,1,0,857dd311-9c6d-4dba-82d8-283d7b05b09e,857dd311-9c6d-4dba-82d8-283d7b05b09e,1,0,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1,0,8064eb3a-d56c-4517-9db0-b7300149c7c4,8064eb3a-d56c-4517-9db0-b7300149c7c4,1,0,fe926c88-d792-4db3-abcf-3c94dfdcc407,fe926c88-d792-4db3-abcf-3c94dfdcc407,1,0,b1c3a6c1-5245-4a65-8a45-13948be6f6a1,b1c3a6c1-5245-4a65-8a45-13948be6f6a1,1,0,bcbdba9e-0b29-4ea7-a7d5-1de819bf86ec,bcbdba9e-0b29-4ea7-a7d5-1de819bf86ec,1,0,e0c51555-1614-4aa7-a075-c5e1251579ba,e0c51555-1614-4aa7-a075-c5e1251579ba,1,0,c75a1c6d-fa33-4b57-b359-6253aff5f3e7,c75a1c6d-fa33-4b57-b359-6253aff5f3e7,1,0,af88ea84-5742-4c9f-9a02-6d0f25186f72,af88ea84-5742-4c9f-9a02-6d0f25186f72,1,0,51363236-c8eb-4eb7-9692-5c18edc9a5a8,51363236-c8eb-4eb7-9692-5c18edc9a5a8,1,0,e97edb4a-468d-499d-924d-aa4e5ee16548,e97edb4a-468d-499d-924d-aa4e5ee16548,1,0,24366a86-0dae-4a68-a180-d8ea7656a286,24366a86-0dae-4a68-a180-d8ea7656a286,1,0,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,1,0,3c03f78e-c904-47da-a0a1-db5d6b9f7254,3c03f78e-c904-47da-a0a1-db5d6b9f7254,1,0,3bf03ed7-6581-4a11-8fc8-748f46c8dad7,3bf03ed7-6581-4a11-8fc8-748f46c8dad7,1,0,0f28c616-162c-4dba-bd22-f7ea5d23ea5a,0f28c616-162c-4dba-bd22-f7ea5d23ea5a,1,0,39bf2771-1d8b-44bb-8d8b-54d046589ebe,39bf2771-1d8b-44bb-8d8b-54d046589ebe,1,0,872521e3-413c-45ac-a6ea-39fe1324bae8,872521e3-413c-45ac-a6ea-39fe1324bae8,1,0,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,1,0,8adebe50-a946-40c2-9258-b17efe787e0e,8adebe50-a946-40c2-9258-b17efe787e0e,1,0,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,1,0,81ef02df-498d-4af0-8254-dc6730cbf140,81ef02df-498d-4af0-8254-dc6730cbf140,1,0,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,1,0,2902460a-ed86-41cf-8e8f-895adab9a72f,2902460a-ed86-41cf-8e8f-895adab9a72f,1,0,d12c7296-36ab-41e0-83ef-143484958597,d12c7296-36ab-41e0-83ef-143484958597,1,0,2b6c3bcd-7d2a-4e95-8066-99374002689b,2b6c3bcd-7d2a-4e95-8066-99374002689b,1,0,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,1,0,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1,0,d6b72e00-018a-4fdc-b6a4-06dcecf89809,d6b72e00-018a-4fdc-b6a4-06dcecf89809,1,0,9f816562-57f0-473f-8c85-14f7521ffd7f,9f816562-57f0-473f-8c85-14f7521ffd7f,1,0,14077038-2e41-4a05-a476-99f6f88a5c29,14077038-2e41-4a05-a476-99f6f88a5c29,1,0,917b0acc-88fe-4afc-b19b-6da69e060393,917b0acc-88fe-4afc-b19b-6da69e060393,1,0,a091b76e-8ba4-4534-bbb0-9990e69b8603,a091b76e-8ba4-4534-bbb0-9990e69b8603,1,0,867ee5d2-7566-4052-a311-b56e7e46b90d,867ee5d2-7566-4052-a311-b56e7e46b90d,1,0,8f51328b-73a8-46fb-b6db-7b7a84c05c2a,8f51328b-73a8-46fb-b6db-7b7a84c05c2a,1,0,0f0f5b42-2407-44e6-85d7-26ace96b2cd9,0f0f5b42-2407-44e6-85d7-26ace96b2cd9,1,0,ffec426d-2556-46d6-b313-aeca43581865,ffec426d-2556-46d6-b313-aeca43581865,1,0,f32e0941-2061-4e12-bdae-fcb65f91ac28,f32e0941-2061-4e12-bdae-fcb65f91ac28,1,0,6f0e0f44-db5a-4a13-9131-866b77b90f14,6f0e0f44-db5a-4a13-9131-866b77b90f14,1,0,9415e0aa-391f-4798-ad7d-3b854a756de8,9415e0aa-391f-4798-ad7d-3b854a756de8,1,0,f82d5bd6-4c74-4c23-978c-565aae3d752a,f82d5bd6-4c74-4c23-978c-565aae3d752a,1,0,7fba41a5-4faa-412b-b367-b30ced0314c0,7fba41a5-4faa-412b-b367-b30ced0314c0,1,0,37333d0b-3589-4b8b-bf6c-e605e0287b66,37333d0b-3589-4b8b-bf6c-e605e0287b66,1,0,1813c469-da20-46a6-8947-6815b66f64c1,1813c469-da20-46a6-8947-6815b66f64c1,1,0,64e702e9-8934-4356-a1b2-be0e8b390630,64e702e9-8934-4356-a1b2-be0e8b390630,1,0,74880ac4-bdd3-48e6-82a0-a2103da42723,74880ac4-bdd3-48e6-82a0-a2103da42723,1,0,ad083c26-7461-4e94-b524-0174242fbd91,ad083c26-7461-4e94-b524-0174242fbd91,1,0,5ce39370-f918-493f-bb24-53346b6fd836,5ce39370-f918-493f-bb24-53346b6fd836,1,0,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,1,0,0e3d2750-bb4c-42b9-9829-60f1480ced9c,0e3d2750-bb4c-42b9-9829-60f1480ced9c,1,0,ddc6761c-a32a-41e1-b110-fdc39ad440d3,ddc6761c-a32a-41e1-b110-fdc39ad440d3,1,0,0b322ee2-b018-4d00-8f05-62ee16e519ff,0b322ee2-b018-4d00-8f05-62ee16e519ff,1,0,0866e282-055a-49bb-9aa5-b1af7c74c344,0866e282-055a-49bb-9aa5-b1af7c74c344,1,0,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,1,0,a76b1fd1-ba00-40e6-8756-f17fee449818,a76b1fd1-ba00-40e6-8756-f17fee449818,1,0,5c913626-48d1-4e0a-a423-64078ce59c7b,5c913626-48d1-4e0a-a423-64078ce59c7b,1,0,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,1,0,7b0ec304-1904-413e-a9c6-ff62e87107dd,7b0ec304-1904-413e-a9c6-ff62e87107dd,1,0,d4dd8c96-914d-496f-b735-ef85ec473605,d4dd8c96-914d-496f-b735-ef85ec473605,1,0,62517db4-59e6-4945-bcd6-b3f1845572bf,62517db4-59e6-4945-bcd6-b3f1845572bf,1,0,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,1,0,f0f72149-0e7f-441a-b70d-8f47d4977927,f0f72149-0e7f-441a-b70d-8f47d4977927,1,0,776efc3e-ac27-4550-bafd-6e91aa987af2,776efc3e-ac27-4550-bafd-6e91aa987af2,1,0,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,1,0,cc438366-85ea-48be-8b74-d05cddb1fc51,cc438366-85ea-48be-8b74-d05cddb1fc51,1,0,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,1,0,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,1,0,3271b800-1825-422f-97bb-757baf403e90,3271b800-1825-422f-97bb-757baf403e90,1,0,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,1,0,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,1,0,a040c756-4687-4bfd-a690-b122d3c490e5,a040c756-4687-4bfd-a690-b122d3c490e5,1,0,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,1,0,961a9801-3956-4ea0-b0d3-908f09bf4929,961a9801-3956-4ea0-b0d3-908f09bf4929,1,0,6fac5c14-e126-4342-9078-edf1d0efcbf2,6fac5c14-e126-4342-9078-edf1d0efcbf2,1,0,0a3325a1-21c4-4997-882f-4ac2edc175f0,0a3325a1-21c4-4997-882f-4ac2edc175f0,1,0,71102d3f-f020-4d6f-9582-9a7eefb4e797,71102d3f-f020-4d6f-9582-9a7eefb4e797,1,0,53ef6849-a3f3-4171-9167-f349f2d6a736,53ef6849-a3f3-4171-9167-f349f2d6a736,1,0,3f588bd3-d461-42b7-8ab1-386af6399d56,3f588bd3-d461-42b7-8ab1-386af6399d56,1,0,c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1,c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1,1,0,8c576405-29c1-46b1-ab2e-40e52c21cab0,8c576405-29c1-46b1-ab2e-40e52c21cab0,1,0,b33a89da-8589-4902-83fa-6545e5fce23e,b33a89da-8589-4902-83fa-6545e5fce23e,1,0,f0620d5a-e1fe-419f-af37-e0f462f97e8d,f0620d5a-e1fe-419f-af37-e0f462f97e8d,1,0,3e2f2ae1-c809-43fc-8276-b0a16a92858c,3e2f2ae1-c809-43fc-8276-b0a16a92858c,1,0,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,1,0,1a7c7427-bead-4655-9dd6-df6e722663c5,1a7c7427-bead-4655-9dd6-df6e722663c5,1,0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,1,0,fd96c8ab-602a-4735-b168-52b501e80351,fd96c8ab-602a-4735-b168-52b501e80351,1,0,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,1,0,370f0c75-d2c5-4be5-a633-4bcc77998ece,370f0c75-d2c5-4be5-a633-4bcc77998ece,1,0,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,1,0,2139532c-f6cb-4393-936e-cc912e5adca9,2139532c-f6cb-4393-936e-cc912e5adca9,1,0,755c3eca-4956-4a44-9b38-c11dae00b87f,755c3eca-4956-4a44-9b38-c11dae00b87f,1,0,f57c558c-2c94-4b9d-8697-448d0548ab1a,f57c558c-2c94-4b9d-8697-448d0548ab1a,1,0,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,1,0,c32db021-eca1-4b67-aa85-3d6e28c51b53,c32db021-eca1-4b67-aa85-3d6e28c51b53,1,0,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,1,0,02466dcf-02a1-4853-814f-a913a9baba45,02466dcf-02a1-4853-814f-a913a9baba45,1,0,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,1,0,62b75eb2-42e1-4484-a77f-b676dd36f3d4,62b75eb2-42e1-4484-a77f-b676dd36f3d4,1,0,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,1,0,856510ee-74f5-44e9-a3c0-1c60cfb7a787,856510ee-74f5-44e9-a3c0-1c60cfb7a787,1,0,28b761c6-c286-4125-a4ed-da602e49950f,28b761c6-c286-4125-a4ed-da602e49950f,1,0,4ac66a22-c736-4e06-a8aa-ef4a71788c65,4ac66a22-c736-4e06-a8aa-ef4a71788c65,1,0,9cfe9281-8840-4077-824d-a2c9cbb0b730,9cfe9281-8840-4077-824d-a2c9cbb0b730,1,0,76389fa9-b9e0-492e-9c93-24b5f3bf094c,76389fa9-b9e0-492e-9c93-24b5f3bf094c,1,0,23e3de37-9315-45e6-bbfd-60aae28c25ae,23e3de37-9315-45e6-bbfd-60aae28c25ae,1,0,a9957f43-8b6f-4d98-a2d8-77b78047494c,a9957f43-8b6f-4d98-a2d8-77b78047494c,1,0,e470e15d-1b06-43cb-a9f9-ba489e2f596f,e470e15d-1b06-43cb-a9f9-ba489e2f596f,1,0,0408002c-9255-43a2-8022-82f02ee0e8f4,0408002c-9255-43a2-8022-82f02ee0e8f4,1,0,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,1,0,1851afd4-5324-45c1-b754-54e65943f945,1851afd4-5324-45c1-b754-54e65943f945,1,0,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,1,0,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,1,0,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,1,0,c322dc4a-30f3-4d23-9824-4a01c496408d,c322dc4a-30f3-4d23-9824-4a01c496408d,1,0,dcff004c-1b61-4a19-b977-ea21bf688614,dcff004c-1b61-4a19-b977-ea21bf688614,0,0,0,1,0,0,0,1,0,1,0,1,1,1,1} \ No newline at end of file +{6,1,1,1c9f7f0c-4d81-4c59-a891-ea89377e809c,1,9d3a9e87-ddc6-4d2a-865a-df20450c1146,"3.1.9.74","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7401,1,0,93f6bcc5-dcd2-4f44-bb2e-4e8fec07e3e2,93f6bcc5-dcd2-4f44-bb2e-4e8fec07e3e2,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5-45fc-8da2-a36c435085a6,1,0,ab7e5f9a-1dfe-4165-a540-21f45ae1d94d,ab7e5f9a-1dfe-4165-a540-21f45ae1d94d,1,0,5d16e042-3889-4851-86f1-bc43bf06ee88,5d16e042-3889-4851-86f1-bc43bf06ee88,1,0,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,e5a0e7c2-6186-43a3-a1c5-1f16990602a4,1,0,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,3d47838b-e1aa-4acb-96bf-6de2f9be8bdb,1,0,e0d3efe0-a321-4790-ba5d-e549a91a3ec6,e0d3efe0-a321-4790-ba5d-e549a91a3ec6,1,0,e39ecc8a-ce81-483d-85de-b0488c8b7749,e39ecc8a-ce81-483d-85de-b0488c8b7749,1,0,8f3b124f-bf85-4307-8f0c-47be1fb5c8b0,8f3b124f-bf85-4307-8f0c-47be1fb5c8b0,1,0,e15c3525-3453-4b62-834e-7c69f9efea51,e15c3525-3453-4b62-834e-7c69f9efea51,1,0,1514eaff-faea-4d82-9465-d0d5292bb31d,1514eaff-faea-4d82-9465-d0d5292bb31d,1,0,6d39c6df-8cd4-47ad-9125-252b37d94575,6d39c6df-8cd4-47ad-9125-252b37d94575,1,0,bc89af7a-1971-4245-8d88-1a5a50c50a8b,bc89af7a-1971-4245-8d88-1a5a50c50a8b,1,0,ad73f3a3-1dad-4920-af41-bda2b947a2f7,ad73f3a3-1dad-4920-af41-bda2b947a2f7,1,0,98b67b5a-3550-4a64-9e07-07fcc9154c73,98b67b5a-3550-4a64-9e07-07fcc9154c73,1,0,ad7c6165-2e44-4808-a77a-526882cf5dea,ad7c6165-2e44-4808-a77a-526882cf5dea,1,0,fd930b50-4ada-4e7f-8bfd-ed9a7c4e8964,fd930b50-4ada-4e7f-8bfd-ed9a7c4e8964,1,0,fa2a9ef2-00a1-44f4-a82c-6c7288dd62dc,fa2a9ef2-00a1-44f4-a82c-6c7288dd62dc,1,0,b7e435a9-6107-4d02-a949-cff793462e31,b7e435a9-6107-4d02-a949-cff793462e31,1,0,f0cda8f5-56f5-423b-8c1c-7113433ebf25,f0cda8f5-56f5-423b-8c1c-7113433ebf25,1,0,1a220e88-428b-4d85-926d-e572bf19997c,1a220e88-428b-4d85-926d-e572bf19997c,1,0,ca0d938b-244e-421f-9fa4-320784b9f416,ca0d938b-244e-421f-9fa4-320784b9f416,1,0,a108b11d-a489-4684-84ea-d5377c7394de,a108b11d-a489-4684-84ea-d5377c7394de,1,0,289a2d84-2477-4177-a6ef-507e2cadeea2,289a2d84-2477-4177-a6ef-507e2cadeea2,1,0,1c877cee-d9b8-48dc-8d79-04d27bb522f7,1c877cee-d9b8-48dc-8d79-04d27bb522f7,1,0,dd911418-ee16-4413-bfe9-4a5a238d3ce1,dd911418-ee16-4413-bfe9-4a5a238d3ce1,1,0,61cd6eab-6bab-4382-986e-4c7fc44f369b,61cd6eab-6bab-4382-986e-4c7fc44f369b,1,0,ea36c426-2b43-4232-9978-0104bafd345d,ea36c426-2b43-4232-9978-0104bafd345d,1,0,757b547b-b79c-459a-a64a-eef19a09a38f,757b547b-b79c-459a-a64a-eef19a09a38f,1,0,3d428bdf-c41b-43ac-957e-2943406c832c,3d428bdf-c41b-43ac-957e-2943406c832c,1,0,85cbc0b7-6aa5-455b-abed-7bc659d9ad51,85cbc0b7-6aa5-455b-abed-7bc659d9ad51,1,0,950f8fd5-fefa-4bfb-97a0-38d77ae830dc,950f8fd5-fefa-4bfb-97a0-38d77ae830dc,1,0,cbbe7903-842c-470e-a2d6-7928df8f13e9,cbbe7903-842c-470e-a2d6-7928df8f13e9,1,0,e02597c4-bf45-4bb6-931d-62d2244f6c58,e02597c4-bf45-4bb6-931d-62d2244f6c58,1,0,75561d71-4b06-40fc-8a46-ed5d33c80dea,75561d71-4b06-40fc-8a46-ed5d33c80dea,1,0,42544966-445d-41b8-b6a0-a52c64758232,42544966-445d-41b8-b6a0-a52c64758232,1,0,a92d8a5c-b595-4c6c-9f1d-5e85b1c996b4,a92d8a5c-b595-4c6c-9f1d-5e85b1c996b4,1,0,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,bd68dd13-66bb-40ed-8f4b-0767b7063ffd,1,0,5578afd2-5aed-4164-8467-52a66f4773c4,5578afd2-5aed-4164-8467-52a66f4773c4,1,0,9eea8645-1ba7-4faf-9c29-868bf99964dd,9eea8645-1ba7-4faf-9c29-868bf99964dd,1,0,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,1,0,654523be-93d9-4faa-9a35-ce2fede13820,654523be-93d9-4faa-9a35-ce2fede13820,1,0,0c44fdea-7b81-45be-87f5-d64456a9d379,0c44fdea-7b81-45be-87f5-d64456a9d379,1,0,d9bad22e-4049-4371-86a3-1b00ae6215af,d9bad22e-4049-4371-86a3-1b00ae6215af,1,0,d09d6f21-cdd0-485e-bd2c-92092a1aefef,d09d6f21-cdd0-485e-bd2c-92092a1aefef,1,0,2fc92784-d7b0-4209-ba06-e54bed2f160f,2fc92784-d7b0-4209-ba06-e54bed2f160f,1,0,d5a5f53b-9cd5-4036-a379-31680cec3c24,d5a5f53b-9cd5-4036-a379-31680cec3c24,1,0,85e05ed7-25ed-4148-8247-86ff531ec48d,85e05ed7-25ed-4148-8247-86ff531ec48d,1,0,dcd34215-200c-4d3c-828c-4c3cd8b17a81,dcd34215-200c-4d3c-828c-4c3cd8b17a81,1,0,e5b8ea5c-1d08-4f0a-a8f6-358b41e2e9f2,e5b8ea5c-1d08-4f0a-a8f6-358b41e2e9f2,1,0,4a046c9b-98a0-4d4f-8e0b-b162d3c6bfc5,4a046c9b-98a0-4d4f-8e0b-b162d3c6bfc5,1,0,a4e4c91c-fd95-4369-98e3-51ffba79937b,a4e4c91c-fd95-4369-98e3-51ffba79937b,1,0,0a83f9ec-eabe-4e8f-9fa9-0067acad6fc4,0a83f9ec-eabe-4e8f-9fa9-0067acad6fc4,1,0,d343d4e4-d07f-48c3-9db1-774b0d6c1134,d343d4e4-d07f-48c3-9db1-774b0d6c1134,1,0,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,14ef2331-6d9b-4cf1-90f3-7d4ac410439d,1,0,5797e28d-1318-4728-8b17-bcb78d85349a,5797e28d-1318-4728-8b17-bcb78d85349a,1,0,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,1,0,9f9e6146-17ce-4296-a89f-33dfe4d0468d,9f9e6146-17ce-4296-a89f-33dfe4d0468d,1,0,3cf15377-a5bb-4c37-9780-0dbff8d3d5bb,3cf15377-a5bb-4c37-9780-0dbff8d3d5bb,1,0,3aa020db-a811-4fb9-9ea9-00a3359fbb53,3aa020db-a811-4fb9-9ea9-00a3359fbb53,1,0,968588bb-ee60-4399-955a-3ec4228d3c40,968588bb-ee60-4399-955a-3ec4228d3c40,1,0,c90e64cf-f5d4-47b9-8243-7177ac42202e,c90e64cf-f5d4-47b9-8243-7177ac42202e,1,0,23dbb528-7ea8-44ae-a1f2-b7608118666e,23dbb528-7ea8-44ae-a1f2-b7608118666e,1,0,b9627855-6773-4a59-b7d3-f9e2e565cd9e,b9627855-6773-4a59-b7d3-f9e2e565cd9e,1,0,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,ad87bd29-0ad1-4da4-ac62-38e714e0cb9f,1,0,46692974-34aa-45e1-8fec-9b36064073cd,46692974-34aa-45e1-8fec-9b36064073cd,1,0,a6308250-2b1b-40ef-bd20-589d519e3c38,a6308250-2b1b-40ef-bd20-589d519e3c38,1,0,22eafd3b-dc42-4a99-89af-3cd5311dc29f,22eafd3b-dc42-4a99-89af-3cd5311dc29f,1,0,c67f671a-3c83-44f4-9c6a-e06667ac8da6,c67f671a-3c83-44f4-9c6a-e06667ac8da6,1,0,283ce432-3553-4de9-94a2-ca9a590437f5,283ce432-3553-4de9-94a2-ca9a590437f5,1,0,1fbd4cfa-58cb-41ea-920e-a39cfa6ad90c,1fbd4cfa-58cb-41ea-920e-a39cfa6ad90c,1,0,5a83b75a-38b0-4d15-9c6f-c201fa97e485,5a83b75a-38b0-4d15-9c6f-c201fa97e485,1,0,0da019ca-1fc7-4aff-8998-3ddcccf10872,0da019ca-1fc7-4aff-8998-3ddcccf10872,1,0,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,7102d4fa-92f2-4fba-ad09-a33dbc71bef2,1,0,34b0e268-497d-44d4-b822-84909d0685aa,34b0e268-497d-44d4-b822-84909d0685aa,1,0,8961a859-2203-4678-ae1f-63e2474a787a,8961a859-2203-4678-ae1f-63e2474a787a,1,0,fe63db47-3ece-4518-b6a2-0b6499f60a61,fe63db47-3ece-4518-b6a2-0b6499f60a61,1,0,f6dd250e-75fd-47fc-abcb-79ea19ebd747,f6dd250e-75fd-47fc-abcb-79ea19ebd747,1,0,53c41e6c-89b0-4818-9832-02140373979b,53c41e6c-89b0-4818-9832-02140373979b,1,0,671afc3e-7589-49d8-95a5-1cf195c3b2f8,671afc3e-7589-49d8-95a5-1cf195c3b2f8,1,0,47accdc7-8fa0-4996-9305-c42b6ca12df9,47accdc7-8fa0-4996-9305-c42b6ca12df9,1,0,57e75b31-13b3-46fc-8ec4-7570ab0e9928,57e75b31-13b3-46fc-8ec4-7570ab0e9928,1,0,5abc496c-5745-4220-9fdc-bac092717871,5abc496c-5745-4220-9fdc-bac092717871,1,0,8ad81449-0b75-4775-a841-ca7fc7bf0d43,8ad81449-0b75-4775-a841-ca7fc7bf0d43,1,0,a1bc6cbe-6b80-414c-8a56-ed253d93524b,a1bc6cbe-6b80-414c-8a56-ed253d93524b,1,0,4d2f1acc-e206-4a0c-af9f-e360c4c30c4b,4d2f1acc-e206-4a0c-af9f-e360c4c30c4b,1,0,d81931b7-8ed8-4e4b-ac25-fedff3955ae0,d81931b7-8ed8-4e4b-ac25-fedff3955ae0,1,0,bda7d180-e2b8-4e04-ae3e-fc3f20202f4e,bda7d180-e2b8-4e04-ae3e-fc3f20202f4e,1,0,8375cfc8-0f27-404b-8c27-3268b22614b3,8375cfc8-0f27-404b-8c27-3268b22614b3,1,0,00bc465c-ea1b-4099-a4f1-a69f5b9a36cc,00bc465c-ea1b-4099-a4f1-a69f5b9a36cc,1,0,bbf65684-1382-4224-b1e8-fbfc4a615fbe,bbf65684-1382-4224-b1e8-fbfc4a615fbe,1,0,5e58dfe4-a93c-4910-95e5-765e33cc11ef,5e58dfe4-a93c-4910-95e5-765e33cc11ef,1,0,eced4ded-b59e-412c-a01f-1db3fb0b436a,eced4ded-b59e-412c-a01f-1db3fb0b436a,1,0,405f04ba-1bcd-478c-9ede-0d7a286a051f,405f04ba-1bcd-478c-9ede-0d7a286a051f,1,0,6b29b4b3-df0a-42f7-b89f-809ffbdacf02,6b29b4b3-df0a-42f7-b89f-809ffbdacf02,1,0,43d8dd53-df3e-407e-a3c1-5b893cc1976c,43d8dd53-df3e-407e-a3c1-5b893cc1976c,1,0,7741dfee-c4cc-454d-8e01-99ee82a78b5a,7741dfee-c4cc-454d-8e01-99ee82a78b5a,1,0,67f79e89-b922-4949-aec9-7d411ab727ed,67f79e89-b922-4949-aec9-7d411ab727ed,1,0,61e246f4-fe19-4377-8f69-fd1cb90e3f88,61e246f4-fe19-4377-8f69-fd1cb90e3f88,1,0,05c9e6c3-3e1c-4311-99ac-ec4d59a37205,05c9e6c3-3e1c-4311-99ac-ec4d59a37205,1,0,d437805b-42a9-439d-aef8-abbebe280b69,d437805b-42a9-439d-aef8-abbebe280b69,1,0,b33ccec0-a085-4e91-a26d-c262775d92e8,b33ccec0-a085-4e91-a26d-c262775d92e8,1,0,8adeeac2-d2d0-4d90-b7cb-c7871da477d5,8adeeac2-d2d0-4d90-b7cb-c7871da477d5,1,0,9e082d71-175a-4e80-8cca-6b538d3240eb,9e082d71-175a-4e80-8cca-6b538d3240eb,1,0,b8c4aff0-a36d-4be9-9a5e-b0873d83ff15,b8c4aff0-a36d-4be9-9a5e-b0873d83ff15,1,0,e60e1771-c8c0-44b6-b1d3-24e9529d9bd0,e60e1771-c8c0-44b6-b1d3-24e9529d9bd0,1,0,68704139-32bb-4b00-b439-147025d06a35,68704139-32bb-4b00-b439-147025d06a35,1,0,df80f175-7f2b-44f8-90d4-118e2e157356,df80f175-7f2b-44f8-90d4-118e2e157356,1,0,5a88f624-7b7e-43fe-8bc4-ae85d832a855,5a88f624-7b7e-43fe-8bc4-ae85d832a855,1,0,42e39ef7-268f-4053-b4e5-4bceab17d3e4,42e39ef7-268f-4053-b4e5-4bceab17d3e4,1,0,0302674f-944a-4a45-94c8-a44f93fc5a9a,0302674f-944a-4a45-94c8-a44f93fc5a9a,1,0,69504e02-a88b-4ad6-8890-604928b5a78a,69504e02-a88b-4ad6-8890-604928b5a78a,1,0,b49b47fb-d4dc-4efe-ad07-e8705d787e72,b49b47fb-d4dc-4efe-ad07-e8705d787e72,1,0,7df36398-7752-4f51-9978-1bcb4bcdd062,7df36398-7752-4f51-9978-1bcb4bcdd062,1,0,9fd55b7f-209b-4b74-99d6-965b8f6f2df9,9fd55b7f-209b-4b74-99d6-965b8f6f2df9,1,0,f818fde9-1b06-4507-a69f-4dcb0ce8cd7a,f818fde9-1b06-4507-a69f-4dcb0ce8cd7a,1,0,a6690ef1-b16a-4d58-bc31-a8089b2c00d8,a6690ef1-b16a-4d58-bc31-a8089b2c00d8,1,0,fce03f58-7f68-4d7c-a999-687667c1f03d,fce03f58-7f68-4d7c-a999-687667c1f03d,1,0,316f94ec-81ed-4b5c-aa9d-98d2cfe1c641,316f94ec-81ed-4b5c-aa9d-98d2cfe1c641,1,0,6fc12a2d-a346-48be-8214-c5f3d5208524,6fc12a2d-a346-48be-8214-c5f3d5208524,1,0,67d93adf-c506-4fea-ab1d-b77968a6d041,67d93adf-c506-4fea-ab1d-b77968a6d041,1,0,8dca62d1-49ea-4398-9180-22218a81860a,8dca62d1-49ea-4398-9180-22218a81860a,1,0,f4885af5-6ed6-40e8-81a5-0e9537f943d7,f4885af5-6ed6-40e8-81a5-0e9537f943d7,1,0,716302cc-ad47-4823-a81a-4c58857aa0a4,716302cc-ad47-4823-a81a-4c58857aa0a4,1,0,d0f3824e-ddfb-491d-8aea-e4e4806dc3ee,d0f3824e-ddfb-491d-8aea-e4e4806dc3ee,1,0,367c49cc-0317-4b0d-846c-79e203f800b8,367c49cc-0317-4b0d-846c-79e203f800b8,1,0,7cab0151-f86e-4ada-9ec6-e602749e34fc,7cab0151-f86e-4ada-9ec6-e602749e34fc,1,0,d9be359f-c5cb-4f3e-9ccd-61f38c6bbb26,d9be359f-c5cb-4f3e-9ccd-61f38c6bbb26,1,0,15b5979c-755b-480e-b00a-dcc95f62dfeb,15b5979c-755b-480e-b00a-dcc95f62dfeb,1,0,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,44cf6d0a-0a5b-4ca1-b91e-af61f40fb825,1,0,dcdf2b25-b024-4a89-b2c4-0a2ee43ef623,dcdf2b25-b024-4a89-b2c4-0a2ee43ef623,1,0,9200527c-b6b9-4962-9440-10449583e1e3,9200527c-b6b9-4962-9440-10449583e1e3,1,0,e8faa1a9-807a-4916-b3c5-76ba2199754c,e8faa1a9-807a-4916-b3c5-76ba2199754c,1,0,99b5c632-61fe-41f5-ac00-ea530633bf28,99b5c632-61fe-41f5-ac00-ea530633bf28,1,0,a3c9c4e7-d36a-4db1-bd95-a50886c4be60,a3c9c4e7-d36a-4db1-bd95-a50886c4be60,1,0,4c53f94e-d7e8-457c-b337-59d3b3c5bf24,4c53f94e-d7e8-457c-b337-59d3b3c5bf24,1,0,bd6d7dcd-421c-402e-b6b8-f6ce6b18c140,bd6d7dcd-421c-402e-b6b8-f6ce6b18c140,1,0,485911f7-a964-450d-82da-cab020836eb2,485911f7-a964-450d-82da-cab020836eb2,1,0,1960b036-b479-4f4f-80c5-23fc82474082,1960b036-b479-4f4f-80c5-23fc82474082,1,0,7707d7b0-bf30-4362-929a-a5de104266fc,7707d7b0-bf30-4362-929a-a5de104266fc,1,0,0da8a402-ea0f-488a-a087-77990e85a643,0da8a402-ea0f-488a-a087-77990e85a643,1,0,5e7ea635-f307-43cb-9aa7-2c99997b3c2d,5e7ea635-f307-43cb-9aa7-2c99997b3c2d,1,0,484003f5-a6df-48fb-a395-d0e0ebc8cc0d,484003f5-a6df-48fb-a395-d0e0ebc8cc0d,1,0,cedd0b47-07cb-4dae-86b5-31d396b693c7,cedd0b47-07cb-4dae-86b5-31d396b693c7,1,0,8b4614aa-c769-49f4-a281-a0ffb101abf1,8b4614aa-c769-49f4-a281-a0ffb101abf1,1,0,c08391e1-c4e3-42aa-8738-061031d0cb75,c08391e1-c4e3-42aa-8738-061031d0cb75,1,0,ba06091b-b659-4d29-a971-81335cf4060a,ba06091b-b659-4d29-a971-81335cf4060a,1,0,7c376c72-409e-4b5f-a5b6-85b0a1c23f58,7c376c72-409e-4b5f-a5b6-85b0a1c23f58,1,0,b7a0d00f-fbf3-41fe-b72f-c17e163264f9,b7a0d00f-fbf3-41fe-b72f-c17e163264f9,1,0,7bbd6fe8-c2fe-4ed2-abd7-2b3fc5b2f410,7bbd6fe8-c2fe-4ed2-abd7-2b3fc5b2f410,1,0,d61fa2fb-a035-469f-9ae1-b78ecd82c83d,d61fa2fb-a035-469f-9ae1-b78ecd82c83d,1,0,bf4c6723-e586-4643-9f03-9e672afea26f,bf4c6723-e586-4643-9f03-9e672afea26f,1,0,4c3a39e3-40ee-423b-91f0-14b60e045b40,4c3a39e3-40ee-423b-91f0-14b60e045b40,1,0,2f2875d7-7598-4ed5-8cc0-a1982ffb5377,2f2875d7-7598-4ed5-8cc0-a1982ffb5377,1,0,23204b0b-bf77-4f7c-9945-e73ad924ebb4,23204b0b-bf77-4f7c-9945-e73ad924ebb4,1,0,dd9d3586-775b-4d5b-ab2d-78db0870ecdd,dd9d3586-775b-4d5b-ab2d-78db0870ecdd,1,0,44c610c3-9c0b-4bf0-95d6-f17100d3e98d,44c610c3-9c0b-4bf0-95d6-f17100d3e98d,1,0,a54f2d41-a05e-4878-80c6-81ca2899fa4c,a54f2d41-a05e-4878-80c6-81ca2899fa4c,1,0,23a898d9-5bcb-4744-ab6c-97b17dc98f20,23a898d9-5bcb-4744-ab6c-97b17dc98f20,1,0,c83f7826-0fef-4a9b-8d36-dee5d93c7417,c83f7826-0fef-4a9b-8d36-dee5d93c7417,1,0,50a04251-ac9c-4a21-a37f-ebc9ac3ef233,50a04251-ac9c-4a21-a37f-ebc9ac3ef233,1,0,f8f56806-ed7e-4059-a0c8-940538c14c98,f8f56806-ed7e-4059-a0c8-940538c14c98,1,0,9ff9f92b-c509-48da-82ce-15b524a895d6,9ff9f92b-c509-48da-82ce-15b524a895d6,1,0,c8bf96c8-f359-4940-8e87-3d190371d6d3,c8bf96c8-f359-4940-8e87-3d190371d6d3,1,0,477f0b81-0eb1-4de1-8cb5-38f1e0823947,477f0b81-0eb1-4de1-8cb5-38f1e0823947,1,0,d914eaa9-ce85-4df7-a545-2d411ef915b0,d914eaa9-ce85-4df7-a545-2d411ef915b0,1,0,41881344-82b7-4904-9ab8-0207d9bcd0a9,41881344-82b7-4904-9ab8-0207d9bcd0a9,1,0,5c542a16-0f95-43be-85cd-bfd49b15f215,5c542a16-0f95-43be-85cd-bfd49b15f215,1,0,ef4d648f-4cac-4df9-9880-2aa13c422d10,ef4d648f-4cac-4df9-9880-2aa13c422d10,1,0,21032fa5-9426-40bd-91e4-ace1e4ceb013,21032fa5-9426-40bd-91e4-ace1e4ceb013,1,0,7185a8f8-48c4-43a9-b31f-102302b8f152,7185a8f8-48c4-43a9-b31f-102302b8f152,1,0,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,ddfe5401-e136-4f20-aa65-aeb42a61a1f0,1,0,27a80757-c0fd-40c7-ad24-4c819c1ba72b,27a80757-c0fd-40c7-ad24-4c819c1ba72b,1,0,c573a29f-4c39-402d-8af4-e0fff80877f8,c573a29f-4c39-402d-8af4-e0fff80877f8,1,0,7fce9e49-e558-4760-9d95-dde6ac6c1e78,7fce9e49-e558-4760-9d95-dde6ac6c1e78,1,0,e5aba4a3-6056-4ef3-827c-d74283175393,e5aba4a3-6056-4ef3-827c-d74283175393,1,0,edc731ba-532f-4fa1-81a8-58beb3b2dfb1,edc731ba-532f-4fa1-81a8-58beb3b2dfb1,1,0,63039e62-7314-42ff-bdc6-c251f38b3827,63039e62-7314-42ff-bdc6-c251f38b3827,1,0,8a4b7aab-b602-4581-8fa4-fab66791f701,8a4b7aab-b602-4581-8fa4-fab66791f701,1,0,7c92c579-4651-4fe3-90dc-6c9b594b76f0,7c92c579-4651-4fe3-90dc-6c9b594b76f0,1,0,a2be2d7a-cca0-460f-a915-dadfb9cd588b,a2be2d7a-cca0-460f-a915-dadfb9cd588b,1,0,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,35bac3e3-1329-4aa6-866f-f6fcaed8cd6e,1,0,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,ed53b24d-5338-4ae1-8659-0ea6450dc7bb,1,0,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,6add2712-48e8-4b22-a7bb-7d8c808ac5fc,1,0,1f4408f5-460e-431b-9842-bc6875ccf0ae,1f4408f5-460e-431b-9842-bc6875ccf0ae,1,0,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,ec09aa2d-758f-4ae8-96b7-0f05b8187dda,1,0,7bfc6163-a62f-45e8-9112-40a5d675ba4a,7bfc6163-a62f-45e8-9112-40a5d675ba4a,1,0,542ff510-0245-4a08-80ac-a9941c66ae93,542ff510-0245-4a08-80ac-a9941c66ae93,1,0,03297623-eaa2-4db0-bf1b-ce2076faf20a,03297623-eaa2-4db0-bf1b-ce2076faf20a,1,0,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,3c6ef64e-c9bd-4cba-98a4-ffcc5b93b6da,1,0,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,700c2edd-c457-47b7-a7d3-5fb3d9078d1f,1,0,82a3802c-b6d6-4511-bd8b-eeec003afa33,82a3802c-b6d6-4511-bd8b-eeec003afa33,1,0,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,8b59dec8-12b8-455f-8dfc-7c3f03b4ffa5,1,0,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,b5eb2e12-c39c-44fa-b940-09b4dcd2817c,1,0,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,5d5ffb56-e18b-4831-94f0-d7a76c2eee6f,1,0,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,590f29f4-2db1-47c6-83a0-f44d4bbe6e3e,1,0,a755cb43-492d-4069-9b6a-29b92ebb5b0e,a755cb43-492d-4069-9b6a-29b92ebb5b0e,1,0,a5df6ca4-8791-4025-a0e6-07d66e0454b7,a5df6ca4-8791-4025-a0e6-07d66e0454b7,1,0,7f7598e5-ca54-487e-b95c-b18d330b034c,7f7598e5-ca54-487e-b95c-b18d330b034c,1,0,86d09107-f511-4148-b5d9-d97e92addfde,86d09107-f511-4148-b5d9-d97e92addfde,1,0,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,c14c1f91-f4b9-44d6-b560-8dcdb5faf5f9,1,0,2120ad01-6bff-48bd-bad8-324e1301b112,2120ad01-6bff-48bd-bad8-324e1301b112,1,0,b9255acf-dc35-4225-8d3a-544e66b7334d,b9255acf-dc35-4225-8d3a-544e66b7334d,1,0,55b78834-3d90-4858-a6f7-e0368b1d8c41,55b78834-3d90-4858-a6f7-e0368b1d8c41,1,0,059b9a75-f53a-4518-a48a-afc72ab9ee36,059b9a75-f53a-4518-a48a-afc72ab9ee36,1,0,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,bc0dcb68-bfb8-49f4-8eb4-2ca953d852bd,1,0,31e95872-97c7-49e3-bd1b-8df4de07014d,31e95872-97c7-49e3-bd1b-8df4de07014d,1,0,8b9be02b-cd1f-4231-a895-6c9be26348c2,8b9be02b-cd1f-4231-a895-6c9be26348c2,1,0,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,c52c4b8c-6be7-460a-9b54-6cdf64e3f8fe,1,0,64e03321-33a4-424d-a101-90f1e0da4c2e,64e03321-33a4-424d-a101-90f1e0da4c2e,1,0,fa4f0b33-5253-4a5f-8121-feae3e1968a6,fa4f0b33-5253-4a5f-8121-feae3e1968a6,1,0,e0d21be2-91dc-4a04-9078-49420ddddcd5,e0d21be2-91dc-4a04-9078-49420ddddcd5,1,0,56c97764-7dba-42e0-8ba0-82712aca20e9,56c97764-7dba-42e0-8ba0-82712aca20e9,1,0,a1d80053-ef03-4c00-9fc9-266e61aeaffb,a1d80053-ef03-4c00-9fc9-266e61aeaffb,1,0,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,03ad9b3d-8f3a-4482-a777-f6a3b3d953d6,1,0,3f05dcf9-be52-42e1-b5ff-dea14d97a26f,3f05dcf9-be52-42e1-b5ff-dea14d97a26f,1,0,7f3c6269-ea41-492f-87b7-7eaaf712762e,7f3c6269-ea41-492f-87b7-7eaaf712762e,1,0,a5d037b0-c666-4179-9d6a-5f48c4a126a8,a5d037b0-c666-4179-9d6a-5f48c4a126a8,1,0,f0850411-4dee-4f1d-baec-7d6c96b10637,f0850411-4dee-4f1d-baec-7d6c96b10637,1,0,12f95031-b81f-4802-b2f3-6f70def90db0,12f95031-b81f-4802-b2f3-6f70def90db0,1,0,5732112a-f31d-41cd-9a7f-312a27395502,5732112a-f31d-41cd-9a7f-312a27395502,1,0,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,bbf8342b-24f0-4d11-bb5a-4c89d5ea7766,1,0,691f9902-6b95-4579-a3d9-3b2b5b548776,691f9902-6b95-4579-a3d9-3b2b5b548776,1,0,c7a8a88f-040a-47a6-8c93-7f3f01544760,c7a8a88f-040a-47a6-8c93-7f3f01544760,1,0,06fc381d-f27a-433c-95c3-e0981e01f22b,06fc381d-f27a-433c-95c3-e0981e01f22b,1,0,6d93ec4f-167a-4804-910b-988ee8aad78e,6d93ec4f-167a-4804-910b-988ee8aad78e,1,0,f646835e-61eb-4ebd-811e-dac5e70bd1b4,f646835e-61eb-4ebd-811e-dac5e70bd1b4,1,0,61b49c4c-3021-4868-834a-9137476ae169,61b49c4c-3021-4868-834a-9137476ae169,1,0,58911911-5192-45fe-87cf-c4a222a521a1,58911911-5192-45fe-87cf-c4a222a521a1,1,0,70067937-9f27-4442-b87b-6c4576ce1b78,70067937-9f27-4442-b87b-6c4576ce1b78,1,0,115d5d06-a2fc-453e-aab5-c869b6d5850b,115d5d06-a2fc-453e-aab5-c869b6d5850b,1,0,d33ca006-d81d-4ef8-8503-7878e81c599f,d33ca006-d81d-4ef8-8503-7878e81c599f,1,0,123bb339-b95e-44c3-b1e9-482dcaa6f297,123bb339-b95e-44c3-b1e9-482dcaa6f297,1,0,f4119605-beb3-46b6-b372-ecdb74f10a33,f4119605-beb3-46b6-b372-ecdb74f10a33,1,0,d2a2e332-a52c-4277-bd19-5ea8ef198469,d2a2e332-a52c-4277-bd19-5ea8ef198469,1,0,e440c594-14bb-4a6e-af53-a4519c7d5548,e440c594-14bb-4a6e-af53-a4519c7d5548,1,0,4165bdaa-8e27-40de-bcdc-0379c34e8868,4165bdaa-8e27-40de-bcdc-0379c34e8868,1,0,a9a3fde2-99d5-4ebf-88b1-eccd9d74276e,a9a3fde2-99d5-4ebf-88b1-eccd9d74276e,1,0,82b05859-4c4d-4d5a-a620-cc6aab10f527,82b05859-4c4d-4d5a-a620-cc6aab10f527,1,0,c5871658-94dd-4df4-9a3f-db5d245dd106,c5871658-94dd-4df4-9a3f-db5d245dd106,1,0,a3131bf3-88b1-431c-a01c-be6e26396f91,a3131bf3-88b1-431c-a01c-be6e26396f91,1,0,5c3edcbd-fb62-471c-b75b-f1a759956ebe,5c3edcbd-fb62-471c-b75b-f1a759956ebe,1,0,e606f8eb-952a-4abb-b1ae-4211204bed84,e606f8eb-952a-4abb-b1ae-4211204bed84,1,0,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,7ddc3d13-fa6f-4fa9-870e-a34d5b2d9582,1,0,1c2ad932-150a-4b15-b958-62eaa8a1eebc,1c2ad932-150a-4b15-b958-62eaa8a1eebc,1,0,b4deaebf-2c21-47d7-9436-10c94c94667c,b4deaebf-2c21-47d7-9436-10c94c94667c,1,0,2a12ce95-3214-4bd2-a0e6-c2af41875821,2a12ce95-3214-4bd2-a0e6-c2af41875821,1,0,bf05548c-babf-402b-b698-9a62e7c69add,bf05548c-babf-402b-b698-9a62e7c69add,1,0,f8295f29-2533-4013-981b-240f017d9f7c,f8295f29-2533-4013-981b-240f017d9f7c,1,0,538b316b-3876-4da6-8b97-ad8ef59de17d,538b316b-3876-4da6-8b97-ad8ef59de17d,1,0,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,f70f09fd-59e1-47b6-aaf3-cb4cc4ceaa7e,1,0,ebc5f182-482b-4dec-9961-ce3a448abd0e,ebc5f182-482b-4dec-9961-ce3a448abd0e,1,0,83e618f5-1bf4-474a-9d65-389f1e4b16c3,83e618f5-1bf4-474a-9d65-389f1e4b16c3,1,0,1357512e-3ed3-455d-bc91-81db3b92f9fe,1357512e-3ed3-455d-bc91-81db3b92f9fe,1,0,82223d0f-41d9-45a6-9612-ae4d8408fa1b,82223d0f-41d9-45a6-9612-ae4d8408fa1b,1,0,3ee058a9-aff5-46f0-8928-8a417e7800d4,3ee058a9-aff5-46f0-8928-8a417e7800d4,1,0,639c2ffc-4514-4b79-89e2-d49caadf828d,639c2ffc-4514-4b79-89e2-d49caadf828d,1,0,c9a03f19-42bb-4e07-8ce8-1b954e431ada,c9a03f19-42bb-4e07-8ce8-1b954e431ada,1,0,ed4edc6f-048a-40d5-8f61-989895c95cf3,ed4edc6f-048a-40d5-8f61-989895c95cf3,1,0,73cc5fea-597f-4490-9c62-b175fdc38fd3,73cc5fea-597f-4490-9c62-b175fdc38fd3,1,0,c2049ace-3095-4dd7-9cc0-7721118451ad,c2049ace-3095-4dd7-9cc0-7721118451ad,1,0,8cb20eb9-306b-4c2a-9a77-6a4632f72b54,8cb20eb9-306b-4c2a-9a77-6a4632f72b54,1,0,87ba683b-b69c-4b23-854c-037b770a3ebb,87ba683b-b69c-4b23-854c-037b770a3ebb,1,0,f3f753ac-b2cb-44ea-a917-811b0ef711f8,f3f753ac-b2cb-44ea-a917-811b0ef711f8,1,0,1357adf5-0f5d-4930-afea-edc89db4d0a6,1357adf5-0f5d-4930-afea-edc89db4d0a6,1,0,505ff816-0d42-458a-b7b5-7d007c15d1be,505ff816-0d42-458a-b7b5-7d007c15d1be,1,0,27811a76-d8bd-43a5-9898-944bdd1388ce,27811a76-d8bd-43a5-9898-944bdd1388ce,1,0,363215fe-59f3-4d9a-a8c7-94049882147a,363215fe-59f3-4d9a-a8c7-94049882147a,1,0,3d4597ca-1c97-4116-b966-87970cd7ebdf,3d4597ca-1c97-4116-b966-87970cd7ebdf,1,0,715f7ba5-ca82-49e6-8671-fc1b55b740b5,715f7ba5-ca82-49e6-8671-fc1b55b740b5,1,0,0add6d62-bf4f-476c-9f6b-37633fcd6b0e,0add6d62-bf4f-476c-9f6b-37633fcd6b0e,1,0,93e495a4-207d-4216-b63e-a8b169b2b801,93e495a4-207d-4216-b63e-a8b169b2b801,1,0,3b47221a-ad5f-419c-b503-a4a88505d336,3b47221a-ad5f-419c-b503-a4a88505d336,1,0,0149a9c0-245b-4dfe-aa98-e8b02ba85c99,0149a9c0-245b-4dfe-aa98-e8b02ba85c99,1,0,94abbe1e-44d8-43c1-90fb-71bc9b6621a9,94abbe1e-44d8-43c1-90fb-71bc9b6621a9,1,0,2edfc563-9fd8-4f7c-8cd4-ba3c27c08840,2edfc563-9fd8-4f7c-8cd4-ba3c27c08840,1,0,d0d052c7-68b9-4b2b-9bbf-4fb083327dca,d0d052c7-68b9-4b2b-9bbf-4fb083327dca,1,0,807194b1-2460-4872-8430-e34f6970178f,807194b1-2460-4872-8430-e34f6970178f,1,0,b0409473-768f-4c29-89d3-6201e8476157,b0409473-768f-4c29-89d3-6201e8476157,1,0,d8415773-616e-43e4-9deb-e92200659d53,d8415773-616e-43e4-9deb-e92200659d53,1,0,b228f0de-7cd7-4337-b021-bc1beb980afd,b228f0de-7cd7-4337-b021-bc1beb980afd,1,0,c9178048-5d75-4d1b-a714-50d772e8d343,c9178048-5d75-4d1b-a714-50d772e8d343,1,0,661b7581-27ad-4cec-8618-9c314cb3a4d5,661b7581-27ad-4cec-8618-9c314cb3a4d5,1,0,310a8f7d-5b1f-428c-885d-1127b7789efd,310a8f7d-5b1f-428c-885d-1127b7789efd,1,0,ee5efc54-aa35-467f-b085-64f24819aaa7,ee5efc54-aa35-467f-b085-64f24819aaa7,1,0,376c8f0b-9d2e-4262-a26f-b63f1163c1c4,376c8f0b-9d2e-4262-a26f-b63f1163c1c4,1,0,d37c82e1-cc9f-492c-a7fb-0e6e9d8f6a72,d37c82e1-cc9f-492c-a7fb-0e6e9d8f6a72,1,0,b7ebf08a-d6be-42db-b28a-460df037d7ba,b7ebf08a-d6be-42db-b28a-460df037d7ba,1,0,ec3c34f6-b3b3-4a96-a231-aaf70db1e73d,ec3c34f6-b3b3-4a96-a231-aaf70db1e73d,1,0,8aa9daa0-e073-49f4-8346-7f2c809fac9a,8aa9daa0-e073-49f4-8346-7f2c809fac9a,1,0,043074cb-64aa-45ed-a2f3-b4fa252431cc,043074cb-64aa-45ed-a2f3-b4fa252431cc,1,0,9cc72214-6e84-45e6-aafd-b36205730faa,9cc72214-6e84-45e6-aafd-b36205730faa,1,0,768eb7d6-d37e-4182-961e-464a5e08781b,768eb7d6-d37e-4182-961e-464a5e08781b,1,0,4df52b04-759d-471d-9de4-3ba4d00d1d22,4df52b04-759d-471d-9de4-3ba4d00d1d22,1,0,5768f558-50b6-4682-960c-6894f6953461,5768f558-50b6-4682-960c-6894f6953461,1,0,74126b65-4f3b-4f8d-b7fc-1d2705822463,74126b65-4f3b-4f8d-b7fc-1d2705822463,1,0,75a4b472-00b6-4b2f-bb6b-03bdc0b05dcf,75a4b472-00b6-4b2f-bb6b-03bdc0b05dcf,1,0,8506ad71-85eb-4f91-b892-4e75318649c8,8506ad71-85eb-4f91-b892-4e75318649c8,1,0,6e3010f5-f725-4361-b853-768412b1ad6f,6e3010f5-f725-4361-b853-768412b1ad6f,1,0,40d8803a-2f6d-4091-be54-9d9827a53e30,40d8803a-2f6d-4091-be54-9d9827a53e30,1,0,ea2b936c-be5c-4316-aca9-4f890f4e6ec9,ea2b936c-be5c-4316-aca9-4f890f4e6ec9,1,0,092501bf-dd8e-4f50-8c58-b1b028b50a5a,092501bf-dd8e-4f50-8c58-b1b028b50a5a,1,0,927cfec6-c1e3-4152-aa2e-afa89359b5eb,927cfec6-c1e3-4152-aa2e-afa89359b5eb,1,0,8e986c32-7296-4329-a908-704398428e4e,8e986c32-7296-4329-a908-704398428e4e,1,0,c5b8870c-14cb-43ae-8d44-d639bd059b0e,c5b8870c-14cb-43ae-8d44-d639bd059b0e,1,0,bc98265e-329d-41d1-9fe8-4c78b7998cd2,bc98265e-329d-41d1-9fe8-4c78b7998cd2,1,0,b44c8a6b-0e3f-446b-95f7-6cb4a58f13e0,b44c8a6b-0e3f-446b-95f7-6cb4a58f13e0,1,0,7601f9c7-2fe7-43fb-a7a9-cf5be4475ce1,7601f9c7-2fe7-43fb-a7a9-cf5be4475ce1,1,0,2da686d3-38b0-4cf1-9962-1440d1afd050,2da686d3-38b0-4cf1-9962-1440d1afd050,1,0,71518348-f155-4616-bbdc-742e36cd3964,71518348-f155-4616-bbdc-742e36cd3964,1,0,723a58ca-9947-4320-9bf4-7c6b58aee2f5,723a58ca-9947-4320-9bf4-7c6b58aee2f5,1,0,2df24487-0b76-451d-a08f-21dc03adefa4,2df24487-0b76-451d-a08f-21dc03adefa4,1,0,00813d65-8dae-45a8-8691-d0b17d6d7754,00813d65-8dae-45a8-8691-d0b17d6d7754,1,0,d88166a7-ef6c-453a-b6cc-1c574cf6ea85,d88166a7-ef6c-453a-b6cc-1c574cf6ea85,1,0,aae1a856-ff88-41bb-a887-1b8c2c3eeab6,aae1a856-ff88-41bb-a887-1b8c2c3eeab6,1,0,cf2b8654-02b6-441e-98a9-cb8bea5cac89,cf2b8654-02b6-441e-98a9-cb8bea5cac89,1,0,2181bde8-031d-425e-875f-0bd153b634f2,2181bde8-031d-425e-875f-0bd153b634f2,1,0,ee1b81ac-0182-48dd-a348-1d8ba38869ca,ee1b81ac-0182-48dd-a348-1d8ba38869ca,1,0,ad385d3e-8201-402a-a1a8-267bc8c6d56b,ad385d3e-8201-402a-a1a8-267bc8c6d56b,1,0,53bb97e3-cd96-462a-b91f-c82678568d9a,53bb97e3-cd96-462a-b91f-c82678568d9a,1,0,32ca3bd6-7b32-4eab-8a4e-aeac26604e08,32ca3bd6-7b32-4eab-8a4e-aeac26604e08,1,0,2a702d37-8e83-4fa0-9969-5d954a7096c1,2a702d37-8e83-4fa0-9969-5d954a7096c1,1,0,71b7225e-6486-4916-85b2-8ec14363ebc8,71b7225e-6486-4916-85b2-8ec14363ebc8,1,0,2df34fcd-3118-4871-95d7-807dece77d3f,2df34fcd-3118-4871-95d7-807dece77d3f,1,0,32db89ab-74d3-4f80-9352-65e405770906,32db89ab-74d3-4f80-9352-65e405770906,1,0,21c22027-2036-4136-a98e-500e5cd679d1,21c22027-2036-4136-a98e-500e5cd679d1,1,0,6fe56db7-0f48-4dd0-b509-5372019ddcc2,6fe56db7-0f48-4dd0-b509-5372019ddcc2,1,0,884990f4-54f1-4b05-a5ed-40ee5a7a549a,884990f4-54f1-4b05-a5ed-40ee5a7a549a,1,0,4cf71e62-c8c2-4bc7-87fc-a89e48f2c007,4cf71e62-c8c2-4bc7-87fc-a89e48f2c007,1,0,e5a9260b-c18b-47bf-bc5a-23294e13025a,e5a9260b-c18b-47bf-bc5a-23294e13025a,1,0,02f00688-a2ed-4f91-bd41-50fc29e13d6c,02f00688-a2ed-4f91-bd41-50fc29e13d6c,1,0,e9f2b435-13e3-401a-9324-ca44986b7676,e9f2b435-13e3-401a-9324-ca44986b7676,1,0,2b854852-ae2d-46d8-8c3b-228af7a3f1db,2b854852-ae2d-46d8-8c3b-228af7a3f1db,1,0,11346c91-ecb6-40e6-a2fb-df7e6f5dbaed,11346c91-ecb6-40e6-a2fb-df7e6f5dbaed,1,0,f4f096ac-45e3-4dfb-8363-be35edceb6c6,f4f096ac-45e3-4dfb-8363-be35edceb6c6,1,0,cb7ff74e-9697-4ea7-88a2-a2f207a5d313,cb7ff74e-9697-4ea7-88a2-a2f207a5d313,1,0,5c3b45fb-0d95-4a15-a42b-5d6baa7a699c,5c3b45fb-0d95-4a15-a42b-5d6baa7a699c,1,0,662940c1-49de-4b94-867b-6c16bf716266,662940c1-49de-4b94-867b-6c16bf716266,1,0,eb2d414c-ba68-47c6-b74b-c8566987b824,eb2d414c-ba68-47c6-b74b-c8566987b824,1,0,ef2706e1-9fc9-42e8-add6-85392a78fff3,ef2706e1-9fc9-42e8-add6-85392a78fff3,1,0,aa609e39-3e3b-4af7-8b79-49293df6b6f2,aa609e39-3e3b-4af7-8b79-49293df6b6f2,1,0,f9188489-ad5e-4eaf-a87a-7191776e4fd4,f9188489-ad5e-4eaf-a87a-7191776e4fd4,1,0,8763c516-04a3-4ca3-9f5d-da3026a46d2a,8763c516-04a3-4ca3-9f5d-da3026a46d2a,1,0,d9fbb0e9-7a19-4742-a958-72c0c3c2307b,d9fbb0e9-7a19-4742-a958-72c0c3c2307b,1,0,d83a4e56-2ab3-44f4-91dc-a6881c62f7c6,d83a4e56-2ab3-44f4-91dc-a6881c62f7c6,1,0,9ea7a191-38bb-40cc-8025-d34a5ed17c7c,9ea7a191-38bb-40cc-8025-d34a5ed17c7c,1,0,4c6bc132-e0f6-4eb0-a4aa-bceb103e7f02,4c6bc132-e0f6-4eb0-a4aa-bceb103e7f02,1,0,dc17d8b6-d277-43eb-8823-71d440ae1e90,dc17d8b6-d277-43eb-8823-71d440ae1e90,1,0,c5b8bf21-5c8f-4e5b-8b85-bfac387ce99a,c5b8bf21-5c8f-4e5b-8b85-bfac387ce99a,1,0,27f793d8-da6a-4502-9b7e-82b8af7264d1,27f793d8-da6a-4502-9b7e-82b8af7264d1,1,0,4d3f3c76-999c-4105-8b64-cd4b7bc861b9,4d3f3c76-999c-4105-8b64-cd4b7bc861b9,1,0,efcf8b0f-7124-4096-9f50-b9b95369f196,efcf8b0f-7124-4096-9f50-b9b95369f196,1,0,c1f2db60-011c-4a0b-97bb-42e005ba51c9,c1f2db60-011c-4a0b-97bb-42e005ba51c9,1,0,15111bf5-5bf5-4486-aff0-20ded684b67f,15111bf5-5bf5-4486-aff0-20ded684b67f,1,0,2465986e-7519-4638-9f62-5f692bebeeac,2465986e-7519-4638-9f62-5f692bebeeac,1,0,d9a6706e-3dcd-4aec-b9d1-542330ba6e2e,d9a6706e-3dcd-4aec-b9d1-542330ba6e2e,1,0,7cbf0398-2bc7-4f40-9a9e-af4135c6a2d2,7cbf0398-2bc7-4f40-9a9e-af4135c6a2d2,1,0,022f99dd-e1b7-42a7-8141-a8c2e8628901,022f99dd-e1b7-42a7-8141-a8c2e8628901,1,0,cc770616-f6f6-4054-876c-f319b1f8c6cf,cc770616-f6f6-4054-876c-f319b1f8c6cf,1,0,3baffdec-a2cb-48c9-9c21-4fc469e81e3b,3baffdec-a2cb-48c9-9c21-4fc469e81e3b,1,0,046e6f4f-3d92-4b20-b19f-fca608fa0f11,046e6f4f-3d92-4b20-b19f-fca608fa0f11,1,0,74bea66f-15bf-48de-9ff9-f9c35a8bf5cc,74bea66f-15bf-48de-9ff9-f9c35a8bf5cc,1,0,8486e623-1a54-4ad9-ab44-591b6a559bc3,8486e623-1a54-4ad9-ab44-591b6a559bc3,1,0,dce82d28-9a7b-4d4c-af13-90f459cf4af2,dce82d28-9a7b-4d4c-af13-90f459cf4af2,1,0,cb9f2231-49bb-4b14-a124-8996628afead,cb9f2231-49bb-4b14-a124-8996628afead,1,0,6fe9a455-7fef-4a1b-8109-57eafc17e2b6,6fe9a455-7fef-4a1b-8109-57eafc17e2b6,1,0,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,dc1b8bce-49c5-4fd2-a597-27f1fbc98648,1,0,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,ac4c6275-3c23-4a1f-b19e-c674fd685e8f,1,0,2031ed38-6a8e-4ca7-aa97-449ee36ab7a3,2031ed38-6a8e-4ca7-aa97-449ee36ab7a3,1,0,896de79f-3c34-4436-a4e2-4dd4f45c3e20,896de79f-3c34-4436-a4e2-4dd4f45c3e20,1,0,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,25d118f0-bfb7-4f08-84b1-0511b0fc92e8,1,0,e6c42b5d-57fd-42ce-a968-653620e797f6,e6c42b5d-57fd-42ce-a968-653620e797f6,1,0,993193b3-1dd8-4f5b-8ce7-6a0bf8c4330c,993193b3-1dd8-4f5b-8ce7-6a0bf8c4330c,1,0,724fb328-fec6-4afe-bc99-0ff0951b184b,724fb328-fec6-4afe-bc99-0ff0951b184b,1,0,7a0cdc94-9e53-4fcc-ac2f-97ad2ad939f5,7a0cdc94-9e53-4fcc-ac2f-97ad2ad939f5,1,0,f6259a3b-98f5-4649-8fd0-da0a0285f375,f6259a3b-98f5-4649-8fd0-da0a0285f375,1,0,c565bf25-c55e-4324-851a-cec497f5114a,c565bf25-c55e-4324-851a-cec497f5114a,1,0,db6679c4-a647-471a-9f90-40248eb18db9,db6679c4-a647-471a-9f90-40248eb18db9,1,0,455a1ca6-7212-43ac-b5a2-cf85dd2f9c14,455a1ca6-7212-43ac-b5a2-cf85dd2f9c14,1,0,e7c366f7-c8e3-4ffe-bc5e-ca8a4619ec11,e7c366f7-c8e3-4ffe-bc5e-ca8a4619ec11,1,0,2997e4da-d831-48e4-96e2-c29f9d077302,2997e4da-d831-48e4-96e2-c29f9d077302,1,0,30f59002-a23d-4eff-b84f-f280f11b220e,30f59002-a23d-4eff-b84f-f280f11b220e,1,0,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,b50994d0-23f9-4bf4-93d2-cf9bcffa6fc9,1,0,5b0e250c-4d2d-4e37-ade1-593854610d3f,5b0e250c-4d2d-4e37-ade1-593854610d3f,1,0,14583452-805e-423d-be9a-e04683c7c46f,14583452-805e-423d-be9a-e04683c7c46f,1,0,148f63d5-23ad-4824-a24c-14d5a54c62d3,148f63d5-23ad-4824-a24c-14d5a54c62d3,1,0,d6cdd049-b31b-48aa-a2aa-a24b0bdf3337,d6cdd049-b31b-48aa-a2aa-a24b0bdf3337,1,0,75378d9c-a364-4b46-a6d1-b745604c46a2,75378d9c-a364-4b46-a6d1-b745604c46a2,1,0,d7376ea8-245a-4342-9a40-c729ca19f966,d7376ea8-245a-4342-9a40-c729ca19f966,1,0,eabfa8b7-fb65-43dd-9308-787f7cce88c9,eabfa8b7-fb65-43dd-9308-787f7cce88c9,1,0,4bf12710-aef2-43ec-b16f-9c6c9e8eb18d,4bf12710-aef2-43ec-b16f-9c6c9e8eb18d,1,0,b1e837ff-0edd-4525-b2e2-92cc7990e00e,b1e837ff-0edd-4525-b2e2-92cc7990e00e,1,0,30213cef-b2bc-4e6c-8094-74a61f28b2ed,30213cef-b2bc-4e6c-8094-74a61f28b2ed,1,0,037fd2f3-27f1-4d8f-a621-82fa5754e8c7,037fd2f3-27f1-4d8f-a621-82fa5754e8c7,1,0,3fc1e50e-b9da-45f7-8e06-57ef6951ca40,3fc1e50e-b9da-45f7-8e06-57ef6951ca40,1,0,66d67f47-ccbb-4d58-aceb-af876f480750,66d67f47-ccbb-4d58-aceb-af876f480750,1,0,71871ca9-095d-4bde-ac80-1371f578cd51,71871ca9-095d-4bde-ac80-1371f578cd51,1,0,6aa8c1d6-9956-4a98-9992-b119ba5ba1c7,6aa8c1d6-9956-4a98-9992-b119ba5ba1c7,1,0,cafbea88-86f0-4a44-98f4-70d1837da452,cafbea88-86f0-4a44-98f4-70d1837da452,1,0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,1,0,2df403a2-57d8-4578-b017-e7cf9550b708,2df403a2-57d8-4578-b017-e7cf9550b708,1,0,ceb286e9-4e7c-49fa-a695-424073e0dffc,ceb286e9-4e7c-49fa-a695-424073e0dffc,1,0,727689c3-c0d8-496f-a47b-4f3243ad8974,727689c3-c0d8-496f-a47b-4f3243ad8974,1,0,ec7b492d-5d38-4f31-90e0-577ad181514e,ec7b492d-5d38-4f31-90e0-577ad181514e,1,0,5b14d700-bc59-4bdb-8226-554696336e16,5b14d700-bc59-4bdb-8226-554696336e16,1,0,d1771aec-ba78-4b5d-861a-9ac6d8627dea,d1771aec-ba78-4b5d-861a-9ac6d8627dea,1,0,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,1,0,07288e13-583c-4caf-983a-76c5d2ebf66f,07288e13-583c-4caf-983a-76c5d2ebf66f,1,0,5e232e6a-7f68-40d2-9555-4a2b3debe095,5e232e6a-7f68-40d2-9555-4a2b3debe095,1,0,efc8ca7d-966d-4c18-acd9-90f22dd75a7a,efc8ca7d-966d-4c18-acd9-90f22dd75a7a,1,0,1780ffa9-1ca3-4bcb-823f-5e582c4cc25e,1780ffa9-1ca3-4bcb-823f-5e582c4cc25e,1,0,2522fce4-d121-482b-a39d-0c1a842d315e,2522fce4-d121-482b-a39d-0c1a842d315e,1,0,4807629d-8421-4bd9-beb4-5b2940197958,4807629d-8421-4bd9-beb4-5b2940197958,1,0,b8d7bdc9-2778-4f36-a0d9-c43fce15eb3c,b8d7bdc9-2778-4f36-a0d9-c43fce15eb3c,1,0,4bad7c64-131a-42cb-9be7-d61f14f456d0,4bad7c64-131a-42cb-9be7-d61f14f456d0,1,0,d46e141b-7a10-4d65-971f-3a35f2114017,d46e141b-7a10-4d65-971f-3a35f2114017,1,0,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,cd6f96c7-33ee-42b1-bb81-ce7d9652337c,1,0,71cad48a-37f2-4894-b876-9d74fa844828,71cad48a-37f2-4894-b876-9d74fa844828,1,0,0f325868-167b-43d5-b17a-eadc606a8f79,0f325868-167b-43d5-b17a-eadc606a8f79,1,0,51ea38c1-3005-4f4b-b813-91c8e2717683,51ea38c1-3005-4f4b-b813-91c8e2717683,1,0,766c7fb5-727e-4975-9ea1-3b0df4739620,766c7fb5-727e-4975-9ea1-3b0df4739620,1,0,ba59393c-c499-4999-91d4-b9e34d94db0e,ba59393c-c499-4999-91d4-b9e34d94db0e,1,0,626da0dd-d75b-4779-be1f-9b71d2f2d4e1,626da0dd-d75b-4779-be1f-9b71d2f2d4e1,1,0,1d4b7f71-6c72-4f41-a2ed-1f2fe2122c04,1d4b7f71-6c72-4f41-a2ed-1f2fe2122c04,1,0,584aa9db-e6b0-49f3-ae9d-5b6c796d015c,584aa9db-e6b0-49f3-ae9d-5b6c796d015c,1,0,fcf6a4cd-d0c9-4f83-b9b0-514baed3ccb9,fcf6a4cd-d0c9-4f83-b9b0-514baed3ccb9,1,0,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,3f92cffe-b4ea-45e3-b2b9-a9e316405a8c,1,0,913743c3-9529-4c86-b056-93e954df7819,913743c3-9529-4c86-b056-93e954df7819,1,0,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,1,0,3b453f76-ab85-4c65-b008-7f8bf44c9631,3b453f76-ab85-4c65-b008-7f8bf44c9631,1,0,ba5574bd-53ca-413f-a245-272f468a80fb,ba5574bd-53ca-413f-a245-272f468a80fb,1,0,772e7011-0019-4edc-b673-b7151cf4fa6c,772e7011-0019-4edc-b673-b7151cf4fa6c,1,0,21ac47fa-12c2-43e2-9b57-afdf521d3485,21ac47fa-12c2-43e2-9b57-afdf521d3485,1,0,f58bffe7-4a02-4c4e-bfed-7895177a400c,f58bffe7-4a02-4c4e-bfed-7895177a400c,1,0,fe285122-2257-4fb2-ab7e-1683c31db1c6,fe285122-2257-4fb2-ab7e-1683c31db1c6,1,0,0facc6eb-a178-45ee-a6bc-4bf085d80453,0facc6eb-a178-45ee-a6bc-4bf085d80453,1,0,f74eef36-9441-4b6f-b21c-de9643832f9f,f74eef36-9441-4b6f-b21c-de9643832f9f,1,0,d1391e3b-ec29-48c8-8bf5-fa4434a909e9,d1391e3b-ec29-48c8-8bf5-fa4434a909e9,1,0,8d1c44d7-52f2-4089-9d77-2f03bf051455,8d1c44d7-52f2-4089-9d77-2f03bf051455,1,0,ac2e5217-aaeb-4b6f-b063-538c84f2da06,ac2e5217-aaeb-4b6f-b063-538c84f2da06,1,0,b5e73fbe-499c-4666-a482-0ef399c97c1e,b5e73fbe-499c-4666-a482-0ef399c97c1e,1,0,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,a0811e0a-91b6-4c4b-a6d2-a57b9185983b,1,0,4ac77dea-3c2b-4566-8857-ba99f7b025c9,4ac77dea-3c2b-4566-8857-ba99f7b025c9,1,0,8e87da88-9fa8-4dd8-b904-622b763239f4,8e87da88-9fa8-4dd8-b904-622b763239f4,1,0,2a7f1ce3-2629-4860-886b-67c9f82eeb29,2a7f1ce3-2629-4860-886b-67c9f82eeb29,1,0,6b5720a8-0bcc-4196-934d-84db9d99ec27,6b5720a8-0bcc-4196-934d-84db9d99ec27,1,0,c0b3e3e9-20bc-42e1-a68f-646a958586d1,c0b3e3e9-20bc-42e1-a68f-646a958586d1,1,0,39496918-7d71-4960-ad8b-0028ae659266,39496918-7d71-4960-ad8b-0028ae659266,1,0,bdf2fd35-2000-45c2-9df6-65031ee0e4af,bdf2fd35-2000-45c2-9df6-65031ee0e4af,1,0,529cc5b5-835f-4e70-9232-a9649fdc7ae5,529cc5b5-835f-4e70-9232-a9649fdc7ae5,1,0,09fec67d-6e45-428c-b858-9ae20979676c,09fec67d-6e45-428c-b858-9ae20979676c,1,0,4875a235-bcc8-47eb-83e3-a66f0f690b97,4875a235-bcc8-47eb-83e3-a66f0f690b97,1,0,58ffc4d9-d711-4b68-905c-d2ac4f78b547,58ffc4d9-d711-4b68-905c-d2ac4f78b547,1,0,114ab2a1-f7c3-4453-a6cc-4c5a23c00cb5,114ab2a1-f7c3-4453-a6cc-4c5a23c00cb5,1,0,93c347d8-66cb-406c-9ee6-b1962482893f,93c347d8-66cb-406c-9ee6-b1962482893f,1,0,cce593b4-6f7c-466d-892c-7fe89fcddf5d,cce593b4-6f7c-466d-892c-7fe89fcddf5d,1,0,94ab750f-46b4-427c-a7f2-4e94fb9b0678,94ab750f-46b4-427c-a7f2-4e94fb9b0678,1,0,397d9926-31a3-4c03-acb7-74478f9863e1,397d9926-31a3-4c03-acb7-74478f9863e1,1,0,264dd12a-b4c5-44bf-b3c0-ef9225505f76,264dd12a-b4c5-44bf-b3c0-ef9225505f76,1,0,90b8fdf3-3e42-442f-a002-6a28ad0edc99,90b8fdf3-3e42-442f-a002-6a28ad0edc99,1,0,330a176f-5b61-41f5-84bb-b99a9439c2a0,330a176f-5b61-41f5-84bb-b99a9439c2a0,1,0,d1ba8620-c0c9-4281-afa6-9c9962c338d3,d1ba8620-c0c9-4281-afa6-9c9962c338d3,1,0,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,92f35bea-50b8-4a1c-8fb2-a8c7df7a50db,1,0,02f1c0db-3217-4c61-aef7-3b87c217739c,02f1c0db-3217-4c61-aef7-3b87c217739c,1,0,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,82ba8c13-6567-4f0c-be0e-0884ce19bbcc,1,0,4bdc1a18-f184-4f95-bda4-8f5c4b7c3aa1,4bdc1a18-f184-4f95-bda4-8f5c4b7c3aa1,1,0,60200fc6-252f-4eaf-88a2-d2cefa25061f,60200fc6-252f-4eaf-88a2-d2cefa25061f,1,0,0798a128-2f87-4173-99ae-115bb8b3a3b8,0798a128-2f87-4173-99ae-115bb8b3a3b8,1,0,40f93527-7bff-4f9c-b855-2b69f7c5eb33,40f93527-7bff-4f9c-b855-2b69f7c5eb33,1,0,697bd1de-bbef-4362-aa39-71f6008f4bd7,697bd1de-bbef-4362-aa39-71f6008f4bd7,1,0,676b2ea2-a559-4685-b5ca-7b619b02f101,676b2ea2-a559-4685-b5ca-7b619b02f101,1,0,a3e9afe9-1587-47c7-8e7b-b8df6b3a2664,a3e9afe9-1587-47c7-8e7b-b8df6b3a2664,1,0,0e31d69a-8d2c-4ad0-b3ac-93ba5afcefdf,0e31d69a-8d2c-4ad0-b3ac-93ba5afcefdf,1,0,89574884-bce2-406d-9961-d1656b306eb8,89574884-bce2-406d-9961-d1656b306eb8,1,0,3de28e34-3c1e-4e7f-a720-3418c8c9c496,3de28e34-3c1e-4e7f-a720-3418c8c9c496,1,0,7f2d69b4-2f87-40f4-a78c-fe4cabc2a502,7f2d69b4-2f87-40f4-a78c-fe4cabc2a502,1,0,dacb236e-42a5-47e5-b239-ff18ae48e21e,dacb236e-42a5-47e5-b239-ff18ae48e21e,1,0,5cdb6e71-fd20-461a-83db-d59ccdb5b366,5cdb6e71-fd20-461a-83db-d59ccdb5b366,1,0,388b8576-9ba4-460f-b71b-3d644663656a,388b8576-9ba4-460f-b71b-3d644663656a,1,0,d4d38827-fce6-4c39-a4b4-51c7d7edc475,d4d38827-fce6-4c39-a4b4-51c7d7edc475,1,0,2d40609d-b56f-4082-9a6f-8216817ebd24,2d40609d-b56f-4082-9a6f-8216817ebd24,1,0,62629f36-5d1e-460f-9ac5-983607c40cb2,62629f36-5d1e-460f-9ac5-983607c40cb2,1,0,b238b4b2-beaf-4b5d-a728-8aebac3bacb5,b238b4b2-beaf-4b5d-a728-8aebac3bacb5,1,0,732b19c8-4f22-4748-a796-71538e46fc2f,732b19c8-4f22-4748-a796-71538e46fc2f,1,0,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,9fb2169b-fc77-4a3f-a1d8-b939079d9d9d,1,0,4b07cdb0-c32e-4751-b317-bee62b43f128,4b07cdb0-c32e-4751-b317-bee62b43f128,1,0,74f02619-7fa8-4c6d-81d6-230156ee45f4,74f02619-7fa8-4c6d-81d6-230156ee45f4,1,0,32cab8f2-cebf-4508-9396-eb41f4e8ba22,32cab8f2-cebf-4508-9396-eb41f4e8ba22,1,0,62ef3558-5ad3-44ab-8578-1acbbfa54135,62ef3558-5ad3-44ab-8578-1acbbfa54135,1,0,a103cca0-8243-40e9-bcdd-97a1cc8a3943,a103cca0-8243-40e9-bcdd-97a1cc8a3943,1,0,c3572d8d-46ff-40bb-800c-2c07f884c219,c3572d8d-46ff-40bb-800c-2c07f884c219,1,0,80fd89d7-160d-4528-9aa0-05b8dac64b4c,80fd89d7-160d-4528-9aa0-05b8dac64b4c,1,0,b77edd78-2fad-4926-a74f-02f2135356e6,b77edd78-2fad-4926-a74f-02f2135356e6,1,0,57b0b6b2-bbdd-48d2-a52e-e3495e00860e,57b0b6b2-bbdd-48d2-a52e-e3495e00860e,1,0,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,1,0,da551cf6-4f86-4e37-8967-a84c80e1fb13,da551cf6-4f86-4e37-8967-a84c80e1fb13,1,0,4f4916dc-b6fe-4f99-9220-bd7c076408ae,4f4916dc-b6fe-4f99-9220-bd7c076408ae,1,0,857daa3a-0058-4464-9173-13a2926812e2,857daa3a-0058-4464-9173-13a2926812e2,1,0,5fb2c120-fd14-4e78-a35f-c8e9478b3235,5fb2c120-fd14-4e78-a35f-c8e9478b3235,1,0,9d514ce1-f9bd-4018-8107-545cdd372fbd,9d514ce1-f9bd-4018-8107-545cdd372fbd,1,0,fe6b732f-3a33-460f-9686-cffdd5f7d99b,fe6b732f-3a33-460f-9686-cffdd5f7d99b,1,0,06250212-aeb1-4cb8-8785-ea71b1dad848,06250212-aeb1-4cb8-8785-ea71b1dad848,1,0,0c068a61-e5e6-4475-96fa-b7c1d825da42,0c068a61-e5e6-4475-96fa-b7c1d825da42,1,0,1047e34d-397a-42cc-80e6-1be755bd6462,1047e34d-397a-42cc-80e6-1be755bd6462,1,0,1cd473c3-4e36-47a9-b466-73d86ec244b0,1cd473c3-4e36-47a9-b466-73d86ec244b0,1,0,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,c3e31dfd-b79b-49b9-9dc0-e2439bfe5ab7,1,0,b406b5f9-eeaf-43a0-8930-067554d783c9,b406b5f9-eeaf-43a0-8930-067554d783c9,1,0,47718840-2939-4e30-a72c-a20c88ac4c17,47718840-2939-4e30-a72c-a20c88ac4c17,1,0,58a38994-9fe4-4783-967d-79d1141b90f3,58a38994-9fe4-4783-967d-79d1141b90f3,1,0,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,6e23a4b2-f53c-41ea-9fef-8f4561b8e0cc,1,0,a511f7d7-60ef-4a5c-8f8e-ddbee065eccd,a511f7d7-60ef-4a5c-8f8e-ddbee065eccd,1,0,6fa87b5a-fab0-48b6-b8ab-1aaa8c82d81d,6fa87b5a-fab0-48b6-b8ab-1aaa8c82d81d,1,0,323ef3df-b1cb-4927-a16e-2dbf11e37ae8,323ef3df-b1cb-4927-a16e-2dbf11e37ae8,1,0,e1760aea-29e3-4a45-b02a-b2b96cb73ec4,e1760aea-29e3-4a45-b02a-b2b96cb73ec4,1,0,c2b721a7-1e61-4b72-ba75-f4601d52e98a,c2b721a7-1e61-4b72-ba75-f4601d52e98a,1,0,a4ecd21c-a980-47f8-9944-b1dd7b5a41f3,a4ecd21c-a980-47f8-9944-b1dd7b5a41f3,1,0,7c2e35a8-d05d-4e52-baee-a1e13585c502,7c2e35a8-d05d-4e52-baee-a1e13585c502,1,0,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,5d8b60e5-d407-4d8a-b4fb-e26a36ab8180,1,0,2cea7641-6f1d-4bc7-9d38-8d99f196e0f5,2cea7641-6f1d-4bc7-9d38-8d99f196e0f5,1,0,0093680b-c8bc-472d-8b0d-2e6565fc6c22,0093680b-c8bc-472d-8b0d-2e6565fc6c22,1,0,7fa6a20a-26e2-41ad-be66-a43b50d0bbcd,7fa6a20a-26e2-41ad-be66-a43b50d0bbcd,1,0,5f4456d6-ff0c-425e-9603-c099492d7a6f,5f4456d6-ff0c-425e-9603-c099492d7a6f,1,0,af7c417e-5c10-4146-bde1-40db86c5806f,af7c417e-5c10-4146-bde1-40db86c5806f,1,0,1f018218-2281-4e32-a486-f32386959e5f,1f018218-2281-4e32-a486-f32386959e5f,1,0,ab5b0155-a4b1-47a1-ad87-12365dde20c1,ab5b0155-a4b1-47a1-ad87-12365dde20c1,1,0,90f3f3c5-4ca9-4c8f-9b73-f67760a6d2f0,90f3f3c5-4ca9-4c8f-9b73-f67760a6d2f0,1,0,f551f78a-2f05-4932-ac33-cfa1b077f46f,f551f78a-2f05-4932-ac33-cfa1b077f46f,1,0,a96091a7-d3a5-4893-8440-f360231bf468,a96091a7-d3a5-4893-8440-f360231bf468,1,0,9ce6eef0-5280-4374-9714-474ac571e4e2,9ce6eef0-5280-4374-9714-474ac571e4e2,1,0,6f21c34c-26aa-493d-aa08-2d4366b4064a,6f21c34c-26aa-493d-aa08-2d4366b4064a,1,0,0f55650a-2422-42a9-8258-61df4c17f1ef,0f55650a-2422-42a9-8258-61df4c17f1ef,1,0,2ef4ea1d-fd86-4ef3-a7e0-73abba89474d,2ef4ea1d-fd86-4ef3-a7e0-73abba89474d,1,0,3eaece9d-c9be-4b0b-a6f6-a3932274b806,3eaece9d-c9be-4b0b-a6f6-a3932274b806,1,0,5d9427ec-981d-4fb5-878b-8dba0d3a5536,5d9427ec-981d-4fb5-878b-8dba0d3a5536,1,0,c5dd6184-96e5-4abc-8c1e-5270e6547ee5,c5dd6184-96e5-4abc-8c1e-5270e6547ee5,1,0,a0047712-5769-495d-97af-20d06751a5b4,a0047712-5769-495d-97af-20d06751a5b4,1,0,e729c3c6-16e5-405b-99b1-a88022300c6d,e729c3c6-16e5-405b-99b1-a88022300c6d,1,0,9c089520-8233-42f6-8eee-9839ac708c6f,9c089520-8233-42f6-8eee-9839ac708c6f,1,0,24f2cfc7-6dc0-400c-8eb2-106ca2ea7034,24f2cfc7-6dc0-400c-8eb2-106ca2ea7034,1,0,5f3ffa44-49be-4da5-ab2a-a35c9bd76dee,5f3ffa44-49be-4da5-ab2a-a35c9bd76dee,1,0,89055896-49dd-4cfd-ab78-8ac3698e12d5,89055896-49dd-4cfd-ab78-8ac3698e12d5,1,0,277ca641-e869-4fcd-8a79-54c451efbbdd,277ca641-e869-4fcd-8a79-54c451efbbdd,1,0,beb07009-6612-4052-a991-888138da8e30,beb07009-6612-4052-a991-888138da8e30,1,0,aeb54e92-a1d0-46a1-b4cb-87d3c29fa30b,aeb54e92-a1d0-46a1-b4cb-87d3c29fa30b,1,0,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,8395bfb2-3cf4-4bec-b19b-eb6dd3aa7a39,1,0,672c4741-6d7b-4d3e-baa7-389bef0625d7,672c4741-6d7b-4d3e-baa7-389bef0625d7,1,0,04398ec0-1c13-43f8-8f5d-7b7619592a4d,04398ec0-1c13-43f8-8f5d-7b7619592a4d,1,0,ce463861-92df-47f2-bd0f-4a2dbf72aacc,ce463861-92df-47f2-bd0f-4a2dbf72aacc,1,0,1220ce92-b964-4fb8-9db0-b4c8c6bdbdf7,1220ce92-b964-4fb8-9db0-b4c8c6bdbdf7,1,0,eca79a64-3d00-4178-b4eb-cf5468622c96,eca79a64-3d00-4178-b4eb-cf5468622c96,1,0,1487d68c-7a2f-48cf-8c80-4074072ed52c,1487d68c-7a2f-48cf-8c80-4074072ed52c,1,0,57502594-74dd-45fe-9234-9a477d5b9741,57502594-74dd-45fe-9234-9a477d5b9741,1,0,6ed8c74c-6b6e-4ed1-95ff-a733f618b213,6ed8c74c-6b6e-4ed1-95ff-a733f618b213,1,0,d97c6536-fd62-4c9a-b83e-490a29a0721b,d97c6536-fd62-4c9a-b83e-490a29a0721b,1,0,93ec2af7-2ca8-4133-8cc0-31073f9bf216,93ec2af7-2ca8-4133-8cc0-31073f9bf216,1,0,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,1,0,681b27ac-69a5-4c5b-b2c7-285330fe5a4a,681b27ac-69a5-4c5b-b2c7-285330fe5a4a,1,0,6dc4c216-e49f-4833-b45f-6060b67995ef,6dc4c216-e49f-4833-b45f-6060b67995ef,1,0,0753701c-016e-4385-85c0-a485ca50efdc,0753701c-016e-4385-85c0-a485ca50efdc,1,0,c3a6b470-37d5-4499-badb-33b73b52e346,c3a6b470-37d5-4499-badb-33b73b52e346,1,0,24415097-bde5-447a-ac74-bd9bf0eb19fc,24415097-bde5-447a-ac74-bd9bf0eb19fc,1,0,a29d42d6-a448-4940-804d-d1be31da000d,a29d42d6-a448-4940-804d-d1be31da000d,1,0,dd780b76-2a10-40b5-9bcd-7bc8c9b06651,dd780b76-2a10-40b5-9bcd-7bc8c9b06651,1,0,8be6c4a3-d75b-405d-8d98-9baf6f20abb2,8be6c4a3-d75b-405d-8d98-9baf6f20abb2,1,0,7cbd82e3-4bf8-46ab-8504-4bf30523fa2a,7cbd82e3-4bf8-46ab-8504-4bf30523fa2a,1,0,c4b01e52-4136-460d-bd82-970177f1e256,c4b01e52-4136-460d-bd82-970177f1e256,1,0,9533784b-311a-4dbe-b73e-7348aabd387e,9533784b-311a-4dbe-b73e-7348aabd387e,1,0,56bdc69a-d8e8-4da6-a3a5-41ef32bbb626,56bdc69a-d8e8-4da6-a3a5-41ef32bbb626,1,0,c770cd75-f370-4042-9a5a-82b2fc1853cc,c770cd75-f370-4042-9a5a-82b2fc1853cc,1,0,6ee215f9-20ab-4c48-b2c2-cb1869e8906c,6ee215f9-20ab-4c48-b2c2-cb1869e8906c,1,0,b74af9c1-bc44-40ce-b093-d1f548a1742f,b74af9c1-bc44-40ce-b093-d1f548a1742f,1,0,1b401a14-4581-4f24-aaca-5f204f8fcf8b,1b401a14-4581-4f24-aaca-5f204f8fcf8b,1,0,267f7ee6-7b02-4e48-aa1e-145f586edd87,267f7ee6-7b02-4e48-aa1e-145f586edd87,1,0,e1e8ea42-6886-430a-bc59-249259112e6a,e1e8ea42-6886-430a-bc59-249259112e6a,1,0,1e27f3cd-1c9e-4f9f-b2ff-88fb1da37e11,1e27f3cd-1c9e-4f9f-b2ff-88fb1da37e11,1,0,3dcf815c-5c9a-4a78-a42e-7c9ff6faaeb8,3dcf815c-5c9a-4a78-a42e-7c9ff6faaeb8,1,0,1379f050-4f1c-4c41-993e-f7efc71325fb,1379f050-4f1c-4c41-993e-f7efc71325fb,1,0,4655fa12-9169-4d08-bdab-9b3174d0b223,4655fa12-9169-4d08-bdab-9b3174d0b223,1,0,753c70c1-af12-4ec2-ac12-dd1ce33f729f,753c70c1-af12-4ec2-ac12-dd1ce33f729f,1,0,6c07ddfb-8823-4953-9905-9550b847dc3f,6c07ddfb-8823-4953-9905-9550b847dc3f,1,0,2362a8d5-dca2-4527-acc0-63782377f28a,2362a8d5-dca2-4527-acc0-63782377f28a,1,0,dfd6d85c-a734-4458-83b0-87b5949f9c68,dfd6d85c-a734-4458-83b0-87b5949f9c68,1,0,4e3b0b9f-45b7-48a8-86c6-cc14a921aa78,4e3b0b9f-45b7-48a8-86c6-cc14a921aa78,1,0,79b6ecf5-8a6b-44a4-9587-5f8764463228,79b6ecf5-8a6b-44a4-9587-5f8764463228,1,0,5e4ec9d8-bb60-4dfb-89ba-002527dc149b,5e4ec9d8-bb60-4dfb-89ba-002527dc149b,1,0,bf463763-3801-4664-9d04-4d9fd7fe8c43,bf463763-3801-4664-9d04-4d9fd7fe8c43,1,0,43a0760f-3635-4e6a-a68a-1a2232245329,43a0760f-3635-4e6a-a68a-1a2232245329,1,0,5c64a4dd-2b9f-4110-abe2-266e6d8638fb,5c64a4dd-2b9f-4110-abe2-266e6d8638fb,1,0,d408d054-86ac-4471-a29d-efed65989899,d408d054-86ac-4471-a29d-efed65989899,1,0,3e979ec3-b544-4e37-8be6-95dce0a2b780,3e979ec3-b544-4e37-8be6-95dce0a2b780,1,0,2444eed3-25c7-4abc-a9a8-f3f3a8201267,2444eed3-25c7-4abc-a9a8-f3f3a8201267,1,0,e91118e9-d054-41a1-bfe9-343179718f33,e91118e9-d054-41a1-bfe9-343179718f33,1,0,042245ef-3a30-46fb-b3e3-6599d5426cbd,042245ef-3a30-46fb-b3e3-6599d5426cbd,1,0,d1034240-ab06-413a-9828-a5c7dc879680,d1034240-ab06-413a-9828-a5c7dc879680,1,0,5dd0f264-6d9f-41e4-92b6-e8b4fa3b4d84,5dd0f264-6d9f-41e4-92b6-e8b4fa3b4d84,1,0,cd49148c-e385-4b75-a758-a93196e73dba,cd49148c-e385-4b75-a758-a93196e73dba,1,0,ece15c4e-4a4b-421b-9f00-10f698da476b,ece15c4e-4a4b-421b-9f00-10f698da476b,1,0,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,6cb136cd-dc5c-4d85-8a0d-70b9f8bf70d5,1,0,300ecdd6-144f-48c8-9fd4-6166f1de1047,300ecdd6-144f-48c8-9fd4-6166f1de1047,1,0,b6bbfb59-8249-47af-9394-be262f118811,b6bbfb59-8249-47af-9394-be262f118811,1,0,999df397-a730-4110-b253-59fd5583dab9,999df397-a730-4110-b253-59fd5583dab9,1,0,7f7bf652-0375-4f49-94f1-ebe6a00e4e23,7f7bf652-0375-4f49-94f1-ebe6a00e4e23,1,0,12d19666-e996-4b55-b43c-b3a541f849a7,12d19666-e996-4b55-b43c-b3a541f849a7,1,0,15dab650-f7ed-42bc-8ca3-c104c3e68ce4,15dab650-f7ed-42bc-8ca3-c104c3e68ce4,1,0,fb63d488-fb91-4d08-8f8c-f4836538216f,fb63d488-fb91-4d08-8f8c-f4836538216f,1,0,b8be6c09-6880-45d3-a2d1-06ad72d069c9,b8be6c09-6880-45d3-a2d1-06ad72d069c9,1,0,3c1b10c7-3667-43f0-ac03-8cdaa84cb177,3c1b10c7-3667-43f0-ac03-8cdaa84cb177,1,0,148dd521-8754-451b-803b-cbee7c3d3965,148dd521-8754-451b-803b-cbee7c3d3965,1,0,38bc48c7-3938-47be-be3f-844f19561301,38bc48c7-3938-47be-be3f-844f19561301,1,0,4bdd09d5-6bc9-421f-99f0-ae905340f0d4,4bdd09d5-6bc9-421f-99f0-ae905340f0d4,1,0,147038fb-6154-41f3-aad6-547db27d1e43,147038fb-6154-41f3-aad6-547db27d1e43,1,0,832fa9d3-deab-4c57-b6e2-dee5d24d6100,832fa9d3-deab-4c57-b6e2-dee5d24d6100,1,0,dd4270ef-6b4c-491e-8871-959dbec14c53,dd4270ef-6b4c-491e-8871-959dbec14c53,1,0,c2b115d3-04f8-43c8-aed9-c61280b8cc3b,c2b115d3-04f8-43c8-aed9-c61280b8cc3b,1,0,9883862f-c0eb-41fe-9374-05c6d72878bc,9883862f-c0eb-41fe-9374-05c6d72878bc,1,0,61cfdc9a-49c3-4316-b38d-997910cf25c3,61cfdc9a-49c3-4316-b38d-997910cf25c3,1,0,8ccd9be8-ef26-49b9-8cee-03ae4e500386,8ccd9be8-ef26-49b9-8cee-03ae4e500386,1,0,ddca925c-fdcd-40ce-a504-4fca1758de3f,ddca925c-fdcd-40ce-a504-4fca1758de3f,1,0,9bd92328-8c9c-4882-8956-a1fccf555a64,9bd92328-8c9c-4882-8956-a1fccf555a64,1,0,cafc6b5b-a76a-4b1b-9592-ba440f7bf34f,cafc6b5b-a76a-4b1b-9592-ba440f7bf34f,1,0,e5033559-9d58-4b9b-a739-40c419e82192,e5033559-9d58-4b9b-a739-40c419e82192,1,0,594c79fa-0fdc-41d5-b122-04615dca3752,594c79fa-0fdc-41d5-b122-04615dca3752,1,0,f64de21f-5a7c-4a1a-a929-07fc53049f6c,f64de21f-5a7c-4a1a-a929-07fc53049f6c,1,0,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,470cdf43-07f4-46d5-aab2-d41f1e5da3cd,1,0,ea653eca-f96a-447d-8b09-7a7cb6929ed6,ea653eca-f96a-447d-8b09-7a7cb6929ed6,1,0,4f9b6c01-0919-41ba-91dc-49497d0fecf7,4f9b6c01-0919-41ba-91dc-49497d0fecf7,1,0,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,1,0,ea868745-71fc-483c-aa6e-f242c06c673f,ea868745-71fc-483c-aa6e-f242c06c673f,1,0,5efc4bc4-b711-4620-8d2e-9d947c6cc141,5efc4bc4-b711-4620-8d2e-9d947c6cc141,1,0,1d8d0eed-caaa-494c-aeea-0df5846fc97a,1d8d0eed-caaa-494c-aeea-0df5846fc97a,1,0,1328947f-91c3-43f4-a11e-f34893d987b3,1328947f-91c3-43f4-a11e-f34893d987b3,1,0,6de9dab4-ee34-4584-a2e7-7a29c86794b0,6de9dab4-ee34-4584-a2e7-7a29c86794b0,1,0,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,ae52e48c-20ec-43cd-a9a5-b1753558e1d2,1,0,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,5e08154e-bd8b-4e61-8a6c-b5b500f12b99,1,0,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,39af0f4c-0f0d-4e9a-aa63-d0eee3985b4e,1,0,2b72fe1c-afe1-4905-8db2-2bb1baca6295,2b72fe1c-afe1-4905-8db2-2bb1baca6295,1,0,aa8c4a71-3276-4b83-8be2-3528129e58b3,aa8c4a71-3276-4b83-8be2-3528129e58b3,1,0,4bc4c6db-0ef8-405f-8875-b4cb1540aeb5,4bc4c6db-0ef8-405f-8875-b4cb1540aeb5,1,0,528d3535-f20f-4d3c-8b7d-482d4d626eb0,528d3535-f20f-4d3c-8b7d-482d4d626eb0,1,0,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,dbd8391c-a174-43d6-a8db-d9ab76b4edbe,1,0,e9a2441e-faf9-4158-acc7-b1a6178ae0f3,e9a2441e-faf9-4158-acc7-b1a6178ae0f3,1,0,ea0a498a-a1cb-4f28-88cb-0bc62971172b,ea0a498a-a1cb-4f28-88cb-0bc62971172b,1,0,ce5f5470-b704-4f55-8dc8-17cf2c2b367a,ce5f5470-b704-4f55-8dc8-17cf2c2b367a,1,0,871a75ef-1987-4695-9916-07439aeedc53,871a75ef-1987-4695-9916-07439aeedc53,1,0,ba64deac-5826-43f2-b88a-2e180da87059,ba64deac-5826-43f2-b88a-2e180da87059,1,0,53ee3eb6-d2d1-4fb3-8a78-1fa4543850a1,53ee3eb6-d2d1-4fb3-8a78-1fa4543850a1,1,0,0072986b-0463-4a39-9851-f9adeda99716,0072986b-0463-4a39-9851-f9adeda99716,1,0,fa44433b-1c44-45a0-9487-47aa092442cf,fa44433b-1c44-45a0-9487-47aa092442cf,1,0,041cecfd-cef2-45d9-90e8-afe0d97d2d95,041cecfd-cef2-45d9-90e8-afe0d97d2d95,1,0,0d4a26fb-7176-43f2-8767-d3e227c7306a,0d4a26fb-7176-43f2-8767-d3e227c7306a,1,0,801facc3-3b3b-4d0a-93c6-54a1f3495291,801facc3-3b3b-4d0a-93c6-54a1f3495291,1,0,f10167ac-f7bd-42fb-8daa-864593fcc115,f10167ac-f7bd-42fb-8daa-864593fcc115,1,0,77de81f0-97c5-4751-9f38-f5785c7c45e0,77de81f0-97c5-4751-9f38-f5785c7c45e0,1,0,933cbafc-5667-4a91-8b1d-dca3d7662522,933cbafc-5667-4a91-8b1d-dca3d7662522,1,0,59acaca9-ed29-4927-bee6-287c91934690,59acaca9-ed29-4927-bee6-287c91934690,1,0,9136814a-89e6-4b0f-8ca1-73e4ef29f534,9136814a-89e6-4b0f-8ca1-73e4ef29f534,1,0,d7e4795a-3431-4f7d-9699-4241611adcf0,d7e4795a-3431-4f7d-9699-4241611adcf0,1,0,7e4222fd-fb98-4ae5-9d98-d41c3d572a0c,7e4222fd-fb98-4ae5-9d98-d41c3d572a0c,1,0,d9d14a24-c023-4b69-ad57-30d1474e1232,d9d14a24-c023-4b69-ad57-30d1474e1232,1,0,b6e98aee-4936-491d-8c67-8490e1af2e34,b6e98aee-4936-491d-8c67-8490e1af2e34,1,0,0732ab1c-b49a-49ed-8667-65f4427cc301,0732ab1c-b49a-49ed-8667-65f4427cc301,1,0,b292eb46-df87-43c0-9a37-93c5a22af252,b292eb46-df87-43c0-9a37-93c5a22af252,1,0,0943dd00-1653-4760-a9fe-ebc083ffa660,0943dd00-1653-4760-a9fe-ebc083ffa660,1,0,7406da96-2e16-42a0-9522-d76547708eca,7406da96-2e16-42a0-9522-d76547708eca,1,0,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,1,0,e475a311-7cef-45e2-9ed2-0bded8b5c963,e475a311-7cef-45e2-9ed2-0bded8b5c963,1,0,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,6179c7bf-08d6-4600-8cdc-ea6d4187bd55,1,0,f93c9a7f-0249-421e-b3d0-55f02d130017,f93c9a7f-0249-421e-b3d0-55f02d130017,1,0,062c507a-9d35-4eb5-bb91-d106a535a503,062c507a-9d35-4eb5-bb91-d106a535a503,1,0,ea1284f2-33f1-4e3d-b009-1ffad3aaf300,ea1284f2-33f1-4e3d-b009-1ffad3aaf300,1,0,bd727741-ba99-484d-9d7d-2c2ad7ddd1a5,bd727741-ba99-484d-9d7d-2c2ad7ddd1a5,1,0,90327957-5bdc-4949-883c-9eb50f527b3e,90327957-5bdc-4949-883c-9eb50f527b3e,1,0,031980f5-60e8-426a-9907-3afff75a6b05,031980f5-60e8-426a-9907-3afff75a6b05,1,0,1a26f2d5-2465-484c-9311-12d9b3b92ae3,1a26f2d5-2465-484c-9311-12d9b3b92ae3,1,0,fd317d96-380e-4ee7-a25b-401e8521cc7a,fd317d96-380e-4ee7-a25b-401e8521cc7a,1,0,64837ad8-3055-4da3-a39c-0e7db38b6084,64837ad8-3055-4da3-a39c-0e7db38b6084,1,0,695cda1d-b816-4200-9a71-490078a9faa7,695cda1d-b816-4200-9a71-490078a9faa7,1,0,75fc5bea-e239-4de1-ad68-6454876e4b9f,75fc5bea-e239-4de1-ad68-6454876e4b9f,1,0,31ba33d4-5941-4b11-ae99-b15188bfef76,31ba33d4-5941-4b11-ae99-b15188bfef76,1,0,0744e8be-747c-47bb-85f3-58b6f6f9b786,0744e8be-747c-47bb-85f3-58b6f6f9b786,1,0,7142ae5b-ec7b-4a69-9c26-f51e05a4c270,7142ae5b-ec7b-4a69-9c26-f51e05a4c270,1,0,3b380a63-9232-42c2-bfa2-e8fc89448bbd,3b380a63-9232-42c2-bfa2-e8fc89448bbd,1,0,e18b4527-8727-4a10-9e99-a80012debe6c,e18b4527-8727-4a10-9e99-a80012debe6c,1,0,1ed910db-e434-4efd-9b12-c25353a31d5a,1ed910db-e434-4efd-9b12-c25353a31d5a,1,0,10556a26-ea4b-46b4-84d1-175eb13b333f,10556a26-ea4b-46b4-84d1-175eb13b333f,1,0,f1e600b0-55ed-4611-b147-f04d5621796b,f1e600b0-55ed-4611-b147-f04d5621796b,1,0,e3b84128-95e1-45df-84db-5e1791779543,e3b84128-95e1-45df-84db-5e1791779543,1,0,76702e9e-fa7a-4b98-befa-f9b37db2dae0,76702e9e-fa7a-4b98-befa-f9b37db2dae0,1,0,101a4eb3-cdda-47af-8c69-615a6920347a,101a4eb3-cdda-47af-8c69-615a6920347a,1,0,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,cf19f220-f6d4-4c9e-b5d5-9d94234f0a2c,1,0,e9d95895-8708-4035-89ad-72573b870491,e9d95895-8708-4035-89ad-72573b870491,1,0,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,f410a5db-8698-44ca-9ff6-2c530e1f5c2a,1,0,f79bada2-838f-4e4f-a017-935cf671a70c,f79bada2-838f-4e4f-a017-935cf671a70c,1,0,312118ff-a2a4-479c-964a-5250cca0cd20,312118ff-a2a4-479c-964a-5250cca0cd20,1,0,355eb7bc-651a-4b24-abcd-61bb83222b7e,355eb7bc-651a-4b24-abcd-61bb83222b7e,1,0,f8d32d21-ea2f-42bb-a785-9bd3cf754cd9,f8d32d21-ea2f-42bb-a785-9bd3cf754cd9,1,0,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,3f3a0b1b-04ce-47c1-928d-5e3483e9fd73,1,0,8a310493-c06f-46db-b2b5-14d6ed203312,8a310493-c06f-46db-b2b5-14d6ed203312,1,0,caf8f0e8-7a2c-498b-9b74-ed6b87cce670,caf8f0e8-7a2c-498b-9b74-ed6b87cce670,1,0,b68ec95b-64f3-4a2b-9683-231d50f01eeb,b68ec95b-64f3-4a2b-9683-231d50f01eeb,1,0,89318397-b3a6-4468-985b-ed5cb8ab5cdb,89318397-b3a6-4468-985b-ed5cb8ab5cdb,1,0,4e6734a0-3bf8-4e71-bd38-5526819609f4,4e6734a0-3bf8-4e71-bd38-5526819609f4,1,0,5e5b0ad7-ef73-4a73-baf5-360a9244a1cc,5e5b0ad7-ef73-4a73-baf5-360a9244a1cc,1,0,4a008342-f72f-4ca1-bad1-64b59b509911,4a008342-f72f-4ca1-bad1-64b59b509911,1,0,4436b2cf-2d71-401f-99fd-012ff0c91fbd,4436b2cf-2d71-401f-99fd-012ff0c91fbd,1,0,cefa1723-a4d4-44c4-bd57-ffa713f9306c,cefa1723-a4d4-44c4-bd57-ffa713f9306c,1,0,5d75aae8-9d9c-4a47-b8c0-2ce56431fe53,5d75aae8-9d9c-4a47-b8c0-2ce56431fe53,1,0,5396be45-d7c0-43df-aed4-cad062a02b11,5396be45-d7c0-43df-aed4-cad062a02b11,1,0,017e3da8-e48e-488b-9bbf-4fef1a4f3417,017e3da8-e48e-488b-9bbf-4fef1a4f3417,1,0,de4d37c9-b278-4c0c-bc10-1b63ecd72947,de4d37c9-b278-4c0c-bc10-1b63ecd72947,1,0,aebf163d-d8e8-492a-a973-8cb51982d475,aebf163d-d8e8-492a-a973-8cb51982d475,1,0,5a741cf6-8160-4409-9396-2e6d1e67e6fa,5a741cf6-8160-4409-9396-2e6d1e67e6fa,1,0,4920aabf-6f53-4f91-932a-8ace24631a74,4920aabf-6f53-4f91-932a-8ace24631a74,1,0,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,ce7a7f72-9d7d-4240-b852-e83b4b8d944b,1,0,7531fb7c-a4ae-42df-b8e5-d8bfcb66be52,7531fb7c-a4ae-42df-b8e5-d8bfcb66be52,1,0,d9e98c14-9b07-406b-92c8-bec76165e028,d9e98c14-9b07-406b-92c8-bec76165e028,1,0,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,7309e58d-b0d4-4e0f-a74d-68cab03fea8e,1,0,9bb33b9f-0a27-4edd-b3b2-1c20a75d0f20,9bb33b9f-0a27-4edd-b3b2-1c20a75d0f20,1,0,bbec9c3d-31dd-484e-ab32-41ef845f1370,bbec9c3d-31dd-484e-ab32-41ef845f1370,1,0,8692ba41-d91d-4af0-8aba-69dd5409d593,8692ba41-d91d-4af0-8aba-69dd5409d593,1,0,7abb55d2-eac6-44a0-9ebc-fa26a7f0c028,7abb55d2-eac6-44a0-9ebc-fa26a7f0c028,1,0,bdafe976-c8d6-413a-8d61-765a02014e5d,bdafe976-c8d6-413a-8d61-765a02014e5d,1,0,22ddedc0-a20c-4253-8c1f-22e5ab784987,22ddedc0-a20c-4253-8c1f-22e5ab784987,1,0,68e207e7-8c20-426d-8a0e-c3dd4d683631,68e207e7-8c20-426d-8a0e-c3dd4d683631,1,0,6d7fa2f9-7ca4-4ad6-b94b-8267768a0f04,6d7fa2f9-7ca4-4ad6-b94b-8267768a0f04,1,0,5cc3a29d-aa98-42bf-9800-f584229c8e46,5cc3a29d-aa98-42bf-9800-f584229c8e46,1,0,a95b564a-c895-40f2-b947-ea08462bb2a0,a95b564a-c895-40f2-b947-ea08462bb2a0,1,0,1e015740-5b45-4729-9732-57359a7c602f,1e015740-5b45-4729-9732-57359a7c602f,1,0,6eb6003c-71cb-4be8-a375-abd5c9f7336b,6eb6003c-71cb-4be8-a375-abd5c9f7336b,1,0,ca63ca2f-703d-4317-8c5d-0650ea638f3f,ca63ca2f-703d-4317-8c5d-0650ea638f3f,1,0,aa2256c7-9847-40a5-9e49-11c508e0d45b,aa2256c7-9847-40a5-9e49-11c508e0d45b,1,0,a04493f4-508c-4047-b0e3-b7d4bde6427b,a04493f4-508c-4047-b0e3-b7d4bde6427b,1,0,6c138ffd-057f-4f7d-af4d-1b1a589a9057,6c138ffd-057f-4f7d-af4d-1b1a589a9057,1,0,418982cd-d403-47cf-a7ef-993a36104947,418982cd-d403-47cf-a7ef-993a36104947,1,0,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,485ebc6a-0e3e-4278-8ef1-c6194d6d5015,1,0,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,816c8143-8b02-4f4a-8eb1-44c7fb36afcc,1,0,35eea3b8-d017-442a-b5a0-a1571165b9a9,35eea3b8-d017-442a-b5a0-a1571165b9a9,1,0,7e84901c-cb7f-437c-a135-0902cd47acb6,7e84901c-cb7f-437c-a135-0902cd47acb6,1,0,69530795-5a90-47b0-ae8d-a44b420b51f6,69530795-5a90-47b0-ae8d-a44b420b51f6,1,0,da2b47f5-4109-4f72-a4a5-70be24a6881f,da2b47f5-4109-4f72-a4a5-70be24a6881f,1,0,849f034e-85dc-4515-aae6-240c1e0d46d9,849f034e-85dc-4515-aae6-240c1e0d46d9,1,0,5fbea8c7-48e3-4ed0-a8d0-cf942b37a166,5fbea8c7-48e3-4ed0-a8d0-cf942b37a166,1,0,d85ba2d1-63e9-4680-bd88-6c0c4dba5d0f,d85ba2d1-63e9-4680-bd88-6c0c4dba5d0f,1,0,acfa1919-07ce-4464-8552-6b104e284dca,acfa1919-07ce-4464-8552-6b104e284dca,1,0,cd74d617-8ebe-4a7d-b011-38c98d856d8c,cd74d617-8ebe-4a7d-b011-38c98d856d8c,1,0,f4cff4ff-68e9-4072-971e-1b359d3aa980,f4cff4ff-68e9-4072-971e-1b359d3aa980,1,0,f9a5bd40-7c56-4ced-bddb-a66c1fc31b81,f9a5bd40-7c56-4ced-bddb-a66c1fc31b81,1,0,fdb012c9-583a-42af-95da-070e75a58078,fdb012c9-583a-42af-95da-070e75a58078,1,0,7d069b11-cddd-463d-97be-3cbeaaf0954c,7d069b11-cddd-463d-97be-3cbeaaf0954c,1,0,8c5fae4c-b5b6-4e05-9453-4ac5de07c54c,8c5fae4c-b5b6-4e05-9453-4ac5de07c54c,1,0,5ea4412e-0ce0-4176-917b-37817ed788e1,5ea4412e-0ce0-4176-917b-37817ed788e1,1,0,8242daae-181a-47df-b28e-c1de3fce0359,8242daae-181a-47df-b28e-c1de3fce0359,1,0,bd206271-1388-4759-8992-da81507613be,bd206271-1388-4759-8992-da81507613be,1,0,8de2c020-0ebe-4374-93d7-d2e19ed82470,8de2c020-0ebe-4374-93d7-d2e19ed82470,1,0,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,d1b950b0-dd66-49f9-998e-3ae5e820ae7f,1,0,57e39881-cbf9-4cac-9ed0-bf4a6ea667ee,57e39881-cbf9-4cac-9ed0-bf4a6ea667ee,1,0,b9004626-915c-44c8-9cb7-25e5b627ee83,b9004626-915c-44c8-9cb7-25e5b627ee83,1,0,c45fcf7f-5676-4a96-a73c-a6d9d98ac46b,c45fcf7f-5676-4a96-a73c-a6d9d98ac46b,1,0,1a3eff9b-6598-4e11-9b8f-81249c53abec,1a3eff9b-6598-4e11-9b8f-81249c53abec,1,0,63c6cfad-124d-491a-829d-b298463c95e6,63c6cfad-124d-491a-829d-b298463c95e6,1,0,3da31d2f-24dd-469b-bd3b-073fa3b3d585,3da31d2f-24dd-469b-bd3b-073fa3b3d585,1,0,33b12dd8-7a86-4a51-bd3d-4911ec1ffde4,33b12dd8-7a86-4a51-bd3d-4911ec1ffde4,1,0,11c610f5-0f5d-49aa-9015-4a514dfcf515,11c610f5-0f5d-49aa-9015-4a514dfcf515,1,0,1e020429-ac68-46f4-b34c-c2c4a2b494f6,1e020429-ac68-46f4-b34c-c2c4a2b494f6,1,0,1c1a5bf8-bbe6-4a69-973e-11445175dac2,1c1a5bf8-bbe6-4a69-973e-11445175dac2,1,0,f11ffcfd-3588-4785-b222-cebe80455303,f11ffcfd-3588-4785-b222-cebe80455303,1,0,789a2027-8601-434c-bf47-37696a3966ad,789a2027-8601-434c-bf47-37696a3966ad,1,0,f71eceb3-ef2e-4e6c-bf9c-e7e7d42c1c7c,f71eceb3-ef2e-4e6c-bf9c-e7e7d42c1c7c,1,0,b91b1b08-f35d-40b2-83d8-ecc761124b05,b91b1b08-f35d-40b2-83d8-ecc761124b05,1,0,5fb7ebb4-e2ce-40ae-aa1c-9351dc66919b,5fb7ebb4-e2ce-40ae-aa1c-9351dc66919b,1,0,1c7e9baa-7728-4afd-829a-806cee13ecdb,1c7e9baa-7728-4afd-829a-806cee13ecdb,1,0,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,5d216c28-0724-4e7d-86cf-b6f75e7e28b7,1,0,bfdc6346-db5b-427f-acca-9b48db8fefd0,bfdc6346-db5b-427f-acca-9b48db8fefd0,1,0,1c3f258c-345e-47f6-9e29-98b1222fb348,1c3f258c-345e-47f6-9e29-98b1222fb348,1,0,dfafcdf3-cdeb-4822-9f41-a730d9d3fb24,dfafcdf3-cdeb-4822-9f41-a730d9d3fb24,1,0,4c3085e1-2f86-4af4-a392-ab45e30a7152,4c3085e1-2f86-4af4-a392-ab45e30a7152,1,0,35c938f4-065f-47f5-a75b-637ed0080725,35c938f4-065f-47f5-a75b-637ed0080725,1,0,89cc9ae4-e933-4f4a-849f-48ef67b75819,89cc9ae4-e933-4f4a-849f-48ef67b75819,1,0,36e096be-ee28-437a-b8f2-c1e274c150e3,36e096be-ee28-437a-b8f2-c1e274c150e3,1,0,160e9608-7301-4572-af02-6a7cceca1560,160e9608-7301-4572-af02-6a7cceca1560,1,0,4a70416b-6598-4239-be70-2c0c8255388a,4a70416b-6598-4239-be70-2c0c8255388a,1,0,f6b69c2b-e32a-477f-9128-b61d8237290e,f6b69c2b-e32a-477f-9128-b61d8237290e,1,0,f6b8e6ae-7d3e-4f6c-bd74-66ee7593868c,f6b8e6ae-7d3e-4f6c-bd74-66ee7593868c,1,0,e730ea3f-4f2a-4e21-8851-bccc51830cfe,e730ea3f-4f2a-4e21-8851-bccc51830cfe,1,0,193ab4a7-7eee-4374-95cf-2d907a3ba971,193ab4a7-7eee-4374-95cf-2d907a3ba971,1,0,e2779397-46ed-4d95-8529-45896f9567d2,e2779397-46ed-4d95-8529-45896f9567d2,1,0,3002d5d8-1b7d-4252-9e5d-9a533bf03ca8,3002d5d8-1b7d-4252-9e5d-9a533bf03ca8,1,0,e14c0841-226c-4c79-bec9-cfc8d2c3a160,e14c0841-226c-4c79-bec9-cfc8d2c3a160,1,0,d05bbd02-9db3-4830-be9d-7080f3506e01,d05bbd02-9db3-4830-be9d-7080f3506e01,1,0,6f3c5b90-b030-4267-a973-33d12c2c7680,6f3c5b90-b030-4267-a973-33d12c2c7680,1,0,1ff8210b-26c5-4429-b580-7c6ec7c9b63a,1ff8210b-26c5-4429-b580-7c6ec7c9b63a,1,0,7e3283df-05a6-4dc5-a786-056c71bdbf6f,7e3283df-05a6-4dc5-a786-056c71bdbf6f,1,0,c6af8b0f-3767-4198-88e2-f5763cb0294a,c6af8b0f-3767-4198-88e2-f5763cb0294a,1,0,faf89779-2290-4d37-b1ea-e81b1b79f74c,faf89779-2290-4d37-b1ea-e81b1b79f74c,1,0,88b879b7-1bb3-4478-b569-35bdb5c56939,88b879b7-1bb3-4478-b569-35bdb5c56939,1,0,b9e93e8f-1d4b-4bbb-ac1b-c8d26cfd1da2,b9e93e8f-1d4b-4bbb-ac1b-c8d26cfd1da2,1,0,7a62d031-c340-4b1e-90af-fff697a2e979,7a62d031-c340-4b1e-90af-fff697a2e979,1,0,18bf6916-83cc-41e5-a35b-1489450ae632,18bf6916-83cc-41e5-a35b-1489450ae632,1,0,ebab97cf-5335-4648-9845-8ca41f79fb49,ebab97cf-5335-4648-9845-8ca41f79fb49,1,0,bb29fa44-6772-4426-a0b8-422115e14288,bb29fa44-6772-4426-a0b8-422115e14288,1,0,ac847dc9-e222-45cf-af4a-6fa863c919a8,ac847dc9-e222-45cf-af4a-6fa863c919a8,1,0,a5cc5ae2-be80-4957-8aca-9e477433dfcc,a5cc5ae2-be80-4957-8aca-9e477433dfcc,1,0,62fa393c-687c-49bf-8a25-81adc04430fb,62fa393c-687c-49bf-8a25-81adc04430fb,1,0,13fcf1e8-730e-436f-b316-6bcb8301f894,13fcf1e8-730e-436f-b316-6bcb8301f894,1,0,fa548f02-82e0-4897-89e8-0618ebf16919,fa548f02-82e0-4897-89e8-0618ebf16919,1,0,8c28a5b0-517f-48fe-9bde-5e611c319413,8c28a5b0-517f-48fe-9bde-5e611c319413,1,0,904e1209-91d8-49b1-b291-364ef728cbbf,904e1209-91d8-49b1-b291-364ef728cbbf,1,0,4a0d7cd7-8e43-4a1f-88b8-ffc376b38f7c,4a0d7cd7-8e43-4a1f-88b8-ffc376b38f7c,1,0,1198f2ee-b8a8-456d-9461-61bc5d42c7a1,1198f2ee-b8a8-456d-9461-61bc5d42c7a1,1,0,b8ecb7f0-ef40-4d31-9ec2-a731439d3200,b8ecb7f0-ef40-4d31-9ec2-a731439d3200,1,0,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,e4da2959-0fb0-48fb-a5aa-e7a5589d69c3,1,0,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,e000d04e-37eb-4d95-a833-b0a9b10ee0b9,1,0,23314bcd-2dd4-43f1-9fdb-ae182a48c886,23314bcd-2dd4-43f1-9fdb-ae182a48c886,1,0,c5f86fa3-4a36-4e22-8b57-7088dd250cd3,c5f86fa3-4a36-4e22-8b57-7088dd250cd3,1,0,9440a132-366f-4fc9-bd72-2544ba2b072a,9440a132-366f-4fc9-bd72-2544ba2b072a,1,0,84282afa-21f5-40db-9386-e6f741c9a06c,84282afa-21f5-40db-9386-e6f741c9a06c,1,0,5b3b3da9-8619-4fbd-b140-3528875cd179,5b3b3da9-8619-4fbd-b140-3528875cd179,1,0,99e5e866-7ac6-4916-ab66-3e2909822c56,99e5e866-7ac6-4916-ab66-3e2909822c56,1,0,03363877-2752-4a03-95f2-d73b732e0bfd,03363877-2752-4a03-95f2-d73b732e0bfd,1,0,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,0b0d2b7c-d52e-4163-83cf-a7e86bb47c47,1,0,78051e10-74ab-44be-adca-e4c93824a386,78051e10-74ab-44be-adca-e4c93824a386,1,0,73629419-83d8-4727-88a9-76c851d104c9,73629419-83d8-4727-88a9-76c851d104c9,1,0,cadb54f0-dcff-4f96-983e-a309fd72f330,cadb54f0-dcff-4f96-983e-a309fd72f330,1,0,a9c3065b-db68-4f59-9235-33f9fbfdaafd,a9c3065b-db68-4f59-9235-33f9fbfdaafd,1,0,3715cf3d-0abc-4711-8ac9-d41f0be7878f,3715cf3d-0abc-4711-8ac9-d41f0be7878f,1,0,8e8d8078-8b32-4c24-b26e-89a92bf60160,8e8d8078-8b32-4c24-b26e-89a92bf60160,1,0,e6af9db4-b93f-422e-846c-e6c5fd33f992,e6af9db4-b93f-422e-846c-e6c5fd33f992,1,0,2895ac1f-5f15-422d-9d90-2df87255a92a,2895ac1f-5f15-422d-9d90-2df87255a92a,1,0,f96cbb27-7619-41e0-8577-e623ef02dc58,f96cbb27-7619-41e0-8577-e623ef02dc58,1,0,ed5ff5b0-f980-4b9a-9299-eef68e3b42d5,ed5ff5b0-f980-4b9a-9299-eef68e3b42d5,1,0,d74dfd31-2016-435b-8652-15fdbca59490,d74dfd31-2016-435b-8652-15fdbca59490,1,0,ba8111a9-1d33-4615-ad0b-b3e923b2f3bd,ba8111a9-1d33-4615-ad0b-b3e923b2f3bd,1,0,27651e0e-d560-434b-a49c-f473a5b20c4d,27651e0e-d560-434b-a49c-f473a5b20c4d,1,0,dab1491b-0685-442d-b945-2bfde3f37933,dab1491b-0685-442d-b945-2bfde3f37933,1,0,42107b14-9373-418a-a41d-35c87434c51a,42107b14-9373-418a-a41d-35c87434c51a,1,0,24d8ce8d-e94c-4168-abad-d0ce5e6cbf1b,24d8ce8d-e94c-4168-abad-d0ce5e6cbf1b,1,0,8786575a-eab6-46bf-be3a-167e2d5b41dd,8786575a-eab6-46bf-be3a-167e2d5b41dd,1,0,ce85554b-81ba-4149-a951-d09bdc14fa16,ce85554b-81ba-4149-a951-d09bdc14fa16,1,0,23a1ef35-1469-44ea-8535-fa9c7f535cae,23a1ef35-1469-44ea-8535-fa9c7f535cae,1,0,9ff1c73e-71be-4ea6-97fb-e710d995ee62,9ff1c73e-71be-4ea6-97fb-e710d995ee62,1,0,50f7effb-e051-49dd-8b56-0771dda350cc,50f7effb-e051-49dd-8b56-0771dda350cc,1,0,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,8c7d74bf-2865-47d9-8a16-5b0db1104a3a,1,0,2558d812-ac0a-49ba-87db-3f661209a3c4,2558d812-ac0a-49ba-87db-3f661209a3c4,1,0,20d712ef-77c1-4374-92e1-f20a3ebc7eab,20d712ef-77c1-4374-92e1-f20a3ebc7eab,1,0,65d23ce8-e326-45ee-86b0-6dcf35797201,65d23ce8-e326-45ee-86b0-6dcf35797201,1,0,a2683c3f-1b21-47d8-951d-7d30cde51efc,a2683c3f-1b21-47d8-951d-7d30cde51efc,1,0,54c77053-1728-4914-a354-73fe8853a0e1,54c77053-1728-4914-a354-73fe8853a0e1,1,0,21136691-078f-4bf7-bddd-f41416a76d86,21136691-078f-4bf7-bddd-f41416a76d86,1,0,9d669d30-a0af-4095-852a-96b4224ee933,9d669d30-a0af-4095-852a-96b4224ee933,1,0,590aba18-7d56-48e3-9454-5f2882a32f80,590aba18-7d56-48e3-9454-5f2882a32f80,1,0,30a121c7-c4f5-45c4-9504-9778ed85d9e3,30a121c7-c4f5-45c4-9504-9778ed85d9e3,1,0,c68e2157-2541-4f80-966a-d68ce603f131,c68e2157-2541-4f80-966a-d68ce603f131,1,0,18363a37-28b0-488b-a7d6-54d3596d2a6d,18363a37-28b0-488b-a7d6-54d3596d2a6d,1,0,e5f401b5-4672-4529-a8dd-6d819f3f269c,e5f401b5-4672-4529-a8dd-6d819f3f269c,1,0,126d5d78-a2b0-4c16-b429-bf8d251280e7,126d5d78-a2b0-4c16-b429-bf8d251280e7,1,0,f8f96dce-913c-4858-bcb7-dcfe3dc2f72e,f8f96dce-913c-4858-bcb7-dcfe3dc2f72e,1,0,70d93c88-c9e9-4b8e-b8f3-ef07c665ab5d,70d93c88-c9e9-4b8e-b8f3-ef07c665ab5d,1,0,12443114-1931-4eb7-968a-7dbe166b7298,12443114-1931-4eb7-968a-7dbe166b7298,1,0,0080c29d-ec54-43a8-aab8-c67e0279b6b7,0080c29d-ec54-43a8-aab8-c67e0279b6b7,1,0,a0271f6e-dc70-4dfe-a395-203e8a89f933,a0271f6e-dc70-4dfe-a395-203e8a89f933,1,0,e5dfee58-f748-48ee-81a3-7c6133f06365,e5dfee58-f748-48ee-81a3-7c6133f06365,1,0,5e52dfe6-5a98-4a32-9429-5f44bf442367,5e52dfe6-5a98-4a32-9429-5f44bf442367,1,0,9aa0a0cb-9547-4868-9495-b00f3ecd2b3a,9aa0a0cb-9547-4868-9495-b00f3ecd2b3a,1,0,a9e31d90-fe65-47c3-8109-6e1eae862f53,a9e31d90-fe65-47c3-8109-6e1eae862f53,1,0,68500931-89e0-491e-aba8-b013c9e6f8c3,68500931-89e0-491e-aba8-b013c9e6f8c3,1,0,70b79e56-bb71-4f38-93cf-94dda79d9b4c,70b79e56-bb71-4f38-93cf-94dda79d9b4c,1,0,e678bb94-3cb1-4706-8e76-4fada4d5036c,e678bb94-3cb1-4706-8e76-4fada4d5036c,1,0,5c4c9931-3fb0-47a8-9e4f-d552de12b355,5c4c9931-3fb0-47a8-9e4f-d552de12b355,1,0,dc1d0f97-e2f3-4e1d-b21c-411b46e39848,dc1d0f97-e2f3-4e1d-b21c-411b46e39848,1,0,2a498baf-ec2e-4dda-b568-801bb60db225,2a498baf-ec2e-4dda-b568-801bb60db225,1,0,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,8a32af97-cdb5-46b4-ab7b-e1509e26ecc3,1,0,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,9f59f8cd-8d61-4fbc-ae6e-32f28ce0035a,1,0,f987ca28-545b-4540-9e36-b0daa67dc3cb,f987ca28-545b-4540-9e36-b0daa67dc3cb,1,0,70f156d8-9cb4-442d-a36b-7a43d03bcd12,70f156d8-9cb4-442d-a36b-7a43d03bcd12,1,0,35989876-16b1-4b02-9381-444a06a7a21d,35989876-16b1-4b02-9381-444a06a7a21d,1,0,f7608000-1e8a-4ca4-afb7-e04ef547b70a,f7608000-1e8a-4ca4-afb7-e04ef547b70a,1,0,f0a6de82-45ab-4153-bccf-df82fc960aa1,f0a6de82-45ab-4153-bccf-df82fc960aa1,1,0,26cea519-19d0-4707-be0a-1a43fde6e563,26cea519-19d0-4707-be0a-1a43fde6e563,1,0,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,9fb3e902-3154-4bab-9bfe-9a266dc49fa5,1,0,7ea3206a-2a16-460d-ad6d-849103f50bdb,7ea3206a-2a16-460d-ad6d-849103f50bdb,1,0,eb35bff2-8467-48fe-bf93-ece2aa40f506,eb35bff2-8467-48fe-bf93-ece2aa40f506,1,0,f26bdf61-8dc9-47e3-bc13-e6b7d8252ebd,f26bdf61-8dc9-47e3-bc13-e6b7d8252ebd,1,0,10302ca9-850c-4561-a774-d099c20b1919,10302ca9-850c-4561-a774-d099c20b1919,1,0,c62c30d6-ffac-43e0-bb20-25fa8eeb62fd,c62c30d6-ffac-43e0-bb20-25fa8eeb62fd,1,0,d693bfcf-e117-445b-b0e1-d895bc5227c4,d693bfcf-e117-445b-b0e1-d895bc5227c4,1,0,68cf55da-b29e-4a65-815b-c9cdc8e5888e,68cf55da-b29e-4a65-815b-c9cdc8e5888e,1,0,967bf537-f742-4d9a-95ff-afaa5525a2f0,967bf537-f742-4d9a-95ff-afaa5525a2f0,1,0,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,a9f927ef-22a2-4d77-8648-4bb25eeaccf2,1,0,1041ed81-c1f7-43b2-9087-914865a3076e,1041ed81-c1f7-43b2-9087-914865a3076e,1,0,5d7174d2-42b3-4e12-b705-4209dd73b53b,5d7174d2-42b3-4e12-b705-4209dd73b53b,1,0,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,b1b5bf08-1c57-4875-87bb-ad1fa1a3251f,1,0,e00dcab4-5e92-44e3-bcdf-a31dd32a195f,e00dcab4-5e92-44e3-bcdf-a31dd32a195f,1,0,0508e7ab-3dd9-42b4-9542-089ce0656bbb,0508e7ab-3dd9-42b4-9542-089ce0656bbb,1,0,cfe59dfd-a509-4f83-b926-b3ff94234a43,cfe59dfd-a509-4f83-b926-b3ff94234a43,1,0,17df1591-61b0-4204-8379-8d1f58445968,17df1591-61b0-4204-8379-8d1f58445968,1,0,9020fa9d-e7de-4574-ab65-db6651b5b610,9020fa9d-e7de-4574-ab65-db6651b5b610,1,0,fd5e72f7-3078-48eb-b01b-1800ffbd86d3,fd5e72f7-3078-48eb-b01b-1800ffbd86d3,1,0,e83ad33d-27df-4181-afd2-b7f416e6e705,e83ad33d-27df-4181-afd2-b7f416e6e705,1,0,ddeec7f4-8bd3-40af-bcac-00d18c0e6d6a,ddeec7f4-8bd3-40af-bcac-00d18c0e6d6a,1,0,f0438b0a-7916-4de4-a3a8-d43407c3295f,f0438b0a-7916-4de4-a3a8-d43407c3295f,1,0,3309648c-aae6-4684-ae8d-7ed636bc3468,3309648c-aae6-4684-ae8d-7ed636bc3468,1,0,f9aa933e-6684-48de-b802-96c8e61b1fe6,f9aa933e-6684-48de-b802-96c8e61b1fe6,1,0,f41e5a5b-394b-423a-bee5-ed4d1da0be71,f41e5a5b-394b-423a-bee5-ed4d1da0be71,1,0,23db175f-ddfb-4af7-9c0c-232b6adb7daf,23db175f-ddfb-4af7-9c0c-232b6adb7daf,1,0,9de4d430-95ec-4435-b3e8-4fc85778d517,9de4d430-95ec-4435-b3e8-4fc85778d517,1,0,205b8908-fa21-42bd-bff0-fb95e6787f15,205b8908-fa21-42bd-bff0-fb95e6787f15,1,0,4e309f26-35e8-49d9-bbd1-c7884e666dca,4e309f26-35e8-49d9-bbd1-c7884e666dca,1,0,84f05fe4-51d3-49a8-83e7-1cae2028147e,84f05fe4-51d3-49a8-83e7-1cae2028147e,1,0,8a9ab11b-5bb5-4da9-9053-8f9e8198d019,8a9ab11b-5bb5-4da9-9053-8f9e8198d019,1,0,5320abf1-b09b-4de0-9adf-4cb1da31df6f,5320abf1-b09b-4de0-9adf-4cb1da31df6f,1,0,c382ee3a-d0a8-4ed8-ac88-5558b631f448,c382ee3a-d0a8-4ed8-ac88-5558b631f448,1,0,3916ddbd-9023-42a4-849e-9cda6e591408,3916ddbd-9023-42a4-849e-9cda6e591408,1,0,5e9e42c5-dcbc-422f-acce-4f11a63dbb85,5e9e42c5-dcbc-422f-acce-4f11a63dbb85,1,0,6903ffe4-42c1-4708-a1b0-bb67cd3f9e4c,6903ffe4-42c1-4708-a1b0-bb67cd3f9e4c,1,0,3e453cca-aac3-4ff3-bb15-32c09f43e7b2,3e453cca-aac3-4ff3-bb15-32c09f43e7b2,1,0,49bcd9e6-f312-4bb6-959a-242b73907591,49bcd9e6-f312-4bb6-959a-242b73907591,1,0,8e36227c-c0aa-43c4-93ad-e78701248fb1,8e36227c-c0aa-43c4-93ad-e78701248fb1,1,0,f135b60e-6d28-4ba1-acd7-76090f14855d,f135b60e-6d28-4ba1-acd7-76090f14855d,1,0,5b105084-c4ba-4ff6-9196-8b3e3a9991e2,5b105084-c4ba-4ff6-9196-8b3e3a9991e2,1,0,f78ffd16-5bd4-421a-99af-9cf5f126d960,f78ffd16-5bd4-421a-99af-9cf5f126d960,1,0,2bd23dd2-8107-410f-8137-3d022546594b,2bd23dd2-8107-410f-8137-3d022546594b,1,0,e8cc4e0f-e9c2-4a24-a50e-f5be5ed21019,e8cc4e0f-e9c2-4a24-a50e-f5be5ed21019,1,0,3f09badb-70bd-4996-822f-2e2e9524f09d,3f09badb-70bd-4996-822f-2e2e9524f09d,1,0,aca89232-c531-47ca-a82e-e7bfadd56674,aca89232-c531-47ca-a82e-e7bfadd56674,1,0,4b8927df-e124-4bf6-9d70-6e91b4796d90,4b8927df-e124-4bf6-9d70-6e91b4796d90,1,0,871b63a2-c7a6-4343-8d8b-7dda1b0def87,871b63a2-c7a6-4343-8d8b-7dda1b0def87,1,0,52b45b3d-b01b-4aac-8a1e-e256957c39c3,52b45b3d-b01b-4aac-8a1e-e256957c39c3,1,0,fc78d8df-ab27-4544-a65c-73908b9c5425,fc78d8df-ab27-4544-a65c-73908b9c5425,1,0,f8a090d2-b2d1-4ead-a8bf-6325a7552743,f8a090d2-b2d1-4ead-a8bf-6325a7552743,1,0,84f935da-9fe5-44ea-845b-b447b8b0a6f5,84f935da-9fe5-44ea-845b-b447b8b0a6f5,1,0,a4878c33-f156-44cc-b114-5670403075eb,a4878c33-f156-44cc-b114-5670403075eb,1,0,cc567ef8-3e63-4c53-a14a-899221ec9e46,cc567ef8-3e63-4c53-a14a-899221ec9e46,1,0,0f1f8bc8-73ce-4384-9496-9bc2d0e212be,0f1f8bc8-73ce-4384-9496-9bc2d0e212be,1,0,695ad525-d1ba-42fb-adc1-6c44ac433c69,695ad525-d1ba-42fb-adc1-6c44ac433c69,1,0,93afedb2-2d93-4611-b0fd-830bf33789c2,93afedb2-2d93-4611-b0fd-830bf33789c2,1,0,026dadd4-a698-4d56-9b72-7ad9f224e502,026dadd4-a698-4d56-9b72-7ad9f224e502,1,0,d0b49fd9-4054-409f-97a0-a0811ba6c1ab,d0b49fd9-4054-409f-97a0-a0811ba6c1ab,1,0,c7130560-3953-496f-b1d0-cae676fcb5a9,c7130560-3953-496f-b1d0-cae676fcb5a9,1,0,b7d5c226-a787-45e5-b46b-c51b145fcf6a,b7d5c226-a787-45e5-b46b-c51b145fcf6a,1,0,8ca63a1d-4593-4f52-8b5e-4feb9f8487ca,8ca63a1d-4593-4f52-8b5e-4feb9f8487ca,1,0,1e4cc0d6-6e5e-4d16-ba44-060912ec292f,1e4cc0d6-6e5e-4d16-ba44-060912ec292f,1,0,e9311a22-56b5-4607-8eaa-52382ed040c3,e9311a22-56b5-4607-8eaa-52382ed040c3,1,0,dc7b8596-b2c0-415f-95d9-c0aaa96c5675,dc7b8596-b2c0-415f-95d9-c0aaa96c5675,1,0,87e6e315-01e0-41eb-8373-0a60635f2f7a,87e6e315-01e0-41eb-8373-0a60635f2f7a,1,0,9b77e99b-b1d3-4368-a671-59e0ebba3f0e,9b77e99b-b1d3-4368-a671-59e0ebba3f0e,1,0,ad847998-6e50-4160-81fc-3b58ad68f202,ad847998-6e50-4160-81fc-3b58ad68f202,1,0,b2b98bcf-41da-4643-a6dc-39e5379b99e5,b2b98bcf-41da-4643-a6dc-39e5379b99e5,1,0,fdd9fb90-f5f0-4c08-9341-4374403bc950,fdd9fb90-f5f0-4c08-9341-4374403bc950,1,0,0e2d814a-cc9d-4f91-910d-bda54779e298,0e2d814a-cc9d-4f91-910d-bda54779e298,1,0,8fdfef8d-502e-4d27-a539-e833048fa1eb,8fdfef8d-502e-4d27-a539-e833048fa1eb,1,0,65530aca-7cf2-4a52-b5be-5dcbc15a049e,65530aca-7cf2-4a52-b5be-5dcbc15a049e,1,0,15eb2c2d-305d-42c0-9aec-936b82114bdb,15eb2c2d-305d-42c0-9aec-936b82114bdb,1,0,bb99bc44-f83e-48bb-93fd-7b07ca7da6a7,bb99bc44-f83e-48bb-93fd-7b07ca7da6a7,1,0,7718bd0b-7b8a-4ffc-b228-f05683b5531a,7718bd0b-7b8a-4ffc-b228-f05683b5531a,1,0,0b303d25-e141-431f-828c-1778d3c247f6,0b303d25-e141-431f-828c-1778d3c247f6,1,0,881f53bc-a52e-4312-b09d-3d3f53ddf84b,881f53bc-a52e-4312-b09d-3d3f53ddf84b,1,0,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,2e36a7b3-5331-4fab-a0a3-31b42a8387fe,1,0,945ae8d2-b74a-41e9-b740-c82acdd40d04,945ae8d2-b74a-41e9-b740-c82acdd40d04,1,0,976533bf-f162-42a1-a47e-6d681ee67b82,976533bf-f162-42a1-a47e-6d681ee67b82,1,0,19bc0dd8-9e6b-4855-bc42-b4e98443163f,19bc0dd8-9e6b-4855-bc42-b4e98443163f,1,0,a61e10af-eaba-4e7a-a641-65d77453a559,a61e10af-eaba-4e7a-a641-65d77453a559,1,0,e1a375da-c16c-4616-8a33-9414c13a48c7,e1a375da-c16c-4616-8a33-9414c13a48c7,1,0,99993a9b-97e9-4606-94fa-2da43a03c3b2,99993a9b-97e9-4606-94fa-2da43a03c3b2,1,0,edf81bbb-905a-474d-959a-db5629a8e104,edf81bbb-905a-474d-959a-db5629a8e104,1,0,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,1,0,b20780cd-53d9-48bb-ac3f-2aa4eb6ab3c5,b20780cd-53d9-48bb-ac3f-2aa4eb6ab3c5,1,0,e9e242b7-0077-4c47-8f45-df50e7cc90cf,e9e242b7-0077-4c47-8f45-df50e7cc90cf,1,0,820383e1-9b95-4c0f-8464-722f1fe64ad5,820383e1-9b95-4c0f-8464-722f1fe64ad5,1,0,3d6cf2ab-29b2-45af-a6e2-8796284acf2d,3d6cf2ab-29b2-45af-a6e2-8796284acf2d,1,0,292bfe6b-703e-40cb-856d-abb470e6709f,292bfe6b-703e-40cb-856d-abb470e6709f,1,0,276c42ca-f5e0-4bb4-9b89-a925def35cb1,276c42ca-f5e0-4bb4-9b89-a925def35cb1,1,0,ddac9d84-61b8-49e7-b468-e4aef4403d64,ddac9d84-61b8-49e7-b468-e4aef4403d64,1,0,ae2eec04-8327-4c51-89d3-eb6b725d6e8b,ae2eec04-8327-4c51-89d3-eb6b725d6e8b,1,0,350b262d-2b1f-43de-9994-6abfd2e4e761,350b262d-2b1f-43de-9994-6abfd2e4e761,1,0,41a9cabc-5667-4ca0-a798-ba0b22bd1aa0,41a9cabc-5667-4ca0-a798-ba0b22bd1aa0,1,0,1bf44c42-87c0-4f2e-846c-b04d0b7e8d7d,1bf44c42-87c0-4f2e-846c-b04d0b7e8d7d,1,0,8811ea1a-1221-47b7-9574-3f36ff15a3cf,8811ea1a-1221-47b7-9574-3f36ff15a3cf,1,0,740a6d15-23e8-43a0-af3c-71a544f8fa4f,740a6d15-23e8-43a0-af3c-71a544f8fa4f,1,0,e461818e-5d2f-49ec-8219-3a765461274a,e461818e-5d2f-49ec-8219-3a765461274a,1,0,1d715463-691b-4c01-ae39-57c261f2a6ad,1d715463-691b-4c01-ae39-57c261f2a6ad,1,0,4c3d007f-a62c-4fd9-beda-58dbf08ad188,4c3d007f-a62c-4fd9-beda-58dbf08ad188,1,0,16080b3d-b385-4e44-af16-d1a357a2b842,16080b3d-b385-4e44-af16-d1a357a2b842,1,0,8de85e8b-6828-44a3-8481-4ff4c8c2b9e2,8de85e8b-6828-44a3-8481-4ff4c8c2b9e2,1,0,c35373a9-f0b0-4ddb-a985-409ac9c64609,c35373a9-f0b0-4ddb-a985-409ac9c64609,1,0,c5b4d6e4-4c99-46cb-98cf-9a0024215a12,c5b4d6e4-4c99-46cb-98cf-9a0024215a12,1,0,c1c40916-fee5-46e3-90fc-10e7595866c9,c1c40916-fee5-46e3-90fc-10e7595866c9,1,0,090e521e-391a-4ce7-9f7c-1c459fd221eb,090e521e-391a-4ce7-9f7c-1c459fd221eb,1,0,87dad256-122b-4d7e-b249-a2c313a9cf33,87dad256-122b-4d7e-b249-a2c313a9cf33,1,0,e7903c89-5282-4771-8f9b-536694b7816e,e7903c89-5282-4771-8f9b-536694b7816e,1,0,57a030fb-ed57-4ffc-a462-c7bbd2435c3d,57a030fb-ed57-4ffc-a462-c7bbd2435c3d,1,0,f20a04a7-84fa-48e3-8ac5-28176c1fcada,f20a04a7-84fa-48e3-8ac5-28176c1fcada,1,0,b722d6e1-fd6f-4bb4-923d-01764393722d,b722d6e1-fd6f-4bb4-923d-01764393722d,1,0,ac5f945e-2d03-44fb-a8cf-5d786194cefd,ac5f945e-2d03-44fb-a8cf-5d786194cefd,1,0,698ec00f-bf75-420e-81ab-a98808daf3f7,698ec00f-bf75-420e-81ab-a98808daf3f7,1,0,f441907c-d02e-431e-baf4-1854e48a1f50,f441907c-d02e-431e-baf4-1854e48a1f50,1,0,4ad722ca-10fc-4a83-91c9-ef0012685f89,4ad722ca-10fc-4a83-91c9-ef0012685f89,1,0,783dd4ba-a597-45ba-8989-2ed5224d62bc,783dd4ba-a597-45ba-8989-2ed5224d62bc,1,0,3b033d29-0de7-49dd-90bc-f414b28426d7,3b033d29-0de7-49dd-90bc-f414b28426d7,1,0,97aaede5-d32f-4eba-b0e0-5ae5f094a8b7,97aaede5-d32f-4eba-b0e0-5ae5f094a8b7,1,0,dad9710a-73ca-4e0d-b98b-75f955d0822d,dad9710a-73ca-4e0d-b98b-75f955d0822d,1,0,d01beeab-7c42-4d5e-a2f6-f190b9f703a5,d01beeab-7c42-4d5e-a2f6-f190b9f703a5,1,0,2191939f-6f71-47c9-a3d2-57acbf7f411e,2191939f-6f71-47c9-a3d2-57acbf7f411e,1,0,6ddd9c1f-daff-494c-bd6f-741bd40881ab,6ddd9c1f-daff-494c-bd6f-741bd40881ab,1,0,683c1238-5828-4ab9-a89e-7a3b31fc7fa5,683c1238-5828-4ab9-a89e-7a3b31fc7fa5,1,0,7e9c0fa3-128e-4c3f-a1f7-63cb88a1c0b1,7e9c0fa3-128e-4c3f-a1f7-63cb88a1c0b1,1,0,2ca8bca9-813a-4833-8ef0-a5e83f91c10f,2ca8bca9-813a-4833-8ef0-a5e83f91c10f,1,0,59b34b58-6ac9-467e-963b-0cccbf098797,59b34b58-6ac9-467e-963b-0cccbf098797,1,0,313d9858-3995-4a4c-b2b0-15d2350417b4,313d9858-3995-4a4c-b2b0-15d2350417b4,1,0,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,75e77f99-b9d1-4bc0-93aa-c77a93d760d3,1,0,a2c36563-126d-4c3a-9714-5b7a4903073b,a2c36563-126d-4c3a-9714-5b7a4903073b,1,0,2e4da82c-dddb-4462-b34f-6511cd2a8356,2e4da82c-dddb-4462-b34f-6511cd2a8356,1,0,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,c7da3115-3cee-4282-a2f2-4e0b5558e4fc,1,0,2976c29f-f482-463d-8f6e-6a632fb50893,2976c29f-f482-463d-8f6e-6a632fb50893,1,0,701964a1-7762-45ee-a9a4-41dd9ce94783,701964a1-7762-45ee-a9a4-41dd9ce94783,1,0,55d1909e-f552-441f-8e14-47d2e604cf6a,55d1909e-f552-441f-8e14-47d2e604cf6a,1,0,eae627db-c52b-4e41-94d1-58db28cd0063,eae627db-c52b-4e41-94d1-58db28cd0063,1,0,514e95b8-2fdd-46f7-89bf-7d1a3d9d6e1b,514e95b8-2fdd-46f7-89bf-7d1a3d9d6e1b,1,0,6ca91336-5ccd-4d0b-9602-53f4925c492d,6ca91336-5ccd-4d0b-9602-53f4925c492d,1,0,d853dd5f-d987-4cdb-82b5-5e40a5a5e449,d853dd5f-d987-4cdb-82b5-5e40a5a5e449,1,0,dc16c546-eecc-49fe-a401-e2e3987faa1f,dc16c546-eecc-49fe-a401-e2e3987faa1f,1,0,47058e36-a281-43a5-a41d-691b3ef32b5b,47058e36-a281-43a5-a41d-691b3ef32b5b,1,0,4fc5c023-91e2-4b3e-8f61-4dfe3be78f3a,4fc5c023-91e2-4b3e-8f61-4dfe3be78f3a,1,0,646def82-bc88-4187-8be0-93938656a20f,646def82-bc88-4187-8be0-93938656a20f,1,0,e620e93c-4382-478f-a700-ad2faa67362b,e620e93c-4382-478f-a700-ad2faa67362b,1,0,a07971f5-ed6d-4829-a6bb-4b17cd5c6f6c,a07971f5-ed6d-4829-a6bb-4b17cd5c6f6c,1,0,9c4e28e8-7257-42ed-9fd8-793a0b8eb945,9c4e28e8-7257-42ed-9fd8-793a0b8eb945,1,0,9b7b6d0e-68d6-4a73-837c-2a6fd456b236,9b7b6d0e-68d6-4a73-837c-2a6fd456b236,1,0,7f6222c1-1a50-4565-b66b-bcb430674efc,7f6222c1-1a50-4565-b66b-bcb430674efc,1,0,a4a8693b-dc91-4762-92e6-35360c8768db,a4a8693b-dc91-4762-92e6-35360c8768db,1,0,2ae236ec-28a7-44e0-a0ba-be62fe52d817,2ae236ec-28a7-44e0-a0ba-be62fe52d817,1,0,2fb5650f-a5e5-4db8-a6a7-ca1101b41d3e,2fb5650f-a5e5-4db8-a6a7-ca1101b41d3e,1,0,b0fca543-6951-4233-bdf6-58082b22252a,b0fca543-6951-4233-bdf6-58082b22252a,1,0,4929cf90-54c6-412c-b2fa-dc8230fb8f85,4929cf90-54c6-412c-b2fa-dc8230fb8f85,1,0,52ae6431-afb3-4dea-b106-00e11b174ec7,52ae6431-afb3-4dea-b106-00e11b174ec7,1,0,b18bdc5f-a2b6-4b15-81c3-37b27a5a3176,b18bdc5f-a2b6-4b15-81c3-37b27a5a3176,1,0,c996916d-7f1c-4fbf-939f-3e1bafe81f7d,c996916d-7f1c-4fbf-939f-3e1bafe81f7d,1,0,528d96cc-8838-49ea-8d76-ea56747882e0,528d96cc-8838-49ea-8d76-ea56747882e0,1,0,b9166ea0-cce8-4f76-a9cb-a3d6eb4dfb95,b9166ea0-cce8-4f76-a9cb-a3d6eb4dfb95,1,0,8b83324c-e10e-49d1-99d7-5bc468c25975,8b83324c-e10e-49d1-99d7-5bc468c25975,1,0,ddb75923-27bf-4996-b024-4bc6eb0f59a7,ddb75923-27bf-4996-b024-4bc6eb0f59a7,1,0,fcb46a8a-3461-4ec2-9aa0-685aedb9dd50,fcb46a8a-3461-4ec2-9aa0-685aedb9dd50,1,0,ed137e05-1996-411d-9927-45a3d7e3ee3b,ed137e05-1996-411d-9927-45a3d7e3ee3b,1,0,bdde9030-5718-4f5e-a9e2-f641f4ce69f9,bdde9030-5718-4f5e-a9e2-f641f4ce69f9,1,0,fbebf341-9842-41e1-8e4d-490fa02065ce,fbebf341-9842-41e1-8e4d-490fa02065ce,1,0,3be0acc7-223a-46ec-9ea2-ec99b869fa78,3be0acc7-223a-46ec-9ea2-ec99b869fa78,1,0,067f88f6-ccd2-491e-a466-94345a1f220f,067f88f6-ccd2-491e-a466-94345a1f220f,1,0,517ac144-ecb9-4d14-83ea-01e58f0901fc,517ac144-ecb9-4d14-83ea-01e58f0901fc,1,0,61c1ff46-2a30-43bb-b1df-4db2271b1b12,61c1ff46-2a30-43bb-b1df-4db2271b1b12,1,0,cf7bc2ca-fb57-4b1a-98cf-f2caa7e611f5,cf7bc2ca-fb57-4b1a-98cf-f2caa7e611f5,1,0,486083d8-33b1-453f-9f05-5ff867e2f4ba,486083d8-33b1-453f-9f05-5ff867e2f4ba,1,0,e4f9d9f6-38d7-4056-a95a-987ad2da2211,e4f9d9f6-38d7-4056-a95a-987ad2da2211,1,0,22c21c2b-4297-43b2-88f0-9555d22f7a14,22c21c2b-4297-43b2-88f0-9555d22f7a14,1,0,734f61c4-5429-4a09-8697-8949ac5e6bd1,734f61c4-5429-4a09-8697-8949ac5e6bd1,1,0,d04e0e2d-0a5f-4866-b0b3-b582915db899,d04e0e2d-0a5f-4866-b0b3-b582915db899,1,0,19649d3f-52aa-4054-bb84-a6a11d212495,19649d3f-52aa-4054-bb84-a6a11d212495,1,0,640d7486-8abd-40aa-a244-2ed899b7225a,640d7486-8abd-40aa-a244-2ed899b7225a,1,0,58321939-f25a-456d-8dee-97e64743dc2e,58321939-f25a-456d-8dee-97e64743dc2e,1,0,416fba62-70c4-4f8c-b10b-56d47b27ca35,416fba62-70c4-4f8c-b10b-56d47b27ca35,1,0,ec48a164-bc30-4e36-a40a-a3cca07aea0d,ec48a164-bc30-4e36-a40a-a3cca07aea0d,1,0,3174d57f-c6a8-44dc-adc1-47e9a54c844d,3174d57f-c6a8-44dc-adc1-47e9a54c844d,1,0,c05f87b4-ec5f-4d14-981f-02ca8ba89863,c05f87b4-ec5f-4d14-981f-02ca8ba89863,1,0,b7736108-89bd-44eb-89c1-8a5a774058f1,b7736108-89bd-44eb-89c1-8a5a774058f1,1,0,e07841ef-8392-4ceb-936d-fd160b3b03cd,e07841ef-8392-4ceb-936d-fd160b3b03cd,1,0,eee66f49-8954-4674-9e02-6bff6c332d30,eee66f49-8954-4674-9e02-6bff6c332d30,1,0,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,560a5f44-e4e6-46d9-a9fe-3609842d0e3e,1,0,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,98f68a75-ebf9-4c59-b6a8-b3634089ca6b,1,0,875d1fc1-8172-4e48-8192-035882e1665d,875d1fc1-8172-4e48-8192-035882e1665d,1,0,26132b28-98cc-4690-92ad-139f91839ba2,26132b28-98cc-4690-92ad-139f91839ba2,1,0,e7415ada-dd47-41f5-b4d5-7e77d1adad33,e7415ada-dd47-41f5-b4d5-7e77d1adad33,1,0,b2bd5a0e-d60c-411d-a001-ecdee0152b1a,b2bd5a0e-d60c-411d-a001-ecdee0152b1a,1,0,0bd85b79-cc32-4c1d-b629-567a1bdfac56,0bd85b79-cc32-4c1d-b629-567a1bdfac56,1,0,79c15db6-6066-4fe5-b30e-3196b6ca3d66,79c15db6-6066-4fe5-b30e-3196b6ca3d66,1,0,b87ce4f9-aaa6-4a4c-af80-0bd9adc83506,b87ce4f9-aaa6-4a4c-af80-0bd9adc83506,1,0,ca81e0ea-c428-47f9-aedb-078214104a2f,ca81e0ea-c428-47f9-aedb-078214104a2f,1,0,9518d09c-6996-4439-9278-3c71d5ae8fce,9518d09c-6996-4439-9278-3c71d5ae8fce,1,0,9dd6e7d6-cd98-4928-b50c-38bdbc61c211,9dd6e7d6-cd98-4928-b50c-38bdbc61c211,1,0,40cefda6-490e-4962-9747-94b823ea4ed7,40cefda6-490e-4962-9747-94b823ea4ed7,1,0,5fbd9a13-012d-4c36-b72c-da3bc4157cff,5fbd9a13-012d-4c36-b72c-da3bc4157cff,1,0,7e8d7d4f-98f7-4c81-94b1-f2d552b1ae5d,7e8d7d4f-98f7-4c81-94b1-f2d552b1ae5d,1,0,6aa6d14f-cd6c-413a-864e-d847d9ce120b,6aa6d14f-cd6c-413a-864e-d847d9ce120b,1,0,44b8472b-0f70-49cc-8f71-9c9d3e9cfbcc,44b8472b-0f70-49cc-8f71-9c9d3e9cfbcc,1,0,b071a44e-9a34-4af3-a59a-35aa5f3a74b4,b071a44e-9a34-4af3-a59a-35aa5f3a74b4,1,0,35a28677-0653-47f9-82e1-02c4b9266fee,35a28677-0653-47f9-82e1-02c4b9266fee,1,0,461be12a-9f16-4826-978a-436608ca8733,461be12a-9f16-4826-978a-436608ca8733,1,0,9b143299-d300-4b6c-b667-5552fb3bdcde,9b143299-d300-4b6c-b667-5552fb3bdcde,1,0,0de070f4-d8b7-48bb-bfc9-027dd727a4ad,0de070f4-d8b7-48bb-bfc9-027dd727a4ad,1,0,74973d06-f57d-403e-945c-5cd2f4fc4869,74973d06-f57d-403e-945c-5cd2f4fc4869,1,0,259564b8-172e-4eed-9360-d561ec6dad69,259564b8-172e-4eed-9360-d561ec6dad69,1,0,91c799d7-2b3d-4d1a-87ff-221057a428c6,91c799d7-2b3d-4d1a-87ff-221057a428c6,1,0,5a2d5d8a-afd9-4954-9868-7c82bad00426,5a2d5d8a-afd9-4954-9868-7c82bad00426,1,0,26aea96b-20f8-4e35-b55f-4fe3602e6597,26aea96b-20f8-4e35-b55f-4fe3602e6597,1,0,a3a3a211-e361-4e41-a6f8-d731a366c163,a3a3a211-e361-4e41-a6f8-d731a366c163,1,0,c40d6fde-4d9a-4d9e-af86-42b7916e2abe,c40d6fde-4d9a-4d9e-af86-42b7916e2abe,1,0,4d5204ae-711d-4c31-8a18-280dbc9d2bf5,4d5204ae-711d-4c31-8a18-280dbc9d2bf5,1,0,ca01417c-0ffd-4e00-91e8-93cd305be82d,ca01417c-0ffd-4e00-91e8-93cd305be82d,1,0,933ae96b-c69e-4396-bbfb-0daa81e529a4,933ae96b-c69e-4396-bbfb-0daa81e529a4,1,0,e1823be2-b646-4a1a-a9a9-c925a12c0586,e1823be2-b646-4a1a-a9a9-c925a12c0586,1,0,909e56e3-981f-430b-b775-18c70b3549e7,909e56e3-981f-430b-b775-18c70b3549e7,1,0,e613a6aa-82cb-40fd-8f28-0a74fe21e6a6,e613a6aa-82cb-40fd-8f28-0a74fe21e6a6,1,0,72d579ee-8cd5-4b08-9f3f-eb15f14ee194,72d579ee-8cd5-4b08-9f3f-eb15f14ee194,1,0,b98ca634-25a5-4366-af04-815ba34c8bb2,b98ca634-25a5-4366-af04-815ba34c8bb2,1,0,447da3d4-5d94-4cd2-8540-53c0836e6173,447da3d4-5d94-4cd2-8540-53c0836e6173,1,0,14d69108-4d26-401a-b7ae-2c86dadf831c,14d69108-4d26-401a-b7ae-2c86dadf831c,1,0,d6251f65-d366-4bc9-a5db-42063fe03594,d6251f65-d366-4bc9-a5db-42063fe03594,1,0,22c60cbc-429f-40d9-bf8b-681b7786c41d,22c60cbc-429f-40d9-bf8b-681b7786c41d,1,0,8d9d2284-e592-44c5-93bb-247037ab6b95,8d9d2284-e592-44c5-93bb-247037ab6b95,1,0,31dd320b-06aa-4314-9914-2c2420f572a1,31dd320b-06aa-4314-9914-2c2420f572a1,1,0,56730848-3bef-4b8c-b449-fe9d09c9c374,56730848-3bef-4b8c-b449-fe9d09c9c374,1,0,43c477d2-1234-4c4a-a18a-022c0ddf2fd5,43c477d2-1234-4c4a-a18a-022c0ddf2fd5,1,0,91d8c5e4-eaec-4951-9224-16882fda08f6,91d8c5e4-eaec-4951-9224-16882fda08f6,1,0,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,4304ffb9-7ede-4c59-bef8-26fe3e8f0103,1,0,4654d192-74bf-430f-abee-6f4dc431b182,4654d192-74bf-430f-abee-6f4dc431b182,1,0,c4fe10b6-d025-4736-be23-3113bd7fe7b4,c4fe10b6-d025-4736-be23-3113bd7fe7b4,1,0,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,1ea750ae-5ec4-43c5-b34f-fd28999d41d7,1,0,4678c704-933a-45ef-9d41-89b8f39016bb,4678c704-933a-45ef-9d41-89b8f39016bb,1,0,8ceea1e8-42ce-469f-823a-ceffdbd6b112,8ceea1e8-42ce-469f-823a-ceffdbd6b112,1,0,80eb2a49-8c0e-4f92-b99c-7fdadca03e7b,80eb2a49-8c0e-4f92-b99c-7fdadca03e7b,1,0,3f7ee937-d853-47b7-a1f5-d821208e3531,3f7ee937-d853-47b7-a1f5-d821208e3531,1,0,086d69d6-e2fa-45cb-84b6-f8f3e2919160,086d69d6-e2fa-45cb-84b6-f8f3e2919160,1,0,6fbc9a01-ddcb-47ab-84c0-f08b103be12b,6fbc9a01-ddcb-47ab-84c0-f08b103be12b,1,0,6995ee71-5901-46d9-a5c1-b35d795bda20,6995ee71-5901-46d9-a5c1-b35d795bda20,1,0,543c32a4-ad43-4f60-9b35-77081f841ad9,543c32a4-ad43-4f60-9b35-77081f841ad9,1,0,e93a4293-0497-4f11-b8b9-40300104fb96,e93a4293-0497-4f11-b8b9-40300104fb96,1,0,93531e5d-5dfc-42e8-be52-2e83f37262b0,93531e5d-5dfc-42e8-be52-2e83f37262b0,1,0,61bf78c0-7004-4a74-b362-e979c7316e05,61bf78c0-7004-4a74-b362-e979c7316e05,1,0,c4351896-eff1-4e4d-8823-028d63a9d6bf,c4351896-eff1-4e4d-8823-028d63a9d6bf,1,0,475f83a2-ba5a-4072-94f8-1324b1f198a4,475f83a2-ba5a-4072-94f8-1324b1f198a4,1,0,a9ae364f-b668-4fb4-b976-f227951ffb6b,a9ae364f-b668-4fb4-b976-f227951ffb6b,1,0,63066bee-d428-4e32-a032-f17475056537,63066bee-d428-4e32-a032-f17475056537,1,0,cd7c15c1-c573-46c9-b109-339b8b54c3ee,cd7c15c1-c573-46c9-b109-339b8b54c3ee,1,0,efd89929-4db9-4c58-b3cb-a8d9a41a1df2,efd89929-4db9-4c58-b3cb-a8d9a41a1df2,1,0,deee8bde-381f-4094-8794-7a06248860dd,deee8bde-381f-4094-8794-7a06248860dd,1,0,8c2a0f6b-492c-4c5a-97c5-da0d07f9d781,8c2a0f6b-492c-4c5a-97c5-da0d07f9d781,1,0,d92cb614-ed09-47db-b70b-d3e533c44c6a,d92cb614-ed09-47db-b70b-d3e533c44c6a,1,0,2757ee75-4b36-4901-bff1-044708754edb,2757ee75-4b36-4901-bff1-044708754edb,1,0,0e6bab27-bf94-4732-8549-dbd9b8a5f4e9,0e6bab27-bf94-4732-8549-dbd9b8a5f4e9,1,0,774c92d6-9b9b-422a-83d7-8d42ae2a9f60,774c92d6-9b9b-422a-83d7-8d42ae2a9f60,1,0,90032ffa-f117-4a34-82f8-cc7e5a22a542,90032ffa-f117-4a34-82f8-cc7e5a22a542,1,0,71144539-6472-4727-8887-0139f6221370,71144539-6472-4727-8887-0139f6221370,1,0,bff07da4-ae19-48a9-806b-14b285d42485,bff07da4-ae19-48a9-806b-14b285d42485,1,0,659cd4f6-d18c-4d75-a7e6-7c124a63ab9a,659cd4f6-d18c-4d75-a7e6-7c124a63ab9a,1,0,b0ccc05d-8d39-4f57-8e87-6846014f92ea,b0ccc05d-8d39-4f57-8e87-6846014f92ea,1,0,49e787c9-753a-468a-b8dd-2e970d9a1fed,49e787c9-753a-468a-b8dd-2e970d9a1fed,1,0,e871dea7-1953-4511-90b0-e0957afac4c0,e871dea7-1953-4511-90b0-e0957afac4c0,1,0,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,64fbfed7-9dda-481b-a4f7-fe440f24ba7e,1,0,b2835a5b-5c91-448c-9eb1-1bb1c9a5e727,b2835a5b-5c91-448c-9eb1-1bb1c9a5e727,1,0,447fb310-0588-4e0d-8f6d-5fc1f3bb1180,447fb310-0588-4e0d-8f6d-5fc1f3bb1180,1,0,d91441cf-d793-4dfa-9225-f0c16818edde,d91441cf-d793-4dfa-9225-f0c16818edde,1,0,8986c155-54be-4b1b-b31a-5c00b88bc40d,8986c155-54be-4b1b-b31a-5c00b88bc40d,1,0,40ae107d-67a8-404c-adf9-1a760bba94ff,40ae107d-67a8-404c-adf9-1a760bba94ff,1,0,42a39785-144c-4d2d-92c6-fd8b345f687b,42a39785-144c-4d2d-92c6-fd8b345f687b,1,0,9c472614-595a-4456-aadd-f629455a754e,9c472614-595a-4456-aadd-f629455a754e,1,0,c205ddad-54ed-476f-85cd-e133313fe3a5,c205ddad-54ed-476f-85cd-e133313fe3a5,1,0,98edbda8-2511-4743-b643-28934af0ed74,98edbda8-2511-4743-b643-28934af0ed74,1,0,db1f2fdc-6862-43c0-aefa-499f8c2b585c,db1f2fdc-6862-43c0-aefa-499f8c2b585c,1,0,c9a0afb1-65fa-45ea-aabb-5ec080d9406e,c9a0afb1-65fa-45ea-aabb-5ec080d9406e,1,0,32b07bc0-3b2a-4244-93d4-49f172ad3ffb,32b07bc0-3b2a-4244-93d4-49f172ad3ffb,1,0,7abec628-65c3-4a44-ae11-99c2ffc592a3,7abec628-65c3-4a44-ae11-99c2ffc592a3,1,0,7b263bb6-4a6b-46c6-a1f0-48721ac1694b,7b263bb6-4a6b-46c6-a1f0-48721ac1694b,1,0,80b4e8c4-1fb3-4c3b-883f-93b5e213f46e,80b4e8c4-1fb3-4c3b-883f-93b5e213f46e,1,0,98061bca-6e72-479b-9125-a0f9452f4ed1,98061bca-6e72-479b-9125-a0f9452f4ed1,1,0,4d50203f-4577-4615-8001-4e4ac98fd392,4d50203f-4577-4615-8001-4e4ac98fd392,1,0,5c06642b-9c31-485b-87dd-48c6d7dbd30f,5c06642b-9c31-485b-87dd-48c6d7dbd30f,1,0,eeac3530-8897-4ab6-8fe8-09fcbfcd9fde,eeac3530-8897-4ab6-8fe8-09fcbfcd9fde,1,0,c3e2e470-f0bc-4fda-8c0e-4fb900e564a9,c3e2e470-f0bc-4fda-8c0e-4fb900e564a9,1,0,7fb0f8fd-4673-4f1d-a6ef-bc4ba9a2229f,7fb0f8fd-4673-4f1d-a6ef-bc4ba9a2229f,1,0,7172bed5-b12b-4e83-b15d-1d95b63a6272,7172bed5-b12b-4e83-b15d-1d95b63a6272,1,0,25d75a3c-b801-4b1e-aed8-90e667f36c67,25d75a3c-b801-4b1e-aed8-90e667f36c67,1,0,addb3aa1-a9d6-4d30-b5db-7f3ce46bc1b2,addb3aa1-a9d6-4d30-b5db-7f3ce46bc1b2,1,0,63ebf7fd-d514-4fce-abc1-fb3f253d01cd,63ebf7fd-d514-4fce-abc1-fb3f253d01cd,1,0,a275802f-937a-49f4-92da-fcdd185a036d,a275802f-937a-49f4-92da-fcdd185a036d,1,0,ec6ed9cb-85a2-4303-9906-cfb4ce6500bf,ec6ed9cb-85a2-4303-9906-cfb4ce6500bf,1,0,bf4eb62a-bc74-4845-bad2-58a2a8302a65,bf4eb62a-bc74-4845-bad2-58a2a8302a65,1,0,b66eb190-1c16-4f20-a94f-954bcdf313b8,b66eb190-1c16-4f20-a94f-954bcdf313b8,1,0,49e21b87-beae-4640-a497-ef468da0cbbc,49e21b87-beae-4640-a497-ef468da0cbbc,1,0,08c83b5e-08dd-425d-b024-62af684df926,08c83b5e-08dd-425d-b024-62af684df926,1,0,9e40a2ef-0c96-4455-8ed6-6e09011df3df,9e40a2ef-0c96-4455-8ed6-6e09011df3df,1,0,0de78690-2038-456b-b140-2b2b81f14e44,0de78690-2038-456b-b140-2b2b81f14e44,1,0,b8d07e97-f67d-4669-972a-96ce0f5e8c0d,b8d07e97-f67d-4669-972a-96ce0f5e8c0d,1,0,5c9c5f87-e85f-49b3-a7ca-01e2220d4f39,5c9c5f87-e85f-49b3-a7ca-01e2220d4f39,1,0,b953eafc-20be-4463-8c3e-903184e18402,b953eafc-20be-4463-8c3e-903184e18402,1,0,dcefdde9-645e-43c7-9244-384dadc75439,dcefdde9-645e-43c7-9244-384dadc75439,1,0,8568b969-4d05-42ab-b30a-c937619c7c93,8568b969-4d05-42ab-b30a-c937619c7c93,1,0,1afea577-b99e-41de-b613-47dd0b480a91,1afea577-b99e-41de-b613-47dd0b480a91,1,0,fa787228-aed5-4a16-b958-d102b78bf776,fa787228-aed5-4a16-b958-d102b78bf776,1,0,d511a261-4f9b-44e8-b3a1-1e6d393ec6e1,d511a261-4f9b-44e8-b3a1-1e6d393ec6e1,1,0,be900d20-c02d-476d-9ede-2bc5303ef6cb,be900d20-c02d-476d-9ede-2bc5303ef6cb,1,0,ddce1d3c-4a23-4c92-8083-c395dd3b7f6d,ddce1d3c-4a23-4c92-8083-c395dd3b7f6d,1,0,07b53437-cc8d-4834-a1e0-7007538b6eab,07b53437-cc8d-4834-a1e0-7007538b6eab,1,0,0dbec644-cb98-4368-ab76-5997259cbce7,0dbec644-cb98-4368-ab76-5997259cbce7,1,0,c05a7d33-8a58-4b5f-a433-4ba54c88d5f4,c05a7d33-8a58-4b5f-a433-4ba54c88d5f4,1,0,74b1237b-4a46-438d-9756-b564260df99d,74b1237b-4a46-438d-9756-b564260df99d,1,0,19decf0f-c24e-4551-b3d6-8ebd413cba78,19decf0f-c24e-4551-b3d6-8ebd413cba78,1,0,66a2df23-3a08-40d2-8e6c-2db10a3bca7a,66a2df23-3a08-40d2-8e6c-2db10a3bca7a,1,0,189383a5-0001-4427-9e00-18451e4bfb6e,189383a5-0001-4427-9e00-18451e4bfb6e,1,0,966ecce5-ec91-4f8e-82b2-364b38eb7ff4,966ecce5-ec91-4f8e-82b2-364b38eb7ff4,1,0,5ee4b3ee-b795-48c1-9bad-f4010b559b0e,5ee4b3ee-b795-48c1-9bad-f4010b559b0e,1,0,08dbba81-68fb-49ef-8aac-9631fcfa87c6,08dbba81-68fb-49ef-8aac-9631fcfa87c6,1,0,dd7191b6-cbc0-4b0b-a51a-c27a1e1720fa,dd7191b6-cbc0-4b0b-a51a-c27a1e1720fa,1,0,8170a27d-45e9-48b1-860b-c2d9cc5961cd,8170a27d-45e9-48b1-860b-c2d9cc5961cd,1,0,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,f1c08fed-f3db-4f72-8a8e-7c626b8cc130,1,0,61cc4ec9-81e7-415b-8adf-3a5e61be505f,61cc4ec9-81e7-415b-8adf-3a5e61be505f,1,0,f41d01ec-983a-4b39-9c11-a6d25d08df4f,f41d01ec-983a-4b39-9c11-a6d25d08df4f,1,0,3247e64e-b57e-4c33-8086-7ab93c5b6371,3247e64e-b57e-4c33-8086-7ab93c5b6371,1,0,1ef34700-ce65-4985-b4d6-7133133ef32d,1ef34700-ce65-4985-b4d6-7133133ef32d,1,0,886d99ce-9ea2-4160-8d73-84df7197c030,886d99ce-9ea2-4160-8d73-84df7197c030,1,0,e5dca369-dc9a-4332-a509-f734b8787e13,e5dca369-dc9a-4332-a509-f734b8787e13,1,0,692d289b-8bd2-4b88-a8ea-0389c967df63,692d289b-8bd2-4b88-a8ea-0389c967df63,1,0,722af623-156c-4e63-8b2a-93da760f1559,722af623-156c-4e63-8b2a-93da760f1559,1,0,393074c4-0afc-4232-8101-11a4ea6ed28a,393074c4-0afc-4232-8101-11a4ea6ed28a,1,0,5ff23123-450c-40ae-9b79-c540da53e2a0,5ff23123-450c-40ae-9b79-c540da53e2a0,1,0,639339a1-7de5-4b05-adf3-f60e7edd922c,639339a1-7de5-4b05-adf3-f60e7edd922c,1,0,dea9af9d-13c0-40d4-a9b0-1908e0a58795,dea9af9d-13c0-40d4-a9b0-1908e0a58795,1,0,9e9b8c05-787a-43c0-891d-3d9ad7e4976f,9e9b8c05-787a-43c0-891d-3d9ad7e4976f,1,0,50ef6fc7-edfc-497b-ae9d-fb676934a631,50ef6fc7-edfc-497b-ae9d-fb676934a631,1,0,6f706d33-6fc6-4311-994f-6887c46f3c3b,6f706d33-6fc6-4311-994f-6887c46f3c3b,1,0,0e1a45b0-d95d-415f-b954-5689610aa393,0e1a45b0-d95d-415f-b954-5689610aa393,1,0,9162a85e-a385-42b0-b809-da916fce44b7,9162a85e-a385-42b0-b809-da916fce44b7,1,0,4736b3d3-f696-4bdd-b0e3-0884ea88f623,4736b3d3-f696-4bdd-b0e3-0884ea88f623,1,0,e3ac6312-4397-4012-a3d1-e35071d3fb6b,e3ac6312-4397-4012-a3d1-e35071d3fb6b,1,0,1c32ac14-580d-4ac2-939b-dc5ce64b4f7f,1c32ac14-580d-4ac2-939b-dc5ce64b4f7f,1,0,f6939587-ff87-4eca-ae52-10e1bd2abfce,f6939587-ff87-4eca-ae52-10e1bd2abfce,1,0,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,a8e4d97f-e2da-4aa8-a221-3cbcc135f403,1,0,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,f2b0eab2-e34b-42f8-9b24-5596b4c17d7f,1,0,3cb575a9-dc82-45e0-81f0-d651e12246da,3cb575a9-dc82-45e0-81f0-d651e12246da,1,0,01a73950-3e8f-4f56-903f-af0d9574e72e,01a73950-3e8f-4f56-903f-af0d9574e72e,1,0,14bd0844-c829-4325-aa7f-0f417bf955dc,14bd0844-c829-4325-aa7f-0f417bf955dc,1,0,7f1cd658-ca10-49c6-80ef-b8956f3269ea,7f1cd658-ca10-49c6-80ef-b8956f3269ea,1,0,b0d9086f-cef7-47a8-ad62-d85fea28ebda,b0d9086f-cef7-47a8-ad62-d85fea28ebda,1,0,49c010fc-f5cc-45f4-ba46-132e7661c3dd,49c010fc-f5cc-45f4-ba46-132e7661c3dd,1,0,23d137ad-5b37-40a9-9c9f-3a2cecfb5abb,23d137ad-5b37-40a9-9c9f-3a2cecfb5abb,1,0,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,3f3b592d-ca61-40c7-be1f-e5d3224a1eb3,1,0,2c02a558-8d12-44cf-be6b-9c399b9032e5,2c02a558-8d12-44cf-be6b-9c399b9032e5,1,0,d94d4931-7c81-4ee8-93ea-b2c54b152fa5,d94d4931-7c81-4ee8-93ea-b2c54b152fa5,1,0,5a2f2284-4f86-4ee4-8b53-296c2787f320,5a2f2284-4f86-4ee4-8b53-296c2787f320,1,0,aea031ed-44c1-441b-8ed2-3a790c0263ab,aea031ed-44c1-441b-8ed2-3a790c0263ab,1,0,c770bdd5-c7c0-4751-b31d-46c0ea1f49b7,c770bdd5-c7c0-4751-b31d-46c0ea1f49b7,1,0,6afcc089-7f15-42e8-97b5-6aad6cf2e6f9,6afcc089-7f15-42e8-97b5-6aad6cf2e6f9,1,0,cce4c615-dc29-42b3-9d3d-b277dde4a2e4,cce4c615-dc29-42b3-9d3d-b277dde4a2e4,1,0,9c267aa6-5f23-49f6-868a-3324ef2845ff,9c267aa6-5f23-49f6-868a-3324ef2845ff,1,0,495eeeee-d7bf-4063-99e2-86daa066451a,495eeeee-d7bf-4063-99e2-86daa066451a,1,0,b6184698-79e4-4c19-9440-092ccd9dabf8,b6184698-79e4-4c19-9440-092ccd9dabf8,1,0,7d01fc0c-378e-421d-ab70-6a418eed5941,7d01fc0c-378e-421d-ab70-6a418eed5941,1,0,6eeb4867-bf9d-48dc-b96b-934a0c293010,6eeb4867-bf9d-48dc-b96b-934a0c293010,1,0,d2816f95-4809-4727-8ab6-8afd375f5a75,d2816f95-4809-4727-8ab6-8afd375f5a75,1,0,1d49b1bb-5f90-46e4-adcf-55ad46442648,1d49b1bb-5f90-46e4-adcf-55ad46442648,1,0,8d4685b7-ba72-4a28-8182-3104e1330567,8d4685b7-ba72-4a28-8182-3104e1330567,1,0,b91b93f0-29ca-452d-97be-7109fb248e22,b91b93f0-29ca-452d-97be-7109fb248e22,1,0,c1f7437a-b278-4941-b580-75c6693155d0,c1f7437a-b278-4941-b580-75c6693155d0,1,0,e1803e54-ec5e-4a82-8097-5e2331820991,e1803e54-ec5e-4a82-8097-5e2331820991,1,0,1bcbf91d-cbbc-4c47-86ed-b2cab62ccbe2,1bcbf91d-cbbc-4c47-86ed-b2cab62ccbe2,1,0,27aebf22-27fe-48d4-a6f4-ea4f6a6714bb,27aebf22-27fe-48d4-a6f4-ea4f6a6714bb,1,0,f69ec1f9-826e-4eb4-b52c-3f6a3dfc3361,f69ec1f9-826e-4eb4-b52c-3f6a3dfc3361,1,0,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,4cbb0b91-dbdd-472f-93c5-061076b6a8d3,1,0,8506dbe9-7066-444b-83b6-fb2d71a336e7,8506dbe9-7066-444b-83b6-fb2d71a336e7,1,0,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,240b4df5-0d75-4e5a-9ae8-d0bc7cc51722,1,0,932656e8-4011-4250-844b-1fd47abda912,932656e8-4011-4250-844b-1fd47abda912,1,0,6686d828-3129-4d44-a8a2-a64657d424cb,6686d828-3129-4d44-a8a2-a64657d424cb,1,0,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,90433152-f389-4d45-8ccc-3eb6c7a7e1f0,1,0,ce235ab9-1dec-459a-9fec-498c262ece56,ce235ab9-1dec-459a-9fec-498c262ece56,1,0,fb7a9f90-15ef-4121-adff-cd40f699182b,fb7a9f90-15ef-4121-adff-cd40f699182b,1,0,0fa52339-2d11-4c81-92b9-aa27d116134d,0fa52339-2d11-4c81-92b9-aa27d116134d,1,0,26135cf4-fbe1-4f72-a1fd-69e85ec008a6,26135cf4-fbe1-4f72-a1fd-69e85ec008a6,1,0,d83b8068-512d-4c10-88b4-f9b3413a3a81,d83b8068-512d-4c10-88b4-f9b3413a3a81,1,0,b3bbcd07-a593-4591-9d7e-9a990c0acb62,b3bbcd07-a593-4591-9d7e-9a990c0acb62,1,0,b96df5bb-d78a-40ed-a62d-2bf796c59c62,b96df5bb-d78a-40ed-a62d-2bf796c59c62,1,0,073890e5-13eb-4c50-9a6e-3e5507b111b7,073890e5-13eb-4c50-9a6e-3e5507b111b7,1,0,34a4d235-dc56-47e5-91b6-0af887ccdf42,34a4d235-dc56-47e5-91b6-0af887ccdf42,1,0,d60e7164-c686-4c50-b831-a4ee4f505c35,d60e7164-c686-4c50-b831-a4ee4f505c35,1,0,e660c8bf-af5f-4525-a56e-68925d2b96fa,e660c8bf-af5f-4525-a56e-68925d2b96fa,1,0,2fad50a6-6a3e-4f87-ab84-907364427a63,2fad50a6-6a3e-4f87-ab84-907364427a63,1,0,e37aa075-143b-44e9-a2e2-77b3e0f76a77,e37aa075-143b-44e9-a2e2-77b3e0f76a77,1,0,1df47f0c-7935-481b-9dfb-1f660ea81a2b,1df47f0c-7935-481b-9dfb-1f660ea81a2b,1,0,258736e4-93c0-4a46-8caa-75be42c9f006,258736e4-93c0-4a46-8caa-75be42c9f006,1,0,3153b2b9-9e3e-4d6b-ab8c-5ccaac78a08a,3153b2b9-9e3e-4d6b-ab8c-5ccaac78a08a,1,0,56d0acf3-c888-4824-a6e4-27d61fa35415,56d0acf3-c888-4824-a6e4-27d61fa35415,1,0,588bd1b2-ee61-4a05-83cd-efb1b82ccb44,588bd1b2-ee61-4a05-83cd-efb1b82ccb44,1,0,439129dd-ad00-484c-b84a-fb325af979ed,439129dd-ad00-484c-b84a-fb325af979ed,1,0,dcae6376-f44c-421e-87f2-df83413c021e,dcae6376-f44c-421e-87f2-df83413c021e,1,0,dbdcdcab-4cd5-44af-b52c-6ce14a26ca9c,dbdcdcab-4cd5-44af-b52c-6ce14a26ca9c,1,0,151f2d0a-cc43-490d-ad7d-71390703aa72,151f2d0a-cc43-490d-ad7d-71390703aa72,1,0,2a515a4f-683b-4674-b097-62dd2d940c39,2a515a4f-683b-4674-b097-62dd2d940c39,1,0,d14058f5-dfd4-47eb-ae6d-01b7062f5940,d14058f5-dfd4-47eb-ae6d-01b7062f5940,1,0,90f358ae-9c80-40cf-8e8f-aa02d78a2cdb,90f358ae-9c80-40cf-8e8f-aa02d78a2cdb,1,0,1681dd7a-de80-4b8d-9657-c9702a19d653,1681dd7a-de80-4b8d-9657-c9702a19d653,1,0,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,10d796e9-a3d4-4ef0-87d5-8315aa12f1c8,1,0,fdb5b235-1978-4c2a-a03f-02341df00c3c,fdb5b235-1978-4c2a-a03f-02341df00c3c,1,0,9f593f27-8009-40c0-94d6-53f177ce55f4,9f593f27-8009-40c0-94d6-53f177ce55f4,1,0,917f8d67-2c28-4e02-9453-e1ef9297c9a6,917f8d67-2c28-4e02-9453-e1ef9297c9a6,1,0,38637f61-399a-4966-9e64-4751aecffa31,38637f61-399a-4966-9e64-4751aecffa31,1,0,0f38a18b-a36c-45fe-86c1-396634aaa5df,0f38a18b-a36c-45fe-86c1-396634aaa5df,1,0,f2b7b8d0-c0f7-46ba-907a-f8dfa76fc2da,f2b7b8d0-c0f7-46ba-907a-f8dfa76fc2da,1,0,a81c783d-2dea-4dde-9ca1-7b23d609eb22,a81c783d-2dea-4dde-9ca1-7b23d609eb22,1,0,836dfba9-c948-409b-825f-f0d869872835,836dfba9-c948-409b-825f-f0d869872835,1,0,137ec4ee-5053-47a7-8f5d-f6e63174608f,137ec4ee-5053-47a7-8f5d-f6e63174608f,1,0,4e6d38c5-2a09-4473-9e04-8f631fe88c61,4e6d38c5-2a09-4473-9e04-8f631fe88c61,1,0,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,1,0,4b4f5777-7c36-461e-9d3e-1baaf0497d62,4b4f5777-7c36-461e-9d3e-1baaf0497d62,1,0,8f4d5fc1-5c2c-4202-bb79-a180b03b3267,8f4d5fc1-5c2c-4202-bb79-a180b03b3267,1,0,da881296-fea4-444b-96b2-12cb69d588c7,da881296-fea4-444b-96b2-12cb69d588c7,1,0,03f9d2d0-eae4-4098-a70e-4eb569b11fd9,03f9d2d0-eae4-4098-a70e-4eb569b11fd9,1,0,30031e74-e58a-44a2-98dd-fc8c950831c4,30031e74-e58a-44a2-98dd-fc8c950831c4,1,0,530a3164-4ef1-4b3b-8269-13764ef4bf15,530a3164-4ef1-4b3b-8269-13764ef4bf15,1,0,6df2bb92-558c-4453-9de4-e4176e8f93dc,6df2bb92-558c-4453-9de4-e4176e8f93dc,1,0,3fc019d1-aec8-4835-96c5-3bbf43da0b94,3fc019d1-aec8-4835-96c5-3bbf43da0b94,1,0,5371672a-c8e0-4c12-834e-f23dd885b49a,5371672a-c8e0-4c12-834e-f23dd885b49a,1,0,8583ca82-a4f5-4f2a-9b9a-7807b4560e85,8583ca82-a4f5-4f2a-9b9a-7807b4560e85,1,0,6417d7c8-6436-4907-98eb-44cd7638f3f1,6417d7c8-6436-4907-98eb-44cd7638f3f1,1,0,1f927f76-5523-4880-9d26-d69a059f2b67,1f927f76-5523-4880-9d26-d69a059f2b67,1,0,27a9c1de-90a9-49f8-8b16-f7ef041ae1de,27a9c1de-90a9-49f8-8b16-f7ef041ae1de,1,0,5c45e96f-e245-4d16-9c47-836505582aef,5c45e96f-e245-4d16-9c47-836505582aef,1,0,2c04d747-c363-4218-92c9-5c83393e928b,2c04d747-c363-4218-92c9-5c83393e928b,1,0,093b8255-7ee5-4463-bd20-542b1d63e799,093b8255-7ee5-4463-bd20-542b1d63e799,1,0,5afb95e0-51a3-4a0f-bea7-e06716421974,5afb95e0-51a3-4a0f-bea7-e06716421974,1,0,2bce3fbe-436b-4a9f-8478-5436d61cd57c,2bce3fbe-436b-4a9f-8478-5436d61cd57c,1,0,ba49877b-6e30-4177-a67c-00e65aa498fb,ba49877b-6e30-4177-a67c-00e65aa498fb,1,0,3d02ca78-c396-4797-909c-e6b910c0ff66,3d02ca78-c396-4797-909c-e6b910c0ff66,1,0,25b39aeb-94c3-4199-9d56-5bd87e325bf2,25b39aeb-94c3-4199-9d56-5bd87e325bf2,1,0,b0b63551-4e83-4201-af9a-b4ab150c43a5,b0b63551-4e83-4201-af9a-b4ab150c43a5,1,0,ca85912b-87b4-481e-9184-017364b4603d,ca85912b-87b4-481e-9184-017364b4603d,1,0,2bd80198-4739-4e8f-9af1-40addc91a05b,2bd80198-4739-4e8f-9af1-40addc91a05b,1,0,80c18959-93f0-46e6-90fd-b564efcaa395,80c18959-93f0-46e6-90fd-b564efcaa395,1,0,c53b9e19-54e4-49b4-ac63-eaeee5c2e040,c53b9e19-54e4-49b4-ac63-eaeee5c2e040,1,0,47afc45d-719e-4740-a8aa-6157c4b1aea8,47afc45d-719e-4740-a8aa-6157c4b1aea8,1,0,baec0e60-c410-4b95-8126-f77fd06225b4,baec0e60-c410-4b95-8126-f77fd06225b4,1,0,91275c80-d7f7-47c6-ba76-4a10d394f55b,91275c80-d7f7-47c6-ba76-4a10d394f55b,1,0,b92edc24-fcf7-498d-97a2-0c7f3005c814,b92edc24-fcf7-498d-97a2-0c7f3005c814,1,0,2b97f923-6a4e-4894-9ece-5129d8832864,2b97f923-6a4e-4894-9ece-5129d8832864,1,0,2650db63-ca98-4a8a-8c36-165548aa5279,2650db63-ca98-4a8a-8c36-165548aa5279,1,0,6a8fdf0a-5dff-49e4-a423-fc80aceeee27,6a8fdf0a-5dff-49e4-a423-fc80aceeee27,1,0,4b9320f1-c7b1-4c08-a832-64ef108d0d6d,4b9320f1-c7b1-4c08-a832-64ef108d0d6d,1,0,e8c5c961-0633-438d-ba50-d2a774f6b167,e8c5c961-0633-438d-ba50-d2a774f6b167,1,0,48b57d1b-5246-4ce8-9e0f-e369e6add55c,48b57d1b-5246-4ce8-9e0f-e369e6add55c,1,0,b6d891e4-15d6-4b40-b474-a8a1d10231e8,b6d891e4-15d6-4b40-b474-a8a1d10231e8,1,0,e60a7341-3995-4d8c-a3c6-a23ea0137754,e60a7341-3995-4d8c-a3c6-a23ea0137754,1,0,a69525c7-27ff-48df-b26b-325ba580a53e,a69525c7-27ff-48df-b26b-325ba580a53e,1,0,24a7de1c-1c1f-4987-91ff-02f78f15dd9e,24a7de1c-1c1f-4987-91ff-02f78f15dd9e,1,0,8482b31d-0ffa-4a94-9be1-09db8399b70d,8482b31d-0ffa-4a94-9be1-09db8399b70d,1,0,77fe53c2-de9d-4483-97c9-f7d44e137d5e,77fe53c2-de9d-4483-97c9-f7d44e137d5e,1,0,ac7ea771-4b10-4d43-9c0a-9cd36e4c49a4,ac7ea771-4b10-4d43-9c0a-9cd36e4c49a4,1,0,593be64c-6792-46d9-8618-84c50c9ad9e4,593be64c-6792-46d9-8618-84c50c9ad9e4,1,0,208d29cb-040f-4282-b8e8-dda8417b8e92,208d29cb-040f-4282-b8e8-dda8417b8e92,1,0,15a4595f-92d8-4084-bb92-cdc587b3a04e,15a4595f-92d8-4084-bb92-cdc587b3a04e,1,0,e57f4619-b5ed-44de-a186-a13a3897731b,e57f4619-b5ed-44de-a186-a13a3897731b,1,0,3b78a9d0-7382-4115-a7dc-d06c9a1962d1,3b78a9d0-7382-4115-a7dc-d06c9a1962d1,1,0,9935d602-668e-4df9-a338-0f542def878b,9935d602-668e-4df9-a338-0f542def878b,1,0,3913f78f-ce34-4ae3-840a-ccdf06319cbb,3913f78f-ce34-4ae3-840a-ccdf06319cbb,1,0,104cf3e3-2104-4ac2-bdc6-792750a63ea0,104cf3e3-2104-4ac2-bdc6-792750a63ea0,1,0,35dee1ee-ca9e-4b6b-9767-1107283f5a04,35dee1ee-ca9e-4b6b-9767-1107283f5a04,1,0,c86aa97a-5898-4cb2-ae62-598bddf8e99f,c86aa97a-5898-4cb2-ae62-598bddf8e99f,1,0,cb3a5c5b-7bdc-4e12-96f1-11b1213b6853,cb3a5c5b-7bdc-4e12-96f1-11b1213b6853,1,0,e6fe7103-4dfa-4302-a58e-ccd7fac19c9d,e6fe7103-4dfa-4302-a58e-ccd7fac19c9d,1,0,bb3a9973-67ce-479e-8668-c2f3bb20301e,bb3a9973-67ce-479e-8668-c2f3bb20301e,1,0,e5250dfe-dda2-4547-9b9e-2470ea1be1ab,e5250dfe-dda2-4547-9b9e-2470ea1be1ab,1,0,2c3fccc6-c4c0-49ec-bfc2-05ce05f27ea9,2c3fccc6-c4c0-49ec-bfc2-05ce05f27ea9,1,0,37169451-1464-4f24-8ca6-802963ffb636,37169451-1464-4f24-8ca6-802963ffb636,1,0,c3a958b1-590f-4418-a74f-5982b478cf52,c3a958b1-590f-4418-a74f-5982b478cf52,1,0,ef0e618d-0942-460a-ac65-9aca2fed976e,ef0e618d-0942-460a-ac65-9aca2fed976e,1,0,fd1ed7ec-d848-41cd-8ce3-2e5a682abcf0,fd1ed7ec-d848-41cd-8ce3-2e5a682abcf0,1,0,2ac8bd69-9fbf-4f15-b58d-397d9e903532,2ac8bd69-9fbf-4f15-b58d-397d9e903532,1,0,2ff35814-7eaa-4ae5-bbac-f46bebb36c9d,2ff35814-7eaa-4ae5-bbac-f46bebb36c9d,1,0,5b460b92-2c74-4f59-88b2-18d9aac42c04,5b460b92-2c74-4f59-88b2-18d9aac42c04,1,0,db05d35b-5f53-4c27-ba80-b477b9a98299,db05d35b-5f53-4c27-ba80-b477b9a98299,1,0,fa872ae1-b699-46fe-9d6a-e42e1388752b,fa872ae1-b699-46fe-9d6a-e42e1388752b,1,0,1acf34e6-c428-4130-82f0-5160dfcc0858,1acf34e6-c428-4130-82f0-5160dfcc0858,1,0,57046262-b9ce-4670-9cf5-6db9e58dd0d5,57046262-b9ce-4670-9cf5-6db9e58dd0d5,1,0,a9824176-36d5-4be5-9984-f4312ff48515,a9824176-36d5-4be5-9984-f4312ff48515,1,0,8e980ca0-1627-45e8-bd27-5dd1ac199459,8e980ca0-1627-45e8-bd27-5dd1ac199459,1,0,8b653beb-af9f-4f39-b691-ae14f80b7cd6,8b653beb-af9f-4f39-b691-ae14f80b7cd6,1,0,77559c11-713f-454d-aff4-56649e1350e9,77559c11-713f-454d-aff4-56649e1350e9,1,0,0c965703-c1d0-48b7-80f9-b8d869ff98f5,0c965703-c1d0-48b7-80f9-b8d869ff98f5,1,0,51f8d5ff-aec5-4c0a-ad02-df8c6cb1b4ad,51f8d5ff-aec5-4c0a-ad02-df8c6cb1b4ad,1,0,7ba42162-557b-4e34-8aca-0cdee8cb2452,7ba42162-557b-4e34-8aca-0cdee8cb2452,1,0,eee99b8e-29b6-4b7a-81f1-3d91d740c0d7,eee99b8e-29b6-4b7a-81f1-3d91d740c0d7,1,0,ad4f2d1f-1e6f-4f6a-8061-202c0e42a8e4,ad4f2d1f-1e6f-4f6a-8061-202c0e42a8e4,1,0,dd577924-c6cb-4aa9-9db5-366d8958d00f,dd577924-c6cb-4aa9-9db5-366d8958d00f,1,0,8ed8f72e-404a-4be4-a44d-ddebbad5f411,8ed8f72e-404a-4be4-a44d-ddebbad5f411,1,0,e919bc4c-86e6-44f6-be27-5a729b63d042,e919bc4c-86e6-44f6-be27-5a729b63d042,1,0,ec580e4f-1518-4923-a10e-bc1da8688b37,ec580e4f-1518-4923-a10e-bc1da8688b37,1,0,91c3902a-314f-4d40-8bcc-8dd131fed2f4,91c3902a-314f-4d40-8bcc-8dd131fed2f4,1,0,ae2b21c5-9349-49e8-9627-26f05c21f43a,ae2b21c5-9349-49e8-9627-26f05c21f43a,1,0,7e4c0b74-e807-4aa9-ad69-3c85b147bb61,7e4c0b74-e807-4aa9-ad69-3c85b147bb61,1,0,917a19d7-73db-4247-b892-397598d67879,917a19d7-73db-4247-b892-397598d67879,1,0,1f866dc3-a4bc-4e8d-96a3-a26ee073926f,1f866dc3-a4bc-4e8d-96a3-a26ee073926f,1,0,d8066600-c669-449d-a187-fdd3af8f7afa,d8066600-c669-449d-a187-fdd3af8f7afa,1,0,dadf86a6-c118-4827-b1b9-6cfee731242f,dadf86a6-c118-4827-b1b9-6cfee731242f,1,0,45bf7b20-f048-491a-a989-e50bea13d028,45bf7b20-f048-491a-a989-e50bea13d028,1,0,9ad3b432-5b49-44ee-9d8d-83c36458d927,9ad3b432-5b49-44ee-9d8d-83c36458d927,1,0,a9967bff-53b9-4295-a253-3647d956d3cb,a9967bff-53b9-4295-a253-3647d956d3cb,1,0,75f0fd5b-c594-4f3a-8ff2-3fdadf1dc96d,75f0fd5b-c594-4f3a-8ff2-3fdadf1dc96d,1,0,b8a31397-8974-44ec-92b0-7cbdc481cf7e,b8a31397-8974-44ec-92b0-7cbdc481cf7e,1,0,b29c7c0d-03eb-422b-a899-ba9a7eba99f6,b29c7c0d-03eb-422b-a899-ba9a7eba99f6,1,0,fb16c4d5-854c-4525-92be-b21fa2df5b0d,fb16c4d5-854c-4525-92be-b21fa2df5b0d,1,0,5771de21-2086-432b-ad91-de14a39bd5bc,5771de21-2086-432b-ad91-de14a39bd5bc,1,0,b15bcf3b-0228-4d02-8f20-cd6ba82f7585,b15bcf3b-0228-4d02-8f20-cd6ba82f7585,1,0,ed96fbfa-bda7-405c-9073-d0b6feffedad,ed96fbfa-bda7-405c-9073-d0b6feffedad,1,0,50c724cb-dde1-4313-9492-b1750bd0afc1,50c724cb-dde1-4313-9492-b1750bd0afc1,1,0,12901981-6106-4471-ab3a-e127c2bb4ebd,12901981-6106-4471-ab3a-e127c2bb4ebd,1,0,17ad1497-fa0e-469f-b2e2-b94a6f848ec5,17ad1497-fa0e-469f-b2e2-b94a6f848ec5,1,0,d5ea5dea-233d-4106-b9ba-f030d4f762ef,d5ea5dea-233d-4106-b9ba-f030d4f762ef,1,0,903af05e-5ac5-46aa-843b-d74f9e417c1d,903af05e-5ac5-46aa-843b-d74f9e417c1d,1,0,4dc4862e-74c3-469d-863b-09fdbe0d6be0,4dc4862e-74c3-469d-863b-09fdbe0d6be0,1,0,a344290a-c9be-47a7-95ad-ced1b52a0995,a344290a-c9be-47a7-95ad-ced1b52a0995,1,0,a4e56049-4de9-40a3-8197-a5c84a11f516,a4e56049-4de9-40a3-8197-a5c84a11f516,1,0,339c9220-fd5b-45d3-b300-cdcc8788f87e,339c9220-fd5b-45d3-b300-cdcc8788f87e,1,0,02d7d401-3c0c-4fd0-b096-1f73b6ec14c3,02d7d401-3c0c-4fd0-b096-1f73b6ec14c3,1,0,9042a6de-5048-432d-a448-7e21f2d1d24a,9042a6de-5048-432d-a448-7e21f2d1d24a,1,0,350d46bf-114e-48e7-90c6-6708d949f20d,350d46bf-114e-48e7-90c6-6708d949f20d,1,0,d047caa8-7bcf-41ac-a18e-97877d6e0a2a,d047caa8-7bcf-41ac-a18e-97877d6e0a2a,1,0,aac20ff3-5873-432e-b763-14411e623d41,aac20ff3-5873-432e-b763-14411e623d41,1,0,fbc4df3e-c235-4197-8c1f-a5e39ac63a8c,fbc4df3e-c235-4197-8c1f-a5e39ac63a8c,1,0,6df44466-8750-481a-9baf-c924f0d45353,6df44466-8750-481a-9baf-c924f0d45353,1,0,110121eb-a0eb-4662-8911-3dcc3d341a73,110121eb-a0eb-4662-8911-3dcc3d341a73,1,0,f8980c18-6b9c-4e45-919a-22e976d2a846,f8980c18-6b9c-4e45-919a-22e976d2a846,1,0,c946efb7-c67e-49c1-bf56-d3c2d7220acd,c946efb7-c67e-49c1-bf56-d3c2d7220acd,1,0,7ed6bd83-b61d-4db4-8549-acacbdda6ca2,7ed6bd83-b61d-4db4-8549-acacbdda6ca2,1,0,6b7c9f74-f2b6-463e-acb9-9f82901986cf,6b7c9f74-f2b6-463e-acb9-9f82901986cf,1,0,fc4c1d64-132b-4687-a37d-05000fdb4ba5,fc4c1d64-132b-4687-a37d-05000fdb4ba5,1,0,528777cd-090b-4b70-82f5-56def98c5893,528777cd-090b-4b70-82f5-56def98c5893,1,0,49dbe467-8832-4ede-9a05-494248619aeb,49dbe467-8832-4ede-9a05-494248619aeb,1,0,460ed9ca-10c2-491c-a641-b92ffc2a8e7c,460ed9ca-10c2-491c-a641-b92ffc2a8e7c,1,0,bd5fadd3-9264-4c3b-9bd5-51e91847a6fb,bd5fadd3-9264-4c3b-9bd5-51e91847a6fb,1,0,09c73108-8528-4970-9b7f-fff9eda7816a,09c73108-8528-4970-9b7f-fff9eda7816a,1,0,40aa936e-cb1c-4ae9-85f1-6d930a5815cc,40aa936e-cb1c-4ae9-85f1-6d930a5815cc,1,0,f568245a-d158-45dc-af92-2d411f12db7b,f568245a-d158-45dc-af92-2d411f12db7b,1,0,0f17cdac-aa17-45e6-b3d0-220b13345390,0f17cdac-aa17-45e6-b3d0-220b13345390,1,0,c675db75-d0c3-4026-b97c-6b23ecbb336a,c675db75-d0c3-4026-b97c-6b23ecbb336a,1,0,469f67fa-98b0-44b0-abd4-cae136c02834,469f67fa-98b0-44b0-abd4-cae136c02834,1,0,16a18458-999c-420e-80df-8fc10855746c,16a18458-999c-420e-80df-8fc10855746c,1,0,b794f222-0fde-439f-97a3-0da74075b415,b794f222-0fde-439f-97a3-0da74075b415,1,0,3a716aad-9b2c-48a7-b802-80732066391b,3a716aad-9b2c-48a7-b802-80732066391b,1,0,480d959f-aac8-4241-875f-78e1c1f32621,480d959f-aac8-4241-875f-78e1c1f32621,1,0,496e5de8-d75c-4536-9993-75374f070b40,496e5de8-d75c-4536-9993-75374f070b40,1,0,b4e610ba-c9c8-4b25-903b-e567dcbc2556,b4e610ba-c9c8-4b25-903b-e567dcbc2556,1,0,48febdbd-a085-4113-8511-ed7ff6be7d3c,48febdbd-a085-4113-8511-ed7ff6be7d3c,1,0,49413232-c0c3-4983-9d10-291a0399281b,49413232-c0c3-4983-9d10-291a0399281b,1,0,032bb782-96a7-4c1b-8b8f-eb4e18b555b7,032bb782-96a7-4c1b-8b8f-eb4e18b555b7,1,0,b9b076bb-38ab-4a94-8226-41a4d4d7432c,b9b076bb-38ab-4a94-8226-41a4d4d7432c,1,0,e12da8db-4037-473e-ba2b-d0ceb4534dcb,e12da8db-4037-473e-ba2b-d0ceb4534dcb,1,0,789514e5-8ea3-4a5e-88c5-ed89c4135866,789514e5-8ea3-4a5e-88c5-ed89c4135866,1,0,a16768ff-6137-43d8-8784-4805ed83632a,a16768ff-6137-43d8-8784-4805ed83632a,1,0,61971286-9f94-4a27-aa34-e10848adb70a,61971286-9f94-4a27-aa34-e10848adb70a,1,0,1e75d143-3452-496e-a137-6d7f4c4ed019,1e75d143-3452-496e-a137-6d7f4c4ed019,1,0,e0619d14-c658-4eb5-841a-3a029de28be4,e0619d14-c658-4eb5-841a-3a029de28be4,1,0,99a3b660-7875-47f7-9c6c-c552e5673deb,99a3b660-7875-47f7-9c6c-c552e5673deb,1,0,2bdcf3a5-c8e1-492c-afee-f9db68e2fbb6,2bdcf3a5-c8e1-492c-afee-f9db68e2fbb6,1,0,41cbf934-ea54-41df-abf0-09f319d2e67a,41cbf934-ea54-41df-abf0-09f319d2e67a,1,0,47246084-a5f8-4d0f-b4e2-204c1b97483a,47246084-a5f8-4d0f-b4e2-204c1b97483a,1,0,e58233ec-6cfc-4a8b-9929-689fa69cdb07,e58233ec-6cfc-4a8b-9929-689fa69cdb07,1,0,3291a891-a47c-43ca-b088-aecd3867d38c,3291a891-a47c-43ca-b088-aecd3867d38c,1,0,56cde2b4-00f2-49ba-b407-16e241c17fd2,56cde2b4-00f2-49ba-b407-16e241c17fd2,1,0,bd84fb2b-4c52-4e2f-a8c5-f289b8336145,bd84fb2b-4c52-4e2f-a8c5-f289b8336145,1,0,219ed110-f2a0-41c1-ac5a-02301b248c54,219ed110-f2a0-41c1-ac5a-02301b248c54,1,0,1c722dfd-2b07-4985-9188-17353de24771,1c722dfd-2b07-4985-9188-17353de24771,1,0,1a630496-2cdd-4c89-a1aa-ed20545ad133,1a630496-2cdd-4c89-a1aa-ed20545ad133,1,0,b0dd02ee-ea6a-43f2-baa2-abac0a1ab4bb,b0dd02ee-ea6a-43f2-baa2-abac0a1ab4bb,1,0,b19cea0e-e57a-4969-8daf-f48d3d16705f,b19cea0e-e57a-4969-8daf-f48d3d16705f,1,0,d4059340-3361-4baa-ae48-ecbfb9800a2e,d4059340-3361-4baa-ae48-ecbfb9800a2e,1,0,f78f6c43-dd90-4117-acf7-ed5b951cb964,f78f6c43-dd90-4117-acf7-ed5b951cb964,1,0,8eebd519-4989-4784-82b8-39d77eebfb17,8eebd519-4989-4784-82b8-39d77eebfb17,1,0,0a2cb6e3-d9fa-4881-b136-7b6db9efca07,0a2cb6e3-d9fa-4881-b136-7b6db9efca07,1,0,c1561ed9-2fbf-4c12-a484-07f8adbe8fa3,c1561ed9-2fbf-4c12-a484-07f8adbe8fa3,1,0,4527877b-5723-4aa5-8705-98174ac9c337,4527877b-5723-4aa5-8705-98174ac9c337,1,0,d6b21e7b-df57-4280-8c95-c269b5316018,d6b21e7b-df57-4280-8c95-c269b5316018,1,0,808c468b-6322-428d-ac6a-ccf2228b05b6,808c468b-6322-428d-ac6a-ccf2228b05b6,1,0,13664bb2-738f-4d18-b382-a7bcf8105a5a,13664bb2-738f-4d18-b382-a7bcf8105a5a,1,0,f3f56abe-9248-4555-bf99-29560eb4f9ee,f3f56abe-9248-4555-bf99-29560eb4f9ee,1,0,0dbd5d55-a85f-4c7e-ac31-7ba4ab7cc371,0dbd5d55-a85f-4c7e-ac31-7ba4ab7cc371,1,0,dd9d09ef-3b4b-4bb5-9408-9c4080049bb3,dd9d09ef-3b4b-4bb5-9408-9c4080049bb3,1,0,3eb43a06-b32d-4904-8489-6264d0207623,3eb43a06-b32d-4904-8489-6264d0207623,1,0,a18098cf-5a61-46b5-bd55-cc61d15aa6bc,a18098cf-5a61-46b5-bd55-cc61d15aa6bc,1,0,18615fe1-cfee-4888-9c09-88d1c5db39eb,18615fe1-cfee-4888-9c09-88d1c5db39eb,1,0,63e363fa-8b0c-4d48-ab1b-9c953c5ed4c0,63e363fa-8b0c-4d48-ab1b-9c953c5ed4c0,1,0,087c83c0-75e7-476b-b7c6-5be55498a190,087c83c0-75e7-476b-b7c6-5be55498a190,1,0,ec5e5413-9e77-4929-83b8-6fee70688b28,ec5e5413-9e77-4929-83b8-6fee70688b28,1,0,59cd8e3f-ecf3-4e1d-bd98-41551d5d6f68,59cd8e3f-ecf3-4e1d-bd98-41551d5d6f68,1,0,8390c864-2b84-4c45-8583-cb4a4ab49168,8390c864-2b84-4c45-8583-cb4a4ab49168,1,0,1b2fefca-fef5-4319-90cc-325444cb63a6,1b2fefca-fef5-4319-90cc-325444cb63a6,1,0,34a128be-8fbb-4dd8-ac23-9f35041feb63,34a128be-8fbb-4dd8-ac23-9f35041feb63,1,0,baa31006-e0d6-496e-a60e-27b3dfd19397,baa31006-e0d6-496e-a60e-27b3dfd19397,1,0,3007d8ff-3942-45ed-bac5-8a6c40ca060c,3007d8ff-3942-45ed-bac5-8a6c40ca060c,1,0,8bfe1474-fd12-4744-a9ab-3383bfe766b3,8bfe1474-fd12-4744-a9ab-3383bfe766b3,1,0,3af97375-f776-4129-9521-b8d65d795db6,3af97375-f776-4129-9521-b8d65d795db6,1,0,0e98801b-a45b-44cb-a341-7e43d723f6ed,0e98801b-a45b-44cb-a341-7e43d723f6ed,1,0,5b71cd3b-d5b8-4632-9678-0ab1e1d2ea91,5b71cd3b-d5b8-4632-9678-0ab1e1d2ea91,1,0,103ac72d-c386-40ea-89d4-35798d064f1a,103ac72d-c386-40ea-89d4-35798d064f1a,1,0,645ceb40-1e9f-4a67-aa7f-b9002fa066b3,645ceb40-1e9f-4a67-aa7f-b9002fa066b3,1,0,d1fe15e9-8e5c-4819-85cd-24ab31409437,d1fe15e9-8e5c-4819-85cd-24ab31409437,1,0,c8c5bfe9-ead5-4e79-9fd5-60ad275faa1e,c8c5bfe9-ead5-4e79-9fd5-60ad275faa1e,1,0,8f9826b6-890e-4ba3-a1f2-bc9ebb3238dd,8f9826b6-890e-4ba3-a1f2-bc9ebb3238dd,1,0,74f68bda-17b1-4b3c-aa64-b1014300f9b5,74f68bda-17b1-4b3c-aa64-b1014300f9b5,1,0,90a195b0-7f64-4ccb-986e-8c8c2cf12ccd,90a195b0-7f64-4ccb-986e-8c8c2cf12ccd,1,0,9f9d1f8c-7ff9-420f-a426-48f33493d9f2,9f9d1f8c-7ff9-420f-a426-48f33493d9f2,1,0,ab7bc0bc-b4b8-4a4a-aecc-1cbe14fd4975,ab7bc0bc-b4b8-4a4a-aecc-1cbe14fd4975,1,0,9f8d9594-674f-49ef-9fb8-bb64d5c40a37,9f8d9594-674f-49ef-9fb8-bb64d5c40a37,1,0,47ee7d38-9fa9-458d-abee-e11270f79494,47ee7d38-9fa9-458d-abee-e11270f79494,1,0,bb6b83ff-81f4-4c39-ad8e-8cda9ccd9cb9,bb6b83ff-81f4-4c39-ad8e-8cda9ccd9cb9,1,0,076daecf-8fcb-496b-9f13-c4faa3a8a722,076daecf-8fcb-496b-9f13-c4faa3a8a722,1,0,f1a8357b-7083-42b3-ab5d-36223a3dd2a4,f1a8357b-7083-42b3-ab5d-36223a3dd2a4,1,0,296d7725-bdd3-4210-9db9-31de5711ea9b,296d7725-bdd3-4210-9db9-31de5711ea9b,1,0,6ecc5bc2-20b3-46f3-8019-ae1e1f3de319,6ecc5bc2-20b3-46f3-8019-ae1e1f3de319,1,0,1d05f89a-23dd-4d30-8786-abe8a9a39a40,1d05f89a-23dd-4d30-8786-abe8a9a39a40,1,0,245c2c6c-7b7f-4381-9304-1d7287a215fa,245c2c6c-7b7f-4381-9304-1d7287a215fa,1,0,fd17bbe4-34d9-4832-8eea-8eeb82194e4c,fd17bbe4-34d9-4832-8eea-8eeb82194e4c,1,0,d4c72d7f-7e1f-473c-9a2b-fa675fc78731,d4c72d7f-7e1f-473c-9a2b-fa675fc78731,1,0,8bb5be12-98df-4a38-bffe-432fb13d8101,8bb5be12-98df-4a38-bffe-432fb13d8101,1,0,94209023-ce88-401c-9aff-526fb7e43709,94209023-ce88-401c-9aff-526fb7e43709,1,0,22b99094-b52a-4244-ae91-53848d82560b,22b99094-b52a-4244-ae91-53848d82560b,1,0,22c9e2fa-c1f0-41ec-b6f2-9d7357dd3479,22c9e2fa-c1f0-41ec-b6f2-9d7357dd3479,1,0,b0002134-d5c9-4508-9f0e-97f92461b590,b0002134-d5c9-4508-9f0e-97f92461b590,1,0,1506ec71-cb38-4831-a29d-dac2c4deddda,1506ec71-cb38-4831-a29d-dac2c4deddda,1,0,e05fd82b-b77b-4b7f-b300-43653017f341,e05fd82b-b77b-4b7f-b300-43653017f341,1,0,d3b5e5ee-2317-43b4-b669-3af2ce635cf3,d3b5e5ee-2317-43b4-b669-3af2ce635cf3,1,0,f15a0526-c207-42fe-aed9-438ae0c4a4b8,f15a0526-c207-42fe-aed9-438ae0c4a4b8,1,0,9d444a41-7190-48fb-9a4a-08f8e7bc32a3,9d444a41-7190-48fb-9a4a-08f8e7bc32a3,1,0,8583cab0-0620-4346-96e0-bcac40981b8a,8583cab0-0620-4346-96e0-bcac40981b8a,1,0,e1dfba26-c682-42a2-8e15-fe6f535c9ce1,e1dfba26-c682-42a2-8e15-fe6f535c9ce1,1,0,095990b1-187b-400c-941a-275f272239ca,095990b1-187b-400c-941a-275f272239ca,1,0,ba108470-350d-40c3-bb44-9852c2aa8c97,ba108470-350d-40c3-bb44-9852c2aa8c97,1,0,a37c33fa-64b0-4a1b-846a-0a236bad44f8,a37c33fa-64b0-4a1b-846a-0a236bad44f8,1,0,d8481ce1-7f64-47b0-8fc0-6642ae93aca1,d8481ce1-7f64-47b0-8fc0-6642ae93aca1,1,0,a50f4324-da44-449b-b500-74228b2aa7e0,a50f4324-da44-449b-b500-74228b2aa7e0,1,0,04236716-9c36-4a1d-b4fb-4b8c65644ab4,04236716-9c36-4a1d-b4fb-4b8c65644ab4,1,0,97276702-6686-4ac4-8360-d85369a08b20,97276702-6686-4ac4-8360-d85369a08b20,1,0,e5450ee7-e891-4f58-9a01-d2d81d5ddd6d,e5450ee7-e891-4f58-9a01-d2d81d5ddd6d,1,0,068883fe-d7ae-40e7-ad82-864867916daa,068883fe-d7ae-40e7-ad82-864867916daa,1,0,c1b02568-2095-4f83-8543-2402f67dbe3d,c1b02568-2095-4f83-8543-2402f67dbe3d,1,0,8b749b7a-5e68-4523-adc2-8b3c5ce9701c,8b749b7a-5e68-4523-adc2-8b3c5ce9701c,1,0,bf3c7edc-0791-459e-a7ac-b7e8d7ed97fe,bf3c7edc-0791-459e-a7ac-b7e8d7ed97fe,1,0,7dc6d13e-4edf-4e6a-9ee9-4b32ad889ecf,7dc6d13e-4edf-4e6a-9ee9-4b32ad889ecf,1,0,aecbd726-6952-49e6-b544-4c5cc764c24c,aecbd726-6952-49e6-b544-4c5cc764c24c,1,0,d335cfbf-bc78-4274-a178-10f60372474a,d335cfbf-bc78-4274-a178-10f60372474a,1,0,0f4411b3-addf-4fcf-8da8-c5140dea356c,0f4411b3-addf-4fcf-8da8-c5140dea356c,1,0,c501f9ab-d01b-4137-8cd0-e66103117c84,c501f9ab-d01b-4137-8cd0-e66103117c84,1,0,8d5d4e0f-b7b5-4cdc-aedc-571517fa101f,8d5d4e0f-b7b5-4cdc-aedc-571517fa101f,1,0,66e65355-1424-4c74-801c-faf5357257aa,66e65355-1424-4c74-801c-faf5357257aa,1,0,0a93187b-7ae4-4985-8089-3099dfec2b48,0a93187b-7ae4-4985-8089-3099dfec2b48,1,0,044458f3-ed9b-4afb-ae73-8f9162c032bf,044458f3-ed9b-4afb-ae73-8f9162c032bf,1,0,578f618e-5f4a-4e86-959d-39b59e973936,578f618e-5f4a-4e86-959d-39b59e973936,1,0,f74ede2e-2d28-4224-ba44-773eda7760a4,f74ede2e-2d28-4224-ba44-773eda7760a4,1,0,217df06a-1bdf-4394-b617-ed756ff17bc6,217df06a-1bdf-4394-b617-ed756ff17bc6,1,0,a1572e97-a487-497a-9062-49315e237e0f,a1572e97-a487-497a-9062-49315e237e0f,1,0,969cdcb8-0f2a-427f-93a0-e7ae38f465e8,969cdcb8-0f2a-427f-93a0-e7ae38f465e8,1,0,3c5d87a0-cfce-464a-b946-64c5a589a376,3c5d87a0-cfce-464a-b946-64c5a589a376,1,0,2d22c67d-4795-4a6b-bc81-a3ed1eb28367,2d22c67d-4795-4a6b-bc81-a3ed1eb28367,1,0,763de8d1-7f53-41b6-8d97-7da724e9f763,763de8d1-7f53-41b6-8d97-7da724e9f763,1,0,75592ed4-2aab-4dfc-ae7b-d93e2a98370f,75592ed4-2aab-4dfc-ae7b-d93e2a98370f,1,0,4ad59c75-cca4-4968-82e6-babd72d8b318,4ad59c75-cca4-4968-82e6-babd72d8b318,1,0,c248de15-63a2-48ec-8695-7a5213d4fc9b,c248de15-63a2-48ec-8695-7a5213d4fc9b,1,0,272ff0f9-7266-4c22-be12-fe62682b56a5,272ff0f9-7266-4c22-be12-fe62682b56a5,1,0,9f141dd5-d866-4c25-b58a-a7766a08b4e7,9f141dd5-d866-4c25-b58a-a7766a08b4e7,1,0,0570d846-889d-4cfc-98fb-a1ad0181597f,0570d846-889d-4cfc-98fb-a1ad0181597f,1,0,19e17c58-953f-4917-8b6a-c88808fcca36,19e17c58-953f-4917-8b6a-c88808fcca36,1,0,4804316d-3765-4a83-8438-10e8e82656db,4804316d-3765-4a83-8438-10e8e82656db,1,0,59458556-e343-4215-8e6c-69f924ec4183,59458556-e343-4215-8e6c-69f924ec4183,1,0,dd553dca-7eba-41bf-8939-2c61e170ff65,dd553dca-7eba-41bf-8939-2c61e170ff65,1,0,b4ecf3dc-a2aa-406e-a593-1700ea8746bc,b4ecf3dc-a2aa-406e-a593-1700ea8746bc,1,0,933d7ce7-ea82-4b26-8d1b-dc92cb5ac92d,933d7ce7-ea82-4b26-8d1b-dc92cb5ac92d,1,0,8099e978-28cc-4ade-ac5a-3785f3a45f70,8099e978-28cc-4ade-ac5a-3785f3a45f70,1,0,11eff613-8077-41fa-8cb8-5e8dc27d0e4f,11eff613-8077-41fa-8cb8-5e8dc27d0e4f,1,0,fe023ca5-f11a-4b98-99c1-363508e4ea4a,fe023ca5-f11a-4b98-99c1-363508e4ea4a,1,0,6f8d515e-13d9-45f8-9793-3757f5b85f81,6f8d515e-13d9-45f8-9793-3757f5b85f81,1,0,25ec541c-c437-4318-b2a8-5146df6ae080,25ec541c-c437-4318-b2a8-5146df6ae080,1,0,148754ed-3063-40a7-a3c3-8ad105552370,148754ed-3063-40a7-a3c3-8ad105552370,1,0,ab3f0862-c355-4fd7-a2a7-4eb8278de510,ab3f0862-c355-4fd7-a2a7-4eb8278de510,1,0,85bbfe20-a6a4-49ca-8f20-342f4cbe8258,85bbfe20-a6a4-49ca-8f20-342f4cbe8258,1,0,c12c3f3b-3a96-4e70-b131-8d7bd765095f,c12c3f3b-3a96-4e70-b131-8d7bd765095f,1,0,70ee4b32-80d1-4b79-a322-0433f1b8c7f1,70ee4b32-80d1-4b79-a322-0433f1b8c7f1,1,0,c563588c-346e-499e-ae33-9ff3cb62e658,c563588c-346e-499e-ae33-9ff3cb62e658,1,0,40dbc001-97b6-4188-8de9-3adac670bac4,40dbc001-97b6-4188-8de9-3adac670bac4,1,0,58589e42-9ff2-4ad4-bd98-a75ab6873625,58589e42-9ff2-4ad4-bd98-a75ab6873625,1,0,92255ded-6c44-43be-b0b1-fd03c2b78c8b,92255ded-6c44-43be-b0b1-fd03c2b78c8b,1,0,dfe6da42-f024-45c5-beea-ceccaf3a5faa,dfe6da42-f024-45c5-beea-ceccaf3a5faa,1,0,08f3e8f1-284c-4059-864a-42499d48596c,08f3e8f1-284c-4059-864a-42499d48596c,1,0,3d715c1b-9a5e-408d-98d6-5345d274144b,3d715c1b-9a5e-408d-98d6-5345d274144b,1,0,3f88bc69-e140-48b6-a2f9-24f6a391bff2,3f88bc69-e140-48b6-a2f9-24f6a391bff2,1,0,65eb5361-074c-451d-a5d8-d16b6ecccf82,65eb5361-074c-451d-a5d8-d16b6ecccf82,1,0,f7c8cab8-c634-4cf3-9183-c15c915231f8,f7c8cab8-c634-4cf3-9183-c15c915231f8,1,0,563a33a6-9eff-4ff1-9eba-dafc235d2ede,563a33a6-9eff-4ff1-9eba-dafc235d2ede,1,0,fbc21f7d-c272-41ea-b048-c5af294ab5ed,fbc21f7d-c272-41ea-b048-c5af294ab5ed,1,0,088c38fa-1c8f-42e7-aa72-5f5dd8cfc1c6,088c38fa-1c8f-42e7-aa72-5f5dd8cfc1c6,1,0,370f97ee-9aed-4a0a-aefc-647d973e6741,370f97ee-9aed-4a0a-aefc-647d973e6741,1,0,c586d28e-a3ec-4201-8ba0-d453bb7c5293,c586d28e-a3ec-4201-8ba0-d453bb7c5293,1,0,d84f12b0-6e01-4646-9abd-51578716433d,d84f12b0-6e01-4646-9abd-51578716433d,1,0,a4458c18-72eb-4fc0-8dc6-fccab93b0898,a4458c18-72eb-4fc0-8dc6-fccab93b0898,1,0,3a0ceb25-60f5-4fec-ab2e-e667939bfe21,3a0ceb25-60f5-4fec-ab2e-e667939bfe21,1,0,27db4549-df2f-4856-b07f-3c9399cdee9c,27db4549-df2f-4856-b07f-3c9399cdee9c,1,0,f667d49a-8077-450f-9442-2ea4fee7b62d,f667d49a-8077-450f-9442-2ea4fee7b62d,1,0,782b1285-9618-4ec9-b817-ce93e2d24d4d,782b1285-9618-4ec9-b817-ce93e2d24d4d,1,0,dd3e202f-6225-4061-a6ab-f29cd314ab08,dd3e202f-6225-4061-a6ab-f29cd314ab08,1,0,483b7600-e46f-4739-94c8-8637c62750a0,483b7600-e46f-4739-94c8-8637c62750a0,1,0,bdcf5f7a-2888-4143-b46d-1bf0dcc16872,bdcf5f7a-2888-4143-b46d-1bf0dcc16872,1,0,bce8a955-0a0e-4771-9763-4f5d319d9848,bce8a955-0a0e-4771-9763-4f5d319d9848,1,0,090c475c-fb33-46a9-a0ed-fb9d7def2ca5,090c475c-fb33-46a9-a0ed-fb9d7def2ca5,1,0,d10c3389-5bf0-4c73-ab92-786eb19d1676,d10c3389-5bf0-4c73-ab92-786eb19d1676,1,0,c824c20d-7503-4a77-81b8-2a68b20eab68,c824c20d-7503-4a77-81b8-2a68b20eab68,1,0,a0db92c6-b39e-41ab-82e3-161e32f67bda,a0db92c6-b39e-41ab-82e3-161e32f67bda,1,0,88f91187-65d3-4684-992d-20ca29d3755a,88f91187-65d3-4684-992d-20ca29d3755a,1,0,da725701-d4fb-40a4-a63b-feaa8559d8cf,da725701-d4fb-40a4-a63b-feaa8559d8cf,1,0,0a44cfc8-0b55-4aed-990f-e97831494a3c,0a44cfc8-0b55-4aed-990f-e97831494a3c,1,0,c9adbe7c-ca6e-4048-a498-9b48f75d9b45,c9adbe7c-ca6e-4048-a498-9b48f75d9b45,1,0,c7cb80d6-13d9-49af-acdd-6d10dffd1e17,c7cb80d6-13d9-49af-acdd-6d10dffd1e17,1,0,9a3f04d7-b956-4e87-ac28-63f7afba1771,9a3f04d7-b956-4e87-ac28-63f7afba1771,1,0,41b23a18-0c4e-455f-b249-2f2eba8119db,41b23a18-0c4e-455f-b249-2f2eba8119db,1,0,ff697cb8-ab88-4634-94e3-c06a401f71ff,ff697cb8-ab88-4634-94e3-c06a401f71ff,1,0,cf98131d-2b1a-4a07-a8dd-72af01934a8b,cf98131d-2b1a-4a07-a8dd-72af01934a8b,1,0,bef1eead-3f8b-48b7-99f3-46ba332fb60d,bef1eead-3f8b-48b7-99f3-46ba332fb60d,1,0,c1b3d4c8-8c53-4452-bec5-9742bb827d8f,c1b3d4c8-8c53-4452-bec5-9742bb827d8f,1,0,b6e1d584-6817-4f06-b5b2-57037a23ce6f,b6e1d584-6817-4f06-b5b2-57037a23ce6f,1,0,1b5d2ded-3f58-4b3e-8678-48191897e408,1b5d2ded-3f58-4b3e-8678-48191897e408,1,0,62fd5457-0cfd-4273-8965-4b5bf9170209,62fd5457-0cfd-4273-8965-4b5bf9170209,1,0,88701798-0c0e-4d33-a68b-3eddfc25d835,88701798-0c0e-4d33-a68b-3eddfc25d835,1,0,c0d704b5-32de-4bb8-9525-f7d1da828ae5,c0d704b5-32de-4bb8-9525-f7d1da828ae5,1,0,b5b5ee06-4de8-4776-98f0-3e8e1b31985a,b5b5ee06-4de8-4776-98f0-3e8e1b31985a,1,0,2f999502-68e5-4823-8f94-aec98b1a1b1d,2f999502-68e5-4823-8f94-aec98b1a1b1d,1,0,2d064409-7f2a-4d2e-9155-6b34e4373e89,2d064409-7f2a-4d2e-9155-6b34e4373e89,1,0,fc51a562-01bb-47c3-bac5-89f78f64a5f3,fc51a562-01bb-47c3-bac5-89f78f64a5f3,1,0,8a33a6cd-f56d-405b-9515-9fc04d30e27a,8a33a6cd-f56d-405b-9515-9fc04d30e27a,1,0,9b199470-723d-4b72-9fdc-2bed2b7bc483,9b199470-723d-4b72-9fdc-2bed2b7bc483,1,0,5bb9aff1-f4ee-4c02-8e3f-f070bfbb8339,5bb9aff1-f4ee-4c02-8e3f-f070bfbb8339,1,0,6a06f9ee-8832-4e9e-aeba-b4cb9573c048,6a06f9ee-8832-4e9e-aeba-b4cb9573c048,1,0,38fa770e-f38d-4fdf-bb7a-56cfe76a8ab2,38fa770e-f38d-4fdf-bb7a-56cfe76a8ab2,1,0,afc4ce2a-60b6-48d0-ada0-2f651d050888,afc4ce2a-60b6-48d0-ada0-2f651d050888,1,0,5f289266-fc3c-4345-b7ab-cf863e2a6ccd,5f289266-fc3c-4345-b7ab-cf863e2a6ccd,1,0,5932f0d8-9012-4382-8c72-b1a5f4fbc937,5932f0d8-9012-4382-8c72-b1a5f4fbc937,1,0,66f1ff23-8fec-4be4-914c-43b7dee1c2a2,66f1ff23-8fec-4be4-914c-43b7dee1c2a2,1,0,56c3471e-459a-46ba-96ea-9f872b3ad54a,56c3471e-459a-46ba-96ea-9f872b3ad54a,1,0,2113195b-1553-4137-9e45-2cc62c72ee47,2113195b-1553-4137-9e45-2cc62c72ee47,1,0,1250f5b1-c766-434c-8d28-69b74a536294,1250f5b1-c766-434c-8d28-69b74a536294,1,0,80bc9b8b-7b17-4dbb-bca6-8465d6b01e0b,80bc9b8b-7b17-4dbb-bca6-8465d6b01e0b,1,0,6327e23d-6070-4b64-81c6-0d1a33eaae93,6327e23d-6070-4b64-81c6-0d1a33eaae93,1,0,4d086a1f-34e0-43f9-9401-d82e55746a9d,4d086a1f-34e0-43f9-9401-d82e55746a9d,1,0,5a4c543a-27d5-423b-a4d0-3952ea2817af,5a4c543a-27d5-423b-a4d0-3952ea2817af,1,0,6cc8da97-8752-4c6b-88ef-f7e8ff5dd693,6cc8da97-8752-4c6b-88ef-f7e8ff5dd693,1,0,8683dfa2-0ad9-4345-85e8-a6d2e40881e5,8683dfa2-0ad9-4345-85e8-a6d2e40881e5,1,0,e70ec2f5-5723-4fb0-9b81-c0979943a46a,e70ec2f5-5723-4fb0-9b81-c0979943a46a,1,0,eb125af7-4e19-4235-8d03-361b60a8f68a,eb125af7-4e19-4235-8d03-361b60a8f68a,1,0,bcd1077a-2d19-4bc1-bded-a85818765ac1,bcd1077a-2d19-4bc1-bded-a85818765ac1,1,0,b79ce000-28f7-4630-a5a3-cecb9ef8a0a1,b79ce000-28f7-4630-a5a3-cecb9ef8a0a1,1,0,3ff0b4e6-6afa-4aa8-a20e-84a9d2d74f86,3ff0b4e6-6afa-4aa8-a20e-84a9d2d74f86,1,0,eb747bc2-f81f-4ec3-b216-2457a87683ae,eb747bc2-f81f-4ec3-b216-2457a87683ae,1,0,0ad77f2c-24db-4fda-a79f-984c0c8beac0,0ad77f2c-24db-4fda-a79f-984c0c8beac0,1,0,cfb3ea4b-a092-4c5f-aef0-a83ff8829d24,cfb3ea4b-a092-4c5f-aef0-a83ff8829d24,1,0,02bc23cf-c600-4470-bb84-59cdac35eea9,02bc23cf-c600-4470-bb84-59cdac35eea9,1,0,b7753aea-3798-4be9-b9ce-e4145fbea58a,b7753aea-3798-4be9-b9ce-e4145fbea58a,1,0,ce3d12b8-da77-4ac5-a7bf-a02809ed3f1e,ce3d12b8-da77-4ac5-a7bf-a02809ed3f1e,1,0,cf3819dd-6564-47cd-9b22-790433ca9607,cf3819dd-6564-47cd-9b22-790433ca9607,1,0,231f7349-0e98-497a-9df3-8123a5ea20f0,231f7349-0e98-497a-9df3-8123a5ea20f0,1,0,0c7790f8-db18-4d1d-aa34-d0c7097d0576,0c7790f8-db18-4d1d-aa34-d0c7097d0576,1,0,926b936a-4147-40ef-92c7-008713d5a8b4,926b936a-4147-40ef-92c7-008713d5a8b4,1,0,3446ba39-fbd6-462f-af51-add3173ce1fc,3446ba39-fbd6-462f-af51-add3173ce1fc,1,0,7510d830-cf29-408c-9f2a-77e30382beeb,7510d830-cf29-408c-9f2a-77e30382beeb,1,0,133d9c01-751e-47a1-93a5-46cfa1b85a51,133d9c01-751e-47a1-93a5-46cfa1b85a51,1,0,42b81035-bc9b-4b8a-b1ee-55c24c6bb875,42b81035-bc9b-4b8a-b1ee-55c24c6bb875,1,0,c4e58e2b-2a73-44f2-8a4b-dded01944c35,c4e58e2b-2a73-44f2-8a4b-dded01944c35,1,0,ada738c2-8f68-4f25-afc2-ad88164f5fea,ada738c2-8f68-4f25-afc2-ad88164f5fea,1,0,683cc434-af64-4afb-835b-c20e7e17c32e,683cc434-af64-4afb-835b-c20e7e17c32e,1,0,19aad3e9-704b-4057-8a1d-e6131af2da2d,19aad3e9-704b-4057-8a1d-e6131af2da2d,1,0,6522829d-bb7f-4bac-9c66-21d936d9d3c6,6522829d-bb7f-4bac-9c66-21d936d9d3c6,1,0,aa4c2d2c-b1f8-4525-bdef-24b0dce4724a,aa4c2d2c-b1f8-4525-bdef-24b0dce4724a,1,0,f7c432c0-ee57-40f3-98c2-b94401042395,f7c432c0-ee57-40f3-98c2-b94401042395,1,0,b7dd0b15-bbf0-4959-8d63-fb00c2519d3d,b7dd0b15-bbf0-4959-8d63-fb00c2519d3d,1,0,d58fea2a-34b7-4404-9939-faf5bf1f19c6,d58fea2a-34b7-4404-9939-faf5bf1f19c6,1,0,b458ed6f-e0d2-4830-8005-16f08612c76a,b458ed6f-e0d2-4830-8005-16f08612c76a,1,0,988787d0-4704-4aa7-b02f-96492784d667,988787d0-4704-4aa7-b02f-96492784d667,1,0,66d837ed-be23-4e0a-8cbc-c918f234998d,66d837ed-be23-4e0a-8cbc-c918f234998d,1,0,010bcfe3-a299-4333-8faa-96b08356a097,010bcfe3-a299-4333-8faa-96b08356a097,1,0,4735b8d0-5b06-4640-9d68-380ba4165c01,4735b8d0-5b06-4640-9d68-380ba4165c01,1,0,adcaecde-1977-4c6d-a204-12df7d9915e2,adcaecde-1977-4c6d-a204-12df7d9915e2,1,0,348376e0-6e02-4360-95ea-f23086cabd55,348376e0-6e02-4360-95ea-f23086cabd55,1,0,d7cdbc04-3eaa-45b6-b71b-0340bf029752,d7cdbc04-3eaa-45b6-b71b-0340bf029752,1,0,f6d562ac-6bc8-4e82-9ac0-b6fc4ed41677,f6d562ac-6bc8-4e82-9ac0-b6fc4ed41677,1,0,e954636b-2410-4602-8dfd-fde852998f8b,e954636b-2410-4602-8dfd-fde852998f8b,1,0,00f82519-e522-4cf2-92ab-19a13f38baa7,00f82519-e522-4cf2-92ab-19a13f38baa7,1,0,b59f1272-69ab-4d6a-8e4b-43bfe8231c8c,b59f1272-69ab-4d6a-8e4b-43bfe8231c8c,1,0,33df37df-43d0-40d7-95dd-23655b1fdf81,33df37df-43d0-40d7-95dd-23655b1fdf81,1,0,cef5c343-440f-475e-98f1-28da65eabcf3,cef5c343-440f-475e-98f1-28da65eabcf3,1,0,979378ce-8455-4761-ae83-10e747a6656d,979378ce-8455-4761-ae83-10e747a6656d,1,0,de3cb87d-d08f-4f45-aca5-c4c526772eeb,de3cb87d-d08f-4f45-aca5-c4c526772eeb,1,0,509770b5-ddaf-477b-a79c-cec8afbaf9bc,509770b5-ddaf-477b-a79c-cec8afbaf9bc,1,0,25d72d6e-1a64-4366-85af-5789ed7806d3,25d72d6e-1a64-4366-85af-5789ed7806d3,1,0,eedf57b6-8fd6-4e80-bc0c-1583196b34eb,eedf57b6-8fd6-4e80-bc0c-1583196b34eb,1,0,ec7cc726-82a7-455e-b302-0e024d60bbab,ec7cc726-82a7-455e-b302-0e024d60bbab,1,0,1bae5c60-1027-4ff7-a607-d57da0d6e4f7,1bae5c60-1027-4ff7-a607-d57da0d6e4f7,1,0,3d18a46c-1d64-4bec-9a22-07a736abbf8f,3d18a46c-1d64-4bec-9a22-07a736abbf8f,1,0,d5c64b8e-1184-4ec5-8f02-87e037df0034,d5c64b8e-1184-4ec5-8f02-87e037df0034,1,0,6b5fb7ab-d010-483b-939d-c9f9e2d8884f,6b5fb7ab-d010-483b-939d-c9f9e2d8884f,1,0,5b0f5e4e-ef26-415b-830a-6623688e8a78,5b0f5e4e-ef26-415b-830a-6623688e8a78,1,0,b33693ac-6bc1-47e1-81ab-a3278d3596a3,b33693ac-6bc1-47e1-81ab-a3278d3596a3,1,0,caebab45-2be3-4f5d-b06d-d91c5a4122a0,caebab45-2be3-4f5d-b06d-d91c5a4122a0,1,0,7a56e6ee-3518-491f-b5af-4f1aca2462c0,7a56e6ee-3518-491f-b5af-4f1aca2462c0,1,0,61d03f9f-834b-4077-b5c7-0de85ef007d3,61d03f9f-834b-4077-b5c7-0de85ef007d3,1,0,1683afaf-db32-4267-b1d1-959836c50fb5,1683afaf-db32-4267-b1d1-959836c50fb5,1,0,1e50e4de-f091-4ccc-ba2d-8a526c20351e,1e50e4de-f091-4ccc-ba2d-8a526c20351e,1,0,7671eebd-cdf4-43c6-8d0d-2dff2f8ce975,7671eebd-cdf4-43c6-8d0d-2dff2f8ce975,1,0,83342c37-30b6-4f39-a2df-7aab425eb3bf,83342c37-30b6-4f39-a2df-7aab425eb3bf,1,0,896d8858-5574-4e36-abc0-92a2f0b6e905,896d8858-5574-4e36-abc0-92a2f0b6e905,1,0,8767bf87-b364-4e16-8371-40ae96bff7c0,8767bf87-b364-4e16-8371-40ae96bff7c0,1,0,65ba2d12-ce10-4f27-93ba-0668592edfce,65ba2d12-ce10-4f27-93ba-0668592edfce,1,0,45dba1f4-f080-4b99-abe4-63125f84f580,45dba1f4-f080-4b99-abe4-63125f84f580,1,0,24d0e61f-c9af-45f0-b6dd-00d1fefa1720,24d0e61f-c9af-45f0-b6dd-00d1fefa1720,1,0,75088623-2b34-499a-85c9-0c3f78448cf3,75088623-2b34-499a-85c9-0c3f78448cf3,1,0,f151768d-f840-4116-8fb5-bbcc0b5dd2bc,f151768d-f840-4116-8fb5-bbcc0b5dd2bc,1,0,dd6581f7-82fc-469c-ae2f-d270d810e843,dd6581f7-82fc-469c-ae2f-d270d810e843,1,0,ca0258bd-7408-45a6-8c61-6097090dad4a,ca0258bd-7408-45a6-8c61-6097090dad4a,1,0,5080a8ca-a75e-4f4f-885b-62f64434f0f2,5080a8ca-a75e-4f4f-885b-62f64434f0f2,1,0,3adbff51-6a82-40e7-9585-a030b06d0632,3adbff51-6a82-40e7-9585-a030b06d0632,1,0,c27036c4-7077-4464-b24a-46b37db4bfcf,c27036c4-7077-4464-b24a-46b37db4bfcf,1,0,99ce0c09-eae0-430b-9a20-46d96503876b,99ce0c09-eae0-430b-9a20-46d96503876b,1,0,128e9f84-5f92-4ed6-afb9-86b4b244ae58,128e9f84-5f92-4ed6-afb9-86b4b244ae58,1,0,5bff11e0-07d0-43eb-b02d-5dc6f2c9bab1,5bff11e0-07d0-43eb-b02d-5dc6f2c9bab1,1,0,13b4853f-d83d-4e30-80a4-704b740cf76f,13b4853f-d83d-4e30-80a4-704b740cf76f,1,0,32e9be21-ef2f-46fd-96ff-2ba143a8c1d9,32e9be21-ef2f-46fd-96ff-2ba143a8c1d9,1,0,9c81736c-25ce-42eb-9e7a-1fc014cbbc7d,9c81736c-25ce-42eb-9e7a-1fc014cbbc7d,1,0,655ac12f-a0e4-46fb-b11a-eaba635edfae,655ac12f-a0e4-46fb-b11a-eaba635edfae,1,0,7bccc0c6-bc80-4672-8190-4fc94cea4249,7bccc0c6-bc80-4672-8190-4fc94cea4249,1,0,82ebe1f1-2c36-4152-bc02-b8085ad614e3,82ebe1f1-2c36-4152-bc02-b8085ad614e3,1,0,68259658-c149-4a1b-b1d5-b15b232ee334,68259658-c149-4a1b-b1d5-b15b232ee334,1,0,301a9f28-2cd9-4364-9b57-a22b9e6553fa,301a9f28-2cd9-4364-9b57-a22b9e6553fa,1,0,4948d3d3-9267-4f9c-8260-5ebb63ce281f,4948d3d3-9267-4f9c-8260-5ebb63ce281f,1,0,051bc689-9357-463a-93db-55994af23a88,051bc689-9357-463a-93db-55994af23a88,1,0,2d4a8fe5-3371-42f9-8052-ec78d4df0da1,2d4a8fe5-3371-42f9-8052-ec78d4df0da1,1,0,4be19ad6-691e-4224-86ec-bc4d76a15525,4be19ad6-691e-4224-86ec-bc4d76a15525,1,0,cf9ebddd-d421-475f-8d57-6c45d817c4ec,cf9ebddd-d421-475f-8d57-6c45d817c4ec,1,0,6718e0bf-8a9d-4eab-88fd-9cd5f2bc9e58,6718e0bf-8a9d-4eab-88fd-9cd5f2bc9e58,1,0,2811d95d-6ce9-4066-99cb-ea6894b18497,2811d95d-6ce9-4066-99cb-ea6894b18497,1,0,2fcee659-7bd7-4181-9991-ce4723d485cd,2fcee659-7bd7-4181-9991-ce4723d485cd,1,0,79dc0e69-6a17-428f-b36f-9056d0f6864c,79dc0e69-6a17-428f-b36f-9056d0f6864c,1,0,77a94ffd-4847-4180-a587-31dd3c95f62a,77a94ffd-4847-4180-a587-31dd3c95f62a,1,0,de8bb46d-127e-40e6-af46-a7385a37819b,de8bb46d-127e-40e6-af46-a7385a37819b,1,0,95b5ac72-941c-4f6b-aa2d-ce2a1b616d8d,95b5ac72-941c-4f6b-aa2d-ce2a1b616d8d,1,0,ea557343-ae0f-4a2c-a298-573c952a7d63,ea557343-ae0f-4a2c-a298-573c952a7d63,1,0,11d02ccf-173f-447a-aae1-79f373e46e53,11d02ccf-173f-447a-aae1-79f373e46e53,1,0,a16ebbff-31e2-4c6f-99f5-3bd733c18117,a16ebbff-31e2-4c6f-99f5-3bd733c18117,1,0,d5296815-e4e5-4e79-af97-c4f5afb061cb,d5296815-e4e5-4e79-af97-c4f5afb061cb,1,0,9832d04b-cc86-4399-9129-c0c8f4745973,9832d04b-cc86-4399-9129-c0c8f4745973,1,0,ec745935-1cc7-491d-8b60-e42b3f8c618d,ec745935-1cc7-491d-8b60-e42b3f8c618d,1,0,c642227b-d804-4047-a90b-40159660ba4a,c642227b-d804-4047-a90b-40159660ba4a,1,0,99b1ad67-29aa-4550-b70b-685cd44c27d4,99b1ad67-29aa-4550-b70b-685cd44c27d4,1,0,c54578df-a852-445a-94a6-a6654bb1e3a0,c54578df-a852-445a-94a6-a6654bb1e3a0,1,0,18cbf6dc-ec5c-4181-855a-fe779e3f1ad8,18cbf6dc-ec5c-4181-855a-fe779e3f1ad8,1,0,177c8cf2-27ba-4866-8e0f-cdbb611c84ac,177c8cf2-27ba-4866-8e0f-cdbb611c84ac,1,0,f014ebeb-5f33-430f-ae80-96ba7732d931,f014ebeb-5f33-430f-ae80-96ba7732d931,1,0,7782051c-4bc2-4fc2-bfa5-256bd2911abf,7782051c-4bc2-4fc2-bfa5-256bd2911abf,1,0,2a805bb1-54b3-4b0e-ae7f-ad3f9f18ee24,2a805bb1-54b3-4b0e-ae7f-ad3f9f18ee24,1,0,56fd938d-e0df-4e16-a4ad-7eb6d6cc538f,56fd938d-e0df-4e16-a4ad-7eb6d6cc538f,1,0,7c49fa86-1c65-4959-9331-c0f4852934b3,7c49fa86-1c65-4959-9331-c0f4852934b3,1,0,f744e94b-4359-4516-b682-f15775066e7c,f744e94b-4359-4516-b682-f15775066e7c,1,0,ad37361d-a380-42bd-8cae-b80164415edc,ad37361d-a380-42bd-8cae-b80164415edc,1,0,700cedcb-7625-4ed2-93fb-11ae54317367,700cedcb-7625-4ed2-93fb-11ae54317367,1,0,6fd83c31-c8eb-4f01-ba99-17d5690e78fb,6fd83c31-c8eb-4f01-ba99-17d5690e78fb,1,0,19d511f0-7fad-4f81-be73-969cc192d28d,19d511f0-7fad-4f81-be73-969cc192d28d,1,0,55757755-bc7f-42fb-b55a-691137c5c8da,55757755-bc7f-42fb-b55a-691137c5c8da,1,0,f8c04e0d-a578-4350-aebc-fae5a09db697,f8c04e0d-a578-4350-aebc-fae5a09db697,1,0,ab50f182-0fbd-4e05-8580-c59779a9321e,ab50f182-0fbd-4e05-8580-c59779a9321e,1,0,6af7c3b9-9062-48b3-87b0-41558f7f11e0,6af7c3b9-9062-48b3-87b0-41558f7f11e0,1,0,6f85e902-895a-4636-a18f-ea1f7c68f544,6f85e902-895a-4636-a18f-ea1f7c68f544,1,0,ea4cf11a-edfd-439f-bd3d-a1ac088580ea,ea4cf11a-edfd-439f-bd3d-a1ac088580ea,1,0,24116097-a6ec-46d0-936e-74fcb873bd4f,24116097-a6ec-46d0-936e-74fcb873bd4f,1,0,ae7c5ade-a707-4425-864f-06cc2b2a208e,ae7c5ade-a707-4425-864f-06cc2b2a208e,1,0,ec8ee963-dbbe-497a-bc01-6a2c6a5a99cb,ec8ee963-dbbe-497a-bc01-6a2c6a5a99cb,1,0,8573cd5f-0574-4109-b841-567dfd578931,8573cd5f-0574-4109-b841-567dfd578931,1,0,67d95ce8-17af-4b2f-8dfd-2fc902aa9e1d,67d95ce8-17af-4b2f-8dfd-2fc902aa9e1d,1,0,2f60ba06-8830-472d-82e4-9ba1f00c311d,2f60ba06-8830-472d-82e4-9ba1f00c311d,1,0,42872a0b-999d-4a38-a56e-e67e24c0874e,42872a0b-999d-4a38-a56e-e67e24c0874e,1,0,bf36279c-1a85-4c26-9505-a142cba581a0,bf36279c-1a85-4c26-9505-a142cba581a0,1,0,a39c719e-349a-46b7-ae4e-aeaa3e4bebe0,a39c719e-349a-46b7-ae4e-aeaa3e4bebe0,1,0,8e7f7a3e-efa9-4fa5-94c3-4cfce5c8f5ed,8e7f7a3e-efa9-4fa5-94c3-4cfce5c8f5ed,1,0,ec3cf7eb-d1c1-400e-b3f7-11cf304d8e44,ec3cf7eb-d1c1-400e-b3f7-11cf304d8e44,1,0,acea385d-9935-4365-813b-8a121f57cd52,acea385d-9935-4365-813b-8a121f57cd52,1,0,87606a5a-2682-4f1e-ae25-166be2357541,87606a5a-2682-4f1e-ae25-166be2357541,1,0,98652ae9-349d-48f2-8230-b8960e5a495f,98652ae9-349d-48f2-8230-b8960e5a495f,1,0,7691d0bf-e099-4d22-9813-50386f033c46,7691d0bf-e099-4d22-9813-50386f033c46,1,0,c4867f0d-aef9-467e-86e0-5534dc5fa6d7,c4867f0d-aef9-467e-86e0-5534dc5fa6d7,1,0,47c4de6c-9533-4342-8b80-6d31f106742f,47c4de6c-9533-4342-8b80-6d31f106742f,1,0,5fd3f2c8-52cf-411e-822b-a1d417f1c4eb,5fd3f2c8-52cf-411e-822b-a1d417f1c4eb,1,0,32064ccf-dfb1-4dd4-a51a-f505bc370513,32064ccf-dfb1-4dd4-a51a-f505bc370513,1,0,cfa4be49-1a56-4a07-9f00-ab258d7dec5b,cfa4be49-1a56-4a07-9f00-ab258d7dec5b,1,0,72f1df0f-1b00-4873-87ee-7173a266ba19,72f1df0f-1b00-4873-87ee-7173a266ba19,1,0,bb75cb5e-d007-4d1e-a6d4-6bda95c06397,bb75cb5e-d007-4d1e-a6d4-6bda95c06397,1,0,43c621c4-474e-4060-bc1f-3b1c8a59acbd,43c621c4-474e-4060-bc1f-3b1c8a59acbd,1,0,78187acb-b8c2-4fcf-b967-56da82d6b77c,78187acb-b8c2-4fcf-b967-56da82d6b77c,1,0,5f71053f-4f50-44c7-bba8-254861f045ca,5f71053f-4f50-44c7-bba8-254861f045ca,1,0,88d28c9d-48af-46ff-9265-af46d10fd0aa,88d28c9d-48af-46ff-9265-af46d10fd0aa,1,0,63cb3bbe-5271-45a6-a3c0-c8960c707153,63cb3bbe-5271-45a6-a3c0-c8960c707153,1,0,12f96b1b-fc85-4638-9f70-a2e8196587a1,12f96b1b-fc85-4638-9f70-a2e8196587a1,1,0,975bcc47-f4c2-440e-8c3f-4fa42094405c,975bcc47-f4c2-440e-8c3f-4fa42094405c,1,0,1f260296-36b8-4c74-a1e7-5a1d7a23c0bd,1f260296-36b8-4c74-a1e7-5a1d7a23c0bd,1,0,f353fc01-89a8-495b-8c65-6e1719a172a5,f353fc01-89a8-495b-8c65-6e1719a172a5,1,0,4800d51e-8229-4384-ab8d-d1d36cb713f6,4800d51e-8229-4384-ab8d-d1d36cb713f6,1,0,7a59debd-f48b-4f3a-a5e4-05bd7a6e4306,7a59debd-f48b-4f3a-a5e4-05bd7a6e4306,1,0,5353f9f9-abce-4f1b-8ba4-6f185b113b24,5353f9f9-abce-4f1b-8ba4-6f185b113b24,1,0,f68c3405-4ac5-48ab-837d-68e79669be1b,f68c3405-4ac5-48ab-837d-68e79669be1b,1,0,a9b7aa5e-a241-460e-a9dd-981031564377,a9b7aa5e-a241-460e-a9dd-981031564377,1,0,a9ad0892-ed63-4f39-9ba9-31523114365d,a9ad0892-ed63-4f39-9ba9-31523114365d,1,0,ce5abb2b-1586-4972-9a59-8812a0ebc905,ce5abb2b-1586-4972-9a59-8812a0ebc905,1,0,0892456e-4ebf-46ee-a864-3f100510311f,0892456e-4ebf-46ee-a864-3f100510311f,1,0,7ab652b3-635b-4415-97e8-bd0a4aec1c76,7ab652b3-635b-4415-97e8-bd0a4aec1c76,1,0,6cb9cce0-a65a-4280-bae8-69e73b5fd859,6cb9cce0-a65a-4280-bae8-69e73b5fd859,1,0,dedda468-b754-4cf9-bb16-c5d5b1a7d6b7,dedda468-b754-4cf9-bb16-c5d5b1a7d6b7,1,0,8c77d038-4581-4468-b17c-baf6a0d6a039,8c77d038-4581-4468-b17c-baf6a0d6a039,1,0,77ac6bb4-0f72-4d35-9181-4ba58d4606ac,77ac6bb4-0f72-4d35-9181-4ba58d4606ac,1,0,43b9ca4d-8d3f-4fc7-9eb8-84b357c438cb,43b9ca4d-8d3f-4fc7-9eb8-84b357c438cb,1,0,1e439352-5b22-4aed-9b4c-e1648b1f68cc,1e439352-5b22-4aed-9b4c-e1648b1f68cc,1,0,514c3fec-0331-49c6-a6e8-2d826179fe96,514c3fec-0331-49c6-a6e8-2d826179fe96,1,0,ce8e278f-a368-4286-b479-ebad3b23de9c,ce8e278f-a368-4286-b479-ebad3b23de9c,1,0,ff21a413-36bb-4119-8737-80e26c8c875e,ff21a413-36bb-4119-8737-80e26c8c875e,1,0,de94d05d-3ec7-4139-a70b-92d6771e7e72,de94d05d-3ec7-4139-a70b-92d6771e7e72,1,0,3c68204f-d996-4042-b7b8-b480c6d228bd,3c68204f-d996-4042-b7b8-b480c6d228bd,1,0,89054313-4bf5-4d53-bd16-538b910d9e8b,89054313-4bf5-4d53-bd16-538b910d9e8b,1,0,275e5141-5dfa-46ed-a4af-3cad593a0868,275e5141-5dfa-46ed-a4af-3cad593a0868,1,0,028223f2-1af3-444a-8292-8b2a8bd2484d,028223f2-1af3-444a-8292-8b2a8bd2484d,1,0,b8b8f4ae-9964-4176-bcf7-67c1cb51f849,b8b8f4ae-9964-4176-bcf7-67c1cb51f849,1,0,9b179083-eb74-41cd-be0e-5fc717d974a5,9b179083-eb74-41cd-be0e-5fc717d974a5,1,0,5b3b3f45-77f0-4a02-892b-71cdc06a7ecf,5b3b3f45-77f0-4a02-892b-71cdc06a7ecf,1,0,d57a517a-3a81-484d-9b58-f24b969487de,d57a517a-3a81-484d-9b58-f24b969487de,1,0,842d43cd-76fa-4574-9523-58302d789c18,842d43cd-76fa-4574-9523-58302d789c18,1,0,04cecd2d-5913-4c37-916c-9f9dc25c158b,04cecd2d-5913-4c37-916c-9f9dc25c158b,1,0,a1285b03-7c76-4b7d-b60c-fb481f33ded9,a1285b03-7c76-4b7d-b60c-fb481f33ded9,1,0,957a1333-6d31-41ca-9812-919726965044,957a1333-6d31-41ca-9812-919726965044,1,0,36f5ac04-52fb-4cba-a067-7eae0b778599,36f5ac04-52fb-4cba-a067-7eae0b778599,1,0,11c0bc9c-be98-40c6-92da-db68968835d0,11c0bc9c-be98-40c6-92da-db68968835d0,1,0,eccf4f97-a5b5-4587-b9e3-748aa6cad7e3,eccf4f97-a5b5-4587-b9e3-748aa6cad7e3,1,0,6c6fddd7-b1d5-4c6b-badf-54b6a1018dc8,6c6fddd7-b1d5-4c6b-badf-54b6a1018dc8,1,0,1cbca86a-54f4-4db9-b8d4-827acb0ea722,1cbca86a-54f4-4db9-b8d4-827acb0ea722,1,0,fbed8c4f-29ea-4314-81e9-07bc3091f23a,fbed8c4f-29ea-4314-81e9-07bc3091f23a,1,0,46406519-638d-4313-928e-0c4afea091bb,46406519-638d-4313-928e-0c4afea091bb,1,0,6142d817-b170-423a-aa1e-28fcba1f103e,6142d817-b170-423a-aa1e-28fcba1f103e,1,0,f9758cd7-487b-47c8-a372-58fe42a9ef54,f9758cd7-487b-47c8-a372-58fe42a9ef54,1,0,9648577f-e455-461a-ba41-3e3b9b2dc553,9648577f-e455-461a-ba41-3e3b9b2dc553,1,0,8379651d-3fb1-4853-ba75-2a49d04e2d16,8379651d-3fb1-4853-ba75-2a49d04e2d16,1,0,2c35db7c-40cf-4db0-83d9-3caf329adc78,2c35db7c-40cf-4db0-83d9-3caf329adc78,1,0,8fb745b8-5fed-4c1b-90e7-2fabb025b100,8fb745b8-5fed-4c1b-90e7-2fabb025b100,1,0,085b1f70-d560-4fd7-a36c-6d71c40f6870,085b1f70-d560-4fd7-a36c-6d71c40f6870,1,0,a4ed8b24-bd23-45a7-9f34-61b25b91d0c6,a4ed8b24-bd23-45a7-9f34-61b25b91d0c6,1,0,65efaa10-3239-4f0f-a08e-88c89d9d8d5a,65efaa10-3239-4f0f-a08e-88c89d9d8d5a,1,0,93aa5247-6823-4f70-9d47-e5a0f409828a,93aa5247-6823-4f70-9d47-e5a0f409828a,1,0,48659b94-ace8-45f4-a043-6b2731ec6925,48659b94-ace8-45f4-a043-6b2731ec6925,1,0,3a8e60f9-19cb-42a6-a448-ad211261d9b8,3a8e60f9-19cb-42a6-a448-ad211261d9b8,1,0,74320602-094a-4645-b2c9-3053377a3ac3,74320602-094a-4645-b2c9-3053377a3ac3,1,0,3aba26a3-76ee-46c0-9e11-6f64fc754a0d,3aba26a3-76ee-46c0-9e11-6f64fc754a0d,1,0,b066c732-9c5f-4504-894f-96d457b0768f,b066c732-9c5f-4504-894f-96d457b0768f,1,0,9366463d-aa8a-4e89-86d8-c7f746f9551b,9366463d-aa8a-4e89-86d8-c7f746f9551b,1,0,e25da569-d435-45b2-b4e8-fc76d7f1c8df,e25da569-d435-45b2-b4e8-fc76d7f1c8df,1,0,a51a7f57-9c52-4457-819c-13e1b6f886e1,a51a7f57-9c52-4457-819c-13e1b6f886e1,1,0,7d08daba-5e36-4ce3-8a70-17750959b89e,7d08daba-5e36-4ce3-8a70-17750959b89e,1,0,e2c2d915-ae50-4fa0-add3-26ad7dc75efb,e2c2d915-ae50-4fa0-add3-26ad7dc75efb,1,0,39344a8c-2662-48ff-937b-12951bb268fb,39344a8c-2662-48ff-937b-12951bb268fb,1,0,b577663f-ead2-4b18-a4f6-f7f303e89319,b577663f-ead2-4b18-a4f6-f7f303e89319,1,0,43dc335f-5503-47ab-9c6b-0b4c6ab13f57,43dc335f-5503-47ab-9c6b-0b4c6ab13f57,1,0,6cc0a1d7-01eb-4af6-b4ed-4002e2316080,6cc0a1d7-01eb-4af6-b4ed-4002e2316080,1,0,72663843-4010-42ed-989b-0b58bf9f7146,72663843-4010-42ed-989b-0b58bf9f7146,1,0,79da4490-f0b0-48b5-b435-3b2c9ffb0eb3,79da4490-f0b0-48b5-b435-3b2c9ffb0eb3,1,0,3adcceea-867e-4b88-a633-4f8d4ccb43c0,3adcceea-867e-4b88-a633-4f8d4ccb43c0,1,0,a132189c-6584-4bb1-9cfd-1415cd83228a,a132189c-6584-4bb1-9cfd-1415cd83228a,1,0,7ba50e13-0a78-4cca-821f-006b1c83b0b0,7ba50e13-0a78-4cca-821f-006b1c83b0b0,1,0,a3670f95-5abe-49ee-8ea5-d7e4438801ba,a3670f95-5abe-49ee-8ea5-d7e4438801ba,1,0,4443dea1-5143-4e76-97a7-c35dbe1665e4,4443dea1-5143-4e76-97a7-c35dbe1665e4,1,0,0d780521-0767-425a-b44d-315d2dc42d04,0d780521-0767-425a-b44d-315d2dc42d04,1,0,c5b1572d-28f5-42f3-b2e0-8b54f091642e,c5b1572d-28f5-42f3-b2e0-8b54f091642e,1,0,0986c1b6-b677-428d-b49f-a93e40e77171,0986c1b6-b677-428d-b49f-a93e40e77171,1,0,b9c41558-8fe7-45f6-bcb0-5ea3a35264cf,b9c41558-8fe7-45f6-bcb0-5ea3a35264cf,1,0,597c1f9b-3cbd-42bd-b819-f29b3a3f073a,597c1f9b-3cbd-42bd-b819-f29b3a3f073a,1,0,b6662b2e-7e93-4eaa-9e4b-b5647285932b,b6662b2e-7e93-4eaa-9e4b-b5647285932b,1,0,4a180f2c-dc54-4591-8f62-f236d1e07799,4a180f2c-dc54-4591-8f62-f236d1e07799,1,0,3f1578ba-3d55-4eff-bbdd-6329dd5060d5,3f1578ba-3d55-4eff-bbdd-6329dd5060d5,1,0,a9a51e79-4c79-4a43-931b-c0321c1cd65b,a9a51e79-4c79-4a43-931b-c0321c1cd65b,1,0,e8644d90-ec2f-4ac0-8fbd-a7aa95c9bcec,e8644d90-ec2f-4ac0-8fbd-a7aa95c9bcec,1,0,048a1d86-bcf5-47aa-a36c-eb20c3f9f7e5,048a1d86-bcf5-47aa-a36c-eb20c3f9f7e5,1,0,22f2696e-0ac1-4a74-bca9-987b267b2b59,22f2696e-0ac1-4a74-bca9-987b267b2b59,1,0,d705cacc-3485-46d7-9ff4-48c3c0757c81,d705cacc-3485-46d7-9ff4-48c3c0757c81,1,0,98f043ea-633c-4a03-a56f-efbc9e6ef288,98f043ea-633c-4a03-a56f-efbc9e6ef288,1,0,2033b92a-0750-478a-a12d-cf4f74d0a9da,2033b92a-0750-478a-a12d-cf4f74d0a9da,1,0,92fa2196-d8e5-45f9-9d2e-59d837b163ea,92fa2196-d8e5-45f9-9d2e-59d837b163ea,1,0,25dc2290-e283-4449-81c1-1ce15b58067f,25dc2290-e283-4449-81c1-1ce15b58067f,1,0,c534a865-a17f-41e7-88b9-c6af89c9d202,c534a865-a17f-41e7-88b9-c6af89c9d202,1,0,0214bfe6-fb98-4487-8d98-6b10d24a3c4d,0214bfe6-fb98-4487-8d98-6b10d24a3c4d,1,0,0127937c-94c0-43fe-9630-cc2ec6904ad8,0127937c-94c0-43fe-9630-cc2ec6904ad8,1,0,ce7c87b8-e4ab-47e2-b70a-7dcae8bfb8a8,ce7c87b8-e4ab-47e2-b70a-7dcae8bfb8a8,1,0,8df5b3cd-7788-4198-a530-e88be83f1cdf,8df5b3cd-7788-4198-a530-e88be83f1cdf,1,0,ffaeea66-66d5-4741-a9b5-875afebfce7f,ffaeea66-66d5-4741-a9b5-875afebfce7f,1,0,8f6b6576-1d21-46c1-905c-f1685f0eee7a,8f6b6576-1d21-46c1-905c-f1685f0eee7a,1,0,06827a85-a9d1-472e-8087-906ff94a4adc,06827a85-a9d1-472e-8087-906ff94a4adc,1,0,bb3954de-5eaa-4ec0-931b-a1a9f233c120,bb3954de-5eaa-4ec0-931b-a1a9f233c120,1,0,10689022-cbbb-4134-901f-1e778fac2693,10689022-cbbb-4134-901f-1e778fac2693,1,0,f14e363f-512b-4658-afb5-10c3be5ff870,f14e363f-512b-4658-afb5-10c3be5ff870,1,0,4d211427-4494-45d4-ae84-38235f35eaef,4d211427-4494-45d4-ae84-38235f35eaef,1,0,f7784993-d95c-4652-9894-3cf67aeabeb8,f7784993-d95c-4652-9894-3cf67aeabeb8,1,0,485d8b29-79b1-4798-a742-75546ddb7262,485d8b29-79b1-4798-a742-75546ddb7262,1,0,e248de85-8f76-4471-ab3d-d35514b69b78,e248de85-8f76-4471-ab3d-d35514b69b78,1,0,8928ce42-2b12-402f-8115-98b5655db556,8928ce42-2b12-402f-8115-98b5655db556,1,0,9b62c109-7b52-4803-83e6-a5413cd00984,9b62c109-7b52-4803-83e6-a5413cd00984,1,0,cddb4bb0-22ec-49ae-b332-62d7307b93fe,cddb4bb0-22ec-49ae-b332-62d7307b93fe,1,0,72876709-806e-4406-b9c1-b8117f4d750a,72876709-806e-4406-b9c1-b8117f4d750a,1,0,b1efafef-74cc-4d36-a32c-b472712f11f3,b1efafef-74cc-4d36-a32c-b472712f11f3,1,0,ceb05584-1ecd-4681-8575-c0452f95b685,ceb05584-1ecd-4681-8575-c0452f95b685,1,0,03d08c14-f814-4e12-8f96-020c36cca2bf,03d08c14-f814-4e12-8f96-020c36cca2bf,1,0,a1a7aab6-cf35-42ce-97bb-c112638a2748,a1a7aab6-cf35-42ce-97bb-c112638a2748,1,0,a64b15fa-fc34-43fe-a366-d27c0f1c3df2,a64b15fa-fc34-43fe-a366-d27c0f1c3df2,1,0,8b13e848-8fd3-4326-bd18-5a5b12ed3dc5,8b13e848-8fd3-4326-bd18-5a5b12ed3dc5,1,0,b9a6b053-2b93-4946-9531-040d3131dcc5,b9a6b053-2b93-4946-9531-040d3131dcc5,1,0,9f36d26e-aa71-44d5-ac27-9aaa643555c3,9f36d26e-aa71-44d5-ac27-9aaa643555c3,1,0,87b8b5d7-d3d6-450a-adb1-5c875257ec80,87b8b5d7-d3d6-450a-adb1-5c875257ec80,1,0,e3640efe-e46c-4588-b251-dda23bf0641d,e3640efe-e46c-4588-b251-dda23bf0641d,1,0,b46b5090-5eb1-4950-9031-8b43f611fa9c,b46b5090-5eb1-4950-9031-8b43f611fa9c,1,0,522a4bff-34d3-46b2-8c66-0b30d881a86e,522a4bff-34d3-46b2-8c66-0b30d881a86e,1,0,3d7908b1-bd82-475e-8488-fafcbe3458ee,3d7908b1-bd82-475e-8488-fafcbe3458ee,1,0,8a6cdb21-4eff-46dc-b928-738199f54581,8a6cdb21-4eff-46dc-b928-738199f54581,1,0,1bac040b-83e4-402f-a9bf-d6a7b10c91e0,1bac040b-83e4-402f-a9bf-d6a7b10c91e0,1,0,e9c632b0-7977-4e44-ac56-882617ad7cdc,e9c632b0-7977-4e44-ac56-882617ad7cdc,1,0,e84acba7-7e0f-43e8-a545-6e53d529d5d4,e84acba7-7e0f-43e8-a545-6e53d529d5d4,1,0,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,3b089d90-7ece-4b74-a4dc-e436d9d31b3b,1,0,0f9c08c2-e7fa-4ea0-a935-f927feb01131,0f9c08c2-e7fa-4ea0-a935-f927feb01131,1,0,6086d53f-f1b2-4126-ab46-64705fe63b87,6086d53f-f1b2-4126-ab46-64705fe63b87,1,0,62a6b1c9-8288-4fa1-a17d-241b85a5e4b0,62a6b1c9-8288-4fa1-a17d-241b85a5e4b0,1,0,57069b56-f732-41c0-9a75-cbdb1e88556c,57069b56-f732-41c0-9a75-cbdb1e88556c,1,0,cf80ff0d-9add-4fa5-bba2-00d43fce5ed8,cf80ff0d-9add-4fa5-bba2-00d43fce5ed8,1,0,d927f1f0-df5f-44a1-bbfd-152ebf1559dd,d927f1f0-df5f-44a1-bbfd-152ebf1559dd,1,0,7ce7aec1-fa24-4dd7-8754-8124e78521bf,7ce7aec1-fa24-4dd7-8754-8124e78521bf,1,0,8b115575-9d8b-42f8-9ec8-0825a4397c7f,8b115575-9d8b-42f8-9ec8-0825a4397c7f,1,0,40fa5847-28f0-41ff-bfb8-ec33c8626d33,40fa5847-28f0-41ff-bfb8-ec33c8626d33,1,0,6d042890-27b2-4efc-935e-8190bb57c037,6d042890-27b2-4efc-935e-8190bb57c037,1,0,23e79add-7f1c-422a-9df1-8f76ebf805df,23e79add-7f1c-422a-9df1-8f76ebf805df,1,0,9295d88f-0865-440c-a98a-4710c50211be,9295d88f-0865-440c-a98a-4710c50211be,1,0,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,90aa51ae-434d-48f4-bfe3-0e1dd3aeea6f,1,0,5299d417-02c6-4f73-9c0c-8c22d267ab99,5299d417-02c6-4f73-9c0c-8c22d267ab99,1,0,38ac9a13-665a-4201-b5cc-687fe4a01130,38ac9a13-665a-4201-b5cc-687fe4a01130,1,0,003f2b4f-cdaa-4830-992d-9e376949a1b4,003f2b4f-cdaa-4830-992d-9e376949a1b4,1,0,97c59096-b2dc-45d0-a580-b3018a04f9af,97c59096-b2dc-45d0-a580-b3018a04f9af,1,0,f8759ffe-4f6d-48f2-8ae6-51911c5baf4b,f8759ffe-4f6d-48f2-8ae6-51911c5baf4b,1,0,8172256e-f51e-4de0-bd07-3668785f4cb9,8172256e-f51e-4de0-bd07-3668785f4cb9,1,0,5dcd8e28-b058-405a-bac4-defab7d4b789,5dcd8e28-b058-405a-bac4-defab7d4b789,1,0,6fbf63b7-1692-495e-a8ec-bdda182997a3,6fbf63b7-1692-495e-a8ec-bdda182997a3,1,0,4a2c2478-03ad-4521-9356-09ee07fce972,4a2c2478-03ad-4521-9356-09ee07fce972,1,0,077af11c-fd3c-4e87-b169-5f3137464f77,077af11c-fd3c-4e87-b169-5f3137464f77,1,0,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,ccb54dc9-3d12-43d0-af6a-138d3526f5d5,1,0,da8f7f30-eb80-44db-a451-348306c90cd8,da8f7f30-eb80-44db-a451-348306c90cd8,1,0,879304f7-9507-4fb8-9177-355428d6bba9,879304f7-9507-4fb8-9177-355428d6bba9,1,0,efb50581-cc7e-47ac-bfa2-86da2860bf1d,efb50581-cc7e-47ac-bfa2-86da2860bf1d,1,0,fd07f403-1116-4102-a1bf-35abb03ad493,fd07f403-1116-4102-a1bf-35abb03ad493,1,0,37ea0c64-2fec-4c2e-922b-d3a2f01f3e22,37ea0c64-2fec-4c2e-922b-d3a2f01f3e22,1,0,0722315c-9217-4ecf-80ff-d1ee89f84a53,0722315c-9217-4ecf-80ff-d1ee89f84a53,1,0,b82bcff8-49c9-44a9-8a9f-4428b0cc54a5,b82bcff8-49c9-44a9-8a9f-4428b0cc54a5,1,0,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,870b4d6d-0b89-4eda-a2b3-5c6db7dbe864,1,0,a2f943a4-05a3-4eb6-9a10-74b6859469a6,a2f943a4-05a3-4eb6-9a10-74b6859469a6,1,0,c172aeaf-b444-47c0-baee-80ccd91fe934,c172aeaf-b444-47c0-baee-80ccd91fe934,1,0,757ea742-8c14-4e0a-a867-432eee5cfc64,757ea742-8c14-4e0a-a867-432eee5cfc64,1,0,b8c36d5a-7966-4978-9225-67502b9c60a4,b8c36d5a-7966-4978-9225-67502b9c60a4,1,0,747f1c23-3c03-456e-864e-fc714484b7d6,747f1c23-3c03-456e-864e-fc714484b7d6,1,0,9847676d-f44d-46a0-83e2-4a43a835caf8,9847676d-f44d-46a0-83e2-4a43a835caf8,1,0,43c18cae-21a9-413b-a350-d5cf826980f0,43c18cae-21a9-413b-a350-d5cf826980f0,1,0,16773cdb-b979-42d5-a2a5-d4b79e8737bd,16773cdb-b979-42d5-a2a5-d4b79e8737bd,1,0,c28a190a-f487-4e99-b8f8-6928268086f8,c28a190a-f487-4e99-b8f8-6928268086f8,1,0,94e02f76-8656-4999-9470-dd996118400c,94e02f76-8656-4999-9470-dd996118400c,1,0,9effd265-3783-44e2-8698-80dd82137546,9effd265-3783-44e2-8698-80dd82137546,1,0,bef52020-98f8-465b-8981-e5f8eed62308,bef52020-98f8-465b-8981-e5f8eed62308,1,0,19897ad0-bdb5-439c-b4a2-a773c0ce5cf5,19897ad0-bdb5-439c-b4a2-a773c0ce5cf5,1,0,e731dab7-df9e-48ae-8542-4c0c30666ae9,e731dab7-df9e-48ae-8542-4c0c30666ae9,1,0,f321e378-6d50-4567-8434-813f367d3a65,f321e378-6d50-4567-8434-813f367d3a65,1,0,27246fd8-a8a3-4244-b49a-c0372a812167,27246fd8-a8a3-4244-b49a-c0372a812167,1,0,7d91ff3c-1ec2-41d0-9d38-fa8f8534c55c,7d91ff3c-1ec2-41d0-9d38-fa8f8534c55c,1,0,6da15c1d-e144-472e-9a3a-2797c7df16e4,6da15c1d-e144-472e-9a3a-2797c7df16e4,1,0,350a7b29-4ba3-43c4-b77d-47085f53d760,350a7b29-4ba3-43c4-b77d-47085f53d760,1,0,a151715d-c89e-4e4c-b8fd-d7d6ad71e603,a151715d-c89e-4e4c-b8fd-d7d6ad71e603,1,0,f6d6f1b9-3956-4fdb-bbb0-5d81f083a072,f6d6f1b9-3956-4fdb-bbb0-5d81f083a072,1,0,a5dd4200-0f25-452d-9014-3b1506c31557,a5dd4200-0f25-452d-9014-3b1506c31557,1,0,c48c091c-0d46-4d1f-bc84-72b0537c7ec2,c48c091c-0d46-4d1f-bc84-72b0537c7ec2,1,0,122a94c7-bb89-4f11-b583-b56808c1df47,122a94c7-bb89-4f11-b583-b56808c1df47,1,0,f4371f32-95a5-40f4-bc5e-a5b9a12a86eb,f4371f32-95a5-40f4-bc5e-a5b9a12a86eb,1,0,5f434c45-a5ff-4a07-8662-6a592298c7e9,5f434c45-a5ff-4a07-8662-6a592298c7e9,1,0,0841ebfc-12e6-4b3e-a60f-861b15e1b63c,0841ebfc-12e6-4b3e-a60f-861b15e1b63c,1,0,bde05768-2dd6-4800-985d-27075f610cca,bde05768-2dd6-4800-985d-27075f610cca,1,0,d18956cf-e449-48cc-a127-01b5dc910ea2,d18956cf-e449-48cc-a127-01b5dc910ea2,1,0,8e5487a3-b5e5-40ca-88f3-5b0ea0c4d481,8e5487a3-b5e5-40ca-88f3-5b0ea0c4d481,1,0,5d338e31-a56b-45f0-8a62-0270ca543f6a,5d338e31-a56b-45f0-8a62-0270ca543f6a,1,0,afd8251f-548b-4bb6-8ad0-4f412bec7cb6,afd8251f-548b-4bb6-8ad0-4f412bec7cb6,1,0,e352fc19-96be-4410-a516-bc58cc234422,e352fc19-96be-4410-a516-bc58cc234422,1,0,9b742da4-1696-4c06-9dfa-dd85c9286c74,9b742da4-1696-4c06-9dfa-dd85c9286c74,1,0,5f92f8c8-4d02-41a0-858f-e521f978df9f,5f92f8c8-4d02-41a0-858f-e521f978df9f,1,0,f9da8faf-1462-4ac4-9b63-2a20fc916049,f9da8faf-1462-4ac4-9b63-2a20fc916049,1,0,db1062bc-4164-4095-9640-9804c0ebcd0b,db1062bc-4164-4095-9640-9804c0ebcd0b,1,0,c11d967b-1250-4345-90b0-011a96c5ae5e,c11d967b-1250-4345-90b0-011a96c5ae5e,1,0,ea7c61ff-745c-4908-9a94-bba022d12de4,ea7c61ff-745c-4908-9a94-bba022d12de4,1,0,96cd8b90-5cf3-416c-b3a2-1f62e158b37e,96cd8b90-5cf3-416c-b3a2-1f62e158b37e,1,0,24eed105-f612-4340-ad79-388a7b39b58c,24eed105-f612-4340-ad79-388a7b39b58c,1,0,8e4bd2ac-d555-490e-87ab-1b0cdd6f72e9,8e4bd2ac-d555-490e-87ab-1b0cdd6f72e9,1,0,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,c7ffd8ab-15e9-4cf1-a7fd-d05534dff000,1,0,53caada5-1d53-45dc-9432-90075ddca890,53caada5-1d53-45dc-9432-90075ddca890,1,0,f00116da-2bf1-4edd-b939-f25d36774f5b,f00116da-2bf1-4edd-b939-f25d36774f5b,1,0,d1472d23-954b-4069-b2d6-df08c6ec0be1,d1472d23-954b-4069-b2d6-df08c6ec0be1,1,0,93fe2ce6-7193-42bc-a966-4653b7989eaa,93fe2ce6-7193-42bc-a966-4653b7989eaa,1,0,65678df4-a323-451f-98ba-305a74fc5805,65678df4-a323-451f-98ba-305a74fc5805,1,0,b1230b96-f4c8-4311-bfc0-df33bcc41394,b1230b96-f4c8-4311-bfc0-df33bcc41394,1,0,a7fe0aa5-722c-4a09-889b-ee422421addc,a7fe0aa5-722c-4a09-889b-ee422421addc,1,0,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,798bd34c-d0ee-4590-9b1d-8bc47e42ca8c,1,0,b572b1d0-4404-421c-9950-1cc1342ca5f3,b572b1d0-4404-421c-9950-1cc1342ca5f3,1,0,0c838a31-2b08-447c-b39a-a613cfba526c,0c838a31-2b08-447c-b39a-a613cfba526c,1,0,02082174-7276-4256-b9bb-9872065a01c4,02082174-7276-4256-b9bb-9872065a01c4,1,0,ddaba839-5ed2-4707-8cb8-ebd5784f642a,ddaba839-5ed2-4707-8cb8-ebd5784f642a,1,0,86c679c0-3531-4622-9a1f-3d9d6ccdd431,86c679c0-3531-4622-9a1f-3d9d6ccdd431,1,0,cba9e94c-e328-42ef-bcd0-92db3f0c048b,cba9e94c-e328-42ef-bcd0-92db3f0c048b,1,0,670c62c1-1a33-4dec-9540-5b4c1fe29074,670c62c1-1a33-4dec-9540-5b4c1fe29074,1,0,cc664d81-d0af-4d25-ae29-64f422e51bf2,cc664d81-d0af-4d25-ae29-64f422e51bf2,1,0,667f0c7e-fa70-49e9-97c9-ad04819fee58,667f0c7e-fa70-49e9-97c9-ad04819fee58,1,0,ae3876e2-bd06-415b-9d9a-b77d787be09e,ae3876e2-bd06-415b-9d9a-b77d787be09e,1,0,ded105e9-b71b-4550-9d9c-9c743dc212d0,ded105e9-b71b-4550-9d9c-9c743dc212d0,1,0,0cf49621-afc5-4c8d-a1b5-f8c30db9f415,0cf49621-afc5-4c8d-a1b5-f8c30db9f415,1,0,4718392b-477c-496b-9d28-ddbdaa7a04f2,4718392b-477c-496b-9d28-ddbdaa7a04f2,1,0,546af6c0-0762-4d2d-9d3b-c6a8f6c57674,546af6c0-0762-4d2d-9d3b-c6a8f6c57674,1,0,879844f0-30b4-47f5-8d2e-5fea29910368,879844f0-30b4-47f5-8d2e-5fea29910368,1,0,303334ba-2785-47fe-a094-84f9dea33be2,303334ba-2785-47fe-a094-84f9dea33be2,1,0,04424730-6992-4a5b-838b-7a7c16dedbd0,04424730-6992-4a5b-838b-7a7c16dedbd0,1,0,32850dc1-1484-4b7d-94f4-a08329423e7b,32850dc1-1484-4b7d-94f4-a08329423e7b,1,0,e37a7cf1-a7b5-4b6e-b818-0915598c8505,e37a7cf1-a7b5-4b6e-b818-0915598c8505,1,0,9299b382-fc65-4f89-8329-94fec125761c,9299b382-fc65-4f89-8329-94fec125761c,1,0,240bec31-cd59-477b-8459-8e3278da22dc,240bec31-cd59-477b-8459-8e3278da22dc,1,0,c83739dc-6afc-4687-ab1c-98a7b24b2182,c83739dc-6afc-4687-ab1c-98a7b24b2182,1,0,f3abaf8e-0230-43db-aaf0-716fc02047eb,f3abaf8e-0230-43db-aaf0-716fc02047eb,1,0,b76c3bd6-924a-4378-acbe-6f17232b201b,b76c3bd6-924a-4378-acbe-6f17232b201b,1,0,e0519f0c-9c99-4f5c-a3a9-27adce45737d,e0519f0c-9c99-4f5c-a3a9-27adce45737d,1,0,554320a0-55dc-4289-bb08-63d405cb4ca5,554320a0-55dc-4289-bb08-63d405cb4ca5,1,0,45eec13d-e5e5-4a2e-ad6c-2780bde15ef2,45eec13d-e5e5-4a2e-ad6c-2780bde15ef2,1,0,0874a3c0-0d16-4172-b467-f0666d5fcaee,0874a3c0-0d16-4172-b467-f0666d5fcaee,1,0,9d358304-3fd0-4ec6-9400-cc498ff2f751,9d358304-3fd0-4ec6-9400-cc498ff2f751,1,0,cc380a19-ab29-4f20-93ad-9a58cd4de56e,cc380a19-ab29-4f20-93ad-9a58cd4de56e,1,0,6a5f7521-270e-476e-88ec-a8cf79ea61a6,6a5f7521-270e-476e-88ec-a8cf79ea61a6,1,0,49b887e5-3b2f-42f8-b3f1-ba161ae05b3c,49b887e5-3b2f-42f8-b3f1-ba161ae05b3c,1,0,9bb841e7-e629-4a1f-8ff6-f8bca0b2b133,9bb841e7-e629-4a1f-8ff6-f8bca0b2b133,1,0,74067eee-6cd4-4ae3-becc-457ecb51dc9a,74067eee-6cd4-4ae3-becc-457ecb51dc9a,1,0,e54a8786-86a4-48e3-a210-aaae4e5fce8c,e54a8786-86a4-48e3-a210-aaae4e5fce8c,1,0,1c265c15-6002-416e-8045-81f03c893faf,1c265c15-6002-416e-8045-81f03c893faf,1,0,86c86ea2-d14e-4443-b36c-c1c17c4f768a,86c86ea2-d14e-4443-b36c-c1c17c4f768a,1,0,14512818-58b0-44cc-b00d-d37913c57aad,14512818-58b0-44cc-b00d-d37913c57aad,1,0,077e2c42-bc3b-48bf-bbc2-41effe20f613,077e2c42-bc3b-48bf-bbc2-41effe20f613,1,0,57964dd6-4b0b-4590-bc44-de744cc423af,57964dd6-4b0b-4590-bc44-de744cc423af,1,0,f5bb88eb-c239-4ae3-a297-dfbbd679e008,f5bb88eb-c239-4ae3-a297-dfbbd679e008,1,0,c888ccc1-9116-4b88-b950-aeabd54191c0,c888ccc1-9116-4b88-b950-aeabd54191c0,1,0,ff4d92a7-5fa3-4a46-a6f5-47c3952edb22,ff4d92a7-5fa3-4a46-a6f5-47c3952edb22,1,0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,1,0,eaeb5aa8-8edf-4f74-8011-2d476f543bf6,eaeb5aa8-8edf-4f74-8011-2d476f543bf6,1,0,b2f17ef1-3f6f-4029-b3e2-28d6b79c5b76,b2f17ef1-3f6f-4029-b3e2-28d6b79c5b76,1,0,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,1,0,7433b2a9-f634-4af7-ac85-6aa1280ea239,7433b2a9-f634-4af7-ac85-6aa1280ea239,1,0,9f32e85c-2ed6-41db-b0ec-6d8596940e80,9f32e85c-2ed6-41db-b0ec-6d8596940e80,1,0,7adced5f-3a5f-419a-926c-0452aad86c86,7adced5f-3a5f-419a-926c-0452aad86c86,1,0,f259b6b4-d582-429f-a16f-027a6bcb7438,f259b6b4-d582-429f-a16f-027a6bcb7438,1,0,46e0522b-b88b-43b2-9067-a5359e90994b,46e0522b-b88b-43b2-9067-a5359e90994b,1,0,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,727c7c01-83e6-4d59-afa4-ee36f1cbacf2,1,0,b143bc6d-ead6-41a2-9a15-1a44488c1ce4,b143bc6d-ead6-41a2-9a15-1a44488c1ce4,1,0,72d41d01-9c9d-4fbe-8a39-932d82d171ef,72d41d01-9c9d-4fbe-8a39-932d82d171ef,1,0,f4afd271-64de-4a6d-b0ef-f27db4d66d32,f4afd271-64de-4a6d-b0ef-f27db4d66d32,1,0,b1e7d3c3-9fc1-4364-a8c3-b076080c7472,b1e7d3c3-9fc1-4364-a8c3-b076080c7472,1,0,697d5715-dd04-40be-9b28-539734725158,697d5715-dd04-40be-9b28-539734725158,1,0,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,d831a8ac-88a4-4191-ab0b-7538dfb3e7d7,1,0,d95fcb37-fc65-466d-93e2-489f41683276,d95fcb37-fc65-466d-93e2-489f41683276,1,0,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,c6b0d31e-7b68-4c7f-a565-0ac8a7c11143,1,0,a27a9296-46bb-49a1-8308-db675baa81d0,a27a9296-46bb-49a1-8308-db675baa81d0,1,0,2181d197-028b-40b2-bf02-3d85dad1af30,2181d197-028b-40b2-bf02-3d85dad1af30,1,0,1456f317-360c-4190-b2d1-1be7484369a5,1456f317-360c-4190-b2d1-1be7484369a5,1,0,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,5ac74bb3-a4df-47db-ad87-6cb95b85c51f,1,0,4867948f-b027-44ae-b78c-a94e00eed52b,4867948f-b027-44ae-b78c-a94e00eed52b,1,0,aa0c32ae-da52-4df9-8b77-99ea31f8df81,aa0c32ae-da52-4df9-8b77-99ea31f8df81,1,0,d7dcd391-3a0e-4aa9-9b53-467a1de67593,d7dcd391-3a0e-4aa9-9b53-467a1de67593,1,0,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,3d4cb11a-7ce7-4c46-a427-99d6f41f08bf,1,0,ef044879-e731-418a-b917-6a685f27c5f4,ef044879-e731-418a-b917-6a685f27c5f4,1,0,618d13d5-fd1f-4b70-ad45-dd6a17a50730,618d13d5-fd1f-4b70-ad45-dd6a17a50730,1,0,0248a6c4-7ce5-4898-bb1d-9ad9509e6795,0248a6c4-7ce5-4898-bb1d-9ad9509e6795,1,0,6a5b9e7f-c368-40d8-812a-64f68ea1ef9d,6a5b9e7f-c368-40d8-812a-64f68ea1ef9d,1,0,58037b76-b548-4f07-bd67-67e552a5c6e5,58037b76-b548-4f07-bd67-67e552a5c6e5,1,0,68f19104-5fa3-4f28-a84b-bf68c3bed49b,68f19104-5fa3-4f28-a84b-bf68c3bed49b,1,0,4249f45b-b298-4d42-9ca2-bd80b87f2150,4249f45b-b298-4d42-9ca2-bd80b87f2150,1,0,f88ccd7a-8d15-4b24-addf-da522a0b4a43,f88ccd7a-8d15-4b24-addf-da522a0b4a43,1,0,bc039475-c872-4b99-9248-c74aae75f0e1,bc039475-c872-4b99-9248-c74aae75f0e1,1,0,331db120-ba88-4eb3-a8ec-10691be82e2d,331db120-ba88-4eb3-a8ec-10691be82e2d,1,0,349378d1-abe3-44de-84a4-d525b08e0474,349378d1-abe3-44de-84a4-d525b08e0474,1,0,1526b18d-7fab-414e-a5b2-377b67ac0b55,1526b18d-7fab-414e-a5b2-377b67ac0b55,1,0,c561fe6b-53ea-435b-a230-1850e2dc1ff5,c561fe6b-53ea-435b-a230-1850e2dc1ff5,1,0,aba7605f-6baf-42a8-b5ad-8f71c780b81f,aba7605f-6baf-42a8-b5ad-8f71c780b81f,1,0,8fc19eca-1a15-4758-af4b-79637e51edfb,8fc19eca-1a15-4758-af4b-79637e51edfb,1,0,b0e0a273-2613-4d5e-9901-df7893af4c74,b0e0a273-2613-4d5e-9901-df7893af4c74,1,0,4ad1ef06-d8b4-46da-b536-d23c40e85497,4ad1ef06-d8b4-46da-b536-d23c40e85497,1,0,be9144ce-5560-47bb-8c5e-9beefd15bfc3,be9144ce-5560-47bb-8c5e-9beefd15bfc3,1,0,ad09d1e6-5982-4e1c-864e-452ac5b2915a,ad09d1e6-5982-4e1c-864e-452ac5b2915a,1,0,caea53be-d2f7-4109-8017-d2bfdfde8c6f,caea53be-d2f7-4109-8017-d2bfdfde8c6f,1,0,60f30706-9919-4767-a17c-660754b9d542,60f30706-9919-4767-a17c-660754b9d542,1,0,7de19812-ed6c-41b5-82aa-b9a8e6d808f2,7de19812-ed6c-41b5-82aa-b9a8e6d808f2,1,0,c0bc4cc4-b5ca-47c2-b589-c0d25bb63f1e,c0bc4cc4-b5ca-47c2-b589-c0d25bb63f1e,1,0,35823167-b658-4563-8d01-b0aab05aa619,35823167-b658-4563-8d01-b0aab05aa619,1,0,30be8d71-a9dd-4dd3-8fb4-ea0c8de86358,30be8d71-a9dd-4dd3-8fb4-ea0c8de86358,1,0,9ee03c48-c338-4655-9095-d490231df2a3,9ee03c48-c338-4655-9095-d490231df2a3,1,0,94928ba3-6bbf-4bd3-94cf-9c51b50e005f,94928ba3-6bbf-4bd3-94cf-9c51b50e005f,1,0,3924c17c-6ee3-4406-8023-0a79a242e389,3924c17c-6ee3-4406-8023-0a79a242e389,1,0,84a159ed-bc5f-4497-94d1-94b187b0bffe,84a159ed-bc5f-4497-94d1-94b187b0bffe,1,0,0a126b0d-28c8-4ed4-836f-e39e17693ad0,0a126b0d-28c8-4ed4-836f-e39e17693ad0,1,0,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,0dcc3bbf-afbe-4a4e-bc4a-17534d5fab28,1,0,bf75c4de-b36a-4a7f-8d84-9fa3d020a6cb,bf75c4de-b36a-4a7f-8d84-9fa3d020a6cb,1,0,f95adb50-fa0b-434c-93dd-b7fd211220b7,f95adb50-fa0b-434c-93dd-b7fd211220b7,1,0,e590825f-10c6-4fdd-98cd-3da01da2ed4f,e590825f-10c6-4fdd-98cd-3da01da2ed4f,1,0,2233ce53-b8a8-4c83-97a2-683c8575462a,2233ce53-b8a8-4c83-97a2-683c8575462a,1,0,b938ff17-e31c-4762-a96f-e1288f746a1d,b938ff17-e31c-4762-a96f-e1288f746a1d,1,0,d6a5083f-ca9a-42ed-b202-2983e4ba21c2,d6a5083f-ca9a-42ed-b202-2983e4ba21c2,1,0,bd69bf55-dee0-4553-8f90-5fd025c0f773,bd69bf55-dee0-4553-8f90-5fd025c0f773,1,0,2071f210-dc13-43c0-a58e-b982821d6842,2071f210-dc13-43c0-a58e-b982821d6842,1,0,bea697f4-46a8-4698-ac60-64326e442f2b,bea697f4-46a8-4698-ac60-64326e442f2b,1,0,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,d5588c0d-3e94-485b-a7e9-45f5cf74df9e,1,0,f415296e-fceb-4835-abe9-17bb17a5d5e5,f415296e-fceb-4835-abe9-17bb17a5d5e5,1,0,0e805e1f-3797-4ef9-94d3-0ec58ac1b605,0e805e1f-3797-4ef9-94d3-0ec58ac1b605,1,0,8677bd53-5569-4d44-b7ce-d1b3fe12c78d,8677bd53-5569-4d44-b7ce-d1b3fe12c78d,1,0,19056365-9ff1-4733-876e-a7ebdbbe0557,19056365-9ff1-4733-876e-a7ebdbbe0557,1,0,c8679d82-075c-4556-8231-c004d144fe61,c8679d82-075c-4556-8231-c004d144fe61,1,0,5e09dc5e-bbb7-4c38-b609-940c24f63c84,5e09dc5e-bbb7-4c38-b609-940c24f63c84,1,0,017b28eb-8ba9-465e-a748-20eadbeb4ea2,017b28eb-8ba9-465e-a748-20eadbeb4ea2,1,0,c0bb2d66-94c9-4bc6-afd5-534075e8395b,c0bb2d66-94c9-4bc6-afd5-534075e8395b,1,0,33c93020-b5f0-424e-a8fc-114a6ab04107,33c93020-b5f0-424e-a8fc-114a6ab04107,1,0,db7cc693-1645-4416-a9d9-5a7584cd3bbc,db7cc693-1645-4416-a9d9-5a7584cd3bbc,1,0,c849fb09-7833-49c8-9461-98426dc6c0af,c849fb09-7833-49c8-9461-98426dc6c0af,1,0,6c58fc3a-37f8-44b7-b076-2c10ce09b554,6c58fc3a-37f8-44b7-b076-2c10ce09b554,1,0,f9479915-cdee-40d5-ba53-101132aac672,f9479915-cdee-40d5-ba53-101132aac672,1,0,245c07a9-98b0-452b-b899-dc8751ab7ce0,245c07a9-98b0-452b-b899-dc8751ab7ce0,1,0,b0ca1b85-e1de-4b7c-8261-7f9e8a6a72eb,b0ca1b85-e1de-4b7c-8261-7f9e8a6a72eb,1,0,ae67dfe5-bb36-4400-81f5-8dab1fd0ca6e,ae67dfe5-bb36-4400-81f5-8dab1fd0ca6e,1,0,91d7687b-7627-473f-a08d-433f9d385107,91d7687b-7627-473f-a08d-433f9d385107,1,0,2276a1d4-b4d9-4643-8342-36143ce4eb26,2276a1d4-b4d9-4643-8342-36143ce4eb26,1,0,5510a103-836d-457e-b82b-6f6223efc96b,5510a103-836d-457e-b82b-6f6223efc96b,1,0,83db1b00-e9e3-41da-8a59-47589dcfd618,83db1b00-e9e3-41da-8a59-47589dcfd618,1,0,91d2d798-1498-4c52-aa7b-99db4b992876,91d2d798-1498-4c52-aa7b-99db4b992876,1,0,e85a03d3-e7c7-4058-992a-515a557d9e52,e85a03d3-e7c7-4058-992a-515a557d9e52,1,0,195ea1f8-3e38-4254-a33d-c87424b8f7dc,195ea1f8-3e38-4254-a33d-c87424b8f7dc,1,0,d3a1d247-8f4a-45af-9861-7e313a100209,d3a1d247-8f4a-45af-9861-7e313a100209,1,0,837f27c1-26d7-4f24-a691-55dd9ed04ec5,837f27c1-26d7-4f24-a691-55dd9ed04ec5,1,0,9e2ddfbb-8d6b-4b82-8a2b-62c2ea990b10,9e2ddfbb-8d6b-4b82-8a2b-62c2ea990b10,1,0,5005655f-22b2-49e6-be4f-b15d768d10b2,5005655f-22b2-49e6-be4f-b15d768d10b2,1,0,208040c8-e98b-4c15-a2ec-38d44bfcfa6c,208040c8-e98b-4c15-a2ec-38d44bfcfa6c,1,0,f6811ee2-769e-488d-9ca0-70f1fe521ca9,f6811ee2-769e-488d-9ca0-70f1fe521ca9,1,0,83385f31-2cdf-44a1-85c3-461e4ad5fd45,83385f31-2cdf-44a1-85c3-461e4ad5fd45,1,0,4cc76b9f-aa72-486e-84ee-f0866edfe691,4cc76b9f-aa72-486e-84ee-f0866edfe691,1,0,b55b06db-604e-4fb9-9253-638c747bd8f9,b55b06db-604e-4fb9-9253-638c747bd8f9,1,0,9cd9a3e1-b52c-4151-abd3-2744ed03cc1b,9cd9a3e1-b52c-4151-abd3-2744ed03cc1b,1,0,9aa0c1ef-45b4-405b-ad6f-ebcf876e6318,9aa0c1ef-45b4-405b-ad6f-ebcf876e6318,1,0,deb69010-80b0-4e28-acc7-8c50e8e6f873,deb69010-80b0-4e28-acc7-8c50e8e6f873,1,0,1a9177fe-6699-42b3-9588-eed9c6008c2d,1a9177fe-6699-42b3-9588-eed9c6008c2d,1,0,93848cf6-7a87-42c7-b685-0bc418a2037c,93848cf6-7a87-42c7-b685-0bc418a2037c,1,0,4f49412a-fbbe-4ee1-9c2b-affe5266bba7,4f49412a-fbbe-4ee1-9c2b-affe5266bba7,1,0,ae698468-f42a-4400-aee6-fd849740e634,ae698468-f42a-4400-aee6-fd849740e634,1,0,0b88b50d-6aa1-4364-82bd-1c0c0da93a58,0b88b50d-6aa1-4364-82bd-1c0c0da93a58,1,0,ddec19a2-2a76-4eeb-9cbb-6bc2b4a32bc8,ddec19a2-2a76-4eeb-9cbb-6bc2b4a32bc8,1,0,6438435e-97cc-4bd2-98dc-e21cee55bb0f,6438435e-97cc-4bd2-98dc-e21cee55bb0f,1,0,31b93291-a58f-4176-8318-58200e8bc56e,31b93291-a58f-4176-8318-58200e8bc56e,1,0,293be1bc-49cb-4a99-add8-2a3a46829718,293be1bc-49cb-4a99-add8-2a3a46829718,1,0,00579e31-e97d-4d79-ba25-b8d500a17e7f,00579e31-e97d-4d79-ba25-b8d500a17e7f,1,0,5001bea4-c8f9-4950-9eda-d33125e3bb46,5001bea4-c8f9-4950-9eda-d33125e3bb46,1,0,4ac6d0dd-0007-46b8-bfcc-93c0f85b6b85,4ac6d0dd-0007-46b8-bfcc-93c0f85b6b85,1,0,bc2dd611-b589-4519-b274-40db5c66b378,bc2dd611-b589-4519-b274-40db5c66b378,1,0,e815010d-e03d-46e4-b482-c1556902cc26,e815010d-e03d-46e4-b482-c1556902cc26,1,0,d4ab930a-ddaa-4552-afed-2618af822365,d4ab930a-ddaa-4552-afed-2618af822365,1,0,2388e3f4-b23b-488f-9ea5-d9434efca195,2388e3f4-b23b-488f-9ea5-d9434efca195,1,0,dd03e170-4186-495b-ae1c-fc66385d7ccf,dd03e170-4186-495b-ae1c-fc66385d7ccf,1,0,b2de86fc-f10b-4304-8060-cad903ba37c5,b2de86fc-f10b-4304-8060-cad903ba37c5,1,0,81fbb02e-76b2-4bca-bb3b-871e4e969a3c,81fbb02e-76b2-4bca-bb3b-871e4e969a3c,1,0,cdef5df6-f3a1-4950-b197-4f375914f885,cdef5df6-f3a1-4950-b197-4f375914f885,1,0,c1caff49-dc4b-4b3e-be47-122ea8b70416,c1caff49-dc4b-4b3e-be47-122ea8b70416,1,0,a1185a4c-7351-48b0-b662-61f61a1ad715,a1185a4c-7351-48b0-b662-61f61a1ad715,1,0,bf5faaef-3a03-40bc-8d3a-644c0874b9ce,bf5faaef-3a03-40bc-8d3a-644c0874b9ce,1,0,4ee0c7a4-cc26-438d-8908-f6a900c99d8b,4ee0c7a4-cc26-438d-8908-f6a900c99d8b,1,0,71d03545-df45-4c70-aa0d-3b916f2a9041,71d03545-df45-4c70-aa0d-3b916f2a9041,1,0,da9b0d3d-27dd-4a85-b0df-ec2f54d884f6,da9b0d3d-27dd-4a85-b0df-ec2f54d884f6,1,0,28a25822-2306-409a-a7c8-6f7e42bf25e8,28a25822-2306-409a-a7c8-6f7e42bf25e8,1,0,89cb31da-a980-4207-a537-85cd47f08d32,89cb31da-a980-4207-a537-85cd47f08d32,1,0,a45fa0c3-c363-4465-861f-13cedfeb79dd,a45fa0c3-c363-4465-861f-13cedfeb79dd,1,0,a72517c3-8c91-4e40-81ac-83c762789e87,a72517c3-8c91-4e40-81ac-83c762789e87,1,0,0233b335-7e26-4661-9850-8ab09d3178e3,0233b335-7e26-4661-9850-8ab09d3178e3,1,0,d942d536-5d01-4571-b910-abd973996a38,d942d536-5d01-4571-b910-abd973996a38,1,0,b82a7103-b872-49c3-b632-81d5a0051136,b82a7103-b872-49c3-b632-81d5a0051136,1,0,4b17ac35-78cb-4d01-bb08-659c0a93e8ce,4b17ac35-78cb-4d01-bb08-659c0a93e8ce,1,0,20c2053c-8ebd-4c07-8d95-956b424d047c,20c2053c-8ebd-4c07-8d95-956b424d047c,1,0,7c9dee81-7e85-4d26-84c3-66b0d770ac5a,7c9dee81-7e85-4d26-84c3-66b0d770ac5a,1,0,08fe5e70-ac6b-427a-b6f2-0e2f7848fa6b,08fe5e70-ac6b-427a-b6f2-0e2f7848fa6b,1,0,bef6081e-f377-41d6-83a1-b0e218a3fb46,bef6081e-f377-41d6-83a1-b0e218a3fb46,1,0,9b67bfd5-ef23-4205-b7ba-9466517e9999,9b67bfd5-ef23-4205-b7ba-9466517e9999,1,0,20082776-ce24-41c5-ae11-6fa9bc54db59,20082776-ce24-41c5-ae11-6fa9bc54db59,1,0,ea2c4c8e-23cc-4884-812e-1e959da48afc,ea2c4c8e-23cc-4884-812e-1e959da48afc,1,0,c61e4c12-178d-47aa-a070-333fe5450168,c61e4c12-178d-47aa-a070-333fe5450168,1,0,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,1,0,ea9d67eb-b552-48bd-a108-4938e5541735,ea9d67eb-b552-48bd-a108-4938e5541735,1,0,63fd620c-59a5-493c-a39e-457fad6fe35f,63fd620c-59a5-493c-a39e-457fad6fe35f,1,0,46b0a5b3-1fa7-44ff-a941-c6de47d36e77,46b0a5b3-1fa7-44ff-a941-c6de47d36e77,1,0,75ffd0b9-79be-4600-a310-591fddb6d63e,75ffd0b9-79be-4600-a310-591fddb6d63e,1,0,4883cb3d-4ab3-4e0e-bddb-ae8852547a3c,4883cb3d-4ab3-4e0e-bddb-ae8852547a3c,1,0,85d6d214-2b70-4cc4-ba80-f4325dd4ca65,85d6d214-2b70-4cc4-ba80-f4325dd4ca65,1,0,89888993-3b05-475e-ac76-3cd7ced93250,89888993-3b05-475e-ac76-3cd7ced93250,1,0,129f704b-cc63-4a4e-b6a7-9e53de4537a2,129f704b-cc63-4a4e-b6a7-9e53de4537a2,1,0,ea97b67e-1182-49c3-b95a-8fcce4cd3d09,ea97b67e-1182-49c3-b95a-8fcce4cd3d09,1,0,592f55e1-b004-44ef-878a-6c2016ccbeb0,592f55e1-b004-44ef-878a-6c2016ccbeb0,1,0,19add2bd-eede-4a05-901b-cf8ce49a638f,19add2bd-eede-4a05-901b-cf8ce49a638f,1,0,becf53b6-3fbc-4c70-822f-4a70b0434353,becf53b6-3fbc-4c70-822f-4a70b0434353,1,0,c7f544c6-488e-4178-af0d-d2ae07a8b89a,c7f544c6-488e-4178-af0d-d2ae07a8b89a,1,0,7dc0429d-146a-4c4f-b122-5d5c053bd4ed,7dc0429d-146a-4c4f-b122-5d5c053bd4ed,1,0,f8dc2485-685b-4e41-834a-a2cbbbe4d53b,f8dc2485-685b-4e41-834a-a2cbbbe4d53b,1,0,c38d8135-e11f-4860-b370-84ff279b7fbd,c38d8135-e11f-4860-b370-84ff279b7fbd,1,0,ee0798f5-47a8-4118-a25c-cfd3473007c1,ee0798f5-47a8-4118-a25c-cfd3473007c1,1,0,652ee894-047b-4a5a-a500-2d61b4c4a473,652ee894-047b-4a5a-a500-2d61b4c4a473,1,0,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,8a95d199-9bd1-4cbb-9d1a-941e80fa2105,1,0,33f8cd94-71e7-4703-92c3-22690fbd871a,33f8cd94-71e7-4703-92c3-22690fbd871a,1,0,b6e5de4d-0156-4342-b646-6e6920a4bd3a,b6e5de4d-0156-4342-b646-6e6920a4bd3a,1,0,c03f9972-5a1f-449b-b170-5a958c2b5846,c03f9972-5a1f-449b-b170-5a958c2b5846,1,0,25896075-2484-4879-8310-7f5680d80b48,25896075-2484-4879-8310-7f5680d80b48,1,0,1e3c444d-6f73-4eb0-a12d-7106daf36b14,1e3c444d-6f73-4eb0-a12d-7106daf36b14,1,0,9043894d-f89a-459f-a4ea-77fe3633aa91,9043894d-f89a-459f-a4ea-77fe3633aa91,1,0,085cbea9-1df1-4ee9-afb7-da2bf313697e,085cbea9-1df1-4ee9-afb7-da2bf313697e,1,0,09858042-6284-4499-8055-c1b5b783ce5f,09858042-6284-4499-8055-c1b5b783ce5f,1,0,38fc1e6e-7cd3-437b-b429-6655be34cd01,38fc1e6e-7cd3-437b-b429-6655be34cd01,1,0,95a71c2e-aa39-42ec-8889-2390a553f146,95a71c2e-aa39-42ec-8889-2390a553f146,1,0,8c4c7982-36cc-4dc9-b055-9954f61e6365,8c4c7982-36cc-4dc9-b055-9954f61e6365,1,0,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,1,0,e29d96ee-e8fa-4100-8a0e-494398e4ec9d,e29d96ee-e8fa-4100-8a0e-494398e4ec9d,1,0,5f3d5a05-a581-462d-96a2-2750ba0e0481,5f3d5a05-a581-462d-96a2-2750ba0e0481,1,0,477ab478-b336-4bac-898f-e20e3a4039b5,477ab478-b336-4bac-898f-e20e3a4039b5,1,0,a4d767a1-d2e6-4e0a-ab35-9207eef54998,a4d767a1-d2e6-4e0a-ab35-9207eef54998,1,0,e50cb13a-151b-45d2-a7b7-d23440ddfa24,e50cb13a-151b-45d2-a7b7-d23440ddfa24,1,0,cc3a7f15-4db6-445e-b282-f44d0460b7d3,cc3a7f15-4db6-445e-b282-f44d0460b7d3,1,0,0b8bfb71-d430-4bdf-8391-a534b3a15fc3,0b8bfb71-d430-4bdf-8391-a534b3a15fc3,1,0,19ea515f-65f7-4ed9-812b-c97b92e2498f,19ea515f-65f7-4ed9-812b-c97b92e2498f,1,0,0d8770aa-fa6e-471c-92c8-b96576927ef0,0d8770aa-fa6e-471c-92c8-b96576927ef0,1,0,4f86b052-b81e-49b8-9fa8-82b2ecbc8e01,4f86b052-b81e-49b8-9fa8-82b2ecbc8e01,1,0,e25b2b10-bf08-42db-9642-861efc5e583b,e25b2b10-bf08-42db-9642-861efc5e583b,1,0,b8a32c33-4e15-4c21-baab-64a86d44321b,b8a32c33-4e15-4c21-baab-64a86d44321b,1,0,d7dd9a03-6818-4987-8f39-58e1c906569f,d7dd9a03-6818-4987-8f39-58e1c906569f,1,0,e4216976-2747-4078-81d4-8ffab668c1f7,e4216976-2747-4078-81d4-8ffab668c1f7,1,0,fce028b8-b530-49f0-b6ad-a28d03e19b0f,fce028b8-b530-49f0-b6ad-a28d03e19b0f,1,0,301eea20-0e7f-441e-a531-28b4627dfd93,301eea20-0e7f-441e-a531-28b4627dfd93,1,0,41f87891-ddd5-4e0f-a4f2-8039fb71981b,41f87891-ddd5-4e0f-a4f2-8039fb71981b,1,0,47da49ee-b243-4e78-9c8f-bb26c60e6136,47da49ee-b243-4e78-9c8f-bb26c60e6136,1,0,39bee714-cacd-4d48-97a5-c838660e049a,39bee714-cacd-4d48-97a5-c838660e049a,1,0,9ed2c756-80a1-4559-8494-b7a9b82a4519,9ed2c756-80a1-4559-8494-b7a9b82a4519,1,0,456c5171-4298-4201-9908-79feb376d1b1,456c5171-4298-4201-9908-79feb376d1b1,1,0,69149ce1-d3f8-4e12-be8f-b328ade60882,69149ce1-d3f8-4e12-be8f-b328ade60882,1,0,ff592ecb-eb08-4554-87bf-1d2935b21d3c,ff592ecb-eb08-4554-87bf-1d2935b21d3c,1,0,d975aef4-8da8-4486-baeb-a99c48cff0ec,d975aef4-8da8-4486-baeb-a99c48cff0ec,1,0,75666bb9-f6d3-4dd6-8220-427a81f23fc9,75666bb9-f6d3-4dd6-8220-427a81f23fc9,1,0,9da27139-0bed-47b0-aef6-246929968502,9da27139-0bed-47b0-aef6-246929968502,1,0,7ae5d177-a3e6-4989-b10c-8e0a605c26d9,7ae5d177-a3e6-4989-b10c-8e0a605c26d9,1,0,29f2094a-d0d1-425c-8161-45a9ba186e19,29f2094a-d0d1-425c-8161-45a9ba186e19,1,0,893b2dd9-a939-4799-9b78-50d788a5f3ba,893b2dd9-a939-4799-9b78-50d788a5f3ba,1,0,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,68229ecd-7ecc-4194-a3e5-f8df39b55d6a,1,0,a57f6dc1-59d7-4311-8acd-65ce57a9f386,a57f6dc1-59d7-4311-8acd-65ce57a9f386,1,0,e4842271-4fc0-4e15-afef-876f05af78c0,e4842271-4fc0-4e15-afef-876f05af78c0,1,0,31ee6430-b65d-42fa-859b-c4f1c40686ae,31ee6430-b65d-42fa-859b-c4f1c40686ae,1,0,c59e11f3-6bcb-404a-9d76-1416c12be354,c59e11f3-6bcb-404a-9d76-1416c12be354,1,0,c1a1f12b-3978-4047-956e-a5c7de8371a0,c1a1f12b-3978-4047-956e-a5c7de8371a0,1,0,ac39b903-0c60-417e-a50f-49ed375424f5,ac39b903-0c60-417e-a50f-49ed375424f5,1,0,135d57fe-d420-4bb0-9120-e43fd9b55c16,135d57fe-d420-4bb0-9120-e43fd9b55c16,1,0,9893e2d6-f3f8-4d73-bb06-19bf26d216ab,9893e2d6-f3f8-4d73-bb06-19bf26d216ab,1,0,8cf925d9-6811-4bce-b116-09d6a26ff3cb,8cf925d9-6811-4bce-b116-09d6a26ff3cb,1,0,387d3bbf-cddd-4506-b14f-89c1f37adbbc,387d3bbf-cddd-4506-b14f-89c1f37adbbc,1,0,16392cf6-dd83-4df0-a54b-6efc29778a89,16392cf6-dd83-4df0-a54b-6efc29778a89,1,0,e693cdd0-8ead-4ba5-adec-86bab74ee7cd,e693cdd0-8ead-4ba5-adec-86bab74ee7cd,1,0,36999e1b-865e-41ad-b9d6-1b3ac887acfb,36999e1b-865e-41ad-b9d6-1b3ac887acfb,1,0,10db9f99-c7d1-4b16-9ea2-9bfc2aa4ddb5,10db9f99-c7d1-4b16-9ea2-9bfc2aa4ddb5,1,0,230722e6-942f-4594-be89-eff59c6572bf,230722e6-942f-4594-be89-eff59c6572bf,1,0,237dab99-ed72-432c-ad01-c6045d74f000,237dab99-ed72-432c-ad01-c6045d74f000,1,0,a1130128-cc48-4555-93a2-99e7f74f77dc,a1130128-cc48-4555-93a2-99e7f74f77dc,1,0,af52cd7d-374a-4c46-a74c-305e154dc6f2,af52cd7d-374a-4c46-a74c-305e154dc6f2,1,0,9b4b7424-1af7-4d80-8404-8819fcfeae75,9b4b7424-1af7-4d80-8404-8819fcfeae75,1,0,94e08dcf-3885-4a73-82ab-cb291f1cf95f,94e08dcf-3885-4a73-82ab-cb291f1cf95f,1,0,8947286f-ba4a-44e7-b805-2f096028dc4f,8947286f-ba4a-44e7-b805-2f096028dc4f,1,0,55ce840b-5838-4107-886d-f935b9907bd8,55ce840b-5838-4107-886d-f935b9907bd8,1,0,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,0b3088c9-7fb9-4979-acce-16d7ae7ba6b7,1,0,f1753bda-16db-4b00-a16a-37ddade8403f,f1753bda-16db-4b00-a16a-37ddade8403f,1,0,2a985b50-a4b1-4932-8af6-51eee8e78ac8,2a985b50-a4b1-4932-8af6-51eee8e78ac8,1,0,e353db15-71c5-4b68-9ffb-9800800a59dc,e353db15-71c5-4b68-9ffb-9800800a59dc,1,0,976d9ba7-d9c7-4a9e-ad5d-53cb5bca8984,976d9ba7-d9c7-4a9e-ad5d-53cb5bca8984,1,0,fe9eca7c-6e3d-4c3f-b98d-abd8ab05d35e,fe9eca7c-6e3d-4c3f-b98d-abd8ab05d35e,1,0,a1875d63-4303-46f1-bdea-fc529b5891f3,a1875d63-4303-46f1-bdea-fc529b5891f3,1,0,e05b6f44-8244-4e94-a6d3-57450f8b47dc,e05b6f44-8244-4e94-a6d3-57450f8b47dc,1,0,59123b12-6052-4480-9c86-f4de1b5cdc04,59123b12-6052-4480-9c86-f4de1b5cdc04,1,0,19b98b60-deb1-4642-8159-2a11332558e2,19b98b60-deb1-4642-8159-2a11332558e2,1,0,133f181a-fade-4182-826d-904fac780326,133f181a-fade-4182-826d-904fac780326,1,0,a687748a-0b2a-4277-b935-07616d28430d,a687748a-0b2a-4277-b935-07616d28430d,1,0,f60cb71a-f451-426a-aa3a-aa266b8da149,f60cb71a-f451-426a-aa3a-aa266b8da149,1,0,641ebe22-7135-4adb-bbd6-e0c37d246a2d,641ebe22-7135-4adb-bbd6-e0c37d246a2d,1,0,f71ba01e-9f6b-4241-8048-4368c8888756,f71ba01e-9f6b-4241-8048-4368c8888756,1,0,9059defa-047f-4dac-9749-3d0a6a77308a,9059defa-047f-4dac-9749-3d0a6a77308a,1,0,6010c27f-e857-4fc3-be13-1eea51f02ea7,6010c27f-e857-4fc3-be13-1eea51f02ea7,1,0,973609a2-5b5d-45c4-9606-a13d0de1a09b,973609a2-5b5d-45c4-9606-a13d0de1a09b,1,0,6aa814fa-417e-428c-951e-6efd9d0775da,6aa814fa-417e-428c-951e-6efd9d0775da,1,0,a247efe1-8608-4780-9cc8-54e29944475b,a247efe1-8608-4780-9cc8-54e29944475b,1,0,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,4b8c3c82-6e8f-469e-8a80-144361d1d0b2,1,0,a8f162e9-3f59-41a5-b82f-da20928213c7,a8f162e9-3f59-41a5-b82f-da20928213c7,1,0,7ad16fb4-17eb-4812-8015-9447d92e08ce,7ad16fb4-17eb-4812-8015-9447d92e08ce,1,0,ade68dfd-5037-4fd7-b043-9514e3fe6342,ade68dfd-5037-4fd7-b043-9514e3fe6342,1,0,7b008aad-9d05-43e1-8295-62ae58cfff42,7b008aad-9d05-43e1-8295-62ae58cfff42,1,0,fdaf9255-d621-4a98-9530-f618ed440795,fdaf9255-d621-4a98-9530-f618ed440795,1,0,48cefa96-46c7-4870-a096-951dcbae479a,48cefa96-46c7-4870-a096-951dcbae479a,1,0,d74e01cc-941b-4974-8771-0bd2e0d86724,d74e01cc-941b-4974-8771-0bd2e0d86724,1,0,0daac965-2026-4acc-8ba1-3c1f01779257,0daac965-2026-4acc-8ba1-3c1f01779257,1,0,65a331c0-7501-49f6-8027-35b703d11834,65a331c0-7501-49f6-8027-35b703d11834,1,0,5e4ee280-3dd2-4f68-be6c-fb5343438817,5e4ee280-3dd2-4f68-be6c-fb5343438817,1,0,75d1b6df-ede3-4172-987f-fe1551f686ee,75d1b6df-ede3-4172-987f-fe1551f686ee,1,0,c67fab0a-704f-43ae-bd03-4b5b1a880b24,c67fab0a-704f-43ae-bd03-4b5b1a880b24,1,0,c1703a14-61a0-4461-8ad8-7173e2c431fe,c1703a14-61a0-4461-8ad8-7173e2c431fe,1,0,aecf5653-3005-43f2-ab49-40977e70f02b,aecf5653-3005-43f2-ab49-40977e70f02b,1,0,8bd56034-6d56-4c2f-8e7f-4c0fff49ac39,8bd56034-6d56-4c2f-8e7f-4c0fff49ac39,1,0,845530cd-36fb-44c3-b30a-730985c9ca2d,845530cd-36fb-44c3-b30a-730985c9ca2d,1,0,9e90d9f7-5301-44b3-9eba-45fee5a69a0b,9e90d9f7-5301-44b3-9eba-45fee5a69a0b,1,0,475f8577-a141-496b-94e1-53215c0dd017,475f8577-a141-496b-94e1-53215c0dd017,1,0,97638762-c01e-4c8f-88e2-b356e517e18f,97638762-c01e-4c8f-88e2-b356e517e18f,1,0,074e34f2-e9be-4bd3-beca-8b916772e2be,074e34f2-e9be-4bd3-beca-8b916772e2be,1,0,28fecf1b-7cab-4087-b66e-2052edb8ce3a,28fecf1b-7cab-4087-b66e-2052edb8ce3a,1,0,6527be82-a665-4f8a-818b-a35b96b3484b,6527be82-a665-4f8a-818b-a35b96b3484b,1,0,d85b00b7-b0d8-4b91-8d7f-0c2da524d446,d85b00b7-b0d8-4b91-8d7f-0c2da524d446,1,0,cc906f05-5ea6-43cb-a084-c4ee51ca4bd5,cc906f05-5ea6-43cb-a084-c4ee51ca4bd5,1,0,83e30f0b-67b2-411b-9624-ac4c4bd7f94a,83e30f0b-67b2-411b-9624-ac4c4bd7f94a,1,0,c79ba5a5-e6d9-4a3f-ab23-eca876607f7f,c79ba5a5-e6d9-4a3f-ab23-eca876607f7f,1,0,ce5549bd-ba99-4259-86a3-36521bad59f5,ce5549bd-ba99-4259-86a3-36521bad59f5,1,0,f5417147-4d2a-4e49-911b-2bb5eccb8441,f5417147-4d2a-4e49-911b-2bb5eccb8441,1,0,20fbed2b-4393-4de0-a71d-017a336bdac0,20fbed2b-4393-4de0-a71d-017a336bdac0,1,0,2ca4fc58-798b-4fc3-8673-27688ce7a1f2,2ca4fc58-798b-4fc3-8673-27688ce7a1f2,1,0,fbbb2449-9a07-4229-8ea5-bee0afab5f56,fbbb2449-9a07-4229-8ea5-bee0afab5f56,1,0,9fdddb51-0605-4f64-8d2e-aa7dbcd37262,9fdddb51-0605-4f64-8d2e-aa7dbcd37262,1,0,3f3f1b41-57a9-4a82-bdfa-89a6653479ab,3f3f1b41-57a9-4a82-bdfa-89a6653479ab,1,0,fd12fbe2-56a2-4c9e-a072-989d826a5ea3,fd12fbe2-56a2-4c9e-a072-989d826a5ea3,1,0,f38b6034-5246-42a7-8f3c-51eaf3e5399c,f38b6034-5246-42a7-8f3c-51eaf3e5399c,1,0,08552af7-3c44-42c6-94c5-63a2316127fc,08552af7-3c44-42c6-94c5-63a2316127fc,1,0,41f6f6d1-b7cf-4477-907b-ce69fc08c799,41f6f6d1-b7cf-4477-907b-ce69fc08c799,1,0,9f1a61dd-b04f-48ae-b0c0-17cf23bdb04b,9f1a61dd-b04f-48ae-b0c0-17cf23bdb04b,1,0,0d124daf-dc52-4391-a2d9-3c43a45c422c,0d124daf-dc52-4391-a2d9-3c43a45c422c,1,0,a300ecc3-8031-4a50-a17d-b08cf3a72139,a300ecc3-8031-4a50-a17d-b08cf3a72139,1,0,e7e78b7e-b103-40d6-8064-f84e2d86ca3d,e7e78b7e-b103-40d6-8064-f84e2d86ca3d,1,0,dc14a27a-2299-4bd5-8c0e-5f84adae507a,dc14a27a-2299-4bd5-8c0e-5f84adae507a,1,0,bf20e6ce-bbe6-4523-9381-f9cb6cad348c,bf20e6ce-bbe6-4523-9381-f9cb6cad348c,1,0,9c443dd3-4acb-4c5a-9c4b-af8b0c87e861,9c443dd3-4acb-4c5a-9c4b-af8b0c87e861,1,0,98153b59-8cc6-4dc7-b945-99c1146d07da,98153b59-8cc6-4dc7-b945-99c1146d07da,1,0,52f3e20c-1cf7-4284-a083-6539782f4bc3,52f3e20c-1cf7-4284-a083-6539782f4bc3,1,0,657b8663-713c-4a80-81e1-8c0166742a35,657b8663-713c-4a80-81e1-8c0166742a35,1,0,8d8ac8f0-37e1-4637-87c7-5af82d05202b,8d8ac8f0-37e1-4637-87c7-5af82d05202b,1,0,8dad7f71-63cb-449a-bafd-79bd63f10310,8dad7f71-63cb-449a-bafd-79bd63f10310,1,0,866438d1-1223-4768-9c96-e6cb12f1a4d5,866438d1-1223-4768-9c96-e6cb12f1a4d5,1,0,d416cc2a-425f-4c01-a550-5a755ed78cc8,d416cc2a-425f-4c01-a550-5a755ed78cc8,1,0,df9db8d5-c5c2-4a9d-88fe-77247b2c417e,df9db8d5-c5c2-4a9d-88fe-77247b2c417e,1,0,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,6b70f7e1-8bdb-4fc4-9b95-0e045bfa288c,1,0,a890be6b-f050-4ea4-a388-570948ffd22b,a890be6b-f050-4ea4-a388-570948ffd22b,1,0,9039f720-5728-4918-87d5-8b2d07cabcfd,9039f720-5728-4918-87d5-8b2d07cabcfd,1,0,b00c31d6-4fc6-4189-9f72-f91742ec705f,b00c31d6-4fc6-4189-9f72-f91742ec705f,1,0,1333101b-82e8-41a9-a793-5af5dcd6f68a,1333101b-82e8-41a9-a793-5af5dcd6f68a,1,0,ae039438-89af-4217-910d-476115f51ab2,ae039438-89af-4217-910d-476115f51ab2,1,0,aaaa7d41-3399-41b5-b882-58af38121494,aaaa7d41-3399-41b5-b882-58af38121494,1,0,0f25646a-90f9-4747-a778-7efdaabc284c,0f25646a-90f9-4747-a778-7efdaabc284c,1,0,3705a086-46e6-4090-a52a-535908eea8a5,3705a086-46e6-4090-a52a-535908eea8a5,1,0,9b9cd161-5bee-4433-a0ec-b67deb099b5e,9b9cd161-5bee-4433-a0ec-b67deb099b5e,1,0,ca179cb5-65e1-4a55-bf12-096b926accb0,ca179cb5-65e1-4a55-bf12-096b926accb0,1,0,a6587758-f7af-4f85-81b4-4312c725824e,a6587758-f7af-4f85-81b4-4312c725824e,1,0,5d336d1e-24f9-404a-9671-3bcdc7c48a25,5d336d1e-24f9-404a-9671-3bcdc7c48a25,1,0,d508b3e9-4dac-40a3-9a0b-1cc76b4196ea,d508b3e9-4dac-40a3-9a0b-1cc76b4196ea,1,0,63470706-f14b-4733-87c2-d1173f5d7e7a,63470706-f14b-4733-87c2-d1173f5d7e7a,1,0,472ce1c2-9e83-418b-b1ec-e15e126bc919,472ce1c2-9e83-418b-b1ec-e15e126bc919,1,0,9fe30414-8261-4403-a854-f22b61824f69,9fe30414-8261-4403-a854-f22b61824f69,1,0,07bb26ac-bd97-465f-a192-db7fedbb579b,07bb26ac-bd97-465f-a192-db7fedbb579b,1,0,76cdcc51-0e6a-4f9c-a115-1864998c2add,76cdcc51-0e6a-4f9c-a115-1864998c2add,1,0,71c3e5d3-7504-433f-9d48-7c287b2b863b,71c3e5d3-7504-433f-9d48-7c287b2b863b,1,0,0894db61-51f6-4068-9634-e55d95e2a8ac,0894db61-51f6-4068-9634-e55d95e2a8ac,1,0,0d8c215d-1210-47a2-897d-a3257b9f849a,0d8c215d-1210-47a2-897d-a3257b9f849a,1,0,ea2e9a4e-eca1-4a6e-b7a6-8922a11334aa,ea2e9a4e-eca1-4a6e-b7a6-8922a11334aa,1,0,c971e0ba-53b8-4454-92f7-40b0d639058a,c971e0ba-53b8-4454-92f7-40b0d639058a,1,0,9d8496ea-fc0c-410d-994d-7480350d71d3,9d8496ea-fc0c-410d-994d-7480350d71d3,1,0,0f0456a8-ca04-4de4-9d9b-e8b0fdb8b860,0f0456a8-ca04-4de4-9d9b-e8b0fdb8b860,1,0,ed297409-6215-4fd4-b47d-a2247e0343da,ed297409-6215-4fd4-b47d-a2247e0343da,1,0,5b62e0d1-8dba-47db-8dbb-517ad935fa0d,5b62e0d1-8dba-47db-8dbb-517ad935fa0d,1,0,f1560584-99a3-48ac-b736-e7d33affe474,f1560584-99a3-48ac-b736-e7d33affe474,1,0,e7a63151-fc1a-4563-8768-26d854ab012b,e7a63151-fc1a-4563-8768-26d854ab012b,1,0,e7d0cc1f-f3ee-486e-b1f3-db8e6a6162cc,e7d0cc1f-f3ee-486e-b1f3-db8e6a6162cc,1,0,c54f31ce-114b-46d3-b4c6-12c8f07727ca,c54f31ce-114b-46d3-b4c6-12c8f07727ca,1,0,73c7750f-8291-4e19-8551-635cd6b94215,73c7750f-8291-4e19-8551-635cd6b94215,1,0,5a9c82c1-d0cd-48ff-b91c-38b950591e4c,5a9c82c1-d0cd-48ff-b91c-38b950591e4c,1,0,a1463001-f3d8-4064-95e4-cf49aedc2a8c,a1463001-f3d8-4064-95e4-cf49aedc2a8c,1,0,59855d19-29cd-4efd-a453-b19e574113ef,59855d19-29cd-4efd-a453-b19e574113ef,1,0,249b6436-bd44-4950-b118-7f40f7aaf794,249b6436-bd44-4950-b118-7f40f7aaf794,1,0,6a9f1485-21a4-41e8-b8a7-26340eff5085,6a9f1485-21a4-41e8-b8a7-26340eff5085,1,0,630845af-a7dc-4d1e-8c1a-44fa65aab036,630845af-a7dc-4d1e-8c1a-44fa65aab036,1,0,65dd4904-0837-4de5-a5e5-601151055d94,65dd4904-0837-4de5-a5e5-601151055d94,1,0,d20739a3-a149-4b64-b9ca-4a76aca06cb8,d20739a3-a149-4b64-b9ca-4a76aca06cb8,1,0,99c5e87a-f096-4315-8fbe-f596ea9c176f,99c5e87a-f096-4315-8fbe-f596ea9c176f,1,0,9dd57f32-90a1-4a1d-bc2a-c1b12461d963,9dd57f32-90a1-4a1d-bc2a-c1b12461d963,1,0,ce6d1259-af90-482b-b19a-405512321bd9,ce6d1259-af90-482b-b19a-405512321bd9,1,0,9b76ded4-814a-4267-99c5-2c8fb05ee352,9b76ded4-814a-4267-99c5-2c8fb05ee352,1,0,df48bfa3-5502-4a61-a79f-1dea043dac36,df48bfa3-5502-4a61-a79f-1dea043dac36,1,0,adee37e6-f087-422f-91b3-681f3d73189c,adee37e6-f087-422f-91b3-681f3d73189c,1,0,eb276904-cad7-4401-bb78-2d13946291f1,eb276904-cad7-4401-bb78-2d13946291f1,1,0,171a64b6-39d2-455f-b304-1c6ea8d85494,171a64b6-39d2-455f-b304-1c6ea8d85494,1,0,79ff04ac-4625-469b-916e-938f04de4dd2,79ff04ac-4625-469b-916e-938f04de4dd2,1,0,c5e9f987-4466-4161-8e36-278b0b3ce056,c5e9f987-4466-4161-8e36-278b0b3ce056,1,0,db445527-7bd2-448b-bf87-5ac0c10d742d,db445527-7bd2-448b-bf87-5ac0c10d742d,1,0,b6566d54-e821-4a2a-a447-0f533f35de91,b6566d54-e821-4a2a-a447-0f533f35de91,1,0,46568b9a-a765-4037-8a86-b184a570ab37,46568b9a-a765-4037-8a86-b184a570ab37,1,0,4fcc7278-2fec-49ee-b0ef-c7d5f5f698a4,4fcc7278-2fec-49ee-b0ef-c7d5f5f698a4,1,0,547a6dec-6fe8-439d-a8d9-ac2612af20d2,547a6dec-6fe8-439d-a8d9-ac2612af20d2,1,0,2bc2c4b7-dacb-4cb3-b5b2-712b19bebcd7,2bc2c4b7-dacb-4cb3-b5b2-712b19bebcd7,1,0,1e633034-6dcc-4564-9f40-348c32143314,1e633034-6dcc-4564-9f40-348c32143314,1,0,a43fbfd8-6324-4192-a1a6-5628a7edb4d2,a43fbfd8-6324-4192-a1a6-5628a7edb4d2,1,0,84395058-d46a-428c-b782-a9fa89fea14a,84395058-d46a-428c-b782-a9fa89fea14a,1,0,c3c1a825-6b35-4b09-8043-63f75b575707,c3c1a825-6b35-4b09-8043-63f75b575707,1,0,5465466d-48be-493a-aadc-e97046b010cc,5465466d-48be-493a-aadc-e97046b010cc,1,0,fa61df43-49e7-4d5f-a0b9-f35af199f9f5,fa61df43-49e7-4d5f-a0b9-f35af199f9f5,1,0,0b92cced-d818-400c-82b6-7726e912a478,0b92cced-d818-400c-82b6-7726e912a478,1,0,5feb9b74-3d94-4202-a96a-170968f54194,5feb9b74-3d94-4202-a96a-170968f54194,1,0,cc9679a5-1ed2-4290-8c9b-8a2f6614d053,cc9679a5-1ed2-4290-8c9b-8a2f6614d053,1,0,d8621f68-106e-4058-963f-56010491ae2e,d8621f68-106e-4058-963f-56010491ae2e,1,0,4766c40e-6330-4c1d-a64f-0c8c672886a4,4766c40e-6330-4c1d-a64f-0c8c672886a4,1,0,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,1,0,1f3057c2-135f-44b2-9f86-34481fbc5596,1f3057c2-135f-44b2-9f86-34481fbc5596,1,0,f8f0d92c-b7f0-496c-8d33-f8a57dfa16f2,f8f0d92c-b7f0-496c-8d33-f8a57dfa16f2,1,0,f2e2df50-52fc-4e95-909b-80fc91a68f62,f2e2df50-52fc-4e95-909b-80fc91a68f62,1,0,1a1d8dd0-1559-426c-ad3c-baa6eb3a53db,1a1d8dd0-1559-426c-ad3c-baa6eb3a53db,1,0,7a944c45-9b3d-411f-b2ef-de3c896092bb,7a944c45-9b3d-411f-b2ef-de3c896092bb,1,0,d2762764-b5c0-4aeb-8e89-3371972f22d8,d2762764-b5c0-4aeb-8e89-3371972f22d8,1,0,54f3902b-f29a-4f04-8c9d-68c318fcd076,54f3902b-f29a-4f04-8c9d-68c318fcd076,1,0,573f1753-9194-4aaf-9217-5cac70ff108f,573f1753-9194-4aaf-9217-5cac70ff108f,1,0,323997ca-488d-4d84-aa44-da60b6b4d414,323997ca-488d-4d84-aa44-da60b6b4d414,1,0,50d3e00e-1a83-4bd5-91db-0561560caf42,50d3e00e-1a83-4bd5-91db-0561560caf42,1,0,1f7ec25a-05b1-468b-8857-2bb1aed3678a,1f7ec25a-05b1-468b-8857-2bb1aed3678a,1,0,c8ba4901-7f70-4353-b039-d75f1cb3f5b7,c8ba4901-7f70-4353-b039-d75f1cb3f5b7,1,0,c121b8bc-ecbf-4775-b210-3c1e3502a6ac,c121b8bc-ecbf-4775-b210-3c1e3502a6ac,1,0,9f4d5fe5-9bda-4ba9-a313-db1ab0ea14d1,9f4d5fe5-9bda-4ba9-a313-db1ab0ea14d1,1,0,44afff59-0590-4929-93b8-7b49735f21b5,44afff59-0590-4929-93b8-7b49735f21b5,1,0,905624ea-b253-413f-b651-1eb2c5a7d52a,905624ea-b253-413f-b651-1eb2c5a7d52a,1,0,b639ed30-3e37-4c65-a39f-00fe735950eb,b639ed30-3e37-4c65-a39f-00fe735950eb,1,0,76ef7f67-0ce8-4ee2-9134-e793c41b8de3,76ef7f67-0ce8-4ee2-9134-e793c41b8de3,1,0,f137eb0f-bde7-412d-9229-d7a4f9456e6c,f137eb0f-bde7-412d-9229-d7a4f9456e6c,1,0,90880131-8065-4a7e-a0fa-ecff9e27363c,90880131-8065-4a7e-a0fa-ecff9e27363c,1,0,57e9fcea-342c-4089-bd10-befb3faf0dbd,57e9fcea-342c-4089-bd10-befb3faf0dbd,1,0,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,f85ff11a-163e-4d18-98bc-b0ebe83d34e4,1,0,51a0444d-13c8-45a8-97f6-f3f976964bf8,51a0444d-13c8-45a8-97f6-f3f976964bf8,1,0,9892f922-8745-4164-a200-94b5edc1ea0a,9892f922-8745-4164-a200-94b5edc1ea0a,1,0,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,38eb3fd1-57be-4dc2-bed4-d8107086bf2a,1,0,6b6d541b-5dc1-4150-b8d1-5844a694ac6a,6b6d541b-5dc1-4150-b8d1-5844a694ac6a,1,0,2b1619a6-c841-4963-8c51-c1d8d6ba3746,2b1619a6-c841-4963-8c51-c1d8d6ba3746,1,0,eab50f82-4612-47fd-a5c2-9678016a1937,eab50f82-4612-47fd-a5c2-9678016a1937,1,0,2609ba3c-e4de-45b3-86e0-93db39a21eee,2609ba3c-e4de-45b3-86e0-93db39a21eee,1,0,00dcfeab-7ba1-4a50-996e-4fd693dd0514,00dcfeab-7ba1-4a50-996e-4fd693dd0514,1,0,d21971c9-9aa6-448a-ab37-49ad0b0547ec,d21971c9-9aa6-448a-ab37-49ad0b0547ec,1,0,627438b8-c738-4e02-a0e7-cfd7fbf8eca1,627438b8-c738-4e02-a0e7-cfd7fbf8eca1,1,0,3e4361e9-2baf-407b-9320-b2a265b44e46,3e4361e9-2baf-407b-9320-b2a265b44e46,1,0,a5902ed4-a8f1-460e-aced-0094b2c384a3,a5902ed4-a8f1-460e-aced-0094b2c384a3,1,0,85b591b4-a93d-4fcb-bdc7-e6d44436e511,85b591b4-a93d-4fcb-bdc7-e6d44436e511,1,0,00418e6c-77b2-4753-b9ff-3a8013436f8a,00418e6c-77b2-4753-b9ff-3a8013436f8a,1,0,e2c76c41-4c47-4588-a081-7bd81ac1698b,e2c76c41-4c47-4588-a081-7bd81ac1698b,1,0,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,8deaa3d0-b36b-4f20-a9a8-11d829f5ef9d,1,0,26986f8d-d56d-4641-9184-2632d0881cca,26986f8d-d56d-4641-9184-2632d0881cca,1,0,92bec607-7217-42f6-8eb9-ace759672336,92bec607-7217-42f6-8eb9-ace759672336,1,0,144676de-f369-49f1-bb21-d60e073936df,144676de-f369-49f1-bb21-d60e073936df,1,0,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,d5537afb-df5f-4edf-a3d3-ff6b2a908ad9,1,0,38bf6d3b-5435-4bac-b9fc-23b80afeb760,38bf6d3b-5435-4bac-b9fc-23b80afeb760,1,0,644cf757-bff9-4e2e-b72b-1e736c42d4c3,644cf757-bff9-4e2e-b72b-1e736c42d4c3,1,0,a3c9a7eb-2104-4402-954c-3e12de4a7de3,a3c9a7eb-2104-4402-954c-3e12de4a7de3,1,0,a2a51b70-9570-4f53-9d30-e9a9b099a475,a2a51b70-9570-4f53-9d30-e9a9b099a475,1,0,556a0e57-5b3b-4303-a013-0bd296c506b8,556a0e57-5b3b-4303-a013-0bd296c506b8,1,0,fabbac92-cb98-4087-b3fa-387482ed0d86,fabbac92-cb98-4087-b3fa-387482ed0d86,1,0,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,1,0,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,304525f8-c697-4835-b0a6-4ed3cbcaf3c6,1,0,fdcbe67c-55fb-444d-bed8-cee956ca3530,fdcbe67c-55fb-444d-bed8-cee956ca3530,1,0,e09534e3-ac6e-42a6-86e8-564acb20089a,e09534e3-ac6e-42a6-86e8-564acb20089a,1,0,5e380276-2a08-435c-927e-a7f56f5a4dbc,5e380276-2a08-435c-927e-a7f56f5a4dbc,1,0,6ff5b3cb-efff-430d-bf0a-957405f116ca,6ff5b3cb-efff-430d-bf0a-957405f116ca,1,0,d06e845a-9f54-40dd-b0df-6988def62017,d06e845a-9f54-40dd-b0df-6988def62017,1,0,63223883-06cf-4d01-be95-5e410cc58a22,63223883-06cf-4d01-be95-5e410cc58a22,1,0,1929139f-dabb-4c40-9423-158093360889,1929139f-dabb-4c40-9423-158093360889,1,0,dad92df4-685b-4260-b35f-4d031262dfea,dad92df4-685b-4260-b35f-4d031262dfea,1,0,4399c19a-ddba-42e9-88b4-c5c28abad237,4399c19a-ddba-42e9-88b4-c5c28abad237,1,0,982315ba-df74-4a31-8929-71d1e5e6f147,982315ba-df74-4a31-8929-71d1e5e6f147,1,0,e4703f32-ad6e-4803-8776-7d32c57d3549,e4703f32-ad6e-4803-8776-7d32c57d3549,1,0,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,1,0,b8b267e3-75af-4140-b515-d99e8e748e84,b8b267e3-75af-4140-b515-d99e8e748e84,1,0,ff976027-75e8-475c-abfa-876d36733c13,ff976027-75e8-475c-abfa-876d36733c13,1,0,7452d9c0-cb03-4d1b-afd4-8855950f2ad8,7452d9c0-cb03-4d1b-afd4-8855950f2ad8,1,0,32d4a42d-6e4d-49db-b5bc-1ea6dbe9fe4d,32d4a42d-6e4d-49db-b5bc-1ea6dbe9fe4d,1,0,40c8b547-35d0-4dbd-8fa1-ba108c3022b1,40c8b547-35d0-4dbd-8fa1-ba108c3022b1,1,0,3f823f5b-e5a8-40af-8fc3-e4c6ffb18fa3,3f823f5b-e5a8-40af-8fc3-e4c6ffb18fa3,1,0,c0218ef0-4aa1-4ff1-963b-e6ab1001ae9e,c0218ef0-4aa1-4ff1-963b-e6ab1001ae9e,1,0,0a1837b6-9a0a-4a86-b929-89d032d41383,0a1837b6-9a0a-4a86-b929-89d032d41383,1,0,62ff29be-7d52-4c63-8726-c55bf69a64de,62ff29be-7d52-4c63-8726-c55bf69a64de,1,0,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,1,0,123b8af3-8724-4f77-b1d6-6768832a43a7,123b8af3-8724-4f77-b1d6-6768832a43a7,1,0,cb81fb9f-16a2-4265-92a9-b827ca2fd588,cb81fb9f-16a2-4265-92a9-b827ca2fd588,1,0,cf13e2d9-72a0-47c0-bae2-f674024bbdb2,cf13e2d9-72a0-47c0-bae2-f674024bbdb2,1,0,62d4d073-80df-41e6-a915-43a4f5575206,62d4d073-80df-41e6-a915-43a4f5575206,1,0,145ecede-baae-4725-832a-5387794922ed,145ecede-baae-4725-832a-5387794922ed,1,0,540be4e1-6eae-48e2-a645-8bd0a1259c65,540be4e1-6eae-48e2-a645-8bd0a1259c65,1,0,2fa09d14-6d28-4bfb-87c3-894e66ab6bca,2fa09d14-6d28-4bfb-87c3-894e66ab6bca,1,0,f772abd3-8ea0-41e9-aaca-c5375778941a,f772abd3-8ea0-41e9-aaca-c5375778941a,1,0,cfa1b3e7-747b-409a-8bb5-6d41b85b7105,cfa1b3e7-747b-409a-8bb5-6d41b85b7105,1,0,a1e494f8-96a4-41bd-9234-b87e8d8742c5,a1e494f8-96a4-41bd-9234-b87e8d8742c5,1,0,5c6b9fb5-7d29-4161-a81b-7c618ca07a47,5c6b9fb5-7d29-4161-a81b-7c618ca07a47,1,0,35bc58df-8aff-48dd-83a9-b60b0461f94d,35bc58df-8aff-48dd-83a9-b60b0461f94d,1,0,b322b047-16eb-4500-826a-6dfebb7d997a,b322b047-16eb-4500-826a-6dfebb7d997a,1,0,83ead93b-4ff6-487d-934e-25088944fccc,83ead93b-4ff6-487d-934e-25088944fccc,1,0,764c76cc-0473-4633-868d-02f96aa43c10,764c76cc-0473-4633-868d-02f96aa43c10,1,0,c8da922f-e31e-49b0-b90e-1c060424bde5,c8da922f-e31e-49b0-b90e-1c060424bde5,1,0,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,7b01236c-5ab7-43fa-aa0e-1ae55c8a4efe,1,0,eca025d2-4fe9-4542-b9f5-46ae2631256e,eca025d2-4fe9-4542-b9f5-46ae2631256e,1,0,9416a741-5106-454e-b953-81f3d99d5e71,9416a741-5106-454e-b953-81f3d99d5e71,1,0,30f6aedf-946f-400c-822d-5fa375b8fb1d,30f6aedf-946f-400c-822d-5fa375b8fb1d,1,0,46e313f7-54da-4884-89e8-cdba6ae30d30,46e313f7-54da-4884-89e8-cdba6ae30d30,1,0,feb1a5c1-c805-4079-8f05-8a44f51b0b02,feb1a5c1-c805-4079-8f05-8a44f51b0b02,1,0,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,ff7916bd-cbd1-4d9e-8aab-bad9fffaa0d4,1,0,1f55f330-7c0a-4a29-905f-51d664515bc5,1f55f330-7c0a-4a29-905f-51d664515bc5,1,0,308781d9-ea18-4c30-ba95-ef822e7ef739,308781d9-ea18-4c30-ba95-ef822e7ef739,1,0,a7f3ee04-4ffe-4a21-b2ad-92cd3f4acd8f,a7f3ee04-4ffe-4a21-b2ad-92cd3f4acd8f,1,0,6106e958-354c-4211-992c-3c3819e8828e,6106e958-354c-4211-992c-3c3819e8828e,1,0,9d6d77a9-1f55-4162-93a5-14bb3f3febaf,9d6d77a9-1f55-4162-93a5-14bb3f3febaf,1,0,61789ea5-aad2-4b3b-a1c7-3ff7409379eb,61789ea5-aad2-4b3b-a1c7-3ff7409379eb,1,0,2cd04d4c-2619-40c9-adf4-7bb281f045b6,2cd04d4c-2619-40c9-adf4-7bb281f045b6,1,0,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,1d6b8425-360c-4ab1-9bab-cc9a3b590bb2,1,0,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,9f67d228-79aa-44e6-8dc7-fae4fbdfef2a,1,0,231d3950-f363-4e63-83cd-8ddb81507c27,231d3950-f363-4e63-83cd-8ddb81507c27,1,0,87429f11-bf95-4013-bf13-da904570f88d,87429f11-bf95-4013-bf13-da904570f88d,1,0,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,6173cab2-e0f5-40c1-8e74-4f41fc8bd68f,1,0,feb41347-62db-41cf-ace0-d8b9de361af3,feb41347-62db-41cf-ace0-d8b9de361af3,1,0,5a088468-4065-4e0c-9b84-1162de8d3fdd,5a088468-4065-4e0c-9b84-1162de8d3fdd,1,0,dbdf3ae7-a0af-44b9-8e3d-c402d98cda03,dbdf3ae7-a0af-44b9-8e3d-c402d98cda03,1,0,f3ae1a2c-e0ca-461b-ba5a-76a6423c6325,f3ae1a2c-e0ca-461b-ba5a-76a6423c6325,1,0,b233d29c-3979-4ef6-b7f0-89ca88f65e82,b233d29c-3979-4ef6-b7f0-89ca88f65e82,1,0,684ca876-644e-43f5-b96a-1561fb5b1935,684ca876-644e-43f5-b96a-1561fb5b1935,1,0,5f91b00f-d8fc-4d63-8486-66339357ab22,5f91b00f-d8fc-4d63-8486-66339357ab22,1,0,16d44ab1-4bce-4df8-a215-6ed5173c75a8,16d44ab1-4bce-4df8-a215-6ed5173c75a8,1,0,86a9d7ab-7a96-4c58-8073-ca4b2b99cceb,86a9d7ab-7a96-4c58-8073-ca4b2b99cceb,1,0,1ae1a239-0d88-4467-af33-32bcfe6cf61d,1ae1a239-0d88-4467-af33-32bcfe6cf61d,1,0,375977c1-5745-4e78-a4df-cef966c0ccf8,375977c1-5745-4e78-a4df-cef966c0ccf8,1,0,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,2582a714-a6d6-4d37-b9a7-5e89e18b0f27,1,0,c3796d85-2a24-43c4-9673-64e56249a1d0,c3796d85-2a24-43c4-9673-64e56249a1d0,1,0,c234a467-ad6c-41d0-ac9e-8592acd8d9d2,c234a467-ad6c-41d0-ac9e-8592acd8d9d2,1,0,fc1066b5-20d4-4c73-85f8-9889e554d6e1,fc1066b5-20d4-4c73-85f8-9889e554d6e1,1,0,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,a9b6b5fd-1862-4207-87e8-5c25a8f86c57,1,0,731211c2-ef90-4883-9525-83cd91b742ac,731211c2-ef90-4883-9525-83cd91b742ac,1,0,0adf02da-940a-4bfc-afa5-59605494a169,0adf02da-940a-4bfc-afa5-59605494a169,1,0,8361991a-0f30-4a03-9a4c-90556b744f53,8361991a-0f30-4a03-9a4c-90556b744f53,1,0,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0,1,0,08427a9a-fb3a-4bc1-b2e2-72e4f89680cd,08427a9a-fb3a-4bc1-b2e2-72e4f89680cd,1,0,259cb8f5-9e78-4b2f-941b-ccb4b1112c8b,259cb8f5-9e78-4b2f-941b-ccb4b1112c8b,1,0,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892,1,0,73c1a829-0191-486b-97a0-7f333c6f8011,73c1a829-0191-486b-97a0-7f333c6f8011,1,0,db28f23f-a771-46c0-96e8-5e4389b28b8b,db28f23f-a771-46c0-96e8-5e4389b28b8b,1,0,5504f5d1-35d8-4a47-a0e1-003fe00395c1,5504f5d1-35d8-4a47-a0e1-003fe00395c1,1,0,56242b05-d722-4d4a-82d9-517e0e169d0b,56242b05-d722-4d4a-82d9-517e0e169d0b,1,0,f9196766-4ae2-4a73-bed6-4a8838323e02,f9196766-4ae2-4a73-bed6-4a8838323e02,1,0,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,4eeda6df-fb48-4c88-853f-9c35e2b3a3cf,1,0,52fd1e04-44b6-4405-a2de-ec5c0cf66b64,52fd1e04-44b6-4405-a2de-ec5c0cf66b64,1,0,9a647b38-73da-4491-997b-773059cfd1c9,9a647b38-73da-4491-997b-773059cfd1c9,1,0,50a1e3bf-8624-4474-854e-21b89aaf97ed,50a1e3bf-8624-4474-854e-21b89aaf97ed,1,0,503b3eab-b7f1-4ede-8845-3290a834cec7,503b3eab-b7f1-4ede-8845-3290a834cec7,1,0,847b97a3-d0bc-45e2-b06c-932bb22d8eca,847b97a3-d0bc-45e2-b06c-932bb22d8eca,1,0,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61,1,0,3116fa60-bc42-4dea-aa03-387896168690,3116fa60-bc42-4dea-aa03-387896168690,1,0,ca797560-8802-4bdc-b21f-7a7fd795beae,ca797560-8802-4bdc-b21f-7a7fd795beae,1,0,7b074b91-3c8e-48b3-8858-b6ea1c531f66,7b074b91-3c8e-48b3-8858-b6ea1c531f66,1,0,3df19dbf-efe7-4e31-99ad-fafb59ec1329,3df19dbf-efe7-4e31-99ad-fafb59ec1329,1,0,baf12d47-fbfe-4563-aa23-26d9f7e83169,baf12d47-fbfe-4563-aa23-26d9f7e83169,1,0,e2046f49-6fea-4bf4-92b0-92f3c8357bcf,e2046f49-6fea-4bf4-92b0-92f3c8357bcf,1,0,0ba11486-1972-4434-ab1a-5bb75cc05e9f,0ba11486-1972-4434-ab1a-5bb75cc05e9f,1,0,4ed9c555-7dd0-4577-bf62-152b4c5ec9f2,4ed9c555-7dd0-4577-bf62-152b4c5ec9f2,1,0,c1c62215-41b8-40bc-a806-1347db5b03e9,c1c62215-41b8-40bc-a806-1347db5b03e9,1,0,a24322f3-c7a5-4b25-bad6-9c75712a3e58,a24322f3-c7a5-4b25-bad6-9c75712a3e58,1,0,679d2b3b-a354-4dec-b49d-ab1163756e3a,679d2b3b-a354-4dec-b49d-ab1163756e3a,1,0,665e96bc-8ec1-4008-b9bd-db95a234b9b8,665e96bc-8ec1-4008-b9bd-db95a234b9b8,1,0,a8021ff9-f0ae-49ab-b8ac-5e3d8fe90d82,a8021ff9-f0ae-49ab-b8ac-5e3d8fe90d82,1,0,f09b09ce-9e3c-406a-8508-b6e7e6ec966e,f09b09ce-9e3c-406a-8508-b6e7e6ec966e,1,0,9bf55587-1ffe-42bc-b8e8-3f956956f689,9bf55587-1ffe-42bc-b8e8-3f956956f689,1,0,2f67931e-543f-457e-80fd-78ca754e2e9c,2f67931e-543f-457e-80fd-78ca754e2e9c,1,0,595e5752-36a7-4bba-8a40-26920acae01d,595e5752-36a7-4bba-8a40-26920acae01d,1,0,28801fba-c429-4afa-bdcd-b3ec3ec22fda,28801fba-c429-4afa-bdcd-b3ec3ec22fda,1,0,d1a873ae-d45b-4600-9419-e701dce3da02,d1a873ae-d45b-4600-9419-e701dce3da02,1,0,e3a31f0d-a98f-43c6-bc39-087095ae8c39,e3a31f0d-a98f-43c6-bc39-087095ae8c39,1,0,e39d8ff3-52db-4ba4-b4ea-42d5ee787076,e39d8ff3-52db-4ba4-b4ea-42d5ee787076,1,0,b1c1c2eb-f9cd-468a-8398-b0b7f611f832,b1c1c2eb-f9cd-468a-8398-b0b7f611f832,1,0,4bb0f7c3-62f3-4352-9bc8-e243dd18fe4a,4bb0f7c3-62f3-4352-9bc8-e243dd18fe4a,1,0,bc106ef9-3eeb-40d4-aa59-ae1855ba1744,bc106ef9-3eeb-40d4-aa59-ae1855ba1744,1,0,73d8b319-9bea-4638-a602-23c12f37c227,73d8b319-9bea-4638-a602-23c12f37c227,1,0,a43e9de0-2921-4c58-a5f8-7446258be967,a43e9de0-2921-4c58-a5f8-7446258be967,1,0,307656e3-df7f-46e7-946c-bbd439265c95,307656e3-df7f-46e7-946c-bbd439265c95,1,0,eb3dfdc7-58b8-4b1f-b079-368c262364c9,eb3dfdc7-58b8-4b1f-b079-368c262364c9,1,0,5030a318-f8f7-4ec7-80d6-6eee0772562f,5030a318-f8f7-4ec7-80d6-6eee0772562f,1,0,242e911d-e49c-4b8a-8543-cc2e079220fd,242e911d-e49c-4b8a-8543-cc2e079220fd,1,0,9ea39d31-3775-4fb8-a3f3-202e54354d49,9ea39d31-3775-4fb8-a3f3-202e54354d49,1,0,73044e20-148c-46e9-b5b5-973c91de0d61,73044e20-148c-46e9-b5b5-973c91de0d61,1,0,24cff6c8-6c20-4383-b97c-6afa52738960,24cff6c8-6c20-4383-b97c-6afa52738960,1,0,462e2694-750d-49ef-93ac-17a7779be68d,462e2694-750d-49ef-93ac-17a7779be68d,1,0,c24ff02e-5afc-45df-81cf-64ea2b261c2d,c24ff02e-5afc-45df-81cf-64ea2b261c2d,1,0,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,5d9d88ea-b2e4-425c-bb4d-a005e867d56c,1,0,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d,1,0,85639a53-b367-49ce-84f2-4e21d81c489b,85639a53-b367-49ce-84f2-4e21d81c489b,1,0,24b59586-178e-4efc-90ae-529553f3bb6c,24b59586-178e-4efc-90ae-529553f3bb6c,1,0,20e75dd5-222a-4100-aa43-3684991e3f21,20e75dd5-222a-4100-aa43-3684991e3f21,1,0,3c611832-4bc2-4229-a27d-d5dc82f3a498,3c611832-4bc2-4229-a27d-d5dc82f3a498,1,0,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,50e9eb52-02e3-44ff-9c9e-e76dbe38da63,1,0,5dadc422-1fbd-4918-9db3-09ec72c3404e,5dadc422-1fbd-4918-9db3-09ec72c3404e,1,0,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869,1,0,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d,1,0,c5478d09-c8d3-4cc6-878e-27656ecc8409,c5478d09-c8d3-4cc6-878e-27656ecc8409,1,0,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,01b97d2f-40b9-4f12-8bc5-ab75fd160b7c,1,0,75974146-5b1a-412c-b7d5-1575704bbdab,75974146-5b1a-412c-b7d5-1575704bbdab,1,0,949f87cb-258c-4b6b-95ee-8a7491a4b64e,949f87cb-258c-4b6b-95ee-8a7491a4b64e,1,0,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,8a348012-99dc-4dc9-8bec-0df3caf4cdc5,1,0,5c089988-5381-41ed-9f05-f85db46b8d94,5c089988-5381-41ed-9f05-f85db46b8d94,1,0,85a36352-1569-4ce4-aeba-477db524c36d,85a36352-1569-4ce4-aeba-477db524c36d,1,0,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb,1,0,d99991b8-3a81-4e18-b0ad-05fc3e3a199b,d99991b8-3a81-4e18-b0ad-05fc3e3a199b,1,0,dd383422-dddb-4a81-9326-015fd345b5c1,dd383422-dddb-4a81-9326-015fd345b5c1,1,0,b2e656c1-f4ff-4d95-b066-4ee11ce4dea8,b2e656c1-f4ff-4d95-b066-4ee11ce4dea8,1,0,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1,1,0,aa299fc6-051f-487c-ada4-451e08c4763c,aa299fc6-051f-487c-ada4-451e08c4763c,1,0,782cb93d-36e6-4923-b2b6-75caa3459cd6,782cb93d-36e6-4923-b2b6-75caa3459cd6,1,0,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,1,0,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,1,0,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,1,0,322645d4-e3fb-467b-a55d-d8e74cff2ea3,322645d4-e3fb-467b-a55d-d8e74cff2ea3,1,0,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,1,0,8363bd46-1ea5-44f0-858a-05bc03f6020e,8363bd46-1ea5-44f0-858a-05bc03f6020e,1,0,0f039952-09d3-49c8-b909-e8333a3fc8f9,0f039952-09d3-49c8-b909-e8333a3fc8f9,1,0,d8fc4644-5351-443c-8b5d-5de2c4b855d1,d8fc4644-5351-443c-8b5d-5de2c4b855d1,1,0,64ff6058-c6f3-4682-b9a1-11ec438fa447,64ff6058-c6f3-4682-b9a1-11ec438fa447,1,0,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,1,0,a321b6db-391b-4c65-8d27-ce486d10055e,a321b6db-391b-4c65-8d27-ce486d10055e,1,0,71dfde27-3762-4dd0-9252-6e703ce1b101,71dfde27-3762-4dd0-9252-6e703ce1b101,1,0,ced01234-9417-49ce-adf0-8cdd15e6dd7d,ced01234-9417-49ce-adf0-8cdd15e6dd7d,1,0,c1272bfc-196a-4f99-935f-e2516bc138d2,c1272bfc-196a-4f99-935f-e2516bc138d2,1,0,313e0688-745a-4385-b040-7ef8317a0eb7,313e0688-745a-4385-b040-7ef8317a0eb7,1,0,7fe61c5d-30bc-440d-9e40-12ff3b296616,7fe61c5d-30bc-440d-9e40-12ff3b296616,1,0,37c37f15-f84b-456b-aab6-729562dc0908,37c37f15-f84b-456b-aab6-729562dc0908,1,0,996c7873-1cc9-44f6-915b-5c6ed7ef2370,996c7873-1cc9-44f6-915b-5c6ed7ef2370,1,0,8dc08932-0988-4e82-8a5f-385c0694f9ff,8dc08932-0988-4e82-8a5f-385c0694f9ff,1,0,13dee5d8-f165-48de-9ccb-3ef0239f4b27,13dee5d8-f165-48de-9ccb-3ef0239f4b27,1,0,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,2767473e-79fb-4c7c-a7d1-a83a8f2df71d,1,0,0eea37cc-47f8-4819-85da-d4991f4e58ed,0eea37cc-47f8-4819-85da-d4991f4e58ed,1,0,45a2569e-820c-4d7d-ba74-4a781d26bb2b,45a2569e-820c-4d7d-ba74-4a781d26bb2b,1,0,8a13c899-1659-48cf-9aa2-07ca99547b7b,8a13c899-1659-48cf-9aa2-07ca99547b7b,1,0,eb3f959c-94a4-4e77-b9f9-e81954254079,eb3f959c-94a4-4e77-b9f9-e81954254079,1,0,91a0ceed-03ce-4914-9cd1-dec49bba336f,91a0ceed-03ce-4914-9cd1-dec49bba336f,1,0,99387869-f8b1-4269-bd26-e39380d17b69,99387869-f8b1-4269-bd26-e39380d17b69,1,0,4b2acdb9-fefd-4735-9dfd-d7d141967f3c,4b2acdb9-fefd-4735-9dfd-d7d141967f3c,1,0,bc07d643-a044-4882-b95b-2173a197fd0e,bc07d643-a044-4882-b95b-2173a197fd0e,1,0,826c2821-147d-4aaf-910c-acfbdb58a29f,826c2821-147d-4aaf-910c-acfbdb58a29f,1,0,aeea0075-bdeb-41b7-b9cc-1da7b500455f,aeea0075-bdeb-41b7-b9cc-1da7b500455f,1,0,11c086b0-c646-4701-983d-c38758286354,11c086b0-c646-4701-983d-c38758286354,1,0,21fad9b6-44df-417c-ba18-de4b8af98a34,21fad9b6-44df-417c-ba18-de4b8af98a34,1,0,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,1,0,7974e41d-5af3-4636-b405-c9405d89fb53,7974e41d-5af3-4636-b405-c9405d89fb53,1,0,36d6b0e1-5e10-408a-8eb1-09839e57690f,36d6b0e1-5e10-408a-8eb1-09839e57690f,1,0,6423b849-7ca4-4501-8856-445157d7e5df,6423b849-7ca4-4501-8856-445157d7e5df,1,0,0819e2b0-1eb0-41b3-ab89-0974bd926fb6,0819e2b0-1eb0-41b3-ab89-0974bd926fb6,1,0,e814287f-1c13-4f74-9507-d22a62394fd2,e814287f-1c13-4f74-9507-d22a62394fd2,1,0,417ac987-7369-45af-b670-fdffb048f33d,417ac987-7369-45af-b670-fdffb048f33d,1,0,640a5d72-dbc7-421b-afdb-cc3a4622ae04,640a5d72-dbc7-421b-afdb-cc3a4622ae04,1,0,79da84c1-5ac2-4472-8eb9-f0484b9582c2,79da84c1-5ac2-4472-8eb9-f0484b9582c2,1,0,2d0b161b-7d69-4ec4-a483-79bd458cb62c,2d0b161b-7d69-4ec4-a483-79bd458cb62c,1,0,f178bc1b-ebea-4fa9-8861-fe0d91f103e4,f178bc1b-ebea-4fa9-8861-fe0d91f103e4,1,0,e33a9c94-7e98-4b38-ba20-4546a90b2937,e33a9c94-7e98-4b38-ba20-4546a90b2937,1,0,1610e73c-58df-41cc-8349-51b920806821,1610e73c-58df-41cc-8349-51b920806821,1,0,ae37f465-1ee5-4f06-a834-deea9e9e0eb3,ae37f465-1ee5-4f06-a834-deea9e9e0eb3,1,0,c6ccf82f-f130-4037-9e89-1e0365b996a4,c6ccf82f-f130-4037-9e89-1e0365b996a4,1,0,c532963e-0d92-44b9-9cfc-43ed2744ccf9,c532963e-0d92-44b9-9cfc-43ed2744ccf9,1,0,6aff2855-24d4-4f90-b617-53326efdd1bd,6aff2855-24d4-4f90-b617-53326efdd1bd,1,0,0107a9c7-4c85-49c4-918a-925d85d57a0b,0107a9c7-4c85-49c4-918a-925d85d57a0b,1,0,6e1efa55-969b-4c2b-8af2-b11d672db5f0,6e1efa55-969b-4c2b-8af2-b11d672db5f0,1,0,e5b578a1-e33b-4d49-8064-427aa928a844,e5b578a1-e33b-4d49-8064-427aa928a844,1,0,f74e97ad-fef6-4122-a056-86f2d59dfdaf,f74e97ad-fef6-4122-a056-86f2d59dfdaf,1,0,df1ef691-1e86-4a80-8671-53b3d4504bfb,df1ef691-1e86-4a80-8671-53b3d4504bfb,1,0,474b9918-23da-4289-91a9-9115526c9b5d,474b9918-23da-4289-91a9-9115526c9b5d,1,0,1cf7be60-fd84-430d-b1b5-5619c51b8b3f,1cf7be60-fd84-430d-b1b5-5619c51b8b3f,1,0,60aa9d44-5986-490e-8093-f65e194b3607,60aa9d44-5986-490e-8093-f65e194b3607,1,0,a36dee5e-7184-4caf-bf46-3977b165093b,a36dee5e-7184-4caf-bf46-3977b165093b,1,0,aa3c61a7-c905-4b5a-a44d-e2ac5d79158a,aa3c61a7-c905-4b5a-a44d-e2ac5d79158a,1,0,182916b2-972b-4e39-93ba-d45aa7a195f5,182916b2-972b-4e39-93ba-d45aa7a195f5,1,0,2b654a53-7ce8-421f-aaf5-aa1451d91415,2b654a53-7ce8-421f-aaf5-aa1451d91415,1,0,30e55306-ea5c-4ef4-9903-ea030afa3d85,30e55306-ea5c-4ef4-9903-ea030afa3d85,1,0,234c1a72-8349-472a-8373-2a25ce6252f2,234c1a72-8349-472a-8373-2a25ce6252f2,1,0,b1ccb9f7-11ff-4ad2-8806-d64de84662f0,b1ccb9f7-11ff-4ad2-8806-d64de84662f0,1,0,539e0db9-be24-4086-9632-af20553ee50f,539e0db9-be24-4086-9632-af20553ee50f,1,0,862e2759-5311-4c68-8977-86133bcf8c0e,862e2759-5311-4c68-8977-86133bcf8c0e,1,0,b9adeb51-a009-4e83-85f8-bfa1547429d6,b9adeb51-a009-4e83-85f8-bfa1547429d6,1,0,7ac85789-9c69-40b6-9130-94c40ed440d4,7ac85789-9c69-40b6-9130-94c40ed440d4,1,0,0f77d06f-f736-451e-9e6b-28868e48f3ed,0f77d06f-f736-451e-9e6b-28868e48f3ed,1,0,b4d1b93e-a5d2-4e78-a455-080f8bec2404,b4d1b93e-a5d2-4e78-a455-080f8bec2404,1,0,e72e9bfa-3601-4497-8e7e-401e89fde699,e72e9bfa-3601-4497-8e7e-401e89fde699,1,0,04d29b84-772a-43ea-a66b-869ab5699dbc,04d29b84-772a-43ea-a66b-869ab5699dbc,1,0,1ad2775b-9bdf-4ba4-8326-4333ac38d185,1ad2775b-9bdf-4ba4-8326-4333ac38d185,1,0,7c8c359a-9f9b-44f2-972e-c8deabc359d3,7c8c359a-9f9b-44f2-972e-c8deabc359d3,1,0,ac9f4c2e-316b-4f96-8fe6-fb5a5a7e48ed,ac9f4c2e-316b-4f96-8fe6-fb5a5a7e48ed,1,0,da808c0e-b1b0-4d46-8c63-2bbe7d0dca9d,da808c0e-b1b0-4d46-8c63-2bbe7d0dca9d,1,0,b848d70a-9d08-4b1a-8df1-17697432516d,b848d70a-9d08-4b1a-8df1-17697432516d,1,0,9a30b92d-0c5b-4e11-a741-2b6efa8ac229,9a30b92d-0c5b-4e11-a741-2b6efa8ac229,1,0,92876c9e-52ff-480d-9878-5766f4f9d12c,92876c9e-52ff-480d-9878-5766f4f9d12c,1,0,b729d739-5249-4765-85ee-fd792bb22911,b729d739-5249-4765-85ee-fd792bb22911,1,0,d65c4485-7bac-4206-9a6c-7156f4bb876d,d65c4485-7bac-4206-9a6c-7156f4bb876d,1,0,d431d1e2-13dc-495c-9de1-b5ec872eceed,d431d1e2-13dc-495c-9de1-b5ec872eceed,1,0,e8bec681-d269-41ba-9184-556cbcc27d74,e8bec681-d269-41ba-9184-556cbcc27d74,1,0,b8aaef91-f72c-4127-a494-771c13694ca4,b8aaef91-f72c-4127-a494-771c13694ca4,1,0,433a114f-3198-4ef6-bbf8-ce9b54fdb736,433a114f-3198-4ef6-bbf8-ce9b54fdb736,1,0,02ac711c-e38e-422e-ac28-ba1b298df9cc,02ac711c-e38e-422e-ac28-ba1b298df9cc,1,0,3e090261-4aa2-4ece-9f77-62df83c890b3,3e090261-4aa2-4ece-9f77-62df83c890b3,1,0,9292034c-24e8-49a7-9b77-7974e117847d,9292034c-24e8-49a7-9b77-7974e117847d,1,0,3327b7d4-62fc-44cc-83b4-c449bfa4e706,3327b7d4-62fc-44cc-83b4-c449bfa4e706,1,0,43ecee25-68eb-48cf-bbaa-aee71052438f,43ecee25-68eb-48cf-bbaa-aee71052438f,1,0,93799f8b-0188-4546-8815-35e733bcc2b1,93799f8b-0188-4546-8815-35e733bcc2b1,1,0,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,9dc3a563-11bb-40a7-8431-c1d4367ccbaf,1,0,c9ea4e72-5f01-42ae-88e3-52e49757b26f,c9ea4e72-5f01-42ae-88e3-52e49757b26f,1,0,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,38d92d75-c8b8-42d6-9e0a-6dc0811a8652,1,0,0f564dbe-6a6e-48df-9718-5cea5d608ee6,0f564dbe-6a6e-48df-9718-5cea5d608ee6,1,0,a623fef1-96eb-41ba-93fe-09162698f419,a623fef1-96eb-41ba-93fe-09162698f419,1,0,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,45a8d7cb-c927-4a4e-a653-13fd9b1eda10,1,0,d8e1f92f-9efa-422d-bb21-43bd1a363cec,d8e1f92f-9efa-422d-bb21-43bd1a363cec,1,0,c1416383-bd7e-4dc4-ad88-d98ac87157fd,c1416383-bd7e-4dc4-ad88-d98ac87157fd,1,0,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,5e8bddc7-7836-4ec8-b6e1-0c15d228f47e,1,0,d5d9976a-4cc0-43f7-afd6-d43cebb07940,d5d9976a-4cc0-43f7-afd6-d43cebb07940,1,0,899f1526-d6bc-42ef-852e-7297a06db9e3,899f1526-d6bc-42ef-852e-7297a06db9e3,1,0,1b4feda1-e555-4b85-b236-b21153a7246f,1b4feda1-e555-4b85-b236-b21153a7246f,1,0,61d3cef4-2c42-417d-a762-a2d2f5a28924,61d3cef4-2c42-417d-a762-a2d2f5a28924,1,0,793d7af5-b499-4646-9e8e-a5728bf71338,793d7af5-b499-4646-9e8e-a5728bf71338,1,0,e4850e53-03b0-43ba-8365-feb89eb38102,e4850e53-03b0-43ba-8365-feb89eb38102,1,0,c694c132-1ddb-4273-818a-d3cca88c082a,c694c132-1ddb-4273-818a-d3cca88c082a,1,0,cd4da06e-c06b-4233-befc-1bc4c4db58e3,cd4da06e-c06b-4233-befc-1bc4c4db58e3,1,0,918a01fe-f753-4a4a-9200-55bbd6edaf5f,918a01fe-f753-4a4a-9200-55bbd6edaf5f,1,0,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,51a8a209-2a9d-419f-9fda-f7aeac68bdbe,1,0,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,ef43961f-8cac-4f3f-bcee-c6bc51c4148c,1,0,7ab6acda-6732-4582-8092-d43f9a98a28d,7ab6acda-6732-4582-8092-d43f9a98a28d,1,0,5ab1d405-bfc3-4440-8cdd-3a63013b064d,5ab1d405-bfc3-4440-8cdd-3a63013b064d,1,0,d6704410-6297-481e-a6cb-6d6aa566b4f8,d6704410-6297-481e-a6cb-6d6aa566b4f8,1,0,398937ca-b035-43bd-b0da-8c5153a87cb8,398937ca-b035-43bd-b0da-8c5153a87cb8,1,0,5b441321-bd1e-4c56-8f09-365b05985eed,5b441321-bd1e-4c56-8f09-365b05985eed,1,0,6bcba052-4d81-409d-b1a2-eed6be6fb024,6bcba052-4d81-409d-b1a2-eed6be6fb024,1,0,559f1e66-e8da-437a-aa27-d0e1be6619b6,559f1e66-e8da-437a-aa27-d0e1be6619b6,1,0,704d69cd-d921-4957-a004-43bd7eb4d979,704d69cd-d921-4957-a004-43bd7eb4d979,1,0,f1594682-16ac-408c-8307-a7a8db79b09f,f1594682-16ac-408c-8307-a7a8db79b09f,1,0,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,863aebd2-ce32-4f1f-bb3d-d6062ab187fd,1,0,4cb814d8-cb1b-4366-b500-e820ad526b0c,4cb814d8-cb1b-4366-b500-e820ad526b0c,1,0,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,7da5f3b4-6330-4112-9d3a-7bb42996aa4a,1,0,6c43df9f-ca36-415b-afec-302807820d73,6c43df9f-ca36-415b-afec-302807820d73,1,0,c7fb7551-806a-40b2-8879-14cd897b60d8,c7fb7551-806a-40b2-8879-14cd897b60d8,1,0,68337023-d573-4d04-95b6-44f73258c2a4,68337023-d573-4d04-95b6-44f73258c2a4,1,0,7cf39337-b722-486f-8e37-a62239d0ccd2,7cf39337-b722-486f-8e37-a62239d0ccd2,1,0,2571cfaf-d876-4385-a60a-1488aacf7080,2571cfaf-d876-4385-a60a-1488aacf7080,1,0,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,4ea1dd0a-6eab-48e4-a6a7-314d0e211d6c,1,0,44398566-3189-4584-8f8a-9deb1d07ce41,44398566-3189-4584-8f8a-9deb1d07ce41,1,0,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,6f4e3082-9c8c-4289-8cc2-704c8d2763ce,1,0,accfa63a-479d-4996-95bc-cdf5acdf203c,accfa63a-479d-4996-95bc-cdf5acdf203c,1,0,351998e0-8939-4dd4-a833-f4756bcc53b8,351998e0-8939-4dd4-a833-f4756bcc53b8,1,0,093332f5-3eb4-478c-ac95-59dcdc96765a,093332f5-3eb4-478c-ac95-59dcdc96765a,1,0,cd69bad8-524e-4be4-88cc-7732a88b38b8,cd69bad8-524e-4be4-88cc-7732a88b38b8,1,0,0a32248c-6994-4988-90d1-30882bc9da6b,0a32248c-6994-4988-90d1-30882bc9da6b,1,0,b57b53cb-6972-4bda-ae46-96571be1ebec,b57b53cb-6972-4bda-ae46-96571be1ebec,1,0,1a1a9636-fb72-4e4a-af96-5858442b1e61,1a1a9636-fb72-4e4a-af96-5858442b1e61,1,0,bca9cf34-9e11-4014-976a-28c4330b136e,bca9cf34-9e11-4014-976a-28c4330b136e,1,0,65fffe1a-6f36-4f50-975f-4471ad29d3ec,65fffe1a-6f36-4f50-975f-4471ad29d3ec,1,0,8fe5dad5-686a-4631-ae05-2917c33f7d83,8fe5dad5-686a-4631-ae05-2917c33f7d83,1,0,edef86c6-73bf-4e47-b62d-b2b548a732cd,edef86c6-73bf-4e47-b62d-b2b548a732cd,1,0,a1715044-d76f-4238-ba3e-989d04078d83,a1715044-d76f-4238-ba3e-989d04078d83,1,0,e72e59c0-391d-497e-9407-063e0edf573e,e72e59c0-391d-497e-9407-063e0edf573e,1,0,ae8a1e69-ee1c-4efa-8d63-0279b18617f6,ae8a1e69-ee1c-4efa-8d63-0279b18617f6,1,0,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,a7ec91a5-2ed4-4ecd-b794-fcd3bb5ea4a2,1,0,299c47a7-0b30-4f62-8f5c-f087ad6411fb,299c47a7-0b30-4f62-8f5c-f087ad6411fb,1,0,4d4724df-24fb-4c59-9d04-3f984906214a,4d4724df-24fb-4c59-9d04-3f984906214a,1,0,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,95b10bc8-39ef-43f5-b74e-f36cfa9bc806,1,0,cb9b73ee-8531-48d9-9266-9aaa4336a612,cb9b73ee-8531-48d9-9266-9aaa4336a612,1,0,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,b7b80237-d642-4c21-a9ee-64fc4ed20d2f,1,0,d042687f-0725-4611-a868-f5b4f6a3a3a8,d042687f-0725-4611-a868-f5b4f6a3a3a8,1,0,bb143340-7fff-49ef-b121-355c96613f78,bb143340-7fff-49ef-b121-355c96613f78,1,0,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,cd5fbbcb-19b8-4c0b-93c7-ebdf642826db,1,0,f2f69644-80dc-4b5e-a208-ed1de131e25e,f2f69644-80dc-4b5e-a208-ed1de131e25e,1,0,73060f72-6d08-47da-aac8-d4d2ed8f871c,73060f72-6d08-47da-aac8-d4d2ed8f871c,1,0,82e8ac21-c2aa-47de-89ae-ea6cc10cc862,82e8ac21-c2aa-47de-89ae-ea6cc10cc862,1,0,13b27ec3-2be9-4959-92e5-94ba7bb64f03,13b27ec3-2be9-4959-92e5-94ba7bb64f03,1,0,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,9f832f4b-ae60-4d81-9ffd-6e00f7e02560,1,0,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,6f6ef6ac-5bb7-41e4-b6d5-0f068e8cb176,1,0,821225ea-1bad-49a6-a422-80d8a09baf13,821225ea-1bad-49a6-a422-80d8a09baf13,1,0,d0106f3a-8490-4277-a278-75c318ec252c,d0106f3a-8490-4277-a278-75c318ec252c,1,0,5035aa55-d557-419a-89e2-10ed0f8d109b,5035aa55-d557-419a-89e2-10ed0f8d109b,1,0,5f93d2af-64ff-41cc-8403-4a0e83160fea,5f93d2af-64ff-41cc-8403-4a0e83160fea,1,0,c12c90e4-7c40-489b-b14b-6b9442016e0f,c12c90e4-7c40-489b-b14b-6b9442016e0f,1,0,6371e288-3502-4d66-9006-b5a36107c0b7,6371e288-3502-4d66-9006-b5a36107c0b7,1,0,245814f7-028c-4c13-98eb-15412e851f81,245814f7-028c-4c13-98eb-15412e851f81,1,0,0132e564-2cd3-4930-8962-1068532f4be4,0132e564-2cd3-4930-8962-1068532f4be4,1,0,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,57d0f9b0-18d0-48ba-9f3c-d106f66ac602,1,0,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,3a7cfd4c-c943-43c2-a8d5-6d8ab3a10fc9,1,0,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,36b8b08f-0da3-4dbd-9aa8-73220ca9101d,1,0,7021fca5-d612-43e1-927b-7f822153cf75,7021fca5-d612-43e1-927b-7f822153cf75,1,0,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,9fd16d51-91bb-4973-a7c4-cf4db87da8bf,1,0,ee0a8d23-660a-492b-a813-b57394acee05,ee0a8d23-660a-492b-a813-b57394acee05,1,0,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,d1eda8f4-ffdd-445a-882c-6124d9f7fcf2,1,0,11c5930d-f882-46bd-9e7b-63e5344f6604,11c5930d-f882-46bd-9e7b-63e5344f6604,1,0,ade21e2e-349f-414b-8f35-6ae3b6a4064d,ade21e2e-349f-414b-8f35-6ae3b6a4064d,1,0,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,cce823c6-3bd5-4e46-91f6-8715cb72b1d5,1,0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,f3a8dd22-4469-4a3b-a7dd-78a5624b7bf0,1,0,83f51efe-e2af-459a-b59f-2c036124ac23,83f51efe-e2af-459a-b59f-2c036124ac23,1,0,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,6ed466d7-e016-4d9c-9c0e-8deed48cbd70,1,0,b03829e9-ba22-4584-85f0-c36d63f48242,b03829e9-ba22-4584-85f0-c36d63f48242,1,0,084a7c95-a59b-4861-b8b3-b5710a57ac60,084a7c95-a59b-4861-b8b3-b5710a57ac60,1,0,efcea6da-6746-4e00-913a-14cab38b5d84,efcea6da-6746-4e00-913a-14cab38b5d84,1,0,aff367fb-7fca-44d0-adf9-3731f14834f6,aff367fb-7fca-44d0-adf9-3731f14834f6,1,0,a2782760-dd4c-44d2-a785-814d6f610455,a2782760-dd4c-44d2-a785-814d6f610455,1,0,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,245162d8-6ae1-47e5-a0c9-0d5f2e5d8ea8,1,0,6581ac1f-11ef-42b8-9f3b-590bb7546e63,6581ac1f-11ef-42b8-9f3b-590bb7546e63,1,0,ce952e88-35b7-4506-81ac-d7081e50a650,ce952e88-35b7-4506-81ac-d7081e50a650,1,0,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,5d7a53fa-1a89-4e6e-868c-4077bd84c0ce,1,0,3bf1281f-7570-4633-86b9-3e953a7e6647,3bf1281f-7570-4633-86b9-3e953a7e6647,1,0,715dc289-5b14-4ee0-8716-9c15958b9069,715dc289-5b14-4ee0-8716-9c15958b9069,1,0,92707138-5004-4378-8477-f909166d319d,92707138-5004-4378-8477-f909166d319d,1,0,43661775-43bb-4d9e-bfbb-c46e7d194ca3,43661775-43bb-4d9e-bfbb-c46e7d194ca3,1,0,532637ef-be0d-4f42-9747-a88e17eb3def,532637ef-be0d-4f42-9747-a88e17eb3def,1,0,61127152-3e24-40b4-8a23-5eb6cae568ff,61127152-3e24-40b4-8a23-5eb6cae568ff,1,0,ffd987e3-e8af-4d46-881e-1e312e74dbac,ffd987e3-e8af-4d46-881e-1e312e74dbac,1,0,ad1142ed-183d-47a3-800c-997a3770e11e,ad1142ed-183d-47a3-800c-997a3770e11e,1,0,ebef37c6-4808-4683-93be-036ce19cafd5,ebef37c6-4808-4683-93be-036ce19cafd5,1,0,66364cd4-aaa5-421d-96d6-3c283c14650d,66364cd4-aaa5-421d-96d6-3c283c14650d,1,0,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,fdbbbf8b-dacf-436e-8d8b-1e2b8e854b17,1,0,3c54d440-e908-43d6-a5cc-bb64620c82d7,3c54d440-e908-43d6-a5cc-bb64620c82d7,1,0,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,23a240a2-52ee-46ab-89d9-50dcee2cc8d2,1,0,bf1dd911-8ee1-407b-acae-10c85b74baf3,bf1dd911-8ee1-407b-acae-10c85b74baf3,1,0,e924058f-25c3-4744-a565-836b824991b7,e924058f-25c3-4744-a565-836b824991b7,1,0,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,bc6a47a1-a3f3-4d7e-9dad-099bd3dba751,1,0,518dcd70-4ccf-4866-a94f-7ceec7dd2801,518dcd70-4ccf-4866-a94f-7ceec7dd2801,1,0,f9950ab5-1077-4033-bbbf-53899a1bcf33,f9950ab5-1077-4033-bbbf-53899a1bcf33,1,0,8f16763b-86f0-4ad0-b786-cce7dcb3460e,8f16763b-86f0-4ad0-b786-cce7dcb3460e,1,0,0481bc65-6a32-46b9-ae87-993ba52a29a5,0481bc65-6a32-46b9-ae87-993ba52a29a5,1,0,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,36ebebbb-dff1-4dbd-870b-58bd4a71fa1f,1,0,dbc5f419-63b0-4cbe-90ff-c0101105e46c,dbc5f419-63b0-4cbe-90ff-c0101105e46c,1,0,c708f6e9-b7a0-4046-90f3-83527da7b872,c708f6e9-b7a0-4046-90f3-83527da7b872,1,0,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,0006b44a-3a0c-4be4-8dd0-bd0db9ddcc4d,1,0,14256e0a-a947-42a3-8e36-47bfbb052a0c,14256e0a-a947-42a3-8e36-47bfbb052a0c,1,0,1b1aa77a-d14b-4751-a7da-0b5bac4db461,1b1aa77a-d14b-4751-a7da-0b5bac4db461,1,0,c0dcdb22-6719-4597-a781-bca1370909e5,c0dcdb22-6719-4597-a781-bca1370909e5,1,0,7ebf99c3-33d2-4e4c-ac45-ca4ed0c3c100,7ebf99c3-33d2-4e4c-ac45-ca4ed0c3c100,1,0,7a34f723-cd14-4949-a40f-7ce579bf0449,7a34f723-cd14-4949-a40f-7ce579bf0449,1,0,5cdc9ac7-bba9-4ed1-845a-607976fc4679,5cdc9ac7-bba9-4ed1-845a-607976fc4679,1,0,86c22871-6d1c-44e0-8ade-ce4bdeb23321,86c22871-6d1c-44e0-8ade-ce4bdeb23321,1,0,da51de81-4d4f-46b5-a308-7b50db6c45a7,da51de81-4d4f-46b5-a308-7b50db6c45a7,1,0,c2a8c2d3-ff13-4a13-acd4-797118c4e767,c2a8c2d3-ff13-4a13-acd4-797118c4e767,1,0,bc6adf75-8666-49f3-9703-b0014dfee123,bc6adf75-8666-49f3-9703-b0014dfee123,1,0,30632f54-b779-4857-a5cc-c53fe8887ee5,30632f54-b779-4857-a5cc-c53fe8887ee5,1,0,07629bf6-5544-4de9-b1d8-851cb03766cb,07629bf6-5544-4de9-b1d8-851cb03766cb,1,0,d449a85f-2e26-4512-b98c-7be3007966ed,d449a85f-2e26-4512-b98c-7be3007966ed,1,0,581be829-b097-4f95-a0c4-7ca3f13c29fc,581be829-b097-4f95-a0c4-7ca3f13c29fc,1,0,dd978355-1fb7-44a0-ba88-4e72e9cd67a9,dd978355-1fb7-44a0-ba88-4e72e9cd67a9,1,0,087480bb-8c89-4b00-a29b-b7e29926478d,087480bb-8c89-4b00-a29b-b7e29926478d,1,0,685373b7-638a-439a-8cba-703d56e4e404,685373b7-638a-439a-8cba-703d56e4e404,1,0,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,eafaec9c-030b-4e5f-8fa8-e17dad2feec9,1,0,df22b227-b2c3-4e65-9706-7582f99fe59c,df22b227-b2c3-4e65-9706-7582f99fe59c,1,0,35828c88-f1ec-42e7-b189-78748931ee4a,35828c88-f1ec-42e7-b189-78748931ee4a,1,0,8a41b8f1-93fc-44e6-bf45-0d1fa9d24f4a,8a41b8f1-93fc-44e6-bf45-0d1fa9d24f4a,1,0,1cfba08f-d5e5-4833-b494-a25d0477e9c3,1cfba08f-d5e5-4833-b494-a25d0477e9c3,1,0,ae22743b-6d21-4fbb-bb4c-fee53e2b87cb,ae22743b-6d21-4fbb-bb4c-fee53e2b87cb,1,0,921a0a14-8c06-4894-95ce-423000769364,921a0a14-8c06-4894-95ce-423000769364,1,0,3805ee39-a48a-499a-9ef8-9c2a5985404f,3805ee39-a48a-499a-9ef8-9c2a5985404f,1,0,07ccfe87-e1ab-4da7-92cb-a612e0972b0b,07ccfe87-e1ab-4da7-92cb-a612e0972b0b,1,0,08c2f92c-eb05-49e7-bfc9-4a89607b9864,08c2f92c-eb05-49e7-bfc9-4a89607b9864,1,0,6d751379-89a7-49b5-93e5-578329c63d9c,6d751379-89a7-49b5-93e5-578329c63d9c,1,0,c3f156ef-947e-4ebb-883f-4f099a116063,c3f156ef-947e-4ebb-883f-4f099a116063,1,0,5e3ab0a3-c0a6-4f41-85d3-2eede4abb555,5e3ab0a3-c0a6-4f41-85d3-2eede4abb555,1,0,a065ffc3-f50b-4a78-9b84-bfc4e5515a4b,a065ffc3-f50b-4a78-9b84-bfc4e5515a4b,1,0,4cba5a06-1484-4dd1-8e35-2d702c7d96d0,4cba5a06-1484-4dd1-8e35-2d702c7d96d0,1,0,e98e9e56-2995-430c-bd3b-f1070aec15a5,e98e9e56-2995-430c-bd3b-f1070aec15a5,1,0,d35c51b0-4cb7-4f9c-8aac-6a25a1b49adf,d35c51b0-4cb7-4f9c-8aac-6a25a1b49adf,1,0,8a7546f4-bfc9-4732-bf60-43a41e2c8753,8a7546f4-bfc9-4732-bf60-43a41e2c8753,1,0,16244165-d5a4-4012-8bb5-7f5fee1111af,16244165-d5a4-4012-8bb5-7f5fee1111af,1,0,290b72ad-004f-46ab-be5e-47557543b965,290b72ad-004f-46ab-be5e-47557543b965,1,0,e1b2ccf9-5a8f-4008-86f3-d2c7cf5581d1,e1b2ccf9-5a8f-4008-86f3-d2c7cf5581d1,1,0,fa0e0792-bffb-47ce-866f-9e8dbdab17a4,fa0e0792-bffb-47ce-866f-9e8dbdab17a4,1,0,263bcd20-9878-48d4-aac4-b371ec49d8d6,263bcd20-9878-48d4-aac4-b371ec49d8d6,1,0,da1d8660-2757-4cea-bae0-c2210b9406ae,da1d8660-2757-4cea-bae0-c2210b9406ae,1,0,d60329c6-8f48-481d-82e7-18da355cb09c,d60329c6-8f48-481d-82e7-18da355cb09c,1,0,67a04d72-afea-487a-b629-e4b7dfc1df32,67a04d72-afea-487a-b629-e4b7dfc1df32,1,0,c4b14162-b25b-4099-9ec3-7251848ef08a,c4b14162-b25b-4099-9ec3-7251848ef08a,1,0,8eb5ba97-eb38-4357-8bfc-e9618280800d,8eb5ba97-eb38-4357-8bfc-e9618280800d,1,0,b72f73d5-e274-472b-871b-16af72dab603,b72f73d5-e274-472b-871b-16af72dab603,1,0,b008d184-0b61-460d-9490-89ecc1cd58ba,b008d184-0b61-460d-9490-89ecc1cd58ba,1,0,c8340e2f-6958-4bcd-8e17-499c4adfe60b,c8340e2f-6958-4bcd-8e17-499c4adfe60b,1,0,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,c72831cd-d064-4fe8-9603-64e6d7b8ac4d,1,0,03f68d82-752c-45d1-bf9a-60ecd21a2c81,03f68d82-752c-45d1-bf9a-60ecd21a2c81,1,0,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,307e8938-e347-4eff-b2fb-fd0b8f4aa27f,1,0,d4fffc79-2841-49a9-a382-e9e4138984df,d4fffc79-2841-49a9-a382-e9e4138984df,1,0,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,84e4c572-5b32-46e0-82a0-0c76d4ef5d73,1,0,9f41f903-d316-4189-8dc0-603ea9036c1c,9f41f903-d316-4189-8dc0-603ea9036c1c,1,0,e19e70d6-8707-4dde-ae69-7bd97035ca03,e19e70d6-8707-4dde-ae69-7bd97035ca03,1,0,425b5272-1130-457d-8a05-aee8fad681d9,425b5272-1130-457d-8a05-aee8fad681d9,1,0,8d583436-f2a6-4a33-8137-1376f5754643,8d583436-f2a6-4a33-8137-1376f5754643,1,0,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,4a864e74-41ce-4673-a080-bc3c2ba1b8ee,1,0,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,d279958e-6dd4-4bb0-a65f-c8768b4c4d96,1,0,8f09cbed-6f24-461f-9b35-31c64310e74a,8f09cbed-6f24-461f-9b35-31c64310e74a,1,0,2d66502d-77ab-4cc9-9ccf-5433458fae9f,2d66502d-77ab-4cc9-9ccf-5433458fae9f,1,0,cff48da7-3c46-4602-83e8-90c9ea53e107,cff48da7-3c46-4602-83e8-90c9ea53e107,1,0,7155472d-c791-402c-96e1-d25612024c88,7155472d-c791-402c-96e1-d25612024c88,1,0,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,fb90c261-24a7-4cef-8a2c-85c0e4fdd64a,1,0,9005911d-ea81-48b6-bf50-1a328ff4d7be,9005911d-ea81-48b6-bf50-1a328ff4d7be,1,0,7df12006-c0c0-42a6-b852-bdced72c62e3,7df12006-c0c0-42a6-b852-bdced72c62e3,1,0,9c00987d-3c55-40eb-bae8-f36e71e4ef87,9c00987d-3c55-40eb-bae8-f36e71e4ef87,1,0,29273130-5142-48c9-8399-00e5ab4b6203,29273130-5142-48c9-8399-00e5ab4b6203,1,0,9e14cd7e-1293-4008-baf8-88df6a98abf7,9e14cd7e-1293-4008-baf8-88df6a98abf7,1,0,211d226f-dac6-43d5-8720-952da4339e35,211d226f-dac6-43d5-8720-952da4339e35,1,0,df67cdcd-20ff-46d4-902b-dc4d81ee46bd,df67cdcd-20ff-46d4-902b-dc4d81ee46bd,1,0,98e3aace-52a6-4911-8205-92165adca6de,98e3aace-52a6-4911-8205-92165adca6de,1,0,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,91f4dbf9-d539-4239-a95d-c1d9e14e50f8,1,0,577e5fea-b792-4c8b-b3b3-a03a14b64b04,577e5fea-b792-4c8b-b3b3-a03a14b64b04,1,0,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,ba5ec2d6-1791-42b5-8e6f-04d1d18e9469,1,0,b18d312b-f9c3-4f37-ac77-d499e949f154,b18d312b-f9c3-4f37-ac77-d499e949f154,1,0,ace2beea-d393-412f-8b71-b845b665e2c4,ace2beea-d393-412f-8b71-b845b665e2c4,1,0,463b8966-a5f9-4a80-82b9-1608a1622e13,463b8966-a5f9-4a80-82b9-1608a1622e13,1,0,f02e807c-6cd3-4a4f-8dad-73bd56ee98ff,f02e807c-6cd3-4a4f-8dad-73bd56ee98ff,1,0,eefd00fe-3241-498f-aeb4-d429a86ab563,eefd00fe-3241-498f-aeb4-d429a86ab563,1,0,802d3489-318f-467d-a9f4-d7c644edac60,802d3489-318f-467d-a9f4-d7c644edac60,1,0,3fd4bc77-2a1b-4750-a54a-4171c8d40027,3fd4bc77-2a1b-4750-a54a-4171c8d40027,1,0,5b27fde9-fa80-48b1-aea1-73e132b9a944,5b27fde9-fa80-48b1-aea1-73e132b9a944,1,0,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,00bf04d6-6a8e-4b13-94cf-36c1c6090cd8,1,0,a747ec6b-f230-49b4-a929-7ed1ba87b078,a747ec6b-f230-49b4-a929-7ed1ba87b078,1,0,796f8fb4-d9cd-40ae-936b-8a70d2eb1121,796f8fb4-d9cd-40ae-936b-8a70d2eb1121,1,0,01cb357c-af28-4855-afae-45b6df19b344,01cb357c-af28-4855-afae-45b6df19b344,1,0,26e58429-1e08-454a-b4d7-2470390149fb,26e58429-1e08-454a-b4d7-2470390149fb,1,0,daa42bf5-9c32-4913-bc27-38f77ccc1a9f,daa42bf5-9c32-4913-bc27-38f77ccc1a9f,1,0,7620b61a-b0d1-4c71-bc80-72c48e17b96d,7620b61a-b0d1-4c71-bc80-72c48e17b96d,1,0,4802e016-a9e9-47d0-916b-b42194a1f388,4802e016-a9e9-47d0-916b-b42194a1f388,1,0,a1740d1f-1b8f-4db5-be5e-0eac44e934b8,a1740d1f-1b8f-4db5-be5e-0eac44e934b8,1,0,4062674a-4a81-494d-82bc-4984cd7c7903,4062674a-4a81-494d-82bc-4984cd7c7903,1,0,782a8801-06ca-4d63-bf8b-63d2320766d8,782a8801-06ca-4d63-bf8b-63d2320766d8,1,0,93a73123-d98c-4286-9269-7bfcedd115e8,93a73123-d98c-4286-9269-7bfcedd115e8,1,0,c5985c02-1824-4ce9-b415-1621dd2ee864,c5985c02-1824-4ce9-b415-1621dd2ee864,1,0,993ce747-cdc9-445f-ad7d-daf53cd5f7e9,993ce747-cdc9-445f-ad7d-daf53cd5f7e9,1,0,e819aaf6-3dfb-492a-8a4a-50a7c6854790,e819aaf6-3dfb-492a-8a4a-50a7c6854790,1,0,62b95ba1-f213-42fb-90f3-a03e8094bc9e,62b95ba1-f213-42fb-90f3-a03e8094bc9e,1,0,619b534d-5605-40d3-9b8c-4443a21d7795,619b534d-5605-40d3-9b8c-4443a21d7795,1,0,a010bbf4-d547-4576-9797-28e3096ffed3,a010bbf4-d547-4576-9797-28e3096ffed3,1,0,a44c3eb2-1054-41ca-82e8-fc35336e7009,a44c3eb2-1054-41ca-82e8-fc35336e7009,1,0,01f67911-4ca7-4668-b970-62c299b98e56,01f67911-4ca7-4668-b970-62c299b98e56,1,0,20c89c94-f77f-4e14-8c97-2a70c1419ce3,20c89c94-f77f-4e14-8c97-2a70c1419ce3,1,0,aa509aa3-dd45-41f3-82c7-59662c2e2c47,aa509aa3-dd45-41f3-82c7-59662c2e2c47,1,0,c4552529-e69e-4c5c-bd66-04b2f7dac281,c4552529-e69e-4c5c-bd66-04b2f7dac281,1,0,381b49ba-793a-4418-9fd4-598844fb72a6,381b49ba-793a-4418-9fd4-598844fb72a6,1,0,1aee302d-df31-49ea-b542-436dc1d79ae1,1aee302d-df31-49ea-b542-436dc1d79ae1,1,0,593509da-d33c-49ff-a62c-a28cbc4651c1,593509da-d33c-49ff-a62c-a28cbc4651c1,1,0,5e346a0b-a322-4565-adb9-70131fb05fa3,5e346a0b-a322-4565-adb9-70131fb05fa3,1,0,9a69c559-194b-4f74-9879-82740260f5f6,9a69c559-194b-4f74-9879-82740260f5f6,1,0,93bf1dcf-670d-4c8b-bdbf-e43c2edf8056,93bf1dcf-670d-4c8b-bdbf-e43c2edf8056,1,0,8a06f980-78f3-42f4-9d96-da2e0f0f36a7,8a06f980-78f3-42f4-9d96-da2e0f0f36a7,1,0,fee2aa74-7a81-4ab2-a457-2edf8ac1aa2d,fee2aa74-7a81-4ab2-a457-2edf8ac1aa2d,1,0,2e19fb7b-270f-4181-b4a1-640280bbbc5c,2e19fb7b-270f-4181-b4a1-640280bbbc5c,1,0,3981b13c-f8e1-44cc-a8e8-59ee9635d029,3981b13c-f8e1-44cc-a8e8-59ee9635d029,1,0,cf69b045-665d-4f6c-827f-5044beacd125,cf69b045-665d-4f6c-827f-5044beacd125,1,0,aa773eef-0c4a-49be-9f5e-9131bc041415,aa773eef-0c4a-49be-9f5e-9131bc041415,1,0,9b31e474-01d4-4c3b-a633-3a2ff3917d62,9b31e474-01d4-4c3b-a633-3a2ff3917d62,1,0,1c09bf33-9b54-4bfd-bc92-e7324025fab0,1c09bf33-9b54-4bfd-bc92-e7324025fab0,1,0,8d7750e9-899f-4434-8702-44cd02681779,8d7750e9-899f-4434-8702-44cd02681779,1,0,d85244dc-c417-4e69-9aa7-7ad313ecb940,d85244dc-c417-4e69-9aa7-7ad313ecb940,1,0,3bebf5e9-68bb-48dc-a39d-cbdca2dbecb1,3bebf5e9-68bb-48dc-a39d-cbdca2dbecb1,1,0,cd392ef0-dedb-4f83-9a2c-a24190ee0dc0,cd392ef0-dedb-4f83-9a2c-a24190ee0dc0,1,0,bb2f0c1c-3cfb-4a26-b6de-5bbeb5614587,bb2f0c1c-3cfb-4a26-b6de-5bbeb5614587,1,0,0713de12-87d5-4877-bd8a-2b6466df67df,0713de12-87d5-4877-bd8a-2b6466df67df,1,0,b3f188f4-d83e-4e97-b7d3-fc384b46a80a,b3f188f4-d83e-4e97-b7d3-fc384b46a80a,1,0,b848aafc-44fb-4dfe-8eec-233dc08fbbb6,b848aafc-44fb-4dfe-8eec-233dc08fbbb6,1,0,c4d7c569-4649-4f98-a048-45f3c5933670,c4d7c569-4649-4f98-a048-45f3c5933670,1,0,6dc05d69-bd54-4e8a-8985-c2ddfa0aaffb,6dc05d69-bd54-4e8a-8985-c2ddfa0aaffb,1,0,ad08b104-01f8-4900-a06c-baa1d55eba84,ad08b104-01f8-4900-a06c-baa1d55eba84,1,0,9352d10d-188f-4074-8dd1-7be5c11525e3,9352d10d-188f-4074-8dd1-7be5c11525e3,1,0,1933634a-6f10-48e7-99f0-60ac338f7832,1933634a-6f10-48e7-99f0-60ac338f7832,1,0,655deec5-c079-4748-8521-b3f10c243394,655deec5-c079-4748-8521-b3f10c243394,1,0,f6d4d818-d54c-4337-82cf-abd5e6dbe770,f6d4d818-d54c-4337-82cf-abd5e6dbe770,1,0,656c447b-291f-4e62-81ac-1c004841aa72,656c447b-291f-4e62-81ac-1c004841aa72,1,0,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,c9a06c8d-2f6d-4e03-bc62-a1a19f17faf3,1,0,5ba93404-58ad-4321-9a62-27db828f75f6,5ba93404-58ad-4321-9a62-27db828f75f6,1,0,3da20e86-1d83-4935-b425-a91392dc8f35,3da20e86-1d83-4935-b425-a91392dc8f35,1,0,b56f25d2-72a9-4d80-8998-77ac3097c873,b56f25d2-72a9-4d80-8998-77ac3097c873,1,0,03bd775a-e0a1-4205-82ce-6068e73ad134,03bd775a-e0a1-4205-82ce-6068e73ad134,1,0,40bed47b-7754-4a70-b51a-47385fd46e83,40bed47b-7754-4a70-b51a-47385fd46e83,1,0,773ef914-5e7e-4ec1-bcdb-b2d111b560e6,773ef914-5e7e-4ec1-bcdb-b2d111b560e6,1,0,1e5a4f93-1ab9-4775-9538-2a1772215d89,1e5a4f93-1ab9-4775-9538-2a1772215d89,1,0,c25db165-0734-4fef-b161-e5164954a616,c25db165-0734-4fef-b161-e5164954a616,1,0,37e3d914-643e-4963-b4a0-7bc6727c0c9b,37e3d914-643e-4963-b4a0-7bc6727c0c9b,1,0,b6902500-3e03-4e83-a077-00500abc00b6,b6902500-3e03-4e83-a077-00500abc00b6,1,0,d253aa54-a447-44aa-bb13-82fd1ce22af4,d253aa54-a447-44aa-bb13-82fd1ce22af4,1,0,8936f114-7a0e-4a4c-8752-ccacab410778,8936f114-7a0e-4a4c-8752-ccacab410778,1,0,55649242-42fd-468f-a1e4-f6cd8871f7a4,55649242-42fd-468f-a1e4-f6cd8871f7a4,1,0,980e0883-cd8f-48c8-896f-ef185650f5c2,980e0883-cd8f-48c8-896f-ef185650f5c2,1,0,06ca1680-e641-499c-94ad-2d5ce5561747,06ca1680-e641-499c-94ad-2d5ce5561747,1,0,35bbf75b-99d0-447b-acb0-a3d2c98bea56,35bbf75b-99d0-447b-acb0-a3d2c98bea56,1,0,c31e34db-41ff-4db3-a4d0-f780f67070f6,c31e34db-41ff-4db3-a4d0-f780f67070f6,1,0,7a014fcb-a4b8-4c1c-b0de-21907a917c25,7a014fcb-a4b8-4c1c-b0de-21907a917c25,1,0,1688ef5d-72df-4bc4-a879-89033d466ad7,1688ef5d-72df-4bc4-a879-89033d466ad7,1,0,d3b09b09-df2d-40e5-86ce-84dab4898231,d3b09b09-df2d-40e5-86ce-84dab4898231,1,0,344cb0de-315d-4d05-93f8-8a1f53208470,344cb0de-315d-4d05-93f8-8a1f53208470,1,0,cd869887-0b0e-43db-8b51-04fe4a1341d5,cd869887-0b0e-43db-8b51-04fe4a1341d5,1,0,98aa5d5e-6c0e-4b9b-a3fa-335635d15217,98aa5d5e-6c0e-4b9b-a3fa-335635d15217,1,0,a7973409-b18e-4b88-ad50-e2ae89470d8f,a7973409-b18e-4b88-ad50-e2ae89470d8f,1,0,a537875e-492e-4cf2-96e9-e2e97bb206da,a537875e-492e-4cf2-96e9-e2e97bb206da,1,0,cd8fd85f-f02e-4f11-b4b4-40670febfaca,cd8fd85f-f02e-4f11-b4b4-40670febfaca,1,0,3f023afb-c02a-42ee-9afe-0f47ef3fe721,3f023afb-c02a-42ee-9afe-0f47ef3fe721,1,0,d7fe80d3-7fcf-427e-a991-5384f0c3947e,d7fe80d3-7fcf-427e-a991-5384f0c3947e,1,0,085a08f3-9d93-429d-9b1b-9065ab8363f7,085a08f3-9d93-429d-9b1b-9065ab8363f7,1,0,a530c0a1-c1d2-40bb-9d0e-320074dbb684,a530c0a1-c1d2-40bb-9d0e-320074dbb684,1,0,55c63580-16f1-4d6f-a40b-e630f71ebb98,55c63580-16f1-4d6f-a40b-e630f71ebb98,1,0,16939af9-e459-43da-8e0d-5d5891af6e0c,16939af9-e459-43da-8e0d-5d5891af6e0c,1,0,1d736a09-6c8f-433a-bf5b-201996bf4c62,1d736a09-6c8f-433a-bf5b-201996bf4c62,1,0,157988ad-d482-41df-b3e3-f2a0383d7130,157988ad-d482-41df-b3e3-f2a0383d7130,1,0,33af87a9-db69-41da-a33a-0435da2155e3,33af87a9-db69-41da-a33a-0435da2155e3,1,0,c95831b4-7d1d-4a9a-b5d0-caa03c4f4eca,c95831b4-7d1d-4a9a-b5d0-caa03c4f4eca,1,0,81b63f1d-2c65-4efb-8599-8a4d97b612ab,81b63f1d-2c65-4efb-8599-8a4d97b612ab,1,0,4b13a2c6-a6ce-47a0-8d9e-1a5dbe8d4b00,4b13a2c6-a6ce-47a0-8d9e-1a5dbe8d4b00,1,0,d1dde981-615a-461f-b0c5-a85f51003a2c,d1dde981-615a-461f-b0c5-a85f51003a2c,1,0,f5970c48-63d7-4064-bdfc-482b72939347,f5970c48-63d7-4064-bdfc-482b72939347,1,0,5c8039c0-34d8-4443-bd8f-dfe3dc2977a8,5c8039c0-34d8-4443-bd8f-dfe3dc2977a8,1,0,210972af-8687-4526-b288-60e7ee76cd61,210972af-8687-4526-b288-60e7ee76cd61,1,0,335f379a-2974-44ce-a668-e7ffe2ce6263,335f379a-2974-44ce-a668-e7ffe2ce6263,1,0,7edd75a2-9d03-4330-9185-28d0f0d4a2e4,7edd75a2-9d03-4330-9185-28d0f0d4a2e4,1,0,f7cc4f9e-cf9a-41f5-865f-d64108b981a5,f7cc4f9e-cf9a-41f5-865f-d64108b981a5,1,0,b58f8947-344c-4902-832c-d8004da55c34,b58f8947-344c-4902-832c-d8004da55c34,1,0,35cccc1d-3d67-4d39-aa79-2c30a5347587,35cccc1d-3d67-4d39-aa79-2c30a5347587,1,0,b6ee01eb-31ab-4f39-b4ff-37a04e3c7f35,b6ee01eb-31ab-4f39-b4ff-37a04e3c7f35,1,0,0776dfb2-67e0-4e11-9f94-abde790ff7e2,0776dfb2-67e0-4e11-9f94-abde790ff7e2,1,0,9c92b833-7406-48e2-9f59-69d575a3898f,9c92b833-7406-48e2-9f59-69d575a3898f,1,0,0cc5334f-8147-455c-8262-540324415812,0cc5334f-8147-455c-8262-540324415812,1,0,f3c4e6db-7c4e-4027-8bfd-f7854d566fc1,f3c4e6db-7c4e-4027-8bfd-f7854d566fc1,1,0,0eeb2f75-7092-4487-891f-cdbc9aa978cb,0eeb2f75-7092-4487-891f-cdbc9aa978cb,1,0,4ac60443-c7cb-492f-98b4-7e48bf9bfaa6,4ac60443-c7cb-492f-98b4-7e48bf9bfaa6,1,0,22979d50-ea57-4fab-9673-1b537838aead,22979d50-ea57-4fab-9673-1b537838aead,1,0,14676ee5-c247-46c6-a37e-c4362de79bb9,14676ee5-c247-46c6-a37e-c4362de79bb9,1,0,9fa36fe3-814e-4472-94ee-5d9d2b230b24,9fa36fe3-814e-4472-94ee-5d9d2b230b24,1,0,4b59dc62-0352-45a8-b33b-c42f4eea75ee,4b59dc62-0352-45a8-b33b-c42f4eea75ee,1,0,ea8a50ce-f09c-49f7-be58-ff2864e4eaa3,ea8a50ce-f09c-49f7-be58-ff2864e4eaa3,1,0,2020d672-bef4-4b30-885e-7f41364e412b,2020d672-bef4-4b30-885e-7f41364e412b,1,0,c292ddbc-9402-4c43-93d8-f8efafa6456e,c292ddbc-9402-4c43-93d8-f8efafa6456e,1,0,0281cbd6-972d-4632-9a6a-f8791e2534ee,0281cbd6-972d-4632-9a6a-f8791e2534ee,1,0,bae01f18-b6f3-44e4-93c3-ffcb3ef01b98,bae01f18-b6f3-44e4-93c3-ffcb3ef01b98,1,0,98d66bf0-617a-40aa-97bd-896d37a966ab,98d66bf0-617a-40aa-97bd-896d37a966ab,1,0,1847bb2f-8309-4c49-b752-ef7ec16d4230,1847bb2f-8309-4c49-b752-ef7ec16d4230,1,0,ca23f432-e2a3-4385-8cc1-7e9c96f9d7a1,ca23f432-e2a3-4385-8cc1-7e9c96f9d7a1,1,0,e1856045-f394-45b8-9f0c-298812f1f514,e1856045-f394-45b8-9f0c-298812f1f514,1,0,eb175c1d-7fcb-4807-82e3-688639468116,eb175c1d-7fcb-4807-82e3-688639468116,1,0,4ed9c099-700f-409b-bd91-e24719046953,4ed9c099-700f-409b-bd91-e24719046953,1,0,85b935b4-5eec-40cf-9d99-02cb3f599492,85b935b4-5eec-40cf-9d99-02cb3f599492,1,0,5764a412-4a20-4b2e-9905-ce74a9cac3ae,5764a412-4a20-4b2e-9905-ce74a9cac3ae,1,0,c4330791-d8f7-400f-b270-dee567e7a695,c4330791-d8f7-400f-b270-dee567e7a695,1,0,aab8ec4d-51de-4c1a-9794-266c119332d1,aab8ec4d-51de-4c1a-9794-266c119332d1,1,0,77cb6e52-37a9-423c-8260-6998161adcb5,77cb6e52-37a9-423c-8260-6998161adcb5,1,0,de258ab8-2d16-4c69-9490-5819b7ae3d08,de258ab8-2d16-4c69-9490-5819b7ae3d08,1,0,f7aacf70-0b59-410a-9929-ab4ab8a2431c,f7aacf70-0b59-410a-9929-ab4ab8a2431c,1,0,5bb6ba7a-ed61-4cdd-b3db-ec9da292e7a4,5bb6ba7a-ed61-4cdd-b3db-ec9da292e7a4,1,0,b37a9edd-b6bc-40eb-b5de-f54968abc119,b37a9edd-b6bc-40eb-b5de-f54968abc119,1,0,52338832-b15a-4e56-b13d-141141677008,52338832-b15a-4e56-b13d-141141677008,1,0,e9616402-88cc-44ae-96ca-ba20cf7d38ad,e9616402-88cc-44ae-96ca-ba20cf7d38ad,1,0,1b8212d7-b834-460c-9a2b-68a5de889e5b,1b8212d7-b834-460c-9a2b-68a5de889e5b,1,0,a816deca-4863-44e2-a8ff-89bfa5fbb0ac,a816deca-4863-44e2-a8ff-89bfa5fbb0ac,1,0,157f3df0-97b7-461b-bd3e-1f2e12658adf,157f3df0-97b7-461b-bd3e-1f2e12658adf,1,0,d2d6968c-fbe6-4e09-9cdb-653ca9a97fcc,d2d6968c-fbe6-4e09-9cdb-653ca9a97fcc,1,0,ea6f491e-9ec9-456d-ae30-4a258d87dff6,ea6f491e-9ec9-456d-ae30-4a258d87dff6,1,0,c67cddce-64d0-45eb-8abb-5c76bbe27f93,c67cddce-64d0-45eb-8abb-5c76bbe27f93,1,0,4f1aa113-6d77-46c8-ac21-9e5545553499,4f1aa113-6d77-46c8-ac21-9e5545553499,1,0,6ccec21e-f26f-482c-9ce2-1f058fc492c1,6ccec21e-f26f-482c-9ce2-1f058fc492c1,1,0,d903569d-911d-4277-a26f-afe2bf67eb09,d903569d-911d-4277-a26f-afe2bf67eb09,1,0,b5ac7de5-565f-4637-b267-dde3637e336b,b5ac7de5-565f-4637-b267-dde3637e336b,1,0,d4a6ab09-259f-4476-834c-a2b57cdeac05,d4a6ab09-259f-4476-834c-a2b57cdeac05,1,0,a56ff7f4-2259-455f-b707-b98aacd7d0b2,a56ff7f4-2259-455f-b707-b98aacd7d0b2,1,0,8c9636c3-0a84-4575-b4c7-6d8bb588e1b0,8c9636c3-0a84-4575-b4c7-6d8bb588e1b0,1,0,76e03401-7c07-4037-a464-d7377852de1d,76e03401-7c07-4037-a464-d7377852de1d,1,0,dc8239e8-fddf-411e-b51a-4230b63236cd,dc8239e8-fddf-411e-b51a-4230b63236cd,1,0,3b861376-2864-4de8-ba59-2a2835d7eaf6,3b861376-2864-4de8-ba59-2a2835d7eaf6,1,0,02910dcd-9e66-4239-a421-8067faf59577,02910dcd-9e66-4239-a421-8067faf59577,1,0,76d5a67f-bb11-4937-a66d-cdce28165562,76d5a67f-bb11-4937-a66d-cdce28165562,1,0,b99a23a5-bfbf-46ec-8268-ff89afdfc63a,b99a23a5-bfbf-46ec-8268-ff89afdfc63a,1,0,cdb93924-62ce-4268-9915-e6c67c1b9cb8,cdb93924-62ce-4268-9915-e6c67c1b9cb8,1,0,1139b6c7-7b55-45b4-98cf-ccac3bfaaa6c,1139b6c7-7b55-45b4-98cf-ccac3bfaaa6c,1,0,33c39990-f4fc-4629-83ba-b43b05a40ca6,33c39990-f4fc-4629-83ba-b43b05a40ca6,1,0,0a136ad9-22ad-4ba7-a31a-40a193b49d26,0a136ad9-22ad-4ba7-a31a-40a193b49d26,1,0,208c7b8c-3df9-4441-8ebf-34ffa81572a2,208c7b8c-3df9-4441-8ebf-34ffa81572a2,1,0,8c17fd7c-74d7-496a-a843-42022afb0707,8c17fd7c-74d7-496a-a843-42022afb0707,1,0,710059de-c70e-4b6e-b2a0-11197139144d,710059de-c70e-4b6e-b2a0-11197139144d,1,0,091ccac1-9a63-4a89-bb0c-333b274b0c70,091ccac1-9a63-4a89-bb0c-333b274b0c70,1,0,849f00c3-2f18-414c-97f6-32a99173fab9,849f00c3-2f18-414c-97f6-32a99173fab9,1,0,b456d820-8034-4381-960d-66d9f86b0a4b,b456d820-8034-4381-960d-66d9f86b0a4b,1,0,bd55fd03-cf67-4333-a554-98e03d18f780,bd55fd03-cf67-4333-a554-98e03d18f780,1,0,6eac5f7b-0952-4c94-9028-529b14ffcd4f,6eac5f7b-0952-4c94-9028-529b14ffcd4f,1,0,a587cade-4c91-4769-9c6a-a4fb4fe94196,a587cade-4c91-4769-9c6a-a4fb4fe94196,1,0,1a7c774d-5b86-4051-b797-3081e19fa30a,1a7c774d-5b86-4051-b797-3081e19fa30a,1,0,00949768-5833-4fe2-8752-b009d1bceef8,00949768-5833-4fe2-8752-b009d1bceef8,1,0,167455d1-6658-409f-834c-f6ccfe7b25de,167455d1-6658-409f-834c-f6ccfe7b25de,1,0,1300c46e-24d4-45cf-a899-3d26b5cf0b50,1300c46e-24d4-45cf-a899-3d26b5cf0b50,1,0,4cde6fdc-85fa-4c00-896c-51a68f5f10a5,4cde6fdc-85fa-4c00-896c-51a68f5f10a5,1,0,f41de07b-cba3-4bb8-9ec0-64ec59753f84,f41de07b-cba3-4bb8-9ec0-64ec59753f84,1,0,f78a5650-4d6c-4c17-95e0-e95cf8d9ad4b,f78a5650-4d6c-4c17-95e0-e95cf8d9ad4b,1,0,c5b3ca21-8f7b-4933-853c-7d95b17b5631,c5b3ca21-8f7b-4933-853c-7d95b17b5631,1,0,8b0faa1e-09da-4ba4-894e-e86abc5d39df,8b0faa1e-09da-4ba4-894e-e86abc5d39df,1,0,cb50b309-1b6c-400c-9e9e-67204dcccaae,cb50b309-1b6c-400c-9e9e-67204dcccaae,1,0,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,e2b482cb-6954-4e6a-abe9-d0a01f64b73a,1,0,2a6e1f2b-7378-456b-9657-9e971eaff716,2a6e1f2b-7378-456b-9657-9e971eaff716,1,0,c3cdea20-3055-4b4e-a531-a02d4f3ed294,c3cdea20-3055-4b4e-a531-a02d4f3ed294,1,0,225a011b-337d-4c83-9771-95eebce18024,225a011b-337d-4c83-9771-95eebce18024,1,0,ffd14055-0847-48da-8807-0ba07decf6a5,ffd14055-0847-48da-8807-0ba07decf6a5,1,0,ee808b7e-8313-4838-8a5a-9b49e3ce7e3e,ee808b7e-8313-4838-8a5a-9b49e3ce7e3e,1,0,a8450a10-c18c-4b99-828b-870f38c32991,a8450a10-c18c-4b99-828b-870f38c32991,1,0,ad5e61a9-2f12-4629-9d7b-7882cc885992,ad5e61a9-2f12-4629-9d7b-7882cc885992,1,0,68a66e43-123c-4dc4-8eb7-3b728a6dbf40,68a66e43-123c-4dc4-8eb7-3b728a6dbf40,1,0,b016e858-7a3b-473a-a9b7-a6c718d0a028,b016e858-7a3b-473a-a9b7-a6c718d0a028,1,0,7db81d96-e359-4157-b5cb-3b50622d6556,7db81d96-e359-4157-b5cb-3b50622d6556,1,0,aa09ff66-3f4a-4746-9a99-697a2915b3fc,aa09ff66-3f4a-4746-9a99-697a2915b3fc,1,0,21305c37-31fb-46f3-85bc-8743c22faa02,21305c37-31fb-46f3-85bc-8743c22faa02,1,0,c5bace94-8fbc-4ad1-9567-a41332e8f00a,c5bace94-8fbc-4ad1-9567-a41332e8f00a,1,0,9fc40f79-c538-4ea5-a939-67bdd540d805,9fc40f79-c538-4ea5-a939-67bdd540d805,1,0,70443b2a-04db-4573-a4ea-e35078b383d7,70443b2a-04db-4573-a4ea-e35078b383d7,1,0,fb760c8a-d0bd-4445-9d68-85e5145d0182,fb760c8a-d0bd-4445-9d68-85e5145d0182,1,0,ecf54919-4cf2-4b30-9efa-de517d823555,ecf54919-4cf2-4b30-9efa-de517d823555,1,0,a4814357-6575-4a55-808f-4a4c94047110,a4814357-6575-4a55-808f-4a4c94047110,1,0,46417026-c44a-4a06-af41-9cf6495a33b4,46417026-c44a-4a06-af41-9cf6495a33b4,1,0,363c15f3-660e-4e19-b3cc-37c5d05e8d22,363c15f3-660e-4e19-b3cc-37c5d05e8d22,1,0,eeb4b6f1-2476-467d-9862-6fe9d3013b2c,eeb4b6f1-2476-467d-9862-6fe9d3013b2c,1,0,59d5cd7d-7f53-4015-89d9-bb8ad89f8c04,59d5cd7d-7f53-4015-89d9-bb8ad89f8c04,1,0,9d7f7dde-fea8-4064-abe2-bb7d04500cb2,9d7f7dde-fea8-4064-abe2-bb7d04500cb2,1,0,3af45dae-f563-4d23-a87a-11b4d9d5d7a7,3af45dae-f563-4d23-a87a-11b4d9d5d7a7,1,0,fe102b7b-b61f-4572-b2d0-c0af11bfb7d7,fe102b7b-b61f-4572-b2d0-c0af11bfb7d7,1,0,2cfa0db8-f0e6-4513-ab19-52dccff302bc,2cfa0db8-f0e6-4513-ab19-52dccff302bc,1,0,b9fece39-6e5d-44c0-af5c-ad13cfb71560,b9fece39-6e5d-44c0-af5c-ad13cfb71560,1,0,a9c30e99-c265-471d-9115-50ac2bb05191,a9c30e99-c265-471d-9115-50ac2bb05191,1,0,d388c9ca-1dbd-45b9-ac33-5ffa8cb11499,d388c9ca-1dbd-45b9-ac33-5ffa8cb11499,1,0,efebb079-b913-4249-b128-e0ffc7ab43dd,efebb079-b913-4249-b128-e0ffc7ab43dd,1,0,52077ee4-fef1-451f-8338-86563ff5cf60,52077ee4-fef1-451f-8338-86563ff5cf60,1,0,8e6780f8-8d0e-47d1-ac26-47bf5d906f61,8e6780f8-8d0e-47d1-ac26-47bf5d906f61,1,0,fd4a26c1-31e0-4216-92e0-1e090ec4f094,fd4a26c1-31e0-4216-92e0-1e090ec4f094,1,0,637148a3-0f54-4d41-91dd-a0aa6e191015,637148a3-0f54-4d41-91dd-a0aa6e191015,1,0,9a86e2fe-a9bc-4f0a-a16e-a97944fe8539,9a86e2fe-a9bc-4f0a-a16e-a97944fe8539,1,0,b6f745d7-1326-494e-b442-e4118955b5db,b6f745d7-1326-494e-b442-e4118955b5db,1,0,86755cbc-efd8-43e7-bba8-975c0a51f38f,86755cbc-efd8-43e7-bba8-975c0a51f38f,1,0,44dba9ff-fb54-4cc9-9da2-b00db76060e4,44dba9ff-fb54-4cc9-9da2-b00db76060e4,1,0,a6a0c38d-52a1-4a36-b29a-fb9cc084465f,a6a0c38d-52a1-4a36-b29a-fb9cc084465f,1,0,afc686e9-91a3-4f52-bd8c-a8cda659d938,afc686e9-91a3-4f52-bd8c-a8cda659d938,1,0,281fdf3e-db78-425f-b379-1d2a1bc1f8c3,281fdf3e-db78-425f-b379-1d2a1bc1f8c3,1,0,279a0a44-6f37-4b69-b439-0e846182d650,279a0a44-6f37-4b69-b439-0e846182d650,1,0,b24f2c22-29c2-44d1-8e58-b900b075a5a5,b24f2c22-29c2-44d1-8e58-b900b075a5a5,1,0,d8ded9c9-faaa-43ac-ae4d-308e3a31f1e4,d8ded9c9-faaa-43ac-ae4d-308e3a31f1e4,1,0,93701593-5ac8-4266-b471-7e9ed35a9c3e,93701593-5ac8-4266-b471-7e9ed35a9c3e,1,0,0fdb864e-ede9-4777-835c-0804968ee544,0fdb864e-ede9-4777-835c-0804968ee544,1,0,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,04c45a51-4a8e-48fa-a39c-f67ce2079fc4,1,0,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,b46546fe-3d6b-473f-a7cb-ff3b3ae0bafe,1,0,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,e7b1810c-8e6c-4759-9e6f-c754b5a1ac77,1,0,5dee9814-fe38-4631-8148-8d6c87ef6f47,5dee9814-fe38-4631-8148-8d6c87ef6f47,1,0,37d17053-5c2b-4972-b6a5-a589f2ddbde6,37d17053-5c2b-4972-b6a5-a589f2ddbde6,1,0,c349968a-3f87-425b-8efb-d847934dee4b,c349968a-3f87-425b-8efb-d847934dee4b,1,0,3bb8dc33-970c-4c58-9036-ce716d963847,3bb8dc33-970c-4c58-9036-ce716d963847,1,0,fae0d2e0-1bcd-4a77-86d6-407ca05c1c95,fae0d2e0-1bcd-4a77-86d6-407ca05c1c95,1,0,b3ff39fa-f665-4d01-9a2a-69722e6b1071,b3ff39fa-f665-4d01-9a2a-69722e6b1071,1,0,0abacb0a-ce00-474e-8aec-35685c51ddef,0abacb0a-ce00-474e-8aec-35685c51ddef,1,0,ae407b17-03aa-4268-8603-58d6714dae89,ae407b17-03aa-4268-8603-58d6714dae89,1,0,9a5b9bf4-71b8-41f2-8e23-8c396357f0a5,9a5b9bf4-71b8-41f2-8e23-8c396357f0a5,1,0,5c0ce79b-97a9-4917-9b02-a4548a97d5a1,5c0ce79b-97a9-4917-9b02-a4548a97d5a1,1,0,c552cfac-d3ef-4b63-a0b9-7c79261ff9f3,c552cfac-d3ef-4b63-a0b9-7c79261ff9f3,1,0,5bb6e52c-ac26-4143-8e90-f04f703f823b,5bb6e52c-ac26-4143-8e90-f04f703f823b,1,0,579baaa4-6493-4d99-8744-6399757295c7,579baaa4-6493-4d99-8744-6399757295c7,1,0,ae6d0e12-8857-476c-b4b2-f03295cbed3e,ae6d0e12-8857-476c-b4b2-f03295cbed3e,1,0,cc8e3172-491d-45d8-a7eb-fc6c400845cb,cc8e3172-491d-45d8-a7eb-fc6c400845cb,1,0,d7cfc87f-ac09-44aa-91d9-6511c408c5cb,d7cfc87f-ac09-44aa-91d9-6511c408c5cb,1,0,7ee1e0d0-9735-45da-bd24-c0dbabfd5b1e,7ee1e0d0-9735-45da-bd24-c0dbabfd5b1e,1,0,bd0e3bd4-1207-41ea-8dfc-afa8f7d08cc2,bd0e3bd4-1207-41ea-8dfc-afa8f7d08cc2,1,0,51d83895-5692-4479-9612-07c790d19dff,51d83895-5692-4479-9612-07c790d19dff,1,0,9c1325af-7492-42be-b3af-51b692534510,9c1325af-7492-42be-b3af-51b692534510,1,0,dface15c-cd65-4fb1-b4dd-b513086d3f8e,dface15c-cd65-4fb1-b4dd-b513086d3f8e,1,0,d854b528-8456-4453-9c2d-4f96caf10481,d854b528-8456-4453-9c2d-4f96caf10481,1,0,622d6de2-7404-41cc-961b-131d078d7ab4,622d6de2-7404-41cc-961b-131d078d7ab4,1,0,245f870e-a53a-4d86-aa0a-c0c7709b8acb,245f870e-a53a-4d86-aa0a-c0c7709b8acb,1,0,476f6bfa-b10c-4e0f-8499-23c652715b3f,476f6bfa-b10c-4e0f-8499-23c652715b3f,1,0,65c9754b-53f6-4616-a9d4-74826f7b0ced,65c9754b-53f6-4616-a9d4-74826f7b0ced,1,0,eca2b076-d218-4d1c-948b-7894edf9fa49,eca2b076-d218-4d1c-948b-7894edf9fa49,1,0,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,d6969c1e-e13c-4542-abb7-9cf6bb50b8e2,1,0,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,ccd91f94-d3f1-4aa3-90cf-081d72c4cab1,1,0,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,aa7d5ca4-3c02-4ca1-a790-2435ee9f9f02,1,0,b7e85f5c-4312-44c6-895a-3f636a8c78d8,b7e85f5c-4312-44c6-895a-3f636a8c78d8,1,0,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,3b6e7ee6-0ef5-464a-a01a-6143479c7a61,1,0,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,1969e8d1-0a82-44cb-a0d4-e5badb1d28d4,1,0,a1afacc5-f49a-4df2-a44d-479594d50179,a1afacc5-f49a-4df2-a44d-479594d50179,1,0,fe70eba3-7477-4a38-a511-d69960abb928,fe70eba3-7477-4a38-a511-d69960abb928,1,0,6534ea96-2145-49e6-9739-f59459dc7f6b,6534ea96-2145-49e6-9739-f59459dc7f6b,1,0,f49bffa0-cad6-4801-b82e-21aa580e72e6,f49bffa0-cad6-4801-b82e-21aa580e72e6,1,0,bbbfb817-8db3-4415-86c3-af028276d6e9,bbbfb817-8db3-4415-86c3-af028276d6e9,1,0,6a91112c-f6cc-47a0-9d26-a36c7702af7d,6a91112c-f6cc-47a0-9d26-a36c7702af7d,1,0,40a59681-f31d-4fb9-9301-67c1430590e0,40a59681-f31d-4fb9-9301-67c1430590e0,1,0,ae3358ad-ea3a-4b73-a305-02a152863978,ae3358ad-ea3a-4b73-a305-02a152863978,1,0,cb92dc2e-6053-4233-a408-4464514b1257,cb92dc2e-6053-4233-a408-4464514b1257,1,0,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,8cd65ad3-a7a3-46f6-9061-e8751fd5073e,1,0,85550a7a-8fe0-4296-ace5-63cf053536b4,85550a7a-8fe0-4296-ace5-63cf053536b4,1,0,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,cf1bd9cd-2ef2-4868-b6c0-5160860690f7,1,0,9c3bc502-bcb1-4c90-ae43-53c798958339,9c3bc502-bcb1-4c90-ae43-53c798958339,1,0,3f8b6411-6606-4d27-891e-7c77be47c5f9,3f8b6411-6606-4d27-891e-7c77be47c5f9,1,0,cfc0adf6-87b4-4c8a-91e2-46c2616b319b,cfc0adf6-87b4-4c8a-91e2-46c2616b319b,1,0,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,bed3f0b2-40c6-4323-9bca-cb8864e38ec0,1,0,5eb4ca7f-027a-4860-a167-e6b424527e7a,5eb4ca7f-027a-4860-a167-e6b424527e7a,1,0,f9b98ba5-1fa8-42a4-b1a2-dd71874083cb,f9b98ba5-1fa8-42a4-b1a2-dd71874083cb,1,0,6871015f-d959-4a77-a091-a23cb4ebd8f9,6871015f-d959-4a77-a091-a23cb4ebd8f9,1,0,e5e1631b-a494-4e73-b356-b4330b84cc88,e5e1631b-a494-4e73-b356-b4330b84cc88,1,0,778c28e6-4548-45f3-a1bc-cb1dbf0cb388,778c28e6-4548-45f3-a1bc-cb1dbf0cb388,1,0,a2d6f2d9-0610-4ca9-bc15-58e341a049a4,a2d6f2d9-0610-4ca9-bc15-58e341a049a4,1,0,4dbf114a-5402-40b0-9cab-19601aa8328e,4dbf114a-5402-40b0-9cab-19601aa8328e,1,0,a0856ca2-6a66-4108-b6d4-82443cdccca6,a0856ca2-6a66-4108-b6d4-82443cdccca6,1,0,378b0708-a0a1-4c82-b55a-796acb27e696,378b0708-a0a1-4c82-b55a-796acb27e696,1,0,8e462c0e-c67a-45e9-9871-1f976b01632d,8e462c0e-c67a-45e9-9871-1f976b01632d,1,0,c5335e1f-3e47-46b7-b695-0653f825d855,c5335e1f-3e47-46b7-b695-0653f825d855,1,0,d7faad11-1e35-460c-8943-49370f328c03,d7faad11-1e35-460c-8943-49370f328c03,1,0,e4726010-85c5-4ccc-b574-4b3b55f0d391,e4726010-85c5-4ccc-b574-4b3b55f0d391,1,0,5d6770f2-9b3d-45c7-9e34-4c8626e482cf,5d6770f2-9b3d-45c7-9e34-4c8626e482cf,1,0,b01ace0e-7f21-4b6b-b751-074dcd9a8f54,b01ace0e-7f21-4b6b-b751-074dcd9a8f54,1,0,1f4f839a-4e19-45b8-a988-13ee604c269c,1f4f839a-4e19-45b8-a988-13ee604c269c,1,0,b3aa97e1-baef-45f4-9179-052f35527a5e,b3aa97e1-baef-45f4-9179-052f35527a5e,1,0,d613941f-ed4c-4957-b469-ea6b0d2a121d,d613941f-ed4c-4957-b469-ea6b0d2a121d,1,0,0d8d08e3-194f-416c-a1e0-aa92b40b7911,0d8d08e3-194f-416c-a1e0-aa92b40b7911,1,0,af0178fe-eb3a-485b-9acf-35c8702aa330,af0178fe-eb3a-485b-9acf-35c8702aa330,1,0,201d323b-4c0c-4c93-ae43-43a378ec0d9e,201d323b-4c0c-4c93-ae43-43a378ec0d9e,1,0,9e2c01b1-ccfe-4a68-a6af-8284e3e2396f,9e2c01b1-ccfe-4a68-a6af-8284e3e2396f,1,0,c513ceb0-0855-43ce-a311-c9bea88e2563,c513ceb0-0855-43ce-a311-c9bea88e2563,1,0,974bfc13-85c2-454a-b562-e72384eb4c31,974bfc13-85c2-454a-b562-e72384eb4c31,1,0,69cd6adc-b129-4fbc-804d-8d5aaef77280,69cd6adc-b129-4fbc-804d-8d5aaef77280,1,0,3431a3de-cb9d-46dc-b597-3203831796a9,3431a3de-cb9d-46dc-b597-3203831796a9,1,0,f3866271-04ed-4963-852e-cf41e9e18e1d,f3866271-04ed-4963-852e-cf41e9e18e1d,1,0,b77e5ec2-35cd-43ae-957f-af35214fa621,b77e5ec2-35cd-43ae-957f-af35214fa621,1,0,4a04d83d-cadd-4f36-9ec8-f926259c18ba,4a04d83d-cadd-4f36-9ec8-f926259c18ba,1,0,85e670c0-1616-4611-984c-3d40e890b2e9,85e670c0-1616-4611-984c-3d40e890b2e9,1,0,48ed25b0-afb9-414b-9a4e-8647fbdd95c3,48ed25b0-afb9-414b-9a4e-8647fbdd95c3,1,0,1e3a1148-1e9c-47b0-8f3c-f218c3b0094f,1e3a1148-1e9c-47b0-8f3c-f218c3b0094f,1,0,f1693207-2637-412a-972f-2bc79b9c7fc8,f1693207-2637-412a-972f-2bc79b9c7fc8,1,0,da59378e-0a97-4cff-977b-cc51967068ee,da59378e-0a97-4cff-977b-cc51967068ee,1,0,bbaad46d-f60d-49e6-a077-075366bca47e,bbaad46d-f60d-49e6-a077-075366bca47e,1,0,0d9f5703-91e4-4769-bedd-5bd974f2f617,0d9f5703-91e4-4769-bedd-5bd974f2f617,1,0,926cdf17-1929-43d6-8205-858aab558ad9,926cdf17-1929-43d6-8205-858aab558ad9,1,0,5ec6838f-2d70-4f91-b41b-16adfe8ed587,5ec6838f-2d70-4f91-b41b-16adfe8ed587,1,0,6420ad7e-61ca-4af9-9715-f2b0c3e2c58f,6420ad7e-61ca-4af9-9715-f2b0c3e2c58f,1,0,bee8b8a0-f058-44cb-822c-620351567627,bee8b8a0-f058-44cb-822c-620351567627,1,0,26365e29-903b-47fd-ad96-e0d87f5d6e87,26365e29-903b-47fd-ad96-e0d87f5d6e87,1,0,569180cb-ce54-4267-94b9-332e35e3c17d,569180cb-ce54-4267-94b9-332e35e3c17d,1,0,55bce105-51c0-452e-9eec-b960fe740db2,55bce105-51c0-452e-9eec-b960fe740db2,1,0,776c171d-5dd5-4965-94dc-c2fe6792d5f2,776c171d-5dd5-4965-94dc-c2fe6792d5f2,1,0,86bb1105-702a-47be-906a-1821a69b1b6c,86bb1105-702a-47be-906a-1821a69b1b6c,1,0,40653767-9542-44e9-a84b-ffee75584638,40653767-9542-44e9-a84b-ffee75584638,1,0,49bd152e-479a-46fe-b3af-26ed9181dc34,49bd152e-479a-46fe-b3af-26ed9181dc34,1,0,0a742dd2-1ff4-42de-b303-f2bb01b36fe2,0a742dd2-1ff4-42de-b303-f2bb01b36fe2,1,0,69e13959-51ad-4ac2-9cfc-17ac28b78c78,69e13959-51ad-4ac2-9cfc-17ac28b78c78,1,0,f890ca1b-f2c2-4630-9002-301b759ca6d9,f890ca1b-f2c2-4630-9002-301b759ca6d9,1,0,08c8a9bf-7b89-4d0e-a496-4c7efeca0577,08c8a9bf-7b89-4d0e-a496-4c7efeca0577,1,0,f6c2b015-9cfc-40d2-a93f-b0e88db4a23f,f6c2b015-9cfc-40d2-a93f-b0e88db4a23f,1,0,103f3d8f-e47a-4772-bdd7-dd5f8508d22b,103f3d8f-e47a-4772-bdd7-dd5f8508d22b,1,0,ba8ea271-8716-49ef-8b10-f4b5798c1f62,ba8ea271-8716-49ef-8b10-f4b5798c1f62,1,0,3633c30c-9479-4801-89cc-a5734a41e465,3633c30c-9479-4801-89cc-a5734a41e465,1,0,f295c68d-7e29-48b8-a95a-56e96d9843c1,f295c68d-7e29-48b8-a95a-56e96d9843c1,1,0,7ebe16ee-8e5d-4b05-89b5-9539f73be90c,7ebe16ee-8e5d-4b05-89b5-9539f73be90c,1,0,ea5d0221-fb1e-4626-862a-9c1209365d8f,ea5d0221-fb1e-4626-862a-9c1209365d8f,1,0,12bce69b-933c-4ce4-9d29-a47f3db0226e,12bce69b-933c-4ce4-9d29-a47f3db0226e,1,0,82dcd6a3-c35b-421c-a8f9-77855ad2abca,82dcd6a3-c35b-421c-a8f9-77855ad2abca,1,0,ad0b1720-282e-49d4-af80-324a887963c3,ad0b1720-282e-49d4-af80-324a887963c3,1,0,9ec6fc35-e84e-4f82-b616-5c02e945cc8f,9ec6fc35-e84e-4f82-b616-5c02e945cc8f,1,0,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,1,0,dea6b05f-d3e1-4ff4-8f71-6a0c18134e94,dea6b05f-d3e1-4ff4-8f71-6a0c18134e94,1,0,fcb97a46-d5fd-4bb5-b899-17723a9fe346,fcb97a46-d5fd-4bb5-b899-17723a9fe346,1,0,20adf54c-044c-4bea-8028-b6d20917a030,20adf54c-044c-4bea-8028-b6d20917a030,1,0,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,1,0,2e54b3e8-6672-48d5-802a-23d5144fed79,2e54b3e8-6672-48d5-802a-23d5144fed79,1,0,2a7c4ae2-aab3-48b3-b04f-7be6989939e8,2a7c4ae2-aab3-48b3-b04f-7be6989939e8,1,0,a92acf0e-9132-4456-9a82-1543d98ca453,a92acf0e-9132-4456-9a82-1543d98ca453,1,0,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,1,0,daad5f66-3bb4-4389-bca1-bf528ad993a3,daad5f66-3bb4-4389-bca1-bf528ad993a3,1,0,ad043f15-b2c9-4a05-82b9-6428708584b2,ad043f15-b2c9-4a05-82b9-6428708584b2,1,0,d2fd8650-d13a-411d-8206-61b16016bd82,d2fd8650-d13a-411d-8206-61b16016bd82,1,0,643f4f37-fa02-4976-8701-7a5a44b0109a,643f4f37-fa02-4976-8701-7a5a44b0109a,1,0,278a0559-07b2-4ee3-a821-c0395f9a33c1,278a0559-07b2-4ee3-a821-c0395f9a33c1,1,0,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,1,0,54d9f5bb-599c-4d4b-b616-1445e7461813,54d9f5bb-599c-4d4b-b616-1445e7461813,1,0,7d0dbd52-8bb0-4d72-87fa-2d7066e5e189,7d0dbd52-8bb0-4d72-87fa-2d7066e5e189,1,0,a2c42946-1cdb-457a-a45b-97781cfb4a15,a2c42946-1cdb-457a-a45b-97781cfb4a15,1,0,a1a44832-6026-47ae-affd-5b6d52e84307,a1a44832-6026-47ae-affd-5b6d52e84307,1,0,e0e12708-da10-4f81-9e56-5876ddc77084,e0e12708-da10-4f81-9e56-5876ddc77084,1,0,63ad43fe-a050-47f7-af4f-099aa10255af,63ad43fe-a050-47f7-af4f-099aa10255af,1,0,4033eb31-8281-402a-afff-431fa36e589e,4033eb31-8281-402a-afff-431fa36e589e,1,0,5a1e1da5-7307-4f48-bb1c-2977fc4d7cef,5a1e1da5-7307-4f48-bb1c-2977fc4d7cef,1,0,f59488c7-4643-4988-8043-5c9724e04279,f59488c7-4643-4988-8043-5c9724e04279,1,0,cfe022b5-7647-4b5c-a2bd-f5d313f4a9db,cfe022b5-7647-4b5c-a2bd-f5d313f4a9db,1,0,b67a509d-bb0f-427e-b447-4d4617078d6a,b67a509d-bb0f-427e-b447-4d4617078d6a,1,0,968ecfca-cf06-4952-83c1-a151e46c78a9,968ecfca-cf06-4952-83c1-a151e46c78a9,1,0,4945c734-a47d-44e9-8a7f-94b31911c1ce,4945c734-a47d-44e9-8a7f-94b31911c1ce,1,0,20a194e9-06cf-4013-bfa4-bc15554a54d0,20a194e9-06cf-4013-bfa4-bc15554a54d0,1,0,ab4f3d3d-bb5a-4dbc-b699-808458036b00,ab4f3d3d-bb5a-4dbc-b699-808458036b00,1,0,09761456-2273-437f-9316-0391cfaa81b3,09761456-2273-437f-9316-0391cfaa81b3,1,0,93922abc-98b9-4b3d-a5c8-7294378a69e1,93922abc-98b9-4b3d-a5c8-7294378a69e1,1,0,3c0a9c45-8e57-43fa-8ae3-26b15571f2cd,3c0a9c45-8e57-43fa-8ae3-26b15571f2cd,1,0,85223d37-2503-4783-94dc-fe6265e718d5,85223d37-2503-4783-94dc-fe6265e718d5,1,0,0918cd76-56e5-4314-8a1c-c21d023ba6f8,0918cd76-56e5-4314-8a1c-c21d023ba6f8,1,0,9db21c2e-79fa-44e4-902e-416abfccb54a,9db21c2e-79fa-44e4-902e-416abfccb54a,1,0,fb082db3-197b-4d1e-b9ea-362624d547ee,fb082db3-197b-4d1e-b9ea-362624d547ee,1,0,c09dcf00-a45a-4487-99c5-d3a37956ec88,c09dcf00-a45a-4487-99c5-d3a37956ec88,1,0,531a5a0c-6ac9-4e93-8caa-42d9aad0bc82,531a5a0c-6ac9-4e93-8caa-42d9aad0bc82,1,0,2714e1b6-6b02-43a1-bc94-2934b429ed35,2714e1b6-6b02-43a1-bc94-2934b429ed35,1,0,e33c73b2-ef0b-49b7-a65f-ab2c814ad256,e33c73b2-ef0b-49b7-a65f-ab2c814ad256,1,0,4c7016da-9991-4917-8eaa-e760cc9e29d1,4c7016da-9991-4917-8eaa-e760cc9e29d1,1,0,febb3770-5c11-4ada-9e49-a27950bdaddf,febb3770-5c11-4ada-9e49-a27950bdaddf,1,0,d7b57669-e538-4e54-ab1b-8428f0586466,d7b57669-e538-4e54-ab1b-8428f0586466,1,0,223e4ccf-5638-4576-bd88-7c54be68de47,223e4ccf-5638-4576-bd88-7c54be68de47,1,0,e3bae40b-5316-4392-8c82-b601922a6582,e3bae40b-5316-4392-8c82-b601922a6582,1,0,26806602-54be-4b2f-96ae-3e2a31616a4e,26806602-54be-4b2f-96ae-3e2a31616a4e,1,0,738fc48f-5160-4786-84bb-053c188662ce,738fc48f-5160-4786-84bb-053c188662ce,1,0,6e883b67-f74c-4791-8fb3-446534e3a6db,6e883b67-f74c-4791-8fb3-446534e3a6db,1,0,24fed307-445d-44b5-8964-9d08d1003061,24fed307-445d-44b5-8964-9d08d1003061,1,0,8e4c2dbe-15b7-4e04-9f07-892d70741a97,8e4c2dbe-15b7-4e04-9f07-892d70741a97,1,0,67691860-e374-451f-aee3-05a35df2a477,67691860-e374-451f-aee3-05a35df2a477,1,0,4337d956-809f-4140-a7bb-5f5c00a65ccb,4337d956-809f-4140-a7bb-5f5c00a65ccb,1,0,dbed7302-370e-4e0f-b505-3a86fe4c4ebd,dbed7302-370e-4e0f-b505-3a86fe4c4ebd,1,0,9c484a15-039e-416d-af97-4c2bd90fd873,9c484a15-039e-416d-af97-4c2bd90fd873,1,0,534855e3-4cf2-471c-b982-7138917050c9,534855e3-4cf2-471c-b982-7138917050c9,1,0,4c72b944-d000-4920-aec8-54029f88ddf4,4c72b944-d000-4920-aec8-54029f88ddf4,1,0,b4033d05-05c2-4617-80d9-abfa389c47f4,b4033d05-05c2-4617-80d9-abfa389c47f4,1,0,0f46b124-1575-4984-9bc1-b5e4696efc74,0f46b124-1575-4984-9bc1-b5e4696efc74,1,0,a0183a0b-1459-4b32-924c-6ea156f02125,a0183a0b-1459-4b32-924c-6ea156f02125,1,0,fc2dc619-41e0-4cce-a080-d5c8de5029a8,fc2dc619-41e0-4cce-a080-d5c8de5029a8,1,0,9609e5fb-fd11-463c-8679-9b10fc0993ed,9609e5fb-fd11-463c-8679-9b10fc0993ed,1,0,f438b941-2aae-4c67-81dc-340f6acc25b1,f438b941-2aae-4c67-81dc-340f6acc25b1,1,0,48075630-2041-48c3-9eb0-d2107cfcb249,48075630-2041-48c3-9eb0-d2107cfcb249,1,0,7d7e7e13-eb42-420d-9bfc-14fab901c3c1,7d7e7e13-eb42-420d-9bfc-14fab901c3c1,1,0,aa29e1be-4e99-4136-8dc1-0124908979ad,aa29e1be-4e99-4136-8dc1-0124908979ad,1,0,0d76799d-7fc7-446b-88fb-dca839de00a5,0d76799d-7fc7-446b-88fb-dca839de00a5,1,0,cb5674c3-0d91-4948-bafd-d9ef44a2a69d,cb5674c3-0d91-4948-bafd-d9ef44a2a69d,1,0,ea4a869c-861c-412c-a3be-de1c57d1a251,ea4a869c-861c-412c-a3be-de1c57d1a251,1,0,eeafcc8c-fbe2-4bb4-8b8a-cf663208258d,eeafcc8c-fbe2-4bb4-8b8a-cf663208258d,1,0,6a3bd39a-59cb-4763-b49f-7ab67167a8b7,6a3bd39a-59cb-4763-b49f-7ab67167a8b7,1,0,6c1d8f6c-db33-46dc-8824-aceacb4bf9c1,6c1d8f6c-db33-46dc-8824-aceacb4bf9c1,1,0,67e8b7dc-e0d7-44a9-81d0-6b31bb318145,67e8b7dc-e0d7-44a9-81d0-6b31bb318145,1,0,50ac390d-324f-40bd-b3df-0468a63b94b6,50ac390d-324f-40bd-b3df-0468a63b94b6,1,0,80337710-2c60-45c4-ae1f-bb42731fb611,80337710-2c60-45c4-ae1f-bb42731fb611,1,0,9dcf467e-7701-4c7b-b747-95f4d9b9295c,9dcf467e-7701-4c7b-b747-95f4d9b9295c,1,0,dd07b255-25af-466e-a224-c561a8ca567b,dd07b255-25af-466e-a224-c561a8ca567b,1,0,80641554-046e-4c4a-8544-a35b4c554dad,80641554-046e-4c4a-8544-a35b4c554dad,1,0,77149f7a-8a76-4569-9487-991c41e132ef,77149f7a-8a76-4569-9487-991c41e132ef,1,0,1e9e115a-e65b-4346-b0d3-47cf1dbe75f2,1e9e115a-e65b-4346-b0d3-47cf1dbe75f2,1,0,9e1be65e-986f-4d21-91f0-15c66db0c947,9e1be65e-986f-4d21-91f0-15c66db0c947,1,0,67993b79-6aca-4641-b2e2-0a15f44e47d5,67993b79-6aca-4641-b2e2-0a15f44e47d5,1,0,d2fe4578-a1f8-4586-b052-fa71d25365c9,d2fe4578-a1f8-4586-b052-fa71d25365c9,1,0,f31f3dab-5796-47ac-a54d-3081f8cad817,f31f3dab-5796-47ac-a54d-3081f8cad817,1,0,cd59707e-b9e4-4038-8203-ae22a8060e8d,cd59707e-b9e4-4038-8203-ae22a8060e8d,1,0,db497857-33d3-49a1-b328-dfc62c973ecb,db497857-33d3-49a1-b328-dfc62c973ecb,1,0,139c001c-7b07-465a-9187-399ad32d294f,139c001c-7b07-465a-9187-399ad32d294f,1,0,5d228ce4-069e-4f98-beed-b8e1de17c3d9,5d228ce4-069e-4f98-beed-b8e1de17c3d9,1,0,9770fc09-87bf-4fce-9b0d-410efd30edae,9770fc09-87bf-4fce-9b0d-410efd30edae,1,0,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,3d73d5ff-995e-40ed-a401-cec2a3d12c8f,1,0,20156709-1481-4007-8e89-9ce79fc589fc,20156709-1481-4007-8e89-9ce79fc589fc,1,0,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,fbcda361-0ef2-47b4-ba1c-1d1952898bd3,1,0,7e7c5abd-b645-4de5-a40e-5805ec4456e2,7e7c5abd-b645-4de5-a40e-5805ec4456e2,1,0,763a16c3-a728-4b65-a485-705990310b4a,763a16c3-a728-4b65-a485-705990310b4a,1,0,65338920-c744-4d1e-b351-848b90a3feda,65338920-c744-4d1e-b351-848b90a3feda,1,0,2aedb1ac-caf1-45c7-913e-82a36637d5d4,2aedb1ac-caf1-45c7-913e-82a36637d5d4,1,0,65f3ad72-ed03-482b-a2f1-05053eef408a,65f3ad72-ed03-482b-a2f1-05053eef408a,1,0,e177e258-7d0c-4fe1-80e5-3b89de9e23d9,e177e258-7d0c-4fe1-80e5-3b89de9e23d9,1,0,3f25ac9f-c6b4-4ccc-bec4-a90c99403823,3f25ac9f-c6b4-4ccc-bec4-a90c99403823,1,0,56177464-5e9f-4598-96bc-eb311993c503,56177464-5e9f-4598-96bc-eb311993c503,1,0,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,c2308e60-2844-4bd8-bc8a-c9c20e5fc62d,1,0,bdfe65f4-4174-4e66-915c-943137981cf0,bdfe65f4-4174-4e66-915c-943137981cf0,1,0,5271de2d-d3a0-4128-90e0-cd8e1ea2ad30,5271de2d-d3a0-4128-90e0-cd8e1ea2ad30,1,0,c895d58a-5be1-4157-81af-f4f6db9b4b9e,c895d58a-5be1-4157-81af-f4f6db9b4b9e,1,0,0d89036c-af6e-4709-847c-0dab74a33d72,0d89036c-af6e-4709-847c-0dab74a33d72,1,0,7d223aab-d4f6-41d5-a701-6fe03517cf50,7d223aab-d4f6-41d5-a701-6fe03517cf50,1,0,631cdd15-eb1f-4903-9073-4de3911ba2e6,631cdd15-eb1f-4903-9073-4de3911ba2e6,1,0,6b10ab0a-8d4e-4847-9ce7-663fb4770c35,6b10ab0a-8d4e-4847-9ce7-663fb4770c35,1,0,42630eee-ce93-40a8-b96e-3eb759f48976,42630eee-ce93-40a8-b96e-3eb759f48976,1,0,174e0187-cf34-4949-8dc2-a1f9aece78dc,174e0187-cf34-4949-8dc2-a1f9aece78dc,1,0,5d9f2db6-704d-45cb-96c3-e59e47ad4fea,5d9f2db6-704d-45cb-96c3-e59e47ad4fea,1,0,e4dbeb50-292f-452f-a0da-a55e5ea936e4,e4dbeb50-292f-452f-a0da-a55e5ea936e4,1,0,8ce6cc1a-8570-4704-b9a3-44e815b2e753,8ce6cc1a-8570-4704-b9a3-44e815b2e753,1,0,71aa2bf7-85c9-40f3-a9b0-f6d666eddd28,71aa2bf7-85c9-40f3-a9b0-f6d666eddd28,1,0,497cbe4d-586d-48a2-8e98-d20e3e09ed42,497cbe4d-586d-48a2-8e98-d20e3e09ed42,1,0,38b7679d-3739-4572-baf2-d8c7b2a94f0a,38b7679d-3739-4572-baf2-d8c7b2a94f0a,1,0,1470f052-f032-46bc-b1ee-54555e725dfd,1470f052-f032-46bc-b1ee-54555e725dfd,1,0,4019a5e9-1f50-44b9-98ba-87c07a0ce4e5,4019a5e9-1f50-44b9-98ba-87c07a0ce4e5,1,0,7d336fdd-5cbf-4c92-a783-f451f7590502,7d336fdd-5cbf-4c92-a783-f451f7590502,1,0,ee8af8ee-e49a-4511-9a91-48814ab99d23,ee8af8ee-e49a-4511-9a91-48814ab99d23,1,0,3a7d9d49-b5e5-4c5c-958e-a4c6afda8b9d,3a7d9d49-b5e5-4c5c-958e-a4c6afda8b9d,1,0,bc10ad8f-383c-469a-8c0e-60805161055b,bc10ad8f-383c-469a-8c0e-60805161055b,1,0,86760ecb-2ddd-40ce-bc4f-94c23027a55e,86760ecb-2ddd-40ce-bc4f-94c23027a55e,1,0,6fbf844e-ee8d-490f-9177-6392d262312f,6fbf844e-ee8d-490f-9177-6392d262312f,1,0,703a3e8a-0204-4e8f-8fa0-a2ed1aeb7662,703a3e8a-0204-4e8f-8fa0-a2ed1aeb7662,1,0,f5d90a5a-1adb-49d6-8640-2e4054bdb99f,f5d90a5a-1adb-49d6-8640-2e4054bdb99f,1,0,37722a34-1148-4cc8-95e6-4645ae9cca98,37722a34-1148-4cc8-95e6-4645ae9cca98,1,0,11f32e0f-7d16-4ebd-9cef-fffd2d64e70a,11f32e0f-7d16-4ebd-9cef-fffd2d64e70a,1,0,cc34bd23-de0a-4b09-8333-e4693576b9f4,cc34bd23-de0a-4b09-8333-e4693576b9f4,1,0,b16d5e79-9d7e-4d3e-9be8-3b2a932abf78,b16d5e79-9d7e-4d3e-9be8-3b2a932abf78,1,0,903af13a-1f73-4145-a3d0-971c3be5fbe6,903af13a-1f73-4145-a3d0-971c3be5fbe6,1,0,fb42ad06-d5a4-40ea-817c-fa7ff385d8db,fb42ad06-d5a4-40ea-817c-fa7ff385d8db,1,0,bc110a6a-26fa-4aa1-a2ef-bdaeaa0a33af,bc110a6a-26fa-4aa1-a2ef-bdaeaa0a33af,1,0,953dbad6-4f5c-4319-874a-db358a77d001,953dbad6-4f5c-4319-874a-db358a77d001,1,0,05243f56-7e9b-4a61-8efb-1b5e525fff21,05243f56-7e9b-4a61-8efb-1b5e525fff21,1,0,7aa86a2d-2b47-447e-8901-806411011279,7aa86a2d-2b47-447e-8901-806411011279,1,0,fca0dfad-f853-4694-9ce9-53a3a10f59b7,fca0dfad-f853-4694-9ce9-53a3a10f59b7,1,0,934b8380-c6e0-49f8-a6c2-91c0ddb2f95e,934b8380-c6e0-49f8-a6c2-91c0ddb2f95e,1,0,57f4ee70-185e-4f2a-91a6-6c0bf93c1000,57f4ee70-185e-4f2a-91a6-6c0bf93c1000,1,0,b4cb92fb-ad82-44ed-9203-397b412b3453,b4cb92fb-ad82-44ed-9203-397b412b3453,1,0,69ceac29-06d3-45f2-b914-7966465cd0d3,69ceac29-06d3-45f2-b914-7966465cd0d3,1,0,b690721d-960b-4374-8d2c-feed3a2b354b,b690721d-960b-4374-8d2c-feed3a2b354b,1,0,271243d3-1871-4a0a-bf7f-63bacacf0a59,271243d3-1871-4a0a-bf7f-63bacacf0a59,1,0,b1ed134b-f2aa-4b06-b7a2-0e524ead04df,b1ed134b-f2aa-4b06-b7a2-0e524ead04df,1,0,5b379a72-8605-4e88-84cb-14272a3b8f5f,5b379a72-8605-4e88-84cb-14272a3b8f5f,1,0,1281fe19-bbca-4a4f-84d8-14187e62000f,1281fe19-bbca-4a4f-84d8-14187e62000f,1,0,ec44f92a-06bf-4a53-a7ba-fbe9846a68a6,ec44f92a-06bf-4a53-a7ba-fbe9846a68a6,1,0,94819f9d-8a93-4a44-b1db-af0f095c7c1d,94819f9d-8a93-4a44-b1db-af0f095c7c1d,1,0,1eb8721d-bbeb-4cca-9e4f-e8386949c93c,1eb8721d-bbeb-4cca-9e4f-e8386949c93c,1,0,0012d153-685c-48ef-9623-8aeff3795aa6,0012d153-685c-48ef-9623-8aeff3795aa6,1,0,8483a18c-ec6f-455c-9568-2019025a25d2,8483a18c-ec6f-455c-9568-2019025a25d2,1,0,9b7051d5-abc4-416c-a0e6-515d120d78e4,9b7051d5-abc4-416c-a0e6-515d120d78e4,1,0,86d1bc4e-f08d-48c7-8b3a-3c5feb0c843c,86d1bc4e-f08d-48c7-8b3a-3c5feb0c843c,1,0,869938e6-6310-4326-bd15-5b91fe2e0911,869938e6-6310-4326-bd15-5b91fe2e0911,1,0,8ed7254b-bbf8-49d9-8a73-9a91316fd02d,8ed7254b-bbf8-49d9-8a73-9a91316fd02d,1,0,ab6d8fdd-7788-474d-9645-53008d7fa603,ab6d8fdd-7788-474d-9645-53008d7fa603,1,0,a156521a-ece1-49d3-8056-1c3508273c45,a156521a-ece1-49d3-8056-1c3508273c45,1,0,075d39e0-a77a-4d0b-9260-7524fb5b2d0c,075d39e0-a77a-4d0b-9260-7524fb5b2d0c,1,0,10018f80-3138-4089-bf9a-a5f178f1e295,10018f80-3138-4089-bf9a-a5f178f1e295,1,0,43aba109-4b7f-45ef-9c30-8b754e81911b,43aba109-4b7f-45ef-9c30-8b754e81911b,1,0,4ccd72e1-7fd7-4a3b-8428-71b44992937e,4ccd72e1-7fd7-4a3b-8428-71b44992937e,1,0,46077650-2b2c-4319-8279-41f277971669,46077650-2b2c-4319-8279-41f277971669,1,0,4afe733d-64a0-4ea5-9d12-6e2c86eb91e4,4afe733d-64a0-4ea5-9d12-6e2c86eb91e4,1,0,612f3b95-d7db-4b33-92b5-4873205b424b,612f3b95-d7db-4b33-92b5-4873205b424b,1,0,d7afa1a6-0ac9-4527-8f1c-5317ce259b52,d7afa1a6-0ac9-4527-8f1c-5317ce259b52,1,0,d0b79c3d-b0c5-4eb3-9971-1def1c88698f,d0b79c3d-b0c5-4eb3-9971-1def1c88698f,1,0,e82ebd72-7b5a-4f45-b853-1001bf680a05,e82ebd72-7b5a-4f45-b853-1001bf680a05,1,0,a74879b8-c080-4cc0-b44f-2b7c4dae87fe,a74879b8-c080-4cc0-b44f-2b7c4dae87fe,1,0,e9e9b733-e97a-430d-95ce-45ea27751f64,e9e9b733-e97a-430d-95ce-45ea27751f64,1,0,9f81693c-4ddd-47ec-b111-d073e1510752,9f81693c-4ddd-47ec-b111-d073e1510752,1,0,8a2811be-64c5-44ba-a52c-482c125eb092,8a2811be-64c5-44ba-a52c-482c125eb092,1,0,5245bee4-ebb7-45d1-b40a-2a06900e55b1,5245bee4-ebb7-45d1-b40a-2a06900e55b1,1,0,cc8cdc82-ee97-4426-b889-95d2286af37c,cc8cdc82-ee97-4426-b889-95d2286af37c,1,0,149104f3-a4c7-47e5-8057-b5bcc754a4f2,149104f3-a4c7-47e5-8057-b5bcc754a4f2,1,0,86ffe9a7-9b3e-49ab-bd88-20269fec56bc,86ffe9a7-9b3e-49ab-bd88-20269fec56bc,1,0,3dd50c66-27f7-4f1e-86e9-c709995c8609,3dd50c66-27f7-4f1e-86e9-c709995c8609,1,0,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,45c0003f-0ed7-4582-b84e-217fdc4ddeaf,1,0,ed1369c5-c274-45bd-ae91-7648565ae09f,ed1369c5-c274-45bd-ae91-7648565ae09f,1,0,8d0fce61-a22f-4033-9e03-3f00c4a21722,8d0fce61-a22f-4033-9e03-3f00c4a21722,1,0,bfb3f026-e940-49c3-ac30-408186f9e11e,bfb3f026-e940-49c3-ac30-408186f9e11e,1,0,e1dc83eb-a8cd-454b-8de8-cff2049be78c,e1dc83eb-a8cd-454b-8de8-cff2049be78c,1,0,9edd9288-1463-4d67-b9f0-40f351d978e9,9edd9288-1463-4d67-b9f0-40f351d978e9,1,0,c9db6c68-965f-4567-b26e-5d497a389de1,c9db6c68-965f-4567-b26e-5d497a389de1,1,0,4da2f65d-56bd-4140-9b31-e5ccac4a800a,4da2f65d-56bd-4140-9b31-e5ccac4a800a,1,0,eb163bba-b94c-4a78-9c2d-7b519325e3d4,eb163bba-b94c-4a78-9c2d-7b519325e3d4,1,0,58cdbd20-a7f4-4c4c-8a4e-638714cc2699,58cdbd20-a7f4-4c4c-8a4e-638714cc2699,1,0,616cd2cc-eaf4-4586-bca1-c044429b491a,616cd2cc-eaf4-4586-bca1-c044429b491a,1,0,939bdb9a-294b-4b42-a56f-030f69bc29c4,939bdb9a-294b-4b42-a56f-030f69bc29c4,1,0,ee7a763b-bcbf-4ff3-89af-eb7965b33515,ee7a763b-bcbf-4ff3-89af-eb7965b33515,1,0,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,e72b3ae6-00e9-45d7-a4f3-bc8a5a2f5ae4,1,0,4b8fdb79-a9a0-4a53-9a95-82b8f64b1aa2,4b8fdb79-a9a0-4a53-9a95-82b8f64b1aa2,1,0,d5523a3a-2fb4-4f6c-a76c-08864db125d9,d5523a3a-2fb4-4f6c-a76c-08864db125d9,1,0,28f646f0-1ffc-495b-98d8-f9687172e22a,28f646f0-1ffc-495b-98d8-f9687172e22a,1,0,ecfc26a8-6353-4c78-b469-7ef5b548aa33,ecfc26a8-6353-4c78-b469-7ef5b548aa33,1,0,6ed475b1-7b4f-41d8-957b-18e82addd4d9,6ed475b1-7b4f-41d8-957b-18e82addd4d9,1,0,7be76d5d-7585-4766-8690-9d3c9fc56787,7be76d5d-7585-4766-8690-9d3c9fc56787,1,0,22a6d909-b793-4540-8f4e-605e0448bf2a,22a6d909-b793-4540-8f4e-605e0448bf2a,1,0,2e01082e-9b7b-47f5-900f-1c2e8dfb3f20,2e01082e-9b7b-47f5-900f-1c2e8dfb3f20,1,0,16547db4-7d90-451b-b0a0-33a59837d1f6,16547db4-7d90-451b-b0a0-33a59837d1f6,1,0,f008b0a5-266c-47ab-a15d-95e23bf7041b,f008b0a5-266c-47ab-a15d-95e23bf7041b,1,0,2918a7ba-1b7f-4f1b-8237-d4bc09bcc35a,2918a7ba-1b7f-4f1b-8237-d4bc09bcc35a,1,0,81d900be-ddc1-417f-ae2c-1aacf040de9a,81d900be-ddc1-417f-ae2c-1aacf040de9a,1,0,c65f69ce-be78-4e8d-b91d-293c4108ce77,c65f69ce-be78-4e8d-b91d-293c4108ce77,1,0,521a5717-0b38-401d-bd72-30cee219bd14,521a5717-0b38-401d-bd72-30cee219bd14,1,0,977c30dc-6f27-4931-9fd5-d12ed147e3ec,977c30dc-6f27-4931-9fd5-d12ed147e3ec,1,0,eea4f72e-dd1b-46c7-b270-876a482236b3,eea4f72e-dd1b-46c7-b270-876a482236b3,1,0,25e8d286-dfbb-4fdf-974b-fe3f6f76eac0,25e8d286-dfbb-4fdf-974b-fe3f6f76eac0,1,0,2d249dad-8b4f-462b-ab13-892639a6e071,2d249dad-8b4f-462b-ab13-892639a6e071,1,0,f6249bf4-d2e7-48f3-808f-d776915d14cb,f6249bf4-d2e7-48f3-808f-d776915d14cb,1,0,75f11ecd-c87a-4a14-a7ca-c755f63d7cf8,75f11ecd-c87a-4a14-a7ca-c755f63d7cf8,1,0,883cdeb0-e747-4157-bbe7-0ebc423a82af,883cdeb0-e747-4157-bbe7-0ebc423a82af,1,0,ba62ac73-91da-4dad-abc7-3cf8acf7e315,ba62ac73-91da-4dad-abc7-3cf8acf7e315,1,0,6a71416d-dba1-4883-9264-597ecf9d6270,6a71416d-dba1-4883-9264-597ecf9d6270,1,0,ce3fc202-7893-4d1b-9c8f-1b3349a5c147,ce3fc202-7893-4d1b-9c8f-1b3349a5c147,1,0,6593baab-fce0-49ed-867e-be242bfc08d7,6593baab-fce0-49ed-867e-be242bfc08d7,1,0,403390cf-d3f8-4dfa-b83d-e2fca4ee0dff,403390cf-d3f8-4dfa-b83d-e2fca4ee0dff,1,0,57aed64d-da61-4c18-af21-dab3afdc5c03,57aed64d-da61-4c18-af21-dab3afdc5c03,1,0,452822b4-a590-44db-ab77-d8c01f7300e7,452822b4-a590-44db-ab77-d8c01f7300e7,1,0,e1132cbb-7045-47e2-bbc7-6e92e4dff131,e1132cbb-7045-47e2-bbc7-6e92e4dff131,1,0,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,1,0,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,1,0,85d7ea13-c521-44b8-9dce-5e57529a21db,85d7ea13-c521-44b8-9dce-5e57529a21db,1,0,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,1,0,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,1,0,19b29d30-e395-42f2-b700-7474bb2cdcb7,19b29d30-e395-42f2-b700-7474bb2cdcb7,1,0,0c38782c-6559-4f1c-88af-aa022285ffbd,0c38782c-6559-4f1c-88af-aa022285ffbd,1,0,eed23203-924d-4092-a1a8-a7cdd72489e5,eed23203-924d-4092-a1a8-a7cdd72489e5,1,0,b0deb957-624b-4bcb-824c-76aedf1affe9,b0deb957-624b-4bcb-824c-76aedf1affe9,1,0,9934e608-593d-45d0-9df3-539f0c8fc385,9934e608-593d-45d0-9df3-539f0c8fc385,1,0,80da4126-4319-425f-8427-7d60652cf754,80da4126-4319-425f-8427-7d60652cf754,1,0,05236ace-bcdd-4eb8-a1fb-5843ee311d10,05236ace-bcdd-4eb8-a1fb-5843ee311d10,1,0,993d8672-af86-4179-a9ef-228303748bcd,993d8672-af86-4179-a9ef-228303748bcd,1,0,0f1b284c-6c9e-4799-bc47-3326c4b7bec2,0f1b284c-6c9e-4799-bc47-3326c4b7bec2,1,0,449060fd-4711-4b9e-93e0-11b35c314fb3,449060fd-4711-4b9e-93e0-11b35c314fb3,1,0,e7efa9d5-ea93-4070-87bb-a4d95116d1b4,e7efa9d5-ea93-4070-87bb-a4d95116d1b4,1,0,0614d340-6524-4715-978d-87ab21377e72,0614d340-6524-4715-978d-87ab21377e72,1,0,d47daac5-ec3b-4d4e-8b01-045a37f7074d,d47daac5-ec3b-4d4e-8b01-045a37f7074d,1,0,9d6ed3b9-35cd-47c0-9dfc-732e5066a071,9d6ed3b9-35cd-47c0-9dfc-732e5066a071,1,0,912cbd30-1ed5-4888-a4b6-98e9215b28e9,912cbd30-1ed5-4888-a4b6-98e9215b28e9,1,0,abf093ce-be63-487d-8be4-be282aa475be,abf093ce-be63-487d-8be4-be282aa475be,1,0,7a910ad6-b922-4716-8140-1540d76296b2,7a910ad6-b922-4716-8140-1540d76296b2,1,0,3fa9aa34-382c-49fa-87d8-34bedcde5836,3fa9aa34-382c-49fa-87d8-34bedcde5836,1,0,ae4825b1-dd4e-4d0e-8133-da6d1a441c36,ae4825b1-dd4e-4d0e-8133-da6d1a441c36,1,0,f7e6da22-c2b7-47c9-8062-e612a56ae61c,f7e6da22-c2b7-47c9-8062-e612a56ae61c,1,0,5189beb9-b939-4f97-aca0-c2f3492ac8b9,5189beb9-b939-4f97-aca0-c2f3492ac8b9,1,0,0b139d7a-b583-4082-b9f2-8f3fb444bd51,0b139d7a-b583-4082-b9f2-8f3fb444bd51,1,0,b8931f98-c1d7-4e9b-be43-065064e7ba95,b8931f98-c1d7-4e9b-be43-065064e7ba95,1,0,ab2b472d-97d5-4c33-86fd-e2cdaedf3f3d,ab2b472d-97d5-4c33-86fd-e2cdaedf3f3d,1,0,60848308-931c-4da3-aa4b-37f6fb4b194f,60848308-931c-4da3-aa4b-37f6fb4b194f,1,0,0761c32c-1de6-4c40-9178-64aeb46b6622,0761c32c-1de6-4c40-9178-64aeb46b6622,1,0,08af8da8-d44b-46f0-a8d3-60421e7b5a1a,08af8da8-d44b-46f0-a8d3-60421e7b5a1a,1,0,54b14504-503b-45f6-9b5d-785b49829425,54b14504-503b-45f6-9b5d-785b49829425,1,0,80d3ee33-1cdc-4af6-85c2-787094526592,80d3ee33-1cdc-4af6-85c2-787094526592,1,0,c8b28660-6cb0-4ef5-85c2-a75da863ba96,c8b28660-6cb0-4ef5-85c2-a75da863ba96,1,0,1cd607b4-49fc-460e-a014-6afe50083b47,1cd607b4-49fc-460e-a014-6afe50083b47,1,0,a215e767-36e9-4408-9d18-7b4be757022a,a215e767-36e9-4408-9d18-7b4be757022a,1,0,a3e262bc-9f0d-480d-a1d1-c2326105d22d,a3e262bc-9f0d-480d-a1d1-c2326105d22d,1,0,8eae0c79-288b-4773-90bb-49299ad45628,8eae0c79-288b-4773-90bb-49299ad45628,1,0,2faa5594-f1b4-4312-b674-82fdf9623105,2faa5594-f1b4-4312-b674-82fdf9623105,1,0,185c1ad3-b5db-49b6-9342-d08e1bf64903,185c1ad3-b5db-49b6-9342-d08e1bf64903,1,0,3c69a4ad-001d-4421-88f6-412e15d710d6,3c69a4ad-001d-4421-88f6-412e15d710d6,1,0,d0373603-5abb-4f7b-8d2f-9f7fb52615aa,d0373603-5abb-4f7b-8d2f-9f7fb52615aa,1,0,f20a35fe-6029-4dc8-b6b4-b098dbce12e8,f20a35fe-6029-4dc8-b6b4-b098dbce12e8,1,0,6a68a08a-ea37-4573-ab9f-ec822f6d250b,6a68a08a-ea37-4573-ab9f-ec822f6d250b,1,0,00e87d04-8104-420b-b2c6-7304889a75b2,00e87d04-8104-420b-b2c6-7304889a75b2,1,0,bde86820-f7bb-463b-97d0-bfa5f8323af0,bde86820-f7bb-463b-97d0-bfa5f8323af0,1,0,b9b24093-810c-4158-846d-e2c7aea54d36,b9b24093-810c-4158-846d-e2c7aea54d36,1,0,289a6aac-dc4e-4fae-8815-853e78d450bb,289a6aac-dc4e-4fae-8815-853e78d450bb,1,0,557e7d89-83ed-45d0-86cc-6e355f14025d,557e7d89-83ed-45d0-86cc-6e355f14025d,1,0,d681b26b-dd8d-46d7-986e-10f05c37a1e4,d681b26b-dd8d-46d7-986e-10f05c37a1e4,1,0,4d3c216e-c04f-4884-8681-1c861c50ce7d,4d3c216e-c04f-4884-8681-1c861c50ce7d,1,0,4a41eee0-c973-4824-a07c-9fcf731f055e,4a41eee0-c973-4824-a07c-9fcf731f055e,1,0,ee756c33-f408-4449-a6bb-3186a0421362,ee756c33-f408-4449-a6bb-3186a0421362,1,0,fbfa8f64-52e4-48f6-b0fb-fd06976dd93d,fbfa8f64-52e4-48f6-b0fb-fd06976dd93d,1,0,6ff66622-4d20-4696-9fe9-4b4faeb21d96,6ff66622-4d20-4696-9fe9-4b4faeb21d96,1,0,46237eec-c206-4d21-883c-27599b9ed38c,46237eec-c206-4d21-883c-27599b9ed38c,1,0,92cbfe14-35c5-440b-9a13-ef8c8ab0630a,92cbfe14-35c5-440b-9a13-ef8c8ab0630a,1,0,8ce759ff-f579-461c-bb1e-9ac2b01e88df,8ce759ff-f579-461c-bb1e-9ac2b01e88df,1,0,8b451909-2c15-48f2-b869-65e7031cc542,8b451909-2c15-48f2-b869-65e7031cc542,1,0,ab6ff81a-56aa-4742-afe4-d7a652e9d2de,ab6ff81a-56aa-4742-afe4-d7a652e9d2de,1,0,7b377fca-4466-476f-9eb2-0b00141103d6,7b377fca-4466-476f-9eb2-0b00141103d6,1,0,9ce5eceb-f366-4035-956e-62721358b154,9ce5eceb-f366-4035-956e-62721358b154,1,0,8b5358e9-5810-45a7-a49e-fe7fe63c73f3,8b5358e9-5810-45a7-a49e-fe7fe63c73f3,1,0,23afa5f6-9c3f-4f79-885b-b20785fc5e45,23afa5f6-9c3f-4f79-885b-b20785fc5e45,1,0,379a8bf7-b760-43d6-b5c4-6393b00e294f,379a8bf7-b760-43d6-b5c4-6393b00e294f,1,0,e44b737f-9076-4070-94ba-ed0b00e60393,e44b737f-9076-4070-94ba-ed0b00e60393,1,0,5582e533-b908-40c9-8c81-876906f0d47e,5582e533-b908-40c9-8c81-876906f0d47e,1,0,71656b8b-2d9b-4ac9-884d-72f47b9c69b7,71656b8b-2d9b-4ac9-884d-72f47b9c69b7,1,0,e0797541-88c2-4ad9-9ff4-d56899e6a6ee,e0797541-88c2-4ad9-9ff4-d56899e6a6ee,1,0,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,794f5fb5-3b8f-4f45-9250-7a3b9d1db383,1,0,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,f7a89bfc-e3c9-4894-a2df-6c229b4e0fd8,1,0,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,1e8b70ce-27fc-418f-b3f3-e6efbce9f7a2,1,0,d915d338-3e4c-45c3-aef5-a07cf41b05f6,d915d338-3e4c-45c3-aef5-a07cf41b05f6,1,0,28080e64-cd09-410d-9e3e-3ffdb43d3ace,28080e64-cd09-410d-9e3e-3ffdb43d3ace,1,0,9cfd3d38-4e0e-40f4-ae77-7a997646e4b2,9cfd3d38-4e0e-40f4-ae77-7a997646e4b2,1,0,978640a2-5c4b-4e21-857e-34f00840fba8,978640a2-5c4b-4e21-857e-34f00840fba8,1,0,da2913e3-a29b-423f-9aae-08fed56a7d90,da2913e3-a29b-423f-9aae-08fed56a7d90,1,0,149e72b8-cc03-4b4f-8ca4-07987600c34d,149e72b8-cc03-4b4f-8ca4-07987600c34d,1,0,7649bd7b-fe8c-4338-80fc-153160a5e538,7649bd7b-fe8c-4338-80fc-153160a5e538,1,0,7779cd6d-8fa1-49cb-9bbc-9dfd0979f3f4,7779cd6d-8fa1-49cb-9bbc-9dfd0979f3f4,1,0,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,3dec1ae7-90bb-45ab-aa04-48cfbc14742e,1,0,6137605e-4850-44ec-b4ee-048bd8e0ec3a,6137605e-4850-44ec-b4ee-048bd8e0ec3a,1,0,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,ee28aa9b-0f31-4d8b-8444-43b8bc88bd23,1,0,0e6e9372-beb4-478e-9428-71b19a60739b,0e6e9372-beb4-478e-9428-71b19a60739b,1,0,a805d33c-2cb0-4862-943f-06ded997b940,a805d33c-2cb0-4862-943f-06ded997b940,1,0,32b11498-542f-46b2-829f-1525936ab7fa,32b11498-542f-46b2-829f-1525936ab7fa,1,0,64afa916-4750-4008-8c6c-2a470fb11283,64afa916-4750-4008-8c6c-2a470fb11283,1,0,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,f4a85bfb-40c7-4f81-af32-d07b96c53ad0,1,0,35354abc-9a76-4ee8-8796-c24b37365ea0,35354abc-9a76-4ee8-8796-c24b37365ea0,1,0,7078977f-31bf-427e-ac37-e309d81fe999,7078977f-31bf-427e-ac37-e309d81fe999,1,0,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,bb39ae51-be82-4bb5-a30e-2bf2b53be59e,1,0,d8854555-9e15-4d82-a1fd-656a848a8e8a,d8854555-9e15-4d82-a1fd-656a848a8e8a,1,0,87ed7963-c2e4-4515-b768-47cf72442fd0,87ed7963-c2e4-4515-b768-47cf72442fd0,1,0,53191842-ea05-4491-84d7-071cd201992d,53191842-ea05-4491-84d7-071cd201992d,1,0,86c70449-4cf7-4baf-9742-b82b134ed929,86c70449-4cf7-4baf-9742-b82b134ed929,1,0,af3b1881-163a-4c07-a1d9-77ceadf59c77,af3b1881-163a-4c07-a1d9-77ceadf59c77,1,0,d3443b92-32f5-4ac0-8356-062647efe3d8,d3443b92-32f5-4ac0-8356-062647efe3d8,1,0,b78be6fb-7db8-48c8-ba7b-aab1fea34890,b78be6fb-7db8-48c8-ba7b-aab1fea34890,1,0,bd27276a-e80c-4135-b341-f99a816ffe86,bd27276a-e80c-4135-b341-f99a816ffe86,1,0,35306678-147c-4ad1-a3c6-c80a11afa22f,35306678-147c-4ad1-a3c6-c80a11afa22f,1,0,0da75726-ae71-4d83-a696-a774c787a8a2,0da75726-ae71-4d83-a696-a774c787a8a2,1,0,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,5b30b0e9-f986-49b8-8668-5bb0e09f0cfe,1,0,896a7267-0198-4cbb-b6e6-7aa157c0cc61,896a7267-0198-4cbb-b6e6-7aa157c0cc61,1,0,2005bf54-219b-4111-bff1-e12e2c6dca3e,2005bf54-219b-4111-bff1-e12e2c6dca3e,1,0,abab8f73-d705-4350-b44d-f912649a2190,abab8f73-d705-4350-b44d-f912649a2190,1,0,20c9c25c-f8c9-429f-84bd-543cb809abef,20c9c25c-f8c9-429f-84bd-543cb809abef,1,0,dc5f451e-3275-43a8-9f48-45b83220d461,dc5f451e-3275-43a8-9f48-45b83220d461,1,0,028f5e81-61df-4d13-876d-781c5fd18ee6,028f5e81-61df-4d13-876d-781c5fd18ee6,1,0,3cbb59ef-7f64-4590-8a54-ba01e78283c3,3cbb59ef-7f64-4590-8a54-ba01e78283c3,1,0,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,a5b83672-2ead-4d0a-a4e5-ddd991f1addc,1,0,388eb513-fadb-40cd-8a7b-33b904dd758e,388eb513-fadb-40cd-8a7b-33b904dd758e,1,0,0613c6aa-e1fe-4632-a396-a17ec773158f,0613c6aa-e1fe-4632-a396-a17ec773158f,1,0,1a330987-4c79-4ab7-b250-db8d32c78751,1a330987-4c79-4ab7-b250-db8d32c78751,1,0,b7295e8e-0aa4-4a49-81ea-0594a358e9ca,b7295e8e-0aa4-4a49-81ea-0594a358e9ca,1,0,555062ed-9a04-41d8-877f-0a667e9a08cd,555062ed-9a04-41d8-877f-0a667e9a08cd,1,0,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,5b1db523-b5cb-4ff8-8662-5feeb4282b4a,1,0,ac160e1c-fef7-4625-84e0-964b397f6bdb,ac160e1c-fef7-4625-84e0-964b397f6bdb,1,0,b8946d9c-dda8-4b94-8cbf-db62b647c53e,b8946d9c-dda8-4b94-8cbf-db62b647c53e,1,0,24215916-7732-4030-9f88-163f644e94f7,24215916-7732-4030-9f88-163f644e94f7,1,0,69697945-9748-4cea-a20f-e244b46de2e8,69697945-9748-4cea-a20f-e244b46de2e8,1,0,68538fd1-262c-43ea-b09f-8a66643a0062,68538fd1-262c-43ea-b09f-8a66643a0062,1,0,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,d042a8e1-a7b9-4f26-abc4-d618bc73e9f5,1,0,82ad24cc-d9f8-440b-a720-e204101d85da,82ad24cc-d9f8-440b-a720-e204101d85da,1,0,aa63c001-c3da-4179-8fd8-fe2ff510511e,aa63c001-c3da-4179-8fd8-fe2ff510511e,1,0,b2e894b0-6443-4a52-95b6-6b564f809680,b2e894b0-6443-4a52-95b6-6b564f809680,1,0,8010065f-aec8-4768-85ec-9eb7b2b01e7e,8010065f-aec8-4768-85ec-9eb7b2b01e7e,1,0,a44348cb-e20c-4afd-8483-3b9c735b352c,a44348cb-e20c-4afd-8483-3b9c735b352c,1,0,ebfe4c74-6e16-4b64-8a52-cea95c446903,ebfe4c74-6e16-4b64-8a52-cea95c446903,1,0,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,ea9ed37c-7f58-43a8-990c-f1feb5d2d275,1,0,d912e472-9553-4b96-8b16-7aaff6c14239,d912e472-9553-4b96-8b16-7aaff6c14239,1,0,b04018b5-a74d-43c9-8519-6cc8aa23fe09,b04018b5-a74d-43c9-8519-6cc8aa23fe09,1,0,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,8f5af22e-3e73-4a4f-b91e-eccd0f5084fd,1,0,9283277f-2b75-4c3a-810a-8d4071b3afcc,9283277f-2b75-4c3a-810a-8d4071b3afcc,1,0,d03d5b18-57a2-43c0-99ea-8ad9d5788179,d03d5b18-57a2-43c0-99ea-8ad9d5788179,1,0,c491a7fc-14f9-498a-b7dd-575dfc66878e,c491a7fc-14f9-498a-b7dd-575dfc66878e,1,0,ec966ef2-b291-4937-a164-5c2b461871f8,ec966ef2-b291-4937-a164-5c2b461871f8,1,0,db15f8eb-4736-4b47-9cee-3e6883f0888c,db15f8eb-4736-4b47-9cee-3e6883f0888c,1,0,59064eb2-2770-4f1c-96bd-801926fe68ef,59064eb2-2770-4f1c-96bd-801926fe68ef,1,0,df81cc63-26f2-4e66-bf0b-fd083a6a7d7b,df81cc63-26f2-4e66-bf0b-fd083a6a7d7b,1,0,8a8848b8-345a-452d-bf95-28f9c91c7e95,8a8848b8-345a-452d-bf95-28f9c91c7e95,1,0,440ecfe8-72fd-447b-8680-c4a8c43f2c72,440ecfe8-72fd-447b-8680-c4a8c43f2c72,1,0,5afe3a0f-1bbc-4f04-87b3-f98d54b65a42,5afe3a0f-1bbc-4f04-87b3-f98d54b65a42,1,0,ee9e8f50-4d4f-43aa-99eb-cda2308c903e,ee9e8f50-4d4f-43aa-99eb-cda2308c903e,1,0,4ff043c1-6c0b-4889-a684-23da5a35b9c2,4ff043c1-6c0b-4889-a684-23da5a35b9c2,1,0,6fe56ecb-c969-4c03-8e6b-65395c29e817,6fe56ecb-c969-4c03-8e6b-65395c29e817,1,0,48627a8d-b108-43b8-a58e-fd98e4220639,48627a8d-b108-43b8-a58e-fd98e4220639,1,0,2a8eb62d-2795-48ab-ae02-68527996f411,2a8eb62d-2795-48ab-ae02-68527996f411,1,0,d3bf09be-0f21-4dc3-a525-1c4dc75928ea,d3bf09be-0f21-4dc3-a525-1c4dc75928ea,1,0,5ca880c5-7c34-4c31-a2b8-46265ddea7d4,5ca880c5-7c34-4c31-a2b8-46265ddea7d4,1,0,a9441693-87ca-4157-98e1-63375852755c,a9441693-87ca-4157-98e1-63375852755c,1,0,6303ea55-e8ed-4acc-9717-941eefafc2a9,6303ea55-e8ed-4acc-9717-941eefafc2a9,1,0,5b4e1b83-fc10-4acc-bef7-81c73dbbc453,5b4e1b83-fc10-4acc-bef7-81c73dbbc453,1,0,d0b17206-3949-4513-a47f-02e1a8ba369a,d0b17206-3949-4513-a47f-02e1a8ba369a,1,0,cb4f20d4-13e6-4c27-b491-da7931f4bf05,cb4f20d4-13e6-4c27-b491-da7931f4bf05,1,0,6b2340d7-687f-43a3-8eb8-8ddb86712466,6b2340d7-687f-43a3-8eb8-8ddb86712466,1,0,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,9846e2f6-d82a-42a6-bf50-2a9cdf750a8f,1,0,9328da5c-4689-4a60-8136-ae9eac46ab38,9328da5c-4689-4a60-8136-ae9eac46ab38,1,0,ca5d586f-81bb-40ee-b3bd-de854857c984,ca5d586f-81bb-40ee-b3bd-de854857c984,1,0,32c10512-7bb8-423b-9503-ab2fa41386a4,32c10512-7bb8-423b-9503-ab2fa41386a4,1,0,888edfc4-8140-4675-b267-c32bf1d8d29d,888edfc4-8140-4675-b267-c32bf1d8d29d,1,0,2abbd53a-0ead-42af-8df6-fde663aea300,2abbd53a-0ead-42af-8df6-fde663aea300,1,0,24611bf9-5492-443a-935c-a0058e86493f,24611bf9-5492-443a-935c-a0058e86493f,1,0,42641296-64da-46e0-a407-de2d492f9c90,42641296-64da-46e0-a407-de2d492f9c90,1,0,b834af0b-086c-445d-a271-7e178c324551,b834af0b-086c-445d-a271-7e178c324551,1,0,ec34befe-3c0b-4a75-b943-840c52e7dda5,ec34befe-3c0b-4a75-b943-840c52e7dda5,1,0,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,7f18eb86-e9ac-4cb8-a9aa-389f61dff582,1,0,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,b5e81952-e469-4f26-b8d2-90e7d9e7bc1d,1,0,6733f1bd-7878-4a33-8995-c07526e87c1a,6733f1bd-7878-4a33-8995-c07526e87c1a,1,0,f7e73257-fae1-465a-ae74-faaa0273a416,f7e73257-fae1-465a-ae74-faaa0273a416,1,0,73f89524-dbe8-426f-8ee6-1277eb1967cc,73f89524-dbe8-426f-8ee6-1277eb1967cc,1,0,ee7d970c-cef7-4740-a357-1fe78f88a6e6,ee7d970c-cef7-4740-a357-1fe78f88a6e6,1,0,13beb01d-dd08-4a6d-863b-651e70bbf51f,13beb01d-dd08-4a6d-863b-651e70bbf51f,1,0,94bc76ae-72a0-418f-98c4-ae0a0326a2da,94bc76ae-72a0-418f-98c4-ae0a0326a2da,1,0,784475ff-eec5-462a-a511-ba31f8374c2e,784475ff-eec5-462a-a511-ba31f8374c2e,1,0,b5b56a64-5550-4da9-8872-d42ab871d21c,b5b56a64-5550-4da9-8872-d42ab871d21c,1,0,e9939b36-bceb-40e2-a182-1d5cc248f353,e9939b36-bceb-40e2-a182-1d5cc248f353,1,0,619d3ac6-40fe-485d-a407-fe065f16b186,619d3ac6-40fe-485d-a407-fe065f16b186,1,0,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,ecaa0af8-549c-4c07-82ff-1c4e02ff15b8,1,0,45a8c780-c067-40d7-bbe9-81f854aacf7a,45a8c780-c067-40d7-bbe9-81f854aacf7a,1,0,57885cac-059a-4a08-aa2c-43b116d2c777,57885cac-059a-4a08-aa2c-43b116d2c777,1,0,c0403df4-b1f2-4d7e-adb5-9ed881c1359b,c0403df4-b1f2-4d7e-adb5-9ed881c1359b,1,0,27e0b5d9-1a4c-45b8-8969-d1d1c39129c1,27e0b5d9-1a4c-45b8-8969-d1d1c39129c1,1,0,626cbb27-6af2-4a9a-959e-15af4417e489,626cbb27-6af2-4a9a-959e-15af4417e489,1,0,e7b0ae70-0192-456c-9dc5-e66049fa9df2,e7b0ae70-0192-456c-9dc5-e66049fa9df2,1,0,68944d09-618e-4fa3-a7af-8c84218e0ac7,68944d09-618e-4fa3-a7af-8c84218e0ac7,1,0,91b12ce3-e8ba-4c9d-9daa-1d5532500314,91b12ce3-e8ba-4c9d-9daa-1d5532500314,1,0,733dc291-0bef-4fe8-ac9f-63440f0c2ad0,733dc291-0bef-4fe8-ac9f-63440f0c2ad0,1,0,356a8091-4c0b-41d0-b8d2-963b3a807469,356a8091-4c0b-41d0-b8d2-963b3a807469,1,0,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,5b7b7dc3-dbef-4854-9395-30a3ae4d751c,1,0,cb57aabc-eeef-42b4-9bc2-873cebd9618c,cb57aabc-eeef-42b4-9bc2-873cebd9618c,1,0,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,2fcd2c85-6778-42fa-9bdd-a6ba47497ec0,1,0,52f30ed7-aa16-4ce2-9684-e50229ab0015,52f30ed7-aa16-4ce2-9684-e50229ab0015,1,0,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,79c2e2bd-f923-42ec-8bdc-3e517e08ee7c,1,0,54ecaf7b-9bc5-483c-96e1-270bcd323590,54ecaf7b-9bc5-483c-96e1-270bcd323590,1,0,f00e93bf-6e3b-4819-a4e1-33471a6d0fff,f00e93bf-6e3b-4819-a4e1-33471a6d0fff,1,0,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,2a1f77ba-fa2e-4281-8e68-7ec4ca0261b7,1,0,58f6f8fa-7473-40f5-973a-6279335d8f33,58f6f8fa-7473-40f5-973a-6279335d8f33,1,0,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,ec0c3187-de61-4bc8-a52a-7617f47ffb6d,1,0,1e71ec59-55a4-45e8-a8c9-f70c2cb56589,1e71ec59-55a4-45e8-a8c9-f70c2cb56589,1,0,fa3632fe-185b-49aa-85ae-dfb721835d40,fa3632fe-185b-49aa-85ae-dfb721835d40,1,0,a4f15108-477c-465e-aaea-cb495ef52cf5,a4f15108-477c-465e-aaea-cb495ef52cf5,1,0,9cda5c2c-f401-4f63-b445-cef160296e48,9cda5c2c-f401-4f63-b445-cef160296e48,1,0,e8ae4a26-3127-43ae-af7a-c2e278d2611d,e8ae4a26-3127-43ae-af7a-c2e278d2611d,1,0,b923c78f-d074-41b4-b832-086686258f19,b923c78f-d074-41b4-b832-086686258f19,1,0,8ff96413-6fdd-4b8d-a181-ea0d8633defc,8ff96413-6fdd-4b8d-a181-ea0d8633defc,1,0,54604ed2-766b-4308-b99e-447817d82799,54604ed2-766b-4308-b99e-447817d82799,1,0,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,7abdb07b-edbc-4c3b-aa53-afaa92dc9071,1,0,ee008096-1ae8-4a64-9d3d-14cb15c8be70,ee008096-1ae8-4a64-9d3d-14cb15c8be70,1,0,a0a85b22-63ee-4a05-8b0d-1feb9ee07b0a,a0a85b22-63ee-4a05-8b0d-1feb9ee07b0a,1,0,a4754a7b-971f-4517-963e-b7cb9d57f86d,a4754a7b-971f-4517-963e-b7cb9d57f86d,1,0,f48b4475-2cd9-41df-962a-6529f84985ca,f48b4475-2cd9-41df-962a-6529f84985ca,1,0,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,2fbfe405-48e6-4abf-99c2-7f1f66a62b48,1,0,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,5e6637c7-19b5-4ac2-a8e9-d119e49f444e,1,0,bf94feb9-edf7-4df8-b5f5-805613663a0a,bf94feb9-edf7-4df8-b5f5-805613663a0a,1,0,6d852a13-c85e-4e84-8396-f91c1ed0596e,6d852a13-c85e-4e84-8396-f91c1ed0596e,1,0,9c2d5313-a4fd-417e-a340-ad4980d0028b,9c2d5313-a4fd-417e-a340-ad4980d0028b,1,0,4fb4a280-9426-4c41-a9ba-11f9d01a0740,4fb4a280-9426-4c41-a9ba-11f9d01a0740,1,0,1591ee7e-870c-4bf7-9450-be84f1b2506f,1591ee7e-870c-4bf7-9450-be84f1b2506f,1,0,526c688e-a4d4-45f7-8bba-b8ceff38fe27,526c688e-a4d4-45f7-8bba-b8ceff38fe27,1,0,7e32c295-a769-4cff-a3eb-992f7031475f,7e32c295-a769-4cff-a3eb-992f7031475f,1,0,5a398637-a06c-4442-9093-a864fa7f049f,5a398637-a06c-4442-9093-a864fa7f049f,1,0,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,fe4aa694-76c4-49c9-96ce-a2476f4ff58b,1,0,115a6019-ef87-4126-8ebf-070c1e882940,115a6019-ef87-4126-8ebf-070c1e882940,1,0,162ce023-b2e1-41dc-bcaf-b8e30caccce0,162ce023-b2e1-41dc-bcaf-b8e30caccce0,1,0,67efa786-312f-4c9c-b970-0320e92069af,67efa786-312f-4c9c-b970-0320e92069af,1,0,5b952e35-1037-4447-8293-6d8889692c8b,5b952e35-1037-4447-8293-6d8889692c8b,1,0,2bc2ca58-6cc0-4d4b-8672-f9328c86c2c1,2bc2ca58-6cc0-4d4b-8672-f9328c86c2c1,1,0,05bc8b4e-8c90-4502-8b16-7b1e7625d569,05bc8b4e-8c90-4502-8b16-7b1e7625d569,1,0,ce34d88d-3017-4197-a962-ea23a6a96d32,ce34d88d-3017-4197-a962-ea23a6a96d32,1,0,2cbc16da-aa67-4ad6-82f8-fa6922447be6,2cbc16da-aa67-4ad6-82f8-fa6922447be6,1,0,19d7a1ba-c343-4575-95da-53dac6d4b2cb,19d7a1ba-c343-4575-95da-53dac6d4b2cb,1,0,6cc8b3a0-3377-4b39-b6b0-69c862a15465,6cc8b3a0-3377-4b39-b6b0-69c862a15465,1,0,acb193f4-52e5-4572-a79b-b825a2f6525f,acb193f4-52e5-4572-a79b-b825a2f6525f,1,0,5d46f719-e468-48e2-b4ec-acb85c710451,5d46f719-e468-48e2-b4ec-acb85c710451,1,0,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,9fb13bfe-80c7-43c3-b0da-9185ab197ce2,1,0,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,cd80a520-1d1c-4d80-8a4a-360ac1ca98d8,1,0,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,e9aef0c8-9dc4-4c4a-8288-8b2d9860624d,1,0,733d4494-01e2-46f5-a49b-f289267a90c9,733d4494-01e2-46f5-a49b-f289267a90c9,1,0,1e14d062-1d5a-4939-8ce6-4d9514990376,1e14d062-1d5a-4939-8ce6-4d9514990376,1,0,f86f24d2-9a83-47ae-9d95-b49a0a295770,f86f24d2-9a83-47ae-9d95-b49a0a295770,1,0,8368e1fa-da0c-4a9b-9d50-a122933c7899,8368e1fa-da0c-4a9b-9d50-a122933c7899,1,0,37986729-a275-4e86-8613-faee9a4f2525,37986729-a275-4e86-8613-faee9a4f2525,1,0,0f0ac56d-b068-46f2-8440-731683c2b42a,0f0ac56d-b068-46f2-8440-731683c2b42a,1,0,5814cb3a-8f7c-45b4-a590-b69d4912120f,5814cb3a-8f7c-45b4-a590-b69d4912120f,1,0,f06c8396-65ec-4ece-aed0-d45b2d8969b5,f06c8396-65ec-4ece-aed0-d45b2d8969b5,1,0,1faeab7f-7bd7-496d-8882-4aab6c425854,1faeab7f-7bd7-496d-8882-4aab6c425854,1,0,5c17a594-eb0b-4cdf-af35-0eaba968e065,5c17a594-eb0b-4cdf-af35-0eaba968e065,1,0,af922fb8-a99c-4154-89fe-d30a4d13024a,af922fb8-a99c-4154-89fe-d30a4d13024a,1,0,24c2f463-2bbb-471f-a409-507afad52caf,24c2f463-2bbb-471f-a409-507afad52caf,1,0,cbb07013-9ae1-43ec-8142-a724d788cb67,cbb07013-9ae1-43ec-8142-a724d788cb67,1,0,2403ac84-b513-4aa0-9a68-8d1ad705ce24,2403ac84-b513-4aa0-9a68-8d1ad705ce24,1,0,952b49e0-e1a1-4130-8fb2-083e3988255c,952b49e0-e1a1-4130-8fb2-083e3988255c,1,0,367b227f-f66e-4cec-9fc3-850bca8bc6c8,367b227f-f66e-4cec-9fc3-850bca8bc6c8,1,0,1a3a8a3a-dc34-4491-883d-57c3fb69840a,1a3a8a3a-dc34-4491-883d-57c3fb69840a,1,0,7fcb9d79-1144-4099-8d7f-309d3bf045a5,7fcb9d79-1144-4099-8d7f-309d3bf045a5,1,0,db418313-8583-48a9-9fec-e2c5de4fdf76,db418313-8583-48a9-9fec-e2c5de4fdf76,1,0,6277a3b5-b158-4b58-a92b-5efdf2dabac0,6277a3b5-b158-4b58-a92b-5efdf2dabac0,1,0,2f26970e-b964-43e2-8d6d-999bbc577689,2f26970e-b964-43e2-8d6d-999bbc577689,1,0,65a50026-88e7-45dd-bb0c-f212218ca093,65a50026-88e7-45dd-bb0c-f212218ca093,1,0,ed9e5fbe-1db8-4fb9-a9fa-bb1927cae196,ed9e5fbe-1db8-4fb9-a9fa-bb1927cae196,1,0,1dd2b2c4-00aa-4029-ba32-fe82aa5c6cbe,1dd2b2c4-00aa-4029-ba32-fe82aa5c6cbe,1,0,2f4ea53a-c84d-4d5f-ae7a-817a20ccd96a,2f4ea53a-c84d-4d5f-ae7a-817a20ccd96a,1,0,b2a39c8a-d884-4dfe-a593-e6788dabbd6b,b2a39c8a-d884-4dfe-a593-e6788dabbd6b,1,0,3d0afdb2-ab8f-43c0-920a-88ed85545b2f,3d0afdb2-ab8f-43c0-920a-88ed85545b2f,1,0,17477f72-0622-445c-9cb7-2c5a5a65bbe0,17477f72-0622-445c-9cb7-2c5a5a65bbe0,1,0,01a1fd57-6c09-4a5b-9f75-da4366159423,01a1fd57-6c09-4a5b-9f75-da4366159423,1,0,71d79b25-3682-4f2c-b6b2-a307e3e72844,71d79b25-3682-4f2c-b6b2-a307e3e72844,1,0,45c1ed0d-202e-4289-820f-e1de0f544386,45c1ed0d-202e-4289-820f-e1de0f544386,1,0,e889e80f-97c9-43c6-8268-d652764fcafb,e889e80f-97c9-43c6-8268-d652764fcafb,1,0,4eb48d3a-e2d5-4db5-b08b-4b6ccc701f77,4eb48d3a-e2d5-4db5-b08b-4b6ccc701f77,1,0,95ccaaf2-f6ca-4540-8a39-3c90121c4236,95ccaaf2-f6ca-4540-8a39-3c90121c4236,1,0,7c920b8b-1dbf-4f7e-99af-1ca784a59a64,7c920b8b-1dbf-4f7e-99af-1ca784a59a64,1,0,f47a9bec-2a9f-4955-a432-acb63a5b0e46,f47a9bec-2a9f-4955-a432-acb63a5b0e46,1,0,1ba73b6b-cb72-4370-a268-279dcd7a54b9,1ba73b6b-cb72-4370-a268-279dcd7a54b9,1,0,49de6b63-a845-4b5a-9818-18a3e0bb6fe8,49de6b63-a845-4b5a-9818-18a3e0bb6fe8,1,0,b787818e-5572-4ef2-ba54-1e9b69569824,b787818e-5572-4ef2-ba54-1e9b69569824,1,0,1e13bd37-61b5-4901-a607-e00e5d1900a8,1e13bd37-61b5-4901-a607-e00e5d1900a8,1,0,395b43e4-c18b-4f68-b99c-aed8d4b8cac9,395b43e4-c18b-4f68-b99c-aed8d4b8cac9,1,0,231d7b21-c00c-4782-b610-d56593be436f,231d7b21-c00c-4782-b610-d56593be436f,1,0,79250d1a-77ff-4015-a5b5-83460b1611e2,79250d1a-77ff-4015-a5b5-83460b1611e2,1,0,60018ee0-71ec-4975-a95d-f6f188748ff2,60018ee0-71ec-4975-a95d-f6f188748ff2,1,0,68d35468-279a-43ef-9d71-fed44a792177,68d35468-279a-43ef-9d71-fed44a792177,1,0,77bec3d8-582a-4156-861b-4902008f014c,77bec3d8-582a-4156-861b-4902008f014c,1,0,2ad1caba-7a89-4389-934f-419970260961,2ad1caba-7a89-4389-934f-419970260961,1,0,bfc1a708-662d-4dc1-82b4-7b09bb1b0751,bfc1a708-662d-4dc1-82b4-7b09bb1b0751,1,0,f88c4a72-368c-4f45-bb2c-d18f214a5079,f88c4a72-368c-4f45-bb2c-d18f214a5079,1,0,611876ba-7e6e-40c3-89a9-bb9b19cd1bfb,611876ba-7e6e-40c3-89a9-bb9b19cd1bfb,1,0,9dc2e313-c086-4fd9-83e8-911859ef480d,9dc2e313-c086-4fd9-83e8-911859ef480d,1,0,8a14ced0-9e45-4b3a-a135-11413c3a33c2,8a14ced0-9e45-4b3a-a135-11413c3a33c2,1,0,af7377db-0b27-42f7-a639-e2feb4015412,af7377db-0b27-42f7-a639-e2feb4015412,1,0,e1a200e2-64f3-434c-ae0d-5f24b9d65c9b,e1a200e2-64f3-434c-ae0d-5f24b9d65c9b,1,0,ab7db146-f26a-418a-8c45-e2513bf84e08,ab7db146-f26a-418a-8c45-e2513bf84e08,1,0,ece3bd8d-6616-44d5-9c14-6b3557738872,ece3bd8d-6616-44d5-9c14-6b3557738872,1,0,663a80ba-b97e-4265-a627-4a7d273f9472,663a80ba-b97e-4265-a627-4a7d273f9472,1,0,bf3304c0-5078-478f-bbf8-6178264c5f26,bf3304c0-5078-478f-bbf8-6178264c5f26,1,0,fbf754c3-ab89-4704-b01a-67f8bcea0c7c,fbf754c3-ab89-4704-b01a-67f8bcea0c7c,1,0,3b0afd55-f08d-4d59-b6df-d7c4d1c52446,3b0afd55-f08d-4d59-b6df-d7c4d1c52446,1,0,4893ad50-df19-4d86-9469-40491ba733c9,4893ad50-df19-4d86-9469-40491ba733c9,1,0,25a65c1e-8e67-4135-843d-1e0da72dfd64,25a65c1e-8e67-4135-843d-1e0da72dfd64,1,0,5724fbd5-4d91-4e6d-ae24-8925a4d83c83,5724fbd5-4d91-4e6d-ae24-8925a4d83c83,1,0,29a6416e-b0f5-4111-8f86-1ba80244e73a,29a6416e-b0f5-4111-8f86-1ba80244e73a,1,0,0f49085a-9b83-4256-be60-f341b2ef132e,0f49085a-9b83-4256-be60-f341b2ef132e,1,0,f44c66d6-cfe2-482f-a921-de3db3cd09ea,f44c66d6-cfe2-482f-a921-de3db3cd09ea,1,0,5ec1b7af-f4bc-4ec1-8f43-85c4f9d146a0,5ec1b7af-f4bc-4ec1-8f43-85c4f9d146a0,1,0,c521bd61-386e-41c8-bcc3-29d54b63cc32,c521bd61-386e-41c8-bcc3-29d54b63cc32,1,0,d46e3424-6d30-4229-9a56-ab256517534a,d46e3424-6d30-4229-9a56-ab256517534a,1,0,09d3633d-8e8c-47f3-8f34-d70eb94577e1,09d3633d-8e8c-47f3-8f34-d70eb94577e1,1,0,fe868143-363b-4da1-889b-98d4dd10a1fd,fe868143-363b-4da1-889b-98d4dd10a1fd,1,0,b791a549-ae94-46f2-8f04-771fdeb4cc54,b791a549-ae94-46f2-8f04-771fdeb4cc54,1,0,4681cb63-c581-4c08-b18c-016d9b478ef2,4681cb63-c581-4c08-b18c-016d9b478ef2,1,0,041c364f-0498-494f-9e41-82cb416c0862,041c364f-0498-494f-9e41-82cb416c0862,1,0,913830c8-da01-4b7e-9d83-d406c2fefd49,913830c8-da01-4b7e-9d83-d406c2fefd49,1,0,ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171,ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171,1,0,9f1c8979-2b3d-4a96-af6c-4577541696a3,9f1c8979-2b3d-4a96-af6c-4577541696a3,1,0,5adaafcf-3d67-418d-b47d-d0d8c65f1f46,5adaafcf-3d67-418d-b47d-d0d8c65f1f46,1,0,8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5,8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5,1,0,f68ec923-89c8-4c83-80a2-2d5e096dbbd8,f68ec923-89c8-4c83-80a2-2d5e096dbbd8,1,0,f278bdf8-543a-4427-b2f1-3670c61502ae,f278bdf8-543a-4427-b2f1-3670c61502ae,1,0,00ce0cd2-9840-49a0-b9df-dc64becd3e65,00ce0cd2-9840-49a0-b9df-dc64becd3e65,1,0,db6f11c0-8530-43c1-811a-48797be89ec1,db6f11c0-8530-43c1-811a-48797be89ec1,1,0,c2782a2b-f910-4d4d-ba1b-49ef7854bae0,c2782a2b-f910-4d4d-ba1b-49ef7854bae0,1,0,293cda8c-1cc8-42c0-a68f-d22163aed4f1,293cda8c-1cc8-42c0-a68f-d22163aed4f1,1,0,5e48841c-0a65-457f-8952-fa97aae3207d,5e48841c-0a65-457f-8952-fa97aae3207d,1,0,ee0275e4-a497-4623-9d2f-6308ea2e70ca,ee0275e4-a497-4623-9d2f-6308ea2e70ca,1,0,ec37d236-db36-44ef-afc2-267af1f40c1f,ec37d236-db36-44ef-afc2-267af1f40c1f,1,0,d835f08d-79c6-4e79-a7c1-f00dc05778b9,d835f08d-79c6-4e79-a7c1-f00dc05778b9,1,0,32371dfd-c890-4bed-bd68-45db299c9caf,32371dfd-c890-4bed-bd68-45db299c9caf,1,0,eeb298cf-8df3-41fe-bb48-9c83a24a8206,eeb298cf-8df3-41fe-bb48-9c83a24a8206,1,0,04055821-03ce-4049-af2c-8670c80517f6,04055821-03ce-4049-af2c-8670c80517f6,1,0,0101305d-62eb-4802-9cd4-d615a518d842,0101305d-62eb-4802-9cd4-d615a518d842,1,0,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,898d2ba7-631a-4e7a-9bdf-cd2ef411e57a,1,0,1d429511-9446-4102-95f4-df676125e14c,1d429511-9446-4102-95f4-df676125e14c,1,0,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,bf1fc624-60d7-4a04-bb3a-b6e2882bebfe,1,0,7c424424-9660-462d-9cf2-4c1e6bd284fa,7c424424-9660-462d-9cf2-4c1e6bd284fa,1,0,e118f957-ab2c-473b-ab64-37032f727416,e118f957-ab2c-473b-ab64-37032f727416,1,0,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,e770e26e-a3a4-487d-b3bb-aeb63d8b7323,1,0,21f64e5f-dc94-4ce9-b836-e75646ae3325,21f64e5f-dc94-4ce9-b836-e75646ae3325,1,0,82e8a180-f2e1-406c-9609-89d33504aff2,82e8a180-f2e1-406c-9609-89d33504aff2,1,0,e7437c81-3d5b-466e-880c-8febe4a68e88,e7437c81-3d5b-466e-880c-8febe4a68e88,1,0,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,99bc26f9-ba56-4c63-9fd1-c2f3d630b93c,1,0,307771e6-bcf7-4016-b369-e1655bbe9e94,307771e6-bcf7-4016-b369-e1655bbe9e94,1,0,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,bf8c60f7-7dea-4a2c-8ce2-7001a6a37bfa,1,0,38fc6a54-846c-40b0-9254-3261f540bf18,38fc6a54-846c-40b0-9254-3261f540bf18,1,0,d9134d0c-56cd-4b8f-ab11-ae37fc306801,d9134d0c-56cd-4b8f-ab11-ae37fc306801,1,0,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,9408d0ee-bd61-4b95-ac7c-98de139b5f9e,1,0,8f2af24b-f5fa-4f6d-831e-28453bdedefc,8f2af24b-f5fa-4f6d-831e-28453bdedefc,1,0,d119e21d-0087-4f22-b3bd-b14707b65330,d119e21d-0087-4f22-b3bd-b14707b65330,1,0,dc9b4072-11de-40fe-bf2a-f7b15af0a250,dc9b4072-11de-40fe-bf2a-f7b15af0a250,1,0,e2cf5ca9-c2a0-4506-89e6-318cad0a48a3,e2cf5ca9-c2a0-4506-89e6-318cad0a48a3,1,0,aa0e290d-21ab-4197-b8f3-cf1f97ab1b98,aa0e290d-21ab-4197-b8f3-cf1f97ab1b98,1,0,eefa9859-4168-4a10-923f-e4a713c99a3b,eefa9859-4168-4a10-923f-e4a713c99a3b,1,0,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,5aecdfd1-1cd7-4523-be23-7e32fcb01a94,1,0,932b1c1a-72eb-49cd-8218-d0ced9c454d8,932b1c1a-72eb-49cd-8218-d0ced9c454d8,1,0,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,96d70dc4-02bd-47ad-9465-81de6ff5bdc9,1,0,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,38acaf7a-5a77-40bf-ba2a-17b31cccd37d,1,0,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,cb604857-8e49-4f2f-b5c8-2a7d8a3cf8e4,1,0,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,f33e9c76-e523-4f4e-ab4b-3fc1b256d8dd,1,0,5dd336c4-88c5-4f53-acf0-5f86a658c528,5dd336c4-88c5-4f53-acf0-5f86a658c528,1,0,c723112b-286d-46f1-989d-81252062a025,c723112b-286d-46f1-989d-81252062a025,1,0,67e8b47e-4bad-4b2f-b196-8a9708893051,67e8b47e-4bad-4b2f-b196-8a9708893051,1,0,39bddcde-697c-4e77-adfd-e4a77529ea97,39bddcde-697c-4e77-adfd-e4a77529ea97,1,0,a3b15381-bf9b-4b26-96eb-392fa2cc8223,a3b15381-bf9b-4b26-96eb-392fa2cc8223,1,0,a583e53a-3f3c-48c7-8928-37ce40b2bafe,a583e53a-3f3c-48c7-8928-37ce40b2bafe,1,0,a844dd4a-274a-4894-9446-031dbe006084,a844dd4a-274a-4894-9446-031dbe006084,1,0,9a740f81-5437-47af-8ed9-ea62edcb2ea1,9a740f81-5437-47af-8ed9-ea62edcb2ea1,1,0,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,cdf54c86-0a1c-4f74-93ee-6d8d8db0a778,1,0,77bdd30f-4933-4bda-9c7a-b0a097da0910,77bdd30f-4933-4bda-9c7a-b0a097da0910,1,0,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,a8d52851-4293-4fe4-b2cb-f9c8c166ed97,1,0,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,d4879ecc-8f1a-4183-99a8-d6dfc1eed3f8,1,0,8e9eb604-5f15-4ef5-8906-5bcd57b3d099,8e9eb604-5f15-4ef5-8906-5bcd57b3d099,1,0,a682e9e1-284f-4e32-86b2-6736f159f585,a682e9e1-284f-4e32-86b2-6736f159f585,1,0,84f0bd89-9b86-440f-b942-9b685e22233e,84f0bd89-9b86-440f-b942-9b685e22233e,1,0,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,f2d508b3-9425-4ce6-86d8-5893ca4a8cd6,1,0,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,ce61612f-bcbb-4a02-bca0-d88e0ee42bd7,1,0,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,c1c35035-44cc-4aa1-ae8e-db3513ddc5f3,1,0,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,ac52baa1-02cb-4ce8-8f4f-1f9441b1cda0,1,0,fabf8a0b-366f-4f23-9377-315534bb854b,fabf8a0b-366f-4f23-9377-315534bb854b,1,0,7aac6439-64c9-4492-b866-bf91dda82d06,7aac6439-64c9-4492-b866-bf91dda82d06,1,0,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,6ffe3723-c6df-497b-a3ff-d817fbabfd8c,1,0,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,528a82b7-ef06-4d90-bb32-bd6d76ed6c74,1,0,08b86f29-64ef-467a-af1a-d27ffdf621ba,08b86f29-64ef-467a-af1a-d27ffdf621ba,1,0,6483d1ab-c53d-4985-ad7e-b799adbcd9da,6483d1ab-c53d-4985-ad7e-b799adbcd9da,1,0,82f66233-ed13-49ae-ab72-7cf91c88c760,82f66233-ed13-49ae-ab72-7cf91c88c760,1,0,75cddbcd-e960-4164-81d8-ac0a2a36e95b,75cddbcd-e960-4164-81d8-ac0a2a36e95b,1,0,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,e14d57f4-ae4a-4644-9ec1-a6af1b3e4c41,1,0,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,314f8451-ba96-46cd-bf9f-3a87df7d2a5b,1,0,d9151001-a911-45c1-a8e6-dcf0da623ed3,d9151001-a911-45c1-a8e6-dcf0da623ed3,1,0,42f4ad3c-3724-4032-82f0-10c8dbe6cc9f,42f4ad3c-3724-4032-82f0-10c8dbe6cc9f,1,0,bbd8b83d-413a-4ffc-8351-e0ec4f4ae619,bbd8b83d-413a-4ffc-8351-e0ec4f4ae619,1,0,c49cef0d-3b71-4e66-9e35-72b94920dae5,c49cef0d-3b71-4e66-9e35-72b94920dae5,1,0,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,30e06f80-b6d0-4fa9-a346-8e17dbe2fb68,1,0,e589a693-ff50-4c36-ae26-a8fcae966d57,e589a693-ff50-4c36-ae26-a8fcae966d57,1,0,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,8bacb87e-c2e9-41f5-bae1-c3a6b0e8179f,1,0,90f023f5-5b48-4f98-bfc6-b704277a355d,90f023f5-5b48-4f98-bfc6-b704277a355d,1,0,99485603-706d-4301-be25-82b1c0ee8f4d,99485603-706d-4301-be25-82b1c0ee8f4d,1,0,e7a28021-c75e-41b2-9974-cf4beee34d28,e7a28021-c75e-41b2-9974-cf4beee34d28,1,0,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,21e3bdf3-7cec-42de-8ef3-5815b9a1b747,1,0,2a603c61-4cbf-4c6d-a0b2-40c835d36737,2a603c61-4cbf-4c6d-a0b2-40c835d36737,1,0,a8d7f071-401b-499e-957c-d077d8002e54,a8d7f071-401b-499e-957c-d077d8002e54,1,0,b6206c73-cf17-4e74-a14d-f2a2ef2b2cc1,b6206c73-cf17-4e74-a14d-f2a2ef2b2cc1,1,0,b363f72f-3629-453c-9f7d-9828ef6de733,b363f72f-3629-453c-9f7d-9828ef6de733,1,0,211a539b-4be9-4816-98f6-f756e65eafd8,211a539b-4be9-4816-98f6-f756e65eafd8,1,0,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,e2d8167d-3ebf-4771-b9e0-e6382d68cc18,1,0,e9b9da80-7806-4c9c-a002-01cfa3109169,e9b9da80-7806-4c9c-a002-01cfa3109169,1,0,a271041d-0203-4ecd-bb39-70256c50192e,a271041d-0203-4ecd-bb39-70256c50192e,1,0,c6c26c3c-de7a-4ed4-944d-ada62cf1ab8f,c6c26c3c-de7a-4ed4-944d-ada62cf1ab8f,1,0,a54872fc-4e7e-4829-8564-1b2e7f0ee134,a54872fc-4e7e-4829-8564-1b2e7f0ee134,1,0,fe10d76e-3f80-4529-83a8-74c452a781f6,fe10d76e-3f80-4529-83a8-74c452a781f6,1,0,e3d1a7f5-ba86-414e-b2d2-89cc9db51667,e3d1a7f5-ba86-414e-b2d2-89cc9db51667,1,0,13333d66-ff04-49ec-973a-1229da8c9f50,13333d66-ff04-49ec-973a-1229da8c9f50,1,0,cb8ab5b6-876f-4aae-952f-2284bf0f539d,cb8ab5b6-876f-4aae-952f-2284bf0f539d,1,0,c9281eef-2e73-4b0f-ab72-7b4f6f10d787,c9281eef-2e73-4b0f-ab72-7b4f6f10d787,1,0,4a6fde33-6a58-4827-bdf9-b5e28e8cff6b,4a6fde33-6a58-4827-bdf9-b5e28e8cff6b,1,0,e2eadc5b-1b78-4ae4-8a55-a42402bb458b,e2eadc5b-1b78-4ae4-8a55-a42402bb458b,1,0,1e7effa9-3d8c-4d6c-bad2-98a3fd57ff33,1e7effa9-3d8c-4d6c-bad2-98a3fd57ff33,1,0,4c353b16-e6b6-4bd2-9d22-ce50a6281402,4c353b16-e6b6-4bd2-9d22-ce50a6281402,1,0,31f12f68-e5f7-4078-aca4-ebe32699fd6c,31f12f68-e5f7-4078-aca4-ebe32699fd6c,1,0,7e67f946-a80f-428e-a0eb-22c1a58b6fcf,7e67f946-a80f-428e-a0eb-22c1a58b6fcf,1,0,040cd37a-d272-4a87-b125-25d2cb8a2f9e,040cd37a-d272-4a87-b125-25d2cb8a2f9e,1,0,0f3e12fd-d60c-4323-8010-3f2951012d36,0f3e12fd-d60c-4323-8010-3f2951012d36,1,0,cf8c78d6-e1e0-4953-9928-b8d333e2c1ca,cf8c78d6-e1e0-4953-9928-b8d333e2c1ca,1,0,970421ca-4cb5-41f1-8e83-91ea4481ba9a,970421ca-4cb5-41f1-8e83-91ea4481ba9a,1,0,eb7aed6a-718d-4439-bea6-e7ede4987e3d,eb7aed6a-718d-4439-bea6-e7ede4987e3d,1,0,51ab4435-d8a2-4f54-b2ff-9465b0a4eef3,51ab4435-d8a2-4f54-b2ff-9465b0a4eef3,1,0,2f9d50bd-3e82-4321-81e6-2290b5a8a25e,2f9d50bd-3e82-4321-81e6-2290b5a8a25e,1,0,63a34a52-83e7-4644-8a70-9a845b5b18f2,63a34a52-83e7-4644-8a70-9a845b5b18f2,1,0,6f612a9e-c264-4856-98cf-e1a5b8ff7c97,6f612a9e-c264-4856-98cf-e1a5b8ff7c97,1,0,6d7b4670-9c33-41da-afca-bf1e01447623,6d7b4670-9c33-41da-afca-bf1e01447623,1,0,de31505e-3190-4b8c-81e9-8e2c2c7a1809,de31505e-3190-4b8c-81e9-8e2c2c7a1809,1,0,a07f12e8-f62c-4325-b0f4-df68b4b13e45,a07f12e8-f62c-4325-b0f4-df68b4b13e45,1,0,960dc389-b6bb-40ad-bcf7-a07b8c25d6f5,960dc389-b6bb-40ad-bcf7-a07b8c25d6f5,1,0,d8d61ffe-518a-4f06-ba47-238c0973a01a,d8d61ffe-518a-4f06-ba47-238c0973a01a,1,0,12b82221-3a4e-4d65-b1eb-001cc22725a7,12b82221-3a4e-4d65-b1eb-001cc22725a7,1,0,b301cd92-809f-4b0e-966b-8ab95e85ecb3,b301cd92-809f-4b0e-966b-8ab95e85ecb3,1,0,f0c12406-79a9-48e3-b470-b2148d3c9990,f0c12406-79a9-48e3-b470-b2148d3c9990,1,0,a587b305-efbf-43be-bf2e-95c4a33e9f3b,a587b305-efbf-43be-bf2e-95c4a33e9f3b,1,0,ba156cdc-ac78-4827-9598-f0bb7cc7569c,ba156cdc-ac78-4827-9598-f0bb7cc7569c,1,0,c7e646e7-c353-4549-ac4a-1b088be7f684,c7e646e7-c353-4549-ac4a-1b088be7f684,1,0,1db14384-34b2-422d-a7ee-fc930f48cfd1,1db14384-34b2-422d-a7ee-fc930f48cfd1,1,0,4b792d87-b16f-47b1-85a8-781365c2f135,4b792d87-b16f-47b1-85a8-781365c2f135,1,0,73eff626-a363-4a5a-879e-61ef6ce0726f,73eff626-a363-4a5a-879e-61ef6ce0726f,1,0,acf15b79-a6c4-4c46-8013-50d3b223baf6,acf15b79-a6c4-4c46-8013-50d3b223baf6,1,0,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,f6a29b80-e4c3-4c4f-8e2c-d4dda851d813,1,0,2d8d5d74-2bc0-4282-af66-e4a37694c147,2d8d5d74-2bc0-4282-af66-e4a37694c147,1,0,cfd31341-287b-4684-9ac0-b28b4e066f15,cfd31341-287b-4684-9ac0-b28b4e066f15,1,0,81de1b0b-7f2d-4098-ae99-061c6a90dc29,81de1b0b-7f2d-4098-ae99-061c6a90dc29,1,0,77c8a065-a8aa-4f39-93b6-c88f4c38ec66,77c8a065-a8aa-4f39-93b6-c88f4c38ec66,1,0,366fa6da-d3bf-4bb0-9a55-a307f9edee6a,366fa6da-d3bf-4bb0-9a55-a307f9edee6a,1,0,dd0610c8-cd87-4fe2-8a1f-70157132785b,dd0610c8-cd87-4fe2-8a1f-70157132785b,1,0,f829e2a9-5bdb-4171-8b32-8d10d5968813,f829e2a9-5bdb-4171-8b32-8d10d5968813,1,0,647ba8f8-57f7-4c19-af59-525517c1e392,647ba8f8-57f7-4c19-af59-525517c1e392,1,0,39062cb3-4ae8-4c0d-889b-038a55179946,39062cb3-4ae8-4c0d-889b-038a55179946,1,0,c62d4212-36ca-4afb-bac9-269b6f64ca51,c62d4212-36ca-4afb-bac9-269b6f64ca51,1,0,5cec5e16-46ad-4f8c-b869-f5b1cc487884,5cec5e16-46ad-4f8c-b869-f5b1cc487884,1,0,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,ca0363bb-81c2-4fce-b2f0-e8f42d118a74,1,0,7aacdf81-49fd-47a3-a36a-c483f1b05872,7aacdf81-49fd-47a3-a36a-c483f1b05872,1,0,857015e2-afb2-403d-bfb7-7acb5080797b,857015e2-afb2-403d-bfb7-7acb5080797b,1,0,100ec1d0-3719-4feb-8a66-02f2c89fcd36,100ec1d0-3719-4feb-8a66-02f2c89fcd36,1,0,5657286b-114b-41de-ab7d-45d0f0d95e2d,5657286b-114b-41de-ab7d-45d0f0d95e2d,1,0,42a0271e-6783-44db-95c1-09805ae01f58,42a0271e-6783-44db-95c1-09805ae01f58,1,0,8628783e-4fad-4dff-8220-9e0ddc8580f8,8628783e-4fad-4dff-8220-9e0ddc8580f8,1,0,356fc245-3034-42d1-84d0-632c6dc7a3d5,356fc245-3034-42d1-84d0-632c6dc7a3d5,1,0,07462664-6b58-4f5a-9b3f-2e5c376f17df,07462664-6b58-4f5a-9b3f-2e5c376f17df,1,0,6f23e946-f700-424b-b9bf-3a9c8846908d,6f23e946-f700-424b-b9bf-3a9c8846908d,1,0,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,f3ef5989-a848-4a7f-8ac5-0eca882a6aa1,1,0,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,4f5087ab-cc60-4d1e-ba83-a319536bf8ba,1,0,2aafb1a1-4321-47e9-9783-03ab616a2873,2aafb1a1-4321-47e9-9783-03ab616a2873,1,0,71109997-6da0-4eaf-bbf2-f94fa24f37cc,71109997-6da0-4eaf-bbf2-f94fa24f37cc,1,0,a3deeef2-f8a2-462f-a57f-87d89e4ec12a,a3deeef2-f8a2-462f-a57f-87d89e4ec12a,1,0,d601281c-379d-4a9d-843e-478fd6567415,d601281c-379d-4a9d-843e-478fd6567415,1,0,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,fd9b3f7d-d25d-4ecb-8b87-218d5ccf1f7b,1,0,427e6f15-334e-42be-9554-895d8f7ebfc6,427e6f15-334e-42be-9554-895d8f7ebfc6,1,0,02abb5e3-9d4e-4c45-af19-71796966ed19,02abb5e3-9d4e-4c45-af19-71796966ed19,1,0,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,e85a4314-7b63-4294-9bd0-ff77e3ae7c1e,1,0,36bc8523-41a5-48ff-9bd0-758d078c4408,36bc8523-41a5-48ff-9bd0-758d078c4408,1,0,94ca1b45-3cf0-4857-8299-999c93f4fb56,94ca1b45-3cf0-4857-8299-999c93f4fb56,1,0,ee8419c6-79ca-4546-9a66-bacaa08d2a73,ee8419c6-79ca-4546-9a66-bacaa08d2a73,1,0,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,e36ddb60-2f21-4c5f-b96c-947bcf2af42a,1,0,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,d4a0ca3b-3985-4ba2-9e96-1c5baed28b46,1,0,ada11ea2-94d5-4172-a383-a51774599568,ada11ea2-94d5-4172-a383-a51774599568,1,0,50515bbc-43ee-4b00-bfc5-105b7981bd8f,50515bbc-43ee-4b00-bfc5-105b7981bd8f,1,0,1ea080b0-0a11-4152-b8bb-4918bc142a23,1ea080b0-0a11-4152-b8bb-4918bc142a23,1,0,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,a21cd1c1-4649-4dc2-9dbd-a913f2d6ca75,1,0,6930e471-7935-4d68-a980-2acde93ba801,6930e471-7935-4d68-a980-2acde93ba801,1,0,2c425fa5-b10b-4a6f-926a-5cb4c1f2d491,2c425fa5-b10b-4a6f-926a-5cb4c1f2d491,1,0,5135cc48-c749-4acb-a225-d110f386f482,5135cc48-c749-4acb-a225-d110f386f482,1,0,15e6f31b-556a-4f47-9f40-2f69ac7fcb43,15e6f31b-556a-4f47-9f40-2f69ac7fcb43,1,0,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,53c4c3b2-9257-4d02-8df8-6b55fe9abdae,1,0,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,d2dba2ae-e987-4c9d-a289-3dc19afa87cd,1,0,2e9fa546-96fb-4ecb-b933-7921e131e89b,2e9fa546-96fb-4ecb-b933-7921e131e89b,1,0,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,4645b1ad-eb8f-484c-b29c-2093d9ef9dba,1,0,637a132b-1a88-44ba-b45f-ed4ed1ac1001,637a132b-1a88-44ba-b45f-ed4ed1ac1001,1,0,c3efa853-cd29-4618-929f-e3bec33dfd65,c3efa853-cd29-4618-929f-e3bec33dfd65,1,0,62185c28-3d24-487a-9441-b309dcf11e31,62185c28-3d24-487a-9441-b309dcf11e31,1,0,9f264aeb-664d-4724-8248-11873d63ef3b,9f264aeb-664d-4724-8248-11873d63ef3b,1,0,b926d058-53a9-4eea-b4f9-98e77f798dd9,b926d058-53a9-4eea-b4f9-98e77f798dd9,1,0,495e2c77-4868-4191-ac18-f94e55a5982e,495e2c77-4868-4191-ac18-f94e55a5982e,1,0,20191a65-322c-457d-85f5-ed1258b6fe8e,20191a65-322c-457d-85f5-ed1258b6fe8e,1,0,d71ca3bc-e41a-44d9-afe4-c68f1211b3a1,d71ca3bc-e41a-44d9-afe4-c68f1211b3a1,1,0,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,23b46ecd-14dc-4cc5-8ff0-c676a8337aee,1,0,769c60aa-44f4-4c98-a461-d3f5c2b67f61,769c60aa-44f4-4c98-a461-d3f5c2b67f61,1,0,f9809c99-0eaa-4249-967c-a4bef4763277,f9809c99-0eaa-4249-967c-a4bef4763277,1,0,37fa88a0-f2c1-455f-a28d-74165e8b933d,37fa88a0-f2c1-455f-a28d-74165e8b933d,1,0,e4476f09-909b-49f7-8e01-72eea8ceaca6,e4476f09-909b-49f7-8e01-72eea8ceaca6,1,0,2861412c-46f0-454e-b81d-fe081afb5c7a,2861412c-46f0-454e-b81d-fe081afb5c7a,1,0,2b4ece05-b694-42e9-8239-55722fd84294,2b4ece05-b694-42e9-8239-55722fd84294,1,0,6564ce89-134f-4726-8693-fd93aad46180,6564ce89-134f-4726-8693-fd93aad46180,1,0,0d743731-da5d-4c99-b19f-e93c69b77e14,0d743731-da5d-4c99-b19f-e93c69b77e14,1,0,d6f15367-23e2-4766-bc7c-8acd0063aa0c,d6f15367-23e2-4766-bc7c-8acd0063aa0c,1,0,966b1bde-5b0c-446d-b38b-dc037e2ff7ad,966b1bde-5b0c-446d-b38b-dc037e2ff7ad,1,0,fa4c5665-4d73-4db2-a055-8c1c8a302f82,fa4c5665-4d73-4db2-a055-8c1c8a302f82,1,0,e3e0caa1-6d3f-45a6-9043-d58a34f35b8f,e3e0caa1-6d3f-45a6-9043-d58a34f35b8f,1,0,9100b286-8ae9-4de3-b116-5ce0fa95b80c,9100b286-8ae9-4de3-b116-5ce0fa95b80c,1,0,3d315df6-e000-4cbd-810d-0b26c0d1bc54,3d315df6-e000-4cbd-810d-0b26c0d1bc54,1,0,fa429302-ccaf-4c89-8a11-3a1d30817c00,fa429302-ccaf-4c89-8a11-3a1d30817c00,1,0,9b4c49ce-93da-439a-8d67-f3774e92800a,9b4c49ce-93da-439a-8d67-f3774e92800a,1,0,5f8fa827-7017-4b45-b458-3571b8b611f5,5f8fa827-7017-4b45-b458-3571b8b611f5,1,0,79749167-2912-4e06-9deb-7915a1b4390d,79749167-2912-4e06-9deb-7915a1b4390d,1,0,1c93fcd3-53a1-403f-a30b-454fbc941d55,1c93fcd3-53a1-403f-a30b-454fbc941d55,1,0,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,0fc54be4-2e19-45cf-b62f-7cbc70a70d5f,1,0,adec3963-b22f-4463-a3f4-c9ec27d187a8,adec3963-b22f-4463-a3f4-c9ec27d187a8,1,0,d8dae0c8-8e11-44bf-bf60-d316220f3e82,d8dae0c8-8e11-44bf-bf60-d316220f3e82,1,0,12afec4d-1728-4aa8-86e5-23cd2f1572b3,12afec4d-1728-4aa8-86e5-23cd2f1572b3,1,0,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,16bc197b-5a2f-43f4-8ba0-ffabd9289f5c,1,0,ee0c3960-d1bf-411f-a51f-e6e27dabea87,ee0c3960-d1bf-411f-a51f-e6e27dabea87,1,0,d7fb9441-1aef-4257-af3f-7f16340ac85e,d7fb9441-1aef-4257-af3f-7f16340ac85e,1,0,d07c094c-2795-4e0c-b030-bdb82be7ba6d,d07c094c-2795-4e0c-b030-bdb82be7ba6d,1,0,62637860-2013-4f9d-9aed-7cbb0dce8983,62637860-2013-4f9d-9aed-7cbb0dce8983,1,0,331217f6-7ec2-425d-93bd-f2979c5f2e05,331217f6-7ec2-425d-93bd-f2979c5f2e05,1,0,7d5b2b73-27e6-4a61-9558-eb2410eb9f2f,7d5b2b73-27e6-4a61-9558-eb2410eb9f2f,1,0,d754ed75-2a32-4b86-a153-7b50c39f9836,d754ed75-2a32-4b86-a153-7b50c39f9836,1,0,b81f3ee1-66f7-4626-a35b-ef85388c678e,b81f3ee1-66f7-4626-a35b-ef85388c678e,1,0,2ad04793-c162-4915-a260-ca4da535cdac,2ad04793-c162-4915-a260-ca4da535cdac,1,0,78942e92-a31c-4824-a614-a6e07ae26171,78942e92-a31c-4824-a614-a6e07ae26171,1,0,6568d853-dfe5-4064-aa73-c1f546e951b4,6568d853-dfe5-4064-aa73-c1f546e951b4,1,0,7cee27a7-9827-47f8-96f3-d4f1f3dcabe9,7cee27a7-9827-47f8-96f3-d4f1f3dcabe9,1,0,9bfba5cd-551a-4685-99dd-ebfd9f7fd7d1,9bfba5cd-551a-4685-99dd-ebfd9f7fd7d1,1,0,bbe718b2-6b4c-4d78-a408-5369d356a1e6,bbe718b2-6b4c-4d78-a408-5369d356a1e6,1,0,4ecd85c4-5be7-4e6b-8c53-7dd32bd4d707,4ecd85c4-5be7-4e6b-8c53-7dd32bd4d707,1,0,eb7623df-b4e3-4272-9f92-42a9214f9f17,eb7623df-b4e3-4272-9f92-42a9214f9f17,1,0,a5f5bc90-e670-4ee7-95fe-067fe1b129f7,a5f5bc90-e670-4ee7-95fe-067fe1b129f7,1,0,f790f620-2247-4a04-b0ad-8aa591655948,f790f620-2247-4a04-b0ad-8aa591655948,1,0,6d9d9087-91ad-4368-9087-0af8f83fdc9e,6d9d9087-91ad-4368-9087-0af8f83fdc9e,1,0,61fdb27e-b449-40a7-8ecd-7e3e8ae3aa23,61fdb27e-b449-40a7-8ecd-7e3e8ae3aa23,1,0,c7e4e97f-fb85-4e95-bfdf-7706e867d89b,c7e4e97f-fb85-4e95-bfdf-7706e867d89b,1,0,b08fd921-c3d6-44eb-9401-fec5acab5d22,b08fd921-c3d6-44eb-9401-fec5acab5d22,1,0,f4f185af-5507-427c-b82b-515ea71f3fc1,f4f185af-5507-427c-b82b-515ea71f3fc1,1,0,1611855a-abf4-4269-aed3-3f78dce7bea5,1611855a-abf4-4269-aed3-3f78dce7bea5,1,0,c5bd277c-b258-43af-9c80-3e328b1581f5,c5bd277c-b258-43af-9c80-3e328b1581f5,1,0,96dac7e8-5113-4217-ac0a-fffea4acc410,96dac7e8-5113-4217-ac0a-fffea4acc410,1,0,d6fa2b86-1c3b-4c14-8a66-b6dbd40bca19,d6fa2b86-1c3b-4c14-8a66-b6dbd40bca19,1,0,f9cefef4-2182-42ca-93ef-b6a51d6555cc,f9cefef4-2182-42ca-93ef-b6a51d6555cc,1,0,71e1c7de-7367-424c-ae07-6ec04b408b83,71e1c7de-7367-424c-ae07-6ec04b408b83,1,0,b3956392-199c-4934-80d1-8cdab453d879,b3956392-199c-4934-80d1-8cdab453d879,1,0,5e26aeb7-617c-4983-b40d-5a61c77aa6a4,5e26aeb7-617c-4983-b40d-5a61c77aa6a4,1,0,d1bd7448-aa5f-43fc-9735-224f36960c3e,d1bd7448-aa5f-43fc-9735-224f36960c3e,1,0,94dbfc4c-d530-4fbd-b7cf-a58a56289b97,94dbfc4c-d530-4fbd-b7cf-a58a56289b97,1,0,6fa25c57-411d-4f9c-9c3e-c7ea1b1f7195,6fa25c57-411d-4f9c-9c3e-c7ea1b1f7195,1,0,1bfa15cf-222e-4e5b-beb7-7a50f8131799,1bfa15cf-222e-4e5b-beb7-7a50f8131799,1,0,8227471b-8ffb-4ba7-b4da-b21570582876,8227471b-8ffb-4ba7-b4da-b21570582876,1,0,ea7ab9fa-5119-4773-b17d-fc74c7479d3d,ea7ab9fa-5119-4773-b17d-fc74c7479d3d,1,0,3e0fe508-87fa-47af-a47f-c0630a186900,3e0fe508-87fa-47af-a47f-c0630a186900,1,0,09740271-b8a8-4949-a116-b64449d80036,09740271-b8a8-4949-a116-b64449d80036,1,0,c8fedc0b-33d6-46a5-b4fc-a3cd728f5fd7,c8fedc0b-33d6-46a5-b4fc-a3cd728f5fd7,1,0,25864028-1a53-4a8d-b6e4-189fa62c62f5,25864028-1a53-4a8d-b6e4-189fa62c62f5,1,0,e923beae-0bd8-4119-a802-fd6bfb729f10,e923beae-0bd8-4119-a802-fd6bfb729f10,1,0,ecb7dd1b-46d6-46b5-a51f-699f068ad6a0,ecb7dd1b-46d6-46b5-a51f-699f068ad6a0,1,0,67c1269a-79e6-44d9-9254-671c50fb3974,67c1269a-79e6-44d9-9254-671c50fb3974,1,0,5d455d2a-910d-48c7-bc74-ba5ad7855110,5d455d2a-910d-48c7-bc74-ba5ad7855110,1,0,7cf3feea-75e2-42cc-9c89-4a9182034910,7cf3feea-75e2-42cc-9c89-4a9182034910,1,0,930a0156-feb3-4e14-96a5-cd183a4891f4,930a0156-feb3-4e14-96a5-cd183a4891f4,1,0,cd5c52d4-f832-4a3b-b4c7-b4f3e0c98222,cd5c52d4-f832-4a3b-b4c7-b4f3e0c98222,1,0,e268a337-f576-4ec2-8a22-0500b79b2441,e268a337-f576-4ec2-8a22-0500b79b2441,1,0,eb33a8fa-75a6-4926-a025-05bc0abe4374,eb33a8fa-75a6-4926-a025-05bc0abe4374,1,0,c352da94-ea64-44b1-b2df-2c4ed9e2efc5,c352da94-ea64-44b1-b2df-2c4ed9e2efc5,1,0,6babd40a-8b8f-454b-b4a4-7cf2854f49a2,6babd40a-8b8f-454b-b4a4-7cf2854f49a2,1,0,bf480259-6e72-4ad1-ac41-0b0d41a75387,bf480259-6e72-4ad1-ac41-0b0d41a75387,1,0,a41f060a-f0f6-4940-960b-5056082b2c45,a41f060a-f0f6-4940-960b-5056082b2c45,1,0,5d45a926-513f-4bbc-a002-54a2db94b297,5d45a926-513f-4bbc-a002-54a2db94b297,1,0,73f5ce9e-d5a7-45c0-965a-8af1d776a98a,73f5ce9e-d5a7-45c0-965a-8af1d776a98a,1,0,073e14d4-5d43-428b-a9a7-985d173e94c7,073e14d4-5d43-428b-a9a7-985d173e94c7,1,0,61dc318a-c17d-402e-bf64-a0c0a63a1c93,61dc318a-c17d-402e-bf64-a0c0a63a1c93,1,0,c4b0c101-8cd9-441c-b94c-9dfa1ad58d45,c4b0c101-8cd9-441c-b94c-9dfa1ad58d45,1,0,2394775b-8910-4667-9c74-e1606e0b13bc,2394775b-8910-4667-9c74-e1606e0b13bc,1,0,43c88ffd-a036-4563-890b-bdc60180e841,43c88ffd-a036-4563-890b-bdc60180e841,1,0,af6e5e8e-6482-4820-a810-9e275ae039bf,af6e5e8e-6482-4820-a810-9e275ae039bf,1,0,fe3ccb8b-fee7-4825-a7bc-4b0fd432d382,fe3ccb8b-fee7-4825-a7bc-4b0fd432d382,1,0,7690620b-21d9-463a-8c22-60844927b4a0,7690620b-21d9-463a-8c22-60844927b4a0,1,0,e7f96a15-9f62-4a7f-85f3-06ba5d30b130,e7f96a15-9f62-4a7f-85f3-06ba5d30b130,1,0,b1db3255-38da-4684-b44e-4e2e9ee1dc35,b1db3255-38da-4684-b44e-4e2e9ee1dc35,1,0,4761f89b-7894-4dca-83b0-3be2d0828781,4761f89b-7894-4dca-83b0-3be2d0828781,1,0,573ff1f2-0ef5-4962-a0f6-eb84d430fe03,573ff1f2-0ef5-4962-a0f6-eb84d430fe03,1,0,7236d52f-9068-45ad-8b92-a7319e737e08,7236d52f-9068-45ad-8b92-a7319e737e08,1,0,3b0b708f-1b6c-4eb2-a2ad-86c088d9f1bf,3b0b708f-1b6c-4eb2-a2ad-86c088d9f1bf,1,0,9db23e96-d13a-4847-941a-462f64d0619d,9db23e96-d13a-4847-941a-462f64d0619d,1,0,7575fd54-c91b-4220-a2ef-2cf533f60426,7575fd54-c91b-4220-a2ef-2cf533f60426,1,0,1b751f19-bb0c-40c2-a5d1-068544c36c6b,1b751f19-bb0c-40c2-a5d1-068544c36c6b,1,0,26e2c83b-8873-4ad3-9c50-e94421473a43,26e2c83b-8873-4ad3-9c50-e94421473a43,1,0,f0b2ec05-8e01-4ccf-b927-671329a9013b,f0b2ec05-8e01-4ccf-b927-671329a9013b,1,0,ab442b11-2482-4f80-ac82-01966e0657ec,ab442b11-2482-4f80-ac82-01966e0657ec,1,0,14fe4d39-81a1-470e-9724-6642ce34ad89,14fe4d39-81a1-470e-9724-6642ce34ad89,1,0,457578ab-dfe2-4419-8d8a-64283b341f42,457578ab-dfe2-4419-8d8a-64283b341f42,1,0,67ef6671-f537-46bf-88e6-f5bcf34a17a4,67ef6671-f537-46bf-88e6-f5bcf34a17a4,1,0,de778ca7-feaf-4531-80ae-11a534c56928,de778ca7-feaf-4531-80ae-11a534c56928,1,0,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,0dfbe7a9-9c2e-4cbd-ac53-3b547fd73e91,1,0,0a76a84d-e883-477e-8b87-7bf984cdc1cf,0a76a84d-e883-477e-8b87-7bf984cdc1cf,1,0,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,2b6c4184-6d7d-48e5-bd4e-ad31e63398d6,1,0,86df8648-e195-4661-99ee-6052788eb276,86df8648-e195-4661-99ee-6052788eb276,1,0,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,a22cf6e9-1157-4be5-8d30-aa9bbf2b5e6e,1,0,35133725-9647-42dc-a76a-2e62b2918ac4,35133725-9647-42dc-a76a-2e62b2918ac4,1,0,c7b883dc-6c26-4eb5-bc19-7919ad57da27,c7b883dc-6c26-4eb5-bc19-7919ad57da27,1,0,7fc37008-c378-4a70-a9a9-07543c7248a6,7fc37008-c378-4a70-a9a9-07543c7248a6,1,0,6410853e-a17e-44db-b8cc-bfefd7c4d239,6410853e-a17e-44db-b8cc-bfefd7c4d239,1,0,df042e4e-01a6-4480-a9c5-c0d7a454bb41,df042e4e-01a6-4480-a9c5-c0d7a454bb41,1,0,5a4abb96-8a18-4249-9fbb-7270fe2ba25b,5a4abb96-8a18-4249-9fbb-7270fe2ba25b,1,0,6852c584-d989-418d-8d18-255492891ef0,6852c584-d989-418d-8d18-255492891ef0,1,0,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,6a4972f1-012c-438b-b1d3-81e7f6da3ddd,1,0,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,ff7cfd75-e0ba-49a3-92e1-33ea26df46e2,1,0,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,bc37fc81-6a86-4e72-b75a-abb75bddc4b3,1,0,ff830967-faa9-415f-aa6e-8d27779f91f8,ff830967-faa9-415f-aa6e-8d27779f91f8,1,0,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,34dd0dd6-880c-4a90-9b9c-0503c8dc4ef3,1,0,88618d0f-97af-4055-a490-561d4b8065a7,88618d0f-97af-4055-a490-561d4b8065a7,1,0,faffa228-4f4f-43f6-99b9-ed8c93af85c0,faffa228-4f4f-43f6-99b9-ed8c93af85c0,1,0,7b816ca0-ba60-4637-8348-23b26ad23e3f,7b816ca0-ba60-4637-8348-23b26ad23e3f,1,0,814a6db4-a43c-44e6-ac44-11983642c5ad,814a6db4-a43c-44e6-ac44-11983642c5ad,1,0,0bd74786-e018-4a66-b994-cdb439c57657,0bd74786-e018-4a66-b994-cdb439c57657,1,0,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,f50fcf2b-90bb-4d73-9fda-f4575e7682fa,1,0,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,a01b8078-a6cd-4184-9317-2f1e0bcefb3a,1,0,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,54a279b1-9e6a-49b0-8fda-e2807cf3a2a3,1,0,09502176-c53d-4525-b8ed-32d0a2e21a5d,09502176-c53d-4525-b8ed-32d0a2e21a5d,1,0,75ad984e-d41f-4591-b207-e8a4b05757a7,75ad984e-d41f-4591-b207-e8a4b05757a7,1,0,3f020f90-7aeb-4b21-ad71-4572ac796d4c,3f020f90-7aeb-4b21-ad71-4572ac796d4c,1,0,759e2ba0-2941-4cc1-8409-50b8a3620058,759e2ba0-2941-4cc1-8409-50b8a3620058,1,0,491cf25d-091e-4e09-b145-92d7073326cf,491cf25d-091e-4e09-b145-92d7073326cf,1,0,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,9b9d4d10-a4f2-4b0d-a63a-15d55f30fb26,1,0,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,579f18ce-a7ce-4eb8-a4e3-a134a9a27bc1,1,0,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,e7d05eca-2fdd-4cbb-8e2c-537525326ffe,1,0,900bc96e-fbcc-473e-970c-96f561420f8e,900bc96e-fbcc-473e-970c-96f561420f8e,1,0,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,c3bb7b85-1e90-45c4-9bc1-39bbd253d498,1,0,21d5a0b0-9a2b-4989-a50a-781645513179,21d5a0b0-9a2b-4989-a50a-781645513179,1,0,3255033a-e922-412e-a825-a3e8bd284703,3255033a-e922-412e-a825-a3e8bd284703,1,0,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1aa65c35-e8a0-4c8a-90a3-48b62314cb19,1,0,f250f992-ad5a-4dab-ad38-240604adb0c4,f250f992-ad5a-4dab-ad38-240604adb0c4,1,0,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,c4a7efca-f27d-4fdd-86ab-cc22a2a96fb2,1,0,e63671f6-c96d-4ea4-8300-af7dbd0d016f,e63671f6-c96d-4ea4-8300-af7dbd0d016f,1,0,2c511469-0df6-470f-a808-decb275e8b1a,2c511469-0df6-470f-a808-decb275e8b1a,1,0,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1bbb289c-a78a-47d0-b082-c2225ae1dc83,1,0,99b40f9f-f8f1-4779-8afc-59d30612f3d6,99b40f9f-f8f1-4779-8afc-59d30612f3d6,1,0,6131e875-3254-4281-9343-9118564c5451,6131e875-3254-4281-9343-9118564c5451,1,0,69622ff8-8a23-42fc-b63d-5097e3f636ac,69622ff8-8a23-42fc-b63d-5097e3f636ac,1,0,b88450cc-0dd4-4881-b3d9-a9e4e07e08f5,b88450cc-0dd4-4881-b3d9-a9e4e07e08f5,1,0,ef326bd8-1570-455e-ae8c-063b5578ad15,ef326bd8-1570-455e-ae8c-063b5578ad15,1,0,efd4e0a3-2f98-40ef-8089-c853cd588fa6,efd4e0a3-2f98-40ef-8089-c853cd588fa6,1,0,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,3713c76d-6ff7-4d45-9f15-d061bdf7dee2,1,0,cb6d4979-2d70-4ceb-af08-deb2b19daf14,cb6d4979-2d70-4ceb-af08-deb2b19daf14,1,0,bf30b754-84fb-4104-b52b-a4f7df6fba12,bf30b754-84fb-4104-b52b-a4f7df6fba12,1,0,7bbd0835-b3e9-40cb-a424-670828b60bbb,7bbd0835-b3e9-40cb-a424-670828b60bbb,1,0,3e2138ea-48f9-4a60-8f22-53933bea49db,3e2138ea-48f9-4a60-8f22-53933bea49db,1,0,16bda2eb-eab8-4230-b89f-517fb943e009,16bda2eb-eab8-4230-b89f-517fb943e009,1,0,00964512-297f-4b8b-8def-8e4fc0eba991,00964512-297f-4b8b-8def-8e4fc0eba991,1,0,4185fea3-baba-4ba5-8019-9023b3011d4d,4185fea3-baba-4ba5-8019-9023b3011d4d,1,0,ea790035-92d6-445e-9fa3-08e565634d2b,ea790035-92d6-445e-9fa3-08e565634d2b,1,0,cce8900a-51eb-487d-b380-227d1b9d3943,cce8900a-51eb-487d-b380-227d1b9d3943,1,0,c043c36c-90c6-483b-bc20-7c2d85109b90,c043c36c-90c6-483b-bc20-7c2d85109b90,1,0,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,a1e619a6-3bb2-468d-a225-c88ccc3b71f5,1,0,91d2d40a-c271-412c-b344-1fc98b94ba21,91d2d40a-c271-412c-b344-1fc98b94ba21,1,0,7ce47046-aee8-4809-bac9-a98930a844e1,7ce47046-aee8-4809-bac9-a98930a844e1,1,0,f480b8b9-ecec-4207-a0aa-12c5be4c2250,f480b8b9-ecec-4207-a0aa-12c5be4c2250,1,0,32717d25-6644-4903-8950-03e4c9b1a8fe,32717d25-6644-4903-8950-03e4c9b1a8fe,1,0,3644d8f3-db88-4fce-a851-39c115acfe03,3644d8f3-db88-4fce-a851-39c115acfe03,1,0,4653da74-34b2-47b9-ad88-efd761d6f1e9,4653da74-34b2-47b9-ad88-efd761d6f1e9,1,0,abf8a23d-45c3-4feb-8df2-279b709d7722,abf8a23d-45c3-4feb-8df2-279b709d7722,1,0,b0cd056f-c601-4d07-89c4-f7137b88bab6,b0cd056f-c601-4d07-89c4-f7137b88bab6,1,0,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,5cc3ebef-8f09-443c-b131-e5c3a9f7d260,1,0,b9a21b8f-8a95-4c86-9ab2-ee6c90164e18,b9a21b8f-8a95-4c86-9ab2-ee6c90164e18,1,0,96ed4d39-3bdc-480f-af86-218f22000514,96ed4d39-3bdc-480f-af86-218f22000514,1,0,c9f72e74-22ac-4dc0-8462-0aa7819a9342,c9f72e74-22ac-4dc0-8462-0aa7819a9342,1,0,ca650484-293f-403a-b916-5ec7c3a8969e,ca650484-293f-403a-b916-5ec7c3a8969e,1,0,b71e706d-623e-4039-9bf0-24f151d861d8,b71e706d-623e-4039-9bf0-24f151d861d8,1,0,528f4823-33d8-49bd-a8fe-756a08a107c2,528f4823-33d8-49bd-a8fe-756a08a107c2,1,0,4869095b-b76e-45ca-b77d-0e74f59673f0,4869095b-b76e-45ca-b77d-0e74f59673f0,1,0,bcca2442-448b-4760-923b-cc9621ecb441,bcca2442-448b-4760-923b-cc9621ecb441,1,0,ba7657df-429a-4737-b787-19ef09fdebb2,ba7657df-429a-4737-b787-19ef09fdebb2,1,0,867d72be-f406-45a5-a511-b90459683f11,867d72be-f406-45a5-a511-b90459683f11,1,0,88b22e62-c144-401f-9635-3fb4d914772e,88b22e62-c144-401f-9635-3fb4d914772e,1,0,efeb2914-6604-403a-a11e-5cb995ab2bc9,efeb2914-6604-403a-a11e-5cb995ab2bc9,1,0,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,4c2dd77f-adc7-4f11-8e8f-1f8e41e6c84b,1,0,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,8f2b8a8e-4cd3-45e3-89ae-1cc4bd0ff30a,1,0,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,24b3aecc-f92f-475b-862e-83dd6d6aa2b9,1,0,8525d945-08aa-4928-8dca-4e172ea94328,8525d945-08aa-4928-8dca-4e172ea94328,1,0,de506523-241a-4845-9259-37066afbf16a,de506523-241a-4845-9259-37066afbf16a,1,0,0510206f-eef0-4a5e-aeb7-d53c26d34adb,0510206f-eef0-4a5e-aeb7-d53c26d34adb,1,0,e616e007-43e7-4740-a083-b85f5435718a,e616e007-43e7-4740-a083-b85f5435718a,1,0,82be906c-bb06-40ea-b908-54574b0b4848,82be906c-bb06-40ea-b908-54574b0b4848,1,0,727da5b1-e054-4832-8e44-f5d5e56f52e5,727da5b1-e054-4832-8e44-f5d5e56f52e5,1,0,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,6135ffd5-1510-4aa8-8bf5-d7c0ca624414,1,0,1f8cb390-2cbb-4a88-96ee-b31695b73d78,1f8cb390-2cbb-4a88-96ee-b31695b73d78,1,0,6feaad7c-9680-4341-b215-14581e2e2b37,6feaad7c-9680-4341-b215-14581e2e2b37,1,0,d5656a92-adfb-4733-830d-2b1565798b1f,d5656a92-adfb-4733-830d-2b1565798b1f,1,0,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,2ee0d56b-cd7c-42db-8fb6-c1567fe1967d,1,0,b0f6ea83-2849-4151-930d-692866919db3,b0f6ea83-2849-4151-930d-692866919db3,1,0,0abf70e0-0d81-4d85-a288-a2134da5fbf1,0abf70e0-0d81-4d85-a288-a2134da5fbf1,1,0,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,392fc734-4251-4d28-bfd1-d6f2f33ec0e5,1,0,f66cb2da-3b3c-481f-823a-506f8290f619,f66cb2da-3b3c-481f-823a-506f8290f619,1,0,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,b80ddaf8-c5c3-4bde-98ed-74a1a0446f38,1,0,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,e4f16dbf-609d-4a34-a0bf-b20e5925c1ba,1,0,0bdcf045-5132-4a68-839c-a30515dc569e,0bdcf045-5132-4a68-839c-a30515dc569e,1,0,683861f9-9a5f-47db-8b03-959f839d5a3a,683861f9-9a5f-47db-8b03-959f839d5a3a,1,0,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,56fda0b0-c0ae-4ea2-8f77-df22a9ca3e87,1,0,125be5bf-f410-451d-aa96-22fabc6a4d8a,125be5bf-f410-451d-aa96-22fabc6a4d8a,1,0,e5017fd0-ecea-48ae-99c8-7fc8c4f1d72b,e5017fd0-ecea-48ae-99c8-7fc8c4f1d72b,1,0,0a46166a-4562-4a50-b139-39dbe8a1fc84,0a46166a-4562-4a50-b139-39dbe8a1fc84,1,0,9aa6d1d1-75ad-40e4-b01f-274826c0c9da,9aa6d1d1-75ad-40e4-b01f-274826c0c9da,1,0,6ce64d65-f710-4d3f-a85f-26ce6915451e,6ce64d65-f710-4d3f-a85f-26ce6915451e,1,0,33eb9806-e34f-42a0-9825-3ff2de92c503,33eb9806-e34f-42a0-9825-3ff2de92c503,1,0,4905fcc5-9bd7-4b1b-b51d-882b11ee3d74,4905fcc5-9bd7-4b1b-b51d-882b11ee3d74,1,0,bcb58235-7cd7-4c15-a1eb-194ee38259e6,bcb58235-7cd7-4c15-a1eb-194ee38259e6,1,0,e19aefe7-634d-4218-8d40-75802d1691e0,e19aefe7-634d-4218-8d40-75802d1691e0,1,0,b885dbb2-6e18-46a6-929c-3d6d392343ad,b885dbb2-6e18-46a6-929c-3d6d392343ad,1,0,d31e24cf-7493-45dc-ba81-3a00618e53bc,d31e24cf-7493-45dc-ba81-3a00618e53bc,1,0,03f32b08-1b71-47cb-ba1d-965037df4d64,03f32b08-1b71-47cb-ba1d-965037df4d64,1,0,4ec26e3d-6c38-4c90-9f91-c2235f8b4154,4ec26e3d-6c38-4c90-9f91-c2235f8b4154,1,0,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9,1,0,f942d212-9be0-4d80-84b6-5b63070e33e4,f942d212-9be0-4d80-84b6-5b63070e33e4,1,0,bea6bbc1-c1e4-4306-a0ca-efd47b9a8b23,bea6bbc1-c1e4-4306-a0ca-efd47b9a8b23,1,0,19a0b881-302e-4d0e-ace0-29a9d8379a48,19a0b881-302e-4d0e-ace0-29a9d8379a48,1,0,64c91eaa-084f-4801-8dbf-4e075c689c2b,64c91eaa-084f-4801-8dbf-4e075c689c2b,1,0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,c01bb4de-06f7-4c3d-8ea3-d861f89948c0,1,0,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,3c8c4f7b-d267-422c-becd-b6e8a9d6fe49,1,0,3aa12805-823a-439b-b039-fb9940aee312,3aa12805-823a-439b-b039-fb9940aee312,1,0,87d53573-f266-4b74-94af-041ae4b6518f,87d53573-f266-4b74-94af-041ae4b6518f,1,0,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,65a8545a-e73c-4c6a-8f87-7734d7ff5c03,1,0,801cf1f7-2c65-4126-a3e9-b66abfdde67a,801cf1f7-2c65-4126-a3e9-b66abfdde67a,1,0,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,b991eefb-0d97-48a1-89c8-3d83b3b8d97a,1,0,29c2bc01-8838-4459-8ac2-79862aa1dbc9,29c2bc01-8838-4459-8ac2-79862aa1dbc9,1,0,ad556c33-6811-48b4-ae90-57700a4d3fd6,ad556c33-6811-48b4-ae90-57700a4d3fd6,1,0,6e0833f4-3b57-4a5f-810f-9e2a492335df,6e0833f4-3b57-4a5f-810f-9e2a492335df,1,0,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,78ccdf33-9c2b-4931-afa3-5d652f2bcbc5,1,0,977bc9d8-9843-4343-85af-11a3d91f9966,977bc9d8-9843-4343-85af-11a3d91f9966,1,0,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,02ff9ef0-1057-4bc2-b745-1c2ae41835e3,1,0,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,5a86abe7-db6c-43a3-9bcd-9b3647519c6b,1,0,a6582448-734d-4a4c-a32c-c4755ca1bc93,a6582448-734d-4a4c-a32c-c4755ca1bc93,1,0,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,6a0b9a91-51a0-4ef4-b630-4f1b5a1da2b7,1,0,53327cc4-22b0-40f9-bae7-db483f85901c,53327cc4-22b0-40f9-bae7-db483f85901c,1,0,098d904d-95c9-459e-86d0-357ba9a40191,098d904d-95c9-459e-86d0-357ba9a40191,1,0,e9ab9d00-6e42-439b-8efc-fcacf727016d,e9ab9d00-6e42-439b-8efc-fcacf727016d,1,0,2d58033f-e15d-4a91-8165-dd311025c7c4,2d58033f-e15d-4a91-8165-dd311025c7c4,1,0,49cb3a36-90b3-4154-b571-265fc5cee21e,49cb3a36-90b3-4154-b571-265fc5cee21e,1,0,10472d2c-18ca-49b0-bd9d-c750db8498c5,10472d2c-18ca-49b0-bd9d-c750db8498c5,1,0,8efe5daf-272d-4255-b5c4-66dca7463b50,8efe5daf-272d-4255-b5c4-66dca7463b50,1,0,65af25a6-f699-4c40-b13e-3b7dff3f16fe,65af25a6-f699-4c40-b13e-3b7dff3f16fe,1,0,c4d2486d-289c-4812-b223-5ccfcd7f29e3,c4d2486d-289c-4812-b223-5ccfcd7f29e3,1,0,f9229c3e-4a47-49a4-8b14-908218012ff7,f9229c3e-4a47-49a4-8b14-908218012ff7,1,0,7c8b9203-2808-4a78-a2b1-b7a71b4f13f6,7c8b9203-2808-4a78-a2b1-b7a71b4f13f6,1,0,b9743978-ba6d-4892-bb32-f24d4a47dd50,b9743978-ba6d-4892-bb32-f24d4a47dd50,1,0,c43accb9-f33d-437f-b305-0595f8fe3032,c43accb9-f33d-437f-b305-0595f8fe3032,1,0,084a398b-836e-424c-af93-22aa39d5a15a,084a398b-836e-424c-af93-22aa39d5a15a,1,0,7da57c89-af2c-445a-96f7-39250f70306f,7da57c89-af2c-445a-96f7-39250f70306f,1,0,b5b94d94-25f7-4cfa-b1e9-6009fb848763,b5b94d94-25f7-4cfa-b1e9-6009fb848763,1,0,a2accf54-5966-42e8-ab2e-e56e415963ee,a2accf54-5966-42e8-ab2e-e56e415963ee,1,0,d8eb5329-5900-4b5d-b45e-458513dddfef,d8eb5329-5900-4b5d-b45e-458513dddfef,1,0,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,6d521e58-24a3-4f19-b4b0-dff84f7ca86b,1,0,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,8c413fa5-9e24-4b81-aa55-0e78c5e3e20f,1,0,a4322f22-7de0-4018-8e06-9f1aa7cf0c07,a4322f22-7de0-4018-8e06-9f1aa7cf0c07,1,0,eaaed107-69d4-4963-be83-74519e331715,eaaed107-69d4-4963-be83-74519e331715,1,0,38cddf96-8703-4396-8c73-47fb22828a48,38cddf96-8703-4396-8c73-47fb22828a48,1,0,2c2cb793-0177-4983-91ca-9c292c5b10f1,2c2cb793-0177-4983-91ca-9c292c5b10f1,1,0,2a2e7f51-a4e5-48ec-b969-b1fca18ba9b5,2a2e7f51-a4e5-48ec-b969-b1fca18ba9b5,1,0,221fa473-3327-44e6-a033-6fdfd2be713c,221fa473-3327-44e6-a033-6fdfd2be713c,1,0,7a5973f0-7e29-44af-8e7b-70af71f704a4,7a5973f0-7e29-44af-8e7b-70af71f704a4,1,0,2b2bf0f7-0946-4492-bba0-27f007a70e64,2b2bf0f7-0946-4492-bba0-27f007a70e64,1,0,22c9a703-5ed3-4156-8fa6-476b1c1452f1,22c9a703-5ed3-4156-8fa6-476b1c1452f1,1,0,8be10d88-8c37-4444-9c89-6cbbe9913bda,8be10d88-8c37-4444-9c89-6cbbe9913bda,1,0,27089e8e-2c75-431c-b808-5d4dcba3cdca,27089e8e-2c75-431c-b808-5d4dcba3cdca,1,0,9ab3980e-a480-4f90-a8cc-bde99d5ace35,9ab3980e-a480-4f90-a8cc-bde99d5ace35,1,0,ec928563-6e35-4b84-b477-90d2481cec1c,ec928563-6e35-4b84-b477-90d2481cec1c,1,0,5d3e9678-20fe-4128-867a-3f7addaa7831,5d3e9678-20fe-4128-867a-3f7addaa7831,1,0,bb878f73-8a0f-459a-9076-ce57fe7957dc,bb878f73-8a0f-459a-9076-ce57fe7957dc,1,0,cb1d4a41-20a9-4d76-8798-d47d8858bff1,cb1d4a41-20a9-4d76-8798-d47d8858bff1,1,0,a2b4110b-4d9c-40fd-ab46-bfa08d2eb993,a2b4110b-4d9c-40fd-ab46-bfa08d2eb993,1,0,4f262b7f-927e-45f2-ad90-9d5e1b3155d1,4f262b7f-927e-45f2-ad90-9d5e1b3155d1,1,0,9f4b8e36-83ff-4694-8540-b5f47b18395f,9f4b8e36-83ff-4694-8540-b5f47b18395f,1,0,b4c026eb-4271-4366-b529-1cdfe2874563,b4c026eb-4271-4366-b529-1cdfe2874563,1,0,314b0da2-24d3-48cc-8532-d36c45eb3bf8,314b0da2-24d3-48cc-8532-d36c45eb3bf8,1,0,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,2e3ac3fb-9f0e-463f-95c2-9f661ce2e015,1,0,4077e700-ec20-4afa-8155-bf7e516a70cb,4077e700-ec20-4afa-8155-bf7e516a70cb,1,0,5198c6db-2100-4902-82c8-85c8ea555e78,5198c6db-2100-4902-82c8-85c8ea555e78,1,0,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,b99f2a63-54e8-490b-a0a4-1941fbc38b3f,1,0,f0b1e9f4-2e07-44e6-88d2-c11457135781,f0b1e9f4-2e07-44e6-88d2-c11457135781,1,0,e010c0f9-f770-4fdc-8607-50838c0262ef,e010c0f9-f770-4fdc-8607-50838c0262ef,1,0,f935399f-3554-4c08-b0a6-eba13074e1b7,f935399f-3554-4c08-b0a6-eba13074e1b7,1,0,10008125-3aeb-4912-8ad6-d92d283ea09a,10008125-3aeb-4912-8ad6-d92d283ea09a,1,0,765f9584-fefa-4695-b130-dd54c3b0d79d,765f9584-fefa-4695-b130-dd54c3b0d79d,1,0,dd050ca0-8335-4654-ab5c-7babcb4824ef,dd050ca0-8335-4654-ab5c-7babcb4824ef,1,0,706cbf55-626d-4cab-b589-a2464368f6c1,706cbf55-626d-4cab-b589-a2464368f6c1,1,0,d22a0a50-220d-459e-a23a-39730a1e67c4,d22a0a50-220d-459e-a23a-39730a1e67c4,1,0,2c1c9284-ba8b-4282-a89c-429f02ea41f6,2c1c9284-ba8b-4282-a89c-429f02ea41f6,1,0,8c241467-76f7-4161-a8a1-5da4a6576b75,8c241467-76f7-4161-a8a1-5da4a6576b75,1,0,1d3b9eff-5d0b-437b-932f-0ec466e092b2,1d3b9eff-5d0b-437b-932f-0ec466e092b2,1,0,fd7e5257-024c-46de-9ff3-edd302fadba5,fd7e5257-024c-46de-9ff3-edd302fadba5,1,0,a4168057-d99f-4b55-b762-214f95ae3a30,a4168057-d99f-4b55-b762-214f95ae3a30,1,0,ab4fe549-1c07-42d9-b412-8b89ed115591,ab4fe549-1c07-42d9-b412-8b89ed115591,1,0,0335804e-efe5-4fb9-9ae9-2ddca73d77f3,0335804e-efe5-4fb9-9ae9-2ddca73d77f3,1,0,b49c589d-b45d-4aff-8899-72cfe433e9a6,b49c589d-b45d-4aff-8899-72cfe433e9a6,1,0,f71a8d47-6a6c-4b7e-90b3-5b7a3be3ccd3,f71a8d47-6a6c-4b7e-90b3-5b7a3be3ccd3,1,0,273ad3f7-c645-434d-93b0-e832134f3043,273ad3f7-c645-434d-93b0-e832134f3043,1,0,d320803b-1de4-4e66-b455-0afe39be5c41,d320803b-1de4-4e66-b455-0afe39be5c41,1,0,67e85b9a-a138-49ea-b474-04475f0f8c90,67e85b9a-a138-49ea-b474-04475f0f8c90,1,0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,1,0,788a98e0-194f-466c-b4fa-bafd527aae26,788a98e0-194f-466c-b4fa-bafd527aae26,1,0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,1,0,364218e0-87ba-4008-a3e3-e2351a5e04b8,364218e0-87ba-4008-a3e3-e2351a5e04b8,1,0,143f6db9-a4dc-4039-90d0-6161394a3e2f,143f6db9-a4dc-4039-90d0-6161394a3e2f,1,0,97e853dc-065f-4c6d-84cb-3d3aff367b22,97e853dc-065f-4c6d-84cb-3d3aff367b22,1,0,2f1fdf47-2627-496f-9e1f-77019abb2104,2f1fdf47-2627-496f-9e1f-77019abb2104,1,0,c996532a-8795-4136-8a40-9bb4b263277c,c996532a-8795-4136-8a40-9bb4b263277c,1,0,64c77788-fc49-4979-8163-949a891bd8b7,64c77788-fc49-4979-8163-949a891bd8b7,1,0,c39750ca-e33f-40c2-b830-119423d9a2ae,c39750ca-e33f-40c2-b830-119423d9a2ae,1,0,9372ff6b-27b6-48f3-a2a2-762e7c485766,9372ff6b-27b6-48f3-a2a2-762e7c485766,1,0,f454595a-4a3d-451b-8e8b-b17aa8314591,f454595a-4a3d-451b-8e8b-b17aa8314591,1,0,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,d3b7f89e-eb04-404e-bcc1-1d3557fb8d1a,1,0,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,442f9d7b-ae8f-4074-8ece-d5aa1c66e35c,1,0,bc708da8-7fc6-4da1-8129-9ef6a86667af,bc708da8-7fc6-4da1-8129-9ef6a86667af,1,0,061842fe-4077-4d6e-aefe-de79409da730,061842fe-4077-4d6e-aefe-de79409da730,1,0,86249619-8981-4fc4-85fc-ce30e4b9d542,86249619-8981-4fc4-85fc-ce30e4b9d542,1,0,da6e4bff-9835-4b92-b62b-291a5d6c86fe,da6e4bff-9835-4b92-b62b-291a5d6c86fe,1,0,98aa8a80-29fa-4a54-8d0e-90d413d63da1,98aa8a80-29fa-4a54-8d0e-90d413d63da1,1,0,60af0c11-852e-4b45-afb7-251d75a87150,60af0c11-852e-4b45-afb7-251d75a87150,1,0,37e81463-a558-4b03-b0e4-82ac0e99c80c,37e81463-a558-4b03-b0e4-82ac0e99c80c,1,0,fd9177e4-1277-4f77-be3e-07e169fad918,fd9177e4-1277-4f77-be3e-07e169fad918,1,0,2177e3f0-0689-43ec-b79a-52d95f59a75a,2177e3f0-0689-43ec-b79a-52d95f59a75a,1,0,b7cfe3ee-1d3c-4c04-993a-014e9040e7ac,b7cfe3ee-1d3c-4c04-993a-014e9040e7ac,1,0,8be35c43-32e6-418d-b3d6-e53ef56babb7,8be35c43-32e6-418d-b3d6-e53ef56babb7,1,0,3e4f5fd0-af15-41ae-896e-458ce9fb7e4d,3e4f5fd0-af15-41ae-896e-458ce9fb7e4d,1,0,935d01e1-232b-480e-a6bf-c21c617c6348,935d01e1-232b-480e-a6bf-c21c617c6348,1,0,9bc7cc99-1237-4f9c-8a4e-f3ab459186ef,9bc7cc99-1237-4f9c-8a4e-f3ab459186ef,1,0,05c702a1-2c74-45d5-b2ee-fdd795b0945a,05c702a1-2c74-45d5-b2ee-fdd795b0945a,1,0,5ede72fd-2510-4c06-b625-be740bb04e29,5ede72fd-2510-4c06-b625-be740bb04e29,1,0,17f37228-b0cd-420d-bc82-b18dc04c03c9,17f37228-b0cd-420d-bc82-b18dc04c03c9,1,0,3f9b66ea-7db2-434d-8e3b-00df8eb11dbd,3f9b66ea-7db2-434d-8e3b-00df8eb11dbd,1,0,d43fb14b-2051-4ba5-8379-af6996e603b3,d43fb14b-2051-4ba5-8379-af6996e603b3,1,0,cfb01fef-b70d-41ac-82b9-d6d2e9644388,cfb01fef-b70d-41ac-82b9-d6d2e9644388,1,0,91dee0d3-14b5-4aa1-9058-8f949e7df923,91dee0d3-14b5-4aa1-9058-8f949e7df923,1,0,3fadaeb7-2c41-42a4-bfa8-c585602b1028,3fadaeb7-2c41-42a4-bfa8-c585602b1028,1,0,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,171a0dfc-032e-4eaf-81a2-e5e0dfde8d56,1,0,083c709b-ed8c-47e4-a190-421e14259e73,083c709b-ed8c-47e4-a190-421e14259e73,1,0,b98dacc7-29e1-426b-a664-0a988f18186c,b98dacc7-29e1-426b-a664-0a988f18186c,1,0,d678856d-6e7c-443f-a6e3-350bbe8af659,d678856d-6e7c-443f-a6e3-350bbe8af659,1,0,d0979762-22ce-41be-b7a4-5e9ac149d94b,d0979762-22ce-41be-b7a4-5e9ac149d94b,1,0,ae23e70c-479e-47ad-9bfa-58560a903410,ae23e70c-479e-47ad-9bfa-58560a903410,1,0,c0d83781-bbda-43f7-bf0e-5defa3d47143,c0d83781-bbda-43f7-bf0e-5defa3d47143,1,0,21fa5fdd-acbc-403b-9acb-bbf95284bd20,21fa5fdd-acbc-403b-9acb-bbf95284bd20,1,0,576a01e3-4d6d-4241-a3c4-7661ba129bcb,576a01e3-4d6d-4241-a3c4-7661ba129bcb,1,0,9f7290dd-19f4-4163-9795-fe562e84f06d,9f7290dd-19f4-4163-9795-fe562e84f06d,1,0,c3b5c81f-b787-4f63-8cba-79def0921477,c3b5c81f-b787-4f63-8cba-79def0921477,1,0,1f0cb3d4-1344-451b-a257-be3cd854acfd,1f0cb3d4-1344-451b-a257-be3cd854acfd,1,0,0131fe59-ce47-48b7-8f7e-1544bf0fa031,0131fe59-ce47-48b7-8f7e-1544bf0fa031,1,0,c8b0a1be-97c6-4a16-b1dd-31901ac61cdc,c8b0a1be-97c6-4a16-b1dd-31901ac61cdc,1,0,372150e2-526e-4424-8c54-e4b16bdd25b5,372150e2-526e-4424-8c54-e4b16bdd25b5,1,0,2f9c347d-ee82-49f2-a5eb-97f55374856f,2f9c347d-ee82-49f2-a5eb-97f55374856f,1,0,752dc569-cf84-42d7-911d-49d455f7214e,752dc569-cf84-42d7-911d-49d455f7214e,1,0,fecab2b9-27e1-44d6-9082-79c3569b7477,fecab2b9-27e1-44d6-9082-79c3569b7477,1,0,07ae092f-8517-47b7-b54c-5dbcb6506929,07ae092f-8517-47b7-b54c-5dbcb6506929,1,0,db4c25bb-d199-43ec-833d-82972de04a41,db4c25bb-d199-43ec-833d-82972de04a41,1,0,43d19685-0794-41f2-9171-bf565133718d,43d19685-0794-41f2-9171-bf565133718d,1,0,b68c15c4-4966-4f13-8912-2d479b65089a,b68c15c4-4966-4f13-8912-2d479b65089a,1,0,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,8f6770c2-654c-4cc7-8ed5-15b5b2e3109a,1,0,a89ee622-6942-411a-8566-f03d139c9e5b,a89ee622-6942-411a-8566-f03d139c9e5b,1,0,f87e3935-dae1-4192-b6a7-05e3c700c590,f87e3935-dae1-4192-b6a7-05e3c700c590,1,0,ee635706-6ee2-4956-8d58-a235f64687f6,ee635706-6ee2-4956-8d58-a235f64687f6,1,0,a5a40ca7-d665-420b-a516-1355019d6901,a5a40ca7-d665-420b-a516-1355019d6901,1,0,198ea989-5001-47ac-86b8-aa2585a5f7d7,198ea989-5001-47ac-86b8-aa2585a5f7d7,1,0,4abe448b-a225-4ac2-8cc9-c3c6c0e9b1ac,4abe448b-a225-4ac2-8cc9-c3c6c0e9b1ac,1,0,fb84c5f7-11da-4b17-979e-41e27a74e789,fb84c5f7-11da-4b17-979e-41e27a74e789,1,0,adf9304c-ccf8-492e-95b1-0754764586a2,adf9304c-ccf8-492e-95b1-0754764586a2,1,0,fd175112-ec8f-4088-9b21-d8135056f0c5,fd175112-ec8f-4088-9b21-d8135056f0c5,1,0,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,ddd82a66-1eda-409f-b6c0-e22c4bd2c1b7,1,0,6e0fa31a-5081-4fc7-b5ec-563c6e4ad001,6e0fa31a-5081-4fc7-b5ec-563c6e4ad001,1,0,52606e9e-1f82-414c-897f-f3ca923fa480,52606e9e-1f82-414c-897f-f3ca923fa480,1,0,eefa26d9-bb15-4911-8772-99e49a20c57d,eefa26d9-bb15-4911-8772-99e49a20c57d,1,0,5068e74a-10e7-4035-97b0-14c91566defe,5068e74a-10e7-4035-97b0-14c91566defe,1,0,df76a1b7-312a-4e77-bac1-79befadb4495,df76a1b7-312a-4e77-bac1-79befadb4495,1,0,ab39fad8-1039-491e-982a-c49637770ec0,ab39fad8-1039-491e-982a-c49637770ec0,1,0,7d93a6ba-3ca7-45ab-a540-743c79587535,7d93a6ba-3ca7-45ab-a540-743c79587535,1,0,76b58810-0527-4dfc-8858-bac68e7e65f3,76b58810-0527-4dfc-8858-bac68e7e65f3,1,0,aba97fd9-f05e-45cd-8404-ed702070e17a,aba97fd9-f05e-45cd-8404-ed702070e17a,1,0,f5c415cd-429b-469f-9332-c43ab5d1c8d6,f5c415cd-429b-469f-9332-c43ab5d1c8d6,1,0,6de34ed8-5d6c-4bb6-af94-328e692b862e,6de34ed8-5d6c-4bb6-af94-328e692b862e,1,0,e705bde3-45c3-4ffd-a767-0320c6cc8b91,e705bde3-45c3-4ffd-a767-0320c6cc8b91,1,0,504280a1-a451-4547-ae71-e217f8fdf8f6,504280a1-a451-4547-ae71-e217f8fdf8f6,1,0,b071a9fe-0e9f-4ded-8dab-b1388fd12897,b071a9fe-0e9f-4ded-8dab-b1388fd12897,1,0,a2accd5e-e6f5-4d5f-8243-51aadfa88b00,a2accd5e-e6f5-4d5f-8243-51aadfa88b00,1,0,458e9c6b-b828-404b-be5a-c6c0aeea34c9,458e9c6b-b828-404b-be5a-c6c0aeea34c9,1,0,7262eb4d-2d2d-454c-beaa-974645813af7,7262eb4d-2d2d-454c-beaa-974645813af7,1,0,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,45fa9f17-eeb1-43e2-b78c-f81a341f1bff,1,0,e402b02e-fb2b-4ccc-aa30-ef1a9cb7e17b,e402b02e-fb2b-4ccc-aa30-ef1a9cb7e17b,1,0,10d1e6bf-5ec8-44d8-ae31-0d22bccb5f60,10d1e6bf-5ec8-44d8-ae31-0d22bccb5f60,1,0,7fddef11-7b49-4911-8c66-8d2f94d3cbbd,7fddef11-7b49-4911-8c66-8d2f94d3cbbd,1,0,be438a36-2036-4f27-a9a3-37fb5ba5d6ab,be438a36-2036-4f27-a9a3-37fb5ba5d6ab,1,0,fabf9c9e-d35c-42e0-a949-6c54cb24990f,fabf9c9e-d35c-42e0-a949-6c54cb24990f,1,0,e47df890-3925-4410-ae48-63cb8e3d94f8,e47df890-3925-4410-ae48-63cb8e3d94f8,1,0,49221b2f-aae2-4bee-9a1a-18263fc74244,49221b2f-aae2-4bee-9a1a-18263fc74244,1,0,da0cd264-da2f-4044-af28-c91d2efe1d5c,da0cd264-da2f-4044-af28-c91d2efe1d5c,1,0,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,f1b1db38-2d9f-4409-a6d6-fd7192b1f102,1,0,fad26b16-8638-496b-bd12-381fc6f5b71f,fad26b16-8638-496b-bd12-381fc6f5b71f,1,0,ed3cfb74-a37a-4314-a2d7-4ce717a2edd9,ed3cfb74-a37a-4314-a2d7-4ce717a2edd9,1,0,324a56c9-02d9-4177-af84-a817b8c41169,324a56c9-02d9-4177-af84-a817b8c41169,1,0,64ed8c1a-6446-4f0d-a2ef-c599e84c4909,64ed8c1a-6446-4f0d-a2ef-c599e84c4909,1,0,52fc85fb-309b-4739-bbd3-c3966657e973,52fc85fb-309b-4739-bbd3-c3966657e973,1,0,87081ab5-bdd5-4daa-88ef-8a2cba8c7d53,87081ab5-bdd5-4daa-88ef-8a2cba8c7d53,1,0,be3cfba8-e6f6-4202-ab0f-96c00fbf7462,be3cfba8-e6f6-4202-ab0f-96c00fbf7462,1,0,64ef1b5c-ec04-45eb-9998-bc573f4038d7,64ef1b5c-ec04-45eb-9998-bc573f4038d7,1,0,4fde5159-8f21-4151-8dbd-b2cd376d9392,4fde5159-8f21-4151-8dbd-b2cd376d9392,1,0,3ea799a6-6642-4388-b0a3-c2962e71ff51,3ea799a6-6642-4388-b0a3-c2962e71ff51,1,0,1e44abfe-c173-4802-b535-96849d384983,1e44abfe-c173-4802-b535-96849d384983,1,0,2751a509-037b-49aa-9ca8-e87057d6d82c,2751a509-037b-49aa-9ca8-e87057d6d82c,1,0,35f62549-eb6a-4284-a6e3-406b0d9df0cf,35f62549-eb6a-4284-a6e3-406b0d9df0cf,1,0,cee94c04-7a46-47a5-bdd5-6f0dbd884e97,cee94c04-7a46-47a5-bdd5-6f0dbd884e97,1,0,fd66995b-ee76-41d3-983f-33d84bdcbbd4,fd66995b-ee76-41d3-983f-33d84bdcbbd4,1,0,73e97918-b34e-4ad2-8591-4c219eb92f2c,73e97918-b34e-4ad2-8591-4c219eb92f2c,1,0,445cf7eb-35d0-48f8-9579-c2ec574ef324,445cf7eb-35d0-48f8-9579-c2ec574ef324,1,0,1025657e-afd2-4c7b-96d5-ccbedaca4619,1025657e-afd2-4c7b-96d5-ccbedaca4619,1,0,64839c78-b2fa-4d80-bee0-b3d3a7e5db35,64839c78-b2fa-4d80-bee0-b3d3a7e5db35,1,0,e754ad5c-cf3c-4198-af81-128475924cb0,e754ad5c-cf3c-4198-af81-128475924cb0,1,0,ed65d504-b210-4014-85ec-275ad633ef04,ed65d504-b210-4014-85ec-275ad633ef04,1,0,dc31edb1-273e-4b1a-8e69-32393479ff36,dc31edb1-273e-4b1a-8e69-32393479ff36,1,0,b369842d-c20e-4b68-9d0e-701707584b2f,b369842d-c20e-4b68-9d0e-701707584b2f,1,0,de23a2ca-4607-4488-be7b-23ea28875d02,de23a2ca-4607-4488-be7b-23ea28875d02,1,0,c0049c93-a264-44f6-8740-36a055a5b472,c0049c93-a264-44f6-8740-36a055a5b472,1,0,3c3bad38-ebd2-456d-86d9-b024c3afaedd,3c3bad38-ebd2-456d-86d9-b024c3afaedd,1,0,6b07201f-e728-4beb-a607-b05c68a645ca,6b07201f-e728-4beb-a607-b05c68a645ca,1,0,5c31cd2e-9247-4357-8c4b-3995470f00fc,5c31cd2e-9247-4357-8c4b-3995470f00fc,1,0,3ab0649b-239f-4466-b897-73c0ab628927,3ab0649b-239f-4466-b897-73c0ab628927,1,0,4c697110-8941-4d6d-ba03-f2b9e96ff82e,4c697110-8941-4d6d-ba03-f2b9e96ff82e,1,0,7ea4112d-fc41-4f1e-bd22-f04adeac1d8f,7ea4112d-fc41-4f1e-bd22-f04adeac1d8f,1,0,b172631b-da0d-42f4-ae6b-ae122a46cced,b172631b-da0d-42f4-ae6b-ae122a46cced,1,0,1a25e744-37ae-46ca-a328-ff8eced21a82,1a25e744-37ae-46ca-a328-ff8eced21a82,1,0,dddabe54-a93b-4e4b-acbb-cc522e4d7c28,dddabe54-a93b-4e4b-acbb-cc522e4d7c28,1,0,46169f0b-8514-40a1-9d27-8489cab72503,46169f0b-8514-40a1-9d27-8489cab72503,1,0,d9cf39cc-8652-4c4d-bc5b-b4e455c0083f,d9cf39cc-8652-4c4d-bc5b-b4e455c0083f,1,0,4b0d7d39-5f79-4a21-b0bb-d3142a3bc8a9,4b0d7d39-5f79-4a21-b0bb-d3142a3bc8a9,1,0,c90243af-582c-4f5a-88e7-e0cbc0555fcb,c90243af-582c-4f5a-88e7-e0cbc0555fcb,1,0,14bf4066-15cb-4165-b854-45443ee27da1,14bf4066-15cb-4165-b854-45443ee27da1,1,0,a0861dd3-ced5-485e-8719-0ad0bc3adc0d,a0861dd3-ced5-485e-8719-0ad0bc3adc0d,1,0,5a94a307-3f54-4753-8ef5-ce9f88417827,5a94a307-3f54-4753-8ef5-ce9f88417827,1,0,0f09b6b8-72ac-4461-96c4-683be403e2ff,0f09b6b8-72ac-4461-96c4-683be403e2ff,1,0,b73d0f07-9c6e-41b1-9acc-8e83dacd7528,b73d0f07-9c6e-41b1-9acc-8e83dacd7528,1,0,19d1d74a-de5f-475a-896c-a32b7d28f918,19d1d74a-de5f-475a-896c-a32b7d28f918,1,0,316553f3-bed7-4517-86ed-6520c1e536d9,316553f3-bed7-4517-86ed-6520c1e536d9,1,0,1255dbc8-29fc-4cd1-a2ed-a97c626dea5c,1255dbc8-29fc-4cd1-a2ed-a97c626dea5c,1,0,ee538127-bfa3-487a-9595-e69968595113,ee538127-bfa3-487a-9595-e69968595113,1,0,6b297ab7-7ff9-45a7-9075-ca3a1878cb2b,6b297ab7-7ff9-45a7-9075-ca3a1878cb2b,1,0,4427cab9-4eea-4415-98ef-6021a447c60c,4427cab9-4eea-4415-98ef-6021a447c60c,1,0,fe46b4da-d865-468f-badd-83644bf88faa,fe46b4da-d865-468f-badd-83644bf88faa,1,0,2851c9d4-4366-4488-926d-a7fcd3b1548c,2851c9d4-4366-4488-926d-a7fcd3b1548c,1,0,31116aa2-cfbc-48e8-886b-45c1c17508fd,31116aa2-cfbc-48e8-886b-45c1c17508fd,1,0,6aa819d3-c56d-4561-a2e4-a1188ab1295a,6aa819d3-c56d-4561-a2e4-a1188ab1295a,1,0,2ddf344d-7065-40d5-9306-23870d8fc04a,2ddf344d-7065-40d5-9306-23870d8fc04a,1,0,c630ab2d-0a20-4136-88b6-220b2cad6a71,c630ab2d-0a20-4136-88b6-220b2cad6a71,1,0,00cd1dea-bc54-475c-956d-dc5221104932,00cd1dea-bc54-475c-956d-dc5221104932,1,0,c343495b-5947-4fe7-a94b-d1f2b2455b4f,c343495b-5947-4fe7-a94b-d1f2b2455b4f,1,0,fbce7316-bb9a-40c1-af3c-352f4b559ab6,fbce7316-bb9a-40c1-af3c-352f4b559ab6,1,0,a3721457-b33b-4742-b6e1-531af10969d1,a3721457-b33b-4742-b6e1-531af10969d1,1,0,9619a603-e578-4f30-bcc6-adfddfa915c0,9619a603-e578-4f30-bcc6-adfddfa915c0,1,0,3807f865-dd2c-44f7-9238-3db191f0a186,3807f865-dd2c-44f7-9238-3db191f0a186,1,0,4a55351b-77e2-4c7c-a7d7-aac213d3c2a7,4a55351b-77e2-4c7c-a7d7-aac213d3c2a7,1,0,f79ac41b-6ab2-4afc-aa98-b70b72d78bb4,f79ac41b-6ab2-4afc-aa98-b70b72d78bb4,1,0,2c5a56d3-386e-45df-adc2-4471f52f9bdc,2c5a56d3-386e-45df-adc2-4471f52f9bdc,1,0,8f184df5-bfe8-4df3-bc7c-18218cef7650,8f184df5-bfe8-4df3-bc7c-18218cef7650,1,0,387e273a-889f-454b-8b43-feaa12025fde,387e273a-889f-454b-8b43-feaa12025fde,1,0,22474ca3-565b-4b67-a5b4-b0b959306d10,22474ca3-565b-4b67-a5b4-b0b959306d10,1,0,1c38ad75-b294-4c05-89ce-69ce4d9a291f,1c38ad75-b294-4c05-89ce-69ce4d9a291f,1,0,078d1e8f-6d27-4761-9532-b1e7a60e4c13,078d1e8f-6d27-4761-9532-b1e7a60e4c13,1,0,4262193c-58ad-47c6-8088-735d8cd037ea,4262193c-58ad-47c6-8088-735d8cd037ea,1,0,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,36a2b5f9-ded5-4fc3-a7bd-e12b37cd6bab,1,0,de6d1aad-39eb-46ce-87aa-d29812bb37bf,de6d1aad-39eb-46ce-87aa-d29812bb37bf,1,0,4ad859ec-cc75-4bac-9e89-397798450e48,4ad859ec-cc75-4bac-9e89-397798450e48,1,0,d93ab94c-0f55-4b80-b226-41b44c73b3ea,d93ab94c-0f55-4b80-b226-41b44c73b3ea,1,0,94cbed80-5a35-471f-b354-439a11629210,94cbed80-5a35-471f-b354-439a11629210,1,0,1162cc0a-42e5-47cb-9507-68459579f110,1162cc0a-42e5-47cb-9507-68459579f110,1,0,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,17f9f188-d3fd-4fe1-a00c-b0dde64a0f9e,1,0,bb49dc80-4934-4f44-8f27-9a363dca8dc4,bb49dc80-4934-4f44-8f27-9a363dca8dc4,1,0,7338e497-03a7-4ed4-85a2-ca802c065a9f,7338e497-03a7-4ed4-85a2-ca802c065a9f,1,0,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,49fe879c-8972-4c9a-bb08-e3e5b2e5ff84,1,0,5249687b-9ff4-46f5-be15-dbb5d5047fd1,5249687b-9ff4-46f5-be15-dbb5d5047fd1,1,0,d33df51c-3dcd-496c-90f2-7ee05582bdf7,d33df51c-3dcd-496c-90f2-7ee05582bdf7,1,0,24b39ebd-2424-4939-8e3e-d09eb674d409,24b39ebd-2424-4939-8e3e-d09eb674d409,1,0,08c751bb-9e57-4536-901e-bb316c8e96d7,08c751bb-9e57-4536-901e-bb316c8e96d7,1,0,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,de0afa6f-07c6-441c-a4ca-e7ed709a8da5,1,0,034cdcef-08e5-4751-9885-400aa69e0b94,034cdcef-08e5-4751-9885-400aa69e0b94,1,0,3e44d463-f253-4a64-8d68-631fcb66935c,3e44d463-f253-4a64-8d68-631fcb66935c,1,0,653d6483-029b-4453-a7d0-3a3c6d9d0b05,653d6483-029b-4453-a7d0-3a3c6d9d0b05,1,0,ac507771-50bd-4f8b-b72f-5954562c9131,ac507771-50bd-4f8b-b72f-5954562c9131,1,0,efefebea-2032-4006-b9ca-50a23b7da1ef,efefebea-2032-4006-b9ca-50a23b7da1ef,1,0,4c794d37-3352-4acb-a939-5e90fb682db8,4c794d37-3352-4acb-a939-5e90fb682db8,1,0,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,5f3fea83-6ca8-481b-9e2b-789a6fd01e2e,1,0,008f5068-da9c-4dac-9c0a-a50366d27cbb,008f5068-da9c-4dac-9c0a-a50366d27cbb,1,0,950b3ee3-070f-4946-8b9b-0aa2058de986,950b3ee3-070f-4946-8b9b-0aa2058de986,1,0,bd04a870-0943-4bdb-9e30-50a69daa8a13,bd04a870-0943-4bdb-9e30-50a69daa8a13,1,0,573c2153-7069-4589-8a2a-4517edca877d,573c2153-7069-4589-8a2a-4517edca877d,1,0,0a2f03c1-87d7-4589-9c47-8dd67faa1759,0a2f03c1-87d7-4589-9c47-8dd67faa1759,1,0,d1475ede-879c-4085-9980-2edaaf0eb0e9,d1475ede-879c-4085-9980-2edaaf0eb0e9,1,0,54eac28f-da81-4939-b2f9-924d3c215de5,54eac28f-da81-4939-b2f9-924d3c215de5,1,0,20d34659-1bde-4af0-be2c-da922e4ace6e,20d34659-1bde-4af0-be2c-da922e4ace6e,1,0,dec45aee-a4a8-473c-904e-15d5ff31efc3,dec45aee-a4a8-473c-904e-15d5ff31efc3,1,0,8b9318e5-c6ce-4253-9759-8ddd42468775,8b9318e5-c6ce-4253-9759-8ddd42468775,1,0,e79dd738-4e6c-411a-97a2-d0acbe4918ee,e79dd738-4e6c-411a-97a2-d0acbe4918ee,1,0,571a910a-67c7-4fe9-b06e-78893498a606,571a910a-67c7-4fe9-b06e-78893498a606,1,0,86f98256-87d1-4922-8d70-a5d2cad1c385,86f98256-87d1-4922-8d70-a5d2cad1c385,1,0,05faa67b-195a-4f46-8e47-30c4208cbc64,05faa67b-195a-4f46-8e47-30c4208cbc64,1,0,be75d0b2-c9db-4dab-9e32-dbe26d667508,be75d0b2-c9db-4dab-9e32-dbe26d667508,1,0,299c014f-996a-4a99-a5be-a7cfd5ee45e4,299c014f-996a-4a99-a5be-a7cfd5ee45e4,1,0,2569b69d-006f-478e-83b7-9163048b34bb,2569b69d-006f-478e-83b7-9163048b34bb,1,0,1ee47933-8117-4d47-9245-476c0ed3a373,1ee47933-8117-4d47-9245-476c0ed3a373,1,0,31cac1e9-eb16-489c-9322-30d1e27a80b3,31cac1e9-eb16-489c-9322-30d1e27a80b3,1,0,0d100e33-7941-41c1-962d-7672c874e9c5,0d100e33-7941-41c1-962d-7672c874e9c5,1,0,c5ac53c9-c9b2-4b90-a21e-10f1daa756c5,c5ac53c9-c9b2-4b90-a21e-10f1daa756c5,1,0,6e61d717-de36-4dce-8af9-b6c14ed76acb,6e61d717-de36-4dce-8af9-b6c14ed76acb,1,0,474518fe-9cb5-4a12-9388-bc7a64511617,474518fe-9cb5-4a12-9388-bc7a64511617,1,0,64337614-b1c9-4931-b576-448721fa4602,64337614-b1c9-4931-b576-448721fa4602,1,0,1d73b59c-0594-4ed3-b584-cf1261941e1d,1d73b59c-0594-4ed3-b584-cf1261941e1d,1,0,8ff2547f-d596-4fa1-9e12-079e1cc4c057,8ff2547f-d596-4fa1-9e12-079e1cc4c057,1,0,1ab0c8f8-b908-4618-ae88-af37b8f1224e,1ab0c8f8-b908-4618-ae88-af37b8f1224e,1,0,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,bd3ec5a9-161d-487e-ab1d-e5e15a6e3a7b,1,0,05507f2b-eed8-4da4-8efc-77d9d8e2daca,05507f2b-eed8-4da4-8efc-77d9d8e2daca,1,0,0440ed06-3f42-48a8-9431-fd608920b577,0440ed06-3f42-48a8-9431-fd608920b577,1,0,37be75c9-bf1a-437a-ab05-f9e3aac6f440,37be75c9-bf1a-437a-ab05-f9e3aac6f440,1,0,b85b3a58-95e4-4698-b1ae-037901ecc1b1,b85b3a58-95e4-4698-b1ae-037901ecc1b1,1,0,b77d748a-d180-432d-91c3-774e6ccf7efa,b77d748a-d180-432d-91c3-774e6ccf7efa,1,0,e5b9c1b0-4690-442c-b160-e6c587e42e57,e5b9c1b0-4690-442c-b160-e6c587e42e57,1,0,e3adb576-6b33-475b-976b-7a6783de3184,e3adb576-6b33-475b-976b-7a6783de3184,1,0,c6cef8db-0689-42a6-9f43-c86b7c3cf0e9,c6cef8db-0689-42a6-9f43-c86b7c3cf0e9,1,0,78f5a205-dffb-4009-897a-e8f36372f33c,78f5a205-dffb-4009-897a-e8f36372f33c,1,0,f7597041-f182-42fb-803a-2521c70d627d,f7597041-f182-42fb-803a-2521c70d627d,1,0,ce988b8a-d0c1-400a-9466-aa757501bb58,ce988b8a-d0c1-400a-9466-aa757501bb58,1,0,ab98d665-8da8-406e-9e0e-3e130ab393ef,ab98d665-8da8-406e-9e0e-3e130ab393ef,1,0,9e823bb6-b0c0-439e-81e4-ebd46b79b99c,9e823bb6-b0c0-439e-81e4-ebd46b79b99c,1,0,ea8beea1-7d80-4613-b2f9-79ee612e977a,ea8beea1-7d80-4613-b2f9-79ee612e977a,1,0,afd62a32-fdbb-429a-9a64-89c61a07e018,afd62a32-fdbb-429a-9a64-89c61a07e018,1,0,027cef43-99bd-48d3-a1a3-2102ac003742,027cef43-99bd-48d3-a1a3-2102ac003742,1,0,00197ea9-de76-4e2a-97bc-93e44053e35e,00197ea9-de76-4e2a-97bc-93e44053e35e,1,0,540a47b8-f6d4-4531-ac87-3f7cfbef4c8c,540a47b8-f6d4-4531-ac87-3f7cfbef4c8c,1,0,a51f7c6f-2631-4d23-becc-c0e8b711fddd,a51f7c6f-2631-4d23-becc-c0e8b711fddd,1,0,37806357-d92c-4bea-a5ef-77f138578fda,37806357-d92c-4bea-a5ef-77f138578fda,1,0,91b100e6-fbbe-4bb0-8d51-d12595a2a3e8,91b100e6-fbbe-4bb0-8d51-d12595a2a3e8,1,0,0a880538-f97f-448e-a4a9-82b0194dbe28,0a880538-f97f-448e-a4a9-82b0194dbe28,1,0,24b4dd9e-825f-471b-b15d-ae21a508d183,24b4dd9e-825f-471b-b15d-ae21a508d183,1,0,179868b7-d342-4df0-9386-c114d75faf3a,179868b7-d342-4df0-9386-c114d75faf3a,1,0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,1,0,929e9199-dfd5-497d-ad77-6638d20c7336,929e9199-dfd5-497d-ad77-6638d20c7336,1,0,4d1546ee-30ff-4cf7-afd3-60b565e3cb53,4d1546ee-30ff-4cf7-afd3-60b565e3cb53,1,0,aaf51715-f468-4856-b9ae-fd66bc143633,aaf51715-f468-4856-b9ae-fd66bc143633,1,0,e9650eea-d35a-4abc-977c-fb9b2abba0e5,e9650eea-d35a-4abc-977c-fb9b2abba0e5,1,0,b00626a3-5438-40c4-8ca9-5609e9dfe476,b00626a3-5438-40c4-8ca9-5609e9dfe476,1,0,b537f309-f957-4804-9f0f-03a71aedf694,b537f309-f957-4804-9f0f-03a71aedf694,1,0,4d72bd30-8d60-4f84-9ad8-83489d9cb3fb,4d72bd30-8d60-4f84-9ad8-83489d9cb3fb,1,0,7e4afed8-5c56-4765-bcd0-a40e6121ba22,7e4afed8-5c56-4765-bcd0-a40e6121ba22,1,0,155660a1-8a63-4562-a715-d75a8af7176b,155660a1-8a63-4562-a715-d75a8af7176b,1,0,878fe826-fa99-44ad-9891-5eada9744017,878fe826-fa99-44ad-9891-5eada9744017,1,0,0d61712a-dfaf-46f1-b728-62993dd94fbe,0d61712a-dfaf-46f1-b728-62993dd94fbe,1,0,3a6cf496-09b9-4947-9df5-06d23b474558,3a6cf496-09b9-4947-9df5-06d23b474558,1,0,625b498a-33d1-4162-9525-fb7790cbb6a8,625b498a-33d1-4162-9525-fb7790cbb6a8,1,0,28223f7b-d15a-4f12-b57c-1f6d08a902f9,28223f7b-d15a-4f12-b57c-1f6d08a902f9,1,0,dd9eb5b7-5aed-4e51-9939-9ff14492d240,dd9eb5b7-5aed-4e51-9939-9ff14492d240,1,0,b2a14899-d589-4990-b85e-7bffb427e8af,b2a14899-d589-4990-b85e-7bffb427e8af,1,0,0981d114-05bd-4ee1-a8fd-398fa6620d0b,0981d114-05bd-4ee1-a8fd-398fa6620d0b,1,0,3210ba40-382e-4917-ad0f-9bd88d23dc25,3210ba40-382e-4917-ad0f-9bd88d23dc25,1,0,835e3ead-d01f-410b-937a-902dd5e66aec,835e3ead-d01f-410b-937a-902dd5e66aec,1,0,40141982-d1d6-416f-844e-19143a407ff9,40141982-d1d6-416f-844e-19143a407ff9,1,0,f5c4d4ad-dda6-4dc3-b112-61f776006f3c,f5c4d4ad-dda6-4dc3-b112-61f776006f3c,1,0,466d9fd7-188e-4f3b-a673-35db9075d537,466d9fd7-188e-4f3b-a673-35db9075d537,1,0,1c2e2c7d-c9d2-46a6-81f9-30078ca511c7,1c2e2c7d-c9d2-46a6-81f9-30078ca511c7,1,0,09d3717a-d6f9-42fd-ae9e-df5658fa3981,09d3717a-d6f9-42fd-ae9e-df5658fa3981,1,0,9b26aa5f-1e77-4261-adf6-6f2f24f5af33,9b26aa5f-1e77-4261-adf6-6f2f24f5af33,1,0,b6b5e6c1-3967-4c2f-b8bc-0acc96afe240,b6b5e6c1-3967-4c2f-b8bc-0acc96afe240,1,0,de355360-f87a-4b0d-a37c-d0a091e7e984,de355360-f87a-4b0d-a37c-d0a091e7e984,1,0,8819399f-4803-413c-ad5e-7fa2c8878e5f,8819399f-4803-413c-ad5e-7fa2c8878e5f,1,0,99ff834a-f030-4af3-9b7d-f92a03f7c6f4,99ff834a-f030-4af3-9b7d-f92a03f7c6f4,1,0,afea5f32-22ff-4940-8156-3ec8b9c7bbb9,afea5f32-22ff-4940-8156-3ec8b9c7bbb9,1,0,fa01c28c-44d1-4fa9-b167-73d6cecb7730,fa01c28c-44d1-4fa9-b167-73d6cecb7730,1,0,d82c675e-7d38-417c-9cfc-6af0e86addfd,d82c675e-7d38-417c-9cfc-6af0e86addfd,1,0,319c4428-9463-4aa4-a87a-2749c49f4069,319c4428-9463-4aa4-a87a-2749c49f4069,1,0,497deeb7-0630-4f72-bcdb-ebacf8963d79,497deeb7-0630-4f72-bcdb-ebacf8963d79,1,0,ef471953-7c99-40f9-a31d-f50ed8ba3fc5,ef471953-7c99-40f9-a31d-f50ed8ba3fc5,1,0,98393093-7ba6-4b4d-86be-ee5826cd8cd5,98393093-7ba6-4b4d-86be-ee5826cd8cd5,1,0,87de486d-3f35-4432-a7cd-9d3832db63cf,87de486d-3f35-4432-a7cd-9d3832db63cf,1,0,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,246f17a0-93a7-4e2c-8fa6-f57405f0abeb,1,0,ea6c4830-a34d-4026-a0ca-5cf7e44f089d,ea6c4830-a34d-4026-a0ca-5cf7e44f089d,1,0,bb7ce04a-8143-4c0b-a196-1b57f1640142,bb7ce04a-8143-4c0b-a196-1b57f1640142,1,0,4872f12c-705c-4dd3-802f-d27496a0d634,4872f12c-705c-4dd3-802f-d27496a0d634,1,0,3bacfd93-dfc7-4154-9d3f-b61ddc5c6721,3bacfd93-dfc7-4154-9d3f-b61ddc5c6721,1,0,fc65918a-2ad1-47b1-980d-5afe63579964,fc65918a-2ad1-47b1-980d-5afe63579964,1,0,7ece6efe-16a1-4294-8c28-3fa6427ba9f0,7ece6efe-16a1-4294-8c28-3fa6427ba9f0,1,0,61094d92-b1e6-45b9-9258-38a7bb1d6469,61094d92-b1e6-45b9-9258-38a7bb1d6469,1,0,4791b5d4-3568-4420-8c25-89ecce7c6353,4791b5d4-3568-4420-8c25-89ecce7c6353,1,0,0c0bbfba-c1c4-4bb5-a813-10da4bef7911,0c0bbfba-c1c4-4bb5-a813-10da4bef7911,1,0,f9ada91a-e673-4821-9bce-cb0dd75ca28b,f9ada91a-e673-4821-9bce-cb0dd75ca28b,1,0,9fcf68bb-43e2-4cd1-89ec-8797ad9c0e8b,9fcf68bb-43e2-4cd1-89ec-8797ad9c0e8b,1,0,90ce635a-0277-4056-980d-d1a16d91cb30,90ce635a-0277-4056-980d-d1a16d91cb30,1,0,e61a8360-a0f8-4d86-b91a-2ae9b8552bf0,e61a8360-a0f8-4d86-b91a-2ae9b8552bf0,1,0,1e77e873-632c-482b-8f46-8f8cc3cc8cef,1e77e873-632c-482b-8f46-8f8cc3cc8cef,1,0,00605607-03ab-43fc-ba08-9fc32f582d0a,00605607-03ab-43fc-ba08-9fc32f582d0a,1,0,5ab0a910-74ab-4af0-b5a3-40845a789fde,5ab0a910-74ab-4af0-b5a3-40845a789fde,1,0,bb659006-c11e-4427-8d86-229ba43ef679,bb659006-c11e-4427-8d86-229ba43ef679,1,0,766208a3-2780-427b-a7d3-93abe99d236b,766208a3-2780-427b-a7d3-93abe99d236b,1,0,63ce4c3c-5bad-409c-904f-18f34cf1da78,63ce4c3c-5bad-409c-904f-18f34cf1da78,1,0,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,62bddcee-bef6-42cc-9ba3-e99b8160dcc2,1,0,26ac22f9-0bbb-4671-b446-626e345e2461,26ac22f9-0bbb-4671-b446-626e345e2461,1,0,0d63ee6d-e17f-4a86-b384-adf9793f3331,0d63ee6d-e17f-4a86-b384-adf9793f3331,1,0,f152945b-2a7b-449e-a915-176166af7bac,f152945b-2a7b-449e-a915-176166af7bac,1,0,77f5d86a-7fae-4490-9740-0e31102dab5c,77f5d86a-7fae-4490-9740-0e31102dab5c,1,0,5a54bc1a-d178-412c-bf4a-cf92d7f141aa,5a54bc1a-d178-412c-bf4a-cf92d7f141aa,1,0,24be43ec-d39e-46aa-9c11-2536b835e515,24be43ec-d39e-46aa-9c11-2536b835e515,1,0,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,c9ca80ef-c7b7-4425-b5c0-3d13af82f291,1,0,df9af3ee-6a69-4a03-8ff5-0735e9a38013,df9af3ee-6a69-4a03-8ff5-0735e9a38013,1,0,1b27eb77-d535-43a5-8ae1-fa2fec15d92c,1b27eb77-d535-43a5-8ae1-fa2fec15d92c,1,0,7743fe24-b941-4dad-bc76-05fb6b26b1d7,7743fe24-b941-4dad-bc76-05fb6b26b1d7,1,0,5bf2da0d-f318-4036-9234-8a3a6eca88b2,5bf2da0d-f318-4036-9234-8a3a6eca88b2,1,0,288525fc-d3fa-4c8e-a1d7-d2d1ef4cd0ef,288525fc-d3fa-4c8e-a1d7-d2d1ef4cd0ef,1,0,c3634571-6fe5-45ab-9362-161305eef661,c3634571-6fe5-45ab-9362-161305eef661,1,0,ec11342f-594f-416f-a10f-bd1bfa695c08,ec11342f-594f-416f-a10f-bd1bfa695c08,1,0,31c3ac44-204e-43fd-bca3-fd18fa091c58,31c3ac44-204e-43fd-bca3-fd18fa091c58,1,0,74f03c35-5da0-406e-a938-e8e5d49975ef,74f03c35-5da0-406e-a938-e8e5d49975ef,1,0,c9ab3890-6d16-431f-ab2b-b5058e6202a4,c9ab3890-6d16-431f-ab2b-b5058e6202a4,1,0,5ee9eed7-3c6c-4264-ab9a-6f24f9c80598,5ee9eed7-3c6c-4264-ab9a-6f24f9c80598,1,0,3c33adc7-abea-4e0f-9e5d-d8f10abb63df,3c33adc7-abea-4e0f-9e5d-d8f10abb63df,1,0,4090c6f7-1d25-4b17-9baa-18daa0640b0f,4090c6f7-1d25-4b17-9baa-18daa0640b0f,1,0,26125e58-dfc8-4bbb-a3a4-80616471746e,26125e58-dfc8-4bbb-a3a4-80616471746e,1,0,b1c699cd-efdc-461c-ad37-10bfd4bc9674,b1c699cd-efdc-461c-ad37-10bfd4bc9674,1,0,6add1920-5073-4b1e-b7e0-13bf1e65e4c3,6add1920-5073-4b1e-b7e0-13bf1e65e4c3,1,0,f12c946c-98e4-4da6-8a88-c555e9dc3bdd,f12c946c-98e4-4da6-8a88-c555e9dc3bdd,1,0,ec5718b7-1c4d-4bdc-9426-40a339bb29cf,ec5718b7-1c4d-4bdc-9426-40a339bb29cf,1,0,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,ecd8772d-e33f-426f-a87a-e28bd94d5fdf,1,0,96661303-1286-4f84-93b7-0e6da2bd7893,96661303-1286-4f84-93b7-0e6da2bd7893,1,0,68076431-36e6-46dc-92cb-e0d8e605bf66,68076431-36e6-46dc-92cb-e0d8e605bf66,1,0,239fa55a-6572-4e5c-9918-c2e14063c76d,239fa55a-6572-4e5c-9918-c2e14063c76d,1,0,8211a1b6-c3b1-466b-8d11-22603fb50c7a,8211a1b6-c3b1-466b-8d11-22603fb50c7a,1,0,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,7e7dfcb5-04eb-40f4-8f4c-f29644e81473,1,0,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,daef68a3-c6c3-450d-b8fd-7af2a2f5572e,1,0,a83cb338-5707-42c9-9e88-11f6c68fcc32,a83cb338-5707-42c9-9e88-11f6c68fcc32,1,0,36b15776-5211-4afa-9b6c-c042121218c0,36b15776-5211-4afa-9b6c-c042121218c0,1,0,422a0e10-361f-46ba-b92e-3088d81e12a4,422a0e10-361f-46ba-b92e-3088d81e12a4,1,0,f37b7b25-abd2-4e19-9712-78aafceb4f43,f37b7b25-abd2-4e19-9712-78aafceb4f43,1,0,7cd4c6ea-5795-4bea-a159-1e66650c42fe,7cd4c6ea-5795-4bea-a159-1e66650c42fe,1,0,091fcffa-da7e-4375-bf0b-11cc4950b5ad,091fcffa-da7e-4375-bf0b-11cc4950b5ad,1,0,57e91491-73b6-43f7-b7f8-26efec56ce9e,57e91491-73b6-43f7-b7f8-26efec56ce9e,1,0,da031ebd-4aba-40e6-acb9-245cf73c4423,da031ebd-4aba-40e6-acb9-245cf73c4423,1,0,59d47246-e522-4baa-96b3-d7e93279e3ec,59d47246-e522-4baa-96b3-d7e93279e3ec,1,0,c222b2c0-5e92-4022-b2f7-49967b5a9de3,c222b2c0-5e92-4022-b2f7-49967b5a9de3,1,0,e9bf314a-a4d1-4fb8-a84c-84ac7df6c456,e9bf314a-a4d1-4fb8-a84c-84ac7df6c456,1,0,f93741c9-ab94-464b-b0d4-4af99c9f92d5,f93741c9-ab94-464b-b0d4-4af99c9f92d5,1,0,0fddbd8d-12dd-4af1-9e34-feebf4bc38b1,0fddbd8d-12dd-4af1-9e34-feebf4bc38b1,1,0,2e9548a6-1fd8-4430-8864-91bde0d2a7a1,2e9548a6-1fd8-4430-8864-91bde0d2a7a1,1,0,c59fd3f8-c734-49d3-90ba-e608a22ac981,c59fd3f8-c734-49d3-90ba-e608a22ac981,1,0,b26235ed-374c-44ab-8b3c-01d7c4d82d4c,b26235ed-374c-44ab-8b3c-01d7c4d82d4c,1,0,5056db9f-9ebe-4cca-98f0-5f4817a1cba4,5056db9f-9ebe-4cca-98f0-5f4817a1cba4,1,0,475f76ea-f494-41f1-9b65-f39907e5a427,475f76ea-f494-41f1-9b65-f39907e5a427,1,0,986280d1-41bb-4b15-a5ae-516d6a04c1f4,986280d1-41bb-4b15-a5ae-516d6a04c1f4,1,0,43bfd29a-d254-4c33-8639-200b483578c1,43bfd29a-d254-4c33-8639-200b483578c1,1,0,6a274167-7f80-4613-9890-259ffd8ccfc4,6a274167-7f80-4613-9890-259ffd8ccfc4,1,0,00696255-ea14-4fee-8633-0962f3c441d1,00696255-ea14-4fee-8633-0962f3c441d1,1,0,4e90e1ab-b1ec-4795-ad45-1db151a5492c,4e90e1ab-b1ec-4795-ad45-1db151a5492c,1,0,91791e56-ca80-4d90-b8a8-16145f6a9721,91791e56-ca80-4d90-b8a8-16145f6a9721,1,0,b242c6a2-5ac9-4edb-b5dd-24eda8162151,b242c6a2-5ac9-4edb-b5dd-24eda8162151,1,0,8d080f3c-06ed-48bf-9709-eea73d676741,8d080f3c-06ed-48bf-9709-eea73d676741,1,0,57b31a5d-9fdc-43d2-ae81-67157822c4b6,57b31a5d-9fdc-43d2-ae81-67157822c4b6,1,0,d4e2da66-9a70-459f-a873-cb4ad71d17b2,d4e2da66-9a70-459f-a873-cb4ad71d17b2,1,0,a84a91d2-d326-4bf4-82e6-d573ee35d090,a84a91d2-d326-4bf4-82e6-d573ee35d090,1,0,fef27478-ddfd-4ad9-8161-148761f29698,fef27478-ddfd-4ad9-8161-148761f29698,1,0,39cbda23-db3f-4ddd-8981-8540247406db,39cbda23-db3f-4ddd-8981-8540247406db,1,0,c8a18d99-62ff-45a4-acb5-48e3310c1b53,c8a18d99-62ff-45a4-acb5-48e3310c1b53,1,0,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,a6eb0cb1-80f0-4390-80ff-7af53f8e63c3,1,0,3500c6fa-813a-49dd-a4bf-163500db5b7f,3500c6fa-813a-49dd-a4bf-163500db5b7f,1,0,1d02493a-dd89-4a51-b75e-9c49f9818b95,1d02493a-dd89-4a51-b75e-9c49f9818b95,1,0,2845c5d1-e836-4499-bcae-f3c8fdae75ee,2845c5d1-e836-4499-bcae-f3c8fdae75ee,1,0,fe4e8e4e-9471-4583-b9b3-576007db08ee,fe4e8e4e-9471-4583-b9b3-576007db08ee,1,0,49deaaa8-6d50-4b25-8153-6712d88fb0fb,49deaaa8-6d50-4b25-8153-6712d88fb0fb,1,0,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,1eeb7634-e924-4ad8-92e0-1c54c22b1ba6,1,0,46a06de8-06fd-4b49-835f-4f24b832b3c4,46a06de8-06fd-4b49-835f-4f24b832b3c4,1,0,3845a567-4375-4c3a-af61-5b82674060ab,3845a567-4375-4c3a-af61-5b82674060ab,1,0,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,ab210fb8-4fc4-47f8-b8ef-3a00eeb0ab8b,1,0,a835a3a7-989b-4247-b836-d23bba2f391a,a835a3a7-989b-4247-b836-d23bba2f391a,1,0,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,58f5c354-8f1d-4064-ba35-527ea3d2f4a9,1,0,9b149c20-9328-4e2d-a34b-95c883ae4dcc,9b149c20-9328-4e2d-a34b-95c883ae4dcc,1,0,dd6fdc0d-49bb-4fa1-aa17-bd9dc38a0992,dd6fdc0d-49bb-4fa1-aa17-bd9dc38a0992,1,0,f8dbf226-ea56-4b15-baf1-a41fceba2a32,f8dbf226-ea56-4b15-baf1-a41fceba2a32,1,0,1422999b-9977-4bed-9990-b46bd0ec7471,1422999b-9977-4bed-9990-b46bd0ec7471,1,0,4c48db2f-2b79-4c6f-b8ee-002810c6190c,4c48db2f-2b79-4c6f-b8ee-002810c6190c,1,0,d0d90cbf-21fc-47cb-8e1c-549e67a1bf0c,d0d90cbf-21fc-47cb-8e1c-549e67a1bf0c,1,0,cf48ae02-ecb0-4db9-92da-585f89cddb70,cf48ae02-ecb0-4db9-92da-585f89cddb70,1,0,5650c5c7-3f43-4ec9-8b64-003c5467d06a,5650c5c7-3f43-4ec9-8b64-003c5467d06a,1,0,5bac3798-1193-4d74-bbdd-40aba11d742c,5bac3798-1193-4d74-bbdd-40aba11d742c,1,0,514f3514-ba90-493e-b0dd-2d02c6ba4d1d,514f3514-ba90-493e-b0dd-2d02c6ba4d1d,1,0,032de836-80a8-46ce-9e40-b3b6ac5f9e1e,032de836-80a8-46ce-9e40-b3b6ac5f9e1e,1,0,962c2c55-6a16-46f6-9ce0-67d1984b530e,962c2c55-6a16-46f6-9ce0-67d1984b530e,1,0,27e906c2-ea0e-489e-b869-547c48c29518,27e906c2-ea0e-489e-b869-547c48c29518,1,0,553ebd03-267b-4ced-805e-be7eca6db18f,553ebd03-267b-4ced-805e-be7eca6db18f,1,0,8bf95fa7-1067-45b3-82ea-286192f97e06,8bf95fa7-1067-45b3-82ea-286192f97e06,1,0,73996d67-4d70-4ce5-a58a-d70f44484f1e,73996d67-4d70-4ce5-a58a-d70f44484f1e,1,0,5e86a443-bd0f-411d-b1b9-41bfa0cf1a2f,5e86a443-bd0f-411d-b1b9-41bfa0cf1a2f,1,0,fcaecd43-b938-4680-93be-963db5218f35,fcaecd43-b938-4680-93be-963db5218f35,1,0,63415525-46a2-4d70-bdab-665945a9185c,63415525-46a2-4d70-bdab-665945a9185c,1,0,27e37fde-daf0-47fa-865c-3cd86151f5be,27e37fde-daf0-47fa-865c-3cd86151f5be,1,0,b3b63074-984a-48d2-ba5b-d69dd0b8067e,b3b63074-984a-48d2-ba5b-d69dd0b8067e,1,0,fc4a9f03-c81f-4201-814c-c6d5a5029168,fc4a9f03-c81f-4201-814c-c6d5a5029168,1,0,abba612c-137a-4dff-89f3-445945c30859,abba612c-137a-4dff-89f3-445945c30859,1,0,c4753515-a483-453e-a48b-b12d8ef48fd9,c4753515-a483-453e-a48b-b12d8ef48fd9,1,0,9b0e9fec-8261-4e20-9556-754a46d11c12,9b0e9fec-8261-4e20-9556-754a46d11c12,1,0,2d9048eb-abdf-4980-96ed-788fbb0f4ea7,2d9048eb-abdf-4980-96ed-788fbb0f4ea7,1,0,98c3bc52-2351-460c-8b8e-0d3f45ca3131,98c3bc52-2351-460c-8b8e-0d3f45ca3131,1,0,d1ade16c-bd56-46e5-874f-3117c5653192,d1ade16c-bd56-46e5-874f-3117c5653192,1,0,339398c0-6407-483c-82f7-266ef08b8657,339398c0-6407-483c-82f7-266ef08b8657,1,0,4f0a8f8c-68cb-4afe-b487-64e7ceeef9ab,4f0a8f8c-68cb-4afe-b487-64e7ceeef9ab,1,0,764bf84f-3aa5-4023-a15a-b546f8837141,764bf84f-3aa5-4023-a15a-b546f8837141,1,0,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,b1ff31b9-c9f2-4be4-ac9a-62faa1d1eb81,1,0,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,c14ea7a0-1fb6-4d54-82d6-7f12f11b0c0b,1,0,29645810-44aa-402c-9561-7819d6f4a7ab,29645810-44aa-402c-9561-7819d6f4a7ab,1,0,46bf4911-5200-44ac-9b4d-eb0089c12e34,46bf4911-5200-44ac-9b4d-eb0089c12e34,1,0,6e1685bd-7269-401c-b36e-def6a36b41d5,6e1685bd-7269-401c-b36e-def6a36b41d5,1,0,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,9d77103a-9921-4f6c-98fc-d7f42f0f2d8d,1,0,e03b6592-b597-4795-a78e-775d4f2258db,e03b6592-b597-4795-a78e-775d4f2258db,1,0,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,6ae9e86a-a42f-4de0-a891-6abe1ed16cdd,1,0,3b207d5f-6584-4cf2-9173-20235484f9f4,3b207d5f-6584-4cf2-9173-20235484f9f4,1,0,878d9efe-b0e7-487f-b8f7-83470c131e09,878d9efe-b0e7-487f-b8f7-83470c131e09,1,0,8270573d-8ed6-449d-853b-462d2dabaaa9,8270573d-8ed6-449d-853b-462d2dabaaa9,1,0,baeec6cd-b220-4240-95f2-3a0c1ee06c2e,baeec6cd-b220-4240-95f2-3a0c1ee06c2e,1,0,f2502463-67e4-4bfe-8ad5-fb80aa73975a,f2502463-67e4-4bfe-8ad5-fb80aa73975a,1,0,59e885e6-d978-40c2-95b6-35fc61074fb4,59e885e6-d978-40c2-95b6-35fc61074fb4,1,0,267dc512-9ee1-4bc1-9034-3effb7fb2949,267dc512-9ee1-4bc1-9034-3effb7fb2949,1,0,0f211e73-5be9-4015-93e7-ccf63e793cb6,0f211e73-5be9-4015-93e7-ccf63e793cb6,1,0,6574d8f4-fb97-4a26-b166-711fad63aa07,6574d8f4-fb97-4a26-b166-711fad63aa07,1,0,fb3eddaf-3241-4d59-8314-97a5ae9258c4,fb3eddaf-3241-4d59-8314-97a5ae9258c4,1,0,a3b0494c-f436-45ea-9577-4c0c86b057c9,a3b0494c-f436-45ea-9577-4c0c86b057c9,1,0,5101c142-b25c-4bef-80e7-7407f2c15c90,5101c142-b25c-4bef-80e7-7407f2c15c90,1,0,6d7872f1-fd54-41c4-8253-5f2b125f31ae,6d7872f1-fd54-41c4-8253-5f2b125f31ae,1,0,0c218200-27a8-4f71-9b09-3632dd453644,0c218200-27a8-4f71-9b09-3632dd453644,1,0,2d8a74e5-eb29-448b-b4c0-1f41fa171b5e,2d8a74e5-eb29-448b-b4c0-1f41fa171b5e,1,0,b5d30250-18ab-4af1-b99a-ff5dba334d1f,b5d30250-18ab-4af1-b99a-ff5dba334d1f,1,0,936f1aa5-7516-444b-b451-1162fa5d705f,936f1aa5-7516-444b-b451-1162fa5d705f,1,0,e8d5533e-2669-44f6-9eed-eaedab666d42,e8d5533e-2669-44f6-9eed-eaedab666d42,1,0,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,dd8e0f41-51a3-4bf2-a32e-084f9ad09be7,1,0,9e323b0d-4e3b-45d4-9705-aa30e63014f5,9e323b0d-4e3b-45d4-9705-aa30e63014f5,1,0,5afa798a-958e-4e0c-a380-0104f4c037a7,5afa798a-958e-4e0c-a380-0104f4c037a7,1,0,c0295fd9-c749-41b3-8d0d-6af16f484b1f,c0295fd9-c749-41b3-8d0d-6af16f484b1f,1,0,bd32a863-3090-432d-89c4-356ba86a0bdc,bd32a863-3090-432d-89c4-356ba86a0bdc,1,0,4621bf5a-46b5-4b82-8ae4-cc8e11e81ba0,4621bf5a-46b5-4b82-8ae4-cc8e11e81ba0,1,0,ed5465b4-a556-4078-ab18-49fef2afba2e,ed5465b4-a556-4078-ab18-49fef2afba2e,1,0,7368ab8f-59d5-4270-a43b-0f3e422169ed,7368ab8f-59d5-4270-a43b-0f3e422169ed,1,0,eeb0571b-1b74-4889-b8b5-f94186d692d7,eeb0571b-1b74-4889-b8b5-f94186d692d7,1,0,9ef3b72c-caa3-486b-9917-04c00f6689c1,9ef3b72c-caa3-486b-9917-04c00f6689c1,1,0,cb3039d8-4b11-4d03-b0ca-eae5dfc01b0a,cb3039d8-4b11-4d03-b0ca-eae5dfc01b0a,1,0,9245417f-f247-47ba-a1b4-a17ec2e8776c,9245417f-f247-47ba-a1b4-a17ec2e8776c,1,0,a4b721d7-b119-47eb-80e0-7db34c83964f,a4b721d7-b119-47eb-80e0-7db34c83964f,1,0,512629d1-e8b7-4f66-b613-b8c0cb9c250b,512629d1-e8b7-4f66-b613-b8c0cb9c250b,1,0,b7cf4684-4432-4658-9c06-b315d470a3a6,b7cf4684-4432-4658-9c06-b315d470a3a6,1,0,d3bc8211-54d8-47dd-aecf-5da72b65195f,d3bc8211-54d8-47dd-aecf-5da72b65195f,1,0,33f11da8-f670-4ec3-9d40-96fce031c60f,33f11da8-f670-4ec3-9d40-96fce031c60f,1,0,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,97cbd5b5-5a39-418c-93b5-f9934fa1ba4e,1,0,f74c2d41-2433-4bed-8aef-adfeed198252,f74c2d41-2433-4bed-8aef-adfeed198252,1,0,3c2b8a8a-bfe7-4e37-9d83-55a695a06605,3c2b8a8a-bfe7-4e37-9d83-55a695a06605,1,0,56c9703a-751a-4e6c-81f4-a8756fb040e3,56c9703a-751a-4e6c-81f4-a8756fb040e3,1,0,c3a86eec-1ff5-4392-9904-91a12a2e253a,c3a86eec-1ff5-4392-9904-91a12a2e253a,1,0,f5df72a3-c71c-412b-8c3e-6329f1d3a7da,f5df72a3-c71c-412b-8c3e-6329f1d3a7da,1,0,f02b7246-dae9-4e15-b4cd-b06133664d34,f02b7246-dae9-4e15-b4cd-b06133664d34,1,0,77f20022-17ce-4e00-8a84-015238bce6f3,77f20022-17ce-4e00-8a84-015238bce6f3,1,0,3734619b-7059-4547-8b97-0b3393389d4d,3734619b-7059-4547-8b97-0b3393389d4d,1,0,a30bf95f-aabd-4da0-8287-61e08f9362fb,a30bf95f-aabd-4da0-8287-61e08f9362fb,1,0,f5a7df18-2ddb-4053-9aeb-57fc37ae557e,f5a7df18-2ddb-4053-9aeb-57fc37ae557e,1,0,4078867c-2972-47f9-bebd-935a6f1cc667,4078867c-2972-47f9-bebd-935a6f1cc667,1,0,8502fe39-c241-4be5-a313-fd887bbbdfa1,8502fe39-c241-4be5-a313-fd887bbbdfa1,1,0,67a71201-13e5-42a3-902f-fb3a59710dfb,67a71201-13e5-42a3-902f-fb3a59710dfb,1,0,3a79a951-a997-4596-ab62-ba376d67725d,3a79a951-a997-4596-ab62-ba376d67725d,1,0,dd4fe688-c113-4ac5-8114-b89cf1b0eb55,dd4fe688-c113-4ac5-8114-b89cf1b0eb55,1,0,c2f246fa-81a3-436c-9f7d-4c8eb7103bf1,c2f246fa-81a3-436c-9f7d-4c8eb7103bf1,1,0,c3e9225a-7fab-499f-baca-eca56914f1ea,c3e9225a-7fab-499f-baca-eca56914f1ea,1,0,5072ce03-c5b6-4e2b-8a29-d3a8e0b907d2,5072ce03-c5b6-4e2b-8a29-d3a8e0b907d2,1,0,b0e9e59d-9636-492c-91d0-71d43b6d6694,b0e9e59d-9636-492c-91d0-71d43b6d6694,1,0,d5fa6b14-d0a4-4d97-ae24-70fed456f07f,d5fa6b14-d0a4-4d97-ae24-70fed456f07f,1,0,54957cc3-685b-4d6d-a0e8-14d51f54224e,54957cc3-685b-4d6d-a0e8-14d51f54224e,1,0,f725ada3-78ef-4e6d-9466-b7047cf695e0,f725ada3-78ef-4e6d-9466-b7047cf695e0,1,0,4f741112-f127-479e-939b-a2c6e36bb57f,4f741112-f127-479e-939b-a2c6e36bb57f,1,0,e169580b-be49-4e39-9cc8-f9942b2d5b8a,e169580b-be49-4e39-9cc8-f9942b2d5b8a,1,0,cacbaa6b-ba3f-43af-9c7b-12fd9f124184,cacbaa6b-ba3f-43af-9c7b-12fd9f124184,1,0,b2de5117-88eb-47ed-bcd4-7001c4549658,b2de5117-88eb-47ed-bcd4-7001c4549658,1,0,884c28de-434f-440a-8c63-67e659c097ad,884c28de-434f-440a-8c63-67e659c097ad,1,0,92ead3b5-8c55-4e4d-bd47-009e025b22f8,92ead3b5-8c55-4e4d-bd47-009e025b22f8,1,0,50d8e365-aa58-4b60-8992-01943379d485,50d8e365-aa58-4b60-8992-01943379d485,1,0,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,9bb58c7c-d87d-435b-adf6-09c8f75d47b2,1,0,b3f7f763-bea9-4f59-9450-df95e5c3d89d,b3f7f763-bea9-4f59-9450-df95e5c3d89d,1,0,9111e28e-c1c7-414b-9288-61bd06a04d04,9111e28e-c1c7-414b-9288-61bd06a04d04,1,0,bcd705ba-c9ac-4e73-94b1-7632c0f06c04,bcd705ba-c9ac-4e73-94b1-7632c0f06c04,1,0,fec102ea-a3f6-49b5-b4b8-6884b0654129,fec102ea-a3f6-49b5-b4b8-6884b0654129,1,0,246571fb-38c7-4da6-929d-d8b44bc3437c,246571fb-38c7-4da6-929d-d8b44bc3437c,1,0,047fd6d7-5e30-4184-a09a-6525de526cc7,047fd6d7-5e30-4184-a09a-6525de526cc7,1,0,beb44b02-5d5e-4127-aee7-e184a43a4210,beb44b02-5d5e-4127-aee7-e184a43a4210,1,0,1dedfbc2-9250-4229-a6ea-5e085f33e7c3,1dedfbc2-9250-4229-a6ea-5e085f33e7c3,1,0,e24641ed-3e92-46d7-852b-9958ab7bc520,e24641ed-3e92-46d7-852b-9958ab7bc520,1,0,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,bc2aa3f9-ef2c-49a5-8cd9-ddd8a8cbe19d,1,0,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,b6ac4cd6-c68f-4464-88e9-a8d335d581c6,1,0,2c61114f-abd7-4415-8cdf-4fe95d9fe354,2c61114f-abd7-4415-8cdf-4fe95d9fe354,1,0,abd7a766-5cc1-48db-8d29-797e9d666a78,abd7a766-5cc1-48db-8d29-797e9d666a78,1,0,1704b5e3-8e77-4df6-9223-e6e5c41a280d,1704b5e3-8e77-4df6-9223-e6e5c41a280d,1,0,62eca88f-025d-44de-b92c-46cd8bc7e4a1,62eca88f-025d-44de-b92c-46cd8bc7e4a1,1,0,8fbf9432-77e8-4951-87a1-4368e3a5e117,8fbf9432-77e8-4951-87a1-4368e3a5e117,1,0,fbd5d6d8-05cd-43a3-85da-8dcbeee08333,fbd5d6d8-05cd-43a3-85da-8dcbeee08333,1,0,b0dde395-8498-4469-9507-d290798117d7,b0dde395-8498-4469-9507-d290798117d7,1,0,999616ea-0faa-4ae2-9841-6a6997ea6694,999616ea-0faa-4ae2-9841-6a6997ea6694,1,0,c5f91669-13d8-4f0a-a054-2701078da38a,c5f91669-13d8-4f0a-a054-2701078da38a,1,0,34f9872b-e02e-4093-ba06-3cb5b8995850,34f9872b-e02e-4093-ba06-3cb5b8995850,1,0,18515c19-c9ef-4c9f-8d12-4f58ffa251e8,18515c19-c9ef-4c9f-8d12-4f58ffa251e8,1,0,3afe11f6-7424-4b41-a42f-91db33756fa3,3afe11f6-7424-4b41-a42f-91db33756fa3,1,0,94e68502-adf1-476e-be2f-8418385959fa,94e68502-adf1-476e-be2f-8418385959fa,1,0,bf80ccc5-f907-4e7f-a007-6030c7ba682e,bf80ccc5-f907-4e7f-a007-6030c7ba682e,1,0,134bbd7c-cadd-4395-b7a4-0249dfe7d0b1,134bbd7c-cadd-4395-b7a4-0249dfe7d0b1,1,0,05f1f184-50cb-47c5-b3a8-62be6a9780c1,05f1f184-50cb-47c5-b3a8-62be6a9780c1,1,0,f908b81e-f5ba-46ca-b7c0-8cb43ab23901,f908b81e-f5ba-46ca-b7c0-8cb43ab23901,1,0,3c305f89-e453-46c7-987b-f01dc964efdb,3c305f89-e453-46c7-987b-f01dc964efdb,1,0,1809ff43-2af2-44d1-ac7b-91d5bbe4f0ce,1809ff43-2af2-44d1-ac7b-91d5bbe4f0ce,1,0,bf40c9ed-b7db-4200-9646-c4e751fc2014,bf40c9ed-b7db-4200-9646-c4e751fc2014,1,0,2bf9c338-d31e-467e-8281-d1d6a3a6b2e2,2bf9c338-d31e-467e-8281-d1d6a3a6b2e2,1,0,3c2c192e-4869-4cc6-ba47-1fadac5b9678,3c2c192e-4869-4cc6-ba47-1fadac5b9678,1,0,58c3936c-4db0-45c8-a22e-b5dd49a61497,58c3936c-4db0-45c8-a22e-b5dd49a61497,1,0,9aa607bc-5870-436a-bbe1-296560393e3b,9aa607bc-5870-436a-bbe1-296560393e3b,1,0,1635be16-4861-4a7d-babc-4caff448a7f7,1635be16-4861-4a7d-babc-4caff448a7f7,1,0,9e399087-c957-4a7a-ab9d-2b689736caab,9e399087-c957-4a7a-ab9d-2b689736caab,1,0,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,e7542e37-a2f0-43b5-852e-4e2b24b1b71f,1,0,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,3e94649c-7d69-4fb4-ada1-ae00eabf02b6,1,0,2b7372be-af0d-464e-8d09-8172229790af,2b7372be-af0d-464e-8d09-8172229790af,1,0,d85346db-be25-4dab-a2db-647c3d40dd17,d85346db-be25-4dab-a2db-647c3d40dd17,1,0,c7bafd34-5b15-42ec-b329-0be3002775ad,c7bafd34-5b15-42ec-b329-0be3002775ad,1,0,6feb2278-9149-47f8-a0ec-eb4bd9f44716,6feb2278-9149-47f8-a0ec-eb4bd9f44716,1,0,e99606f3-cf75-44b2-ad50-c88a8c3d189c,e99606f3-cf75-44b2-ad50-c88a8c3d189c,1,0,b4fa35f9-cb7e-46a8-b32b-801d212c8fcf,b4fa35f9-cb7e-46a8-b32b-801d212c8fcf,1,0,c960082b-8c16-4d7b-b7fd-b1f2bfe07e0b,c960082b-8c16-4d7b-b7fd-b1f2bfe07e0b,1,0,cd6770d5-cd3c-47af-bc46-c865993adf63,cd6770d5-cd3c-47af-bc46-c865993adf63,1,0,97ec899d-a2a0-4691-83ff-25b78dd49ef6,97ec899d-a2a0-4691-83ff-25b78dd49ef6,1,0,411db885-f761-44e5-bdd1-9fdf9e741ac1,411db885-f761-44e5-bdd1-9fdf9e741ac1,1,0,269ada84-71a9-4b4b-9604-caa40c5b7067,269ada84-71a9-4b4b-9604-caa40c5b7067,1,0,ea13607a-3e05-4468-9932-41b6d51cfedf,ea13607a-3e05-4468-9932-41b6d51cfedf,1,0,9f9936fc-54a0-4812-b12d-2f8f91551440,9f9936fc-54a0-4812-b12d-2f8f91551440,1,0,2eeea138-481c-4fde-9e8a-709d751cc469,2eeea138-481c-4fde-9e8a-709d751cc469,1,0,70a3df8f-c12a-4185-81c4-39a5114ef7a9,70a3df8f-c12a-4185-81c4-39a5114ef7a9,1,0,bd362ff9-3dec-4a4b-9595-8609de76e842,bd362ff9-3dec-4a4b-9595-8609de76e842,1,0,76cc9ae1-7ac2-4b99-8def-f21dc55ad07d,76cc9ae1-7ac2-4b99-8def-f21dc55ad07d,1,0,43e37533-ed38-4000-a387-5749f8d9aaf3,43e37533-ed38-4000-a387-5749f8d9aaf3,1,0,e93bdb44-64b3-43d8-b15a-c561dbb91974,e93bdb44-64b3-43d8-b15a-c561dbb91974,1,0,928e0e05-b946-48c8-9619-2d93eb94b036,928e0e05-b946-48c8-9619-2d93eb94b036,1,0,99e701f7-9206-4b20-bb32-e60c9a1d570e,99e701f7-9206-4b20-bb32-e60c9a1d570e,1,0,a7c7c835-5402-4bdd-a0e3-d21746174d5a,a7c7c835-5402-4bdd-a0e3-d21746174d5a,1,0,54766e6b-cf49-4c58-b5e5-dcb6362ac5e2,54766e6b-cf49-4c58-b5e5-dcb6362ac5e2,1,0,f2210cf1-f9f5-41ed-8b4d-937778da842b,f2210cf1-f9f5-41ed-8b4d-937778da842b,1,0,07e81872-afac-4720-86b4-91e7bf4a2881,07e81872-afac-4720-86b4-91e7bf4a2881,1,0,d4b49ed0-3d3f-4b68-bc1e-949e8e338e9a,d4b49ed0-3d3f-4b68-bc1e-949e8e338e9a,1,0,542a53f5-56c5-4ca9-90d1-d689532c69fd,542a53f5-56c5-4ca9-90d1-d689532c69fd,1,0,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,02c5f3b2-d691-4eaf-84fd-763770e4b1cb,1,0,845262f8-8208-4c90-98ec-c85dd5734cf0,845262f8-8208-4c90-98ec-c85dd5734cf0,1,0,532dfa48-39b0-4d0f-9f8c-b51ca27e47a9,532dfa48-39b0-4d0f-9f8c-b51ca27e47a9,1,0,17bc0f34-c35b-4beb-be5f-8e8d8f06c053,17bc0f34-c35b-4beb-be5f-8e8d8f06c053,1,0,f91813e6-b75c-43fb-8da3-a0d958dc6fa0,f91813e6-b75c-43fb-8da3-a0d958dc6fa0,1,0,ad066c0d-4f4c-48af-9cc8-bb835372150a,ad066c0d-4f4c-48af-9cc8-bb835372150a,1,0,a2145e81-239e-4267-8a43-ea3f7babe878,a2145e81-239e-4267-8a43-ea3f7babe878,1,0,39598414-9c1d-46ec-a534-8bd43e622e45,39598414-9c1d-46ec-a534-8bd43e622e45,1,0,b552c510-4fd4-4c16-9022-dc5babcafc52,b552c510-4fd4-4c16-9022-dc5babcafc52,1,0,3892c06d-28f1-4238-a929-201316cac1ed,3892c06d-28f1-4238-a929-201316cac1ed,1,0,c13dea2e-17fa-4a5f-a70f-96e623db8a6b,c13dea2e-17fa-4a5f-a70f-96e623db8a6b,1,0,ecc0ac05-9813-482d-bc39-0be1490d3f8b,ecc0ac05-9813-482d-bc39-0be1490d3f8b,1,0,866f53c8-4f1e-484a-a809-6130f7eef872,866f53c8-4f1e-484a-a809-6130f7eef872,1,0,339e8cba-a92e-42f6-8d00-3b8b56ce3b0f,339e8cba-a92e-42f6-8d00-3b8b56ce3b0f,1,0,567c68fd-74c7-4b6e-9119-56ac8d78073c,567c68fd-74c7-4b6e-9119-56ac8d78073c,1,0,3326bbcb-b277-44db-a252-2448119e8146,3326bbcb-b277-44db-a252-2448119e8146,1,0,61cac5f7-320c-4098-9078-44fadcdeb219,61cac5f7-320c-4098-9078-44fadcdeb219,1,0,304304b1-36a4-42bb-8ab9-b23b59795001,304304b1-36a4-42bb-8ab9-b23b59795001,1,0,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,a22d1a4f-cb7c-4bcc-b258-ecca282fb071,1,0,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,e5beda2c-f4e2-4a6b-a1d0-a877eb0c9f5b,1,0,cd454738-62dd-4f95-af33-b52750678428,cd454738-62dd-4f95-af33-b52750678428,1,0,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,2a479b8f-7569-43d0-8ca3-9001d6ec57f0,1,0,e4abafc6-f859-4d96-9818-5b9bf8d66d69,e4abafc6-f859-4d96-9818-5b9bf8d66d69,1,0,535acd2c-26d2-4f32-9ae6-cc1956317c59,535acd2c-26d2-4f32-9ae6-cc1956317c59,1,0,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,801adeeb-8a7f-44c1-b649-a7dfffc7b65d,1,0,ac4e0868-ba49-46b4-8872-d42483a5591f,ac4e0868-ba49-46b4-8872-d42483a5591f,1,0,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,45e6c4a6-1d63-4b94-a7d2-fbd3fb68061b,1,0,0493dcf1-5f94-41f9-a4c7-a52e12a29068,0493dcf1-5f94-41f9-a4c7-a52e12a29068,1,0,ca4c0299-625a-4b03-be0e-36ffb45c6d08,ca4c0299-625a-4b03-be0e-36ffb45c6d08,1,0,7fa1119b-4321-4b8f-a879-1d940084145a,7fa1119b-4321-4b8f-a879-1d940084145a,1,0,5d9c0841-6ea6-48dc-a53b-9f19894750f8,5d9c0841-6ea6-48dc-a53b-9f19894750f8,1,0,86b5303b-d967-4bc6-b2da-066c5a58613f,86b5303b-d967-4bc6-b2da-066c5a58613f,1,0,853b824d-9377-475f-913e-d02bd60f5f64,853b824d-9377-475f-913e-d02bd60f5f64,1,0,d5a73869-381e-4878-8db7-596643937202,d5a73869-381e-4878-8db7-596643937202,1,0,c91de10a-d370-4495-9d9e-98581e566385,c91de10a-d370-4495-9d9e-98581e566385,1,0,3a93f1d2-3e9c-41a9-9d53-314538a96bb2,3a93f1d2-3e9c-41a9-9d53-314538a96bb2,1,0,8bc4bece-027f-460c-ade0-d7c7d3d9a6b7,8bc4bece-027f-460c-ade0-d7c7d3d9a6b7,1,0,dd73a8d8-a6db-4d3c-a808-d82bad8876b9,dd73a8d8-a6db-4d3c-a808-d82bad8876b9,1,0,11a93e3a-3c5b-4242-913c-02474a383344,11a93e3a-3c5b-4242-913c-02474a383344,1,0,ddd2861c-592b-4879-b9de-4b05a22c0b43,ddd2861c-592b-4879-b9de-4b05a22c0b43,1,0,5b383021-a800-4f0b-b8a3-d344389bff6c,5b383021-a800-4f0b-b8a3-d344389bff6c,1,0,8fe71bce-a61a-4a2e-bd18-81c7a7bb4456,8fe71bce-a61a-4a2e-bd18-81c7a7bb4456,1,0,11e708d8-82f4-4d45-a77d-7b9d23c0ef54,11e708d8-82f4-4d45-a77d-7b9d23c0ef54,1,0,8a57d427-a34e-4121-84e6-1a86a9f9092d,8a57d427-a34e-4121-84e6-1a86a9f9092d,1,0,dbc1bf11-e92a-4f4e-90d4-6a3ccdaec7e5,dbc1bf11-e92a-4f4e-90d4-6a3ccdaec7e5,1,0,29ec9423-25ef-4cf2-ad6a-58f854c3e22b,29ec9423-25ef-4cf2-ad6a-58f854c3e22b,1,0,2607e4d1-4fc0-4270-ad45-2c95d4aa04da,2607e4d1-4fc0-4270-ad45-2c95d4aa04da,1,0,b4b4bd5d-a860-4994-90b7-0c60ab680c4e,b4b4bd5d-a860-4994-90b7-0c60ab680c4e,1,0,68447105-a784-4803-8eb8-3701b0fc819d,68447105-a784-4803-8eb8-3701b0fc819d,1,0,ec892726-dee3-4edb-ad71-020404b09477,ec892726-dee3-4edb-ad71-020404b09477,1,0,5fb5320c-cd7c-4f28-ad6a-8670a60a9e11,5fb5320c-cd7c-4f28-ad6a-8670a60a9e11,1,0,59dee70d-aeca-470a-b3c4-e43bb16c5753,59dee70d-aeca-470a-b3c4-e43bb16c5753,1,0,82777e92-0681-44bf-b51e-4d98fcd5d5bd,82777e92-0681-44bf-b51e-4d98fcd5d5bd,1,0,2e0b331d-92d4-4250-94c6-9ced8cdcb1e4,2e0b331d-92d4-4250-94c6-9ced8cdcb1e4,1,0,cee126de-d567-44d3-b14c-35da6e501324,cee126de-d567-44d3-b14c-35da6e501324,1,0,4599ef83-5f1e-44af-ae0c-67988656a99e,4599ef83-5f1e-44af-ae0c-67988656a99e,1,0,acb0d7eb-2ed9-4419-b79d-7dc661d70c30,acb0d7eb-2ed9-4419-b79d-7dc661d70c30,1,0,e1b94dcf-ec37-4b2d-a7af-120eeee40944,e1b94dcf-ec37-4b2d-a7af-120eeee40944,1,0,7d2a37b1-a1a0-435a-846a-95e255655044,7d2a37b1-a1a0-435a-846a-95e255655044,1,0,109db64c-00dc-490e-99a5-4430d9344e99,109db64c-00dc-490e-99a5-4430d9344e99,1,0,85837a55-fed5-4b7b-a622-30d728b9a677,85837a55-fed5-4b7b-a622-30d728b9a677,1,0,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,0fd79cdb-dc7a-40ca-a3bc-2c7a7b4691bb,1,0,6ede8b5c-7df0-44a5-9136-8109bbd8b5a9,6ede8b5c-7df0-44a5-9136-8109bbd8b5a9,1,0,325bacdd-793f-47d8-b987-57e9d5f2782b,325bacdd-793f-47d8-b987-57e9d5f2782b,1,0,80395d47-70d7-4d8d-9b18-93283fba80c2,80395d47-70d7-4d8d-9b18-93283fba80c2,1,0,8b621ec9-24c9-4166-90ce-29c5ad30f78b,8b621ec9-24c9-4166-90ce-29c5ad30f78b,1,0,cc98670a-7b18-4973-b211-90261c5c8c10,cc98670a-7b18-4973-b211-90261c5c8c10,1,0,5921c2e6-4b25-40d4-b871-9654c2ce89bb,5921c2e6-4b25-40d4-b871-9654c2ce89bb,1,0,da9821c3-4b16-48b7-9088-d3cf8ac536a6,da9821c3-4b16-48b7-9088-d3cf8ac536a6,1,0,fb36c775-1124-4ba6-8af8-133bf66fcb54,fb36c775-1124-4ba6-8af8-133bf66fcb54,1,0,51f9aff4-71da-4b1b-b48b-04122a17d855,51f9aff4-71da-4b1b-b48b-04122a17d855,1,0,d5142574-a040-4dd0-a482-cdc61c1d86ab,d5142574-a040-4dd0-a482-cdc61c1d86ab,1,0,62957889-503f-4923-a372-29776dc3b5e5,62957889-503f-4923-a372-29776dc3b5e5,1,0,90385850-d37b-4b2e-ac87-95c17f32197c,90385850-d37b-4b2e-ac87-95c17f32197c,1,0,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,b9e5bb39-ed0a-4e12-b7e4-2d9b5015bf9c,1,0,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,dbced4aa-6432-4f0c-a99a-5a3e7b0f6755,1,0,6b28a716-2fb1-47f7-a7d6-f2fe7edb32c3,6b28a716-2fb1-47f7-a7d6-f2fe7edb32c3,1,0,e849e46c-2ce6-427b-92bc-06d7997f59bf,e849e46c-2ce6-427b-92bc-06d7997f59bf,1,0,5a971dc0-28bf-4426-9426-9f456aea080a,5a971dc0-28bf-4426-9426-9f456aea080a,1,0,f480ac52-e2f1-4ed0-a0b1-20a622f77302,f480ac52-e2f1-4ed0-a0b1-20a622f77302,1,0,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,5c63e7cd-ecdb-45ae-a589-f6c38f5a8e76,1,0,b9b0fbdc-8fda-46d1-bb3e-561a03604971,b9b0fbdc-8fda-46d1-bb3e-561a03604971,1,0,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,eadfdbe3-bc85-4084-aef6-4cfd258ee6f1,1,0,672c2936-9771-4e32-a970-7ac7f12a21e8,672c2936-9771-4e32-a970-7ac7f12a21e8,1,0,73afaad8-dfa9-43e3-bdaf-543c3545d788,73afaad8-dfa9-43e3-bdaf-543c3545d788,1,0,c264441d-4805-4968-baa2-37b8970049c7,c264441d-4805-4968-baa2-37b8970049c7,1,0,4f0bda80-2246-43be-95f8-ae8480682cd5,4f0bda80-2246-43be-95f8-ae8480682cd5,1,0,ac4fa2a4-93a1-4aa6-986a-5f576457fc8a,ac4fa2a4-93a1-4aa6-986a-5f576457fc8a,1,0,6f683f46-9eef-4e78-bc2f-7174238bf53c,6f683f46-9eef-4e78-bc2f-7174238bf53c,1,0,7d1ed38b-98cf-4a0e-a605-680bb580d904,7d1ed38b-98cf-4a0e-a605-680bb580d904,1,0,b769eda0-11de-401c-a68b-4fce4555d4fc,b769eda0-11de-401c-a68b-4fce4555d4fc,1,0,fd7a668f-3099-4e15-956a-92c6295dd4d5,fd7a668f-3099-4e15-956a-92c6295dd4d5,1,0,afcbd830-ec5f-4865-a176-ea3014dff908,afcbd830-ec5f-4865-a176-ea3014dff908,1,0,dc5fc801-14e4-42e8-b396-76eb30b69eea,dc5fc801-14e4-42e8-b396-76eb30b69eea,1,0,485b9f00-475a-49e5-ade2-b2e05d94ecf0,485b9f00-475a-49e5-ade2-b2e05d94ecf0,1,0,310aef5a-84d9-4a68-af78-d623beff8a88,310aef5a-84d9-4a68-af78-d623beff8a88,1,0,398bf9d1-c353-461e-a1be-683047dcbe41,398bf9d1-c353-461e-a1be-683047dcbe41,1,0,f36150de-33af-4410-8a4c-8c9f4b545793,f36150de-33af-4410-8a4c-8c9f4b545793,1,0,62f97480-7d4a-48f3-9d1d-612909b242c9,62f97480-7d4a-48f3-9d1d-612909b242c9,1,0,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,2b4f6e2f-6cc4-4c7c-98a6-786f3793366b,1,0,3068be84-a401-4701-8ac9-411fae130f84,3068be84-a401-4701-8ac9-411fae130f84,1,0,957394a7-e5b8-47fc-8680-1e71efe2be7d,957394a7-e5b8-47fc-8680-1e71efe2be7d,1,0,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,ba49a9e4-6ec1-43ff-92cd-9dbf221bbf09,1,0,4f25ef45-c8d9-401d-b0e8-2217ac310f04,4f25ef45-c8d9-401d-b0e8-2217ac310f04,1,0,504ca240-b5ae-433e-ae5f-d818263eea23,504ca240-b5ae-433e-ae5f-d818263eea23,1,0,32461819-9437-417d-8d1e-851c9a2dcee2,32461819-9437-417d-8d1e-851c9a2dcee2,1,0,74228950-8a4b-4dd6-a053-8650de202521,74228950-8a4b-4dd6-a053-8650de202521,1,0,6b9ce91e-08b9-4972-9878-1724c67b68ec,6b9ce91e-08b9-4972-9878-1724c67b68ec,1,0,640814f2-6082-475e-8006-25fd5b24afdb,640814f2-6082-475e-8006-25fd5b24afdb,1,0,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,6fcd2a3a-4d66-40e3-bde0-5c274b43783f,1,0,569047c2-0879-4fba-a814-44812d21043b,569047c2-0879-4fba-a814-44812d21043b,1,0,0c3c4494-c037-431e-9eeb-9b6cfd7372c3,0c3c4494-c037-431e-9eeb-9b6cfd7372c3,1,0,80512d95-5458-4934-98ae-a7b58099196b,80512d95-5458-4934-98ae-a7b58099196b,1,0,6f2354cd-4a34-4921-96bb-b786486f85cf,6f2354cd-4a34-4921-96bb-b786486f85cf,1,0,f1b66ea8-262d-4b38-a039-b83a843f6ee8,f1b66ea8-262d-4b38-a039-b83a843f6ee8,1,0,bcae6e05-f1fd-413e-9eef-2e1cee42a962,bcae6e05-f1fd-413e-9eef-2e1cee42a962,1,0,40da1bca-ebb3-4c64-bf54-1f37b71d47b6,40da1bca-ebb3-4c64-bf54-1f37b71d47b6,1,0,778b4c8f-7a1e-4b4b-9f68-12cbf52bf195,778b4c8f-7a1e-4b4b-9f68-12cbf52bf195,1,0,91562fe8-e630-4bcb-a14e-c0e1e129141a,91562fe8-e630-4bcb-a14e-c0e1e129141a,1,0,c261abfd-3828-47b5-aa32-dfdd3a1636ad,c261abfd-3828-47b5-aa32-dfdd3a1636ad,1,0,e9aa6dab-0d96-42ce-9bd6-b8b10d755f8c,e9aa6dab-0d96-42ce-9bd6-b8b10d755f8c,1,0,1db1cb24-f364-4b91-bc96-c216764207a0,1db1cb24-f364-4b91-bc96-c216764207a0,1,0,64d7c8a7-1c15-4afb-ad97-abf8729c604e,64d7c8a7-1c15-4afb-ad97-abf8729c604e,1,0,a3cbbc8a-4afd-48c5-91d4-4849d18905c1,a3cbbc8a-4afd-48c5-91d4-4849d18905c1,1,0,5d6b29dc-38af-4dce-b79c-ce8f23afb3b1,5d6b29dc-38af-4dce-b79c-ce8f23afb3b1,1,0,c04b685a-0d2d-404c-a74a-775ffab298ce,c04b685a-0d2d-404c-a74a-775ffab298ce,1,0,5fe6967d-e333-464b-a89e-8c868c0ce37d,5fe6967d-e333-464b-a89e-8c868c0ce37d,1,0,5aef2892-7a87-4d3b-bb46-8340a7fb97a8,5aef2892-7a87-4d3b-bb46-8340a7fb97a8,1,0,8efa4c12-b5ba-4dfd-bdc9-e824402fc4b1,8efa4c12-b5ba-4dfd-bdc9-e824402fc4b1,1,0,84da1ef8-1784-4dfc-b17a-7728aa7ff62a,84da1ef8-1784-4dfc-b17a-7728aa7ff62a,1,0,9155c95b-6afb-41bb-bd0b-d37e503fc163,9155c95b-6afb-41bb-bd0b-d37e503fc163,1,0,d917c19e-be15-41cc-9c8a-a97c8de85309,d917c19e-be15-41cc-9c8a-a97c8de85309,1,0,54b5b44c-5f24-4b2a-982c-4489b18db7f0,54b5b44c-5f24-4b2a-982c-4489b18db7f0,1,0,5bc04a9a-6a0a-4607-b8eb-743b87143ae7,5bc04a9a-6a0a-4607-b8eb-743b87143ae7,1,0,e8045f52-7b27-48b0-b009-d488718b3bef,e8045f52-7b27-48b0-b009-d488718b3bef,1,0,1796bcbb-a629-4509-95c9-78562689f809,1796bcbb-a629-4509-95c9-78562689f809,1,0,cd9799c9-f5bf-4537-8885-06fb6e6b8f93,cd9799c9-f5bf-4537-8885-06fb6e6b8f93,1,0,d19e8fcc-62cc-4ce4-81bc-ead33a2714df,d19e8fcc-62cc-4ce4-81bc-ead33a2714df,1,0,1aa6b483-0f87-4ed3-94ea-8b81813532d6,1aa6b483-0f87-4ed3-94ea-8b81813532d6,1,0,0f79d87e-3311-4281-8f46-6154e708b930,0f79d87e-3311-4281-8f46-6154e708b930,1,0,e057e428-99c1-419d-a169-697c1e825e94,e057e428-99c1-419d-a169-697c1e825e94,1,0,784a60bd-4070-476d-9b8b-f607c76dc52b,784a60bd-4070-476d-9b8b-f607c76dc52b,1,0,904d5bd0-3843-4aaa-86a3-f8e12282e5c0,904d5bd0-3843-4aaa-86a3-f8e12282e5c0,1,0,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,1,0,748f7ddb-4cdc-46e5-9108-f7a550b33537,748f7ddb-4cdc-46e5-9108-f7a550b33537,1,0,0534460b-0548-45f0-ac79-aa4bc109655c,0534460b-0548-45f0-ac79-aa4bc109655c,1,0,47907538-9357-4885-8b50-17f2e16c260f,47907538-9357-4885-8b50-17f2e16c260f,1,0,17e1840f-fef3-4f17-8476-273e6af24cb4,17e1840f-fef3-4f17-8476-273e6af24cb4,1,0,a64566fa-b706-49bc-8277-4531145c400e,a64566fa-b706-49bc-8277-4531145c400e,1,0,a8f32b13-249c-4ce6-a521-f06a87f2e670,a8f32b13-249c-4ce6-a521-f06a87f2e670,1,0,815775e4-cfb7-495b-87c4-d134b90d93d4,815775e4-cfb7-495b-87c4-d134b90d93d4,1,0,e867f2f1-0550-4d15-9e40-ba36c9aabfbd,e867f2f1-0550-4d15-9e40-ba36c9aabfbd,1,0,8bdbb9ef-3a91-4374-b3c5-9447005bb1b7,8bdbb9ef-3a91-4374-b3c5-9447005bb1b7,1,0,7a27b378-89ac-4cad-8c69-a0cd14812d7e,7a27b378-89ac-4cad-8c69-a0cd14812d7e,1,0,d2433a11-8e1d-4e4c-966d-37cde6283f72,d2433a11-8e1d-4e4c-966d-37cde6283f72,1,0,59eb5919-3c33-48bf-b322-ec78018e4142,59eb5919-3c33-48bf-b322-ec78018e4142,1,0,63f308a5-b955-48a5-8052-50c5bede65d0,63f308a5-b955-48a5-8052-50c5bede65d0,1,0,1b614b97-5c1d-497a-9574-40114059f836,1b614b97-5c1d-497a-9574-40114059f836,1,0,477dfea4-e401-4cf0-b0a8-2df7c3836c58,477dfea4-e401-4cf0-b0a8-2df7c3836c58,1,0,294c000f-6979-4ed1-bbc7-7402facd9185,294c000f-6979-4ed1-bbc7-7402facd9185,1,0,db607fbc-f785-47d5-9550-577424aa3fe9,db607fbc-f785-47d5-9550-577424aa3fe9,1,0,b7111ddf-a623-4bae-90aa-636148492ca2,b7111ddf-a623-4bae-90aa-636148492ca2,1,0,905d9dcd-5793-4362-8fe8-2edce8c35e32,905d9dcd-5793-4362-8fe8-2edce8c35e32,1,0,a96cb6fd-54e0-4514-9210-7f4636acd336,a96cb6fd-54e0-4514-9210-7f4636acd336,1,0,3580e7a7-95d1-4a8e-bc12-a1449fe03757,3580e7a7-95d1-4a8e-bc12-a1449fe03757,1,0,13759790-6c70-4323-9321-a68b90c51663,13759790-6c70-4323-9321-a68b90c51663,1,0,d9704b20-c29c-4e7f-b777-0ac9080a5631,d9704b20-c29c-4e7f-b777-0ac9080a5631,1,0,c1372891-0f55-4868-ab97-906eff52be0e,c1372891-0f55-4868-ab97-906eff52be0e,1,0,33e96bda-1708-4ee4-8d4d-3b919bda3e38,33e96bda-1708-4ee4-8d4d-3b919bda3e38,1,0,53fb35a7-44ab-42e7-8dba-6fa08bf5ba2c,53fb35a7-44ab-42e7-8dba-6fa08bf5ba2c,1,0,93fcaa62-2a19-468b-9128-c7930583fbfd,93fcaa62-2a19-468b-9128-c7930583fbfd,1,0,2d885109-4c96-41c0-a996-785bfd793c2d,2d885109-4c96-41c0-a996-785bfd793c2d,1,0,e870a1bd-0c08-4d1e-832a-357922983c19,e870a1bd-0c08-4d1e-832a-357922983c19,1,0,9f71aeac-f889-40dc-91bd-d670da4efd2b,9f71aeac-f889-40dc-91bd-d670da4efd2b,1,0,62f8a9b2-9e56-4d5c-a7e2-a85f5b27a5b7,62f8a9b2-9e56-4d5c-a7e2-a85f5b27a5b7,1,0,614ef0bd-3298-408b-bf71-37df8ee60702,614ef0bd-3298-408b-bf71-37df8ee60702,1,0,26ff1be6-f72a-456a-9dce-302029752603,26ff1be6-f72a-456a-9dce-302029752603,1,0,db850a08-0c99-4a57-9b04-38be64bd38fb,db850a08-0c99-4a57-9b04-38be64bd38fb,1,0,abeca127-5ae9-46af-a5e8-d6438fd68367,abeca127-5ae9-46af-a5e8-d6438fd68367,1,0,bce81631-9f6d-42b3-b4b6-2199afb08f2f,bce81631-9f6d-42b3-b4b6-2199afb08f2f,1,0,67d6878f-3e47-4142-8f98-c5a207f0b8a8,67d6878f-3e47-4142-8f98-c5a207f0b8a8,1,0,7f4b872f-0e50-49dd-984d-f5fc3ac3f2f0,7f4b872f-0e50-49dd-984d-f5fc3ac3f2f0,1,0,68636657-4d46-4c2a-9b2f-11521a55dfb4,68636657-4d46-4c2a-9b2f-11521a55dfb4,1,0,18a83f43-dc84-4f8a-9580-681b19f571c4,18a83f43-dc84-4f8a-9580-681b19f571c4,1,0,01c588b0-d0ce-4978-b04d-084e6a00fcc7,01c588b0-d0ce-4978-b04d-084e6a00fcc7,1,0,a23642d9-8c4f-44a5-8865-bfb286e47c55,a23642d9-8c4f-44a5-8865-bfb286e47c55,1,0,7b37e038-dcef-41e1-b6e7-ed73c6958415,7b37e038-dcef-41e1-b6e7-ed73c6958415,1,0,24df2d14-5ebf-4ded-ba14-5daee7a0c536,24df2d14-5ebf-4ded-ba14-5daee7a0c536,1,0,13d6e2e9-b268-4c1b-8b8b-30c5296cfe4c,13d6e2e9-b268-4c1b-8b8b-30c5296cfe4c,1,0,03bb028a-ee8c-411e-8382-653046f803c6,03bb028a-ee8c-411e-8382-653046f803c6,1,0,c4fa80ca-32d6-4a44-9fe2-7ffd67e1cb30,c4fa80ca-32d6-4a44-9fe2-7ffd67e1cb30,1,0,8aa73dfd-41ac-4f79-bf73-cd2da51b1232,8aa73dfd-41ac-4f79-bf73-cd2da51b1232,1,0,38d5ed93-133b-44fe-827a-69a6cfc0461d,38d5ed93-133b-44fe-827a-69a6cfc0461d,1,0,436a9c94-55f6-4463-becd-573189753ee7,436a9c94-55f6-4463-becd-573189753ee7,1,0,50bf4050-390c-419c-8f55-82a540093ab1,50bf4050-390c-419c-8f55-82a540093ab1,1,0,cae8a6f2-bbe9-4b73-b839-9bf8e5e2818d,cae8a6f2-bbe9-4b73-b839-9bf8e5e2818d,1,0,0a79ee40-e6d6-4dbf-8378-98c2ec1e8ef9,0a79ee40-e6d6-4dbf-8378-98c2ec1e8ef9,1,0,5148d263-de26-4c92-b090-ae59f42dfb05,5148d263-de26-4c92-b090-ae59f42dfb05,1,0,dbefe81f-85cf-4d84-9600-b359598c2543,dbefe81f-85cf-4d84-9600-b359598c2543,1,0,1a624a06-93b8-4d1f-8c14-2061e1e7927c,1a624a06-93b8-4d1f-8c14-2061e1e7927c,1,0,4ad54ca8-8e4a-4a35-9537-0395851fcdfb,4ad54ca8-8e4a-4a35-9537-0395851fcdfb,1,0,3e427c09-79ed-45f7-b4c9-d9aa7ccc01b2,3e427c09-79ed-45f7-b4c9-d9aa7ccc01b2,1,0,1a4dd1f5-c2d6-4e06-b428-ab7870810bf3,1a4dd1f5-c2d6-4e06-b428-ab7870810bf3,1,0,d5967e0f-03cd-4190-a702-7e9290eae1eb,d5967e0f-03cd-4190-a702-7e9290eae1eb,1,0,78fdbce8-8479-4edd-89c0-1bbaf8ffd482,78fdbce8-8479-4edd-89c0-1bbaf8ffd482,1,0,8eb18de5-8283-4d0c-bb11-b882e78181d5,8eb18de5-8283-4d0c-bb11-b882e78181d5,1,0,27b27cc5-d1ad-4a2a-bcf4-ec2ebb3eba43,27b27cc5-d1ad-4a2a-bcf4-ec2ebb3eba43,1,0,7059b117-714c-4710-aebe-76f88c4d41d5,7059b117-714c-4710-aebe-76f88c4d41d5,1,0,ea050453-4947-40dc-aa2a-503ddd1a235a,ea050453-4947-40dc-aa2a-503ddd1a235a,1,0,37d0e6d4-702e-46f5-ae87-4d393fa0c701,37d0e6d4-702e-46f5-ae87-4d393fa0c701,1,0,1e963c1e-f914-46e1-81d3-90d126fc6f8d,1e963c1e-f914-46e1-81d3-90d126fc6f8d,1,0,3a62d88e-9298-42c0-bd87-c749ecd01d19,3a62d88e-9298-42c0-bd87-c749ecd01d19,1,0,abbf064e-c6ea-4712-930b-a9fef42e0ee1,abbf064e-c6ea-4712-930b-a9fef42e0ee1,1,0,fc13dd80-ce44-4ed1-a9d7-dae44602b954,fc13dd80-ce44-4ed1-a9d7-dae44602b954,1,0,a3fe224e-c3ef-4e30-90e4-c4ed5eb11824,a3fe224e-c3ef-4e30-90e4-c4ed5eb11824,1,0,433b23a1-a863-4775-b2f2-1384e8f3cbbb,433b23a1-a863-4775-b2f2-1384e8f3cbbb,1,0,a1677c47-b9a4-427a-972d-9bb2293445b6,a1677c47-b9a4-427a-972d-9bb2293445b6,1,0,e4a328c0-e73b-465d-ae36-38e5a71690fa,e4a328c0-e73b-465d-ae36-38e5a71690fa,1,0,bf66612b-aec4-414b-bee6-9bcab145c7cc,bf66612b-aec4-414b-bee6-9bcab145c7cc,1,0,811f356f-554a-4a63-90b6-dedb5fec7c05,811f356f-554a-4a63-90b6-dedb5fec7c05,1,0,85bebd81-a355-4010-889b-cff6f72dafcb,85bebd81-a355-4010-889b-cff6f72dafcb,1,0,49521f36-fd1b-47dd-81cc-48b6fb651e22,49521f36-fd1b-47dd-81cc-48b6fb651e22,1,0,1491cc2a-b3be-4bcc-a181-ce68d4b5d4cb,1491cc2a-b3be-4bcc-a181-ce68d4b5d4cb,1,0,bc946e21-53bb-4332-8c63-7b0aa78826eb,bc946e21-53bb-4332-8c63-7b0aa78826eb,1,0,4be2bdad-9a43-4593-acbc-a02e9144a89f,4be2bdad-9a43-4593-acbc-a02e9144a89f,1,0,64a86d5d-f925-45ee-82da-76df1cc20729,64a86d5d-f925-45ee-82da-76df1cc20729,1,0,eb4455f2-a5a0-44fb-8302-7312bc32df66,eb4455f2-a5a0-44fb-8302-7312bc32df66,1,0,cd6d2ab5-8e5c-4db3-8c8c-0526046a9b68,cd6d2ab5-8e5c-4db3-8c8c-0526046a9b68,1,0,9f20e59e-7db8-466f-b965-7045fc3f1489,9f20e59e-7db8-466f-b965-7045fc3f1489,1,0,cb057756-d3f7-4c50-a9d0-bac9ca2abd46,cb057756-d3f7-4c50-a9d0-bac9ca2abd46,1,0,89ac3d39-1915-4e67-a4e4-5a67a155cb75,89ac3d39-1915-4e67-a4e4-5a67a155cb75,1,0,d27b637d-5a51-49ff-bf73-343891534586,d27b637d-5a51-49ff-bf73-343891534586,1,0,b5a073a2-54e2-47c9-b533-f75fd2c9f343,b5a073a2-54e2-47c9-b533-f75fd2c9f343,1,0,0c8571be-f9b6-4292-add9-980cfe7fa2ec,0c8571be-f9b6-4292-add9-980cfe7fa2ec,1,0,989b8ccd-bc05-48c1-9969-b3733028b65f,989b8ccd-bc05-48c1-9969-b3733028b65f,1,0,6c70b13d-f9d0-459f-8d38-c01c11f356f1,6c70b13d-f9d0-459f-8d38-c01c11f356f1,1,0,45ca19df-90f3-4143-a659-bc0cb97efee9,45ca19df-90f3-4143-a659-bc0cb97efee9,1,0,6fe997a3-d729-420b-b2b2-558e9a1031ee,6fe997a3-d729-420b-b2b2-558e9a1031ee,1,0,4e1b48b1-c998-4f99-94e7-50af22059bfa,4e1b48b1-c998-4f99-94e7-50af22059bfa,1,0,bbaed1bd-0eb7-4f2b-b844-ab79c1d0a091,bbaed1bd-0eb7-4f2b-b844-ab79c1d0a091,1,0,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,2e7fbea4-57ac-4633-bb39-8725e57bc7ba,1,0,83ae9b22-20ff-4e94-9282-19daf2274328,83ae9b22-20ff-4e94-9282-19daf2274328,1,0,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,dcad5d84-6643-4f0b-9e6e-73fe343db4a7,1,0,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,e1ca1374-6dad-46d3-bb72-b67f3e6b1809,1,0,a92b2b70-7e69-49d1-b921-c9d1b0718f94,a92b2b70-7e69-49d1-b921-c9d1b0718f94,1,0,d57a3300-0f9f-4fe5-b627-01c96b723053,d57a3300-0f9f-4fe5-b627-01c96b723053,1,0,ccfdf89b-f63e-4e46-b942-0d145695fdc6,ccfdf89b-f63e-4e46-b942-0d145695fdc6,1,0,6d40a555-9c20-4643-b689-2f61df772f78,6d40a555-9c20-4643-b689-2f61df772f78,1,0,19f690a3-d27b-43c1-94b7-585fc628da05,19f690a3-d27b-43c1-94b7-585fc628da05,1,0,d375fac5-098c-42b5-a0bd-9a4ae7516ada,d375fac5-098c-42b5-a0bd-9a4ae7516ada,1,0,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,29034f3e-d2eb-44e0-ac85-f2ffaf14eb90,1,0,ce65563d-03dc-46d8-96d4-c2d4ae2a2960,ce65563d-03dc-46d8-96d4-c2d4ae2a2960,1,0,5079f17e-dfd6-43f4-83fa-6ac408e5bd3b,5079f17e-dfd6-43f4-83fa-6ac408e5bd3b,1,0,7a4346c3-f1aa-4ce0-886e-76cd9abf563c,7a4346c3-f1aa-4ce0-886e-76cd9abf563c,1,0,cf783265-a4cb-436f-963a-1ff8220ae246,cf783265-a4cb-436f-963a-1ff8220ae246,1,0,3560f949-48f9-4fca-9fe2-81efc1ec0eee,3560f949-48f9-4fca-9fe2-81efc1ec0eee,1,0,662078f0-b75d-4c44-896f-7b7f74fd1ed4,662078f0-b75d-4c44-896f-7b7f74fd1ed4,1,0,4fa11304-fbd4-4c90-909d-5024283a6868,4fa11304-fbd4-4c90-909d-5024283a6868,1,0,207290c2-5221-48ad-99aa-bb0f7955df3f,207290c2-5221-48ad-99aa-bb0f7955df3f,1,0,162137ef-dea2-4ace-9e67-897dad0e7c3d,162137ef-dea2-4ace-9e67-897dad0e7c3d,1,0,d91a016e-cca9-4976-9c53-2c96fa95cf1a,d91a016e-cca9-4976-9c53-2c96fa95cf1a,1,0,012fb2f1-1c15-4800-8968-78a90c2a1348,012fb2f1-1c15-4800-8968-78a90c2a1348,1,0,a29a36aa-3c90-4be9-8ffc-20237721d1d0,a29a36aa-3c90-4be9-8ffc-20237721d1d0,1,0,aec8f9e6-d177-45f5-ba55-2d662428c2ae,aec8f9e6-d177-45f5-ba55-2d662428c2ae,1,0,b0bf8af5-d824-459c-bc40-17495406af3c,b0bf8af5-d824-459c-bc40-17495406af3c,1,0,7dfdd08b-7cd9-480c-829d-97f5e7152eec,7dfdd08b-7cd9-480c-829d-97f5e7152eec,1,0,64752b64-80ae-4537-986a-d61423dc546b,64752b64-80ae-4537-986a-d61423dc546b,1,0,2c37e123-ea35-4501-93e1-2fa295444bec,2c37e123-ea35-4501-93e1-2fa295444bec,1,0,c8bd3ac8-3b49-46bb-aadd-7270ad2868fc,c8bd3ac8-3b49-46bb-aadd-7270ad2868fc,1,0,a997a430-3ea8-4fde-9f53-7b507a04c215,a997a430-3ea8-4fde-9f53-7b507a04c215,1,0,f648e19d-026b-4fa7-8e70-1866b27b94f8,f648e19d-026b-4fa7-8e70-1866b27b94f8,1,0,d32081fc-47d3-4e66-837e-705c94ba8ca8,d32081fc-47d3-4e66-837e-705c94ba8ca8,1,0,69c207c2-7699-4467-b127-286ecd6d0f29,69c207c2-7699-4467-b127-286ecd6d0f29,1,0,70a06a02-8fb8-4a39-9e50-b7c27c41f49f,70a06a02-8fb8-4a39-9e50-b7c27c41f49f,1,0,810755ad-e921-4250-a0d3-af77fe1b6c79,810755ad-e921-4250-a0d3-af77fe1b6c79,1,0,f0f2f6de-b5ca-416c-b2e7-70a2df0993a1,f0f2f6de-b5ca-416c-b2e7-70a2df0993a1,1,0,99a40d71-f47a-4c04-9137-d297eda2fad9,99a40d71-f47a-4c04-9137-d297eda2fad9,1,0,33fa908a-5516-43c8-94d3-28c60eba8d66,33fa908a-5516-43c8-94d3-28c60eba8d66,1,0,f3750ea4-5f9e-4ab3-9495-3f182ecff407,f3750ea4-5f9e-4ab3-9495-3f182ecff407,1,0,14002d51-87d4-4647-92ef-a9b1935cb666,14002d51-87d4-4647-92ef-a9b1935cb666,1,0,e941a39d-1f3c-4e6e-af17-75f92a15dd40,e941a39d-1f3c-4e6e-af17-75f92a15dd40,1,0,d9bbedcb-4872-4183-83c2-6c2aae9634b0,d9bbedcb-4872-4183-83c2-6c2aae9634b0,1,0,72c695c3-66f6-4aa8-8a39-737ec6967a1d,72c695c3-66f6-4aa8-8a39-737ec6967a1d,1,0,2beef1e0-7a59-407e-b454-ee2ec38ca4b3,2beef1e0-7a59-407e-b454-ee2ec38ca4b3,1,0,b57a1d6f-8375-4d57-a2c1-f53e25318ddb,b57a1d6f-8375-4d57-a2c1-f53e25318ddb,1,0,d5d11480-d5c7-4569-80c1-f872655ff084,d5d11480-d5c7-4569-80c1-f872655ff084,1,0,b1e45d36-08e9-430e-976b-03e6e3320c6a,b1e45d36-08e9-430e-976b-03e6e3320c6a,1,0,b5384eb7-40e4-4437-b96b-eab9b7b5b8f2,b5384eb7-40e4-4437-b96b-eab9b7b5b8f2,1,0,8e21374f-5a65-406c-856d-2040607da4bc,8e21374f-5a65-406c-856d-2040607da4bc,1,0,7904d64a-2c30-4434-8924-b4817b727db9,7904d64a-2c30-4434-8924-b4817b727db9,1,0,c550a43a-1240-4f29-9045-a262f37f703a,c550a43a-1240-4f29-9045-a262f37f703a,1,0,86b1feed-ed65-4672-a49a-c52282b40be3,86b1feed-ed65-4672-a49a-c52282b40be3,1,0,85ac42d7-400a-4469-8fcd-e6a14f258792,85ac42d7-400a-4469-8fcd-e6a14f258792,1,0,ec681c28-661c-43e3-9285-9fc606f2d24c,ec681c28-661c-43e3-9285-9fc606f2d24c,1,0,be0fbbfc-5873-41a6-80ef-35ed1b8adb4c,be0fbbfc-5873-41a6-80ef-35ed1b8adb4c,1,0,413c2d03-f717-4503-9723-c605114b2799,413c2d03-f717-4503-9723-c605114b2799,1,0,1b63cbbb-77b1-4e78-a4c7-ddea8ea7294d,1b63cbbb-77b1-4e78-a4c7-ddea8ea7294d,1,0,3e5f5167-8978-4191-b0f6-6a262b848b95,3e5f5167-8978-4191-b0f6-6a262b848b95,1,0,ae3aef9e-df3b-4ebc-912d-2bc581063745,ae3aef9e-df3b-4ebc-912d-2bc581063745,1,0,4ae40e81-f2ab-4ac4-89e5-73545db42de9,4ae40e81-f2ab-4ac4-89e5-73545db42de9,1,0,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,1,0,a8c09e65-6e10-4772-b264-6ead83d52fe3,a8c09e65-6e10-4772-b264-6ead83d52fe3,1,0,8850b346-364d-457b-9554-acce031394fe,8850b346-364d-457b-9554-acce031394fe,1,0,797f4377-ee0f-4a2d-be90-a74ac10ef682,797f4377-ee0f-4a2d-be90-a74ac10ef682,1,0,f401c5be-2698-452d-8908-08faad120a47,f401c5be-2698-452d-8908-08faad120a47,1,0,98de52ae-dfab-480b-a167-4cf2a3962ed1,98de52ae-dfab-480b-a167-4cf2a3962ed1,1,0,efa5c204-b827-4860-aadd-3737c8fc5f6b,efa5c204-b827-4860-aadd-3737c8fc5f6b,1,0,ef438c21-9d10-4116-8fc7-03927062db59,ef438c21-9d10-4116-8fc7-03927062db59,1,0,7ffa25d5-5199-4e08-af76-969c17709ad4,7ffa25d5-5199-4e08-af76-969c17709ad4,1,0,a93180c6-fcb7-4b28-b954-d2f2831f1832,a93180c6-fcb7-4b28-b954-d2f2831f1832,1,0,b46fff37-cc0e-4ff4-8fde-6bd9d9b895ec,b46fff37-cc0e-4ff4-8fde-6bd9d9b895ec,1,0,eeeede5e-9534-498e-b820-87a5f919c068,eeeede5e-9534-498e-b820-87a5f919c068,1,0,8b1f81e0-1eb0-4aae-9bb6-b25d97a6c9c2,8b1f81e0-1eb0-4aae-9bb6-b25d97a6c9c2,1,0,55ecc3a2-3d94-4201-8a29-06469e0b1a17,55ecc3a2-3d94-4201-8a29-06469e0b1a17,1,0,4123c760-0e30-48d0-8211-1db84f53314b,4123c760-0e30-48d0-8211-1db84f53314b,1,0,a086da23-29d8-4d02-846b-5d171e14d730,a086da23-29d8-4d02-846b-5d171e14d730,1,0,9ec76352-5e4a-485d-bd93-eb739869e406,9ec76352-5e4a-485d-bd93-eb739869e406,1,0,6d3619e3-d125-44b6-9b51-ebf9505b04d2,6d3619e3-d125-44b6-9b51-ebf9505b04d2,1,0,9d2c802c-c946-44e5-b9bc-13ef534968cd,9d2c802c-c946-44e5-b9bc-13ef534968cd,1,0,8046b46e-d855-4a80-8270-72a104e4a941,8046b46e-d855-4a80-8270-72a104e4a941,1,0,4524e15c-4c35-4e1d-910f-5859b5702dff,4524e15c-4c35-4e1d-910f-5859b5702dff,1,0,e200002c-9f3a-49d9-bba1-dca11555511d,e200002c-9f3a-49d9-bba1-dca11555511d,1,0,efa0f74a-7ec0-42f4-a948-7ce3890559d8,efa0f74a-7ec0-42f4-a948-7ce3890559d8,1,0,97e11b91-9590-44b3-afcd-f465ce23e509,97e11b91-9590-44b3-afcd-f465ce23e509,1,0,301c1fc5-ca0a-4fac-ac51-c2e42fb3c2a8,301c1fc5-ca0a-4fac-ac51-c2e42fb3c2a8,1,0,6f2d0c99-3354-4924-959c-59320e1b0063,6f2d0c99-3354-4924-959c-59320e1b0063,1,0,aee8df57-983b-440d-9c02-cace7e632f15,aee8df57-983b-440d-9c02-cace7e632f15,1,0,6e9648dd-388f-4563-88b0-feddc6e9ce8e,6e9648dd-388f-4563-88b0-feddc6e9ce8e,1,0,eb975d96-d230-4454-8f14-6bf5522e06d2,eb975d96-d230-4454-8f14-6bf5522e06d2,1,0,6aa6513c-6f3b-4897-96fd-4a08aeb9eb1e,6aa6513c-6f3b-4897-96fd-4a08aeb9eb1e,1,0,c29d3ae4-9458-46b8-a09b-012e5d435d43,c29d3ae4-9458-46b8-a09b-012e5d435d43,1,0,dad62d28-168c-4659-a800-e484772d9003,dad62d28-168c-4659-a800-e484772d9003,1,0,4cada7d2-f1b1-4914-95fc-c5e1431c13a7,4cada7d2-f1b1-4914-95fc-c5e1431c13a7,1,0,ecbe1ead-4e4b-49db-b7f1-c097c9df2fb9,ecbe1ead-4e4b-49db-b7f1-c097c9df2fb9,1,0,be026f77-285b-4470-8a4e-c68f6e9859e2,be026f77-285b-4470-8a4e-c68f6e9859e2,1,0,a9d54a18-9c35-471b-ad8b-44ba743b7977,a9d54a18-9c35-471b-ad8b-44ba743b7977,1,0,4f75014c-831f-4de5-8b6e-94874ce274ce,4f75014c-831f-4de5-8b6e-94874ce274ce,1,0,c9f74923-95e1-4f5c-8649-3543fae6b116,c9f74923-95e1-4f5c-8649-3543fae6b116,1,0,b00616bb-406d-4e8e-80a0-f0c14cc850c0,b00616bb-406d-4e8e-80a0-f0c14cc850c0,1,0,d60aae4f-7c61-416c-bbc9-e7c95d757848,d60aae4f-7c61-416c-bbc9-e7c95d757848,1,0,c8a0da4e-0b0f-4def-a61e-5f6e04468e01,c8a0da4e-0b0f-4def-a61e-5f6e04468e01,1,0,a55e9aef-79ad-4cb6-b80a-c7f769bebbea,a55e9aef-79ad-4cb6-b80a-c7f769bebbea,1,0,c26283d2-dda1-438c-a444-05bdd2797691,c26283d2-dda1-438c-a444-05bdd2797691,1,0,3ae1ecf1-e062-4e89-96d6-9ac88bbc8aa8,3ae1ecf1-e062-4e89-96d6-9ac88bbc8aa8,1,0,62f9c12c-1837-4320-99b0-8f7ae44af735,62f9c12c-1837-4320-99b0-8f7ae44af735,1,0,ae352e0c-9f89-4ed9-ab45-f4e9040f7858,ae352e0c-9f89-4ed9-ab45-f4e9040f7858,1,0,853a5fdc-3621-442c-abd3-2fd266fddd84,853a5fdc-3621-442c-abd3-2fd266fddd84,1,0,daaff4d7-bc0b-4ab5-a277-fc02472f76ed,daaff4d7-bc0b-4ab5-a277-fc02472f76ed,1,0,bc3183cb-8691-4fa5-b154-3645f3cd8944,bc3183cb-8691-4fa5-b154-3645f3cd8944,1,0,33c9ebee-7b42-4010-a5c9-71ca7479d95c,33c9ebee-7b42-4010-a5c9-71ca7479d95c,1,0,cf202dca-e0ee-45c8-8792-46fc2f126e68,cf202dca-e0ee-45c8-8792-46fc2f126e68,1,0,be150cca-e977-4663-af19-79d8b0f91b3d,be150cca-e977-4663-af19-79d8b0f91b3d,1,0,f12857d7-bcae-4c6c-9169-2a0b1f9e9e6a,f12857d7-bcae-4c6c-9169-2a0b1f9e9e6a,1,0,1c13d12d-5c96-4d96-a07d-ec4a766c86ac,1c13d12d-5c96-4d96-a07d-ec4a766c86ac,1,0,018390b5-06d9-4d04-abad-1de1ccf0843c,018390b5-06d9-4d04-abad-1de1ccf0843c,1,0,a8b828da-6172-4732-a01e-c5127175cd60,a8b828da-6172-4732-a01e-c5127175cd60,1,0,6279f4bc-b77f-4618-9ce3-d50efc798871,6279f4bc-b77f-4618-9ce3-d50efc798871,1,0,fb05b40b-8cf5-4821-afcb-f00a77458a9b,fb05b40b-8cf5-4821-afcb-f00a77458a9b,1,0,37c68cb5-6aaf-4e57-b68c-1a5b5db252b7,37c68cb5-6aaf-4e57-b68c-1a5b5db252b7,1,0,3967bec7-9af5-40bf-9e22-a0f6b13cc795,3967bec7-9af5-40bf-9e22-a0f6b13cc795,1,0,eab9da25-07b6-4c60-9a83-08e8277d0ae7,eab9da25-07b6-4c60-9a83-08e8277d0ae7,1,0,b79ed991-f5d9-42b6-8f0b-0df49e550ced,b79ed991-f5d9-42b6-8f0b-0df49e550ced,1,0,ac50e8d6-fe0b-45a4-b0dd-cc81d7fd7357,ac50e8d6-fe0b-45a4-b0dd-cc81d7fd7357,1,0,f58a3df1-ddf3-45c8-b470-cc026cb0537f,f58a3df1-ddf3-45c8-b470-cc026cb0537f,1,0,c4e9954b-59d8-46e3-ada8-bda66e8aaceb,c4e9954b-59d8-46e3-ada8-bda66e8aaceb,1,0,9ac5a405-4eb7-4013-8bbd-5d1b6d0929ab,9ac5a405-4eb7-4013-8bbd-5d1b6d0929ab,1,0,568c16cf-c3fc-4e16-8f05-e00be8e136c2,568c16cf-c3fc-4e16-8f05-e00be8e136c2,1,0,b36ad726-fb8f-4974-986a-33f997e3fc64,b36ad726-fb8f-4974-986a-33f997e3fc64,1,0,e196c73e-c09b-4aed-b403-2b97a8bf6e47,e196c73e-c09b-4aed-b403-2b97a8bf6e47,1,0,27fdab52-f1ab-48d3-b117-06afcf319eaa,27fdab52-f1ab-48d3-b117-06afcf319eaa,1,0,bf3530c3-3244-4528-a846-ea175af53804,bf3530c3-3244-4528-a846-ea175af53804,1,0,5bdfff5e-f04c-4fe3-ae92-10a99da3a6a8,5bdfff5e-f04c-4fe3-ae92-10a99da3a6a8,1,0,3d0ae989-2d16-42df-a442-7bde817ec1b2,3d0ae989-2d16-42df-a442-7bde817ec1b2,1,0,f3d1adac-197a-4194-89fe-7178f8ccd788,f3d1adac-197a-4194-89fe-7178f8ccd788,1,0,7077b04e-75c0-414d-b295-d28aeda2bdd4,7077b04e-75c0-414d-b295-d28aeda2bdd4,1,0,c8330995-22f4-4be6-beff-64f87c6f09ed,c8330995-22f4-4be6-beff-64f87c6f09ed,1,0,56b6b570-764b-4220-9b5f-70753b0fadbd,56b6b570-764b-4220-9b5f-70753b0fadbd,1,0,588f481e-4486-4649-b584-08f7e3ab8cde,588f481e-4486-4649-b584-08f7e3ab8cde,1,0,5dfe90e2-cb1a-4510-b22c-af94ca06dd7b,5dfe90e2-cb1a-4510-b22c-af94ca06dd7b,1,0,70c217b8-ddf0-4b7c-80b0-f5a76dbbcec7,70c217b8-ddf0-4b7c-80b0-f5a76dbbcec7,1,0,74e3e5c4-7dec-4fde-975b-01e7f4002a87,74e3e5c4-7dec-4fde-975b-01e7f4002a87,1,0,689b382f-308e-4558-817c-819ceb59f61e,689b382f-308e-4558-817c-819ceb59f61e,1,0,ed96d8d2-3164-4a85-8408-06d9a1f0c2ce,ed96d8d2-3164-4a85-8408-06d9a1f0c2ce,1,0,2482e800-50c9-4c7c-909f-18ba2e30ff31,2482e800-50c9-4c7c-909f-18ba2e30ff31,1,0,fdb20bf0-6dc5-4ce6-acdc-4def1cc23a67,fdb20bf0-6dc5-4ce6-acdc-4def1cc23a67,1,0,b528d506-be3f-47f2-880b-af7093c71649,b528d506-be3f-47f2-880b-af7093c71649,1,0,7f3f55d5-b1f5-4b6b-b189-ff5715341489,7f3f55d5-b1f5-4b6b-b189-ff5715341489,1,0,5a32d342-8b80-4069-98c3-cf392f473b06,5a32d342-8b80-4069-98c3-cf392f473b06,1,0,888c5a1f-5329-40da-9102-eac26657a7d9,888c5a1f-5329-40da-9102-eac26657a7d9,1,0,75daf728-ee8c-41a4-a249-8db123bb802e,75daf728-ee8c-41a4-a249-8db123bb802e,1,0,0b154103-47b5-4c54-a4ea-60aa41190940,0b154103-47b5-4c54-a4ea-60aa41190940,1,0,1eb52621-8915-46f4-b1bb-db04bb58b065,1eb52621-8915-46f4-b1bb-db04bb58b065,1,0,d0fcb0f9-6d6c-444a-8b32-4287a963f72b,d0fcb0f9-6d6c-444a-8b32-4287a963f72b,1,0,1d583292-1820-498a-890a-66f5b154e698,1d583292-1820-498a-890a-66f5b154e698,1,0,a3b0430c-743d-4351-a928-9be3c8db9a0b,a3b0430c-743d-4351-a928-9be3c8db9a0b,1,0,f094241b-ae82-426c-92b0-18be87566ad6,f094241b-ae82-426c-92b0-18be87566ad6,1,0,1a570b62-6644-4427-a432-c6823c7d522a,1a570b62-6644-4427-a432-c6823c7d522a,1,0,7bae5ebc-85a5-43eb-8dfa-bc75cd54c013,7bae5ebc-85a5-43eb-8dfa-bc75cd54c013,1,0,0b2c1689-22ba-4ed6-80f3-10475f11db1a,0b2c1689-22ba-4ed6-80f3-10475f11db1a,1,0,46bbfede-5b4d-44fc-90ec-f6f3598340c4,46bbfede-5b4d-44fc-90ec-f6f3598340c4,1,0,acc6358f-be29-4931-8ed2-b769a48cee08,acc6358f-be29-4931-8ed2-b769a48cee08,1,0,51c58d33-32f7-401a-84d4-5a942129fbd5,51c58d33-32f7-401a-84d4-5a942129fbd5,1,0,07d5174e-8422-471f-a435-bf51d5af1bf0,07d5174e-8422-471f-a435-bf51d5af1bf0,1,0,e58672f5-84c9-462f-b5a6-7f15a6f2f797,e58672f5-84c9-462f-b5a6-7f15a6f2f797,1,0,4fbb189a-ecf0-483f-a904-0c34b1c23433,4fbb189a-ecf0-483f-a904-0c34b1c23433,1,0,2a34c9e8-eb4f-4600-988e-594ac7399abc,2a34c9e8-eb4f-4600-988e-594ac7399abc,1,0,256618cc-0956-4cda-9691-e4ced68a791f,256618cc-0956-4cda-9691-e4ced68a791f,1,0,e20593fd-b3e3-41d2-8c8d-97b5d6148fa4,e20593fd-b3e3-41d2-8c8d-97b5d6148fa4,1,0,4b9771a7-b924-4e61-8468-4633e3c54706,4b9771a7-b924-4e61-8468-4633e3c54706,1,0,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,bc846fc8-3c67-45f8-9c5c-69bf1190baf9,1,0,667de710-cee5-4a97-8434-641d199f3b68,667de710-cee5-4a97-8434-641d199f3b68,1,0,e9a2320b-71a1-4974-8b5a-1990062ec7df,e9a2320b-71a1-4974-8b5a-1990062ec7df,1,0,2e459a7c-c448-4db4-ae21-e59646527030,2e459a7c-c448-4db4-ae21-e59646527030,1,0,891194d9-9f02-4b22-89cd-941181c83ecb,891194d9-9f02-4b22-89cd-941181c83ecb,1,0,a4d3b738-9ae3-46a9-ac21-7ac3d081c727,a4d3b738-9ae3-46a9-ac21-7ac3d081c727,1,0,f6e85eeb-d81b-4526-9a33-ab77bd447236,f6e85eeb-d81b-4526-9a33-ab77bd447236,1,0,470e37fe-d149-4007-b397-12fc84f93041,470e37fe-d149-4007-b397-12fc84f93041,1,0,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,f8d9068d-8a4e-4b23-b5ca-5b9ddce1f60f,1,0,7175cfa0-885c-4807-98ec-af255dcd55d9,7175cfa0-885c-4807-98ec-af255dcd55d9,1,0,f5b66759-8102-4cba-a3fd-ee96db5bc809,f5b66759-8102-4cba-a3fd-ee96db5bc809,1,0,af6bccbb-a6cb-41ee-bc4e-f2d6a5e0f419,af6bccbb-a6cb-41ee-bc4e-f2d6a5e0f419,1,0,d08679db-f83f-476e-b8c4-f3f52c3cf6fd,d08679db-f83f-476e-b8c4-f3f52c3cf6fd,1,0,fad0898f-5769-46ab-bc5e-301924b851a0,fad0898f-5769-46ab-bc5e-301924b851a0,1,0,e0227e4b-be22-4614-8980-5d573fae705d,e0227e4b-be22-4614-8980-5d573fae705d,1,0,7a7b7882-a4c1-40c8-a807-cb2d71d054cc,7a7b7882-a4c1-40c8-a807-cb2d71d054cc,1,0,6f36007b-04dc-4007-abf7-e20fbd126b97,6f36007b-04dc-4007-abf7-e20fbd126b97,1,0,791dbdee-56f6-4fe3-ada4-965c9111d69e,791dbdee-56f6-4fe3-ada4-965c9111d69e,1,0,66ef1631-277b-4c22-99d7-1434b4dbbb3f,66ef1631-277b-4c22-99d7-1434b4dbbb3f,1,0,aa6444a8-6c17-4207-a623-9b734e08e30e,aa6444a8-6c17-4207-a623-9b734e08e30e,1,0,898535ff-50cd-464a-aadc-5e4f9de15b04,898535ff-50cd-464a-aadc-5e4f9de15b04,1,0,385e209d-65aa-43b1-8591-f92544882740,385e209d-65aa-43b1-8591-f92544882740,1,0,7cfa5a37-b9f8-43e4-ae33-e3a7251dd052,7cfa5a37-b9f8-43e4-ae33-e3a7251dd052,1,0,2f8a5b9d-ab86-492b-85d1-5a28535b2ebc,2f8a5b9d-ab86-492b-85d1-5a28535b2ebc,1,0,737f6f1b-9ffc-4916-b378-7321eab1f886,737f6f1b-9ffc-4916-b378-7321eab1f886,1,0,8381bc76-0e0f-4196-9911-ec05730cb1c9,8381bc76-0e0f-4196-9911-ec05730cb1c9,1,0,01dedf5b-2cce-4d24-81ea-2e3af82f5794,01dedf5b-2cce-4d24-81ea-2e3af82f5794,1,0,771a1900-46be-49fe-a02d-584780de8363,771a1900-46be-49fe-a02d-584780de8363,1,0,f81b1f2d-6fde-4861-8fee-1dbe6acf3985,f81b1f2d-6fde-4861-8fee-1dbe6acf3985,1,0,b62eecf6-6ee3-4a70-a4d6-3f064ae35c43,b62eecf6-6ee3-4a70-a4d6-3f064ae35c43,1,0,9bf2525c-e8fc-44e6-ac14-7df3208dbb0f,9bf2525c-e8fc-44e6-ac14-7df3208dbb0f,1,0,a2faa3f8-5064-4fbf-a90e-26d15c021cd3,a2faa3f8-5064-4fbf-a90e-26d15c021cd3,1,0,527ea8ca-e723-454a-8e9e-f2e7a38e62ee,527ea8ca-e723-454a-8e9e-f2e7a38e62ee,1,0,ef257b20-da10-4cda-8b9d-7de2d68a2f71,ef257b20-da10-4cda-8b9d-7de2d68a2f71,1,0,de0d41b7-acc0-4ebc-8933-d6b5ad351860,de0d41b7-acc0-4ebc-8933-d6b5ad351860,1,0,acd30e63-68dc-4ab2-a6fe-16eb69d09271,acd30e63-68dc-4ab2-a6fe-16eb69d09271,1,0,04013c34-8d59-4f87-b272-732d5a6dd675,04013c34-8d59-4f87-b272-732d5a6dd675,1,0,f9df9b6b-5051-46ef-bb1f-1974f41054a7,f9df9b6b-5051-46ef-bb1f-1974f41054a7,1,0,9ef5dd5e-1f26-4187-90a0-a3ac7aaabc1d,9ef5dd5e-1f26-4187-90a0-a3ac7aaabc1d,1,0,1a354069-07ea-40e0-bbac-e1b6232750c2,1a354069-07ea-40e0-bbac-e1b6232750c2,1,0,df31548b-0b8e-412b-999a-761970ae3c23,df31548b-0b8e-412b-999a-761970ae3c23,1,0,05135747-43e7-4b61-bc30-57b3289ea923,05135747-43e7-4b61-bc30-57b3289ea923,1,0,6d63728d-3384-4131-b890-1b82d14a04b7,6d63728d-3384-4131-b890-1b82d14a04b7,1,0,13b3c973-6be3-4898-89d5-20852cd14e46,13b3c973-6be3-4898-89d5-20852cd14e46,1,0,d978d078-4fd8-40b9-90c2-047cdaf94cba,d978d078-4fd8-40b9-90c2-047cdaf94cba,1,0,8640eacd-e6f9-4b0b-8511-c6ad2336ec6c,8640eacd-e6f9-4b0b-8511-c6ad2336ec6c,1,0,b374e22f-17f3-4186-af1f-fa35d1a7e559,b374e22f-17f3-4186-af1f-fa35d1a7e559,1,0,53555ee4-f99d-4935-a884-89313aa3ca6a,53555ee4-f99d-4935-a884-89313aa3ca6a,1,0,f38bb317-8a59-4786-be76-e1d4e534628d,f38bb317-8a59-4786-be76-e1d4e534628d,1,0,25741b39-1c6b-4851-8584-9711d25ef05a,25741b39-1c6b-4851-8584-9711d25ef05a,1,0,f4554046-493e-4960-94df-0a8b9d02f474,f4554046-493e-4960-94df-0a8b9d02f474,1,0,06abad33-2d69-4e8b-a16c-8aa0d4422d5a,06abad33-2d69-4e8b-a16c-8aa0d4422d5a,1,0,9222a6c0-b785-4811-bfb6-44ac44a55925,9222a6c0-b785-4811-bfb6-44ac44a55925,1,0,ea84021d-2431-44ad-a446-f1fb979c9e96,ea84021d-2431-44ad-a446-f1fb979c9e96,1,0,d86acdeb-fa70-4d1c-bd0c-1b4ea30c03dd,d86acdeb-fa70-4d1c-bd0c-1b4ea30c03dd,1,0,8fa21575-177f-4b7c-94b5-dfeefe737cb4,8fa21575-177f-4b7c-94b5-dfeefe737cb4,1,0,6da034af-0481-4a3c-aff9-c50ced6f21d4,6da034af-0481-4a3c-aff9-c50ced6f21d4,1,0,d07016c8-7d97-42cd-865b-85b49075adfb,d07016c8-7d97-42cd-865b-85b49075adfb,1,0,491a2337-1bf9-45c1-8ae6-95605ef41992,491a2337-1bf9-45c1-8ae6-95605ef41992,1,0,c3f2a760-610a-40e0-945b-1f9f6369444d,c3f2a760-610a-40e0-945b-1f9f6369444d,1,0,9202335d-50bb-4282-9438-24c7fb9cf637,9202335d-50bb-4282-9438-24c7fb9cf637,1,0,a62906e5-27f8-4e72-8769-9a3eed6997d7,a62906e5-27f8-4e72-8769-9a3eed6997d7,1,0,6c5d0ac3-6086-434c-812b-1c1158ecc574,6c5d0ac3-6086-434c-812b-1c1158ecc574,1,0,783536d7-c0db-44c9-96e8-58b57804d7c8,783536d7-c0db-44c9-96e8-58b57804d7c8,1,0,a8295435-c2c4-4aff-874b-7412556aa76d,a8295435-c2c4-4aff-874b-7412556aa76d,1,0,f6c4e24b-172b-4ba3-8e3e-988306ade660,f6c4e24b-172b-4ba3-8e3e-988306ade660,1,0,9baab24c-a5a3-46f4-ad17-a28d4a49f851,9baab24c-a5a3-46f4-ad17-a28d4a49f851,1,0,d1952319-0e42-4684-a386-fbe7c24526c2,d1952319-0e42-4684-a386-fbe7c24526c2,1,0,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,01cd59fc-8577-4b3c-9d69-6db75e81e7c4,1,0,83b47a9d-d44b-4c40-becd-df74f9cb2e91,83b47a9d-d44b-4c40-becd-df74f9cb2e91,1,0,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,d03e636e-ff88-4e96-bf3c-d795d10cbcb0,1,0,86e2a2eb-160f-4e93-a449-b2f726286d1b,86e2a2eb-160f-4e93-a449-b2f726286d1b,1,0,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,8e6e1f24-83bf-42c2-9eda-b3874c7910c3,1,0,364184c2-ec71-44be-b40c-ba719b4ab0e1,364184c2-ec71-44be-b40c-ba719b4ab0e1,1,0,7ef46c54-ec0c-4211-a750-e5949956b593,7ef46c54-ec0c-4211-a750-e5949956b593,1,0,04823681-875e-459a-b3cf-051c89527f38,04823681-875e-459a-b3cf-051c89527f38,1,0,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,8e115a0c-a17c-4d7e-bd2c-305fb53d09ca,1,0,38265f08-3301-40d1-b630-a319c983e826,38265f08-3301-40d1-b630-a319c983e826,1,0,5175c496-bac7-4c57-9628-793b727aecd0,5175c496-bac7-4c57-9628-793b727aecd0,1,0,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,1453309e-77d0-444d-ac3f-fd7c2cb65c0c,1,0,fc42df4a-93f0-461f-acfe-fea09158030f,fc42df4a-93f0-461f-acfe-fea09158030f,1,0,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,9f0a7909-0b97-48a7-964f-a52cb3c19c4e,1,0,6d002aef-00c9-4069-80df-153151218831,6d002aef-00c9-4069-80df-153151218831,1,0,4fec3a6c-5a99-4763-aa07-d5de8712559e,4fec3a6c-5a99-4763-aa07-d5de8712559e,1,0,968a1202-d271-43e0-bfd4-d38e49ceadd4,968a1202-d271-43e0-bfd4-d38e49ceadd4,1,0,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,c80e2ef7-93b6-4cef-806a-2dfcf2fd80e6,1,0,b3b4fbf1-cbf0-4ee2-a490-4d657693479b,b3b4fbf1-cbf0-4ee2-a490-4d657693479b,1,0,ea61e442-273e-4ce4-a806-8090893729ba,ea61e442-273e-4ce4-a806-8090893729ba,1,0,aef03c0b-2846-43b7-b382-9a51ec783e85,aef03c0b-2846-43b7-b382-9a51ec783e85,1,0,e7100f2b-d169-4635-ab87-7a2225ff12ee,e7100f2b-d169-4635-ab87-7a2225ff12ee,1,0,c0804a4a-64d5-457f-a542-8e5badccbdf1,c0804a4a-64d5-457f-a542-8e5badccbdf1,1,0,d6bd5459-6f95-4f9c-8d84-c67bdc716acf,d6bd5459-6f95-4f9c-8d84-c67bdc716acf,1,0,4a2d2790-debf-4dc2-8216-878d8808d161,4a2d2790-debf-4dc2-8216-878d8808d161,1,0,6dcbb379-d4f5-418a-a3ab-bb7c0e169058,6dcbb379-d4f5-418a-a3ab-bb7c0e169058,1,0,4507a92e-abb6-4329-88b2-3429bc694bc6,4507a92e-abb6-4329-88b2-3429bc694bc6,1,0,2694c1b4-536b-4187-adf6-0f8757aaae76,2694c1b4-536b-4187-adf6-0f8757aaae76,1,0,e523f88b-b3de-476e-a3cc-592970492dec,e523f88b-b3de-476e-a3cc-592970492dec,1,0,0e2107e2-8648-4b2e-9dfb-c23b1ff5b007,0e2107e2-8648-4b2e-9dfb-c23b1ff5b007,1,0,efb6b3b6-d57b-469f-a7c2-f4e0308d0c7f,efb6b3b6-d57b-469f-a7c2-f4e0308d0c7f,1,0,ea0843f4-60fb-4d44-abf4-0021867c636b,ea0843f4-60fb-4d44-abf4-0021867c636b,1,0,59aadc03-adbc-481f-89bc-d7f391789522,59aadc03-adbc-481f-89bc-d7f391789522,1,0,254f6ccd-0451-4231-91c9-4abe57b647be,254f6ccd-0451-4231-91c9-4abe57b647be,1,0,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,1e2d790c-0076-413a-b5fb-f25c01ab6ad5,1,0,0dcc537b-76b3-4e73-b060-6cbdcf6345db,0dcc537b-76b3-4e73-b060-6cbdcf6345db,1,0,ae662b53-e11e-4b59-be52-b9d4ab00c4a4,ae662b53-e11e-4b59-be52-b9d4ab00c4a4,1,0,ce55df94-71e4-46ac-9b3b-bdae5d336b0a,ce55df94-71e4-46ac-9b3b-bdae5d336b0a,1,0,7601fa7e-079a-4347-abea-e161b2d00783,7601fa7e-079a-4347-abea-e161b2d00783,1,0,ee84cb40-f82d-4558-91be-229d68ad9f4a,ee84cb40-f82d-4558-91be-229d68ad9f4a,1,0,101a7eff-9556-4165-879a-a7c8a852e236,101a7eff-9556-4165-879a-a7c8a852e236,1,0,01775932-3603-4efc-9235-abdb97490dea,01775932-3603-4efc-9235-abdb97490dea,1,0,7637844b-4059-4f8a-8436-b4f4e8cb4f74,7637844b-4059-4f8a-8436-b4f4e8cb4f74,1,0,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,b6bb4cbe-b6fa-4d28-b372-0b959951ad4d,1,0,0ee5b788-61dc-464b-86da-f985df7704b6,0ee5b788-61dc-464b-86da-f985df7704b6,1,0,1c2da2ac-e797-11e6-0489-a8667f21fde4,1c2da2ac-e797-11e6-0489-a8667f21fde4,1,0,2375c6a8-9799-4b7c-a48d-091a90c67693,2375c6a8-9799-4b7c-a48d-091a90c67693,1,0,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,3d3c3360-4502-4ad4-bbe9-35d4ba9b54b3,1,0,df7892fe-e796-11e6-0489-a8667f21fde4,df7892fe-e796-11e6-0489-a8667f21fde4,1,0,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,9b0671c6-6e92-42e6-9cf4-13d4be11f27d,1,0,63c6522f-be04-422a-b4f4-0f55f58b09a8,63c6522f-be04-422a-b4f4-0f55f58b09a8,1,0,be919dc1-a377-43e1-82e6-ce946cabdd55,be919dc1-a377-43e1-82e6-ce946cabdd55,1,0,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,6b17a0fc-4d6f-4189-9067-c58a95f04dd7,1,0,9ded532e-9e60-4895-a4c5-4ea6697aa83c,9ded532e-9e60-4895-a4c5-4ea6697aa83c,1,0,106c5159-ffc7-4059-b3e3-acf74326a44f,106c5159-ffc7-4059-b3e3-acf74326a44f,1,0,d39fd717-1a69-4fd3-889e-4fa9abefea1c,d39fd717-1a69-4fd3-889e-4fa9abefea1c,1,0,fae8b26c-e796-11e6-0489-a8667f21fde4,fae8b26c-e796-11e6-0489-a8667f21fde4,1,0,5b85e6df-7493-4201-97ad-2aea14de6006,5b85e6df-7493-4201-97ad-2aea14de6006,1,0,061e6c0f-ba52-40ec-96ad-2eba3eee3097,061e6c0f-ba52-40ec-96ad-2eba3eee3097,1,0,d77e3c65-e9fd-4ba7-885f-a8a2f4c827d2,d77e3c65-e9fd-4ba7-885f-a8a2f4c827d2,1,0,4fb86bf3-02ad-4f0e-85a9-98be6c350a06,4fb86bf3-02ad-4f0e-85a9-98be6c350a06,1,0,4840753b-e2e1-4e67-b35f-2f5eab7754f5,4840753b-e2e1-4e67-b35f-2f5eab7754f5,1,0,4095c9e7-83ab-4db9-a2d0-a9f4ef9ee53e,4095c9e7-83ab-4db9-a2d0-a9f4ef9ee53e,1,0,6ffd9c17-d90b-4d19-b337-0fbc2c717557,6ffd9c17-d90b-4d19-b337-0fbc2c717557,1,0,9a11a6bd-0c13-4be2-9e34-b12b7554f3c9,9a11a6bd-0c13-4be2-9e34-b12b7554f3c9,1,0,3bb83275-7a0e-420f-8c6b-028038f11a8c,3bb83275-7a0e-420f-8c6b-028038f11a8c,1,0,e1950a23-f6e7-48af-b78a-77aa61f08ece,e1950a23-f6e7-48af-b78a-77aa61f08ece,1,0,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,1cc3d7c4-9178-4a40-86ea-2bbc1f5aa69f,1,0,0a7d282e-45bb-4a87-b325-1659519867fb,0a7d282e-45bb-4a87-b325-1659519867fb,1,0,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,790735cf-f6e2-4b0d-bb16-c5b9ea95efae,1,0,5d726fa3-bde0-4d97-a577-415857bbb5c1,5d726fa3-bde0-4d97-a577-415857bbb5c1,1,0,f63d0e2d-4685-4ac5-b22c-1b83e3ab955f,f63d0e2d-4685-4ac5-b22c-1b83e3ab955f,1,0,49068231-202c-4ac6-a39a-69207cb597dd,49068231-202c-4ac6-a39a-69207cb597dd,1,0,5a470575-e012-42ad-9ad7-53930a8e843f,5a470575-e012-42ad-9ad7-53930a8e843f,1,0,5872d4ed-6503-422d-bcf9-63a8df3e777d,5872d4ed-6503-422d-bcf9-63a8df3e777d,1,0,e21cda29-2579-485e-a207-20b76f719c80,e21cda29-2579-485e-a207-20b76f719c80,1,0,1b232a57-2833-42c6-b318-38dae2af1ab2,1b232a57-2833-42c6-b318-38dae2af1ab2,1,0,007ade8c-b102-408b-b877-b531e046560b,007ade8c-b102-408b-b877-b531e046560b,1,0,a8dfea6c-0c21-456d-96ab-f4bb5d579b13,a8dfea6c-0c21-456d-96ab-f4bb5d579b13,1,0,305f1ef1-4f9c-40a2-a978-3a4c0ecf75d4,305f1ef1-4f9c-40a2-a978-3a4c0ecf75d4,1,0,eb69c41a-392d-43bb-9b67-a0adcb651b1e,eb69c41a-392d-43bb-9b67-a0adcb651b1e,1,0,93b01c88-48a2-4753-b443-0e9892395a8f,93b01c88-48a2-4753-b443-0e9892395a8f,1,0,0b7f8e05-bb34-47cc-9775-04362e814316,0b7f8e05-bb34-47cc-9775-04362e814316,1,0,e71e0297-3709-4247-933e-18a6350cbf39,e71e0297-3709-4247-933e-18a6350cbf39,1,0,0b32e372-c6ad-4dda-acd1-8b5d58537d37,0b32e372-c6ad-4dda-acd1-8b5d58537d37,1,0,602dac6f-abe6-407a-92d3-7f1613e5dda6,602dac6f-abe6-407a-92d3-7f1613e5dda6,1,0,db03a88b-2804-45c2-9089-7ddb87ef2f18,db03a88b-2804-45c2-9089-7ddb87ef2f18,1,0,df6417d1-c722-4a87-a543-5d2c31795b20,df6417d1-c722-4a87-a543-5d2c31795b20,1,0,526a85c9-3a8d-4044-adb9-fd0689c70601,526a85c9-3a8d-4044-adb9-fd0689c70601,1,0,c4203772-580c-4db1-9bde-8925faa90688,c4203772-580c-4db1-9bde-8925faa90688,1,0,f64a91c4-f5cb-4e8e-8387-9f242ce6de44,f64a91c4-f5cb-4e8e-8387-9f242ce6de44,1,0,dc024d33-1715-40da-9c00-443d25a31ebc,dc024d33-1715-40da-9c00-443d25a31ebc,1,0,d029aa93-fea4-40e4-8cfb-2dc96544829b,d029aa93-fea4-40e4-8cfb-2dc96544829b,1,0,f8f585d1-01a0-4892-8852-c692ffaa1344,f8f585d1-01a0-4892-8852-c692ffaa1344,1,0,35c237a7-71e1-415c-809d-e99babee4e0e,35c237a7-71e1-415c-809d-e99babee4e0e,1,0,2116119f-7637-45a1-8e59-c9149619413b,2116119f-7637-45a1-8e59-c9149619413b,1,0,43882a2c-b625-4cfb-8220-3d12bfee09e4,43882a2c-b625-4cfb-8220-3d12bfee09e4,1,0,90639fdb-144d-495a-a097-76c45107fc97,90639fdb-144d-495a-a097-76c45107fc97,1,0,24ce9257-6dcf-4ba6-839e-1e635c069e75,24ce9257-6dcf-4ba6-839e-1e635c069e75,1,0,ecb2048d-4c1d-4194-a728-604734683b3b,ecb2048d-4c1d-4194-a728-604734683b3b,1,0,b33e046c-b580-4c90-940d-71f38d9ceff2,b33e046c-b580-4c90-940d-71f38d9ceff2,1,0,c076b7fd-7e17-4811-82e7-047e2bf43bb0,c076b7fd-7e17-4811-82e7-047e2bf43bb0,1,0,84b28732-9001-4798-b613-35ea65c26cce,84b28732-9001-4798-b613-35ea65c26cce,1,0,77d8285f-a87b-4a4e-b6ee-85bcd54dee12,77d8285f-a87b-4a4e-b6ee-85bcd54dee12,1,0,f2ec9416-3830-4607-90f3-f77fc53c9c70,f2ec9416-3830-4607-90f3-f77fc53c9c70,1,0,3057de81-eb41-4161-9dc2-5445699906af,3057de81-eb41-4161-9dc2-5445699906af,1,0,984ed6c0-e25b-46ff-9b3c-6bc0370071da,984ed6c0-e25b-46ff-9b3c-6bc0370071da,1,0,35fe84b6-7d3c-4729-a75c-a5f3ef122124,35fe84b6-7d3c-4729-a75c-a5f3ef122124,1,0,f7d5815e-511e-48c2-bc31-f9987423439b,f7d5815e-511e-48c2-bc31-f9987423439b,1,0,f660bf92-7de1-4a22-9cea-777069e4679d,f660bf92-7de1-4a22-9cea-777069e4679d,1,0,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,1,0,8b0fb329-098b-46db-8766-bc034d6f20a8,8b0fb329-098b-46db-8766-bc034d6f20a8,1,0,c630e43c-98a6-4059-9b14-25d267410ba6,c630e43c-98a6-4059-9b14-25d267410ba6,1,0,d01089f3-427f-4624-955d-1a5a96098141,d01089f3-427f-4624-955d-1a5a96098141,1,0,6520d7f5-7326-4921-b8c1-6e6fbc56089c,6520d7f5-7326-4921-b8c1-6e6fbc56089c,1,0,766f2abe-1dfd-4e16-bffd-83f44d25d82a,766f2abe-1dfd-4e16-bffd-83f44d25d82a,1,0,0e7a34a8-ce5a-4767-8283-fd094e13d969,0e7a34a8-ce5a-4767-8283-fd094e13d969,1,0,20feb794-eb05-46a6-90e7-ca4e2376d7b2,20feb794-eb05-46a6-90e7-ca4e2376d7b2,1,0,8deb4f57-18fc-4db0-ad0f-82d60af3d80b,8deb4f57-18fc-4db0-ad0f-82d60af3d80b,1,0,2f484aa4-452a-46af-a707-a5a6917bc0db,2f484aa4-452a-46af-a707-a5a6917bc0db,1,0,fd6ff934-6f11-4182-b0cb-6926902d33c0,fd6ff934-6f11-4182-b0cb-6926902d33c0,1,0,315af891-2075-4833-a404-6c0f2004ee53,315af891-2075-4833-a404-6c0f2004ee53,1,0,5725db77-bfbf-4d85-9565-163b309a53ee,5725db77-bfbf-4d85-9565-163b309a53ee,1,0,99a7142c-b3c7-4221-abf8-6831a3cbc16e,99a7142c-b3c7-4221-abf8-6831a3cbc16e,1,0,d367a1a1-5a54-4bf9-96c7-d55667e2fb16,d367a1a1-5a54-4bf9-96c7-d55667e2fb16,1,0,2e09abe1-0934-42ae-970f-5e001c35c31a,2e09abe1-0934-42ae-970f-5e001c35c31a,1,0,587d48a3-5627-4481-b13e-c22740b57d8a,587d48a3-5627-4481-b13e-c22740b57d8a,1,0,1f3e3089-1e04-4147-8ece-aa96a76467dd,1f3e3089-1e04-4147-8ece-aa96a76467dd,1,0,22a213b5-ed72-4181-8ff8-89f860c87aa1,22a213b5-ed72-4181-8ff8-89f860c87aa1,1,0,4c56cbff-653e-4f16-b702-c77190d7eb7f,4c56cbff-653e-4f16-b702-c77190d7eb7f,1,0,172ff335-c7ae-4905-b705-2a1475b95713,172ff335-c7ae-4905-b705-2a1475b95713,1,0,db4c311d-ee62-4d47-ac31-5a20cadb7ed1,db4c311d-ee62-4d47-ac31-5a20cadb7ed1,1,0,1d852dc0-90c9-4568-84f9-b1d822573b6b,1d852dc0-90c9-4568-84f9-b1d822573b6b,1,0,24f85dbd-59be-4b8d-bea8-7ff8ddb7486a,24f85dbd-59be-4b8d-bea8-7ff8ddb7486a,1,0,c997f56c-ef9c-434e-bc4e-7fc5f885aaba,c997f56c-ef9c-434e-bc4e-7fc5f885aaba,1,0,37c8f5e1-3513-47f8-896d-a54d11b83dcd,37c8f5e1-3513-47f8-896d-a54d11b83dcd,1,0,9e07733c-39f0-491b-91e1-bf2782d957dd,9e07733c-39f0-491b-91e1-bf2782d957dd,1,0,cc584a1d-dc91-4693-a5c9-6e8c6607e9d8,cc584a1d-dc91-4693-a5c9-6e8c6607e9d8,1,0,5902d979-1235-4d5a-ace7-93261bdeb725,5902d979-1235-4d5a-ace7-93261bdeb725,1,0,5a090286-7969-44c9-815b-fc58aeb5d8d3,5a090286-7969-44c9-815b-fc58aeb5d8d3,1,0,8e87cf35-af54-4fa2-9428-460b765b282b,8e87cf35-af54-4fa2-9428-460b765b282b,1,0,73380bb1-bee3-4b73-a3df-1dbea99011d2,73380bb1-bee3-4b73-a3df-1dbea99011d2,1,0,8be29533-38de-413d-b420-7dac2e80af6c,8be29533-38de-413d-b420-7dac2e80af6c,1,0,82a77018-8e38-41dd-9d1f-3130bc29a707,82a77018-8e38-41dd-9d1f-3130bc29a707,1,0,4d75aaef-532e-4ed3-8153-083f04f05cc1,4d75aaef-532e-4ed3-8153-083f04f05cc1,1,0,3854a0ba-e156-4ba3-a301-b1a41ac386c4,3854a0ba-e156-4ba3-a301-b1a41ac386c4,1,0,f8136f59-ef0c-4c0f-8207-f7a4000e4f0c,f8136f59-ef0c-4c0f-8207-f7a4000e4f0c,1,0,c2321963-cd86-45ec-b323-3fdb5932da3a,c2321963-cd86-45ec-b323-3fdb5932da3a,1,0,d5af38bf-6261-4177-8f74-998a85f0ef39,d5af38bf-6261-4177-8f74-998a85f0ef39,1,0,42bbd9f7-ef72-440f-9eb1-fcb3bdc1d91e,42bbd9f7-ef72-440f-9eb1-fcb3bdc1d91e,1,0,c6a4d03d-f3b2-449c-8a2b-deb542dd2c99,c6a4d03d-f3b2-449c-8a2b-deb542dd2c99,1,0,4b714d9c-26f4-46e8-ac79-471522b3853b,4b714d9c-26f4-46e8-ac79-471522b3853b,1,0,411489de-f907-4d60-a776-64bb0aa12a0e,411489de-f907-4d60-a776-64bb0aa12a0e,1,0,58d9ba60-a0c7-405d-a76e-0b0a796daaf3,58d9ba60-a0c7-405d-a76e-0b0a796daaf3,1,0,9c47670e-9eb9-49ec-876c-cd545aaa093c,9c47670e-9eb9-49ec-876c-cd545aaa093c,1,0,f57e74e6-75e8-4136-911e-86793036a077,f57e74e6-75e8-4136-911e-86793036a077,1,0,8492ee20-3f15-45d8-b70d-19b5cd6f1ae3,8492ee20-3f15-45d8-b70d-19b5cd6f1ae3,1,0,3ba8c378-ef3d-4646-90b3-6d8078aa623e,3ba8c378-ef3d-4646-90b3-6d8078aa623e,1,0,b96b2e45-8fb3-4d48-ab53-d3bbf6ef0284,b96b2e45-8fb3-4d48-ab53-d3bbf6ef0284,1,0,5ac38b5a-92e5-47eb-b956-24d9f010cb9f,5ac38b5a-92e5-47eb-b956-24d9f010cb9f,1,0,d61ca454-505b-4fd6-be15-d7ed948a5ff6,d61ca454-505b-4fd6-be15-d7ed948a5ff6,1,0,c0f5bbe1-3247-4bbe-a28e-8c55748e7d42,c0f5bbe1-3247-4bbe-a28e-8c55748e7d42,1,0,2dd7eb87-8130-425a-be13-85235508cde6,2dd7eb87-8130-425a-be13-85235508cde6,1,0,8a62c997-4fda-4464-90bd-ab719161949f,8a62c997-4fda-4464-90bd-ab719161949f,1,0,28af52dd-3144-428b-956d-b6f27863ec4a,28af52dd-3144-428b-956d-b6f27863ec4a,1,0,8ac94328-2300-4681-9c35-fd7e2f830310,8ac94328-2300-4681-9c35-fd7e2f830310,1,0,da0ee165-1917-466b-ac5c-16c28e2318bb,da0ee165-1917-466b-ac5c-16c28e2318bb,1,0,4868cb2e-0892-42bc-9de1-73cb8a15a96f,4868cb2e-0892-42bc-9de1-73cb8a15a96f,1,0,e8b80879-33b3-4c45-ad68-1acabcf91faf,e8b80879-33b3-4c45-ad68-1acabcf91faf,1,0,4a87fafc-7ca7-478e-bb31-358c2b85fa92,4a87fafc-7ca7-478e-bb31-358c2b85fa92,1,0,239601eb-e8de-4d58-a32a-01ee52f6e698,239601eb-e8de-4d58-a32a-01ee52f6e698,1,0,11370667-bec5-4a2d-8aa1-97f4d795718f,11370667-bec5-4a2d-8aa1-97f4d795718f,1,0,2032162d-fbb5-4e6a-be72-cda79869b9ff,2032162d-fbb5-4e6a-be72-cda79869b9ff,1,0,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,95a8e790-25ef-4ef3-a44a-f150bf1ceb1f,1,0,10543f9a-4e3f-427a-b36a-9c66709dd6fb,10543f9a-4e3f-427a-b36a-9c66709dd6fb,1,0,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,973967e5-1702-4fb8-ba36-70fd5b3b7e7c,1,0,96ab5424-7be1-416d-b74d-d0c815726b1f,96ab5424-7be1-416d-b74d-d0c815726b1f,1,0,3714e794-ddef-4ad9-a933-6130bbc84545,3714e794-ddef-4ad9-a933-6130bbc84545,1,0,282b089c-7411-40d6-9a0a-ceaf6abb5586,282b089c-7411-40d6-9a0a-ceaf6abb5586,1,0,678188aa-76e7-49bc-a4be-1c55ccd625b1,678188aa-76e7-49bc-a4be-1c55ccd625b1,1,0,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,6c27eece-2f8e-48eb-b9c7-f9c414ee15bd,1,0,b3415b4a-d8de-4536-aa4b-82e75fd986ee,b3415b4a-d8de-4536-aa4b-82e75fd986ee,1,0,acc996ab-672a-4602-b7ad-8eee83557e61,acc996ab-672a-4602-b7ad-8eee83557e61,1,0,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,bf9e9c2f-e5dc-4f82-8e9a-7f35e3ad9a0b,1,0,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,371361b6-15fd-4e62-9f60-cc8ee3fbacf0,1,0,97745768-ed35-44f1-beba-abb8b28a29ae,97745768-ed35-44f1-beba-abb8b28a29ae,1,0,69364942-bcd1-4b06-9b57-fa59b4e7c552,69364942-bcd1-4b06-9b57-fa59b4e7c552,1,0,ab201c5f-4134-42cf-a528-c1c4df02f2d7,ab201c5f-4134-42cf-a528-c1c4df02f2d7,1,0,303fb7b5-6a23-40ea-ae12-b54f4ebae026,303fb7b5-6a23-40ea-ae12-b54f4ebae026,1,0,634cd26b-78f1-4446-8aad-b96ed16e5329,634cd26b-78f1-4446-8aad-b96ed16e5329,1,0,d8e62f1a-92ca-4971-9609-e79da798c083,d8e62f1a-92ca-4971-9609-e79da798c083,1,0,eb74ebf0-a9c6-4c4c-b279-5a46f40ea0d3,eb74ebf0-a9c6-4c4c-b279-5a46f40ea0d3,1,0,d5e1806b-9827-40ab-9cfa-23c22456d137,d5e1806b-9827-40ab-9cfa-23c22456d137,1,0,b57b186a-ec1e-46a2-87ae-6ba27793ebf6,b57b186a-ec1e-46a2-87ae-6ba27793ebf6,1,0,d24170d7-5477-4ec8-acd2-0de8bd2067d6,d24170d7-5477-4ec8-acd2-0de8bd2067d6,1,0,f047da82-7574-4da4-b54e-480195280a11,f047da82-7574-4da4-b54e-480195280a11,1,0,a469f018-da26-485f-87c3-f580321a34f0,a469f018-da26-485f-87c3-f580321a34f0,1,0,adcb0dca-d810-461e-8f45-1d3cd6ffad4d,adcb0dca-d810-461e-8f45-1d3cd6ffad4d,1,0,388f7571-8f1b-45c5-a8b8-45d648f2f5dd,388f7571-8f1b-45c5-a8b8-45d648f2f5dd,1,0,886df9ab-09b4-4c7a-bd44-6afeab68d831,886df9ab-09b4-4c7a-bd44-6afeab68d831,1,0,9e16edb6-d841-48fa-bfe1-f9aabdcf9e46,9e16edb6-d841-48fa-bfe1-f9aabdcf9e46,1,0,628de771-c19c-4474-989f-8fb6cd7756a2,628de771-c19c-4474-989f-8fb6cd7756a2,1,0,6b0ddefa-ee70-4b27-989f-e23c734ab943,6b0ddefa-ee70-4b27-989f-e23c734ab943,1,0,ee873280-28ea-41fb-af52-c10c2018cbe4,ee873280-28ea-41fb-af52-c10c2018cbe4,1,0,6789e57b-1293-442c-97d0-b8007367602e,6789e57b-1293-442c-97d0-b8007367602e,1,0,0f193c89-b664-448e-bed3-2147430367f7,0f193c89-b664-448e-bed3-2147430367f7,1,0,4c9b2506-75a8-47d3-a5d5-d946088ba14a,4c9b2506-75a8-47d3-a5d5-d946088ba14a,1,0,36eacaa1-2efd-49c0-82de-2f8972535bf2,36eacaa1-2efd-49c0-82de-2f8972535bf2,1,0,0a7e5d85-3f94-4d93-8478-6d34f3b3ea33,0a7e5d85-3f94-4d93-8478-6d34f3b3ea33,1,0,9f7b9fd8-4bdd-4492-abf7-09b3f7f23e16,9f7b9fd8-4bdd-4492-abf7-09b3f7f23e16,1,0,72ee9a03-a320-4e60-be04-0ee813ea567f,72ee9a03-a320-4e60-be04-0ee813ea567f,1,0,f6f52cc8-23a3-4402-b1eb-0e41584c802a,f6f52cc8-23a3-4402-b1eb-0e41584c802a,1,0,8398e065-8b4b-4901-b057-2a048776bafe,8398e065-8b4b-4901-b057-2a048776bafe,1,0,073c56ca-bf45-422d-957a-f9c57aeee4d0,073c56ca-bf45-422d-957a-f9c57aeee4d0,1,0,d73e084f-9201-40c8-8ad4-f61b6cbb47c9,d73e084f-9201-40c8-8ad4-f61b6cbb47c9,1,0,52f065fe-556a-47cd-82b1-c56d7894df30,52f065fe-556a-47cd-82b1-c56d7894df30,1,0,186efec4-1343-4234-a9b6-c8d8096faf76,186efec4-1343-4234-a9b6-c8d8096faf76,1,0,6b15631a-0c98-4771-ba87-9d6f5795df63,6b15631a-0c98-4771-ba87-9d6f5795df63,1,0,ed72e5ef-a8b9-404b-a8b4-cb587c7f3018,ed72e5ef-a8b9-404b-a8b4-cb587c7f3018,1,0,51d30e7e-54b4-40be-a5bc-46fec691a425,51d30e7e-54b4-40be-a5bc-46fec691a425,1,0,bdff2b56-efbc-44ce-8141-7df2b095de37,bdff2b56-efbc-44ce-8141-7df2b095de37,1,0,be158212-2b71-43b1-8dda-f34ea30f16e7,be158212-2b71-43b1-8dda-f34ea30f16e7,1,0,68598d98-0c59-4cda-b0b2-6901d3aff88b,68598d98-0c59-4cda-b0b2-6901d3aff88b,1,0,219c1375-f26e-4698-aa82-4b9d735df783,219c1375-f26e-4698-aa82-4b9d735df783,1,0,ff5121c1-7f11-48cd-a9df-3588cf9f6d21,ff5121c1-7f11-48cd-a9df-3588cf9f6d21,1,0,32012b27-1b43-49be-b9af-df0c877e7a4c,32012b27-1b43-49be-b9af-df0c877e7a4c,1,0,e97d5152-9e58-4a91-a691-b4d358f1c89d,e97d5152-9e58-4a91-a691-b4d358f1c89d,1,0,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,1de4d7ee-7ddd-44db-bf7f-1b99b653652c,1,0,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,dfe624ac-9f49-46dd-b821-1f1f5b5e0d15,1,0,296c478b-4103-46cb-9d14-97f59034ffd4,296c478b-4103-46cb-9d14-97f59034ffd4,1,0,fb918a68-f86d-46c0-9078-61d2b32b5aef,fb918a68-f86d-46c0-9078-61d2b32b5aef,1,0,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,9ca4d0c4-f5d3-4748-bf73-f3cd1bc4ac46,1,0,1ddfc773-4f3c-4764-978e-585aab4666de,1ddfc773-4f3c-4764-978e-585aab4666de,1,0,e424d122-1dbb-4545-975c-177997129f2e,e424d122-1dbb-4545-975c-177997129f2e,1,0,c83bc626-dfdd-4451-92b0-b53eed40f534,c83bc626-dfdd-4451-92b0-b53eed40f534,1,0,7b9b1d11-4f78-4113-8fca-1a3a30953aef,7b9b1d11-4f78-4113-8fca-1a3a30953aef,1,0,7f84cb85-c3e4-4b53-b829-3b1e216f978a,7f84cb85-c3e4-4b53-b829-3b1e216f978a,1,0,7e621ecc-7d2b-42bf-a502-f8e59de56b63,7e621ecc-7d2b-42bf-a502-f8e59de56b63,1,0,798fd445-d02e-4e97-890a-0283f33317cf,798fd445-d02e-4e97-890a-0283f33317cf,1,0,095583ca-010d-43ad-8c7a-8938fa4cb761,095583ca-010d-43ad-8c7a-8938fa4cb761,1,0,178d210c-e847-4805-a8d4-31acdf4983af,178d210c-e847-4805-a8d4-31acdf4983af,1,0,aa214d9f-23b1-4996-8a43-9010dceeb53d,aa214d9f-23b1-4996-8a43-9010dceeb53d,1,0,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,26a5527e-dc2b-45a4-a51c-b1dfb31fa8a2,1,0,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,aefc3149-90ee-4ccc-8fb6-b1f6096237f6,1,0,d9d103bd-1dd6-48a9-8869-6c8485705393,d9d103bd-1dd6-48a9-8869-6c8485705393,1,0,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,cf2f7e1f-9b0b-4ae9-9c94-99d80bf95eae,1,0,ff0e8487-bdbf-4b21-877e-00008c81bc09,ff0e8487-bdbf-4b21-877e-00008c81bc09,1,0,39c9f8ac-56a0-4057-8359-7228bf97184a,39c9f8ac-56a0-4057-8359-7228bf97184a,1,0,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,763fbb4c-cab2-4c71-ba16-7e2ce8c3dc97,1,0,2c0dd892-1d3e-4497-850b-080bdb9c59d8,2c0dd892-1d3e-4497-850b-080bdb9c59d8,1,0,3b727d49-c9ed-4d9e-af61-c13b9a170c75,3b727d49-c9ed-4d9e-af61-c13b9a170c75,1,0,1b264744-bdcd-4c5c-932b-0ac4b990dd78,1b264744-bdcd-4c5c-932b-0ac4b990dd78,1,0,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,a2dbf20e-1fe9-463d-8fd4-76ce2e4854d1,1,0,37bde288-8e02-4127-bd80-de8ae7590a14,37bde288-8e02-4127-bd80-de8ae7590a14,1,0,a9b8e517-78cd-4428-b2fc-9e16af0069d7,a9b8e517-78cd-4428-b2fc-9e16af0069d7,1,0,5c592024-c009-4674-bbb8-283669e673ef,5c592024-c009-4674-bbb8-283669e673ef,1,0,e76f16b9-77a0-4033-90d0-6e04e4494747,e76f16b9-77a0-4033-90d0-6e04e4494747,1,0,cfb221fc-8639-4e15-9a78-f7837d657a99,cfb221fc-8639-4e15-9a78-f7837d657a99,1,0,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,4e61c8c3-756e-4937-adf6-6a1e9a89fc6a,1,0,022147c1-1ebe-4c8d-b367-4c47115b101d,022147c1-1ebe-4c8d-b367-4c47115b101d,1,0,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,2975d4c8-90d8-4791-8bc2-4adaa328ddc0,1,0,fca6b230-a38e-4791-9cc5-3d215f79dc6f,fca6b230-a38e-4791-9cc5-3d215f79dc6f,1,0,04e87de4-940a-4533-8c81-8f145b201dc0,04e87de4-940a-4533-8c81-8f145b201dc0,1,0,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,573ef4f4-e9e6-4b7c-944d-30808a6a00b7,1,0,fa488af9-a5ec-47d8-8661-fa5058a60a6b,fa488af9-a5ec-47d8-8661-fa5058a60a6b,1,0,97cc84c6-3565-474c-a028-83acb5390446,97cc84c6-3565-474c-a028-83acb5390446,1,0,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,9bf07c3e-7fdf-4a4f-ab00-98c7668349bd,1,0,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,ebbf6957-6ff6-4dc2-9e20-23d1da091f05,1,0,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,9b80acf6-6bf0-42c4-abb3-2fa2fcf4088c,1,0,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,1dcec107-9d5f-4b69-ad65-cc4cb1f27a9c,1,0,b366d7eb-626c-4c0c-b4cc-c392763e6e94,b366d7eb-626c-4c0c-b4cc-c392763e6e94,1,0,4c7e24aa-726a-4595-82ad-ef1e525b14fa,4c7e24aa-726a-4595-82ad-ef1e525b14fa,1,0,aed2ceeb-cc0f-4bdc-bb94-2e15cd68aa96,aed2ceeb-cc0f-4bdc-bb94-2e15cd68aa96,1,0,04b5ae71-7fa4-4a64-b406-59dc603b80c5,04b5ae71-7fa4-4a64-b406-59dc603b80c5,1,0,f23a2023-f776-40db-8689-1fc3f7ebc482,f23a2023-f776-40db-8689-1fc3f7ebc482,1,0,1e7684f0-1b3b-4a32-8602-dd0672c5a800,1e7684f0-1b3b-4a32-8602-dd0672c5a800,1,0,ab178a93-8570-43b6-ae42-f34a7cc4f359,ab178a93-8570-43b6-ae42-f34a7cc4f359,1,0,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,4c82f31d-7a98-47dd-89dc-1846cb15bf3b,1,0,168e3189-2676-4cdb-bc9d-78d85df51faf,168e3189-2676-4cdb-bc9d-78d85df51faf,1,0,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,ecf1a87f-4ca4-4efb-a84c-b2db1b0e8829,1,0,470bbff8-20d0-475c-a61a-1a09ac14c2db,470bbff8-20d0-475c-a61a-1a09ac14c2db,1,0,6ea25680-c4db-4717-9498-62420ca16970,6ea25680-c4db-4717-9498-62420ca16970,1,0,55412118-700a-4a2d-b7c9-d3b7c0f4bd9a,55412118-700a-4a2d-b7c9-d3b7c0f4bd9a,1,0,14e20d48-635e-4c52-9099-e743323fc190,14e20d48-635e-4c52-9099-e743323fc190,1,0,c37a660e-16c5-495e-9486-e61bcb693fa0,c37a660e-16c5-495e-9486-e61bcb693fa0,1,0,8f44ebad-1160-474e-a566-fb9da55ffcba,8f44ebad-1160-474e-a566-fb9da55ffcba,1,0,11cf336e-7890-4972-bf71-32d7416ff647,11cf336e-7890-4972-bf71-32d7416ff647,1,0,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,4c4d61a6-6bb6-4a15-9a81-25fdcf96ec4b,1,0,14bd3392-36cd-4ed0-8847-44375d6fb861,14bd3392-36cd-4ed0-8847-44375d6fb861,1,0,759ede7a-e832-44e6-9b11-5bfb3c507820,759ede7a-e832-44e6-9b11-5bfb3c507820,1,0,c99c7271-cb3c-4fd2-8789-8637cf984514,c99c7271-cb3c-4fd2-8789-8637cf984514,1,0,64484611-b32c-4155-a063-7df5a3f924dd,64484611-b32c-4155-a063-7df5a3f924dd,1,0,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,2f2ac0db-db86-4ed2-a55a-b245b4d00d70,1,0,821b93bd-f0dd-4468-972a-d9b2b4de72f1,821b93bd-f0dd-4468-972a-d9b2b4de72f1,1,0,56900066-90e3-40c0-b64a-8f7964a4dfc1,56900066-90e3-40c0-b64a-8f7964a4dfc1,1,0,56f0c4d6-9b13-486a-9586-05e657dca8be,56f0c4d6-9b13-486a-9586-05e657dca8be,1,0,c795c0d3-6a0d-4311-9821-df320663727e,c795c0d3-6a0d-4311-9821-df320663727e,1,0,512b8d89-8798-4549-9e79-b9c3f7d9098f,512b8d89-8798-4549-9e79-b9c3f7d9098f,1,0,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,e1fe71f8-f37c-4705-aca1-c25e2bdc5db6,1,0,7f356abf-9045-4a76-89f3-8b52d467122a,7f356abf-9045-4a76-89f3-8b52d467122a,1,0,625a61ac-4ad0-4b31-aa67-9f864154b9c4,625a61ac-4ad0-4b31-aa67-9f864154b9c4,1,0,51fa8d01-44a1-4e75-9b04-6a2504972f08,51fa8d01-44a1-4e75-9b04-6a2504972f08,1,0,73dae482-a1ee-4c57-8859-2dd8e8635a49,73dae482-a1ee-4c57-8859-2dd8e8635a49,1,0,9c57c3d0-aaa1-4c87-a81c-36ac4dd48eaa,9c57c3d0-aaa1-4c87-a81c-36ac4dd48eaa,1,0,e4ea640f-e3a4-44ad-b17d-51f32136372e,e4ea640f-e3a4-44ad-b17d-51f32136372e,1,0,7dca913d-e37a-4740-8e3d-677d379605ee,7dca913d-e37a-4740-8e3d-677d379605ee,1,0,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,bd1cf7ef-f3e2-4441-836b-16f2cc227aa9,1,0,e62845df-704f-4ad5-b227-e0128877a814,e62845df-704f-4ad5-b227-e0128877a814,1,0,4f1393e4-9db5-43d6-b47e-caa1aad9b35c,4f1393e4-9db5-43d6-b47e-caa1aad9b35c,1,0,e62e60ea-9f0c-4a7e-869f-4639f31f826c,e62e60ea-9f0c-4a7e-869f-4639f31f826c,1,0,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,c9035b0f-cfc4-4761-9ba0-a8aacfaa9c72,1,0,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,7efb0bf4-d40c-417b-b9bc-f4a5af66ec09,1,0,4cd4694f-17f8-43ba-8940-07628bd937fe,4cd4694f-17f8-43ba-8940-07628bd937fe,1,0,9b9e81f9-e23f-4c77-bf6f-edbce8ebabfa,9b9e81f9-e23f-4c77-bf6f-edbce8ebabfa,1,0,fb5e93bb-e1ff-47a6-a362-ea94e6cbac65,fb5e93bb-e1ff-47a6-a362-ea94e6cbac65,1,0,7df6c94b-3cfe-4764-988e-858d733e35d9,7df6c94b-3cfe-4764-988e-858d733e35d9,1,0,8b251c7d-2d55-4734-a1da-7f1115d95080,8b251c7d-2d55-4734-a1da-7f1115d95080,1,0,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,87b3153d-bef0-4441-8b1c-a5fc7ba4c36a,1,0,5a8c3621-595a-4168-8bba-a7f8d499e47e,5a8c3621-595a-4168-8bba-a7f8d499e47e,1,0,fc4cfed6-e492-4420-b357-8143a8c2a41a,fc4cfed6-e492-4420-b357-8143a8c2a41a,1,0,4311a250-64af-443e-a711-93b7c41175cf,4311a250-64af-443e-a711-93b7c41175cf,1,0,804b6c57-1d7b-4927-be5b-84b7959fe55e,804b6c57-1d7b-4927-be5b-84b7959fe55e,1,0,f2655d85-79ea-4736-8f41-94a4f9b2b998,f2655d85-79ea-4736-8f41-94a4f9b2b998,1,0,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,21258174-3a95-4c10-bb8f-4d6db0c5ae0e,1,0,a8eb5ed9-df99-405b-afad-eeaa98956eee,a8eb5ed9-df99-405b-afad-eeaa98956eee,1,0,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,a64d4b1b-fae4-43ae-ae98-bdc4e59a94c1,1,0,26a1279f-91f0-4632-ad7c-21cf2f524208,26a1279f-91f0-4632-ad7c-21cf2f524208,1,0,bf751ed0-ee47-4eaf-81bd-f0da00bef343,bf751ed0-ee47-4eaf-81bd-f0da00bef343,1,0,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,14b65111-4c0e-4521-9fcd-2a8d4aaa6b4b,1,0,1f1def7c-e0ee-4963-afea-1751bf1b812c,1f1def7c-e0ee-4963-afea-1751bf1b812c,1,0,9a4c0898-ab56-425c-8191-5ab90f4e12bf,9a4c0898-ab56-425c-8191-5ab90f4e12bf,1,0,6841ec47-7a84-441a-b975-69d089072ce7,6841ec47-7a84-441a-b975-69d089072ce7,1,0,ead4001a-0d8a-4b95-8212-2a40e5aa6659,ead4001a-0d8a-4b95-8212-2a40e5aa6659,1,0,22165c8a-2179-4cd5-b195-bd2721e9e232,22165c8a-2179-4cd5-b195-bd2721e9e232,1,0,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,b28c3a8f-8cad-45eb-90d3-6d90a0b3f881,1,0,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,3c5974ec-f76d-401c-a8e4-d51c7cd4c4fb,1,0,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,609a9bc9-4225-4fe1-91fa-90c9c2e5cfba,1,0,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,d22ed498-c7df-45bb-869f-f16d3aa2d3d3,1,0,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,4a966f6e-87dd-4dae-9cc0-dbabee9424dc,1,0,9d9debfd-4a10-4f09-9d09-2aa5e058b525,9d9debfd-4a10-4f09-9d09-2aa5e058b525,1,0,fc19586c-d89c-495c-b473-6f85967ed48e,fc19586c-d89c-495c-b473-6f85967ed48e,1,0,2ac7c701-a281-4e77-a5f8-294526021e2d,2ac7c701-a281-4e77-a5f8-294526021e2d,1,0,979df549-889d-496a-b6ce-c56d54c771b5,979df549-889d-496a-b6ce-c56d54c771b5,1,0,91b320d8-3426-44d3-97d7-c200287d7343,91b320d8-3426-44d3-97d7-c200287d7343,1,0,b9297f72-b40a-4adb-9975-bb693d4834a4,b9297f72-b40a-4adb-9975-bb693d4834a4,1,0,41cf3916-216f-4c4e-a587-82777f4263e0,41cf3916-216f-4c4e-a587-82777f4263e0,1,0,2ce3a350-86f1-4275-8299-3c3693ca11fa,2ce3a350-86f1-4275-8299-3c3693ca11fa,1,0,59f0ed15-c84c-4f41-bdd4-26317e4e914d,59f0ed15-c84c-4f41-bdd4-26317e4e914d,1,0,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,4b5ff142-47b8-4548-b6f9-56ebcbd40e35,1,0,8fef790c-a3f4-460c-9093-5065cbdba196,8fef790c-a3f4-460c-9093-5065cbdba196,1,0,79bd24d0-61a9-4558-90ac-4e726066789c,79bd24d0-61a9-4558-90ac-4e726066789c,1,0,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,d843cbd7-e2b5-4c50-8ed2-7cb0baac8ecc,1,0,ef356548-51a4-4b09-b37d-ede5b8f3edb6,ef356548-51a4-4b09-b37d-ede5b8f3edb6,1,0,53c0d900-5e96-4381-a1ed-4424a5799608,53c0d900-5e96-4381-a1ed-4424a5799608,1,0,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,64fe317a-7d0e-4758-b5cf-0d871d2bf4ad,1,0,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,abfb7ac3-ebfa-4275-a039-a6b94bb9a76f,1,0,45ca9e20-1246-4400-a019-ffb521af6ea7,45ca9e20-1246-4400-a019-ffb521af6ea7,1,0,73eed854-5c3a-4a10-9bfa-793fd517f303,73eed854-5c3a-4a10-9bfa-793fd517f303,1,0,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,c3eb2836-ea4d-48cc-a03f-3a0c30f67e7f,1,0,9134dc40-a8f1-4c60-9431-27cb98be5ecd,9134dc40-a8f1-4c60-9431-27cb98be5ecd,1,0,16c4622a-33af-4a95-b44e-0861a6df21d2,16c4622a-33af-4a95-b44e-0861a6df21d2,1,0,d8cac67b-cce2-4a00-a8df-c6570c50153f,d8cac67b-cce2-4a00-a8df-c6570c50153f,1,0,37213c65-bf26-4e50-a2fa-58eb45439b58,37213c65-bf26-4e50-a2fa-58eb45439b58,1,0,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,e43c08a9-6496-4c8e-bfe2-9d728e31d63d,1,0,b6b31892-73ee-4c9b-92b0-2735536c4938,b6b31892-73ee-4c9b-92b0-2735536c4938,1,0,deb8b883-142e-47d0-a722-7c734a0cf9b3,deb8b883-142e-47d0-a722-7c734a0cf9b3,1,0,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,a6794f74-08a4-4b73-add7-e6d0d1b6e7a3,1,0,29233058-ccb1-4110-a9bc-cdb4c531f35a,29233058-ccb1-4110-a9bc-cdb4c531f35a,1,0,cf3729b2-9ee6-437c-81df-83966793be50,cf3729b2-9ee6-437c-81df-83966793be50,1,0,429d08b7-0b98-4f9b-a053-d04dd84a7026,429d08b7-0b98-4f9b-a053-d04dd84a7026,1,0,b64fd964-cee8-4619-872f-82d2fdc14240,b64fd964-cee8-4619-872f-82d2fdc14240,1,0,5ce7846d-9806-40f5-8631-4e14deb8bc95,5ce7846d-9806-40f5-8631-4e14deb8bc95,1,0,79528a0e-1e48-4d14-bd28-756fd5db57b9,79528a0e-1e48-4d14-bd28-756fd5db57b9,1,0,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,4eeab8c2-d901-4b95-adea-4a08f79d0fa2,1,0,d9426219-4b37-4776-8d5d-acab5825e789,d9426219-4b37-4776-8d5d-acab5825e789,1,0,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,7ce1f9eb-ac51-46fd-adc5-c8b9bfb32e44,1,0,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,4fef5026-1cba-4c33-ae75-5f9570a8e6b6,1,0,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,243ee3d4-4130-41ea-a37c-c7b39a5e73fa,1,0,29e7299a-ce80-497a-8102-615d0a001ea8,29e7299a-ce80-497a-8102-615d0a001ea8,1,0,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,f9e48170-62eb-4d6b-b861-c7af1b4a38c3,1,0,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,9bcc8f9a-ec12-45f2-8a32-6946d556f57a,1,0,adc2cc11-b647-453f-a98e-8a73b7c368c7,adc2cc11-b647-453f-a98e-8a73b7c368c7,1,0,905b787b-c638-4703-af70-416a2ce43b50,905b787b-c638-4703-af70-416a2ce43b50,1,0,d7ea882a-6ef9-407f-b0e9-7bb42cf5ef17,d7ea882a-6ef9-407f-b0e9-7bb42cf5ef17,1,0,4522c564-61da-40da-a749-5312121a331d,4522c564-61da-40da-a749-5312121a331d,1,0,9394c709-6cbe-4ef6-bc8c-cba8af65821e,9394c709-6cbe-4ef6-bc8c-cba8af65821e,1,0,2943b572-7411-4f92-a6cc-7ee552b85223,2943b572-7411-4f92-a6cc-7ee552b85223,1,0,28478e7a-e8aa-40aa-866c-a3624f903141,28478e7a-e8aa-40aa-866c-a3624f903141,1,0,f692ab21-a8de-4feb-914f-4beef350543a,f692ab21-a8de-4feb-914f-4beef350543a,1,0,a5663ce2-587d-4255-b30e-6979c909cc05,a5663ce2-587d-4255-b30e-6979c909cc05,1,0,942b3e77-2a66-4879-972d-b5d25a706f9a,942b3e77-2a66-4879-972d-b5d25a706f9a,1,0,49f67edf-49e7-4198-9f9a-7bddf0a89248,49f67edf-49e7-4198-9f9a-7bddf0a89248,1,0,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,0ec0b1a0-5f0d-4a14-9a84-49098befa0af,1,0,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,c644ab9b-7bcb-4bfa-b8ba-4c5f7689c91c,1,0,dabb3395-6100-4f53-913d-e0230e81b494,dabb3395-6100-4f53-913d-e0230e81b494,1,0,e0a3fae1-1582-4c7a-acd8-870b558acec4,e0a3fae1-1582-4c7a-acd8-870b558acec4,1,0,4f06c867-6fec-4a4d-a360-6d8e98e4e7a4,4f06c867-6fec-4a4d-a360-6d8e98e4e7a4,1,0,34ee9617-9935-425f-9637-bdffd5a64042,34ee9617-9935-425f-9637-bdffd5a64042,1,0,3e6160f4-eed6-4dd6-a8fb-96c1a90d39be,3e6160f4-eed6-4dd6-a8fb-96c1a90d39be,1,0,778cd9f9-7afd-4eb7-bd4e-90ff7d9cf4f0,778cd9f9-7afd-4eb7-bd4e-90ff7d9cf4f0,1,0,fb8f3edd-bf12-4312-8ffe-7bbd627fa52b,fb8f3edd-bf12-4312-8ffe-7bbd627fa52b,1,0,6ddad5e2-b2c3-47bc-b339-54ccd7391e33,6ddad5e2-b2c3-47bc-b339-54ccd7391e33,1,0,761ca1c1-c843-47a1-bacc-2f9d1d68634d,761ca1c1-c843-47a1-bacc-2f9d1d68634d,1,0,af4a815b-d9d4-4fe6-9b2b-3932381e7346,af4a815b-d9d4-4fe6-9b2b-3932381e7346,1,0,9dbca72a-fb38-4d86-a3ff-83f7edc0fdb4,9dbca72a-fb38-4d86-a3ff-83f7edc0fdb4,1,0,fab77796-a103-40a6-95bd-238979fc345d,fab77796-a103-40a6-95bd-238979fc345d,1,0,6fad175b-eaf0-4e45-aaa1-c1ebc98e0ed0,6fad175b-eaf0-4e45-aaa1-c1ebc98e0ed0,1,0,0ef5e38c-6f7c-46e7-9c14-4fde6814f93f,0ef5e38c-6f7c-46e7-9c14-4fde6814f93f,1,0,f306dafa-350e-4ff9-bfe2-211be647afe8,f306dafa-350e-4ff9-bfe2-211be647afe8,1,0,6d447b01-21ae-4cc1-9262-4ec4ed5e04f5,6d447b01-21ae-4cc1-9262-4ec4ed5e04f5,1,0,dcd64d40-e57f-4cb5-9ccd-67b27ac546d4,dcd64d40-e57f-4cb5-9ccd-67b27ac546d4,1,0,8d0ad48c-6e27-44c2-87f6-62eef78b6427,8d0ad48c-6e27-44c2-87f6-62eef78b6427,1,0,e4fb3b42-60f6-4413-bba8-6e507b13d5d3,e4fb3b42-60f6-4413-bba8-6e507b13d5d3,1,0,a5e3b305-392c-40a2-9b66-7fdc72c041a3,a5e3b305-392c-40a2-9b66-7fdc72c041a3,1,0,266d41c0-92a1-4d42-bf5b-60a1bddb8912,266d41c0-92a1-4d42-bf5b-60a1bddb8912,1,0,1aad9f99-422a-40e8-83da-6e29b8a4e85a,1aad9f99-422a-40e8-83da-6e29b8a4e85a,1,0,d9010dc7-b0de-4079-944d-fbec7ba5997f,d9010dc7-b0de-4079-944d-fbec7ba5997f,1,0,5defd7f7-cc7d-4e7b-83e3-755f8a2514ea,5defd7f7-cc7d-4e7b-83e3-755f8a2514ea,1,0,744ca01b-41b6-4c30-a280-85e44ad456ba,744ca01b-41b6-4c30-a280-85e44ad456ba,1,0,779856af-2c4a-4643-9bea-a04aa24ee488,779856af-2c4a-4643-9bea-a04aa24ee488,1,0,5c6f12f3-7cb6-4b10-9859-7b72bae3fc76,5c6f12f3-7cb6-4b10-9859-7b72bae3fc76,1,0,d00313c8-ee4a-4463-8d5b-7e87e4e14986,d00313c8-ee4a-4463-8d5b-7e87e4e14986,1,0,6db400f2-873a-44a2-9274-2cd7883bfd87,6db400f2-873a-44a2-9274-2cd7883bfd87,1,0,3b925fd2-adb8-451a-8675-7b081fc7c570,3b925fd2-adb8-451a-8675-7b081fc7c570,1,0,70e9e13d-8f87-4a5b-9c80-49d2cff1a290,70e9e13d-8f87-4a5b-9c80-49d2cff1a290,1,0,04b7e8b2-6bc1-49dc-9476-7eadf94b9188,04b7e8b2-6bc1-49dc-9476-7eadf94b9188,1,0,135c86fc-2979-4833-9107-38d749a9f82f,135c86fc-2979-4833-9107-38d749a9f82f,1,0,78288ff9-d838-4970-84bd-9a6b229e6ef0,78288ff9-d838-4970-84bd-9a6b229e6ef0,1,0,8310f927-1123-4b4b-a65e-0ff29be73329,8310f927-1123-4b4b-a65e-0ff29be73329,1,0,80a9df2d-593d-483d-8d69-28b1c08ec648,80a9df2d-593d-483d-8d69-28b1c08ec648,1,0,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,4a749e8c-cb35-4bc4-9b31-fb5bc0eab474,1,0,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,da4a0c05-2285-434b-b7f8-83b2a0d7f23d,1,0,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,8afa9a0e-04c1-4cac-82bb-6767cc0594d9,1,0,ecbe625a-55eb-437a-8dee-33fb034d4c0d,ecbe625a-55eb-437a-8dee-33fb034d4c0d,1,0,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,5d4cefac-5dc4-4d73-8b4b-900a8464fbb2,1,0,948b10b3-0d7c-4dca-8816-75eb86e7881b,948b10b3-0d7c-4dca-8816-75eb86e7881b,1,0,9de91b5a-98e4-414b-b650-b669b0159b49,9de91b5a-98e4-414b-b650-b669b0159b49,1,0,3de3948d-40ff-4e0d-8445-9bf49c916161,3de3948d-40ff-4e0d-8445-9bf49c916161,1,0,73a093ea-1927-483b-b6f5-8f0cbd253753,73a093ea-1927-483b-b6f5-8f0cbd253753,1,0,345f04c0-0274-4e79-b523-f1fa3cf0d92a,345f04c0-0274-4e79-b523-f1fa3cf0d92a,1,0,f3a14787-de1b-4b65-8cb1-bc33a785821c,f3a14787-de1b-4b65-8cb1-bc33a785821c,1,0,ec61075e-fbcb-494a-b790-81548a212d2b,ec61075e-fbcb-494a-b790-81548a212d2b,1,0,0c444045-302b-4dbd-a9a3-81fd40004948,0c444045-302b-4dbd-a9a3-81fd40004948,1,0,f9c0862c-34a2-41a3-ae46-b6a8e1ad1b08,f9c0862c-34a2-41a3-ae46-b6a8e1ad1b08,1,0,1528b799-1c0f-4244-85e8-e738b827934a,1528b799-1c0f-4244-85e8-e738b827934a,1,0,45d79e4d-8c2a-432b-abb8-fb9046abea40,45d79e4d-8c2a-432b-abb8-fb9046abea40,1,0,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,8f4d2fa9-c6ed-4f85-b3ef-f9214468ffc4,1,0,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,cb73c8c2-3b09-42e9-ac26-1bd51854efb6,1,0,bd0f9ec3-156a-4a6f-a52b-1213ec825bc0,bd0f9ec3-156a-4a6f-a52b-1213ec825bc0,1,0,71e52f63-04db-4336-ace6-b143d0a7d250,71e52f63-04db-4336-ace6-b143d0a7d250,1,0,ab4dbaff-cee6-47b3-9d69-13ac5c906f95,ab4dbaff-cee6-47b3-9d69-13ac5c906f95,1,0,82d5ed02-654f-4b86-b995-baf64a147a12,82d5ed02-654f-4b86-b995-baf64a147a12,1,0,ba96177b-d10c-4ad2-9851-dea312eeafd2,ba96177b-d10c-4ad2-9851-dea312eeafd2,1,0,7652c0d3-1b6e-4e0d-96d0-7bbdff808ce9,7652c0d3-1b6e-4e0d-96d0-7bbdff808ce9,1,0,caa287fe-4f60-4243-a6fe-8b2bd607205f,caa287fe-4f60-4243-a6fe-8b2bd607205f,1,0,ba6e2356-8b0e-4af6-9941-3b808e17c570,ba6e2356-8b0e-4af6-9941-3b808e17c570,1,0,f2f90525-566b-4add-ae3e-cc683dee6209,f2f90525-566b-4add-ae3e-cc683dee6209,1,0,59561ccb-5412-4f8a-8961-3d43639e4742,59561ccb-5412-4f8a-8961-3d43639e4742,1,0,8ce1e84a-9e69-4a75-9c3e-481ba3b5eaae,8ce1e84a-9e69-4a75-9c3e-481ba3b5eaae,1,0,0ec665f2-bbde-4e41-8cd0-2578253ecdf3,0ec665f2-bbde-4e41-8cd0-2578253ecdf3,1,0,e82ab008-d6b9-4f02-b4a5-0c0c57b06988,e82ab008-d6b9-4f02-b4a5-0c0c57b06988,1,0,50d2d02d-b812-4c2b-964a-4c2ded54284f,50d2d02d-b812-4c2b-964a-4c2ded54284f,1,0,5503d2c4-0b5e-4ba1-a26d-2f63628b25c8,5503d2c4-0b5e-4ba1-a26d-2f63628b25c8,1,0,53f519d2-0ee6-4314-a986-2f456722f2ae,53f519d2-0ee6-4314-a986-2f456722f2ae,1,0,c94a168f-e10f-4b09-8a82-7e53c056a643,c94a168f-e10f-4b09-8a82-7e53c056a643,1,0,35f56bf0-bb91-4ff4-ade4-fa06296e68a2,35f56bf0-bb91-4ff4-ade4-fa06296e68a2,1,0,a22ba49d-7a11-4dc7-8b0e-874da6f0874d,a22ba49d-7a11-4dc7-8b0e-874da6f0874d,1,0,888e5183-a152-435f-b105-6b924e0d4f4f,888e5183-a152-435f-b105-6b924e0d4f4f,1,0,f69a29cd-035f-4d16-8bec-150f563691b9,f69a29cd-035f-4d16-8bec-150f563691b9,1,0,6d4e26f4-4cc4-4445-ad7b-547cd0afc750,6d4e26f4-4cc4-4445-ad7b-547cd0afc750,1,0,5736ef36-69eb-4406-a98e-1e4b4227a10d,5736ef36-69eb-4406-a98e-1e4b4227a10d,1,0,0ab0a57c-24c6-4ba8-9be1-5773fd82367e,0ab0a57c-24c6-4ba8-9be1-5773fd82367e,1,0,9964f9e3-613c-479f-8557-742e409da4ab,9964f9e3-613c-479f-8557-742e409da4ab,1,0,ea6d3ce8-cbac-438a-92f1-b246d558fecd,ea6d3ce8-cbac-438a-92f1-b246d558fecd,1,0,84a655d4-49fb-44bb-bdc5-59776046e66b,84a655d4-49fb-44bb-bdc5-59776046e66b,1,0,8d5d9ad3-31a7-4877-b053-64edb7332af4,8d5d9ad3-31a7-4877-b053-64edb7332af4,1,0,3dbcdc42-8583-49e4-9c57-a1b06071be66,3dbcdc42-8583-49e4-9c57-a1b06071be66,1,0,79529e32-4c86-41e3-84ec-17f72b022855,79529e32-4c86-41e3-84ec-17f72b022855,1,0,6ef107de-6385-4448-9ef8-82110452a2b6,6ef107de-6385-4448-9ef8-82110452a2b6,1,0,3ce07fcb-f1a4-41db-891a-547311567ce0,3ce07fcb-f1a4-41db-891a-547311567ce0,1,0,3bcc76a7-f28a-4d28-a95e-af7ac1138993,3bcc76a7-f28a-4d28-a95e-af7ac1138993,1,0,50b4bf05-7810-4068-8be9-0be410d9b9db,50b4bf05-7810-4068-8be9-0be410d9b9db,1,0,f9f021ca-8b3e-4d10-9538-1bce7e851fdd,f9f021ca-8b3e-4d10-9538-1bce7e851fdd,1,0,bb7cf0f8-56b0-4c0d-b206-79051ba83f6d,bb7cf0f8-56b0-4c0d-b206-79051ba83f6d,1,0,ab057ce4-ac51-4465-8aad-eadc9088c62d,ab057ce4-ac51-4465-8aad-eadc9088c62d,1,0,8842c0e3-2e20-4f37-ae7c-f5449004994b,8842c0e3-2e20-4f37-ae7c-f5449004994b,1,0,5b2cc44b-69cb-495c-a26b-003a495df40b,5b2cc44b-69cb-495c-a26b-003a495df40b,1,0,30250d93-10ff-45c9-920b-5fed3f9d8093,30250d93-10ff-45c9-920b-5fed3f9d8093,1,0,fc959221-6313-45d9-b2c4-85befaede226,fc959221-6313-45d9-b2c4-85befaede226,1,0,6ffa8536-7639-4e9a-9f6d-4eda71f5ca3b,6ffa8536-7639-4e9a-9f6d-4eda71f5ca3b,1,0,5206d407-ac91-477e-80e7-97c312da934c,5206d407-ac91-477e-80e7-97c312da934c,1,0,15b53eaa-cb35-4385-9515-c2ec6e1fdb4b,15b53eaa-cb35-4385-9515-c2ec6e1fdb4b,1,0,ccb8a530-260a-4488-b1d9-c67325c69bf4,ccb8a530-260a-4488-b1d9-c67325c69bf4,1,0,c869c1b7-3c04-4e5e-a033-d3f2fb0af03c,c869c1b7-3c04-4e5e-a033-d3f2fb0af03c,1,0,23f93492-59f5-491b-8708-45096934c7e6,23f93492-59f5-491b-8708-45096934c7e6,1,0,30f5471a-17fb-4184-9798-4f8e3ef0cccb,30f5471a-17fb-4184-9798-4f8e3ef0cccb,1,0,27abda4c-a43c-49b4-90cd-db780afe0c45,27abda4c-a43c-49b4-90cd-db780afe0c45,1,0,450a36cb-9bc1-4c5b-ae21-0e023f3eb951,450a36cb-9bc1-4c5b-ae21-0e023f3eb951,1,0,1a28db16-d410-4101-bf31-21cefa880dae,1a28db16-d410-4101-bf31-21cefa880dae,1,0,2b85bcf6-85b0-4efb-bada-b65414a8d264,2b85bcf6-85b0-4efb-bada-b65414a8d264,1,0,cf027de4-59c9-4b8f-9695-b1d4d16548fe,cf027de4-59c9-4b8f-9695-b1d4d16548fe,1,0,d33ceaee-a374-40a3-9406-cbcbf82fd8ae,d33ceaee-a374-40a3-9406-cbcbf82fd8ae,1,0,0b13cad5-91ae-4cd1-a620-9a315ae8024c,0b13cad5-91ae-4cd1-a620-9a315ae8024c,1,0,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,d0634a8e-676f-4f49-9a38-7cb80cfa9fdf,1,0,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,59bb5271-4cc7-45aa-8e2a-f556a4afa2dc,1,0,81dd61e5-fe02-4272-a525-affda9b606ca,81dd61e5-fe02-4272-a525-affda9b606ca,1,0,8de7b423-b7d1-46fe-b1dc-fb936736b864,8de7b423-b7d1-46fe-b1dc-fb936736b864,1,0,f565876c-0326-4b12-895e-c248b9e64115,f565876c-0326-4b12-895e-c248b9e64115,1,0,62f075c5-1ad0-4a29-9f40-567b9fa70cdf,62f075c5-1ad0-4a29-9f40-567b9fa70cdf,1,0,88cefe4a-a6c5-4753-935e-f956d9de9f77,88cefe4a-a6c5-4753-935e-f956d9de9f77,1,0,882e78b7-90bd-4b95-8852-146bdb51ec15,882e78b7-90bd-4b95-8852-146bdb51ec15,1,0,ae4435c3-62c0-4f08-b526-7f9571eed8ae,ae4435c3-62c0-4f08-b526-7f9571eed8ae,1,0,91a1bd81-e6fa-476c-85e6-317a91f6c8bc,91a1bd81-e6fa-476c-85e6-317a91f6c8bc,1,0,f799e1d1-bb78-4a7a-bb1a-d79ba29acd0c,f799e1d1-bb78-4a7a-bb1a-d79ba29acd0c,1,0,c7b46558-d688-4c42-ae52-f98de7923176,c7b46558-d688-4c42-ae52-f98de7923176,1,0,31fdbb46-1df1-4b74-a54e-b922260dcca6,31fdbb46-1df1-4b74-a54e-b922260dcca6,1,0,ee494dc9-549b-4595-97d1-ca73bacff954,ee494dc9-549b-4595-97d1-ca73bacff954,1,0,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,1,0,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,1,0,47a24216-3299-470b-a18c-d8c1258fff24,47a24216-3299-470b-a18c-d8c1258fff24,1,0,72dcfd46-491e-4f88-a0ea-57919f8fbdea,72dcfd46-491e-4f88-a0ea-57919f8fbdea,1,0,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,fa7a11cc-7ee0-4550-8d0d-9c7464d57a37,1,0,8317ac49-890d-4921-8c0d-1bfc676f0b40,8317ac49-890d-4921-8c0d-1bfc676f0b40,1,0,f9161bc3-9a1c-4870-8681-8e97d8ce838a,f9161bc3-9a1c-4870-8681-8e97d8ce838a,1,0,5e53ccc6-5ab4-4f9d-b524-0081d345d7a2,5e53ccc6-5ab4-4f9d-b524-0081d345d7a2,1,0,c3b3805b-3501-47a7-b280-46180049b235,c3b3805b-3501-47a7-b280-46180049b235,1,0,29af05c2-37de-495b-b3cf-477d452abe5e,29af05c2-37de-495b-b3cf-477d452abe5e,1,0,0c732569-a50f-4be3-a214-0843c6a3da47,0c732569-a50f-4be3-a214-0843c6a3da47,1,0,f55d74bf-5824-4228-9683-31f7c7fdf74d,f55d74bf-5824-4228-9683-31f7c7fdf74d,1,0,5e922083-0ceb-449a-8201-7dd27a46f2fc,5e922083-0ceb-449a-8201-7dd27a46f2fc,1,0,0d142fcd-a596-4cdf-a3f6-c31becdb7b59,0d142fcd-a596-4cdf-a3f6-c31becdb7b59,1,0,c30c6860-befb-497e-b432-3dba0f86c540,c30c6860-befb-497e-b432-3dba0f86c540,1,0,d97e78c7-f2c1-4e0e-9c9b-d2dd6a94da22,d97e78c7-f2c1-4e0e-9c9b-d2dd6a94da22,1,0,e757303e-c61a-4e42-9829-c5a36dba9414,e757303e-c61a-4e42-9829-c5a36dba9414,1,0,cb3bb725-ed7a-4cde-a0ac-26a0b168c0ea,cb3bb725-ed7a-4cde-a0ac-26a0b168c0ea,1,0,977748b7-13d3-41ef-8206-82595ed8fc0c,977748b7-13d3-41ef-8206-82595ed8fc0c,1,0,091de87c-0801-4bd3-aaaa-ed37bc4cd161,091de87c-0801-4bd3-aaaa-ed37bc4cd161,1,0,9a6bfcbe-6ac7-4839-bfb9-a11b97e64185,9a6bfcbe-6ac7-4839-bfb9-a11b97e64185,1,0,b53c545c-3b1c-4315-a213-4f2b2c7128aa,b53c545c-3b1c-4315-a213-4f2b2c7128aa,1,0,02a84df9-2171-43e6-8135-a74edd384826,02a84df9-2171-43e6-8135-a74edd384826,1,0,ff36356d-cb1d-4316-896a-c6ae83b92437,ff36356d-cb1d-4316-896a-c6ae83b92437,1,0,465cce6a-7064-4b0a-932c-40f842042f33,465cce6a-7064-4b0a-932c-40f842042f33,1,0,f9cd82e7-8252-4bb6-8e08-23ab45ed3976,f9cd82e7-8252-4bb6-8e08-23ab45ed3976,1,0,e67dff00-92e2-4f58-a950-d5bbca9291c5,e67dff00-92e2-4f58-a950-d5bbca9291c5,1,0,e1964724-804a-4ecc-be9e-5b84e58f2b84,e1964724-804a-4ecc-be9e-5b84e58f2b84,1,0,46e961c2-cd45-4d76-a6ad-c1d5c8dc95cc,46e961c2-cd45-4d76-a6ad-c1d5c8dc95cc,1,0,bf3cb513-2856-472b-8713-7bf8ba70cdce,bf3cb513-2856-472b-8713-7bf8ba70cdce,1,0,de4815c8-0853-47e0-862b-b60119c674f6,de4815c8-0853-47e0-862b-b60119c674f6,1,0,dbe02a79-3179-42bb-a8e8-dd9bf3ff705c,dbe02a79-3179-42bb-a8e8-dd9bf3ff705c,1,0,8f17ec3f-6d62-46b8-baef-b20430e948ce,8f17ec3f-6d62-46b8-baef-b20430e948ce,1,0,ea1298d0-9396-4a50-b83e-24064e8dd99d,ea1298d0-9396-4a50-b83e-24064e8dd99d,1,0,038dbb00-e4c6-4e64-b861-3a0764f54ab3,038dbb00-e4c6-4e64-b861-3a0764f54ab3,1,0,1c291f7d-a493-4297-8aaa-912896800066,1c291f7d-a493-4297-8aaa-912896800066,1,0,69149801-a825-4ed2-b077-c26660dff271,69149801-a825-4ed2-b077-c26660dff271,1,0,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,12146ed3-c159-4d6b-ae1a-1ecd30e5a87e,1,0,518ab687-b84a-40c8-8547-aee4257c1b71,518ab687-b84a-40c8-8547-aee4257c1b71,1,0,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,5cec0949-bfe8-4f7e-98c1-0c402be3ea09,1,0,7732ef07-16eb-46a0-9645-7de95c5482af,7732ef07-16eb-46a0-9645-7de95c5482af,1,0,75dac536-b316-4b04-a57b-03656c678bec,75dac536-b316-4b04-a57b-03656c678bec,1,0,a07d6c85-159d-4d09-b117-561a1e20329f,a07d6c85-159d-4d09-b117-561a1e20329f,1,0,8a2f9733-4f83-41f2-9d74-dca7161a4b41,8a2f9733-4f83-41f2-9d74-dca7161a4b41,1,0,fbd2d900-1e0d-48f3-9793-0186ee49915c,fbd2d900-1e0d-48f3-9793-0186ee49915c,1,0,436b558e-6547-4ba6-8cee-954fe36743ea,436b558e-6547-4ba6-8cee-954fe36743ea,1,0,6120bb6e-b177-48bf-b467-02bab0d4cc0d,6120bb6e-b177-48bf-b467-02bab0d4cc0d,1,0,a5af4715-6c4f-484b-9599-5b1b9147713f,a5af4715-6c4f-484b-9599-5b1b9147713f,1,0,307b6e66-6fef-4777-b20a-37898928932f,307b6e66-6fef-4777-b20a-37898928932f,1,0,a69494c0-dcce-4359-aa82-c1cfae8a43eb,a69494c0-dcce-4359-aa82-c1cfae8a43eb,1,0,2b243d49-5500-403a-b177-ac1c70bb889d,2b243d49-5500-403a-b177-ac1c70bb889d,1,0,51c040c6-e7a4-4e0e-b479-039636fdb6ec,51c040c6-e7a4-4e0e-b479-039636fdb6ec,1,0,8ede4c18-ebf0-4c39-9e82-c59df8d62ca7,8ede4c18-ebf0-4c39-9e82-c59df8d62ca7,1,0,b2c200a7-b9cc-4d84-b839-e69f2a14a8f5,b2c200a7-b9cc-4d84-b839-e69f2a14a8f5,1,0,8a50e7f2-97a9-4ed8-a46f-6413f7fcf8cd,8a50e7f2-97a9-4ed8-a46f-6413f7fcf8cd,1,0,4a69a70d-1b4c-4999-a3dd-ae1deb331fea,4a69a70d-1b4c-4999-a3dd-ae1deb331fea,1,0,3a36e0f5-a645-47f1-99ae-5b0493d604ad,3a36e0f5-a645-47f1-99ae-5b0493d604ad,1,0,57f762f7-b8e4-498b-a3dc-3d40c94855ec,57f762f7-b8e4-498b-a3dc-3d40c94855ec,1,0,ca7d4086-de35-40fd-af65-73369d452135,ca7d4086-de35-40fd-af65-73369d452135,1,0,563c0f5c-e0b4-4229-a3f6-183091060aa4,563c0f5c-e0b4-4229-a3f6-183091060aa4,1,0,bf967588-ea8f-49a3-9331-af2331ffa162,bf967588-ea8f-49a3-9331-af2331ffa162,1,0,d59c2725-5d98-495e-9f86-f5d38dbfad90,d59c2725-5d98-495e-9f86-f5d38dbfad90,1,0,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,176f8835-73d2-4fbe-9d2a-0a4c79d3b871,1,0,0ba68198-983d-409b-be27-96f1572b3f12,0ba68198-983d-409b-be27-96f1572b3f12,1,0,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,9cd1e8dd-e2be-48a9-b32d-43688e1748bc,1,0,decb27a8-7dd3-4601-a694-30429e638b39,decb27a8-7dd3-4601-a694-30429e638b39,1,0,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,922ac6c0-a6a8-444e-9aad-27dc0f49b32e,1,0,d7a128e4-f31f-4b09-8424-e816ab59d5c3,d7a128e4-f31f-4b09-8424-e816ab59d5c3,1,0,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,0ce6e252-8d6e-4bfe-b8cc-daf3434fa51e,1,0,aa9513b4-f575-4030-a7f9-ac09aa319e98,aa9513b4-f575-4030-a7f9-ac09aa319e98,1,0,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,f01afc5e-91b8-4cc2-b63a-c245e5e36d01,1,0,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,028cbc0e-023d-40ad-86c3-5e6f8dc96c57,1,0,d03f66b1-48a3-434b-bb58-9fd53c183514,d03f66b1-48a3-434b-bb58-9fd53c183514,1,0,a469e55e-d7ca-4c27-b350-fafe7364c18f,a469e55e-d7ca-4c27-b350-fafe7364c18f,1,0,b4dde44e-57d5-4c3a-bb9b-643787ce07b0,b4dde44e-57d5-4c3a-bb9b-643787ce07b0,1,0,d2160866-78ca-424a-92b9-d389fb341ee0,d2160866-78ca-424a-92b9-d389fb341ee0,1,0,73b36823-72a4-4286-8ee2-02b2f086d5ea,73b36823-72a4-4286-8ee2-02b2f086d5ea,1,0,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,ecaba9aa-fca7-42f5-a4fe-d8176cf875b9,1,0,4378ab20-5467-476b-8f04-4b6876efdee6,4378ab20-5467-476b-8f04-4b6876efdee6,1,0,55e47901-c79c-41c5-9d7f-6b6846ed2782,55e47901-c79c-41c5-9d7f-6b6846ed2782,1,0,c013a650-bd4b-4e14-97cc-05df17dbb0d5,c013a650-bd4b-4e14-97cc-05df17dbb0d5,1,0,00bc2e99-c7c9-4a4b-b0bc-c9babe17deda,00bc2e99-c7c9-4a4b-b0bc-c9babe17deda,1,0,90a7425e-3fc9-41ec-9373-f410936e1b53,90a7425e-3fc9-41ec-9373-f410936e1b53,1,0,509cdfc8-fad3-4628-869c-6c03d9519d69,509cdfc8-fad3-4628-869c-6c03d9519d69,1,0,c69f8196-5d7e-4ca9-a84e-c85d9ecf8777,c69f8196-5d7e-4ca9-a84e-c85d9ecf8777,1,0,663cf316-3077-4fac-b821-94bd5cdde65c,663cf316-3077-4fac-b821-94bd5cdde65c,1,0,4b37d2c0-4181-4c47-951c-987017972bf7,4b37d2c0-4181-4c47-951c-987017972bf7,1,0,8ae35de6-c7f0-4839-bc27-cc8619e30a43,8ae35de6-c7f0-4839-bc27-cc8619e30a43,1,0,9ef01e37-030a-44b7-824b-110e0f5a88f3,9ef01e37-030a-44b7-824b-110e0f5a88f3,1,0,98bf409f-de8d-4306-b290-716b006e6fd8,98bf409f-de8d-4306-b290-716b006e6fd8,1,0,c15f648b-3aed-4734-bcd2-524e2d3336c0,c15f648b-3aed-4734-bcd2-524e2d3336c0,1,0,600ac5b6-d3ac-4262-820d-5a989fa7f44d,600ac5b6-d3ac-4262-820d-5a989fa7f44d,1,0,3c671c62-5614-4c1b-a823-ac4922c9daf7,3c671c62-5614-4c1b-a823-ac4922c9daf7,1,0,c347e3a2-d6d9-46a0-971f-ec56a45dcbe8,c347e3a2-d6d9-46a0-971f-ec56a45dcbe8,1,0,455c94b6-6b10-405f-a198-f680c7ad5ffe,455c94b6-6b10-405f-a198-f680c7ad5ffe,1,0,d16a63b9-2b84-447e-9c32-1d8f7c4c5a11,d16a63b9-2b84-447e-9c32-1d8f7c4c5a11,1,0,48cc3006-9f06-4be1-aec4-5c04308200d5,48cc3006-9f06-4be1-aec4-5c04308200d5,1,0,bae8ba70-a19e-41fa-b11c-6513453bd3ac,bae8ba70-a19e-41fa-b11c-6513453bd3ac,1,0,f4a9a13e-91b0-4440-8662-25acf099220e,f4a9a13e-91b0-4440-8662-25acf099220e,1,0,ff87a40b-07da-4951-b469-a75d418e88b3,ff87a40b-07da-4951-b469-a75d418e88b3,1,0,708b4656-7d14-491f-95b5-8fe3f0d6d44b,708b4656-7d14-491f-95b5-8fe3f0d6d44b,1,0,331db59d-ef90-4255-89c2-d7fdd6bc5c4c,331db59d-ef90-4255-89c2-d7fdd6bc5c4c,1,0,e520fbbb-3521-4707-bbe7-c8ead04fb2dc,e520fbbb-3521-4707-bbe7-c8ead04fb2dc,1,0,a87faa63-4e1c-440c-b852-0e4e1485a047,a87faa63-4e1c-440c-b852-0e4e1485a047,1,0,36244ad9-5b3a-431e-9dbf-b05ee9da1188,36244ad9-5b3a-431e-9dbf-b05ee9da1188,1,0,6cf7fd67-e426-4fe3-a49d-fbcfae5fb52d,6cf7fd67-e426-4fe3-a49d-fbcfae5fb52d,1,0,92c4d60b-22df-4fef-a5b9-a97bc63b4858,92c4d60b-22df-4fef-a5b9-a97bc63b4858,1,0,8264b98b-7eec-4651-96fc-02620c87f274,8264b98b-7eec-4651-96fc-02620c87f274,1,0,bcd6e5f0-a800-4f21-ad75-24c428157cee,bcd6e5f0-a800-4f21-ad75-24c428157cee,1,0,9f351f0a-2d43-4215-8d74-040911230683,9f351f0a-2d43-4215-8d74-040911230683,1,0,6a9c1bd4-b550-4911-a8d1-321a7713a5a5,6a9c1bd4-b550-4911-a8d1-321a7713a5a5,1,0,019fa716-e91a-4116-abcf-c87349c153a4,019fa716-e91a-4116-abcf-c87349c153a4,1,0,f9fed640-0121-4c36-a822-0db7a9155adc,f9fed640-0121-4c36-a822-0db7a9155adc,1,0,e418d7c4-7322-41b1-a8df-d86a11f7711c,e418d7c4-7322-41b1-a8df-d86a11f7711c,1,0,3fcdfe26-1668-4aa7-bb10-ef8d8bd0ae39,3fcdfe26-1668-4aa7-bb10-ef8d8bd0ae39,1,0,a0ebcc8a-267b-4f95-a986-46db8fb5df4d,a0ebcc8a-267b-4f95-a986-46db8fb5df4d,1,0,9c890915-1ae3-457e-8a3d-7b39f181304b,9c890915-1ae3-457e-8a3d-7b39f181304b,1,0,3ad5d8a7-3071-46aa-aebf-306bdb67983b,3ad5d8a7-3071-46aa-aebf-306bdb67983b,1,0,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,ab7ef662-71c1-4d51-9f0f-ea8c5ea3df8a,1,0,cb954476-c551-4a06-9bcd-18d67ba47dc8,cb954476-c551-4a06-9bcd-18d67ba47dc8,1,0,79201015-bfae-463e-81f1-0ae2d3066f3f,79201015-bfae-463e-81f1-0ae2d3066f3f,1,0,bed8af4e-fa3a-4b25-ba6e-5b7b4a6cd363,bed8af4e-fa3a-4b25-ba6e-5b7b4a6cd363,1,0,951927d4-7bfc-4edb-b97f-dcc29a937400,951927d4-7bfc-4edb-b97f-dcc29a937400,1,0,71309e88-d514-40f3-a329-b2a420e75504,71309e88-d514-40f3-a329-b2a420e75504,1,0,1ea3178b-73dd-4063-9140-c61687a4b1b8,1ea3178b-73dd-4063-9140-c61687a4b1b8,1,0,85fd7ef4-2886-4e2c-a6eb-63d0b0b9cd55,85fd7ef4-2886-4e2c-a6eb-63d0b0b9cd55,1,0,696723be-7b4f-4321-956e-eff07ea9f5fa,696723be-7b4f-4321-956e-eff07ea9f5fa,1,0,616c27dc-5c59-4469-97a7-27e0752bd3a7,616c27dc-5c59-4469-97a7-27e0752bd3a7,1,0,f7323121-74bc-441c-a3e9-dd5cb4f0accd,f7323121-74bc-441c-a3e9-dd5cb4f0accd,1,0,5225b4da-431e-469d-a30c-31fa434b7e86,5225b4da-431e-469d-a30c-31fa434b7e86,1,0,68dcbdd5-c1fd-472f-873c-359d3a237b8c,68dcbdd5-c1fd-472f-873c-359d3a237b8c,1,0,3c6e831c-c934-46bb-8040-edd6de81ba1b,3c6e831c-c934-46bb-8040-edd6de81ba1b,1,0,3c737aff-9581-409a-9a6e-d5e3c133d8df,3c737aff-9581-409a-9a6e-d5e3c133d8df,1,0,916a9ea9-309d-4a7a-9ded-63bda01a39d4,916a9ea9-309d-4a7a-9ded-63bda01a39d4,1,0,2197147c-f67c-4e92-9e69-2c9900144e82,2197147c-f67c-4e92-9e69-2c9900144e82,1,0,7692e2fd-9ab5-45ee-9a4c-380107769ef7,7692e2fd-9ab5-45ee-9a4c-380107769ef7,1,0,6586260a-3abd-4283-b710-bc2ae3b965d8,6586260a-3abd-4283-b710-bc2ae3b965d8,1,0,2af20999-4b9a-44c7-9edf-40446e083796,2af20999-4b9a-44c7-9edf-40446e083796,1,0,100acfa0-d5f3-4a20-8a05-9d9d00aff2c9,100acfa0-d5f3-4a20-8a05-9d9d00aff2c9,1,0,ccdaa099-3739-4731-b028-3cb4e75834a5,ccdaa099-3739-4731-b028-3cb4e75834a5,1,0,ee07ebbe-b34d-4c42-a4b4-d5e14ef4c103,ee07ebbe-b34d-4c42-a4b4-d5e14ef4c103,1,0,1d44bf7e-3dc9-4ca4-86c8-bdabdb5650b8,1d44bf7e-3dc9-4ca4-86c8-bdabdb5650b8,1,0,d4757882-e0bd-4f54-962b-32d49c90fb60,d4757882-e0bd-4f54-962b-32d49c90fb60,1,0,6e650778-3ddd-44ca-bd7f-ffa5e8f4cce4,6e650778-3ddd-44ca-bd7f-ffa5e8f4cce4,1,0,ec81b967-a4a1-48ac-beda-cdc00f1222a0,ec81b967-a4a1-48ac-beda-cdc00f1222a0,1,0,0040f7b0-3499-41bd-94bf-d63679d9d9c1,0040f7b0-3499-41bd-94bf-d63679d9d9c1,1,0,e5c31a93-cda7-4972-a13b-8cb864cc40ed,e5c31a93-cda7-4972-a13b-8cb864cc40ed,1,0,e2a5f14f-9b64-4d1c-9c66-332ea0157cc2,e2a5f14f-9b64-4d1c-9c66-332ea0157cc2,1,0,0fdbd1ab-716d-46b5-aa75-fb09812ced5b,0fdbd1ab-716d-46b5-aa75-fb09812ced5b,1,0,b26ab92b-9739-4eb4-b855-be6850274432,b26ab92b-9739-4eb4-b855-be6850274432,1,0,17944416-85a5-49e4-9fa8-652c671c3df0,17944416-85a5-49e4-9fa8-652c671c3df0,1,0,b7936cda-654e-4707-af76-385a63243cdf,b7936cda-654e-4707-af76-385a63243cdf,1,0,192844c3-7cb9-4477-a4af-0edb8ce5129d,192844c3-7cb9-4477-a4af-0edb8ce5129d,1,0,33324481-55d1-475f-9f12-7542a05429a2,33324481-55d1-475f-9f12-7542a05429a2,1,0,07b7591f-dcfc-483f-85f6-b5a08d952fe2,07b7591f-dcfc-483f-85f6-b5a08d952fe2,1,0,866c418f-332e-415a-bb8e-794d38f15080,866c418f-332e-415a-bb8e-794d38f15080,1,0,a34b8fdc-e756-4065-b68a-12a07fa7c40e,a34b8fdc-e756-4065-b68a-12a07fa7c40e,1,0,b853debb-d715-4296-9070-45cc5dae571d,b853debb-d715-4296-9070-45cc5dae571d,1,0,fc406b50-f267-44b8-a833-ba7e8880903e,fc406b50-f267-44b8-a833-ba7e8880903e,1,0,6517bf8b-d2fd-4b6b-a4a5-b3086ebad8de,6517bf8b-d2fd-4b6b-a4a5-b3086ebad8de,1,0,391a1891-85a2-45b8-a747-3ecd705fc75b,391a1891-85a2-45b8-a747-3ecd705fc75b,1,0,05681509-254d-4232-af69-62a63ed05716,05681509-254d-4232-af69-62a63ed05716,1,0,cc815221-3d2a-4ea3-b1e6-6cb9fb410bd9,cc815221-3d2a-4ea3-b1e6-6cb9fb410bd9,1,0,b9ef62f6-9b1d-4d13-8016-73ed531d195a,b9ef62f6-9b1d-4d13-8016-73ed531d195a,1,0,742ed6d8-0f8d-4569-b30f-9ff3804cc3b7,742ed6d8-0f8d-4569-b30f-9ff3804cc3b7,1,0,229fe764-87f5-4d19-b042-c31fef5cddd6,229fe764-87f5-4d19-b042-c31fef5cddd6,1,0,74cd7504-d34f-42ff-90ff-7abcd54e8b6c,74cd7504-d34f-42ff-90ff-7abcd54e8b6c,1,0,e932800c-fd81-417d-a601-c774b888d66a,e932800c-fd81-417d-a601-c774b888d66a,1,0,a2335b6f-1dbb-4722-979b-8bed83aa8c94,a2335b6f-1dbb-4722-979b-8bed83aa8c94,1,0,211cf921-d880-4f74-b8ee-5312dea28613,211cf921-d880-4f74-b8ee-5312dea28613,1,0,2fd3a396-b8ae-409e-9373-02a039393a80,2fd3a396-b8ae-409e-9373-02a039393a80,1,0,61ae74be-64b2-4bf2-aa63-8fe3dc7ed47d,61ae74be-64b2-4bf2-aa63-8fe3dc7ed47d,1,0,346ef414-b20b-4095-86fe-18ca21c9887f,346ef414-b20b-4095-86fe-18ca21c9887f,1,0,c01ab97b-4964-4f7d-b749-56c0b94feb93,c01ab97b-4964-4f7d-b749-56c0b94feb93,1,0,0cc63813-cf16-4a99-b3bd-18a773091230,0cc63813-cf16-4a99-b3bd-18a773091230,1,0,4fc00971-c980-468a-9690-5cd520d12eb0,4fc00971-c980-468a-9690-5cd520d12eb0,1,0,85972c27-4f39-4982-9307-7877e87ef87b,85972c27-4f39-4982-9307-7877e87ef87b,1,0,96afdffb-7595-4c49-9e86-8296f50bd2f5,96afdffb-7595-4c49-9e86-8296f50bd2f5,1,0,823d5b5e-e9bf-40f0-9dcd-579bb53847bb,823d5b5e-e9bf-40f0-9dcd-579bb53847bb,1,0,e125d3e0-950f-42ee-8904-bd26091afa55,e125d3e0-950f-42ee-8904-bd26091afa55,1,0,2b4797a5-074a-4a01-b99f-1c5590cfde40,2b4797a5-074a-4a01-b99f-1c5590cfde40,1,0,718e53d2-24ec-40fb-9def-825441ada46c,718e53d2-24ec-40fb-9def-825441ada46c,1,0,4c0a7fd6-8f09-41d6-949f-65ce708c1256,4c0a7fd6-8f09-41d6-949f-65ce708c1256,1,0,792abc06-b52a-4691-ba92-96ed73ca702a,792abc06-b52a-4691-ba92-96ed73ca702a,1,0,148dbe44-86d1-4362-b9db-8ff68cd2b34d,148dbe44-86d1-4362-b9db-8ff68cd2b34d,1,0,1fbc893e-3000-4fac-88f5-c82251835d65,1fbc893e-3000-4fac-88f5-c82251835d65,1,0,05852816-63ec-4179-abca-66372bbfb04c,05852816-63ec-4179-abca-66372bbfb04c,1,0,0165f721-b011-4524-bfd5-81e35092f2be,0165f721-b011-4524-bfd5-81e35092f2be,1,0,e74925d4-1979-4600-8560-0932d26450ad,e74925d4-1979-4600-8560-0932d26450ad,1,0,aa108131-151d-4356-8a24-345e4ec74281,aa108131-151d-4356-8a24-345e4ec74281,1,0,284b77a8-d9f4-44c4-a2dc-91c1f8bd5808,284b77a8-d9f4-44c4-a2dc-91c1f8bd5808,1,0,e3251f1a-3c80-4c86-9960-270920bd512f,e3251f1a-3c80-4c86-9960-270920bd512f,1,0,3c3d5474-977b-4df9-88de-042e997bd10d,3c3d5474-977b-4df9-88de-042e997bd10d,1,0,4b88d172-5a44-4011-bb38-e94bf7a9c879,4b88d172-5a44-4011-bb38-e94bf7a9c879,1,0,3bced2d4-e3d7-4489-a26d-f84620b096f4,3bced2d4-e3d7-4489-a26d-f84620b096f4,1,0,e8c048fc-0f39-4778-aaf3-d6bff5acb06a,e8c048fc-0f39-4778-aaf3-d6bff5acb06a,1,0,c7efb89b-f9e5-4b58-b7a0-502cea8cf1d4,c7efb89b-f9e5-4b58-b7a0-502cea8cf1d4,1,0,cd133f15-aa45-4ec9-93c2-2f0f66baf3f3,cd133f15-aa45-4ec9-93c2-2f0f66baf3f3,1,0,18436045-1008-4114-8032-274fea0f4627,18436045-1008-4114-8032-274fea0f4627,1,0,cad93727-cffb-44a6-aaee-be73a078e802,cad93727-cffb-44a6-aaee-be73a078e802,1,0,c034f410-ff8e-45d7-925f-94448f88a7af,c034f410-ff8e-45d7-925f-94448f88a7af,1,0,0027727b-3917-4010-9953-1649266e8ed7,0027727b-3917-4010-9953-1649266e8ed7,1,0,b088786a-046f-458c-8e7a-5bebf8df8b34,b088786a-046f-458c-8e7a-5bebf8df8b34,1,0,6d015113-1e32-4f5e-aacd-8134d7307125,6d015113-1e32-4f5e-aacd-8134d7307125,1,0,58230238-d2f2-422e-90cb-de355996eb19,58230238-d2f2-422e-90cb-de355996eb19,1,0,3d907678-628d-4fb2-85c2-149839024c08,3d907678-628d-4fb2-85c2-149839024c08,1,0,71384d10-6acf-4139-b766-cb8b5796f1a7,71384d10-6acf-4139-b766-cb8b5796f1a7,1,0,a8f149d7-e9bc-4695-b4f4-88434e31aafb,a8f149d7-e9bc-4695-b4f4-88434e31aafb,1,0,10dcbcc6-7793-4da7-a9a5-e4f124209d3e,10dcbcc6-7793-4da7-a9a5-e4f124209d3e,1,0,11ba510f-cb57-43d0-9897-c49e10b67ccd,11ba510f-cb57-43d0-9897-c49e10b67ccd,1,0,9d92af67-c88d-4429-9e85-0b5bf04c4b79,9d92af67-c88d-4429-9e85-0b5bf04c4b79,1,0,b009bc99-ea12-46db-a7f8-cb3e285b20d0,b009bc99-ea12-46db-a7f8-cb3e285b20d0,1,0,43523bbb-c923-4a20-bcb5-50d30cc826ee,43523bbb-c923-4a20-bcb5-50d30cc826ee,1,0,c89d9aad-3364-45df-88b5-b23ae76edbba,c89d9aad-3364-45df-88b5-b23ae76edbba,1,0,9a2f2cd1-4c9f-460b-b3b7-64706a0164ab,9a2f2cd1-4c9f-460b-b3b7-64706a0164ab,1,0,7e4b9dce-e332-4d35-8b5f-d3f88918989d,7e4b9dce-e332-4d35-8b5f-d3f88918989d,1,0,15cd04c9-c12a-44ea-a397-d2adbac99c5b,15cd04c9-c12a-44ea-a397-d2adbac99c5b,1,0,182f92f5-0a8e-4f6a-9f9e-7878fafd0a2a,182f92f5-0a8e-4f6a-9f9e-7878fafd0a2a,1,0,45ca26ef-2a9f-4f24-a81b-2fe10c02ed9f,45ca26ef-2a9f-4f24-a81b-2fe10c02ed9f,1,0,56aa4b2f-5b7e-457d-a59d-837405f17fde,56aa4b2f-5b7e-457d-a59d-837405f17fde,1,0,819e2442-cb5a-4826-8a66-b34a3270e8e0,819e2442-cb5a-4826-8a66-b34a3270e8e0,1,0,49987536-3ab9-4a68-83a2-5dc3cd5d58fb,49987536-3ab9-4a68-83a2-5dc3cd5d58fb,1,0,8e4eec45-6ad3-4ac8-940a-b3130f504685,8e4eec45-6ad3-4ac8-940a-b3130f504685,1,0,ccdfef4b-a022-4bde-9c6c-84129b2bad65,ccdfef4b-a022-4bde-9c6c-84129b2bad65,1,0,95adcac2-bc88-46bc-aae5-d13cfb9a170c,95adcac2-bc88-46bc-aae5-d13cfb9a170c,1,0,d845ca4c-3af2-4322-8565-64f3aee61e3a,d845ca4c-3af2-4322-8565-64f3aee61e3a,1,0,430cf66c-5cfc-4fd4-bbf3-d9df6070e115,430cf66c-5cfc-4fd4-bbf3-d9df6070e115,1,0,6321fc1e-c1d7-4b49-b730-258857b2d936,6321fc1e-c1d7-4b49-b730-258857b2d936,1,0,f48abfe8-e400-4544-a80a-d1cb0b7d3ea8,f48abfe8-e400-4544-a80a-d1cb0b7d3ea8,1,0,ce40016b-7ca7-4803-81fa-5df0b92dbc54,ce40016b-7ca7-4803-81fa-5df0b92dbc54,1,0,b58b711b-8e9a-44a0-b62d-6b6362177a4b,b58b711b-8e9a-44a0-b62d-6b6362177a4b,1,0,f7c0af11-1b64-4504-a8db-0fd09c2ce20f,f7c0af11-1b64-4504-a8db-0fd09c2ce20f,1,0,b3c7cd75-fb40-4121-a727-d557fe66a5e0,b3c7cd75-fb40-4121-a727-d557fe66a5e0,1,0,38be384a-3abb-4f4d-b8b7-164c2c8d8b28,38be384a-3abb-4f4d-b8b7-164c2c8d8b28,1,0,8c697e44-1a1d-4c4a-b141-5254cfb229a5,8c697e44-1a1d-4c4a-b141-5254cfb229a5,1,0,96fe619a-b819-4f96-9788-e1f4ef57833a,96fe619a-b819-4f96-9788-e1f4ef57833a,1,0,94dff2da-f721-411a-9fc0-5d013b685dcc,94dff2da-f721-411a-9fc0-5d013b685dcc,1,0,9343fc5f-7b08-4be5-8cd5-dbed635b819d,9343fc5f-7b08-4be5-8cd5-dbed635b819d,1,0,99e87e66-1b07-451b-a476-f5213cbd7150,99e87e66-1b07-451b-a476-f5213cbd7150,1,0,c3317f75-f6ad-41f6-97f1-77074c3ff62a,c3317f75-f6ad-41f6-97f1-77074c3ff62a,1,0,8800dec9-84f8-4643-8742-1d76fe575f58,8800dec9-84f8-4643-8742-1d76fe575f58,1,0,62903794-3b41-4d21-b800-1c26dbeda3ce,62903794-3b41-4d21-b800-1c26dbeda3ce,1,0,9bda4a0b-e8a7-4acf-9f07-4033b3a84ebc,9bda4a0b-e8a7-4acf-9f07-4033b3a84ebc,1,0,4ba2e55e-29bc-4fbe-83e8-8bfa36abfdab,4ba2e55e-29bc-4fbe-83e8-8bfa36abfdab,1,0,93de88de-0069-4aa8-96b2-d5709e4def2f,93de88de-0069-4aa8-96b2-d5709e4def2f,1,0,9f94fadf-ac9d-4e57-9fe4-41ce8cfbec6a,9f94fadf-ac9d-4e57-9fe4-41ce8cfbec6a,1,0,12d4ffc8-592e-42a7-b8c6-20bd58f6da90,12d4ffc8-592e-42a7-b8c6-20bd58f6da90,1,0,3a8d9010-8785-4d8d-b908-b821d7d681c9,3a8d9010-8785-4d8d-b908-b821d7d681c9,1,0,2568a935-ea49-4b99-aa9c-de27de6a0e81,2568a935-ea49-4b99-aa9c-de27de6a0e81,1,0,de2bdd4f-93f2-4341-86d6-7082fc286a5c,de2bdd4f-93f2-4341-86d6-7082fc286a5c,1,0,ba96ec0e-931e-45be-a782-e68ba4fedddb,ba96ec0e-931e-45be-a782-e68ba4fedddb,1,0,9af5882f-3a42-4fae-83df-6aa8de577112,9af5882f-3a42-4fae-83df-6aa8de577112,1,0,79bc5e39-3017-48bf-8e42-fa34e8b581ef,79bc5e39-3017-48bf-8e42-fa34e8b581ef,1,0,fe6e207f-d306-4470-8441-ffd3f3710d31,fe6e207f-d306-4470-8441-ffd3f3710d31,1,0,7451af80-7387-4e8d-a3da-2ae0540c3fd4,7451af80-7387-4e8d-a3da-2ae0540c3fd4,1,0,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,1c1e01f2-b2b3-480d-ae51-2db27b82dedd,1,0,df459525-4e4d-4819-b996-5a6379b22a88,df459525-4e4d-4819-b996-5a6379b22a88,1,0,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,ed1d69f4-b09f-430a-bb2e-a23fe4dedf6b,1,0,e67b4a32-4bac-450e-be6d-88c262383f31,e67b4a32-4bac-450e-be6d-88c262383f31,1,0,8b83bb54-4c23-4bd8-bd00-374a7a101cfa,8b83bb54-4c23-4bd8-bd00-374a7a101cfa,1,0,6c4c3eca-8b02-451b-af52-93073c3da146,6c4c3eca-8b02-451b-af52-93073c3da146,1,0,095c281c-3903-465d-baea-af1e6abf8019,095c281c-3903-465d-baea-af1e6abf8019,1,0,440d115d-a769-427e-891a-88d65fba2057,440d115d-a769-427e-891a-88d65fba2057,1,0,f7932210-027e-4fad-b7f7-3530789ce803,f7932210-027e-4fad-b7f7-3530789ce803,1,0,7bbfd95e-39a1-485b-930f-c9210c18dcd0,7bbfd95e-39a1-485b-930f-c9210c18dcd0,1,0,4975d3d6-b5a2-41c6-973b-6817013a388d,4975d3d6-b5a2-41c6-973b-6817013a388d,1,0,18ebc799-9724-4ffb-855e-b09a0723869e,18ebc799-9724-4ffb-855e-b09a0723869e,1,0,a06b8ef5-83e6-4fc6-91e1-256004134d69,a06b8ef5-83e6-4fc6-91e1-256004134d69,1,0,1d6a68ec-917f-4c3b-b970-797a6921cbc9,1d6a68ec-917f-4c3b-b970-797a6921cbc9,1,0,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,ae29eb40-5c8f-4ab4-8556-f98d45e8effe,1,0,5b663988-3599-46dc-8d59-4c82ceac537c,5b663988-3599-46dc-8d59-4c82ceac537c,1,0,0f5f136c-688b-491e-a72b-3d9c2e609f0e,0f5f136c-688b-491e-a72b-3d9c2e609f0e,1,0,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,5573b405-6ac4-4632-b8d6-5d1cbdb63b97,1,0,679cc0df-df5c-4c33-8c64-c0b6cee39116,679cc0df-df5c-4c33-8c64-c0b6cee39116,1,0,b156752b-f25c-4f35-9474-8ac3636597f5,b156752b-f25c-4f35-9474-8ac3636597f5,1,0,bdc51d67-5fc2-4d28-8875-69e33e625be6,bdc51d67-5fc2-4d28-8875-69e33e625be6,1,0,94ca9aa0-f61f-496b-8fef-9e6fb7bd8f87,94ca9aa0-f61f-496b-8fef-9e6fb7bd8f87,1,0,b494ca7b-6548-4fa2-932c-acdf8c62a78a,b494ca7b-6548-4fa2-932c-acdf8c62a78a,1,0,2d279292-f9d6-4d5a-aaeb-f82f6485ac54,2d279292-f9d6-4d5a-aaeb-f82f6485ac54,1,0,f335aa38-4e9e-4653-9a76-b6d4ae178c93,f335aa38-4e9e-4653-9a76-b6d4ae178c93,1,0,a62894bc-fab4-4ed4-a57d-cbe725527198,a62894bc-fab4-4ed4-a57d-cbe725527198,1,0,d4e567c7-55f1-4564-b066-f5b2355ad82c,d4e567c7-55f1-4564-b066-f5b2355ad82c,1,0,89cf2cd8-dc43-4742-af5a-5975e9546786,89cf2cd8-dc43-4742-af5a-5975e9546786,1,0,089ae618-cd90-482a-b4a2-45a04aaecc0c,089ae618-cd90-482a-b4a2-45a04aaecc0c,1,0,d1beef4e-9c78-49f5-9e52-1568fadf861d,d1beef4e-9c78-49f5-9e52-1568fadf861d,1,0,e6032a40-6195-4889-99f5-f7f4c74d4e8f,e6032a40-6195-4889-99f5-f7f4c74d4e8f,1,0,f9f12c11-04e8-4999-b1ab-ddea896638a2,f9f12c11-04e8-4999-b1ab-ddea896638a2,1,0,47ae26c4-1c47-4d9d-a0b8-a9899d08a4ce,47ae26c4-1c47-4d9d-a0b8-a9899d08a4ce,1,0,83245a76-8502-47a4-98ae-2ffadb78a029,83245a76-8502-47a4-98ae-2ffadb78a029,1,0,c9d5a41d-a2d9-4ec6-9a51-e4d254df1927,c9d5a41d-a2d9-4ec6-9a51-e4d254df1927,1,0,22d7df25-5885-4ad6-bb29-28257256da22,22d7df25-5885-4ad6-bb29-28257256da22,1,0,3bb85423-6ce7-416f-884a-89c75deed890,3bb85423-6ce7-416f-884a-89c75deed890,1,0,132c8921-189a-4c00-a8a4-417728520203,132c8921-189a-4c00-a8a4-417728520203,1,0,18535b06-82f0-4179-af3c-975a5ba85872,18535b06-82f0-4179-af3c-975a5ba85872,1,0,1d0981b4-cf7c-4094-a597-d709a8573d71,1d0981b4-cf7c-4094-a597-d709a8573d71,1,0,b5bb5376-27a6-43f2-9e91-bf7c913b89fd,b5bb5376-27a6-43f2-9e91-bf7c913b89fd,1,0,24861cd2-2be0-4454-8154-2201e63be266,24861cd2-2be0-4454-8154-2201e63be266,1,0,2e364599-aad9-4d1d-a4df-6cbd3ed768e7,2e364599-aad9-4d1d-a4df-6cbd3ed768e7,1,0,c14cac09-820e-47ae-81bb-eb497950d40c,c14cac09-820e-47ae-81bb-eb497950d40c,1,0,201cd431-6027-466c-abec-09ff65f42244,201cd431-6027-466c-abec-09ff65f42244,1,0,1018c5d8-8aed-49ba-a27c-a44bddd96144,1018c5d8-8aed-49ba-a27c-a44bddd96144,1,0,a81e5d20-9c42-462d-83a3-f86522c473f5,a81e5d20-9c42-462d-83a3-f86522c473f5,1,0,1ce4440e-3709-4cb1-8505-2379d5146be3,1ce4440e-3709-4cb1-8505-2379d5146be3,1,0,a26d8489-88a8-438e-bb58-c7b5a742a243,a26d8489-88a8-438e-bb58-c7b5a742a243,1,0,67dc31fa-cc64-4d29-96aa-65a7fd480790,67dc31fa-cc64-4d29-96aa-65a7fd480790,1,0,17f0e86d-8661-492c-85fa-2ce3cd1a57d5,17f0e86d-8661-492c-85fa-2ce3cd1a57d5,1,0,9728fd22-163c-443d-a89f-79d15c51c086,9728fd22-163c-443d-a89f-79d15c51c086,1,0,7030a503-e97c-4cb8-b6cd-79dbd08fd2cc,7030a503-e97c-4cb8-b6cd-79dbd08fd2cc,1,0,0a7c25db-dba6-44d3-b994-d672c4f33f1f,0a7c25db-dba6-44d3-b994-d672c4f33f1f,1,0,618b565c-f80f-4e58-94f1-227d4bdc8fe7,618b565c-f80f-4e58-94f1-227d4bdc8fe7,1,0,e36ed6bf-7bb2-419f-b3d4-fe6f7e75188d,e36ed6bf-7bb2-419f-b3d4-fe6f7e75188d,1,0,018bd653-a526-4e2c-8483-1192ae997458,018bd653-a526-4e2c-8483-1192ae997458,1,0,788a38ca-6ef8-4a05-a0c7-032766b135d9,788a38ca-6ef8-4a05-a0c7-032766b135d9,1,0,82e0e020-d6a7-45ae-bdbd-d29aacff313a,82e0e020-d6a7-45ae-bdbd-d29aacff313a,1,0,31ac5bc1-3642-456b-aaed-d604669556f6,31ac5bc1-3642-456b-aaed-d604669556f6,1,0,3157f1b3-5d78-4fe4-89bf-afca0026a8d5,3157f1b3-5d78-4fe4-89bf-afca0026a8d5,1,0,317e6068-5c8e-4455-932c-f5ae09e398c3,317e6068-5c8e-4455-932c-f5ae09e398c3,1,0,8424768a-3673-4e7c-840f-836515f85ba9,8424768a-3673-4e7c-840f-836515f85ba9,1,0,37ba6039-9162-4c7e-9975-de3aec39664f,37ba6039-9162-4c7e-9975-de3aec39664f,1,0,1ed0209f-4e11-452b-8520-66bf02186f1a,1ed0209f-4e11-452b-8520-66bf02186f1a,1,0,d1e25f7f-f2c5-48bf-a7f4-4cd40d992e53,d1e25f7f-f2c5-48bf-a7f4-4cd40d992e53,1,0,4d7f4a37-8426-4f06-9b64-cae252cb8e9e,4d7f4a37-8426-4f06-9b64-cae252cb8e9e,1,0,ae5b5521-a525-402d-99b0-e83a7b2caaa4,ae5b5521-a525-402d-99b0-e83a7b2caaa4,1,0,3858dbf0-cb6b-4c67-9dd9-eb900c3688f4,3858dbf0-cb6b-4c67-9dd9-eb900c3688f4,1,0,a04a50db-cb4a-496e-8c25-5591d863a7d5,a04a50db-cb4a-496e-8c25-5591d863a7d5,1,0,17aadd5f-cda2-4785-a07f-3ab4b04434a6,17aadd5f-cda2-4785-a07f-3ab4b04434a6,1,0,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,71bc35e6-0fec-4e54-af2d-23d1357d1c3b,1,0,1832336e-32f6-42c4-9087-8614ead52bb3,1832336e-32f6-42c4-9087-8614ead52bb3,1,0,ff9f7b5c-70f4-4eed-8216-64448e7da76f,ff9f7b5c-70f4-4eed-8216-64448e7da76f,1,0,44ac2869-990d-4cac-a14b-c1a28854341e,44ac2869-990d-4cac-a14b-c1a28854341e,1,0,d5df31c3-89f9-469c-80a9-fb4706d30bc4,d5df31c3-89f9-469c-80a9-fb4706d30bc4,1,0,65ad33ce-edab-4f8b-8f44-1a5634d87191,65ad33ce-edab-4f8b-8f44-1a5634d87191,1,0,bcd727b5-4678-41e9-85d5-98d4157cdd77,bcd727b5-4678-41e9-85d5-98d4157cdd77,1,0,38c6dd83-2a70-4c4a-9f29-3b2b54a15501,38c6dd83-2a70-4c4a-9f29-3b2b54a15501,1,0,f403fcb3-a4f8-479d-9fa1-85d458b9a4b5,f403fcb3-a4f8-479d-9fa1-85d458b9a4b5,1,0,c56d3cfe-6ae1-4fe3-abdc-2d845049ddde,c56d3cfe-6ae1-4fe3-abdc-2d845049ddde,1,0,66f1dc54-f28c-4fb7-a6c9-f839d656e87c,66f1dc54-f28c-4fb7-a6c9-f839d656e87c,1,0,b8e3d08d-d442-4ffa-83d8-f372a7d2d340,b8e3d08d-d442-4ffa-83d8-f372a7d2d340,1,0,ebba727b-8155-4dd8-8ea0-207ca396566b,ebba727b-8155-4dd8-8ea0-207ca396566b,1,0,e4166141-f18f-4d27-beb5-9e30fe30f842,e4166141-f18f-4d27-beb5-9e30fe30f842,1,0,b62434ac-ef9f-4fe7-8279-357e0dd760ac,b62434ac-ef9f-4fe7-8279-357e0dd760ac,1,0,eb1c7d02-f5fc-4b37-9b32-7dd828958d76,eb1c7d02-f5fc-4b37-9b32-7dd828958d76,1,0,db2f20a7-e01f-4c03-9343-a815e1b46b50,db2f20a7-e01f-4c03-9343-a815e1b46b50,1,0,cf122ec9-d781-434c-9742-300e701317d6,cf122ec9-d781-434c-9742-300e701317d6,1,0,2aa2a968-2cac-4883-9bc8-5a3ccbd2e7a9,2aa2a968-2cac-4883-9bc8-5a3ccbd2e7a9,1,0,7d1361af-c5d3-4312-ab5e-ba00bf3418f2,7d1361af-c5d3-4312-ab5e-ba00bf3418f2,1,0,d7fdb3d5-3c18-4d9c-938a-2fbe8a96e877,d7fdb3d5-3c18-4d9c-938a-2fbe8a96e877,1,0,b8658e11-42b6-41bb-b384-5380e2228338,b8658e11-42b6-41bb-b384-5380e2228338,1,0,40c0919f-2c53-4502-af06-745dfa47fd8e,40c0919f-2c53-4502-af06-745dfa47fd8e,1,0,b01e4e7f-1b01-4c19-ab4b-7a8c1f6b0d22,b01e4e7f-1b01-4c19-ab4b-7a8c1f6b0d22,1,0,662a2803-da19-40c7-a906-e20d0843f67f,662a2803-da19-40c7-a906-e20d0843f67f,1,0,327c0731-1496-4463-837f-8f9c3e4c1a49,327c0731-1496-4463-837f-8f9c3e4c1a49,1,0,d74a37c2-7f50-40da-b7f8-29f79ae7230c,d74a37c2-7f50-40da-b7f8-29f79ae7230c,1,0,37a677e7-6661-41b5-ba68-740361168ccf,37a677e7-6661-41b5-ba68-740361168ccf,1,0,2a41d20d-d57a-4ce8-832f-c1b83099e563,2a41d20d-d57a-4ce8-832f-c1b83099e563,1,0,a0701ad3-572a-4806-91c0-6c5fff8dd350,a0701ad3-572a-4806-91c0-6c5fff8dd350,1,0,c9f268d1-6d2a-47d5-9371-f951b95d24a6,c9f268d1-6d2a-47d5-9371-f951b95d24a6,1,0,86b155be-d611-46b4-8275-bb19a2fa20ba,86b155be-d611-46b4-8275-bb19a2fa20ba,1,0,fedb2d36-bb2e-49dd-9d52-afcc41f3636b,fedb2d36-bb2e-49dd-9d52-afcc41f3636b,1,0,5d74d2d1-a2af-4a52-a884-a60e6b07ffac,5d74d2d1-a2af-4a52-a884-a60e6b07ffac,1,0,69e67507-e063-4221-9b84-2ee9d8903c1a,69e67507-e063-4221-9b84-2ee9d8903c1a,1,0,a649cb56-2a53-4508-8bf4-9aa01373ede2,a649cb56-2a53-4508-8bf4-9aa01373ede2,1,0,7e572d75-3a89-43c0-ad68-18498d67f8ca,7e572d75-3a89-43c0-ad68-18498d67f8ca,1,0,3c159a42-d9f9-4de4-a86f-893b1fc65b46,3c159a42-d9f9-4de4-a86f-893b1fc65b46,1,0,545cd0e7-4125-48f1-9123-0bc39e436e5e,545cd0e7-4125-48f1-9123-0bc39e436e5e,1,0,9a17eec6-b517-4133-8d25-bb953d84461f,9a17eec6-b517-4133-8d25-bb953d84461f,1,0,a0a61d7f-879d-4e92-98a3-5291c834c341,a0a61d7f-879d-4e92-98a3-5291c834c341,1,0,7bf60016-2edc-443b-98b4-0864b548c482,7bf60016-2edc-443b-98b4-0864b548c482,1,0,74139209-f345-4fd9-9ade-15cc4d399836,74139209-f345-4fd9-9ade-15cc4d399836,1,0,e39de1c5-b43b-4f71-aa32-c03b8afd6f65,e39de1c5-b43b-4f71-aa32-c03b8afd6f65,1,0,d5b6aad4-b1bd-464b-aca0-f8455d6388b4,d5b6aad4-b1bd-464b-aca0-f8455d6388b4,1,0,033ab408-fa51-4af2-a82c-f3167de00681,033ab408-fa51-4af2-a82c-f3167de00681,1,0,f7267120-f367-4d47-be5e-e2aa7a2ada46,f7267120-f367-4d47-be5e-e2aa7a2ada46,1,0,911b4ba4-1902-4c69-a4c9-963ab93d35b0,911b4ba4-1902-4c69-a4c9-963ab93d35b0,1,0,70cf60eb-a5f8-4573-a28b-6844721459de,70cf60eb-a5f8-4573-a28b-6844721459de,1,0,e2666bd9-bf44-408b-98fa-b9be26bde33f,e2666bd9-bf44-408b-98fa-b9be26bde33f,1,0,9151fa13-6612-4c4c-a264-3fd669205de7,9151fa13-6612-4c4c-a264-3fd669205de7,1,0,fee8fd9d-be7d-4560-9b96-819ffd497c88,fee8fd9d-be7d-4560-9b96-819ffd497c88,1,0,c86135b4-063c-4ca8-99e2-35c61026b43f,c86135b4-063c-4ca8-99e2-35c61026b43f,1,0,186792a9-0a07-4b6d-a9a0-337221f6b009,186792a9-0a07-4b6d-a9a0-337221f6b009,1,0,49163bf6-4a6a-4da9-a0ed-257c22224b47,49163bf6-4a6a-4da9-a0ed-257c22224b47,1,0,74c71abe-90eb-4c05-a4a6-375a93e7b99c,74c71abe-90eb-4c05-a4a6-375a93e7b99c,1,0,d36efd98-34a7-41b4-99b6-34c09e71525a,d36efd98-34a7-41b4-99b6-34c09e71525a,1,0,e73a6a9d-8ddd-4531-9f17-745117d9da9b,e73a6a9d-8ddd-4531-9f17-745117d9da9b,1,0,9dd4e17c-d10b-435e-8665-08997edc3e7e,9dd4e17c-d10b-435e-8665-08997edc3e7e,1,0,cafd44e1-8509-4550-8329-ff8cab0c31ae,cafd44e1-8509-4550-8329-ff8cab0c31ae,1,0,ee0412d3-58e7-4715-8774-d49778e1ef73,ee0412d3-58e7-4715-8774-d49778e1ef73,1,0,ea31df21-1402-417a-9788-b17a7116e842,ea31df21-1402-417a-9788-b17a7116e842,1,0,7a93efb9-62bb-437a-8095-b26a2c8ce8ed,7a93efb9-62bb-437a-8095-b26a2c8ce8ed,1,0,e964753f-7f4c-4f9f-bd17-cdac317c1d35,e964753f-7f4c-4f9f-bd17-cdac317c1d35,1,0,20c2aba0-e2b2-4e4f-9d48-1515c0ae7b4d,20c2aba0-e2b2-4e4f-9d48-1515c0ae7b4d,1,0,43c22498-3fd6-4038-a291-05f0db9ab66a,43c22498-3fd6-4038-a291-05f0db9ab66a,1,0,4ffc9d16-c450-4ecb-b8f6-9ec6fe37fc75,4ffc9d16-c450-4ecb-b8f6-9ec6fe37fc75,1,0,ee6e5e56-5848-46b6-89bf-b9345a57d94c,ee6e5e56-5848-46b6-89bf-b9345a57d94c,1,0,8817c872-bdee-4577-bcc3-4046edc72803,8817c872-bdee-4577-bcc3-4046edc72803,1,0,5b88c214-4e4e-45c2-b8c5-14eb852e9900,5b88c214-4e4e-45c2-b8c5-14eb852e9900,1,0,851118bb-7e22-4c3c-a050-51b89216df86,851118bb-7e22-4c3c-a050-51b89216df86,1,0,4575003b-10c6-4d8e-bc5e-c643f38b24d9,4575003b-10c6-4d8e-bc5e-c643f38b24d9,1,0,b3fd4c7b-b7ae-40b9-bbe0-42fae0bc6bf5,b3fd4c7b-b7ae-40b9-bbe0-42fae0bc6bf5,1,0,e68e3408-ae45-4d3f-8cbf-e1f517cd4dec,e68e3408-ae45-4d3f-8cbf-e1f517cd4dec,1,0,6252386c-865f-41cc-aef4-1d8bf7087798,6252386c-865f-41cc-aef4-1d8bf7087798,1,0,9d256a1d-5a06-4716-9d83-c5877a5ffc14,9d256a1d-5a06-4716-9d83-c5877a5ffc14,1,0,63623218-8035-4ad9-b4db-a1f917c5641a,63623218-8035-4ad9-b4db-a1f917c5641a,1,0,d58babbe-6f59-4027-86db-54343d11e1c8,d58babbe-6f59-4027-86db-54343d11e1c8,1,0,a4cc0476-99a7-4b61-a382-2a6bb8d2043e,a4cc0476-99a7-4b61-a382-2a6bb8d2043e,1,0,8dbca9a8-97c0-4c95-b0a6-1c3f54e6fbab,8dbca9a8-97c0-4c95-b0a6-1c3f54e6fbab,1,0,4d23fa01-b9ef-419c-8806-e0b0fad14be0,4d23fa01-b9ef-419c-8806-e0b0fad14be0,1,0,3eb4e1a4-8653-410f-ae73-b25c03348880,3eb4e1a4-8653-410f-ae73-b25c03348880,1,0,105cd740-1f60-45e1-871c-adeecd291b0d,105cd740-1f60-45e1-871c-adeecd291b0d,1,0,95aec7d2-179b-4ea3-a3df-3d737b713564,95aec7d2-179b-4ea3-a3df-3d737b713564,1,0,4bd1cae4-d5b5-444e-9cf5-67a969714293,4bd1cae4-d5b5-444e-9cf5-67a969714293,1,0,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,b1a330d7-9b88-44e9-aba6-41ce5e5e669c,1,0,f279a625-b88f-43b4-bce9-de1186fe7d7e,f279a625-b88f-43b4-bce9-de1186fe7d7e,1,0,a2f19cb2-9f2e-442b-b9f2-e5253c70871c,a2f19cb2-9f2e-442b-b9f2-e5253c70871c,1,0,0c67453e-038b-46f3-8c13-2786e8622ad8,0c67453e-038b-46f3-8c13-2786e8622ad8,1,0,8ff1dc4d-b46c-4519-80fe-19448e620e74,8ff1dc4d-b46c-4519-80fe-19448e620e74,1,0,7cd5ca8c-cc97-4664-964e-152fdcb5bdef,7cd5ca8c-cc97-4664-964e-152fdcb5bdef,1,0,be0a5f9a-ffab-41d8-b55a-a61355f5d269,be0a5f9a-ffab-41d8-b55a-a61355f5d269,1,0,9286105d-9aa9-44f9-ae63-bbbcec64eade,9286105d-9aa9-44f9-ae63-bbbcec64eade,1,0,99fc224a-2a61-441a-85e9-d69df6aa8b5e,99fc224a-2a61-441a-85e9-d69df6aa8b5e,1,0,a528c26f-3ceb-4ae4-8420-edfbdea6e1ac,a528c26f-3ceb-4ae4-8420-edfbdea6e1ac,1,0,d009782b-d73e-42d1-9979-2cbaf20ee98e,d009782b-d73e-42d1-9979-2cbaf20ee98e,1,0,1ef6282c-ae81-4d76-8e3e-99fec58fc7bd,1ef6282c-ae81-4d76-8e3e-99fec58fc7bd,1,0,88d8edf7-654f-4627-b68d-c7e929726da6,88d8edf7-654f-4627-b68d-c7e929726da6,1,0,483720db-6c9e-4179-b5c7-56159c9b6073,483720db-6c9e-4179-b5c7-56159c9b6073,1,0,88fafb0d-d624-4b91-8c68-c354817ccddb,88fafb0d-d624-4b91-8c68-c354817ccddb,1,0,f4a3e032-61fb-4004-bd4d-6eaffb53437b,f4a3e032-61fb-4004-bd4d-6eaffb53437b,1,0,9126b840-ddcc-4054-aa16-4156288a379e,9126b840-ddcc-4054-aa16-4156288a379e,1,0,a6facfdb-7529-479c-9bb3-e63316b032f4,a6facfdb-7529-479c-9bb3-e63316b032f4,1,0,1725c619-9c4a-40ac-9044-00fee71945a4,1725c619-9c4a-40ac-9044-00fee71945a4,1,0,45a85e25-7c33-4ff5-87a0-2a0b4cda8130,45a85e25-7c33-4ff5-87a0-2a0b4cda8130,1,0,e95b126d-797d-4071-b7b4-b14aaf595f2d,e95b126d-797d-4071-b7b4-b14aaf595f2d,1,0,9241ea3c-633f-4469-9e70-c5a20e464da8,9241ea3c-633f-4469-9e70-c5a20e464da8,1,0,bbadbe1b-cb33-4cc5-84c8-a4fdfc8a2247,bbadbe1b-cb33-4cc5-84c8-a4fdfc8a2247,1,0,961ae0fb-7f7b-414d-8fbf-32b893b41085,961ae0fb-7f7b-414d-8fbf-32b893b41085,1,0,10adf8c8-6f5f-477f-b244-4452b774b766,10adf8c8-6f5f-477f-b244-4452b774b766,1,0,ac9dcb8c-d4f5-4f0d-affb-e4187eafdf14,ac9dcb8c-d4f5-4f0d-affb-e4187eafdf14,1,0,04ec5e44-8469-4e9c-8021-83d258f2ec54,04ec5e44-8469-4e9c-8021-83d258f2ec54,1,0,cff36ede-0bd1-424b-8c75-b9695133f32e,cff36ede-0bd1-424b-8c75-b9695133f32e,1,0,9d872d99-eac7-43ee-8ce2-c9d31a76bd75,9d872d99-eac7-43ee-8ce2-c9d31a76bd75,1,0,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,77e5bd01-35f3-4072-bc7a-8730e6dcbab3,1,0,58b33683-1916-4aef-9b98-5569ef7782ed,58b33683-1916-4aef-9b98-5569ef7782ed,1,0,d3e1f622-f438-4cad-94ae-0272f51610f7,d3e1f622-f438-4cad-94ae-0272f51610f7,1,0,8569cd73-d40d-4d92-83e0-8ece0c03a86a,8569cd73-d40d-4d92-83e0-8ece0c03a86a,1,0,9ebe2809-be6b-4c91-9443-b237fb7ad43c,9ebe2809-be6b-4c91-9443-b237fb7ad43c,1,0,bf29c091-de15-4cd4-be0e-a9785f97d444,bf29c091-de15-4cd4-be0e-a9785f97d444,1,0,060b2bb4-ca03-4da9-930f-7f91f6299a35,060b2bb4-ca03-4da9-930f-7f91f6299a35,1,0,394b1a1c-a7ae-41b7-a346-4bac99fa567d,394b1a1c-a7ae-41b7-a346-4bac99fa567d,1,0,9a5fa511-59e8-4a1b-a101-f276f0b7b261,9a5fa511-59e8-4a1b-a101-f276f0b7b261,1,0,ccfe4e36-80b6-419f-8bb3-c1046203d023,ccfe4e36-80b6-419f-8bb3-c1046203d023,1,0,94b2e060-53b7-4b40-af05-30bea3520330,94b2e060-53b7-4b40-af05-30bea3520330,1,0,0f634f7e-7d6b-43e4-8e5e-a31ed05898ea,0f634f7e-7d6b-43e4-8e5e-a31ed05898ea,1,0,41b0dabd-85a3-4819-84dd-371eaf4f996e,41b0dabd-85a3-4819-84dd-371eaf4f996e,1,0,86a5ba4d-0681-4ddc-a505-0f537528e1a3,86a5ba4d-0681-4ddc-a505-0f537528e1a3,1,0,12d936f5-932b-4561-b934-c8444808a450,12d936f5-932b-4561-b934-c8444808a450,1,0,2ccb06ca-9bb7-4b74-9a96-c109bb117984,2ccb06ca-9bb7-4b74-9a96-c109bb117984,1,0,ac1a661d-db18-4576-80a9-a19d4140c05e,ac1a661d-db18-4576-80a9-a19d4140c05e,1,0,acd89f6c-a25f-47b9-ac21-036bfafcc0fc,acd89f6c-a25f-47b9-ac21-036bfafcc0fc,1,0,aa114d56-2faf-4925-8319-f0aa3993e9ee,aa114d56-2faf-4925-8319-f0aa3993e9ee,1,0,c3ffeb09-121b-4d77-9c15-def4648b4f3c,c3ffeb09-121b-4d77-9c15-def4648b4f3c,1,0,c2de0724-04c1-4adb-b62a-b7ba727dbe67,c2de0724-04c1-4adb-b62a-b7ba727dbe67,1,0,4ae26777-69ff-4a55-942b-0bad8ab7a70a,4ae26777-69ff-4a55-942b-0bad8ab7a70a,1,0,a0d8fb0a-0e90-4140-8687-e249b153dc66,a0d8fb0a-0e90-4140-8687-e249b153dc66,1,0,917c6f60-2a07-4587-9496-d393aff93953,917c6f60-2a07-4587-9496-d393aff93953,1,0,4bac50a2-762a-44e6-b8c5-3b09ef1a3f5e,4bac50a2-762a-44e6-b8c5-3b09ef1a3f5e,1,0,9fe72d73-4c95-47e0-bf92-dcb714d747c6,9fe72d73-4c95-47e0-bf92-dcb714d747c6,1,0,fe00e64f-2fa9-44a7-9bd7-854ebb6c0185,fe00e64f-2fa9-44a7-9bd7-854ebb6c0185,1,0,4d84bb11-e06e-4ed9-915b-76ee0e385a8b,4d84bb11-e06e-4ed9-915b-76ee0e385a8b,1,0,2b94076d-39ee-45ad-9ba5-435115cf5d4f,2b94076d-39ee-45ad-9ba5-435115cf5d4f,1,0,72ace16c-e90a-4d05-bc23-4351d4c87683,72ace16c-e90a-4d05-bc23-4351d4c87683,1,0,bd86e378-84bb-486a-be7b-319a3fe3b70b,bd86e378-84bb-486a-be7b-319a3fe3b70b,1,0,ef3bc279-6721-4949-8dc0-f96141f7f05c,ef3bc279-6721-4949-8dc0-f96141f7f05c,1,0,f81c7e21-48ad-4b64-975d-e62d34c7235a,f81c7e21-48ad-4b64-975d-e62d34c7235a,1,0,d0523c14-585e-45d3-9735-891235631004,d0523c14-585e-45d3-9735-891235631004,1,0,db5fde74-275f-4d82-825c-5c245a7fef6b,db5fde74-275f-4d82-825c-5c245a7fef6b,1,0,e4e534e9-7ccc-4ced-b961-613989a6194b,e4e534e9-7ccc-4ced-b961-613989a6194b,1,0,cc925b83-839b-48da-8f62-7f8cde76ac2a,cc925b83-839b-48da-8f62-7f8cde76ac2a,1,0,7d06f855-8a6a-45e0-a1c2-fd5f03d2a8ed,7d06f855-8a6a-45e0-a1c2-fd5f03d2a8ed,1,0,a156434c-a1f0-401e-90b4-c0adae8800e3,a156434c-a1f0-401e-90b4-c0adae8800e3,1,0,f9681a4d-d47c-4a8d-a8a3-4aafc751e61b,f9681a4d-d47c-4a8d-a8a3-4aafc751e61b,1,0,e6e76d04-8adc-4462-8919-0979258e5a7b,e6e76d04-8adc-4462-8919-0979258e5a7b,1,0,6ee85be2-55f6-4d4b-abf1-0d1d25f61ea3,6ee85be2-55f6-4d4b-abf1-0d1d25f61ea3,1,0,f850e1d5-5108-4ca8-b397-983627e4871b,f850e1d5-5108-4ca8-b397-983627e4871b,1,0,b6f8bc3e-f0cd-43ef-b060-d701cd446197,b6f8bc3e-f0cd-43ef-b060-d701cd446197,1,0,4f10e5f9-6cfd-4fa9-9c72-d19a484a796c,4f10e5f9-6cfd-4fa9-9c72-d19a484a796c,1,0,b94e805f-e1ab-4870-b855-98aa401864b2,b94e805f-e1ab-4870-b855-98aa401864b2,1,0,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,1,0,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,1,0,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,1,0,45af8f5d-d505-466b-a798-19f2219a180c,45af8f5d-d505-466b-a798-19f2219a180c,1,0,8a8229bc-f70a-4434-bacc-8a81fc58154b,8a8229bc-f70a-4434-bacc-8a81fc58154b,1,0,6324ad14-82ca-467b-b6b7-8d5f6049ca65,6324ad14-82ca-467b-b6b7-8d5f6049ca65,1,0,273446f0-f28b-4ce2-874c-3c6a57299b71,273446f0-f28b-4ce2-874c-3c6a57299b71,1,0,eb2f7449-ee42-43ec-b59c-3e07a6e3c139,eb2f7449-ee42-43ec-b59c-3e07a6e3c139,1,0,f8a7913a-2c64-47e1-8ae9-622fc6e9477e,f8a7913a-2c64-47e1-8ae9-622fc6e9477e,1,0,9b46a2b4-223d-4527-a94e-37ecd4fe72d7,9b46a2b4-223d-4527-a94e-37ecd4fe72d7,1,0,7a4e17bf-3649-4982-a9c6-5982390f1f1d,7a4e17bf-3649-4982-a9c6-5982390f1f1d,1,0,722be6e0-2698-431b-9206-777a36e6742f,722be6e0-2698-431b-9206-777a36e6742f,1,0,75bb0122-26bd-40be-8de8-7a57680c85ae,75bb0122-26bd-40be-8de8-7a57680c85ae,1,0,28dd22df-07cc-4e6d-89b2-b15a13f76615,28dd22df-07cc-4e6d-89b2-b15a13f76615,1,0,0c98b025-5adb-44dc-ab14-4c6517cc230b,0c98b025-5adb-44dc-ab14-4c6517cc230b,1,0,da2f09bd-109f-43aa-a90b-f033d17ed689,da2f09bd-109f-43aa-a90b-f033d17ed689,1,0,c4b3cb31-356e-4868-921c-f6710349def8,c4b3cb31-356e-4868-921c-f6710349def8,1,0,f98a7b6d-f364-4b84-9aeb-8dd822ef582f,f98a7b6d-f364-4b84-9aeb-8dd822ef582f,1,0,44526cb1-561d-4b87-a628-d79cc64ccdec,44526cb1-561d-4b87-a628-d79cc64ccdec,1,0,5e4dbba3-07df-4e30-be14-d9244f5ec21c,5e4dbba3-07df-4e30-be14-d9244f5ec21c,1,0,c8116351-4487-40f3-ae04-1e0741cc5df6,c8116351-4487-40f3-ae04-1e0741cc5df6,1,0,a6be80f7-d6aa-4371-a180-3d355080d849,a6be80f7-d6aa-4371-a180-3d355080d849,1,0,b37722c3-e29f-4a40-b4eb-0317919fc7a5,b37722c3-e29f-4a40-b4eb-0317919fc7a5,1,0,b1b1cd90-094d-428b-a6bc-156521c1c54d,b1b1cd90-094d-428b-a6bc-156521c1c54d,1,0,4f79ef7c-79be-4a69-acc0-bd591c712d03,4f79ef7c-79be-4a69-acc0-bd591c712d03,1,0,a0dd2129-d3a1-4bca-b555-72b065be1c13,a0dd2129-d3a1-4bca-b555-72b065be1c13,1,0,dc5e8229-e301-477c-846e-2e7078e3ee5f,dc5e8229-e301-477c-846e-2e7078e3ee5f,1,0,24836e44-8fdd-44bd-91d8-4ddab2caf485,24836e44-8fdd-44bd-91d8-4ddab2caf485,1,0,3727bcfe-4d75-4270-86e7-4a66ab14866c,3727bcfe-4d75-4270-86e7-4a66ab14866c,1,0,870a4708-0b5a-4fa3-9978-d94b161d289a,870a4708-0b5a-4fa3-9978-d94b161d289a,1,0,30e9f89d-7b94-488e-9963-886c271b1af7,30e9f89d-7b94-488e-9963-886c271b1af7,1,0,91af7a52-0825-4af5-94df-cc501e0123cd,91af7a52-0825-4af5-94df-cc501e0123cd,1,0,1c2cc78a-2ae6-4996-a743-7b55aecbe84c,1c2cc78a-2ae6-4996-a743-7b55aecbe84c,1,0,9292bf81-5668-4d52-a4ec-a93bc4b0ad3b,9292bf81-5668-4d52-a4ec-a93bc4b0ad3b,1,0,9693cc78-852e-445b-a7d2-f1689fa9eeec,9693cc78-852e-445b-a7d2-f1689fa9eeec,1,0,eb33e555-db41-462a-a45d-c7e0945cece8,eb33e555-db41-462a-a45d-c7e0945cece8,1,0,9cfd517c-1008-483a-9f65-7d15feb2cefc,9cfd517c-1008-483a-9f65-7d15feb2cefc,1,0,d66adc5e-25a3-472e-b0a4-5f22f88d7a0f,d66adc5e-25a3-472e-b0a4-5f22f88d7a0f,1,0,ae48d48f-cd39-4821-a4b7-9394b2a77ef6,ae48d48f-cd39-4821-a4b7-9394b2a77ef6,1,0,f34d3a69-533e-49df-b91d-f7f7f49c5fb1,f34d3a69-533e-49df-b91d-f7f7f49c5fb1,1,0,1d76f613-f4f6-4772-8c16-d97b3104a553,1d76f613-f4f6-4772-8c16-d97b3104a553,1,0,3e58d607-b906-449f-b044-9c130a487b86,3e58d607-b906-449f-b044-9c130a487b86,1,0,7a911212-7fde-4ea8-a1fa-229116b60895,7a911212-7fde-4ea8-a1fa-229116b60895,1,0,f4580043-5bc2-4295-8523-909302009b44,f4580043-5bc2-4295-8523-909302009b44,1,0,dc8af632-a5a4-4270-ba5f-2d3ba506f7e3,dc8af632-a5a4-4270-ba5f-2d3ba506f7e3,1,0,81936ac2-32fe-4e14-897b-0aba92b90c05,81936ac2-32fe-4e14-897b-0aba92b90c05,1,0,9f88e355-3f8f-4fcd-b45f-39c3d45490f5,9f88e355-3f8f-4fcd-b45f-39c3d45490f5,1,0,2e233e3c-687c-4516-87c6-5d6c5f9f04a2,2e233e3c-687c-4516-87c6-5d6c5f9f04a2,1,0,2afdcde7-46ef-4624-8b84-c6381ff2f3a4,2afdcde7-46ef-4624-8b84-c6381ff2f3a4,1,0,2d279d24-1953-4a2f-8206-77481d2fd718,2d279d24-1953-4a2f-8206-77481d2fd718,1,0,aa6abffe-1b09-48f9-9aee-4f234db6b2a2,aa6abffe-1b09-48f9-9aee-4f234db6b2a2,1,0,0a920200-77d0-42ea-abf6-0d40d63289b0,0a920200-77d0-42ea-abf6-0d40d63289b0,1,0,c850bafc-4073-44ef-b148-194f87c46f0e,c850bafc-4073-44ef-b148-194f87c46f0e,1,0,6d1dd726-815d-476e-b668-95cff4182e54,6d1dd726-815d-476e-b668-95cff4182e54,1,0,12f4a0ed-4798-4467-8834-de3eb385e22d,12f4a0ed-4798-4467-8834-de3eb385e22d,1,0,5710809e-4c41-42ab-952f-f7778fe9be0f,5710809e-4c41-42ab-952f-f7778fe9be0f,1,0,0811f6c2-6bb3-43b8-9944-910adc4c6f23,0811f6c2-6bb3-43b8-9944-910adc4c6f23,1,0,c1646df4-9fce-44f0-9cc3-a5dab0bbef2e,c1646df4-9fce-44f0-9cc3-a5dab0bbef2e,1,0,c86b02ab-3532-4f4c-b993-e237ed0d4d12,c86b02ab-3532-4f4c-b993-e237ed0d4d12,1,0,83c860a2-d0d7-4b7c-a127-78d86b155cfa,83c860a2-d0d7-4b7c-a127-78d86b155cfa,1,0,06e45039-8bc4-44dd-8a93-2cec34ad51ee,06e45039-8bc4-44dd-8a93-2cec34ad51ee,1,0,46e01647-cbdd-4387-affc-29b92ede8644,46e01647-cbdd-4387-affc-29b92ede8644,1,0,faa44953-118b-4027-a913-c485bca7a93f,faa44953-118b-4027-a913-c485bca7a93f,1,0,c9bd0dcd-98ec-4dc9-869a-e735fd269046,c9bd0dcd-98ec-4dc9-869a-e735fd269046,1,0,d039bfa4-39a0-43d4-ab6a-0697f9d2b375,d039bfa4-39a0-43d4-ab6a-0697f9d2b375,1,0,09072c75-75c7-4050-b674-9454558a1f87,09072c75-75c7-4050-b674-9454558a1f87,1,0,f0c8d2d2-d597-4f09-8257-0fa7524f1e44,f0c8d2d2-d597-4f09-8257-0fa7524f1e44,1,0,3e2f75ab-4143-48ca-83db-3006cb2a8584,3e2f75ab-4143-48ca-83db-3006cb2a8584,1,0,91a82492-5e27-46b6-b1a8-48e89a437715,91a82492-5e27-46b6-b1a8-48e89a437715,1,0,53bc7bfd-8786-464f-a615-ceae2971cbc9,53bc7bfd-8786-464f-a615-ceae2971cbc9,1,0,aa77817b-bd2f-4757-99b0-5e67a1b032d3,aa77817b-bd2f-4757-99b0-5e67a1b032d3,1,0,8cc27936-976d-4f31-91c6-644d15b69c55,8cc27936-976d-4f31-91c6-644d15b69c55,1,0,cf9de063-89f4-4632-b7a1-0cfbea6df643,cf9de063-89f4-4632-b7a1-0cfbea6df643,1,0,ee3bab2c-bd6a-4a33-89a2-78b4dd89bb88,ee3bab2c-bd6a-4a33-89a2-78b4dd89bb88,1,0,2478fb43-57a3-4348-b3d4-61f015e4e231,2478fb43-57a3-4348-b3d4-61f015e4e231,1,0,daa99b45-b2d2-47bc-9d7e-2d21b1a3dfd8,daa99b45-b2d2-47bc-9d7e-2d21b1a3dfd8,1,0,0449c160-01e5-4fe4-8759-5b93c484b467,0449c160-01e5-4fe4-8759-5b93c484b467,1,0,0684e4ba-28c7-4032-a43f-a3a4a37ec50b,0684e4ba-28c7-4032-a43f-a3a4a37ec50b,1,0,bcac012d-b4a9-49bb-9c54-722c741d183c,bcac012d-b4a9-49bb-9c54-722c741d183c,1,0,5370d079-975f-4f7c-95c3-7868147ecc76,5370d079-975f-4f7c-95c3-7868147ecc76,1,0,4dd66f76-e4e0-4f84-9fad-bb922cd51503,4dd66f76-e4e0-4f84-9fad-bb922cd51503,1,0,e76a411a-121b-4791-a785-dd54795eaa7f,e76a411a-121b-4791-a785-dd54795eaa7f,1,0,66844ae3-f098-462c-aef8-1fd38c403760,66844ae3-f098-462c-aef8-1fd38c403760,1,0,be96718a-223d-4597-bccf-2fb7d16dbbcc,be96718a-223d-4597-bccf-2fb7d16dbbcc,1,0,e59e9cfc-43b2-4bdf-a512-b6f87f781cee,e59e9cfc-43b2-4bdf-a512-b6f87f781cee,1,0,eb551461-ae0d-41dd-89fa-2f6e7f3c4840,eb551461-ae0d-41dd-89fa-2f6e7f3c4840,1,0,acec1961-a953-4f7b-b42b-baa1b8b3be14,acec1961-a953-4f7b-b42b-baa1b8b3be14,1,0,eb6394d4-1679-4494-8d23-419f5a714cdc,eb6394d4-1679-4494-8d23-419f5a714cdc,1,0,ffb3c2e4-bb9b-4d12-80bb-79e3c6d5700d,ffb3c2e4-bb9b-4d12-80bb-79e3c6d5700d,1,0,178342fd-1ba5-422d-89d2-4f486e45dae9,178342fd-1ba5-422d-89d2-4f486e45dae9,1,0,7e9fadd6-d0ad-4856-a195-1058f00bf488,7e9fadd6-d0ad-4856-a195-1058f00bf488,1,0,76d0c5ee-5b85-4670-ba1c-8fdaa7ba872a,76d0c5ee-5b85-4670-ba1c-8fdaa7ba872a,1,0,84f67d35-ca48-4fff-94e4-5f4beb7e3c08,84f67d35-ca48-4fff-94e4-5f4beb7e3c08,1,0,2972c142-0aac-4e36-b34e-4e73f18ba9cb,2972c142-0aac-4e36-b34e-4e73f18ba9cb,1,0,d6915227-4ede-4cd2-9e7c-d23dc409936e,d6915227-4ede-4cd2-9e7c-d23dc409936e,1,0,46c3341c-352c-43fb-b338-15c8ad487fbf,46c3341c-352c-43fb-b338-15c8ad487fbf,1,0,a2a8b35e-04e5-4176-8d3b-2cd4dfb6d653,a2a8b35e-04e5-4176-8d3b-2cd4dfb6d653,1,0,ea7ad7f5-e502-49a9-b4a6-e9adceb15057,ea7ad7f5-e502-49a9-b4a6-e9adceb15057,1,0,f9450d6a-849c-4621-b528-9cafc4819b44,f9450d6a-849c-4621-b528-9cafc4819b44,1,0,5b7cac99-2fca-4dbb-8d49-b84f310a2496,5b7cac99-2fca-4dbb-8d49-b84f310a2496,1,0,a4673d5c-9dae-48f7-9c91-53c1302a266a,a4673d5c-9dae-48f7-9c91-53c1302a266a,1,0,1a2a0dd2-b0dc-41e1-8c4f-f275f025bad2,1a2a0dd2-b0dc-41e1-8c4f-f275f025bad2,1,0,c255932e-fc34-402c-a6e9-2fda1ffbcdf2,c255932e-fc34-402c-a6e9-2fda1ffbcdf2,1,0,0d323d88-2823-493e-8c1e-b2b9f3dcdd3e,0d323d88-2823-493e-8c1e-b2b9f3dcdd3e,1,0,3f410b53-e762-41fe-9469-d538dfec3a9a,3f410b53-e762-41fe-9469-d538dfec3a9a,1,0,bb11c22e-0fbd-4985-be67-0866df7f7e61,bb11c22e-0fbd-4985-be67-0866df7f7e61,1,0,92ea60c0-1027-4337-9130-40028951f09b,92ea60c0-1027-4337-9130-40028951f09b,1,0,46710ce6-0f82-4c4c-91e8-f8ee726e00ce,46710ce6-0f82-4c4c-91e8-f8ee726e00ce,1,0,d64f18a4-ff93-4284-9eca-085109eafd24,d64f18a4-ff93-4284-9eca-085109eafd24,1,0,6381b8d2-7722-45c7-8800-19f6574d7d7a,6381b8d2-7722-45c7-8800-19f6574d7d7a,1,0,bf428e7a-2970-4bab-8c8e-35ea16151c0e,bf428e7a-2970-4bab-8c8e-35ea16151c0e,1,0,232dbd5f-b7f1-4463-946c-b8fbf93ac466,232dbd5f-b7f1-4463-946c-b8fbf93ac466,1,0,a1a74b34-4174-4769-8f03-bd4a32e83418,a1a74b34-4174-4769-8f03-bd4a32e83418,1,0,32fd1fe7-34d3-43ed-baba-16ccd43aa25a,32fd1fe7-34d3-43ed-baba-16ccd43aa25a,1,0,8f4d1259-abdc-4495-8e1e-8c8abcd336ca,8f4d1259-abdc-4495-8e1e-8c8abcd336ca,1,0,7086199b-20ec-4a74-a52f-71824134e8c5,7086199b-20ec-4a74-a52f-71824134e8c5,1,0,1731708f-53cb-4b00-b90e-f581b4baa845,1731708f-53cb-4b00-b90e-f581b4baa845,1,0,d4b0feca-c00a-4d48-9f23-d92277ea6483,d4b0feca-c00a-4d48-9f23-d92277ea6483,1,0,00b2a0b3-6af8-4ea4-aa38-d1e078d5cbff,00b2a0b3-6af8-4ea4-aa38-d1e078d5cbff,1,0,20f7fdd2-30f6-4a52-a63b-7d2c326c0e83,20f7fdd2-30f6-4a52-a63b-7d2c326c0e83,1,0,23cb5bc2-9638-4d1c-b4bc-d5297e271570,23cb5bc2-9638-4d1c-b4bc-d5297e271570,1,0,6e547ccb-6d5a-4f7c-aaf0-568c22d2c276,6e547ccb-6d5a-4f7c-aaf0-568c22d2c276,1,0,04b7389d-697d-4b0d-a239-ac8c674cc46f,04b7389d-697d-4b0d-a239-ac8c674cc46f,1,0,a1cf5173-2e86-4ed7-9a0b-1bd5e578326a,a1cf5173-2e86-4ed7-9a0b-1bd5e578326a,1,0,864cad61-8280-415d-8fe1-bcb39d56670a,864cad61-8280-415d-8fe1-bcb39d56670a,1,0,b106bd29-5dc7-44d7-94d0-00f61499392e,b106bd29-5dc7-44d7-94d0-00f61499392e,1,0,a4febff8-0566-4977-bf55-1d574568fe9f,a4febff8-0566-4977-bf55-1d574568fe9f,1,0,5199cc65-bed1-40b9-96fe-cf6d855a8b91,5199cc65-bed1-40b9-96fe-cf6d855a8b91,1,0,f518add9-5c26-4dac-ab2e-b30fe3fbd347,f518add9-5c26-4dac-ab2e-b30fe3fbd347,1,0,23f53317-7aa8-4816-8a69-3d39d5e76da0,23f53317-7aa8-4816-8a69-3d39d5e76da0,1,0,9ade5155-fa6d-4999-b019-a5e7e235a158,9ade5155-fa6d-4999-b019-a5e7e235a158,1,0,8b302c5e-b255-4cb5-94d9-0dfef4250097,8b302c5e-b255-4cb5-94d9-0dfef4250097,1,0,08eb74b6-1e1c-4004-a0f8-b6f1fdfc68ef,08eb74b6-1e1c-4004-a0f8-b6f1fdfc68ef,1,0,d4eb3e9a-feb5-42d9-841b-ff20288228b6,d4eb3e9a-feb5-42d9-841b-ff20288228b6,1,0,49d713b8-6a61-4bd1-9650-0de1869967d2,49d713b8-6a61-4bd1-9650-0de1869967d2,1,0,4738ffd0-3c3b-4e5f-8773-0c9a80efdfbf,4738ffd0-3c3b-4e5f-8773-0c9a80efdfbf,1,0,bd0e4aeb-19f9-48fc-b838-38d785004360,bd0e4aeb-19f9-48fc-b838-38d785004360,1,0,3d1bae2a-4dfd-48e5-bfe9-b7e30c8475f6,3d1bae2a-4dfd-48e5-bfe9-b7e30c8475f6,1,0,0f2ec7ac-6d3f-4fcf-af3d-b0bfaa187a4b,0f2ec7ac-6d3f-4fcf-af3d-b0bfaa187a4b,1,0,6d351276-2c04-4198-a3e4-865881c12f5c,6d351276-2c04-4198-a3e4-865881c12f5c,1,0,73b1d2e2-0eeb-45dc-8ca3-3bda594d6823,73b1d2e2-0eeb-45dc-8ca3-3bda594d6823,1,0,5c4abd61-2f29-499e-a2ca-d133e9eeeaea,5c4abd61-2f29-499e-a2ca-d133e9eeeaea,1,0,8e07a76d-db30-491c-b296-181c8e689382,8e07a76d-db30-491c-b296-181c8e689382,1,0,4f1752ae-42d0-477d-854b-de143c428a85,4f1752ae-42d0-477d-854b-de143c428a85,1,0,29674b66-c542-4a34-8caa-8e57a51bd190,29674b66-c542-4a34-8caa-8e57a51bd190,1,0,1a41acdd-3503-4c69-b93b-eb1cb6749712,1a41acdd-3503-4c69-b93b-eb1cb6749712,1,0,0e45c53e-7571-49bf-b673-cff53d32af89,0e45c53e-7571-49bf-b673-cff53d32af89,1,0,169b0670-8fa7-48d1-b6b1-2cf581b18390,169b0670-8fa7-48d1-b6b1-2cf581b18390,1,0,2e239650-973b-4908-b91e-477062046528,2e239650-973b-4908-b91e-477062046528,1,0,4692eeee-5b73-42f3-ad39-794141af9e2b,4692eeee-5b73-42f3-ad39-794141af9e2b,1,0,093a2243-329b-49b2-b6cd-80a1f7e4634a,093a2243-329b-49b2-b6cd-80a1f7e4634a,1,0,0ddeed48-b98a-47c3-84a2-2eac065be06c,0ddeed48-b98a-47c3-84a2-2eac065be06c,1,0,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,7987fe2c-d7cc-4fd2-ac4e-610bfb1ab6d2,1,0,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,fc18d95e-a51d-45c0-83b0-09aeb2b5b03a,1,0,47714327-dd28-4e32-a1c9-20ee47d9afd0,47714327-dd28-4e32-a1c9-20ee47d9afd0,1,0,4d76ef7a-f1a6-4147-84f4-6e1717dfd77e,4d76ef7a-f1a6-4147-84f4-6e1717dfd77e,1,0,d1eb0aa7-b485-4f3a-846d-be069ca807c0,d1eb0aa7-b485-4f3a-846d-be069ca807c0,1,0,afde7867-15d3-43fa-b439-6d9e40df580b,afde7867-15d3-43fa-b439-6d9e40df580b,1,0,a676ff94-a0d1-4de9-8690-ec67f2c891d8,a676ff94-a0d1-4de9-8690-ec67f2c891d8,1,0,012bf716-3672-462e-b390-7bb4384ab4b1,012bf716-3672-462e-b390-7bb4384ab4b1,1,0,65342599-ff37-4f99-8e40-f05d87403bcf,65342599-ff37-4f99-8e40-f05d87403bcf,1,0,3a3f505a-7a50-4111-8029-5b9057fed232,3a3f505a-7a50-4111-8029-5b9057fed232,1,0,1d66cd80-fd61-4bf2-a7f9-34b33443e1ea,1d66cd80-fd61-4bf2-a7f9-34b33443e1ea,1,0,7b638691-416d-4484-81f4-e4c796a92818,7b638691-416d-4484-81f4-e4c796a92818,1,0,03ab92e2-81a3-4e38-84a8-85c1d78d51e9,03ab92e2-81a3-4e38-84a8-85c1d78d51e9,1,0,ef09e296-af08-44ff-8303-4833b23a12c3,ef09e296-af08-44ff-8303-4833b23a12c3,1,0,8984f28e-8c83-499a-838c-5f51410d7b0e,8984f28e-8c83-499a-838c-5f51410d7b0e,1,0,73bf8c40-76ee-4c61-b56a-898bcd6da1ca,73bf8c40-76ee-4c61-b56a-898bcd6da1ca,1,0,434a0471-1389-4764-a901-69249e1fdc38,434a0471-1389-4764-a901-69249e1fdc38,1,0,7b6c1d9f-968e-4126-990e-fa2787ad83b2,7b6c1d9f-968e-4126-990e-fa2787ad83b2,1,0,b89108a9-8b4e-4b34-8f72-4eb502963743,b89108a9-8b4e-4b34-8f72-4eb502963743,1,0,398b93b1-620d-4942-ba44-7ea0f9cc14f0,398b93b1-620d-4942-ba44-7ea0f9cc14f0,1,0,7b06537e-d818-41b3-acc5-b6b63b543be8,7b06537e-d818-41b3-acc5-b6b63b543be8,1,0,74226c30-5f9b-4e47-b7cc-35e92139cbfa,74226c30-5f9b-4e47-b7cc-35e92139cbfa,1,0,09f812cb-770c-4f85-87f0-db35952c764e,09f812cb-770c-4f85-87f0-db35952c764e,1,0,8bbbcfd9-b6da-41f6-b543-863b12b9fb59,8bbbcfd9-b6da-41f6-b543-863b12b9fb59,1,0,eb48f8a9-1644-432d-a8a8-e63bc013a2fe,eb48f8a9-1644-432d-a8a8-e63bc013a2fe,1,0,36951804-70a4-45fa-9fad-1c37fd3ce7b7,36951804-70a4-45fa-9fad-1c37fd3ce7b7,1,0,d0031774-fa35-469f-9f8a-3aaa920928a0,d0031774-fa35-469f-9f8a-3aaa920928a0,1,0,6da02618-2454-48fe-b1dc-399d0d40d043,6da02618-2454-48fe-b1dc-399d0d40d043,1,0,5a080203-ecd2-4f40-ac64-c8024eda595e,5a080203-ecd2-4f40-ac64-c8024eda595e,1,0,3eabcb69-398b-43f5-bf53-c20f90bee5c4,3eabcb69-398b-43f5-bf53-c20f90bee5c4,1,0,9c33639e-529a-490f-9365-80778b54c3f7,9c33639e-529a-490f-9365-80778b54c3f7,1,0,561b97a0-9d42-4735-a606-8d5b5862689f,561b97a0-9d42-4735-a606-8d5b5862689f,1,0,10d5c0c2-301f-4477-a88f-254f99a30fa0,10d5c0c2-301f-4477-a88f-254f99a30fa0,1,0,84ba4ba7-2743-438a-8b65-cc14090f8a92,84ba4ba7-2743-438a-8b65-cc14090f8a92,1,0,cdc4312c-b1af-407c-bfc3-28db04915aa6,cdc4312c-b1af-407c-bfc3-28db04915aa6,1,0,97b76ee8-c73f-456b-9008-b453bd376317,97b76ee8-c73f-456b-9008-b453bd376317,1,0,ee305e39-978b-4069-a4e6-05e761a5d6ae,ee305e39-978b-4069-a4e6-05e761a5d6ae,1,0,965650ae-8a6e-469a-869a-0ce821818058,965650ae-8a6e-469a-869a-0ce821818058,1,0,00fde8e2-3eb3-484a-a960-a390cbdaa16a,00fde8e2-3eb3-484a-a960-a390cbdaa16a,1,0,c7a82aa5-043c-46a2-9f5a-cba098ca36bd,c7a82aa5-043c-46a2-9f5a-cba098ca36bd,1,0,94744edd-61d0-4329-95d8-fc19dc7c6af1,94744edd-61d0-4329-95d8-fc19dc7c6af1,1,0,43bbf87f-8f21-49b9-be2f-eceb64c2c650,43bbf87f-8f21-49b9-be2f-eceb64c2c650,1,0,69db1a1c-3e9d-4e3c-b31e-731f2b8635b9,69db1a1c-3e9d-4e3c-b31e-731f2b8635b9,1,0,621b1881-9a7f-4fa4-a373-46467743e29c,621b1881-9a7f-4fa4-a373-46467743e29c,1,0,932ef5a0-4bad-424d-9772-ad8393c12006,932ef5a0-4bad-424d-9772-ad8393c12006,1,0,6e82e4ec-cf8e-4e9f-aaed-69b146c2ed84,6e82e4ec-cf8e-4e9f-aaed-69b146c2ed84,1,0,35dbc542-3ad9-4a72-9863-229a67cda425,35dbc542-3ad9-4a72-9863-229a67cda425,1,0,8e4277e9-983a-4d43-b08e-a4f918df87bf,8e4277e9-983a-4d43-b08e-a4f918df87bf,1,0,ea232693-49b2-4e10-9349-66e26760602c,ea232693-49b2-4e10-9349-66e26760602c,1,0,110e76d3-26ad-4392-9f82-255d792478a1,110e76d3-26ad-4392-9f82-255d792478a1,1,0,9117730e-1d3f-47b6-84fc-7a02377f86a0,9117730e-1d3f-47b6-84fc-7a02377f86a0,1,0,0a7eec2f-41c6-4d77-98a4-5e0bfc698997,0a7eec2f-41c6-4d77-98a4-5e0bfc698997,1,0,ec06e6a7-7894-4411-9b54-f811837b8a2e,ec06e6a7-7894-4411-9b54-f811837b8a2e,1,0,f43f3a1b-7f71-4a4f-9ec2-5f4d7d77efca,f43f3a1b-7f71-4a4f-9ec2-5f4d7d77efca,1,0,0947bd87-9542-4d2b-8439-9f6ccdb2c9cc,0947bd87-9542-4d2b-8439-9f6ccdb2c9cc,1,0,c0e2673a-1846-4ae5-933a-4e33b73a866b,c0e2673a-1846-4ae5-933a-4e33b73a866b,1,0,3996aff6-b6ce-4f6b-a2f3-1b0bf8b1d0c2,3996aff6-b6ce-4f6b-a2f3-1b0bf8b1d0c2,1,0,f5fadf27-b8ca-421b-8a73-c3f10aef248b,f5fadf27-b8ca-421b-8a73-c3f10aef248b,1,0,006fa20c-ba4b-4003-a743-b47c4b7bd815,006fa20c-ba4b-4003-a743-b47c4b7bd815,1,0,4ecd2da3-4d0c-416b-ae97-66f6f753226b,4ecd2da3-4d0c-416b-ae97-66f6f753226b,1,0,ec680d71-eb28-4b42-a664-c6137c259eaa,ec680d71-eb28-4b42-a664-c6137c259eaa,1,0,efa1d27f-0620-4b3a-b058-12f160008478,efa1d27f-0620-4b3a-b058-12f160008478,1,0,2dd0ec2e-457d-4147-b806-ff3d6fa091fb,2dd0ec2e-457d-4147-b806-ff3d6fa091fb,1,0,005d4afc-7d09-4cef-acaa-50d49e455df0,005d4afc-7d09-4cef-acaa-50d49e455df0,1,0,d773673e-992d-4f22-9fb3-acfb8863217d,d773673e-992d-4f22-9fb3-acfb8863217d,1,0,6cf00002-d685-4340-a873-196126a19664,6cf00002-d685-4340-a873-196126a19664,1,0,e422c08d-f54f-4a49-b0c5-a50bf63973c9,e422c08d-f54f-4a49-b0c5-a50bf63973c9,1,0,8288078e-0d2f-47c5-8e58-c5a17a76cc11,8288078e-0d2f-47c5-8e58-c5a17a76cc11,1,0,82abcc34-c8aa-42a0-b2fe-f66b7cafc2a0,82abcc34-c8aa-42a0-b2fe-f66b7cafc2a0,1,0,1908b558-9619-477e-ab33-0c731adf2b0e,1908b558-9619-477e-ab33-0c731adf2b0e,1,0,2bed313f-06ac-43a1-a0bd-008c5457deb1,2bed313f-06ac-43a1-a0bd-008c5457deb1,1,0,304feda3-6d33-466c-9e0d-9cea97d763be,304feda3-6d33-466c-9e0d-9cea97d763be,1,0,d6d20d2e-ac18-4bed-aa98-2466871996ac,d6d20d2e-ac18-4bed-aa98-2466871996ac,1,0,53617fbd-4c88-4b13-b3f5-acc78064fdea,53617fbd-4c88-4b13-b3f5-acc78064fdea,1,0,fae5d2ca-4a2d-4ba3-945c-d6545a6b57f1,fae5d2ca-4a2d-4ba3-945c-d6545a6b57f1,1,0,7a043029-1b09-4c11-adfd-9f0588e323e8,7a043029-1b09-4c11-adfd-9f0588e323e8,1,0,ecaf5d2f-0cea-4ad0-8550-51be37cead5c,ecaf5d2f-0cea-4ad0-8550-51be37cead5c,1,0,448e7386-cc56-4578-9c57-ef270980a0ff,448e7386-cc56-4578-9c57-ef270980a0ff,1,0,c2cdc60c-157d-450f-b3ba-2b6242459ebb,c2cdc60c-157d-450f-b3ba-2b6242459ebb,1,0,186f87ca-b9d5-48fa-b196-eed2794bade4,186f87ca-b9d5-48fa-b196-eed2794bade4,1,0,b87d9e04-9e12-42a5-b9fd-ea9a9bab59eb,b87d9e04-9e12-42a5-b9fd-ea9a9bab59eb,1,0,65b653b7-1298-40e4-9d69-2ce7810d5985,65b653b7-1298-40e4-9d69-2ce7810d5985,1,0,5fd170a9-44fc-4d18-9e51-2dbf09ca902e,5fd170a9-44fc-4d18-9e51-2dbf09ca902e,1,0,66359bb1-8692-415a-86d9-f40545f88d3a,66359bb1-8692-415a-86d9-f40545f88d3a,1,0,83be7bdf-e915-440f-a39f-1bb74db34b3e,83be7bdf-e915-440f-a39f-1bb74db34b3e,1,0,190b6efe-e67e-4274-abb9-263178a6ec4a,190b6efe-e67e-4274-abb9-263178a6ec4a,1,0,1363523a-929e-49ac-ae39-d43acf9f0478,1363523a-929e-49ac-ae39-d43acf9f0478,1,0,f6ff0bb8-c1fd-4eae-b919-6d10d4504f0c,f6ff0bb8-c1fd-4eae-b919-6d10d4504f0c,1,0,2876c476-8280-426d-8bf9-c93beda0ddd5,2876c476-8280-426d-8bf9-c93beda0ddd5,1,0,963e0813-4f6b-4d31-b66d-77125c47ce19,963e0813-4f6b-4d31-b66d-77125c47ce19,1,0,a720abc8-dcf0-4684-8d94-22d394a8e4df,a720abc8-dcf0-4684-8d94-22d394a8e4df,1,0,e40f53de-c27b-4e74-8241-f784d7ca5c84,e40f53de-c27b-4e74-8241-f784d7ca5c84,1,0,ef38b84d-277e-48c2-8826-330132eb6807,ef38b84d-277e-48c2-8826-330132eb6807,1,0,67a50910-059a-4724-84e0-c21bc3ac74c2,67a50910-059a-4724-84e0-c21bc3ac74c2,1,0,fdd83a89-a2fe-40d8-a531-a10bfeb36a1d,fdd83a89-a2fe-40d8-a531-a10bfeb36a1d,1,0,d9f76f2f-2b32-4986-8987-a585f831d951,d9f76f2f-2b32-4986-8987-a585f831d951,1,0,b1a96083-1c12-43f4-ba61-3a0588fc7310,b1a96083-1c12-43f4-ba61-3a0588fc7310,1,0,2e37c7d0-b97f-4c72-821e-b2bb77fb3140,2e37c7d0-b97f-4c72-821e-b2bb77fb3140,1,0,0d190f8b-87c5-4dd1-bcfb-609ec3a44f72,0d190f8b-87c5-4dd1-bcfb-609ec3a44f72,1,0,53a2f4b2-e8ea-4347-b4c7-b73f4ea8f9b7,53a2f4b2-e8ea-4347-b4c7-b73f4ea8f9b7,1,0,6b814a99-441e-4a51-997b-1c56bc40b134,6b814a99-441e-4a51-997b-1c56bc40b134,1,0,9388e5d5-3a02-4019-a060-141f8a3bb055,9388e5d5-3a02-4019-a060-141f8a3bb055,1,0,c1b000a1-8094-4a06-805f-b84d4e9c6dc0,c1b000a1-8094-4a06-805f-b84d4e9c6dc0,1,0,5eb1717c-3696-48bb-88a9-b667ea687860,5eb1717c-3696-48bb-88a9-b667ea687860,1,0,95705445-29b4-4d51-857b-a9cf161a3cc6,95705445-29b4-4d51-857b-a9cf161a3cc6,1,0,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,9e78a2b9-44fc-4971-801d-1ddd4bb09cfd,1,0,2c0d11fc-b927-4b5d-a16c-d60e69580824,2c0d11fc-b927-4b5d-a16c-d60e69580824,1,0,ee49981d-91f6-4002-9205-b8a53e6f54e0,ee49981d-91f6-4002-9205-b8a53e6f54e0,1,0,64a74365-ca32-4b7d-af8e-695624e3dcb6,64a74365-ca32-4b7d-af8e-695624e3dcb6,1,0,ed1b3c28-99be-49e9-90eb-81e24c8323a5,ed1b3c28-99be-49e9-90eb-81e24c8323a5,1,0,1e20958d-79dc-4c53-b09f-e627c6463fca,1e20958d-79dc-4c53-b09f-e627c6463fca,1,0,0efdbcc2-e5a8-4b00-a72a-2823fb0b2658,0efdbcc2-e5a8-4b00-a72a-2823fb0b2658,1,0,0fa7190d-bafd-4113-a623-9d7d818f70c7,0fa7190d-bafd-4113-a623-9d7d818f70c7,1,0,5251e744-666e-48a0-a5b4-9cef313c7631,5251e744-666e-48a0-a5b4-9cef313c7631,1,0,d3aca87c-2b47-48da-82dd-18ca867c8463,d3aca87c-2b47-48da-82dd-18ca867c8463,1,0,669b81a6-6526-4b5c-aafa-1988ae5253ce,669b81a6-6526-4b5c-aafa-1988ae5253ce,1,0,ab138a0c-71fe-4ca2-9d82-21f5830dde24,ab138a0c-71fe-4ca2-9d82-21f5830dde24,1,0,ffa6c000-ec84-4749-8ffe-42b0599751cd,ffa6c000-ec84-4749-8ffe-42b0599751cd,1,0,740bde9c-9fe1-4183-ab01-3fbe91d33b61,740bde9c-9fe1-4183-ab01-3fbe91d33b61,1,0,e8e19542-c5c8-418b-8a83-20336fd9075a,e8e19542-c5c8-418b-8a83-20336fd9075a,1,0,1117fce9-6e77-4d1d-aa86-49e7baddfe4b,1117fce9-6e77-4d1d-aa86-49e7baddfe4b,1,0,23f96afc-28e2-470d-9732-220f8867fc23,23f96afc-28e2-470d-9732-220f8867fc23,1,0,aef883c7-c1f5-46ff-a95a-6828d3509069,aef883c7-c1f5-46ff-a95a-6828d3509069,1,0,36b3b988-bf64-4466-9887-93583f59833d,36b3b988-bf64-4466-9887-93583f59833d,1,0,c2997234-864c-408c-94d3-85a2a1820a16,c2997234-864c-408c-94d3-85a2a1820a16,1,0,9d5b351e-5533-4e9f-a23f-d0f7b03d72ca,9d5b351e-5533-4e9f-a23f-d0f7b03d72ca,1,0,d5775cec-e600-4259-82fc-f313cee1cd6f,d5775cec-e600-4259-82fc-f313cee1cd6f,1,0,df918f4e-1a0a-4a7a-997b-f4757185b691,df918f4e-1a0a-4a7a-997b-f4757185b691,1,0,4e305be6-8bbf-4215-aeea-1283aba6d19e,4e305be6-8bbf-4215-aeea-1283aba6d19e,1,0,ebedc283-5eb0-459b-b686-f8643666b8b8,ebedc283-5eb0-459b-b686-f8643666b8b8,1,0,6a6afffd-cfed-4801-8b59-34d27e46565c,6a6afffd-cfed-4801-8b59-34d27e46565c,1,0,a469b12d-4537-419c-91e0-37abc9d31505,a469b12d-4537-419c-91e0-37abc9d31505,1,0,6f312bda-1f4d-48a6-bd95-f23f34f0ea4b,6f312bda-1f4d-48a6-bd95-f23f34f0ea4b,1,0,82c42232-531e-403f-8599-cc21a248fa2c,82c42232-531e-403f-8599-cc21a248fa2c,1,0,9104b791-9ac4-41ba-a7f0-9e609db3b578,9104b791-9ac4-41ba-a7f0-9e609db3b578,1,0,2d3721d1-816f-4e84-9df1-863cb269d83d,2d3721d1-816f-4e84-9df1-863cb269d83d,1,0,5ffc2b03-28c0-45da-ab3e-e4c5d449a898,5ffc2b03-28c0-45da-ab3e-e4c5d449a898,1,0,5c1a1206-0521-44db-8cdd-3e132f2e5a34,5c1a1206-0521-44db-8cdd-3e132f2e5a34,1,0,a630b2d5-2a8e-471e-a7ca-2498e15ace47,a630b2d5-2a8e-471e-a7ca-2498e15ace47,1,0,ba0855a3-8384-4681-a6f0-6373f23cf52d,ba0855a3-8384-4681-a6f0-6373f23cf52d,1,0,0b09cf2f-1759-4362-b997-29e09ac00445,0b09cf2f-1759-4362-b997-29e09ac00445,1,0,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,f6a9eb9c-a1c2-4114-b155-3ce94c7b7f20,1,0,828ddf5d-ca09-4baf-897f-77d569e02a6b,828ddf5d-ca09-4baf-897f-77d569e02a6b,1,0,8ef2c1d3-173f-4db8-b2c7-5d5234709b8e,8ef2c1d3-173f-4db8-b2c7-5d5234709b8e,1,0,8856015c-a695-4b1a-99ef-770263f9dc4a,8856015c-a695-4b1a-99ef-770263f9dc4a,1,0,183ec2b5-e173-4885-9e26-1098ffa15020,183ec2b5-e173-4885-9e26-1098ffa15020,1,0,74702fdf-bfc5-4658-ba58-e39bcfbaa647,74702fdf-bfc5-4658-ba58-e39bcfbaa647,1,0,2f436ec3-6a04-4d2c-998a-c60ea875ca86,2f436ec3-6a04-4d2c-998a-c60ea875ca86,1,0,c91f630a-286c-4eb8-b87e-6e6bc7670482,c91f630a-286c-4eb8-b87e-6e6bc7670482,1,0,8ace2dbf-ed9d-46fd-bda7-d884da77e30c,8ace2dbf-ed9d-46fd-bda7-d884da77e30c,1,0,ba59bf05-b815-4679-94ce-601923d60461,ba59bf05-b815-4679-94ce-601923d60461,1,0,65ff172c-3892-4dd2-821b-5d6293805528,65ff172c-3892-4dd2-821b-5d6293805528,1,0,00c47343-9f64-4368-896e-85f1639e4dae,00c47343-9f64-4368-896e-85f1639e4dae,1,0,afc02a73-15bd-4ab1-97bb-5cea6206a44f,afc02a73-15bd-4ab1-97bb-5cea6206a44f,1,0,27a9ef3c-902c-49e3-ab84-ba51185ab111,27a9ef3c-902c-49e3-ab84-ba51185ab111,1,0,20ba43f5-348f-41e4-b365-ff9485a3951d,20ba43f5-348f-41e4-b365-ff9485a3951d,1,0,2f6bc78d-d2ed-491f-bc66-3f95e2ca574c,2f6bc78d-d2ed-491f-bc66-3f95e2ca574c,1,0,bf3e3395-3e41-49c2-b59e-fdcdc3ef956f,bf3e3395-3e41-49c2-b59e-fdcdc3ef956f,1,0,164db402-4516-4d99-80d2-6cb7b6fd7698,164db402-4516-4d99-80d2-6cb7b6fd7698,1,0,93b18f0a-7aa1-42db-809b-1e543cda57de,93b18f0a-7aa1-42db-809b-1e543cda57de,1,0,a8e04267-5a28-40af-8d45-e65375cd8273,a8e04267-5a28-40af-8d45-e65375cd8273,1,0,6a947b2d-3e6b-42c8-a9fd-4c5a71d600a9,6a947b2d-3e6b-42c8-a9fd-4c5a71d600a9,1,0,ae641a80-4ada-4592-ace9-29a82e6700e4,ae641a80-4ada-4592-ace9-29a82e6700e4,1,0,c6bf0d10-5406-44e8-b3f3-74b7db2b71e6,c6bf0d10-5406-44e8-b3f3-74b7db2b71e6,1,0,8d653af4-ac00-4ca9-a9e6-4e1a888c6dfb,8d653af4-ac00-4ca9-a9e6-4e1a888c6dfb,1,0,703453e8-cb49-491b-8e19-a17b89894d1e,703453e8-cb49-491b-8e19-a17b89894d1e,1,0,f0b0608c-178f-4dea-b461-0d8f00d79d30,f0b0608c-178f-4dea-b461-0d8f00d79d30,1,0,ed2dba0c-7fe3-4d24-b6a6-b104beadc286,ed2dba0c-7fe3-4d24-b6a6-b104beadc286,1,0,a4c98768-c9fc-4f95-b89b-bb1cb0e8fade,a4c98768-c9fc-4f95-b89b-bb1cb0e8fade,1,0,5546b9a9-a4fe-4a2b-9492-883bcb37a210,5546b9a9-a4fe-4a2b-9492-883bcb37a210,1,0,6fb76c5f-844f-4cbc-ae7c-4ac834fddfc9,6fb76c5f-844f-4cbc-ae7c-4ac834fddfc9,1,0,275a5772-8428-497a-81ef-c919f15fcccd,275a5772-8428-497a-81ef-c919f15fcccd,1,0,8df6e7e6-2a1e-4cf3-bdc9-60e52ea3f625,8df6e7e6-2a1e-4cf3-bdc9-60e52ea3f625,1,0,b5278cbd-1771-4739-9013-a28682689778,b5278cbd-1771-4739-9013-a28682689778,1,0,a52f2de4-f414-4837-9b1a-6d8f282e1327,a52f2de4-f414-4837-9b1a-6d8f282e1327,1,0,82573440-0ef5-4c07-bb1e-fe90295981d2,82573440-0ef5-4c07-bb1e-fe90295981d2,1,0,804be484-09cf-45a4-bd1f-c8850067e2b2,804be484-09cf-45a4-bd1f-c8850067e2b2,1,0,f1a145ce-a199-475c-ab8a-065c11a27277,f1a145ce-a199-475c-ab8a-065c11a27277,1,0,8d509c4e-fcea-4ccd-aec4-e146f2d4319b,8d509c4e-fcea-4ccd-aec4-e146f2d4319b,1,0,d126a11e-c770-4309-941f-cbcdd5cbad5d,d126a11e-c770-4309-941f-cbcdd5cbad5d,1,0,f4d88096-bff9-416a-8f75-9143ede1213f,f4d88096-bff9-416a-8f75-9143ede1213f,1,0,6b0721fe-d27f-4d1a-b377-26fce2ed1687,6b0721fe-d27f-4d1a-b377-26fce2ed1687,1,0,25c97480-330c-42f2-a2a5-031062a3a683,25c97480-330c-42f2-a2a5-031062a3a683,1,0,a2fb1bf9-d29a-4bfe-95f1-10883fa019b3,a2fb1bf9-d29a-4bfe-95f1-10883fa019b3,1,0,6adc3aa8-8784-467d-8e12-b60418a5c729,6adc3aa8-8784-467d-8e12-b60418a5c729,1,0,265206ed-4d41-497e-a483-c14052134500,265206ed-4d41-497e-a483-c14052134500,1,0,bf070420-9eb7-4372-96a6-b0d00ac3ce8c,bf070420-9eb7-4372-96a6-b0d00ac3ce8c,1,0,10336352-f3a1-4bc3-bdec-1a2eef15f176,10336352-f3a1-4bc3-bdec-1a2eef15f176,1,0,cacabf2f-6d1c-4c33-80c7-c27a5e757cc9,cacabf2f-6d1c-4c33-80c7-c27a5e757cc9,1,0,3b7c713e-81ae-4adc-9519-99c936599ef7,3b7c713e-81ae-4adc-9519-99c936599ef7,1,0,1c8ffbbd-035c-45cf-8ec8-dc5d26d7f673,1c8ffbbd-035c-45cf-8ec8-dc5d26d7f673,1,0,ecda2c4b-6411-4b47-ab59-1918bad5acdd,ecda2c4b-6411-4b47-ab59-1918bad5acdd,1,0,a9a05a66-0a1c-4e53-9d09-1abe8f45e354,a9a05a66-0a1c-4e53-9d09-1abe8f45e354,1,0,2c811ee8-f50d-4c39-82ee-0492feb1c431,2c811ee8-f50d-4c39-82ee-0492feb1c431,1,0,399f679b-f48a-4d4e-b890-5eab9e4598c3,399f679b-f48a-4d4e-b890-5eab9e4598c3,1,0,da9ca4c4-c291-4f8b-accd-bc1b123ed4f8,da9ca4c4-c291-4f8b-accd-bc1b123ed4f8,1,0,9ad1ea04-1aee-4a80-b4df-60526cdf3ad0,9ad1ea04-1aee-4a80-b4df-60526cdf3ad0,1,0,b65954b9-39f9-4f7c-8af2-939af0694368,b65954b9-39f9-4f7c-8af2-939af0694368,1,0,3a984dac-c971-42c3-9736-a45c46b55f01,3a984dac-c971-42c3-9736-a45c46b55f01,1,0,edaa4ad4-4dd9-4225-85e8-b0d74d167985,edaa4ad4-4dd9-4225-85e8-b0d74d167985,1,0,c060feda-b1ec-4db3-b16e-d19b36833a2c,c060feda-b1ec-4db3-b16e-d19b36833a2c,1,0,2116217b-1660-499f-953d-f685738b0f30,2116217b-1660-499f-953d-f685738b0f30,1,0,45b46613-13cc-4888-9bb7-53780402206f,45b46613-13cc-4888-9bb7-53780402206f,1,0,5c224274-5495-49bc-b124-e6d649b09d57,5c224274-5495-49bc-b124-e6d649b09d57,1,0,0a92df3d-fb51-4fba-938c-55846929bd5f,0a92df3d-fb51-4fba-938c-55846929bd5f,1,0,1d005a8d-aaac-4442-a7dc-12634d03f6f3,1d005a8d-aaac-4442-a7dc-12634d03f6f3,1,0,348d0ad2-f64e-4ea0-8b8e-11bbc10926f7,348d0ad2-f64e-4ea0-8b8e-11bbc10926f7,1,0,7f7eb00d-7a38-4025-8853-9d1cf2dab1e3,7f7eb00d-7a38-4025-8853-9d1cf2dab1e3,1,0,36221881-a9c8-4b91-acac-44f7c065c05a,36221881-a9c8-4b91-acac-44f7c065c05a,1,0,3fdcf013-38e0-4a30-9ae8-19100e6704ba,3fdcf013-38e0-4a30-9ae8-19100e6704ba,1,0,876e31ff-ab7b-4ea4-b491-161963727dd1,876e31ff-ab7b-4ea4-b491-161963727dd1,1,0,bb43995b-68b4-41a1-8458-e10a2d8925f1,bb43995b-68b4-41a1-8458-e10a2d8925f1,1,0,61730dd9-fed7-43ce-8f38-724cac8f3d08,61730dd9-fed7-43ce-8f38-724cac8f3d08,1,0,b6424caf-3db8-4cfe-b92d-7435c23606a5,b6424caf-3db8-4cfe-b92d-7435c23606a5,1,0,e6a494b8-27e7-46a6-9435-7be6e150a69e,e6a494b8-27e7-46a6-9435-7be6e150a69e,1,0,133dc852-59d3-4351-934d-8845f8a38431,133dc852-59d3-4351-934d-8845f8a38431,1,0,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,55dbaaf1-554d-46e2-b42a-ce6a8bf20dfb,1,0,b67914a8-d483-4bed-bd4d-a4aadd4998a4,b67914a8-d483-4bed-bd4d-a4aadd4998a4,1,0,707a8a49-fec5-454c-9e80-c3da829d395c,707a8a49-fec5-454c-9e80-c3da829d395c,1,0,b5ea4aff-11be-4232-94a2-cb92801b6c49,b5ea4aff-11be-4232-94a2-cb92801b6c49,1,0,6f630213-c16c-421c-a160-09e3c729ab26,6f630213-c16c-421c-a160-09e3c729ab26,1,0,878c638c-7c84-4914-896a-d4fdf0d759ef,878c638c-7c84-4914-896a-d4fdf0d759ef,1,0,6065653e-b7a9-4033-9617-f64430c57d89,6065653e-b7a9-4033-9617-f64430c57d89,1,0,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,9ec63da6-1f53-417f-9c7d-6879eaa56a7e,1,0,00d1d85b-c258-4f10-9d13-a99375a29fc1,00d1d85b-c258-4f10-9d13-a99375a29fc1,1,0,f6d79449-eca9-4d13-9ddc-8b36ae9e729e,f6d79449-eca9-4d13-9ddc-8b36ae9e729e,1,0,b9d56dc6-3a10-4795-9ca3-dbf69310813e,b9d56dc6-3a10-4795-9ca3-dbf69310813e,1,0,f4b53ce1-8c1b-4f57-b5de-acb4692a37d8,f4b53ce1-8c1b-4f57-b5de-acb4692a37d8,1,0,9b18e04f-036d-43ae-b949-9432f96d71d9,9b18e04f-036d-43ae-b949-9432f96d71d9,1,0,e99a1f54-4001-45ee-81e3-472656c05f57,e99a1f54-4001-45ee-81e3-472656c05f57,1,0,b104e7b9-8a41-4154-a84b-d1bb12fab939,b104e7b9-8a41-4154-a84b-d1bb12fab939,1,0,86b835c4-341e-4b0d-99e5-2369684ff3f4,86b835c4-341e-4b0d-99e5-2369684ff3f4,1,0,55c48fa8-8d12-4378-97a0-c0ed683f6b83,55c48fa8-8d12-4378-97a0-c0ed683f6b83,1,0,b0f74a92-f5e4-4859-9a72-643ddb5315cb,b0f74a92-f5e4-4859-9a72-643ddb5315cb,1,0,1864093d-62ac-4b12-ad16-c460432c99f6,1864093d-62ac-4b12-ad16-c460432c99f6,1,0,6eb78c87-24ed-43a8-800d-ccde02358b32,6eb78c87-24ed-43a8-800d-ccde02358b32,1,0,787d5fec-c476-4519-884b-f62492fc8396,787d5fec-c476-4519-884b-f62492fc8396,1,0,59ebd5fb-d782-46ea-b693-7885d2ababa8,59ebd5fb-d782-46ea-b693-7885d2ababa8,1,0,39a39567-43d8-47c5-9f17-0a11f31e129a,39a39567-43d8-47c5-9f17-0a11f31e129a,1,0,b24e8ff0-eb86-4ce6-84f5-49134b48f031,b24e8ff0-eb86-4ce6-84f5-49134b48f031,1,0,52ab6aea-e6a0-43f0-9cc8-f7c9126635cc,52ab6aea-e6a0-43f0-9cc8-f7c9126635cc,1,0,e983f539-e369-491e-9cee-510518187870,e983f539-e369-491e-9cee-510518187870,1,0,876b23bf-2f48-4916-ad0f-4de8306e1864,876b23bf-2f48-4916-ad0f-4de8306e1864,1,0,9a402a9c-a31f-4082-91d5-b4fe7576a5c2,9a402a9c-a31f-4082-91d5-b4fe7576a5c2,1,0,e7c63a25-c804-4bc4-a6f1-81009dd889e2,e7c63a25-c804-4bc4-a6f1-81009dd889e2,1,0,e99a1b17-0e37-489a-bc39-3dd2e23b0861,e99a1b17-0e37-489a-bc39-3dd2e23b0861,1,0,7ccd86cd-4294-4f6c-84f4-98e25e479f4d,7ccd86cd-4294-4f6c-84f4-98e25e479f4d,1,0,4c1576c4-b327-4ec1-87bc-662c5aba343b,4c1576c4-b327-4ec1-87bc-662c5aba343b,1,0,70e710c5-42df-465f-a9c5-8345c87e1f19,70e710c5-42df-465f-a9c5-8345c87e1f19,1,0,0f694ef1-4a97-4aed-ab4b-0b2c18ea7e17,0f694ef1-4a97-4aed-ab4b-0b2c18ea7e17,1,0,14facdfb-9835-4bb6-98a8-5a6ca9a5d2f8,14facdfb-9835-4bb6-98a8-5a6ca9a5d2f8,1,0,4492ac73-eb91-41f8-98f1-54c2b3ad212a,4492ac73-eb91-41f8-98f1-54c2b3ad212a,1,0,869b43fb-968f-4fe0-b945-5030c90a38f2,869b43fb-968f-4fe0-b945-5030c90a38f2,1,0,af071a52-212b-4131-98e6-81f6048a70e6,af071a52-212b-4131-98e6-81f6048a70e6,1,0,37210dde-9a2f-475c-8341-578ac99f0e17,37210dde-9a2f-475c-8341-578ac99f0e17,1,0,e5094d4f-ee61-4142-a97b-d96172350f65,e5094d4f-ee61-4142-a97b-d96172350f65,1,0,3a8fffb6-a732-440c-afb9-d1c699ea53b6,3a8fffb6-a732-440c-afb9-d1c699ea53b6,1,0,b0650787-8ff5-4407-b491-bcdc2f61fd58,b0650787-8ff5-4407-b491-bcdc2f61fd58,1,0,33dd6bba-0044-4e2f-ae9e-c8a26079ab2a,33dd6bba-0044-4e2f-ae9e-c8a26079ab2a,1,0,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,3f289f67-dfc7-4f2d-90e4-b47aff76ecdb,1,0,9aadad98-69f5-41ce-ad1c-0afd8c610d86,9aadad98-69f5-41ce-ad1c-0afd8c610d86,1,0,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,706a3db0-9d4f-4c08-91cd-3ccaa6d06d3b,1,0,3d662173-e19d-4077-9a08-8c8899226e24,3d662173-e19d-4077-9a08-8c8899226e24,1,0,69fd1e6e-7302-4ca8-8419-ec567ae66bef,69fd1e6e-7302-4ca8-8419-ec567ae66bef,1,0,0eee931a-57bb-4844-8e6e-eaca342640a0,0eee931a-57bb-4844-8e6e-eaca342640a0,1,0,20c57e30-5856-4801-9e77-8006471d89f8,20c57e30-5856-4801-9e77-8006471d89f8,1,0,64eff9f4-c57b-40a0-bd83-7e371fd010ce,64eff9f4-c57b-40a0-bd83-7e371fd010ce,1,0,4a3fe393-8aea-4394-8c10-a234f1f191ad,4a3fe393-8aea-4394-8c10-a234f1f191ad,1,0,6f9a3d00-d935-4fa6-9fd2-14700226daff,6f9a3d00-d935-4fa6-9fd2-14700226daff,1,0,d792831c-698d-40c6-96c2-dd0ae6f30707,d792831c-698d-40c6-96c2-dd0ae6f30707,1,0,a1d91c5f-1acd-4b46-887e-d06e7260dd20,a1d91c5f-1acd-4b46-887e-d06e7260dd20,1,0,3fd26019-c464-4c73-b18e-0888740b1747,3fd26019-c464-4c73-b18e-0888740b1747,1,0,1c2103d3-3feb-4412-98c4-c731f22eef2b,1c2103d3-3feb-4412-98c4-c731f22eef2b,1,0,569bb515-cec2-4da0-80f0-34dae50206e0,569bb515-cec2-4da0-80f0-34dae50206e0,1,0,a21989bd-a57f-4969-be3b-d8b39ead4145,a21989bd-a57f-4969-be3b-d8b39ead4145,1,0,c4aee120-cdbb-4b48-a1c7-99cccbafb120,c4aee120-cdbb-4b48-a1c7-99cccbafb120,1,0,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,6b3e07d5-9299-4933-b3fa-c3cc5f5aa7c9,1,0,a3667b25-7c18-446d-a318-685a4fe4bf89,a3667b25-7c18-446d-a318-685a4fe4bf89,1,0,fd271670-bde6-4351-abec-eb82548c6c98,fd271670-bde6-4351-abec-eb82548c6c98,1,0,498b012b-bb63-490e-8100-1d33dc84b400,498b012b-bb63-490e-8100-1d33dc84b400,1,0,8103f12c-ed50-4052-8117-33b6d11ef620,8103f12c-ed50-4052-8117-33b6d11ef620,1,0,4f8653e4-3f58-4bad-8ded-424fe7b1d18a,4f8653e4-3f58-4bad-8ded-424fe7b1d18a,1,0,799b3dda-fbfc-4dea-a577-30321e64f4d5,799b3dda-fbfc-4dea-a577-30321e64f4d5,1,0,7c7857b6-90e8-4b3f-9902-fd81bf68d133,7c7857b6-90e8-4b3f-9902-fd81bf68d133,1,0,617de19c-bf01-4900-832a-c169e9faeb79,617de19c-bf01-4900-832a-c169e9faeb79,1,0,70b73fd0-f5dc-411e-9bbb-10a538e8281b,70b73fd0-f5dc-411e-9bbb-10a538e8281b,1,0,758f44ad-54da-4f72-accf-0afecc4f4827,758f44ad-54da-4f72-accf-0afecc4f4827,1,0,05ee4a7c-63e6-4587-8be7-e206345e3471,05ee4a7c-63e6-4587-8be7-e206345e3471,1,0,98d5e98b-0382-4b28-a5d9-24392925664a,98d5e98b-0382-4b28-a5d9-24392925664a,1,0,7c424a77-2a83-4a85-8b7d-e8bb6d013c77,7c424a77-2a83-4a85-8b7d-e8bb6d013c77,1,0,2a77eb39-0487-4fb0-8d5b-d4a27592ea60,2a77eb39-0487-4fb0-8d5b-d4a27592ea60,1,0,19a18193-c5d3-4e56-86c5-5a81c525e9ad,19a18193-c5d3-4e56-86c5-5a81c525e9ad,1,0,c208fcc0-d7b2-435b-963a-e18c97727f8f,c208fcc0-d7b2-435b-963a-e18c97727f8f,1,0,ac5db038-8bc3-45ff-9e8d-04ea9fef6d43,ac5db038-8bc3-45ff-9e8d-04ea9fef6d43,1,0,bf11f7b1-6332-4499-ba48-b94bc10ef869,bf11f7b1-6332-4499-ba48-b94bc10ef869,1,0,4de445f0-7c27-4540-a5a8-9c3ca2a13fd2,4de445f0-7c27-4540-a5a8-9c3ca2a13fd2,1,0,2977fedd-2c56-4d21-8eb1-a424e1b17cb3,2977fedd-2c56-4d21-8eb1-a424e1b17cb3,1,0,0b8a2936-07c5-4b90-80e6-5a058e546de6,0b8a2936-07c5-4b90-80e6-5a058e546de6,1,0,34524248-668e-48e5-a801-f489cd664de8,34524248-668e-48e5-a801-f489cd664de8,1,0,ae0891ae-ecd2-4072-8d2b-0556030c9dfd,ae0891ae-ecd2-4072-8d2b-0556030c9dfd,1,0,e8f36bca-738b-471c-b8d3-8a484978934a,e8f36bca-738b-471c-b8d3-8a484978934a,1,0,336cb96e-8867-4c9d-b74c-b4287ac9212a,336cb96e-8867-4c9d-b74c-b4287ac9212a,1,0,fc7dbc20-7bef-4cbc-9b32-5d86cef5532c,fc7dbc20-7bef-4cbc-9b32-5d86cef5532c,1,0,29f616a6-b914-4ffb-8a86-1ae17089e2f7,29f616a6-b914-4ffb-8a86-1ae17089e2f7,1,0,c50075b0-e8e2-4a6c-92ef-05882aa3cfea,c50075b0-e8e2-4a6c-92ef-05882aa3cfea,1,0,5a1058fc-35f6-43c2-95e5-ae678e19e7d6,5a1058fc-35f6-43c2-95e5-ae678e19e7d6,1,0,05c27c89-2c26-4252-842d-9aa43ba0ea2f,05c27c89-2c26-4252-842d-9aa43ba0ea2f,1,0,7c1e16c2-201d-4a3f-b0f4-9d66f5f8a68b,7c1e16c2-201d-4a3f-b0f4-9d66f5f8a68b,1,0,f092729c-6b5d-4709-8b28-15e06129731d,f092729c-6b5d-4709-8b28-15e06129731d,1,0,c03be2f7-d681-417d-975a-5c8c7b716659,c03be2f7-d681-417d-975a-5c8c7b716659,1,0,fca7af5f-bdc0-4264-be68-5e5e38545368,fca7af5f-bdc0-4264-be68-5e5e38545368,1,0,a3fc0bce-a87e-4c15-b57b-f285a694bcdf,a3fc0bce-a87e-4c15-b57b-f285a694bcdf,1,0,ae124745-edfb-11e6-4681-a8667f21fde4,ae124745-edfb-11e6-4681-a8667f21fde4,1,0,f6fcf9c2-edfb-11e6-4681-a8667f21fde4,f6fcf9c2-edfb-11e6-4681-a8667f21fde4,1,0,ec70cf10-edfb-11e6-4681-a8667f21fde4,ec70cf10-edfb-11e6-4681-a8667f21fde4,1,0,7c47f039-1ca9-4c6f-ac36-f4cb59b48b65,7c47f039-1ca9-4c6f-ac36-f4cb59b48b65,1,0,0b7cee9b-3870-49f5-a58e-063cf5353467,0b7cee9b-3870-49f5-a58e-063cf5353467,1,0,d392a791-af74-40c9-ab20-6ed6aeabe864,d392a791-af74-40c9-ab20-6ed6aeabe864,1,0,974d2430-1ff6-4be9-a5aa-aa896e9a66d4,974d2430-1ff6-4be9-a5aa-aa896e9a66d4,1,0,1612570d-b069-405a-9dd3-80b8175fb468,1612570d-b069-405a-9dd3-80b8175fb468,1,0,3c429fe8-e663-4a58-817f-8f8382697dbb,3c429fe8-e663-4a58-817f-8f8382697dbb,1,0,c37be0c3-d2db-4e63-a8cb-7956a5396650,c37be0c3-d2db-4e63-a8cb-7956a5396650,1,0,83180e0d-fc4b-41ec-9a17-5af555a4776f,83180e0d-fc4b-41ec-9a17-5af555a4776f,1,0,27c52afc-7127-41e1-af8a-1b1bd2c9bfa8,27c52afc-7127-41e1-af8a-1b1bd2c9bfa8,1,0,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,7f68e4c1-c4f7-4c6c-8f0a-225e544e07ee,1,0,561ed574-617d-4a46-b32b-f022e07846c8,561ed574-617d-4a46-b32b-f022e07846c8,1,0,cba706bf-a9a7-4dda-9c5a-a26e85119396,cba706bf-a9a7-4dda-9c5a-a26e85119396,1,0,159a4eb5-00cd-426c-86e3-09cd3f569f22,159a4eb5-00cd-426c-86e3-09cd3f569f22,1,0,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,f03cdb56-ef3f-461f-91b1-cdcaed2786e8,1,0,3e8c6546-416c-4437-8c85-2cf591b4fc3f,3e8c6546-416c-4437-8c85-2cf591b4fc3f,1,0,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,038e5027-3cc5-4ea2-b0b5-28a7544ad53e,1,0,9a0b27db-e4ac-496b-b6de-876b90381527,9a0b27db-e4ac-496b-b6de-876b90381527,1,0,2ded5135-b6c3-46dd-b563-7b6fab986d23,2ded5135-b6c3-46dd-b563-7b6fab986d23,1,0,14215720-ccb3-4e5a-8345-cd42c96a3e77,14215720-ccb3-4e5a-8345-cd42c96a3e77,1,0,24fa0604-b6a5-49ad-9d03-b2cf8e81dad8,24fa0604-b6a5-49ad-9d03-b2cf8e81dad8,1,0,0690a5c7-bc25-4101-afa5-69c095d415c2,0690a5c7-bc25-4101-afa5-69c095d415c2,1,0,2ad7b509-4cd1-456a-a6ae-94649fdf8c3e,2ad7b509-4cd1-456a-a6ae-94649fdf8c3e,1,0,79013bba-a0f2-481c-a63e-095a54ee52aa,79013bba-a0f2-481c-a63e-095a54ee52aa,1,0,8523c346-f144-41b8-a702-2d588e7097c2,8523c346-f144-41b8-a702-2d588e7097c2,1,0,93969a30-d9d7-4f2f-85fa-57a4eb7495bf,93969a30-d9d7-4f2f-85fa-57a4eb7495bf,1,0,9fb73c9b-05de-4474-8a28-7e3fd5b2b143,9fb73c9b-05de-4474-8a28-7e3fd5b2b143,1,0,fa2bd6a6-bb46-4e21-8684-248578310164,fa2bd6a6-bb46-4e21-8684-248578310164,1,0,f7cf3b42-39c0-48db-b8ca-fe9ea267a45a,f7cf3b42-39c0-48db-b8ca-fe9ea267a45a,1,0,3a0c06eb-f6d5-46c3-b0b9-c8d98e572093,3a0c06eb-f6d5-46c3-b0b9-c8d98e572093,1,0,88ccac36-169d-48f8-bc68-15e3bb775b79,88ccac36-169d-48f8-bc68-15e3bb775b79,1,0,a1640988-bd60-43b3-86f1-184b9db275c6,a1640988-bd60-43b3-86f1-184b9db275c6,1,0,300a02f7-8062-4843-b11e-0321f8b40f4d,300a02f7-8062-4843-b11e-0321f8b40f4d,1,0,c8015ae6-31a7-49f4-a9e6-5d13774f64e5,c8015ae6-31a7-49f4-a9e6-5d13774f64e5,1,0,970430c4-37fc-476c-a3f6-5f6bebd2e663,970430c4-37fc-476c-a3f6-5f6bebd2e663,1,0,4cddde4a-42d5-44d0-a693-ea90eab9b169,4cddde4a-42d5-44d0-a693-ea90eab9b169,1,0,d9d612bb-6d04-4186-b243-f99aded0ba43,d9d612bb-6d04-4186-b243-f99aded0ba43,1,0,15db8b7b-59f5-4551-b2bd-b24801f056b5,15db8b7b-59f5-4551-b2bd-b24801f056b5,1,0,88d2236b-794b-485a-b075-f1a54cadcd3a,88d2236b-794b-485a-b075-f1a54cadcd3a,1,0,b7f9553f-6219-4401-a6f4-9debd47186d2,b7f9553f-6219-4401-a6f4-9debd47186d2,1,0,26a7e044-a583-40af-9daa-5aea628c8f19,26a7e044-a583-40af-9daa-5aea628c8f19,1,0,548717ca-0645-49b4-9580-c77cd4d03ebb,548717ca-0645-49b4-9580-c77cd4d03ebb,1,0,29c337bd-9811-4fce-91bb-20c253d2d14a,29c337bd-9811-4fce-91bb-20c253d2d14a,1,0,b451f2fc-ced2-418a-a803-4fe99488b394,b451f2fc-ced2-418a-a803-4fe99488b394,1,0,62269222-67a7-489e-ba59-4294902275bc,62269222-67a7-489e-ba59-4294902275bc,1,0,fed1b714-a2c9-42cf-9ced-35ed895e4167,fed1b714-a2c9-42cf-9ced-35ed895e4167,1,0,6f334263-10c8-4187-9a84-d2fd1afadc48,6f334263-10c8-4187-9a84-d2fd1afadc48,1,0,f5674a0d-a106-4cc0-a402-b378280eab3d,f5674a0d-a106-4cc0-a402-b378280eab3d,1,0,9a68a81b-c6bd-4353-baf4-da8a21f98fb9,9a68a81b-c6bd-4353-baf4-da8a21f98fb9,1,0,8db2b1d8-c415-4846-bd1a-9fec1b105ff0,8db2b1d8-c415-4846-bd1a-9fec1b105ff0,1,0,3ed20a3b-031c-4f2b-a66a-14cceed80407,3ed20a3b-031c-4f2b-a66a-14cceed80407,1,0,3831a5d8-12d5-4730-ac2e-e11f084dc684,3831a5d8-12d5-4730-ac2e-e11f084dc684,1,0,b6dce793-c652-48de-b2da-1dc3e89e1521,b6dce793-c652-48de-b2da-1dc3e89e1521,1,0,41990cad-a43e-46fd-b9bc-e8acc1d6e937,41990cad-a43e-46fd-b9bc-e8acc1d6e937,1,0,3bcce139-d42e-45c2-ace8-28aa34e01a38,3bcce139-d42e-45c2-ace8-28aa34e01a38,1,0,2e6a596c-c203-48b3-af11-bf0aef0f70a1,2e6a596c-c203-48b3-af11-bf0aef0f70a1,1,0,82eb7d08-12ad-42a2-9257-91b93f7cc890,82eb7d08-12ad-42a2-9257-91b93f7cc890,1,0,50754c7d-9c8a-497c-a4c8-76d7400b3412,50754c7d-9c8a-497c-a4c8-76d7400b3412,1,0,193f2d79-83a7-4044-89c6-0b5d7c7cf80a,193f2d79-83a7-4044-89c6-0b5d7c7cf80a,1,0,93070fc1-4204-43b7-b8eb-1bf905f5fa3f,93070fc1-4204-43b7-b8eb-1bf905f5fa3f,1,0,d29ba846-bc42-4364-b69d-4b56532920e0,d29ba846-bc42-4364-b69d-4b56532920e0,1,0,83239cd4-50cb-4281-8be3-fd89e410c15c,83239cd4-50cb-4281-8be3-fd89e410c15c,1,0,fa99302b-3e86-4330-b9ff-c38d933f81f0,fa99302b-3e86-4330-b9ff-c38d933f81f0,1,0,fb9c08ee-92e9-4bd9-8794-ef0f221eee99,fb9c08ee-92e9-4bd9-8794-ef0f221eee99,1,0,e4cd44e6-1255-490f-96d9-f805ac92cf67,e4cd44e6-1255-490f-96d9-f805ac92cf67,1,0,8ae9be37-cda5-4b66-8a97-5e77d2a2c75f,8ae9be37-cda5-4b66-8a97-5e77d2a2c75f,1,0,5a9011fc-c023-47fb-a999-2c6ca33a04b9,5a9011fc-c023-47fb-a999-2c6ca33a04b9,1,0,ab574fa5-0730-4456-b741-111e5ea8a896,ab574fa5-0730-4456-b741-111e5ea8a896,1,0,b8d5adf0-dc2f-4041-bc97-cb2442f00054,b8d5adf0-dc2f-4041-bc97-cb2442f00054,1,0,398199c4-4830-48e9-89c5-45c2c5a30ee6,398199c4-4830-48e9-89c5-45c2c5a30ee6,1,0,546ba3bb-4614-423f-954c-466530f42784,546ba3bb-4614-423f-954c-466530f42784,1,0,e5bc54f0-d7d0-471c-adda-a0e73e0dd3cf,e5bc54f0-d7d0-471c-adda-a0e73e0dd3cf,1,0,af447f33-ef41-4eda-96ec-5bac26fff33e,af447f33-ef41-4eda-96ec-5bac26fff33e,1,0,f0c83fc5-6e9a-4185-ab43-2b419ace7909,f0c83fc5-6e9a-4185-ab43-2b419ace7909,1,0,4bd15718-6a0e-4a86-921a-09d38ba4be4c,4bd15718-6a0e-4a86-921a-09d38ba4be4c,1,0,32586ba6-8922-4321-b134-70d1b77a16a4,32586ba6-8922-4321-b134-70d1b77a16a4,1,0,a21cf522-d657-49ba-a198-01ff1de5e3f0,a21cf522-d657-49ba-a198-01ff1de5e3f0,1,0,4dc698da-8471-4b3f-816d-f1467cd2e5f1,4dc698da-8471-4b3f-816d-f1467cd2e5f1,1,0,7ceb2f18-4dae-4b13-a5be-e949be165b4e,7ceb2f18-4dae-4b13-a5be-e949be165b4e,1,0,c4f94f6d-e33f-4226-bf47-c4b544098082,c4f94f6d-e33f-4226-bf47-c4b544098082,1,0,0abca5b8-4974-48aa-bf5d-dbbe2c2ea0e6,0abca5b8-4974-48aa-bf5d-dbbe2c2ea0e6,1,0,fc67b510-3fb4-4305-92d2-c252bc718f03,fc67b510-3fb4-4305-92d2-c252bc718f03,1,0,ed98a7b2-ad31-401f-a65e-dfbcc8e5a4a8,ed98a7b2-ad31-401f-a65e-dfbcc8e5a4a8,1,0,9a5e3d2c-ab69-4f9d-a56f-20bb5f0be1e2,9a5e3d2c-ab69-4f9d-a56f-20bb5f0be1e2,1,0,cf1f7915-94ad-47e7-8676-73271d0cf71e,cf1f7915-94ad-47e7-8676-73271d0cf71e,1,0,fceb6e4a-bd51-4193-a542-70d2317af669,fceb6e4a-bd51-4193-a542-70d2317af669,1,0,f9f991a6-ddf3-4953-8a1f-e6c0e1a7f4e9,f9f991a6-ddf3-4953-8a1f-e6c0e1a7f4e9,1,0,80847d57-1795-46c7-a106-926e1f43ac1e,80847d57-1795-46c7-a106-926e1f43ac1e,1,0,38685415-dc87-48b4-8cc4-f85b438f2ec2,38685415-dc87-48b4-8cc4-f85b438f2ec2,1,0,110eff8b-aeec-4ba5-b710-fefc1bd60284,110eff8b-aeec-4ba5-b710-fefc1bd60284,1,0,0a8a6bb9-8b6a-43cf-9d46-b18a8a9591d8,0a8a6bb9-8b6a-43cf-9d46-b18a8a9591d8,1,0,75eca481-002b-4046-898d-dfac9357611f,75eca481-002b-4046-898d-dfac9357611f,1,0,5d81af5c-3133-4e21-9ea4-ffe3d3ca9769,5d81af5c-3133-4e21-9ea4-ffe3d3ca9769,1,0,0f83d532-f675-4aea-802e-d640cc53e4a9,0f83d532-f675-4aea-802e-d640cc53e4a9,1,0,75b0d16b-4acd-4870-8e9d-f2764171e747,75b0d16b-4acd-4870-8e9d-f2764171e747,1,0,8f2cd606-d326-4c92-bfff-e5ec8b5057b5,8f2cd606-d326-4c92-bfff-e5ec8b5057b5,1,0,ed56abb2-66c6-412e-bead-9b23c59bd49a,ed56abb2-66c6-412e-bead-9b23c59bd49a,1,0,47ad737d-c9d3-4d4d-8d4d-b550412062c4,47ad737d-c9d3-4d4d-8d4d-b550412062c4,1,0,204f67e9-204d-47b6-afdd-8e880b7563bc,204f67e9-204d-47b6-afdd-8e880b7563bc,1,0,4da10de3-d999-4acd-bf5a-b1c60cf01b32,4da10de3-d999-4acd-bf5a-b1c60cf01b32,1,0,5e52263e-856f-43da-96ca-d4f06127f604,5e52263e-856f-43da-96ca-d4f06127f604,1,0,ab6f18fe-4ce4-4ecb-945b-bf71ef793549,ab6f18fe-4ce4-4ecb-945b-bf71ef793549,1,0,57904a00-a127-4add-a9fb-639e17c80e33,57904a00-a127-4add-a9fb-639e17c80e33,1,0,2f2f70b7-8f78-4eee-acb7-fe103827e88a,2f2f70b7-8f78-4eee-acb7-fe103827e88a,1,0,f6e8a922-c28b-49b2-ace5-0c812946270d,f6e8a922-c28b-49b2-ace5-0c812946270d,1,0,3d9d472e-a914-4f76-b087-19d4cfe19c19,3d9d472e-a914-4f76-b087-19d4cfe19c19,1,0,81225721-7e65-451d-9175-76fddc50f0c4,81225721-7e65-451d-9175-76fddc50f0c4,1,0,4a6bfd2c-0690-4504-9952-10e7c31156e9,4a6bfd2c-0690-4504-9952-10e7c31156e9,1,0,8f2dfd13-5e16-4fdd-be02-033d27b43317,8f2dfd13-5e16-4fdd-be02-033d27b43317,1,0,2c3849f2-46cc-4350-a6c5-f5587af2c699,2c3849f2-46cc-4350-a6c5-f5587af2c699,1,0,0110decc-d06e-43cf-9d01-30d412edcdd7,0110decc-d06e-43cf-9d01-30d412edcdd7,1,0,3ea32a24-d37b-4fad-937a-9d1357d649a9,3ea32a24-d37b-4fad-937a-9d1357d649a9,1,0,2856ee9a-0fea-4684-b7b8-4844773eae07,2856ee9a-0fea-4684-b7b8-4844773eae07,1,0,84e09840-8d67-416f-87a2-7f03c04180c9,84e09840-8d67-416f-87a2-7f03c04180c9,1,0,0388f22d-f91d-45c9-a8ae-900a24cbfe67,0388f22d-f91d-45c9-a8ae-900a24cbfe67,1,0,60fa2562-4914-46d6-a00a-1bb6e2803263,60fa2562-4914-46d6-a00a-1bb6e2803263,1,0,0d61a8d4-2dc8-435e-a238-416d7640576f,0d61a8d4-2dc8-435e-a238-416d7640576f,1,0,5ea899d4-e076-4a1c-838c-e369abc4705f,5ea899d4-e076-4a1c-838c-e369abc4705f,1,0,f2bf5f4a-e53b-4300-bbc7-97ac2e06f3c2,f2bf5f4a-e53b-4300-bbc7-97ac2e06f3c2,1,0,ab2e75f0-8da7-4b38-8f30-537424b719db,ab2e75f0-8da7-4b38-8f30-537424b719db,1,0,db344a42-61b8-4544-9aa1-8840ab8a70f0,db344a42-61b8-4544-9aa1-8840ab8a70f0,1,0,bd029e3f-a6bd-4be9-81f3-f3ea84f424ce,bd029e3f-a6bd-4be9-81f3-f3ea84f424ce,1,0,043bd776-5a7b-45ff-8b4a-5eed2bba0054,043bd776-5a7b-45ff-8b4a-5eed2bba0054,1,0,6a708860-e3b6-46ea-bea5-0d3e426c72f6,6a708860-e3b6-46ea-bea5-0d3e426c72f6,1,0,7c9e30d0-4a25-4d1d-a5ad-c48b231f453c,7c9e30d0-4a25-4d1d-a5ad-c48b231f453c,1,0,f53a3a46-edad-4cc0-8814-3755c2ea2c03,f53a3a46-edad-4cc0-8814-3755c2ea2c03,1,0,0a60b201-23f7-483b-ac16-5d270f32344e,0a60b201-23f7-483b-ac16-5d270f32344e,1,0,78058cd3-eb56-483c-96f5-1bf8883abc76,78058cd3-eb56-483c-96f5-1bf8883abc76,1,0,cd1fbfdd-d05e-4c22-aa04-83e9d36fb557,cd1fbfdd-d05e-4c22-aa04-83e9d36fb557,1,0,735eb95a-f4a9-4a90-a9a0-ab269b89f4de,735eb95a-f4a9-4a90-a9a0-ab269b89f4de,1,0,49f4a74c-abc2-446f-8f3c-de7bc02d84bf,49f4a74c-abc2-446f-8f3c-de7bc02d84bf,1,0,9d55341b-ceb2-4400-aeb6-3b579d9c6f2b,9d55341b-ceb2-4400-aeb6-3b579d9c6f2b,1,0,ab1efcef-f81b-45e5-893d-56e75c1e0a6f,ab1efcef-f81b-45e5-893d-56e75c1e0a6f,1,0,bbefbf22-6d11-4639-b53e-b72e94ff307c,bbefbf22-6d11-4639-b53e-b72e94ff307c,1,0,dca6a730-8a3f-4b78-926b-2287e21a25a1,dca6a730-8a3f-4b78-926b-2287e21a25a1,1,0,bdec80e6-4aef-4603-98dc-3332abda955c,bdec80e6-4aef-4603-98dc-3332abda955c,1,0,8be7adcd-b49a-4192-9f62-e0b0089b0386,8be7adcd-b49a-4192-9f62-e0b0089b0386,1,0,e4e8e36b-6060-43f3-8b05-bbbf61c3decc,e4e8e36b-6060-43f3-8b05-bbbf61c3decc,1,0,a53447c8-0299-4cf0-a6f9-5a3af423be38,a53447c8-0299-4cf0-a6f9-5a3af423be38,1,0,4f8a2980-bdb4-4a4f-82ec-2822dc1adc49,4f8a2980-bdb4-4a4f-82ec-2822dc1adc49,1,0,91b5a3ca-5f7b-462d-b322-ab8e938add40,91b5a3ca-5f7b-462d-b322-ab8e938add40,1,0,8db8d80c-bf04-4252-8371-46a1dd7e2720,8db8d80c-bf04-4252-8371-46a1dd7e2720,1,0,6fdb4b65-1caf-4472-8135-c6a479bda6d4,6fdb4b65-1caf-4472-8135-c6a479bda6d4,1,0,b5a8b32f-8f8d-4e13-9113-94e66f5c9621,b5a8b32f-8f8d-4e13-9113-94e66f5c9621,1,0,9b8cf6f0-2b56-4954-b982-db18ad78c5ef,9b8cf6f0-2b56-4954-b982-db18ad78c5ef,1,0,1e869478-9bff-4854-9f9c-699b7d1c8faa,1e869478-9bff-4854-9f9c-699b7d1c8faa,1,0,b8fe43d1-b9a7-4ec1-94bd-1e7fad424f8d,b8fe43d1-b9a7-4ec1-94bd-1e7fad424f8d,1,0,f64089ee-72dd-4fcf-8926-31e95c6fcf77,f64089ee-72dd-4fcf-8926-31e95c6fcf77,1,0,5d93aea8-3f41-4e77-bed5-4b2377cbfe0e,5d93aea8-3f41-4e77-bed5-4b2377cbfe0e,1,0,e1e151cc-7b8a-4125-804f-c902a522ed81,e1e151cc-7b8a-4125-804f-c902a522ed81,1,0,f475494e-fe94-4902-b2da-3ade01eba5bb,f475494e-fe94-4902-b2da-3ade01eba5bb,1,0,fbb814b2-cb2f-474d-9c96-5571cef3030e,fbb814b2-cb2f-474d-9c96-5571cef3030e,1,0,4e892154-3279-492c-9eae-124304225c5d,4e892154-3279-492c-9eae-124304225c5d,1,0,53a6ffa4-31f8-4717-9ecc-2852e6e4cce9,53a6ffa4-31f8-4717-9ecc-2852e6e4cce9,1,0,575a135a-6ffd-4ae8-a597-7e584df9bac4,575a135a-6ffd-4ae8-a597-7e584df9bac4,1,0,693a7196-f525-4bd2-a417-e902977f21cb,693a7196-f525-4bd2-a417-e902977f21cb,1,0,9bb39184-08b7-440e-a8f8-5caf0083ba0f,9bb39184-08b7-440e-a8f8-5caf0083ba0f,1,0,f2aa4137-07b6-4fc7-8009-8127762dc698,f2aa4137-07b6-4fc7-8009-8127762dc698,1,0,d48e817e-f6a4-47e5-a052-35d09e066490,d48e817e-f6a4-47e5-a052-35d09e066490,1,0,7bf36370-3761-4fd5-bea5-90fa142a9d57,7bf36370-3761-4fd5-bea5-90fa142a9d57,1,0,3b81427f-cf64-4a5e-adb3-5415d515fecd,3b81427f-cf64-4a5e-adb3-5415d515fecd,1,0,e9f2b604-7181-476d-8b34-3a544cbb353d,e9f2b604-7181-476d-8b34-3a544cbb353d,1,0,73773919-d01c-41dd-bb31-9c66648ac0ff,73773919-d01c-41dd-bb31-9c66648ac0ff,1,0,5d1afad0-3d7e-4214-b52a-72c184490084,5d1afad0-3d7e-4214-b52a-72c184490084,1,0,5f7901a1-f992-42fa-9ddb-d63574da3b56,5f7901a1-f992-42fa-9ddb-d63574da3b56,1,0,26abd45a-12b3-4312-88fb-53c90a6e6679,26abd45a-12b3-4312-88fb-53c90a6e6679,1,0,1541ad74-3e73-4699-bccf-c13313fbedfe,1541ad74-3e73-4699-bccf-c13313fbedfe,1,0,1037ecb7-6819-4ba2-8c93-eccbbdf825be,1037ecb7-6819-4ba2-8c93-eccbbdf825be,1,0,1f03420b-0480-451a-9263-8431ff0b0c73,1f03420b-0480-451a-9263-8431ff0b0c73,1,0,2bf547e4-d295-4f69-9dbf-9a9d91b2db98,2bf547e4-d295-4f69-9dbf-9a9d91b2db98,1,0,46506a80-495e-4f06-a191-54ccf5d6cc3f,46506a80-495e-4f06-a191-54ccf5d6cc3f,1,0,b9788ea3-b910-4b5b-96c3-921d62745b6e,b9788ea3-b910-4b5b-96c3-921d62745b6e,1,0,0646de72-49fd-466d-af0f-843bfa527049,0646de72-49fd-466d-af0f-843bfa527049,1,0,3bce82a2-efba-4866-950c-5804853b5fe2,3bce82a2-efba-4866-950c-5804853b5fe2,1,0,ee0e428a-bee7-4169-9b6e-63704f3d1a8e,ee0e428a-bee7-4169-9b6e-63704f3d1a8e,1,0,5fa8756c-871d-460f-b70a-0797de0d5563,5fa8756c-871d-460f-b70a-0797de0d5563,1,0,cc63becf-0e32-48d8-b4c1-430abaa83e9e,cc63becf-0e32-48d8-b4c1-430abaa83e9e,1,0,f46ae351-0ac5-4597-a6a9-1394cd5ec83f,f46ae351-0ac5-4597-a6a9-1394cd5ec83f,1,0,d57f644e-40e5-46a3-874c-5addd52ec3f6,d57f644e-40e5-46a3-874c-5addd52ec3f6,1,0,5ef18079-798a-4924-98a7-8ba4ff13303f,5ef18079-798a-4924-98a7-8ba4ff13303f,1,0,16835f10-559e-420b-9a67-03aac0e947c4,16835f10-559e-420b-9a67-03aac0e947c4,1,0,0292ed74-c47c-4a44-b6db-0e9b6828bec2,0292ed74-c47c-4a44-b6db-0e9b6828bec2,1,0,bfafc36e-2d45-4716-b7be-a89b69575066,bfafc36e-2d45-4716-b7be-a89b69575066,1,0,75cb904b-b3f1-4f0d-85d9-a186262028ff,75cb904b-b3f1-4f0d-85d9-a186262028ff,1,0,82cfb1ad-5ba0-425c-b75e-6281862faec8,82cfb1ad-5ba0-425c-b75e-6281862faec8,1,0,de64596c-a7c1-4d1d-9264-5817e47ab6d3,de64596c-a7c1-4d1d-9264-5817e47ab6d3,1,0,7c3463c8-ea36-415a-8e9d-dc7bd927b9d1,7c3463c8-ea36-415a-8e9d-dc7bd927b9d1,1,0,260f4fb1-02cb-4c32-ba4b-5aa202cd0311,260f4fb1-02cb-4c32-ba4b-5aa202cd0311,1,0,be2b4dba-e77e-4947-bd2f-0710b357ca2a,be2b4dba-e77e-4947-bd2f-0710b357ca2a,1,0,df750e63-50fc-4085-b8b8-f05e4751ff51,df750e63-50fc-4085-b8b8-f05e4751ff51,1,0,86182e9a-89e0-40d7-b2d7-fcd92ee42942,86182e9a-89e0-40d7-b2d7-fcd92ee42942,1,0,091cb921-c7e3-4a5f-97b7-34e625159b9c,091cb921-c7e3-4a5f-97b7-34e625159b9c,1,0,f6118cdd-1dcd-464e-a49d-e95c69466750,f6118cdd-1dcd-464e-a49d-e95c69466750,1,0,39932897-959b-41a6-94ad-61426abfdbd9,39932897-959b-41a6-94ad-61426abfdbd9,1,0,c56ea6f3-1032-4b7a-a20e-e912196da1cd,c56ea6f3-1032-4b7a-a20e-e912196da1cd,1,0,b69b611d-18d3-4e78-8a09-f010bcf9c261,b69b611d-18d3-4e78-8a09-f010bcf9c261,1,0,e8e087c1-9131-4037-8562-8bce8c38f78c,e8e087c1-9131-4037-8562-8bce8c38f78c,1,0,3b1c9126-9b9f-4658-967c-cc9ef5b1000f,3b1c9126-9b9f-4658-967c-cc9ef5b1000f,1,0,6adaef8e-82b6-4664-9748-4f41b170d91a,6adaef8e-82b6-4664-9748-4f41b170d91a,1,0,20d655a7-788c-48bc-83ae-25003106bedb,20d655a7-788c-48bc-83ae-25003106bedb,1,0,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,7bfb78de-899f-4a4d-a8b2-ebadeccf3921,1,0,68a72014-4b2e-4347-aaa7-54d95b8eb919,68a72014-4b2e-4347-aaa7-54d95b8eb919,1,0,379c9295-d0d5-418d-82f3-5ae19985cc53,379c9295-d0d5-418d-82f3-5ae19985cc53,1,0,25830f5b-27e2-4eff-9728-b21eb498727d,25830f5b-27e2-4eff-9728-b21eb498727d,1,0,af02f534-8508-4f9f-bcc1-0c6f3d696971,af02f534-8508-4f9f-bcc1-0c6f3d696971,1,0,dd345cfb-ea0c-4ea8-9b35-22547b000275,dd345cfb-ea0c-4ea8-9b35-22547b000275,1,0,a71d9c41-7510-4d38-90df-1034977b8f45,a71d9c41-7510-4d38-90df-1034977b8f45,1,0,86a871da-3725-43a1-a7c3-98acd187011b,86a871da-3725-43a1-a7c3-98acd187011b,1,0,2447cfeb-d877-4222-8ac2-b0026b85f932,2447cfeb-d877-4222-8ac2-b0026b85f932,1,0,fb94e9cb-1f27-42a6-a701-18bbe5888e70,fb94e9cb-1f27-42a6-a701-18bbe5888e70,1,0,2e26e32e-a0c6-4460-99de-865622202166,2e26e32e-a0c6-4460-99de-865622202166,1,0,c9489a6e-45af-4877-9788-158071571a0a,c9489a6e-45af-4877-9788-158071571a0a,1,0,23959912-f8fc-42bc-9ec2-1d520ebc5dad,23959912-f8fc-42bc-9ec2-1d520ebc5dad,1,0,4770398f-8013-4d43-93ce-ec1165e40c4e,4770398f-8013-4d43-93ce-ec1165e40c4e,1,0,9a706997-90cb-430d-972c-d2bad87c4a79,9a706997-90cb-430d-972c-d2bad87c4a79,1,0,6f661660-b9c4-41d4-99a8-e08006cfe9c8,6f661660-b9c4-41d4-99a8-e08006cfe9c8,1,0,199e79fa-54d6-4748-aaaa-9c55283582a3,199e79fa-54d6-4748-aaaa-9c55283582a3,1,0,5ef026c2-2ef4-45d6-9792-5ba0d298714b,5ef026c2-2ef4-45d6-9792-5ba0d298714b,1,0,45d61391-4cf7-4f45-8775-ada582c42400,45d61391-4cf7-4f45-8775-ada582c42400,1,0,78b2a913-2ab9-455d-85a3-504f0f468468,78b2a913-2ab9-455d-85a3-504f0f468468,1,0,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,8c7e1080-fbb2-4a9c-b740-b3e9eb996565,1,0,560b5b12-4dee-4c69-ab6b-7680757a2797,560b5b12-4dee-4c69-ab6b-7680757a2797,1,0,3cfb1ce0-de42-4914-85c0-807d0c10f77e,3cfb1ce0-de42-4914-85c0-807d0c10f77e,1,0,a27244c2-ac65-423f-afce-42efd288a83d,a27244c2-ac65-423f-afce-42efd288a83d,1,0,d4002184-8e08-4dcc-9070-62f595e82e23,d4002184-8e08-4dcc-9070-62f595e82e23,1,0,62163fda-1a09-4d4f-b290-76ff324042ab,62163fda-1a09-4d4f-b290-76ff324042ab,1,0,f2816dd2-47dd-41e8-9709-6dac1e4f4d21,f2816dd2-47dd-41e8-9709-6dac1e4f4d21,1,0,6e6a1557-06fa-45c0-ad98-c43809553cd7,6e6a1557-06fa-45c0-ad98-c43809553cd7,1,0,179f7436-e328-42b8-9382-19ee6f10c768,179f7436-e328-42b8-9382-19ee6f10c768,1,0,2093344a-47d4-43ac-98df-29c4dff7fca9,2093344a-47d4-43ac-98df-29c4dff7fca9,1,0,3343cb0c-0f80-4ef9-9871-3db9f2299186,3343cb0c-0f80-4ef9-9871-3db9f2299186,1,0,791d7289-b188-4120-a5f5-f5eb1fd675bf,791d7289-b188-4120-a5f5-f5eb1fd675bf,1,0,e996d749-1aa5-4fe5-b87b-3d8d06144d93,e996d749-1aa5-4fe5-b87b-3d8d06144d93,1,0,6613153f-4f81-4bac-8144-7562cce67f55,6613153f-4f81-4bac-8144-7562cce67f55,1,0,488ce902-b60e-4255-8aec-92dafd1d5dd0,488ce902-b60e-4255-8aec-92dafd1d5dd0,1,0,411779cc-de2c-4731-acc0-631a01367eb5,411779cc-de2c-4731-acc0-631a01367eb5,1,0,30794af1-3180-4ed5-b11d-ca139acb22fa,30794af1-3180-4ed5-b11d-ca139acb22fa,1,0,39aeb27d-62d2-480a-aa6b-33e2363194d1,39aeb27d-62d2-480a-aa6b-33e2363194d1,1,0,e69be74a-0e2c-4a7b-8814-ab15ab28f948,e69be74a-0e2c-4a7b-8814-ab15ab28f948,1,0,60410722-dca9-4c3a-a9c4-33fcd45fe584,60410722-dca9-4c3a-a9c4-33fcd45fe584,1,0,3f200f5a-01bd-4304-9c57-18703cac9ec9,3f200f5a-01bd-4304-9c57-18703cac9ec9,1,0,aa89881f-f111-4384-911c-847b04bb56dd,aa89881f-f111-4384-911c-847b04bb56dd,1,0,444d9e3b-c702-4ad6-a929-a220eff0f6e7,444d9e3b-c702-4ad6-a929-a220eff0f6e7,1,0,022c4519-1cdb-45b6-a699-89fd6688999c,022c4519-1cdb-45b6-a699-89fd6688999c,1,0,fb5b79a2-caec-4c6e-a112-27e78a184d5e,fb5b79a2-caec-4c6e-a112-27e78a184d5e,1,0,fa523958-ce1e-42e1-ae00-2dcb401b7eda,fa523958-ce1e-42e1-ae00-2dcb401b7eda,1,0,1518bca2-a004-4566-8991-7c60e6745a49,1518bca2-a004-4566-8991-7c60e6745a49,1,0,ed8618e2-3ce6-4956-856a-9f40279b4da6,ed8618e2-3ce6-4956-856a-9f40279b4da6,1,0,733f6bc2-544d-4fac-bca8-11b981b95a03,733f6bc2-544d-4fac-bca8-11b981b95a03,1,0,3d140a17-40b4-46a7-a846-78f2f77d49f2,3d140a17-40b4-46a7-a846-78f2f77d49f2,1,0,965646a5-5e5b-49cd-864a-c3870844cfdb,965646a5-5e5b-49cd-864a-c3870844cfdb,1,0,27c88cf7-c0ed-44af-bb70-f14269ce1e87,27c88cf7-c0ed-44af-bb70-f14269ce1e87,1,0,0333cd9e-392d-40b2-869d-ad47119e0384,0333cd9e-392d-40b2-869d-ad47119e0384,1,0,82cc8820-0b92-4bb7-b097-7ac79e922f01,82cc8820-0b92-4bb7-b097-7ac79e922f01,1,0,25451a36-c842-44a5-94f4-7e540050b825,25451a36-c842-44a5-94f4-7e540050b825,1,0,8e0340c9-6469-4fc9-b19a-4be4e0e6ee82,8e0340c9-6469-4fc9-b19a-4be4e0e6ee82,1,0,f2267d6c-6972-4621-b677-87798056363b,f2267d6c-6972-4621-b677-87798056363b,1,0,243d201b-3714-4700-b410-c74c9093e6f6,243d201b-3714-4700-b410-c74c9093e6f6,1,0,e1e9862e-c87b-400f-bca1-b1380cb98ddc,e1e9862e-c87b-400f-bca1-b1380cb98ddc,1,0,de3cb50c-ef99-419e-b922-c6a453da6a5b,de3cb50c-ef99-419e-b922-c6a453da6a5b,1,0,d4ca4802-756a-494c-bab3-e77e0777a3fa,d4ca4802-756a-494c-bab3-e77e0777a3fa,1,0,134c1054-8d65-405f-ba3b-5beeca803a72,134c1054-8d65-405f-ba3b-5beeca803a72,1,0,cfa1669b-5310-4171-83fd-4dff3c6ac345,cfa1669b-5310-4171-83fd-4dff3c6ac345,1,0,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,9ec26d14-b09d-4fd7-9c43-062c0120cf3d,1,0,aec7df6a-21a1-495d-b0a9-3769e1069888,aec7df6a-21a1-495d-b0a9-3769e1069888,1,0,463b98bf-b4d4-4edb-995d-0a75ff29b60d,463b98bf-b4d4-4edb-995d-0a75ff29b60d,1,0,317f88a7-12a4-4d21-b637-3050525406f4,317f88a7-12a4-4d21-b637-3050525406f4,1,0,2d9d2319-68fb-436d-b431-98858b88a75a,2d9d2319-68fb-436d-b431-98858b88a75a,1,0,9016988e-1aea-460a-b5eb-644dc5923d87,9016988e-1aea-460a-b5eb-644dc5923d87,1,0,8593c908-9f6f-42df-9fd4-e41ccffba315,8593c908-9f6f-42df-9fd4-e41ccffba315,1,0,d6eb3484-b0ab-40e3-aa95-c18a40259f77,d6eb3484-b0ab-40e3-aa95-c18a40259f77,1,0,08ec3f2e-e523-4e37-8d44-fbc52c66263c,08ec3f2e-e523-4e37-8d44-fbc52c66263c,1,0,7300e566-06ea-42a3-b046-477ee9883559,7300e566-06ea-42a3-b046-477ee9883559,1,0,72ef831d-9d37-4b7f-8b71-fb9dd0ab6038,72ef831d-9d37-4b7f-8b71-fb9dd0ab6038,1,0,a0ff40b4-5815-445e-ad67-f524dfa3aaa7,a0ff40b4-5815-445e-ad67-f524dfa3aaa7,1,0,4d7ef262-8449-4511-a408-e5d322ce3d78,4d7ef262-8449-4511-a408-e5d322ce3d78,1,0,3f8130d4-12b2-4a2b-8f75-9ca8289624c8,3f8130d4-12b2-4a2b-8f75-9ca8289624c8,1,0,02877723-66fb-4984-b760-511d1c6c29f0,02877723-66fb-4984-b760-511d1c6c29f0,1,0,ec0bc645-5abf-423f-a517-2aa7adf9044c,ec0bc645-5abf-423f-a517-2aa7adf9044c,1,0,d8430167-5d4e-4603-9797-36781210cdff,d8430167-5d4e-4603-9797-36781210cdff,1,0,c4b3f94d-6f5f-457b-a425-56c0f745c75f,c4b3f94d-6f5f-457b-a425-56c0f745c75f,1,0,0db78226-37d0-4016-b4c9-5134af1aabc7,0db78226-37d0-4016-b4c9-5134af1aabc7,1,0,8d6b4d23-a260-4352-9975-c13ce3e05220,8d6b4d23-a260-4352-9975-c13ce3e05220,1,0,e0be0bc7-def6-4ae9-9a33-9689aa829b5e,e0be0bc7-def6-4ae9-9a33-9689aa829b5e,1,0,97d4ffd0-07ef-4dc2-8fbc-449c3c8453ef,97d4ffd0-07ef-4dc2-8fbc-449c3c8453ef,1,0,6f5ac40b-ea22-47cf-acf2-614406669a72,6f5ac40b-ea22-47cf-acf2-614406669a72,1,0,b6caaa9e-a9d1-4519-a61f-7fa0ab0ff201,b6caaa9e-a9d1-4519-a61f-7fa0ab0ff201,1,0,488d2644-6fef-488a-af38-40f59c0e0d8c,488d2644-6fef-488a-af38-40f59c0e0d8c,1,0,5d76a28c-5d6c-49cb-8b91-2527e8d06aba,5d76a28c-5d6c-49cb-8b91-2527e8d06aba,1,0,688d86cd-1044-4b77-bb63-2c05aaafbcd0,688d86cd-1044-4b77-bb63-2c05aaafbcd0,1,0,f1efef30-8651-4728-becd-abe3f9026a43,f1efef30-8651-4728-becd-abe3f9026a43,1,0,c2612e22-4f0d-4713-b4eb-decd9780d088,c2612e22-4f0d-4713-b4eb-decd9780d088,1,0,11b1410f-8e14-4b2f-8890-177f4875020e,11b1410f-8e14-4b2f-8890-177f4875020e,1,0,2276b2b0-1705-4014-956f-5087e9dd5c1e,2276b2b0-1705-4014-956f-5087e9dd5c1e,1,0,f72b9d4b-7196-45a3-9349-e32fc91e875a,f72b9d4b-7196-45a3-9349-e32fc91e875a,1,0,6c509dcc-4529-4ac3-86fe-26f807991b1c,6c509dcc-4529-4ac3-86fe-26f807991b1c,1,0,529c8887-f691-4ba8-aeaf-937858d61c30,529c8887-f691-4ba8-aeaf-937858d61c30,1,0,43435d30-8c25-4757-9a29-9173415959ff,43435d30-8c25-4757-9a29-9173415959ff,1,0,4aef5419-7cf5-4443-b773-9273c983844f,4aef5419-7cf5-4443-b773-9273c983844f,1,0,b090cfa5-1bd8-43aa-84d6-6e04375c4b57,b090cfa5-1bd8-43aa-84d6-6e04375c4b57,1,0,9378d484-2143-45eb-a71e-651055611789,9378d484-2143-45eb-a71e-651055611789,1,0,a2d24b4d-6039-49ab-8cc2-14d03a2d5546,a2d24b4d-6039-49ab-8cc2-14d03a2d5546,1,0,c5d0eafb-469e-4a24-8b5e-ce25fb627d3d,c5d0eafb-469e-4a24-8b5e-ce25fb627d3d,1,0,2bb5c23c-ad87-4b66-b766-d2e3f82715bd,2bb5c23c-ad87-4b66-b766-d2e3f82715bd,1,0,d01871bb-492e-4ab8-ada9-e9d8ec1adbce,d01871bb-492e-4ab8-ada9-e9d8ec1adbce,1,0,dd931c85-8c19-42a8-a39e-7af0c5bd346c,dd931c85-8c19-42a8-a39e-7af0c5bd346c,1,0,4fa153eb-1efb-43e5-ac09-e5431d4800df,4fa153eb-1efb-43e5-ac09-e5431d4800df,1,0,ada760f3-6a9f-4b81-afc1-98eb164af747,ada760f3-6a9f-4b81-afc1-98eb164af747,1,0,262dea64-4ccd-4b97-ac7e-ec1dbdd9ac98,262dea64-4ccd-4b97-ac7e-ec1dbdd9ac98,1,0,8a0d4f7f-7a80-4e5d-8238-05fc169e0319,8a0d4f7f-7a80-4e5d-8238-05fc169e0319,1,0,8e9f9baf-8d12-46cc-915f-f6f290af5512,8e9f9baf-8d12-46cc-915f-f6f290af5512,1,0,a8e14d2e-911d-4096-9027-deb7a08838e0,a8e14d2e-911d-4096-9027-deb7a08838e0,1,0,c51d8ae2-66fe-4052-8ee4-980855b1f90c,c51d8ae2-66fe-4052-8ee4-980855b1f90c,1,0,27610803-846f-40bd-b817-f73708f1fdb7,27610803-846f-40bd-b817-f73708f1fdb7,1,0,4e2a3873-0317-44be-8dbb-e4cefc0361a8,4e2a3873-0317-44be-8dbb-e4cefc0361a8,1,0,5808331f-9ab4-4a23-a592-1f65087f3214,5808331f-9ab4-4a23-a592-1f65087f3214,1,0,9316738d-3d38-4068-818e-a001355b19fb,9316738d-3d38-4068-818e-a001355b19fb,1,0,d86d766f-021a-4c11-b9e8-403af08918cc,d86d766f-021a-4c11-b9e8-403af08918cc,1,0,2cedfef0-5d93-475a-b2dd-ee36e553e6e1,2cedfef0-5d93-475a-b2dd-ee36e553e6e1,1,0,29200d04-d7da-435a-89e6-858c11a1a98c,29200d04-d7da-435a-89e6-858c11a1a98c,1,0,8e5f6c70-04b3-46a1-94ef-82c9f6019f8f,8e5f6c70-04b3-46a1-94ef-82c9f6019f8f,1,0,6c119ef2-d24b-4c3d-ad07-611bed89cab1,6c119ef2-d24b-4c3d-ad07-611bed89cab1,1,0,13b1cb1f-88df-4ff8-b4cc-0473e4f96005,13b1cb1f-88df-4ff8-b4cc-0473e4f96005,1,0,0e861ad8-6fa3-4b0f-a9b0-6c91df1dfc6b,0e861ad8-6fa3-4b0f-a9b0-6c91df1dfc6b,1,0,27df6c22-85d7-4cb6-be19-82af76c84bf9,27df6c22-85d7-4cb6-be19-82af76c84bf9,1,0,d5b23aac-ea1c-497e-bed7-8685bb682e36,d5b23aac-ea1c-497e-bed7-8685bb682e36,1,0,6da15163-dd4c-4981-82e8-ad3bd2f516aa,6da15163-dd4c-4981-82e8-ad3bd2f516aa,1,0,e3000fff-aaba-4396-8026-768108ea8f2b,e3000fff-aaba-4396-8026-768108ea8f2b,1,0,c49054f1-3a96-4bf1-917e-f11407c67b5b,c49054f1-3a96-4bf1-917e-f11407c67b5b,1,0,01ede889-689f-45f3-b9a3-5e4c1188bea1,01ede889-689f-45f3-b9a3-5e4c1188bea1,1,0,a05f99a4-c764-4283-9fbb-6e641c3a15ae,a05f99a4-c764-4283-9fbb-6e641c3a15ae,1,0,cbe31324-feba-4137-9b82-b1b2afbcfb9d,cbe31324-feba-4137-9b82-b1b2afbcfb9d,1,0,03e80316-735f-4087-afe9-218d41dce028,03e80316-735f-4087-afe9-218d41dce028,1,0,eca391b3-ee95-47ab-a3d6-a80c745f99e7,eca391b3-ee95-47ab-a3d6-a80c745f99e7,1,0,b3035b26-9ead-4082-90b0-7dd61b4a6990,b3035b26-9ead-4082-90b0-7dd61b4a6990,1,0,cd68ac77-8df5-42d4-b729-da73cae0a78b,cd68ac77-8df5-42d4-b729-da73cae0a78b,1,0,1fc05949-c1ba-4363-8353-6902bc041021,1fc05949-c1ba-4363-8353-6902bc041021,1,0,d6e61d59-fe83-4a9e-aa15-e072a39fd8fd,d6e61d59-fe83-4a9e-aa15-e072a39fd8fd,1,0,614fc08c-78b6-4d49-9488-05fcf9b76d58,614fc08c-78b6-4d49-9488-05fcf9b76d58,1,0,d983cae8-edbb-4f26-9c0a-2f701cb11046,d983cae8-edbb-4f26-9c0a-2f701cb11046,1,0,40e2fb30-bb03-4178-a8eb-ddf48337ef23,40e2fb30-bb03-4178-a8eb-ddf48337ef23,1,0,1026fbcb-acd8-40dc-b638-6e02c6378c55,1026fbcb-acd8-40dc-b638-6e02c6378c55,1,0,dc9e2ba6-f4f1-493f-9054-cac633f239dd,dc9e2ba6-f4f1-493f-9054-cac633f239dd,1,0,7b95d0b1-c7b2-43b4-9119-320cb8912032,7b95d0b1-c7b2-43b4-9119-320cb8912032,1,0,004582b7-00aa-405e-8e24-ce76c945edae,004582b7-00aa-405e-8e24-ce76c945edae,1,0,97a9b005-a836-4308-8e63-0e00f6890baa,97a9b005-a836-4308-8e63-0e00f6890baa,1,0,98c34ada-0b78-41db-9183-6d7b9e466bde,98c34ada-0b78-41db-9183-6d7b9e466bde,1,0,fb688339-918e-40a1-8721-a26f3077973e,fb688339-918e-40a1-8721-a26f3077973e,1,0,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1f56de63-81eb-4de5-ad20-01cb6f84e5b0,1,0,dea1f169-5426-4623-9e5e-3c8c2360858f,dea1f169-5426-4623-9e5e-3c8c2360858f,1,0,039b1cc5-a831-41fb-933a-b9c0fb9c9f55,039b1cc5-a831-41fb-933a-b9c0fb9c9f55,1,0,b50f3157-3c3a-4553-a16a-7fcd660e2824,b50f3157-3c3a-4553-a16a-7fcd660e2824,1,0,895aea8f-4c4e-44e5-b720-0a2e683191b3,895aea8f-4c4e-44e5-b720-0a2e683191b3,1,0,a3b14a36-049d-4f94-bafc-cf7b874f9bf0,a3b14a36-049d-4f94-bafc-cf7b874f9bf0,1,0,6c954862-62d0-4901-8448-ea62a1174660,6c954862-62d0-4901-8448-ea62a1174660,1,0,19858faf-2bc5-4cfb-b258-cb101ab66e87,19858faf-2bc5-4cfb-b258-cb101ab66e87,1,0,f779f4a1-1fab-46d4-8043-ac25c247d361,f779f4a1-1fab-46d4-8043-ac25c247d361,1,0,308358bc-773a-43fa-adff-dcc5884a2bd4,308358bc-773a-43fa-adff-dcc5884a2bd4,1,0,ed541a1c-a842-40a9-b357-612db71ec32c,ed541a1c-a842-40a9-b357-612db71ec32c,1,0,b0e37495-7d9e-41d0-8225-652f9ac328cf,b0e37495-7d9e-41d0-8225-652f9ac328cf,1,0,3bd2e1c8-9ef3-449b-acf6-397b90669c49,3bd2e1c8-9ef3-449b-acf6-397b90669c49,1,0,cb334191-2ff3-439e-bdaf-4b8fe6561c3b,cb334191-2ff3-439e-bdaf-4b8fe6561c3b,1,0,f9865a2a-50e3-4f9c-a509-319be62dc468,f9865a2a-50e3-4f9c-a509-319be62dc468,1,0,5f3a30b0-1ba8-423c-9bc2-f9a87cafe818,5f3a30b0-1ba8-423c-9bc2-f9a87cafe818,1,0,766d8852-3bb4-4a6c-81c0-911722af4e8e,766d8852-3bb4-4a6c-81c0-911722af4e8e,1,0,54bfe81c-06b2-45a8-8bc1-bd22240cfe32,54bfe81c-06b2-45a8-8bc1-bd22240cfe32,1,0,46f71ecc-5cee-4b8d-9f6d-d38a86787a76,46f71ecc-5cee-4b8d-9f6d-d38a86787a76,1,0,f6dae699-06eb-41ef-878b-3fdfe1b1f213,f6dae699-06eb-41ef-878b-3fdfe1b1f213,1,0,fe6de86a-54c9-4ae2-9f17-cfce38b7b560,fe6de86a-54c9-4ae2-9f17-cfce38b7b560,1,0,911f8810-e96e-4f02-9377-47e49919f87e,911f8810-e96e-4f02-9377-47e49919f87e,1,0,cde46d6d-9f8a-45b6-98a7-9411030ccd72,cde46d6d-9f8a-45b6-98a7-9411030ccd72,1,0,ff1a4c30-03ff-4bdd-9df2-a2579aeb4157,ff1a4c30-03ff-4bdd-9df2-a2579aeb4157,1,0,224b9439-4b30-4b64-8edf-e7718ee90a7d,224b9439-4b30-4b64-8edf-e7718ee90a7d,1,0,74dc2374-daf1-4a8a-ba10-d3aced96af3b,74dc2374-daf1-4a8a-ba10-d3aced96af3b,1,0,15f1a3a8-5d42-486d-95f9-3d43ff1d5d56,15f1a3a8-5d42-486d-95f9-3d43ff1d5d56,1,0,e28e953f-93b3-4d4d-9ee4-c56df26037eb,e28e953f-93b3-4d4d-9ee4-c56df26037eb,1,0,578e0fd2-997c-437a-befc-33d128097a7e,578e0fd2-997c-437a-befc-33d128097a7e,1,0,14089231-31a8-4471-b85b-064836794ff3,14089231-31a8-4471-b85b-064836794ff3,1,0,014de276-fb2f-4deb-873f-475729be0f66,014de276-fb2f-4deb-873f-475729be0f66,1,0,40a60ff7-96ca-485b-a2d9-640a208a7de6,40a60ff7-96ca-485b-a2d9-640a208a7de6,1,0,03e6caa4-eaa2-43aa-bdd1-768f9cce7848,03e6caa4-eaa2-43aa-bdd1-768f9cce7848,1,0,ac028c56-b2a8-4a9b-a325-554c636f838e,ac028c56-b2a8-4a9b-a325-554c636f838e,1,0,0ed85f4c-c002-49b6-99b9-0c3c4b7f940e,0ed85f4c-c002-49b6-99b9-0c3c4b7f940e,1,0,f99e98ac-cd94-4989-8c02-ef8b323c6815,f99e98ac-cd94-4989-8c02-ef8b323c6815,1,0,e2562347-4549-4111-862e-86c20a6daade,e2562347-4549-4111-862e-86c20a6daade,1,0,b270fc64-15c6-41ed-ad09-44c833ca7c41,b270fc64-15c6-41ed-ad09-44c833ca7c41,1,0,4c3312fd-5613-4e9b-ae7c-572fa1887ded,4c3312fd-5613-4e9b-ae7c-572fa1887ded,1,0,6c8c9618-287a-41ab-890c-60250925ad52,6c8c9618-287a-41ab-890c-60250925ad52,1,0,55b9650e-098b-4d44-9fb5-d525b46f014b,55b9650e-098b-4d44-9fb5-d525b46f014b,1,0,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,5b7b32ec-3d0e-42e9-bd13-5d2b8cc1942d,1,0,bc55dc06-a769-40be-9c99-0794bdd2dbea,bc55dc06-a769-40be-9c99-0794bdd2dbea,1,0,feb5f490-e791-11e6-508c-a8667f21fde4,feb5f490-e791-11e6-508c-a8667f21fde4,1,0,7861e179-96d2-422f-a7c2-b38b59074956,7861e179-96d2-422f-a7c2-b38b59074956,1,0,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,0b2416bc-f322-45b3-8c3f-2c8a206c55a1,1,0,6962f838-e792-11e6-508c-a8667f21fde4,6962f838-e792-11e6-508c-a8667f21fde4,1,0,3797b4c6-e336-4cbe-8d0b-0902e1247b42,3797b4c6-e336-4cbe-8d0b-0902e1247b42,1,0,67ebc493-d29a-4614-890a-feb8b5bd884b,67ebc493-d29a-4614-890a-feb8b5bd884b,1,0,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,dc79e5e2-37d1-4f19-9500-15c1d9be10eb,1,0,dba6cb38-79c6-4060-87c5-a993548f36c4,dba6cb38-79c6-4060-87c5-a993548f36c4,1,0,6b44227a-e226-4bcb-8638-06b49f830669,6b44227a-e226-4bcb-8638-06b49f830669,1,0,f2406400-87e9-4df2-bcd3-8f1e3ad62088,f2406400-87e9-4df2-bcd3-8f1e3ad62088,1,0,4f2b6bf8-e792-11e6-508c-a8667f21fde4,4f2b6bf8-e792-11e6-508c-a8667f21fde4,1,0,ecaacedb-bf2d-4736-a9e1-fa89cda85ee6,ecaacedb-bf2d-4736-a9e1-fa89cda85ee6,1,0,a5623e87-3102-4521-b4ab-c41bf2403a1a,a5623e87-3102-4521-b4ab-c41bf2403a1a,1,0,599b1692-5f4e-42ef-ae1a-822ff527a415,599b1692-5f4e-42ef-ae1a-822ff527a415,1,0,ee9abe8a-b3a2-48a9-9157-ea537e83b7e7,ee9abe8a-b3a2-48a9-9157-ea537e83b7e7,1,0,4bb7372a-87a9-426e-b09f-fc0110455b10,4bb7372a-87a9-426e-b09f-fc0110455b10,1,0,ac853a0f-c185-4cdb-9f09-c921770937b5,ac853a0f-c185-4cdb-9f09-c921770937b5,1,0,920a7940-4d12-476d-a909-2231787839a9,920a7940-4d12-476d-a909-2231787839a9,1,0,168fce48-2413-45fc-ad21-9b465121d81b,168fce48-2413-45fc-ad21-9b465121d81b,1,0,d65c8992-aabc-4b67-9893-01862231ebe1,d65c8992-aabc-4b67-9893-01862231ebe1,1,0,23f70675-6a05-4b50-ad68-c55ddc93e857,23f70675-6a05-4b50-ad68-c55ddc93e857,1,0,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,b3aeeb3c-622d-4e0c-8c13-199f0e431a7d,1,0,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,ad14c4d1-bc11-44b6-a32c-c00fb89a9ea5,1,0,3370d43e-8e97-4411-8123-2bb2bcf60a75,3370d43e-8e97-4411-8123-2bb2bcf60a75,1,0,d9d377c9-406f-4bc9-8076-1f049348b816,d9d377c9-406f-4bc9-8076-1f049348b816,1,0,dcfcb108-3761-43d9-ad2a-29633bd1ae47,dcfcb108-3761-43d9-ad2a-29633bd1ae47,1,0,bac41d45-249f-40b4-a013-008e261369c8,bac41d45-249f-40b4-a013-008e261369c8,1,0,84e34b4a-02e8-4676-8b81-771ddf3c2931,84e34b4a-02e8-4676-8b81-771ddf3c2931,1,0,0aa6a024-66ae-4592-87d6-f7cb2a59f906,0aa6a024-66ae-4592-87d6-f7cb2a59f906,1,0,734b4dc5-dc91-4945-a2d7-cefe56a6e0a6,734b4dc5-dc91-4945-a2d7-cefe56a6e0a6,1,0,bb2dcb37-410d-4a6c-9ace-1f04177d6e88,bb2dcb37-410d-4a6c-9ace-1f04177d6e88,1,0,cb6ecc18-a14f-4c3c-a39d-2cd2d1ab4e03,cb6ecc18-a14f-4c3c-a39d-2cd2d1ab4e03,1,0,f71ac535-74a5-4001-a613-455a9e1bf734,f71ac535-74a5-4001-a613-455a9e1bf734,1,0,55a42b83-b6d2-409b-a8ff-7849b08e07ed,55a42b83-b6d2-409b-a8ff-7849b08e07ed,1,0,61889399-ecc2-442c-a790-a8b27a7a540c,61889399-ecc2-442c-a790-a8b27a7a540c,1,0,ecd3a928-3e59-439c-8f58-ba360f2a8b3c,ecd3a928-3e59-439c-8f58-ba360f2a8b3c,1,0,079ba95c-8293-47e2-b8bd-7acf73c2d880,079ba95c-8293-47e2-b8bd-7acf73c2d880,1,0,fbe1dcf7-c11d-4395-ab3a-c2f986c25419,fbe1dcf7-c11d-4395-ab3a-c2f986c25419,1,0,a5f264a8-a547-4653-abb1-eb1666d527dc,a5f264a8-a547-4653-abb1-eb1666d527dc,1,0,dabae379-6356-497a-aab5-cf102f16a72a,dabae379-6356-497a-aab5-cf102f16a72a,1,0,337370e0-1021-4887-9d38-6c3833c90a5b,337370e0-1021-4887-9d38-6c3833c90a5b,1,0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,0ff569eb-d5b8-4ab1-ac77-5e5afd6d44d0,1,0,d6f01f1c-801b-4776-ae11-48236103f76a,d6f01f1c-801b-4776-ae11-48236103f76a,1,0,b6fe68cf-657b-40e0-af2e-247607a86519,b6fe68cf-657b-40e0-af2e-247607a86519,1,0,9b0b8191-94b7-428f-be86-e9e4cd24a72f,9b0b8191-94b7-428f-be86-e9e4cd24a72f,1,0,a923dbcb-7146-4445-ad17-f4a32c16a837,a923dbcb-7146-4445-ad17-f4a32c16a837,1,0,41dec792-1d1a-4e06-a54b-a86193b98225,41dec792-1d1a-4e06-a54b-a86193b98225,1,0,52257beb-3e0c-4681-b430-9690398cd13a,52257beb-3e0c-4681-b430-9690398cd13a,1,0,135e637c-c28e-4547-8da2-d897dca54cb2,135e637c-c28e-4547-8da2-d897dca54cb2,1,0,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,245be006-6d0a-4c9e-97c5-f3c2ddd734f7,1,0,56d97df6-9c8b-4fc5-a7a6-52107d38dcd5,56d97df6-9c8b-4fc5-a7a6-52107d38dcd5,1,0,a0be938b-139e-41bd-b067-f5241ff68c90,a0be938b-139e-41bd-b067-f5241ff68c90,1,0,f0402893-724d-4ccd-87f6-d567839b3e70,f0402893-724d-4ccd-87f6-d567839b3e70,1,0,64c84fff-dba1-4f17-bc89-1c69a6f54bea,64c84fff-dba1-4f17-bc89-1c69a6f54bea,1,0,08077c47-4ffd-46f5-9ef5-528ac27bdc75,08077c47-4ffd-46f5-9ef5-528ac27bdc75,1,0,d5a2c4ea-21ce-4673-9aef-9a5eb80a4632,d5a2c4ea-21ce-4673-9aef-9a5eb80a4632,1,0,27089712-b7d7-4a2f-9851-1826d8965f5b,27089712-b7d7-4a2f-9851-1826d8965f5b,1,0,511727f3-b757-4e5b-b7d7-166917029787,511727f3-b757-4e5b-b7d7-166917029787,1,0,a92b3f49-e28a-4f14-8320-7a96d9d08987,a92b3f49-e28a-4f14-8320-7a96d9d08987,1,0,1c34696a-0444-4d3c-8331-17a1b5013368,1c34696a-0444-4d3c-8331-17a1b5013368,1,0,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,a0b74de9-06b5-416c-9dd0-2f9dc209fe91,1,0,5356543a-db9a-4265-b83f-31d45544c8e6,5356543a-db9a-4265-b83f-31d45544c8e6,1,0,857dd311-9c6d-4dba-82d8-283d7b05b09e,857dd311-9c6d-4dba-82d8-283d7b05b09e,1,0,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1055d15b-8cb5-4ff0-a526-7fd20a08a96c,1,0,8064eb3a-d56c-4517-9db0-b7300149c7c4,8064eb3a-d56c-4517-9db0-b7300149c7c4,1,0,fe926c88-d792-4db3-abcf-3c94dfdcc407,fe926c88-d792-4db3-abcf-3c94dfdcc407,1,0,b1c3a6c1-5245-4a65-8a45-13948be6f6a1,b1c3a6c1-5245-4a65-8a45-13948be6f6a1,1,0,bcbdba9e-0b29-4ea7-a7d5-1de819bf86ec,bcbdba9e-0b29-4ea7-a7d5-1de819bf86ec,1,0,e0c51555-1614-4aa7-a075-c5e1251579ba,e0c51555-1614-4aa7-a075-c5e1251579ba,1,0,c75a1c6d-fa33-4b57-b359-6253aff5f3e7,c75a1c6d-fa33-4b57-b359-6253aff5f3e7,1,0,af88ea84-5742-4c9f-9a02-6d0f25186f72,af88ea84-5742-4c9f-9a02-6d0f25186f72,1,0,51363236-c8eb-4eb7-9692-5c18edc9a5a8,51363236-c8eb-4eb7-9692-5c18edc9a5a8,1,0,e97edb4a-468d-499d-924d-aa4e5ee16548,e97edb4a-468d-499d-924d-aa4e5ee16548,1,0,24366a86-0dae-4a68-a180-d8ea7656a286,24366a86-0dae-4a68-a180-d8ea7656a286,1,0,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,1,0,3c03f78e-c904-47da-a0a1-db5d6b9f7254,3c03f78e-c904-47da-a0a1-db5d6b9f7254,1,0,3bf03ed7-6581-4a11-8fc8-748f46c8dad7,3bf03ed7-6581-4a11-8fc8-748f46c8dad7,1,0,0f28c616-162c-4dba-bd22-f7ea5d23ea5a,0f28c616-162c-4dba-bd22-f7ea5d23ea5a,1,0,39bf2771-1d8b-44bb-8d8b-54d046589ebe,39bf2771-1d8b-44bb-8d8b-54d046589ebe,1,0,872521e3-413c-45ac-a6ea-39fe1324bae8,872521e3-413c-45ac-a6ea-39fe1324bae8,1,0,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,1,0,8adebe50-a946-40c2-9258-b17efe787e0e,8adebe50-a946-40c2-9258-b17efe787e0e,1,0,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,8cad6cfd-91d0-4563-800a-d60c8a1b6a03,1,0,81ef02df-498d-4af0-8254-dc6730cbf140,81ef02df-498d-4af0-8254-dc6730cbf140,1,0,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,1,0,2902460a-ed86-41cf-8e8f-895adab9a72f,2902460a-ed86-41cf-8e8f-895adab9a72f,1,0,d12c7296-36ab-41e0-83ef-143484958597,d12c7296-36ab-41e0-83ef-143484958597,1,0,2b6c3bcd-7d2a-4e95-8066-99374002689b,2b6c3bcd-7d2a-4e95-8066-99374002689b,1,0,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,1,0,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1,0,73cc5b8b-4cba-4988-b2c6-d974dde9723d,73cc5b8b-4cba-4988-b2c6-d974dde9723d,1,0,1b9bbdb1-b8c0-4459-8b5c-656055482f00,1b9bbdb1-b8c0-4459-8b5c-656055482f00,1,0,d6b72e00-018a-4fdc-b6a4-06dcecf89809,d6b72e00-018a-4fdc-b6a4-06dcecf89809,1,0,9f816562-57f0-473f-8c85-14f7521ffd7f,9f816562-57f0-473f-8c85-14f7521ffd7f,1,0,14077038-2e41-4a05-a476-99f6f88a5c29,14077038-2e41-4a05-a476-99f6f88a5c29,1,0,917b0acc-88fe-4afc-b19b-6da69e060393,917b0acc-88fe-4afc-b19b-6da69e060393,1,0,a091b76e-8ba4-4534-bbb0-9990e69b8603,a091b76e-8ba4-4534-bbb0-9990e69b8603,1,0,867ee5d2-7566-4052-a311-b56e7e46b90d,867ee5d2-7566-4052-a311-b56e7e46b90d,1,0,8f51328b-73a8-46fb-b6db-7b7a84c05c2a,8f51328b-73a8-46fb-b6db-7b7a84c05c2a,1,0,0f0f5b42-2407-44e6-85d7-26ace96b2cd9,0f0f5b42-2407-44e6-85d7-26ace96b2cd9,1,0,ffec426d-2556-46d6-b313-aeca43581865,ffec426d-2556-46d6-b313-aeca43581865,1,0,f32e0941-2061-4e12-bdae-fcb65f91ac28,f32e0941-2061-4e12-bdae-fcb65f91ac28,1,0,6f0e0f44-db5a-4a13-9131-866b77b90f14,6f0e0f44-db5a-4a13-9131-866b77b90f14,1,0,9415e0aa-391f-4798-ad7d-3b854a756de8,9415e0aa-391f-4798-ad7d-3b854a756de8,1,0,f82d5bd6-4c74-4c23-978c-565aae3d752a,f82d5bd6-4c74-4c23-978c-565aae3d752a,1,0,7fba41a5-4faa-412b-b367-b30ced0314c0,7fba41a5-4faa-412b-b367-b30ced0314c0,1,0,37333d0b-3589-4b8b-bf6c-e605e0287b66,37333d0b-3589-4b8b-bf6c-e605e0287b66,1,0,1813c469-da20-46a6-8947-6815b66f64c1,1813c469-da20-46a6-8947-6815b66f64c1,1,0,64e702e9-8934-4356-a1b2-be0e8b390630,64e702e9-8934-4356-a1b2-be0e8b390630,1,0,74880ac4-bdd3-48e6-82a0-a2103da42723,74880ac4-bdd3-48e6-82a0-a2103da42723,1,0,ad083c26-7461-4e94-b524-0174242fbd91,ad083c26-7461-4e94-b524-0174242fbd91,1,0,5ce39370-f918-493f-bb24-53346b6fd836,5ce39370-f918-493f-bb24-53346b6fd836,1,0,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,1,0,0e3d2750-bb4c-42b9-9829-60f1480ced9c,0e3d2750-bb4c-42b9-9829-60f1480ced9c,1,0,ddc6761c-a32a-41e1-b110-fdc39ad440d3,ddc6761c-a32a-41e1-b110-fdc39ad440d3,1,0,0b322ee2-b018-4d00-8f05-62ee16e519ff,0b322ee2-b018-4d00-8f05-62ee16e519ff,1,0,0866e282-055a-49bb-9aa5-b1af7c74c344,0866e282-055a-49bb-9aa5-b1af7c74c344,1,0,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,1,0,a76b1fd1-ba00-40e6-8756-f17fee449818,a76b1fd1-ba00-40e6-8756-f17fee449818,1,0,5c913626-48d1-4e0a-a423-64078ce59c7b,5c913626-48d1-4e0a-a423-64078ce59c7b,1,0,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,1,0,7b0ec304-1904-413e-a9c6-ff62e87107dd,7b0ec304-1904-413e-a9c6-ff62e87107dd,1,0,d4dd8c96-914d-496f-b735-ef85ec473605,d4dd8c96-914d-496f-b735-ef85ec473605,1,0,62517db4-59e6-4945-bcd6-b3f1845572bf,62517db4-59e6-4945-bcd6-b3f1845572bf,1,0,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,1,0,f0f72149-0e7f-441a-b70d-8f47d4977927,f0f72149-0e7f-441a-b70d-8f47d4977927,1,0,776efc3e-ac27-4550-bafd-6e91aa987af2,776efc3e-ac27-4550-bafd-6e91aa987af2,1,0,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,1,0,cc438366-85ea-48be-8b74-d05cddb1fc51,cc438366-85ea-48be-8b74-d05cddb1fc51,1,0,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,1,0,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,1,0,3271b800-1825-422f-97bb-757baf403e90,3271b800-1825-422f-97bb-757baf403e90,1,0,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,1,0,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,1,0,a040c756-4687-4bfd-a690-b122d3c490e5,a040c756-4687-4bfd-a690-b122d3c490e5,1,0,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,1,0,961a9801-3956-4ea0-b0d3-908f09bf4929,961a9801-3956-4ea0-b0d3-908f09bf4929,1,0,6fac5c14-e126-4342-9078-edf1d0efcbf2,6fac5c14-e126-4342-9078-edf1d0efcbf2,1,0,0a3325a1-21c4-4997-882f-4ac2edc175f0,0a3325a1-21c4-4997-882f-4ac2edc175f0,1,0,71102d3f-f020-4d6f-9582-9a7eefb4e797,71102d3f-f020-4d6f-9582-9a7eefb4e797,1,0,53ef6849-a3f3-4171-9167-f349f2d6a736,53ef6849-a3f3-4171-9167-f349f2d6a736,1,0,3f588bd3-d461-42b7-8ab1-386af6399d56,3f588bd3-d461-42b7-8ab1-386af6399d56,1,0,c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1,c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1,1,0,8c576405-29c1-46b1-ab2e-40e52c21cab0,8c576405-29c1-46b1-ab2e-40e52c21cab0,1,0,b33a89da-8589-4902-83fa-6545e5fce23e,b33a89da-8589-4902-83fa-6545e5fce23e,1,0,f0620d5a-e1fe-419f-af37-e0f462f97e8d,f0620d5a-e1fe-419f-af37-e0f462f97e8d,1,0,3e2f2ae1-c809-43fc-8276-b0a16a92858c,3e2f2ae1-c809-43fc-8276-b0a16a92858c,1,0,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,1,0,1a7c7427-bead-4655-9dd6-df6e722663c5,1a7c7427-bead-4655-9dd6-df6e722663c5,1,0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,1,0,fd96c8ab-602a-4735-b168-52b501e80351,fd96c8ab-602a-4735-b168-52b501e80351,1,0,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,1,0,370f0c75-d2c5-4be5-a633-4bcc77998ece,370f0c75-d2c5-4be5-a633-4bcc77998ece,1,0,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,1,0,2139532c-f6cb-4393-936e-cc912e5adca9,2139532c-f6cb-4393-936e-cc912e5adca9,1,0,755c3eca-4956-4a44-9b38-c11dae00b87f,755c3eca-4956-4a44-9b38-c11dae00b87f,1,0,f57c558c-2c94-4b9d-8697-448d0548ab1a,f57c558c-2c94-4b9d-8697-448d0548ab1a,1,0,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,1,0,c32db021-eca1-4b67-aa85-3d6e28c51b53,c32db021-eca1-4b67-aa85-3d6e28c51b53,1,0,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,1,0,02466dcf-02a1-4853-814f-a913a9baba45,02466dcf-02a1-4853-814f-a913a9baba45,1,0,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,1,0,62b75eb2-42e1-4484-a77f-b676dd36f3d4,62b75eb2-42e1-4484-a77f-b676dd36f3d4,1,0,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,1,0,856510ee-74f5-44e9-a3c0-1c60cfb7a787,856510ee-74f5-44e9-a3c0-1c60cfb7a787,1,0,28b761c6-c286-4125-a4ed-da602e49950f,28b761c6-c286-4125-a4ed-da602e49950f,1,0,4ac66a22-c736-4e06-a8aa-ef4a71788c65,4ac66a22-c736-4e06-a8aa-ef4a71788c65,1,0,9cfe9281-8840-4077-824d-a2c9cbb0b730,9cfe9281-8840-4077-824d-a2c9cbb0b730,1,0,76389fa9-b9e0-492e-9c93-24b5f3bf094c,76389fa9-b9e0-492e-9c93-24b5f3bf094c,1,0,23e3de37-9315-45e6-bbfd-60aae28c25ae,23e3de37-9315-45e6-bbfd-60aae28c25ae,1,0,a9957f43-8b6f-4d98-a2d8-77b78047494c,a9957f43-8b6f-4d98-a2d8-77b78047494c,1,0,e470e15d-1b06-43cb-a9f9-ba489e2f596f,e470e15d-1b06-43cb-a9f9-ba489e2f596f,1,0,0408002c-9255-43a2-8022-82f02ee0e8f4,0408002c-9255-43a2-8022-82f02ee0e8f4,1,0,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,1,0,1851afd4-5324-45c1-b754-54e65943f945,1851afd4-5324-45c1-b754-54e65943f945,1,0,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,1,0,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,1,0,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,1,0,c322dc4a-30f3-4d23-9824-4a01c496408d,c322dc4a-30f3-4d23-9824-4a01c496408d,1,0,dcff004c-1b61-4a19-b977-ea21bf688614,dcff004c-1b61-4a19-b977-ea21bf688614,0,0,0,1,0,0,0,1,0,1,0,1,1,1,1} \ No newline at end of file diff --git a/SSL/src/Configuration/SessionModule.bsl b/SSL/src/Configuration/SessionModule.bsl index 65e86bac9..5333d75e5 100644 --- a/SSL/src/Configuration/SessionModule.bsl +++ b/SSL/src/Configuration/SessionModule.bsl @@ -16,8 +16,6 @@ СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса); // Конец СтандартныеПодсистемы - - КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Constants/ИспользоватьОценкуПроизводительностиСинхронизацииДанных/ManagerModule.bsl b/SSL/src/Constants/ИспользоватьОценкуПроизводительностиСинхронизацииДанных/ManagerModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/SSL/src/Constants/ИспользоватьОценкуПроизводительностиСинхронизацииДанных/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьОценкуПроизводительностиСинхронизацииДанных/ValueManagerModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/SSL/src/Constants/ИспользоватьОценкуПроизводительностиСинхронизацииДанных/ИспользоватьОценкуПроизводительностиСинхронизацииДанных.mdo b/SSL/src/Constants/ИспользоватьОценкуПроизводительностиСинхронизацииДанных/ИспользоватьОценкуПроизводительностиСинхронизацииДанных.mdo new file mode 100644 index 000000000..17d92b2ad --- /dev/null +++ b/SSL/src/Constants/ИспользоватьОценкуПроизводительностиСинхронизацииДанных/ИспользоватьОценкуПроизводительностиСинхронизацииДанных.mdo @@ -0,0 +1,20 @@ + + + + + + + + ИспользоватьОценкуПроизводительностиСинхронизацииДанных + + ru + Использовать оценку производительности синхронизации данных + + + Boolean + + true + + + Managed + diff --git a/SSL/src/Constants/МаксимальныйРазмерФайла/МаксимальныйРазмерФайла.mdo b/SSL/src/Constants/МаксимальныйРазмерФайла/МаксимальныйРазмерФайла.mdo index 92c2b35d2..fd214fc1d 100644 --- a/SSL/src/Constants/МаксимальныйРазмерФайла/МаксимальныйРазмерФайла.mdo +++ b/SSL/src/Constants/МаксимальныйРазмерФайла/МаксимальныйРазмерФайла.mdo @@ -10,7 +10,7 @@ ru Максимальный размер файла - Максимальный размер файла для импорта с диска + Максимальный размер файла для импорта с компьютера Number diff --git a/SSL/src/Constants/МаксимальныйРазмерФайлаОбластиДанных/МаксимальныйРазмерФайлаОбластиДанных.mdo b/SSL/src/Constants/МаксимальныйРазмерФайлаОбластиДанных/МаксимальныйРазмерФайлаОбластиДанных.mdo index a948e435d..b6330fdd9 100644 --- a/SSL/src/Constants/МаксимальныйРазмерФайлаОбластиДанных/МаксимальныйРазмерФайлаОбластиДанных.mdo +++ b/SSL/src/Constants/МаксимальныйРазмерФайлаОбластиДанных/МаксимальныйРазмерФайлаОбластиДанных.mdo @@ -10,7 +10,7 @@ ru Максимальный размер файла области данных - Максимальный размер файла для импорта с диска + Максимальный размер файла для импорта с компьютера Number diff --git a/SSL/src/Constants/УчетнаяЗаписьДляВосстановленияПароля/УчетнаяЗаписьДляВосстановленияПароля.mdo b/SSL/src/Constants/УчетнаяЗаписьДляВосстановленияПароля/УчетнаяЗаписьДляВосстановленияПароля.mdo index ac06d0a24..8fd49d199 100644 --- a/SSL/src/Constants/УчетнаяЗаписьДляВосстановленияПароля/УчетнаяЗаписьДляВосстановленияПароля.mdo +++ b/SSL/src/Constants/УчетнаяЗаписьДляВосстановленияПароля/УчетнаяЗаписьДляВосстановленияПароля.mdo @@ -8,7 +8,7 @@ УчетнаяЗаписьДляВосстановленияПароля ru - Учетная запись для восстановления пароля + Почта для восстановления пароля ValueStorage diff --git a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl index 5038e89c7..9252d4306 100644 --- a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl @@ -269,7 +269,7 @@ #Если Не ВебКлиент И Не МобильныйКлиент Тогда - // Извлекает текст из файлов на диске на клиенте. +// Извлекает текст из файлов для полнотекстового поиска. &НаКлиенте Процедура ИзвлечениеТекстовКлиент(РазмерПорции = Неопределено) diff --git a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl index b29c96ef0..18d922442 100644 --- a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl +++ b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl @@ -458,7 +458,7 @@ НачальныйСтатусЗапретаРаботыПользователей = НСтр("ru = 'Работа пользователей в программе будет запрещена в указанное время'"); СтатусЗапретаРаботыПользователей = "Запланировано"; ИначеЕсли ТекущаяДатаСеанса() > Объект.ОкончаниеДействияБлокировки И Объект.ОкончаниеДействияБлокировки <> '00010101' Тогда - НачальныйСтатусЗапретаРаботыПользователей = НСтр("ru = 'Работа пользователей в программе разрешена (истек срок запрета)'");; + НачальныйСтатусЗапретаРаботыПользователей = НСтр("ru = 'Работа пользователей в программе разрешена (истек срок запрета)'"); СтатусЗапретаРаботыПользователей = "Истекло"; Иначе НачальныйСтатусЗапретаРаботыПользователей = НСтр("ru = 'Работа пользователей в программе запрещена'"); diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl index dcf3756fb..c099e4cf3 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl @@ -100,7 +100,7 @@ Элементы.НомерТелефонаПоМаске.Видимость = ВводитьНомерПоМаске; Элементы.НомерТелефонаПоМаске.Маска = СтруктураВидКонтактнойИнформации.МаскаНомераТелефона; Элементы.ГруппаПоляТелефона.Видимость = НЕ ВводитьНомерПоМаске; - Элементы.Добавочный.Видимость = СтруктураВидКонтактнойИнформации.ТелефонCДобавочнымНомером; + Элементы.Добавочный.Видимость = СтруктураВидКонтактнойИнформации.ТелефонСДобавочнымНомером; Элементы.ОчиститьТелефон.Доступность = Не Параметры.ТолькоПросмотр; Если НЕ ВводитьНомерПоМаске Тогда diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl index 63bb09d22..ddcbb524b 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl @@ -360,7 +360,7 @@ Строка.Вид = РезультатЗакрытия.Вид; Строка.Тип = РезультатЗакрытия.Тип; Строка.ХранитьИсториюИзменений = Истина; - Элементы.История.ТекущаяСтрока = Строка.ПолучитьИдентификатор();; + Элементы.История.ТекущаяСтрока = Строка.ПолучитьИдентификатор(); Элементы.История.ТекущийЭлемент = Элементы.История.ПодчиненныеЭлементы.ИсторияПредставление; История.Сортировать("ДействуетС Убыв"); Иначе diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl index 10be50f0d..dd49df6ba 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl @@ -18,7 +18,7 @@ Если Параметры.Свойство("АдресКомпоновщикаНастроек", АдресКомпоновщикаНастроек) Тогда // Хранилище приоритетнее Данные = ПолучитьИзВременногоХранилища(АдресКомпоновщикаНастроек); - АдресСхемыКомпоновки = ПоместитьВоВременноеХранилище(Данные.СхемаКомпоновки, УникальныйИдентификатор);; + АдресСхемыКомпоновки = ПоместитьВоВременноеХранилище(Данные.СхемаКомпоновки, УникальныйИдентификатор); КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемыКомпоновки)); КомпоновщикНастроек.ЗагрузитьНастройки(Данные.Настройки); diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl index 53d13efa6..05cc88655 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl @@ -28,6 +28,7 @@ КомпонентыОбмена.УзелКорреспондента = УзелОбмена; КомпонентыОбмена.ТаблицаПравилаРегистрацииОбъектов = ОбменДаннымиXDTOСервер.ПравилаРегистрацииОбъектов(УзелОбмена); КомпонентыОбмена.СвойстваУзлаПланаОбмена = ОбменДаннымиXDTOСервер.СвойстваУзлаПланаОбмена(УзелОбмена); + КомпонентыОбмена.ОбменЧерезОбработкуВыгрузкаЗагрузкаED = Истина; Иначе КомпонентыОбмена.ЭтоОбменЧерезПланОбмена = Ложь; КонецЕсли; diff --git a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Form.form b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Form.form index ff77661b2..a0daa2ff8 100644 --- a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Form.form @@ -2264,6 +2264,106 @@ false + + ОбменЗавершенСОшибкойТребуетсяПерезагрузка + 236 + + КартинкаТребуетсяПерезагрузка + 238 + + <key>ru</key> + <value>Картинка требуется перезагрузка</value> + + true + true + + true + + + КартинкаТребуетсяПерезагрузкаРасширеннаяПодсказка + 240 + Label + true + true + + Left + + + + КартинкаТребуетсяПерезагрузкаКонтекстноеМеню + 239 + true + + true + true + + + CommonPicture.Предупреждение32 + + + + + ТекстТребуетсяПерезагрузка + 250 + + <key>ru</key> + <value>Изменены расширения конфигурации. +Чтобы продолжить работу с учетом сделанных изменений, необходимо перезапустить программу.</value> + + true + true + + true + + + ТекстТребуетсяПерезагрузкаРасширеннаяПодсказка + 252 + Label + true + true + + Left + + + + ТекстТребуетсяПерезагрузкаКонтекстноеМеню + 251 + true + + Label + true + true + + Left + Center + + + true + true + + true + + + <key>ru</key> + <value>Обмен завершен с ошибкой требуется перезагрузка</value> + + + ОбменЗавершенСОшибкойТребуетсяПерезагрузкаРасширеннаяПодсказка + 237 + Label + true + true + + Left + + + Page + + HorizontalIfPossible + auto + false + + true true @@ -2590,6 +2690,113 @@ false + + ДействияПерезагрузить + 253 + + КоманднаяПанельПерезагрузить + 255 + + ПерезапуститьПрограмму + 261 + true + true + + true + + + ПерезапуститьПрограммуРасширеннаяПодсказка + 262 + Label + true + true + + Left + + + Form.Command.ПерезапуститьПрограмму + Normal + Auto + true + true + UserCmds + Auto + + + ФормаЗакрыть3 + 259 + true + true + + true + + + ФормаЗакрыть3РасширеннаяПодсказка + 260 + Label + true + true + + Left + + + Form.StandardCommand.Close + Normal + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель установить закрыть</value> + + + КоманднаяПанельПерезагрузитьРасширеннаяПодсказка + 256 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Действия перезагрузить</value> + + + ДействияПерезагрузитьРасширеннаяПодсказка + 254 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + true true @@ -3670,6 +3877,28 @@ Auto Auto + + ПерезапуститьПрограмму + + <key>ru</key> + <value>Перезапустить программу</value> + + 7 + + ru + Перезапустить программу + + + true + + + + ПерезапуститьПрограмму + + + Auto + Auto + УзелИнформационнойБазы diff --git a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl index 02ae4e4cd..fdda32d6b 100644 --- a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl @@ -205,6 +205,13 @@ КонецПроцедуры +&НаКлиенте +Процедура ПерезапуститьПрограмму(Команда) + + ЗавершитьРаботуСистемы(Ложь, Истина); + +КонецПроцедуры + &НаКлиенте Процедура ЗабылиПароль(Команда) @@ -730,6 +737,13 @@ КонецФункции +&НаСервереБезКонтекста +Функция ТребуетсяПерезагрузка() + + Возврат Справочники.ВерсииРасширений.РасширенияИзмененыДинамически(); + +КонецФункции + &НаСервереБезКонтекста Процедура ПроверитьВозможностьЗапускаОбмена(УзелОбмена, БлокировкаУстановлена) @@ -1099,6 +1113,11 @@ Элементы.ТекстТребуетсяОбновлениеОграниченныеПрава.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Элементы.ТекстТребуетсяОбновлениеОграниченныеПрава.Заголовок, НаименованиеКорреспондента); + ИначеЕсли ТребуетсяПерезагрузка() Тогда + + Элементы.СтатусЗавершенияОбмена.ТекущаяСтраница = Элементы.ОбменЗавершенСОшибкойТребуетсяПерезагрузка; + Элементы.ПанельДействий.ТекущаяСтраница = Элементы.ДействияПерезагрузить; + ИначеЕсли ОшибкаНазначенияИдентификатораДляУзла Тогда Элементы.СтатусЗавершенияОбмена.ТекущаяСтраница = Элементы.ОшибкаНазначениеИдентификатораДляУзла; @@ -1540,10 +1559,10 @@ СообщениеОбОшибке); Исключение Информация = ИнформацияОбОшибке(); - СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация); + СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация)); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); КонецПопытки; Возврат СостояниеОперации; diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Form.form b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Form.form index 39ae78fd9..ec17a3c0c 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Form.form +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Form.form @@ -1,5 +1,5 @@ - + <key>ru</key> <value>Дополнительные параметры</value> @@ -33,9 +33,6 @@ Label true - - Style.ПоясняющийТекст - Left @@ -80,6 +77,37 @@ Auto + + ГруппаЧислоОбъектовВПорции + 98 + true + true + + true + + + <key>ru</key> + <value>Число объектов в порции</value> + + + ГруппаЧислоОбъектовВПорцииРасширеннаяПодсказка + 99 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + + ГруппаПрерываниеПриОшибке 39 @@ -105,9 +133,6 @@ Label true - - Style.ПоясняющийТекст - Left @@ -177,9 +202,6 @@ Label true - - Style.ПоясняющийТекст - Left @@ -252,9 +274,6 @@ Label true - - Style.ПоясняющийТекст - Left @@ -328,9 +347,6 @@ Label true - - Style.ПоясняющийТекст - Left @@ -400,9 +416,6 @@ Label true - - Style.ПоясняющийТекст - Left @@ -633,23 +646,6 @@ true - - ЧислоОбъектовВПорции - 4 - - Number - - 5 - true - - - - true - - - true - - ПроцентОбъектовВПорции 5 diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl index 3e94c5082..021c8a42f 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl @@ -11,14 +11,11 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Параметры.Свойство("ИзменятьВТранзакции", ИзменятьВТранзакции); - Параметры.Свойство("ОбрабатыватьРекурсивно", ОбрабатыватьРекурсивно); - Параметры.Свойство("НастройкаПорции", НастройкаПорции); - Параметры.Свойство("ПроцентОбъектовВПорции", ПроцентОбъектовВПорции); - Параметры.Свойство("ЧислоОбъектовВПорции", ЧислоОбъектовВПорции); - Параметры.Свойство("РежимРазработчика", РежимРазработчика); - Параметры.Свойство("ОтключитьСвязиПараметровВыбора", ОтключитьСвязиПараметровВыбора); - Параметры.Свойство("ПрерыватьПриОшибке", ПрерыватьПриОшибке); + Параметры.Свойство("ИзменятьВТранзакции", ИзменятьВТранзакции); + Параметры.Свойство("ОбрабатыватьРекурсивно", ОбрабатыватьРекурсивно); + Параметры.Свойство("РежимРазработчика", РежимРазработчика); + Параметры.Свойство("ОтключитьСвязиПараметровВыбора", ОтключитьСвязиПараметровВыбора); + Параметры.Свойство("ПрерыватьПриОшибке", ПрерыватьПриОшибке); ЕстьПравоАдминистрированияДанных = ПравоДоступа("АдминистрированиеДанных", Метаданные); КлючСохраненияПоложенияОкна = ?(ЕстьПравоАдминистрированияДанных, "ЕстьПравоАдминистрированияДанных", "НетПраваАдминистрированияДанных"); @@ -62,14 +59,13 @@ Процедура ОК(Команда) РезультатВыбора = Новый Структура; - РезультатВыбора.Вставить("ИзменятьВТранзакции", ИзменятьВТранзакции); - РезультатВыбора.Вставить("ОбрабатыватьРекурсивно", ОбрабатыватьРекурсивно); - РезультатВыбора.Вставить("НастройкаПорции", НастройкаПорции); - РезультатВыбора.Вставить("ПроцентОбъектовВПорции", ПроцентОбъектовВПорции); - РезультатВыбора.Вставить("ЧислоОбъектовВПорции", ЧислоОбъектовВПорции); - РезультатВыбора.Вставить("ПрерыватьПриОшибке", ИзменятьВТранзакции Или ПрерыватьПриОшибке); - РезультатВыбора.Вставить("ПоказыватьСлужебныеРеквизиты", ПоказыватьСлужебныеРеквизиты); - РезультатВыбора.Вставить("РежимРазработчика", РежимРазработчика); + РезультатВыбора.Вставить("ИзменятьВТранзакции", ИзменятьВТранзакции); + РезультатВыбора.Вставить("ОбрабатыватьРекурсивно", ОбрабатыватьРекурсивно); + РезультатВыбора.Вставить("НастройкаПорции", НастройкаПорции); + РезультатВыбора.Вставить("ПроцентОбъектовВПорции", ПроцентОбъектовВПорции); + РезультатВыбора.Вставить("ПрерыватьПриОшибке", ИзменятьВТранзакции Или ПрерыватьПриОшибке); + РезультатВыбора.Вставить("ПоказыватьСлужебныеРеквизиты", ПоказыватьСлужебныеРеквизиты); + РезультатВыбора.Вставить("РежимРазработчика", РежимРазработчика); РезультатВыбора.Вставить("ОтключитьСвязиПараметровВыбора", ОтключитьСвязиПараметровВыбора); ОповеститьОВыборе(РезультатВыбора); @@ -83,11 +79,7 @@ &НаКлиенте Процедура УстановитьЭлементыФормы() - Если ИзменятьВТранзакции Тогда - Элементы.ГруппаПрерываниеПриОшибке.Доступность = Ложь; - Иначе - Элементы.ГруппаПрерываниеПриОшибке.Доступность = Истина; - КонецЕсли; + Элементы.ГруппаПрерываниеПриОшибке.Доступность = НЕ ИзменятьВТранзакции; КонецПроцедуры diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Form.form b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Form.form index b6f8f1f57..5650f1d96 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Form.form @@ -137,25 +137,112 @@ Auto - - ТипОперации - 268 + + ГруппаТипОперации + 355 + + ТипОперации + 268 + true + true + + true + + + Объект.ТипОперации + + None + + OnChange + ВидОперацииПриИзменении + + + ТипОперацииРасширеннаяПодсказка + 270 + Label + true + true + + Left + + + + ТипОперацииКонтекстноеМеню + 269 + true + + RadioButtonField + Enter + true + Left + true + + Tumbler + + + ru + Ввести новые значения + + + ВвестиЗначения + + + + + ru + Выполнить произвольный алгоритм + + + ВыполнитьАлгоритм + + + Vertical + + + + true + true + + true + + РеквизитыСтрокаПоиска + 357 + + РеквизитыСтрокаПоискаРасширеннаяПодсказка + 359 + Label + true + true + + Left + + + + РеквизитыСтрокаПоискаКонтекстноеМеню + 358 + true + + РеквизитыОбъекта + Right + + 30 + true + false + + true true true - - Объект.ТипОперации - - None - - OnChange - ВидОперацииПриИзменении - + + <key>ru</key> + <value>Группа тип операции</value> + + true - ТипОперацииРасширеннаяПодсказка - 270 + ГруппаТипОперацииРасширеннаяПодсказка + 356 Label true true @@ -163,37 +250,14 @@ Left - - ТипОперацииКонтекстноеМеню - 269 - true - - RadioButtonField - Enter - true - Left - true - - Tumbler - - - ru - Ввести новые значения - - - ВвестиЗначения - - - - - ru - Выполнить произвольный алгоритм - - - ВыполнитьАлгоритм - - - Vertical + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto @@ -636,6 +700,10 @@ Pages + + OnCurrentPageChange + СоставОбъектаПриСменеСтраницы + TabsOnTop Auto @@ -832,6 +900,37 @@ Left + + true + true + + true + + РеквизитыАлгоритмСтрокаПоиска + 352 + + РеквизитыАлгоритмСтрокаПоискаРасширеннаяПодсказка + 354 + Label + true + true + + Left + + + + РеквизитыАлгоритмСтрокаПоискаКонтекстноеМеню + 353 + true + + РеквизитыОбъектаАлгоритм + Right + + 20 + true + false + + true true @@ -841,6 +940,7 @@ ru Реквизиты: + true true СтраницаСНадписьюРеквизитыРасширеннаяПодсказка @@ -854,7 +954,7 @@ Page - Vertical + HorizontalIfPossible Center auto false @@ -1235,13 +1335,18 @@ 344 true - RadioButtonField + InputField Enter true Left true - - 2 + + 20 + true + true + true + true + true ru @@ -1260,7 +1365,7 @@ НеЗаписывать - Vertical + Normal @@ -1295,13 +1400,18 @@ 347 true - RadioButtonField + InputField Enter true Left true - - 2 + + 12 + true + true + true + true + true ru @@ -1320,7 +1430,7 @@ 1 - Vertical + Normal true @@ -2496,6 +2606,10 @@ ChoiceProcessing ОбработкаВыбора + + OnOpen + ПриОткрытии + OnCreateAtServer ПриСозданииНаСервере @@ -3252,6 +3366,37 @@ + + ПутьКФайлуВнешнейОбработкиНаКлиенте + 3 + + String + + + + true + + + true + + + + ЧислоОбъектовВПорции + 5 + + Number + + 5 + true + + + + true + + + true + + Назад diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl index eb62782d7..4bf8495a3 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl @@ -46,6 +46,27 @@ РежимОткрытияОкна = РежимОткрытияОкнаФормы.Независимый; КонецЕсли; + // Проверяем наличие поля ИспользуемоеИмяФайла у объекта обработки. + ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); + СтруктураОбъекта = Новый Структура("ИспользуемоеИмяФайла", Неопределено); + ЗаполнитьЗначенияСвойств(СтруктураОбъекта, ОбработкаОбъект); + + // Если поле ИспользуемоеИмяФайла есть - это внешняя обработка. + Если ЗначениеЗаполнено(СтруктураОбъекта.ИспользуемоеИмяФайла) + И Не СтрНачинаетсяС(СтруктураОбъекта.ИспользуемоеИмяФайла, "e1cib\") Тогда + ПутьКФайлуВнешнейОбработкиНаКлиенте = СтруктураОбъекта.ИспользуемоеИмяФайла; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) +#Если ВебКлиент Тогда + Если ЗначениеЗаполнено(ПутьКФайлуВнешнейОбработкиНаКлиенте) Тогда + ТекстОшибки = НСтр("ru = 'Для этого действия требуется запустить клиентское приложение'"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; +#КонецЕсли КонецПроцедуры &НаКлиенте @@ -137,14 +158,21 @@ Элементы.ФормаИзменить.Заголовок = НСтр("ru = 'Выполнить'"); Элементы.РанееИзмененныеРеквизиты.Видимость = Ложь; Элементы.Алгоритмы.Видимость = Истина; + Элементы.РеквизитыСтрокаПоиска.Видимость = Ложь; Иначе Элементы.СтраницыВидОперации.ТекущаяСтраница = Элементы.ИзменяемыеРеквизиты; Элементы.ФормаИзменить.Заголовок = НСтр("ru = 'Изменить реквизиты'"); Элементы.РанееИзмененныеРеквизиты.Видимость = Истина; Элементы.Алгоритмы.Видимость = Ложь; + Элементы.РеквизитыСтрокаПоиска.Видимость = Истина; КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура СоставОбъектаПриСменеСтраницы(Элемент, ТекущаяСтраница) + Элементы.РеквизитыСтрокаПоиска.Видимость = (ТекущаяСтраница = Элементы.Реквизиты); +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовТаблицыФормыКомпоновщикНастроекНастройкиОтбор @@ -325,16 +353,15 @@ ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("ИзменятьВТранзакции", Объект.ИзменятьВТранзакции); - ПараметрыФормы.Вставить("ОбрабатыватьРекурсивно", ОбрабатыватьРекурсивно); - ПараметрыФормы.Вставить("ПрерыватьПриОшибке", Объект.ПрерыватьПриОшибке); - ПараметрыФормы.Вставить("УчитыватьИерархию", УчитыватьИерархию); - ПараметрыФормы.Вставить("ПоказыватьСлужебныеРеквизиты", Объект.ПоказыватьСлужебныеРеквизиты); - ПараметрыФормы.Вставить("КонтекстныйВызов", КонтекстныйВызов); - ПараметрыФормы.Вставить("РежимРазработчика", Объект.РежимРазработчика); + ПараметрыФормы.Вставить("ИзменятьВТранзакции", Объект.ИзменятьВТранзакции); + ПараметрыФормы.Вставить("ОбрабатыватьРекурсивно", ОбрабатыватьРекурсивно); + ПараметрыФормы.Вставить("ПрерыватьПриОшибке", Объект.ПрерыватьПриОшибке); + ПараметрыФормы.Вставить("УчитыватьИерархию", УчитыватьИерархию); + ПараметрыФормы.Вставить("ПоказыватьСлужебныеРеквизиты", Объект.ПоказыватьСлужебныеРеквизиты); + ПараметрыФормы.Вставить("КонтекстныйВызов", КонтекстныйВызов); + ПараметрыФормы.Вставить("РежимРазработчика", Объект.РежимРазработчика); ПараметрыФормы.Вставить("ОтключитьСвязиПараметровВыбора", ОтключитьСвязиПараметровВыбора); - - + ОткрытьФорму(ПолноеИмяФормы("ДополнительныеПараметры"), ПараметрыФормы, ЭтотОбъект); КонецПроцедуры @@ -798,9 +825,9 @@ КонецЕсли; СтруктураНастроек = СтруктураНастроек(); - СтруктураНастроек.ИзменятьВТранзакции = ИзменятьВТранзакции; - СтруктураНастроек.ПрерыватьПриОшибке = ПрерыватьПриОшибке; - СтруктураНастроек.ОбрабатыватьРекурсивно = ОбрабатыватьРекурсивно; + СтруктураНастроек.ИзменятьВТранзакции = ИзменятьВТранзакции; + СтруктураНастроек.ПрерыватьПриОшибке = ПрерыватьПриОшибке; + СтруктураНастроек.ОбрабатыватьРекурсивно = ОбрабатыватьРекурсивно; ХранилищеОбщихНастроекСохранить("Обработка.ГрупповоеИзменениеОбъектов", "", СтруктураНастроек); КонецПроцедуры @@ -821,9 +848,10 @@ Функция СтруктураНастроек() СтруктураНастроек = Новый Структура; - СтруктураНастроек.Вставить("ИзменятьВТранзакции", Истина); - СтруктураНастроек.Вставить("ПрерыватьПриОшибке", Истина); - СтруктураНастроек.Вставить("ОбрабатыватьРекурсивно", Ложь); + СтруктураНастроек.Вставить("ИзменятьВТранзакции", Ложь); + СтруктураНастроек.Вставить("ПрерыватьПриОшибке", Ложь); + СтруктураНастроек.Вставить("ОбрабатыватьРекурсивно", Ложь); + Возврат СтруктураНастроек; КонецФункции @@ -856,7 +884,7 @@ ДоступноВыполнениеКода = ДоступноВыполнениеКода() И Не КонтекстныйВызов; Элементы.ПроизвольныйАлгоритм.Видимость = ДоступноВыполнениеКода; - Элементы.ТипОперации.Видимость = ДоступноВыполнениеКода; + Элементы.ГруппаТипОперации.Видимость = ДоступноВыполнениеКода; ДоступноВыполнениеКодаВНебезопасномРежиме = ДоступноВыполнениеКодаВНебезопасномРежиме(); Элементы.РежимВыполнения.Видимость = ДоступноВыполнениеКодаВНебезопасномРежиме; @@ -989,50 +1017,55 @@ ТекущееСостояниеИзменения = Новый Структура; КоличествоОбъектовДляОбработки = КоличествоВыбранныхОбъектов(Истина, Истина); - Если Объект.ИзменятьВТранзакции Тогда - ПоказатьОповещениеПользователя(НСтр("ru = 'Изменение выделенных элементов'"), ,НСтр("ru = 'Пожалуйста подождите, обработка может занять некоторое время...'")); - ПоказыватьПроцентОбработанных = Ложь; - РазмерПорции = КоличествоОбъектовДляОбработки; - Иначе - Если КоличествоОбъектовДляОбработки >= НетранзакционнаяПорцияГраницаПерехода() Тогда - // Число объектов - постоянная величина. - РазмерПорции = НетранзакционнаяПорцияПолученияДанныхОбъектов(); - Иначе - // Число объектов - переменная величина, процент от общего числа. - РазмерПорции = Окр(КоличествоОбъектовДляОбработки * НетранзакционнаяПорцияПолученияДанныхПроцент() / 100); - Если РазмерПорции = 0 Тогда - РазмерПорции = 1; - КонецЕсли; - КонецЕсли; - - Состояние(НСтр("ru = 'Обрабатываются элементы...'"), 0, НСтр("ru = 'Изменение выделенных элементов'")); - - ПоказыватьПроцентОбработанных = Истина; - КонецЕсли; + ПоказатьОповещениеПользователя(НСтр("ru = 'Изменение выделенных элементов'"), ,НСтр("ru = 'Пожалуйста подождите, обработка может занять некоторое время...'")); + ПоказыватьПроцентОбработанных = Ложь; ТекущееСостояниеИзменения.Вставить("ЕстьЭлементыДляОбработки", Истина); + // Позиция последнего обработанного элемента. 1 - первый элемент. ТекущееСостояниеИзменения.Вставить("ТекущаяПозиция", 0); - ТекущееСостояниеИзменения.Вставить("КоличествоОшибок", 0); // Инициализируем счетчик ошибок. - ТекущееСостояниеИзменения.Вставить("КоличествоИзмененных", 0); // Инициализируем счетчик измененных. + + // Деление на порции для многопоточного выполнения происходит в модуле объекта. + ТекущееСостояниеИзменения.Вставить("РазмерПорции", КоличествоОбъектовДляОбработки); + + ТекущееСостояниеИзменения.Вставить("КоличествоОшибок", 0); // Инициализируем счетчик ошибок. + ТекущееСостояниеИзменения.Вставить("КоличествоИзмененных", 0); // Инициализируем счетчик измененных. + ТекущееСостояниеИзменения.Вставить("КоличествоОбъектовДляОбработки", КоличествоОбъектовДляОбработки); ТекущееСостояниеИзменения.Вставить("ОстанавливатьИзменениеПриОшибке", Объект.ПрерыватьПриОшибке); - ТекущееСостояниеИзменения.Вставить("КоличествоОбъектовДляОбработки", КоличествоОбъектовДляОбработки); - ТекущееСостояниеИзменения.Вставить("РазмерПорции", РазмерПорции); - ТекущееСостояниеИзменения.Вставить("ПоказыватьПроцентОбработанных", ПоказыватьПроцентОбработанных); + ТекущееСостояниеИзменения.Вставить("ПоказыватьПроцентОбработанных", ПоказыватьПроцентОбработанных); ТекущееСостояниеИзменения.Вставить("ПрерватьИзменение", Ложь); ПодключитьОбработчикОжидания("ИзменитьПорциюОбъектов", 0.1, Истина); Элементы.Страницы.ТекущаяСтраница = Элементы.ОжиданиеОбработки; + КонецПроцедуры &НаКлиенте -Процедура ИзменитьПорциюОбъектов() +Асинх Процедура ИзменитьПорциюОбъектов() + + Если ЗначениеЗаполнено(ПутьКФайлуВнешнейОбработкиНаКлиенте) + И Не ЗначениеЗаполнено(Объект.АдресДвоичныхДанныхВнешнейОбработки) Тогда + + Результат = Ждать ПоместитьФайлНаСерверАсинх(,,, + ПутьКФайлуВнешнейОбработкиНаКлиенте, УникальныйИдентификатор); + + Если ТипЗнч(Результат) = Тип("ОписаниеПомещенногоФайла") + И Не Результат.ПомещениеФайлаОтменено Тогда + Объект.АдресДвоичныхДанныхВнешнейОбработки = Результат.Адрес; + КонецЕсли; + + КонецЕсли; ИзменитьНаСервере(ТекущееСостояниеИзменения.ОстанавливатьИзменениеПриОшибке); Если ДлительнаяОперация.Статус = "Выполнено" Тогда - ОбработатьРезультатИзменения(ПолучитьИзВременногоХранилища(ДлительнаяОперация.АдресРезультата)); + РезультатИзменения = ПолучитьИзВременногоХранилища(ДлительнаяОперация.АдресРезультата); + Если ТипЗнч(РезультатИзменения) = Тип("Структура") Тогда + ОбработатьРезультатИзменения(РезультатИзменения); + Иначе + ПриЗавершенииОперацииИзменения(ДлительнаяОперация, Неопределено); + КонецЕсли; Иначе МодульДлительныеОперацииКлиент = ОбщийМодуль("ДлительныеОперацииКлиент"); ПараметрыОжидания = МодульДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); @@ -1046,18 +1079,49 @@ &НаКлиенте Процедура ПриЗавершенииОперацииИзменения(Результат, ДополнительныеПараметры) Экспорт + Если Результат = Неопределено Тогда НазадСервер(); Возврат; КонецЕсли; - Если Результат.Статус = "Ошибка" Тогда + Если Результат.Статус <> "Выполнено" Тогда НазадСервер(); ВызватьИсключение Результат.КраткоеПредставлениеОшибки; КонецЕсли; - ОбработатьРезультатИзменения(ПолучитьИзВременногоХранилища(Результат.АдресРезультата)); -КонецПроцедуры + РезультатыИзменений = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); + + Если ТипЗнч(РезультатыИзменений) <> Тип("Соответствие") Тогда + ТекстОшибки = НСтр("ru = 'Фоновое задание не вернуло результат'"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + СтатусОшибка = "Ошибка"; + + Для Каждого РезультатИзменения Из РезультатыИзменений Цикл + + РезультатВыполненияПорции = РезультатИзменения.Значение; + Если РезультатВыполненияПорции.Статус = СтатусОшибка Тогда + ТекстОшибки = ПодставитьПараметрыВСтроку( + НСтр("ru = 'Фоновое задание потока завершилось с ошибкой: + |%1'"), + РезультатВыполненияПорции.ПодробноеПредставлениеОшибки); + ВызватьИсключение ТекстОшибки; + Иначе + + РезультатИзмененияПорции = ПолучитьИзВременногоХранилища(РезультатВыполненияПорции.АдресРезультата); + Если ТипЗнч(РезультатИзмененияПорции) <> Тип("Структура") Тогда + ТекстОшибки = НСтр("ru = 'Фоновое задание потока не вернуло результат'"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + ОбработатьРезультатИзменения(РезультатИзмененияПорции); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры &НаКлиенте Процедура ОбработатьРезультатИзменения(РезультатИзменения = Неопределено, ПродолжитьОбработку = Неопределено) @@ -1096,7 +1160,7 @@ Возврат; КонецЦикла; - ТекущееСостояниеИзменения.ТекущаяПозиция = ТекущееСостояниеИзменения.ТекущаяПозиция + ТекущееСостояниеИзменения.РазмерПорции; + ТекущееСостояниеИзменения.ТекущаяПозиция = ТекущееСостояниеИзменения.ТекущаяПозиция + РезультатИзменения.СостояниеОбработки.Количество(); Если ТекущееСостояниеИзменения.ПоказыватьПроцентОбработанных Тогда // Вычисляем текущий процент обработанных объектов. @@ -1209,6 +1273,39 @@ Элементы.ФормаИзменить.Заголовок = НСтр("ru = 'Готово'"); Элементы.ФормаНазад.Видимость = Истина; + ДобавитьСообщениеИзменениеРеквизитовМожноВыполнятьБыстрее(); + +КонецПроцедуры + +// Сообщение о том, что изменение реквизитов можно выполнять быстрее, выводится, если: +// 1. Режим работы клиент-сервер и не модель сервиса. +// 2. Установлен флаг выполнения в транзакции. +// 3. Установленное кол-во порций в настройках администрирования более 1. +// +&НаСервере +Процедура ДобавитьСообщениеИзменениеРеквизитовМожноВыполнятьБыстрее() + + Если Не Объект.ИзменятьВТранзакции Тогда + Возврат; + КонецЕсли; + + ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); + Если Не ОбработкаОбъект.ДоступныДлительныеОперации() Тогда + Возврат; + КонецЕсли; + + МодульДлительныеОперации = ОбщийМодуль("ДлительныеОперации"); + + КоличествоПотоковДлительныхОпераций = МодульДлительныеОперации.ДопустимоеКоличествоПотоков(); + Если КоличествоПотоковДлительныхОпераций <= 1 Тогда + Возврат; + КонецЕсли; + + Элементы.НадписьУспешноЗавершено.Заголовок = Элементы.НадписьУспешноЗавершено.Заголовок + + Символы.ПС + Символы.ПС + + НСтр("ru = 'Изменение реквизитов можно выполнять быстрее. + |Для этого нужно снять флаг ""Изменять в транзакции"" в дополнительных параметрах.'"); + КонецПроцедуры &НаСервере @@ -1409,18 +1506,15 @@ ПараметрыЗадания.Вставить("ИзменяемыеТабличныеЧасти", ИзменяемыеТабличныеЧасти()); ПараметрыЗадания.Вставить("ОбъектыДляИзменения", Новый ХранилищеЗначения(ВыбранныеОбъекты())); ПараметрыЗадания.Вставить("РежимРазработчика", ОбработкаОбъект.РежимРазработчика); + ПараметрыЗадания.Вставить("ВнешнийОтчетОбработка", Неопределено); - ЭтоВнешняяОбработка = Не Метаданные.Обработки.Содержит(ОбработкаОбъект.Метаданные()); - Если Не Объект.ИзменятьВТранзакции Или Не ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность") Тогда - АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор); - ОбработкаОбъект.ИзменитьОбъекты(ПараметрыЗадания, АдресХранилища); - ДлительнаяОперация = Новый Структура("Статус, АдресРезультата", "Выполнено", АдресХранилища); - Иначе - МодульДлительныеОперации = ОбщийМодуль("ДлительныеОперации"); - ПараметрыВыполнения = МодульДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); - ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Групповое изменение элементов'"); - ИмяПроцедуры = ОбработкаОбъект.Метаданные().ПолноеИмя() + ".МодульОбъекта.ИзменитьОбъекты"; - ДлительнаяОперация = МодульДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыЗадания, ПараметрыВыполнения); + АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор); + ДлительнаяОперация = ОбработкаОбъект.ИзменитьОбъекты(ПараметрыЗадания, АдресХранилища); + + Если ДлительнаяОперация = Неопределено Тогда + ДлительнаяОперация = Новый Структура("Статус, АдресРезультата"); + ДлительнаяОперация.Статус = "Выполнено"; + ДлительнаяОперация.АдресРезультата = АдресХранилища; КонецЕсли; КонецПроцедуры @@ -1460,32 +1554,6 @@ КонецФункции -&НаКлиентеНаСервереБезКонтекста -Функция НетранзакционнаяПорцияГраницаПерехода() - - Возврат 100; // Если в списке изменяемых более 100 объектов - // изменение происходит для постоянного количества объектов - // см . НетранзакционнаяПорцияПолученияДанныхОбъектов(). - -КонецФункции - -&НаКлиентеНаСервереБезКонтекста -Функция НетранзакционнаяПорцияПолученияДанныхПроцент() - - Возврат 10; // Если в списке изменяемых менее 100 объектов - // изменение происходит порциями по проценту объектов от общей массы. - -КонецФункции - -&НаКлиентеНаСервереБезКонтекста -Функция НетранзакционнаяПорцияПолученияДанныхОбъектов() - - Возврат 10; // Если в списке изменяемых более 100 объектов - // изменение происходит порциями по постоянному - // числу объектов. - -КонецФункции - &НаКлиенте Процедура СброситьНастройкиИзменения() Для Каждого Реквизит Из РеквизитыОбъекта Цикл @@ -4623,4 +4691,4 @@ ОписаниеОповещения); КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl index 0028f2cb6..0d13b7ba1 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl @@ -228,13 +228,13 @@ КонецФункции // Для внутреннего использования. -Процедура ИзменитьОбъекты(Параметры, АдресРезультата) Экспорт +Функция ИзменитьОбъекты(Параметры, АдресРезультата) Экспорт ОбрабатываемыеОбъекты = Параметры.ОбрабатываемыеОбъекты.Получить().Строки; - ОбъектыДляИзменения = Параметры.ОбъектыДляИзменения.Получить().Строки; + ОбъектыДляИзменения = Параметры.ОбъектыДляИзменения.Получить().Строки; РезультатИзменения = Новый Структура("ЕстьОшибки, СостояниеОбработки"); - РезультатИзменения.ЕстьОшибки = Ложь; + РезультатИзменения.ЕстьОшибки = Ложь; РезультатИзменения.СостояниеОбработки = Новый Соответствие; Если ОбрабатываемыеОбъекты = Неопределено Тогда @@ -246,12 +246,12 @@ Если ОбрабатываемыеОбъекты.Количество() = 0 Тогда ПоместитьВоВременноеХранилище(РезультатИзменения, АдресРезультата); - Возврат; + Возврат Неопределено; КонецЕсли; Если Параметры.ТипОперации = "ВыполнитьАлгоритм" И РазделениеВключено() Тогда ПоместитьВоВременноеХранилище(РезультатИзменения, АдресРезультата); - Возврат; + Возврат Неопределено; КонецЕсли; ОстанавливатьИзменениеПриОшибке = Параметры.ОстанавливатьИзменениеПриОшибке; @@ -259,132 +259,31 @@ ОстанавливатьИзменениеПриОшибке = Параметры.ПрерыватьПриОшибке; КонецЕсли; - ЗаписатьОшибку = Истина; - Ссылка = Неопределено; ВыполнятьКодАлгоритмаВБезопасномРежиме = (Параметры.РежимВыполнения <> 1); - ОтключитьОбновлениеКлючейДоступа(Истина); - Если Параметры.ИзменятьВТранзакции Тогда - НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); + ЭтоВнешняяОбработка = ЭтоВнешняяОбработка(); + Если ЭтоВнешняяОбработка Тогда + Параметры.ВнешнийОтчетОбработка = + ?(ЗначениеЗаполнено(АдресДвоичныхДанныхВнешнейОбработки), + ПолучитьИзВременногоХранилища(АдресДвоичныхДанныхВнешнейОбработки), Неопределено); КонецЕсли; - Попытка - Если Параметры.ИзменятьВТранзакции Тогда - Блокировка = Новый БлокировкаДанных; - Для Каждого ДанныеОбъекта Из ОбрабатываемыеОбъекты Цикл - Ссылка = ДанныеОбъекта.Ссылка; - ЗаблокироватьСсылку(Блокировка, ДанныеОбъекта.Ссылка); - КонецЦикла; - Блокировка.Заблокировать(); - КонецЕсли; + Если Не ДоступныДлительныеОперации() + Или ЭтоВнешняяОбработка + И ТипЗнч(Параметры.ВнешнийОтчетОбработка) <> Тип("ДвоичныеДанные") Тогда - Для Каждого ДанныеОбъекта Из ОбрабатываемыеОбъекты Цикл - - ЗаписатьОшибку = Истина; - НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); - Попытка - - Ссылка = ДанныеОбъекта.Ссылка; - Если Не Параметры.ИзменятьВТранзакции Тогда - Блокировка = Новый БлокировкаДанных; - ЗаблокироватьСсылку(Блокировка, Ссылка); - Блокировка.Заблокировать(); - КонецЕсли; - - ИзменяемыйОбъект = Ссылка.ПолучитьОбъект(); - - Изменения = Неопределено; - Если Параметры.ТипОперации = "ВыполнитьАлгоритм" Тогда - ВыполнитьКодАлгоритма(ИзменяемыйОбъект, Параметры.КодАлгоритма, ВыполнятьКодАлгоритмаВБезопасномРежиме); - Иначе - // @skip-check query-in-loop - порционная запись по одному объекту на транзакцию. - Изменения = ВнестиИзменения(ДанныеОбъекта, ИзменяемыйОбъект, Параметры); - КонецЕсли; - - // Режим записи. - ЭтоДокумент = Метаданные.Документы.Содержит(ИзменяемыйОбъект.Метаданные()); - РежимЗаписи = ОпределитьРежимЗаписи(ИзменяемыйОбъект, ЭтоДокумент, Параметры.РежимРазработчика); - - // Проверка заполнения. - Если Не Параметры.РежимРазработчика Тогда - Если Не ЭтоДокумент Или РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда - Если Не ИзменяемыйОбъект.ПроверитьЗаполнение() Тогда - ВызватьИсключение ТекстОшибокПроверкиЗаполнения(); - КонецЕсли; - КонецЕсли; - КонецЕсли; - - // Запись дополнительных сведений. - Если Изменения <> Неопределено И Изменения.МассивЗаписейДопСведений.Количество() > 0 Тогда - Для Каждого МенеджерЗаписи Из Изменения.МассивЗаписейДопСведений Цикл - МенеджерЗаписи.Записать(Истина); - КонецЦикла; - КонецЕсли; - - НастроеныИзменения = ЗначениеЗаполнено(Параметры.ИзменяемыеРеквизиты) Или ЗначениеЗаполнено(Параметры.ИзменяемыеТабличныеЧасти); - - ЗаписыватьОбъект = Параметры.ВариантЗаписиОбъекта <> "НеЗаписывать" - И (ИзменяемыйОбъект.Модифицированность() Или Не НастроеныИзменения); - - // Запись объекта. - Если ЗаписыватьОбъект Тогда - Если РежимЗаписи <> Неопределено Тогда - ИзменяемыйОбъект.Записать(РежимЗаписи); - Иначе - ИзменяемыйОбъект.Записать(); - КонецЕсли; - КонецЕсли; - - ЗаполнитьРезультатИзмененияДополнительныхСвойств(РезультатИзменения, Ссылка, ИзменяемыйОбъект, Изменения); - - РазблокироватьДанныеДляРедактирования(Ссылка); - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - Если Параметры.ИзменятьВТранзакции Тогда - РазблокироватьДанныеДляРедактирования(Ссылка); - КонецЕсли; - - КраткоеПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - ЗаполнитьРезультатИзменения(РезультатИзменения, Ссылка, КраткоеПредставлениеОшибки); - Если ОстанавливатьИзменениеПриОшибке Или Параметры.ИзменятьВТранзакции Тогда - ЗаписатьОшибку = Ложь; - ВызватьИсключение; - КонецЕсли; - - Продолжить; - КонецПопытки; - - КонецЦикла; - - ОтключитьОбновлениеКлючейДоступа(Ложь); - Если Параметры.ИзменятьВТранзакции Тогда - ЗафиксироватьТранзакцию(); - КонецЕсли; - - Исключение - - Если Параметры.ИзменятьВТранзакции Тогда - ОтменитьТранзакцию(); - Для Каждого ДанныеОбъекта Из ОбрабатываемыеОбъекты Цикл - РазблокироватьДанныеДляРедактирования(ДанныеОбъекта.Ссылка); - КонецЦикла; - КонецЕсли; - - ОтключитьОбновлениеКлючейДоступа(Ложь, Параметры.ИзменятьВТранзакции); - - Если ЗаписатьОшибку Тогда - КраткоеПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - ЗаполнитьРезультатИзменения(РезультатИзменения, Ссылка, КраткоеПредставлениеОшибки); - КонецЕсли; - - КонецПопытки; + НастройкиИзменения = НастройкиИзменения(Параметры, ВыполнятьКодАлгоритмаВБезопасномРежиме); + РезультатИзмененияПорцииОбъектов(ОбрабатываемыеОбъекты, РезультатИзменения, НастройкиИзменения); + Иначе + Возврат ВыполнитьИзменениеОбъектовВНесколькоПотоков(Параметры, ОбрабатываемыеОбъекты, РезультатИзменения, + ОстанавливатьИзменениеПриОшибке, ВыполнятьКодАлгоритмаВБезопасномРежиме); + КонецЕсли; ПоместитьВоВременноеХранилище(РезультатИзменения, АдресРезультата); -КонецПроцедуры + Возврат Неопределено; + +КонецФункции // Параметры: // Блокировка - БлокировкаДанных @@ -408,10 +307,10 @@ Функция ВнестиИзменения(Знач ДанныеОбъекта, Знач ИзменяемыйОбъект, Знач Параметры) Результат = Новый Структура; - Результат.Вставить("ИзменяемыеРеквизитыОбъекта", Новый Массив); + Результат.Вставить("ИзменяемыеРеквизитыОбъекта", Новый Массив); Результат.Вставить("ИзменяемыеДопРеквизитыОбъекта", Новый Соответствие); - Результат.Вставить("ИзменяемыеДопСведенияОбъекта", Новый Соответствие); - Результат.Вставить("МассивЗаписейДопСведений", Новый Массив); + Результат.Вставить("ИзменяемыеДопСведенияОбъекта", Новый Соответствие); + Результат.Вставить("МассивЗаписейДопСведений", Новый Массив); ДополнительныеРеквизиты = Новый Массив; Для Каждого Операция Из Параметры.ИзменяемыеРеквизиты Цикл @@ -491,7 +390,7 @@ Если Параметры.ИзменяемыеТабличныеЧасти.Количество() > 0 Тогда ВнестиИзмененияВТабличныеЧасти(ИзменяемыйОбъект, ДанныеОбъекта, Параметры.ИзменяемыеТабличныеЧасти); КонецЕсли; - + Возврат Результат; КонецФункции @@ -656,7 +555,10 @@ // Функция СтрокаСоответствуетОтбору(СтрокаТаблицы, ДанныеОбъекта, ИмяТаблицы) - Возврат ДанныеОбъекта.Строки.НайтиСтроки(Новый Структура(ИмяТаблицы + "НомерСтроки", СтрокаТаблицы.НомерСтроки)).Количество() = 1; + Строки = ?(ТипЗнч(ДанныеОбъекта) = Тип("СтрокаДереваЗначений"), + ДанныеОбъекта.Строки, ДанныеОбъекта.ТабличныеЧасти.Строки); + + Возврат Строки.НайтиСтроки(Новый Структура(ИмяТаблицы + "НомерСтроки", СтрокаТаблицы.НомерСтроки)).Количество() = 1; КонецФункции @@ -736,18 +638,18 @@ МенеджерыОбъектов = МенеджерыОбъектовДляРедактированияРеквизитов(); КонецЕсли; - Редактируемые = Неопределено; + Редактируемые = Неопределено; НеРедактируемые = Неопределено; Если МенеджерыОбъектов <> Неопределено Тогда ДоступныеМетоды = МетодыМенеджераОбъектаДляРедактированияРеквизитов(ОбъектМетаданных.ПолноеИмя(), МенеджерыОбъектов); - Если ТипЗнч(ДоступныеМетоды) = Тип("Массив") И (ДоступныеМетоды.Количество() = 0 + Если ТипЗнч(ДоступныеМетоды) = Тип("Массив") И (ДоступныеМетоды.Количество() = 0 Или ДоступныеМетоды.Найти("РеквизитыРедактируемыеВГрупповойОбработке") <> Неопределено) Тогда МенеджерОбъекта = МенеджерОбъектаПоПолномуИмени(ОбъектМетаданных.ПолноеИмя()); Редактируемые = МенеджерОбъекта.РеквизитыРедактируемыеВГрупповойОбработке(); КонецЕсли; Иначе - // В конфигурациях без БСП или на старых версиях БСП, пытаемся определить, + // В конфигурациях без БСП или на старых версиях БСП, пытаемся определить, // есть ли у объекта редактируемые реквизиты. МенеджерОбъекта = МенеджерОбъектаПоПолномуИмени(ОбъектМетаданных.ПолноеИмя()); Попытка @@ -763,12 +665,12 @@ Или ДоступныеМетоды.Найти("РеквизитыНеРедактируемыеВГрупповойОбработке") <> Неопределено) Тогда Если МенеджерОбъекта = Неопределено Тогда МенеджерОбъекта = МенеджерОбъектаПоПолномуИмени(ОбъектМетаданных.ПолноеИмя()); - КонецЕсли; + КонецЕсли; НеРедактируемые = МенеджерОбъекта.РеквизитыНеРедактируемыеВГрупповойОбработке(); КонецЕсли; Иначе - // В конфигурациях без БСП или на старых версиях БСП, пытаемся определить, + // В конфигурациях без БСП или на старых версиях БСП, пытаемся определить, // есть ли у объекта нередактируемые реквизиты. Попытка НеРедактируемые = МенеджерОбъекта.РеквизитыНеРедактируемыеВГрупповойОбработке(); @@ -781,10 +683,10 @@ Если ВерсияБСПСоответствуетТребованиям() Тогда МодульИнтеграцияПодсистемБСП = ОбщийМодуль("ИнтеграцияПодсистемБСП"); МодульГрупповоеИзменениеОбъектовПереопределяемый = ОбщийМодуль("ГрупповоеИзменениеОбъектовПереопределяемый"); - + МодульИнтеграцияПодсистемБСП.ПриОпределенииРедактируемыхРеквизитовОбъекта( ОбъектМетаданных, Редактируемые, НеРедактируемые); - + МодульГрупповоеИзменениеОбъектовПереопределяемый.ПриОпределенииРедактируемыхРеквизитовОбъекта( ОбъектМетаданных, Редактируемые, НеРедактируемые); КонецЕсли; @@ -810,13 +712,17 @@ Функция МенеджерыОбъектовДляРедактированияРеквизитов() + ОбъектыСЗаблокированнымиРеквизитами = Новый Соответствие; + Если Не ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность") Тогда + Возврат ОбъектыСЗаблокированнымиРеквизитами; + КонецЕсли; + МодульИнтеграцияПодсистемБСП = ОбщийМодуль("ИнтеграцияПодсистемБСП"); МодульГрупповоеИзменениеОбъектовПереопределяемый = ОбщийМодуль("ГрупповоеИзменениеОбъектовПереопределяемый"); Если МодульИнтеграцияПодсистемБСП = Неопределено Или МодульГрупповоеИзменениеОбъектовПереопределяемый = Неопределено Тогда - Возврат Новый Массив; + Возврат ОбъектыСЗаблокированнымиРеквизитами; КонецЕсли; - ОбъектыСЗаблокированнымиРеквизитами = Новый Соответствие; МодульИнтеграцияПодсистемБСП.ПриОпределенииОбъектовСРедактируемымиРеквизитами(ОбъектыСЗаблокированнымиРеквизитами); МодульГрупповоеИзменениеОбъектовПереопределяемый.ПриОпределенииОбъектовСРедактируемымиРеквизитами(ОбъектыСЗаблокированнымиРеквизитами); @@ -837,10 +743,14 @@ КонецЕсли; ВерсияБСП = МодульСтандартныеПодсистемыСервер.ВерсияБиблиотеки(); - Возврат СравнитьВерсии(ВерсияБСП, "3.1.8.25") >= 0; + Возврат СравнитьВерсии(ВерсияБСП, "3.1.8.240") >= 0; КонецФункции +Функция ДоступныДлительныеОперации() Экспорт + Возврат ВерсияБСПСоответствуетТребованиям() И ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность"); +КонецФункции + // Сравнить две строки версий. // // Параметры: @@ -1496,6 +1406,282 @@ КонецФункции +#Область ИзменениеОбъектовВНесколькоПотоков + +// АПК:581-выкл Экспортная, так как вызывается из фонового задания. +Функция РезультатИзмененияПорцииОбъектов(ОбрабатываемыеОбъекты, РезультатИзменения, НастройкиИзменения) Экспорт + + Ссылка = Неопределено; + ЗаписатьОшибку = Истина; + + ОтключитьОбновлениеКлючейДоступа(Истина); + Если НастройкиИзменения.ИзменятьВТранзакции Тогда + НачатьТранзакцию(); + КонецЕсли; + + Попытка + Если НастройкиИзменения.ИзменятьВТранзакции Тогда + Блокировка = Новый БлокировкаДанных; + Для Каждого ДанныеОбъекта Из ОбрабатываемыеОбъекты Цикл + Ссылка = ДанныеОбъекта.Ссылка; + ЗаблокироватьСсылку(Блокировка, ДанныеОбъекта.Ссылка); + КонецЦикла; + Блокировка.Заблокировать(); + КонецЕсли; + + Для Каждого ДанныеОбъекта Из ОбрабатываемыеОбъекты Цикл + + ЗаписатьОшибку = Истина; + НачатьТранзакцию(); + Попытка + + Ссылка = ДанныеОбъекта.Ссылка; + Если Не НастройкиИзменения.ИзменятьВТранзакции Тогда + Блокировка = Новый БлокировкаДанных; + ЗаблокироватьСсылку(Блокировка, Ссылка); + Блокировка.Заблокировать(); + КонецЕсли; + + ИзменяемыйОбъект = Ссылка.ПолучитьОбъект(); + + Изменения = Неопределено; + Если НастройкиИзменения.ТипОперации = "ВыполнитьАлгоритм" Тогда + ВыполнитьКодАлгоритма(ИзменяемыйОбъект, НастройкиИзменения.КодАлгоритма, + НастройкиИзменения.ВыполнятьКодАлгоритмаВБезопасномРежиме); + Иначе + Изменения = ВнестиИзменения(ДанныеОбъекта, ИзменяемыйОбъект, НастройкиИзменения); + КонецЕсли; + + // Режим записи. + ЭтоДокумент = Метаданные.Документы.Содержит(ИзменяемыйОбъект.Метаданные()); + РежимЗаписи = ОпределитьРежимЗаписи(ИзменяемыйОбъект, ЭтоДокумент, НастройкиИзменения.РежимРазработчика); + + // Проверка заполнения. + Если Не НастройкиИзменения.РежимРазработчика Тогда + Если Не ЭтоДокумент Или РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда + Если Не ИзменяемыйОбъект.ПроверитьЗаполнение() Тогда + ВызватьИсключение ТекстОшибокПроверкиЗаполнения(); + КонецЕсли; + КонецЕсли; + КонецЕсли; + + // Запись дополнительных сведений. + Если Изменения <> Неопределено И Изменения.МассивЗаписейДопСведений.Количество() > 0 Тогда + Для Каждого МенеджерЗаписи Из Изменения.МассивЗаписейДопСведений Цикл + МенеджерЗаписи.Записать(Истина); + КонецЦикла; + КонецЕсли; + + НастроеныИзменения = ЗначениеЗаполнено(НастройкиИзменения.ИзменяемыеРеквизиты) + Или ЗначениеЗаполнено(НастройкиИзменения.ИзменяемыеТабличныеЧасти); + + ЗаписыватьОбъект = НастройкиИзменения.ВариантЗаписиОбъекта <> "НеЗаписывать" + И (ИзменяемыйОбъект.Модифицированность() Или Не НастроеныИзменения); + + // Запись объекта. + Если ЗаписыватьОбъект Тогда + Если РежимЗаписи <> Неопределено Тогда + ИзменяемыйОбъект.Записать(РежимЗаписи); + Иначе + ИзменяемыйОбъект.Записать(); + КонецЕсли; + КонецЕсли; + + ЗаполнитьРезультатИзмененияДополнительныхСвойств(РезультатИзменения, Ссылка, ИзменяемыйОбъект, Изменения); + + РазблокироватьДанныеДляРедактирования(Ссылка); + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + Если НастройкиИзменения.ИзменятьВТранзакции Тогда + РазблокироватьДанныеДляРедактирования(Ссылка); + КонецЕсли; + + КраткоеПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаполнитьРезультатИзменения(РезультатИзменения, Ссылка, КраткоеПредставлениеОшибки); + Если НастройкиИзменения.ОстанавливатьИзменениеПриОшибке Или НастройкиИзменения.ИзменятьВТранзакции Тогда + ЗаписатьОшибку = Ложь; + ВызватьИсключение; + КонецЕсли; + + Продолжить; + КонецПопытки; + + КонецЦикла; + + ОтключитьОбновлениеКлючейДоступа(Ложь); + Если НастройкиИзменения.ИзменятьВТранзакции Тогда + ЗафиксироватьТранзакцию(); + КонецЕсли; + + Исключение + + Если НастройкиИзменения.ИзменятьВТранзакции Тогда + ОтменитьТранзакцию(); + Для Каждого ДанныеОбъекта Из ОбрабатываемыеОбъекты Цикл + РазблокироватьДанныеДляРедактирования(ДанныеОбъекта.Ссылка); + КонецЦикла; + КонецЕсли; + + ОтключитьОбновлениеКлючейДоступа(Ложь, НастройкиИзменения.ИзменятьВТранзакции); + + Если ЗаписатьОшибку Тогда + КраткоеПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаполнитьРезультатИзменения(РезультатИзменения, Ссылка, КраткоеПредставлениеОшибки); + КонецЕсли; + + КонецПопытки; + + Возврат РезультатИзменения; + +КонецФункции +// АПК:581-вкл + +Функция ВыполнитьИзменениеОбъектовВНесколькоПотоков(Параметры, ОбрабатываемыеОбъекты, РезультатИзменения, + ОстанавливатьИзменениеПриОшибке, ВыполнятьКодАлгоритмаВБезопасномРежиме) + + ИдентификаторФормы = Новый УникальныйИдентификатор; + + МодульДлительныеОперации = ОбщийМодуль("ДлительныеОперации"); + + ПараметрыВыполнения = МодульДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Групповое изменение реквизитов'"); + + ЭтоВнешняяОбработка = ЭтоВнешняяОбработка(); + Если ЭтоВнешняяОбработка Тогда + ПараметрыВыполнения.ВнешнийОтчетОбработка = Параметры.ВнешнийОтчетОбработка; + КонецЕсли; + + МассивПорций = Новый Массив; + ПорцияОбъектов = Новый Массив; + СчетчикОбъектов = 0; + + КоличествоПотоковДлительныхОпераций = МодульДлительныеОперации.ДопустимоеКоличествоПотоков(); + + ОбрабатыватьВОдинПоток = Параметры.ИзменятьВТранзакции Или Параметры.ПрерыватьПриОшибке; + Если КоличествоПотоковДлительныхОпераций > 0 И Не ОбрабатыватьВОдинПоток Тогда + ЧислоОбъектовВПорции = Цел(ОбрабатываемыеОбъекты.Количество() / КоличествоПотоковДлительныхОпераций); + Иначе + ЧислоОбъектовВПорции = ОбрабатываемыеОбъекты.Количество(); + КонецЕсли; + + ОписаниеТабличныхЧастей = ОписаниеТабличныхЧастей(Параметры); + + Для Каждого ДанныеОбъекта Из ОбрабатываемыеОбъекты Цикл + Если СчетчикОбъектов = ЧислоОбъектовВПорции Тогда + МассивПорций.Добавить(ПорцияОбъектов); + ПорцияОбъектов = Новый Массив; + СчетчикОбъектов = 0; + КонецЕсли; + + ТабличныеЧасти = ОписаниеТабличныхЧастей.Скопировать(); + + РекурсивноеДобавлениеСтрокДереваЗначений(ТабличныеЧасти, ДанныеОбъекта); + + ДанныеПорции = Новый Структура; + ДанныеПорции.Вставить("Ссылка", ДанныеОбъекта.Ссылка); + ДанныеПорции.Вставить("ТабличныеЧасти", ТабличныеЧасти); + + ПорцияОбъектов.Добавить(ДанныеПорции); + + СчетчикОбъектов = СчетчикОбъектов + 1; + КонецЦикла; + + Если ПорцияОбъектов.Количество() > 0 Тогда + МассивПорций.Добавить(ПорцияОбъектов); + КонецЕсли; + + ПараметрыМетода = Новый Соответствие; + ВерхняяГраницаПорций = МассивПорций.ВГраница(); + + НастройкиИзменения = НастройкиИзменения(Параметры, ВыполнятьКодАлгоритмаВБезопасномРежиме); + + Для ИндексПорции = 0 По ВерхняяГраницаПорций Цикл + МассивПараметров = Новый Массив; + МассивПараметров.Добавить(МассивПорций[ИндексПорции]); + МассивПараметров.Добавить(РезультатИзменения); + МассивПараметров.Добавить(НастройкиИзменения); + + ПараметрыМетода.Вставить(ИндексПорции, МассивПараметров); + КонецЦикла; + + ИмяФункции = СтрШаблон("%1.ГрупповоеИзменениеРеквизитов.МодульОбъекта.РезультатИзмененияПорцииОбъектов", + ?(ЭтоВнешняяОбработка, "ВнешняяОбработка", "Обработка")); + + РезультатВыполнения = МодульДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков(ИмяФункции, + ПараметрыВыполнения, ПараметрыМетода); + + Возврат РезультатВыполнения; + +КонецФункции + +Функция ОписаниеТабличныхЧастей(Параметры) + + ОписаниеТабличныхЧастей = Новый ДеревоЗначений; + + ОбъектыДляИзменения = Параметры.ОбъектыДляИзменения.Получить(); + Если ОбъектыДляИзменения = Неопределено Тогда + ОбъектыДляИзменения = Параметры.ОбрабатываемыеОбъекты.Получить(); + КонецЕсли; + + Для Каждого Колонка Из ОбъектыДляИзменения.Колонки Цикл + ОписаниеТабличныхЧастей.Колонки.Добавить(Колонка.Имя, Колонка.ТипЗначения, Колонка.Заголовок, Колонка.Ширина); + КонецЦикла; + + Возврат ОписаниеТабличныхЧастей; + +КонецФункции + +Процедура РекурсивноеДобавлениеСтрокДереваЗначений(Получатель, Источник) + + Для Каждого СтрокаИсточника Из Источник.Строки Цикл + + ТекущаяСтрока = Получатель.Строки.Добавить(); + ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтрокаИсточника); + + Если СтрокаИсточника.Строки.Количество() > 0 Тогда + РекурсивноеДобавлениеСтрокДереваЗначений(ТекущаяСтрока, СтрокаИсточника); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +// Для внутреннего использования. +Функция ЭтоВнешняяОбработка() + + СтруктураОбъекта = Новый Структура; + СтруктураОбъекта.Вставить("ИспользуемоеИмяФайла", Неопределено); + ЗаполнитьЗначенияСвойств(СтруктураОбъекта, ЭтотОбъект); + + Возврат (СтруктураОбъекта.ИспользуемоеИмяФайла <> Неопределено); + +КонецФункции + +Функция НастройкиИзменения(Параметры, ВыполнятьКодАлгоритмаВБезопасномРежиме) + + НастройкиИзменения = Новый Структура; + НастройкиИзменения.Вставить("ВариантЗаписиОбъекта"); + НастройкиИзменения.Вставить("ВыполнятьКодАлгоритмаВБезопасномРежиме", ВыполнятьКодАлгоритмаВБезопасномРежиме); + НастройкиИзменения.Вставить("ДоступныеРеквизиты"); + НастройкиИзменения.Вставить("ИзменяемыеРеквизиты"); + НастройкиИзменения.Вставить("ИзменяемыеТабличныеЧасти"); + НастройкиИзменения.Вставить("ИзменятьВТранзакции"); + НастройкиИзменения.Вставить("КодАлгоритма"); + НастройкиИзменения.Вставить("ОстанавливатьИзменениеПриОшибке"); + НастройкиИзменения.Вставить("РежимРазработчика"); + НастройкиИзменения.Вставить("ТипОперации"); + + ЗаполнитьЗначенияСвойств(НастройкиИзменения, Параметры); + + Возврат НастройкиИзменения; + +КонецФункции + +#КонецОбласти + #КонецОбласти #Иначе diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ГрупповоеИзменениеРеквизитов.mdo b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ГрупповоеИзменениеРеквизитов.mdo index e32e81be3..50807c6db 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ГрупповоеИзменениеРеквизитов.mdo +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ГрупповоеИзменениеРеквизитов.mdo @@ -169,6 +169,19 @@ <minValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/> </attributes> + <attributes uuid="5921c2e6-4b25-40d4-b871-9654c2ce89bb"> + <name>АдресДвоичныхДанныхВнешнейОбработки</name> + <synonym> + <key>ru</key> + <value>Адрес двоичных данных внешней обработки</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers/> + </type> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </attributes> <forms uuid="da9821c3-4b16-48b7-9088-d3cf8ac536a6"> <name>Форма</name> <synonym> diff --git a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Form.form b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Form.form index ca0179a10..f27f842b8 100644 --- a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Form.form @@ -111,6 +111,34 @@ <representationInContextMenu>OnlyInContextMenu</representationInContextMenu> <locationInCommandBar>InCommandBar</locationInCommandBar> </items> + <items xsi:type="form:Button"> + <name>АрхивАнкет</name> + <id>12</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <skipOnInput>false</skipOnInput> + <extendedTooltip> + <name>АрхивАнкетExtendedTooltip</name> + <id>26</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <type>CommandBarHyperlink</type> + <commandName>Form.Command.АрхивАнкет</commandName> + <buttonImportance>Normal</buttonImportance> + <representation>Auto</representation> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <placementArea>UserCmds</placementArea> + <representationInContextMenu>Auto</representationInContextMenu> + </items> <horizontalAlign>Left</horizontalAlign> <autoFill>true</autoFill> </autoCommandBar> @@ -211,13 +239,13 @@ <autoMaxHeight>true</autoMaxHeight> <autoMaxRowsCount>true</autoMaxRowsCount> <selectionMode>MultiRow</selectionMode> + <rowSelectionMode>Row</rowSelectionMode> <headerHeight>1</headerHeight> <footerHeight>1</footerHeight> <horizontalScrollBar>AutoUse</horizontalScrollBar> <verticalScrollBar>AutoUse</verticalScrollBar> <horizontalLines>true</horizontalLines> <verticalLines>true</verticalLines> - <useAlternationRowColorBWA>false</useAlternationRowColorBWA> <autoInsertNewRow>true</autoInsertNewRow> <searchOnInput>Auto</searchOnInput> <initialListView>Auto</initialListView> @@ -234,34 +262,6 @@ <autoMaxCardHeight>true</autoMaxCardHeight> <rowFilter xsi:type="core:UndefinedValue"/> </items> - <items xsi:type="form:Button"> - <name>АрхивАнкет</name> - <id>12</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible> - <common>true</common> - </userVisible> - <skipOnInput>false</skipOnInput> - <extendedTooltip> - <name>АрхивАнкетExtendedTooltip</name> - <id>26</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <type>Hyperlink</type> - <commandName>Form.Command.АрхивАнкет</commandName> - <buttonImportance>Normal</buttonImportance> - <representation>Auto</representation> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <placementArea>UserCmds</placementArea> - <representationInContextMenu>Auto</representationInContextMenu> - </items> <visible>true</visible> <enabled>true</enabled> <userVisible> diff --git a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl index 19bf69018..5babc2fe4 100644 --- a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl @@ -56,6 +56,7 @@ СтруктураПараметров.Вставить("Ключ",ТекущиеДанные.АнкетаОпрос); СтруктураПараметров.Вставить("ТолькоФормаЗаполнения", Истина); СтруктураПараметров.Вставить("РежимАнкетирования", Объект.РежимАнкетирования); + СтруктураПараметров.Вставить("Заголовок", ТекущиеДанные.Представление); ОткрытьФорму("Документ.Анкета.ФормаОбъекта", СтруктураПараметров, Элемент); ИначеЕсли ТипЗнч(ТекущиеДанные.АнкетаОпрос) = Тип("ДокументСсылка.НазначениеОпросов") Тогда СтруктураПараметров = Новый Структура; @@ -63,9 +64,10 @@ ЗначенияЗаполнения.Вставить("Респондент", Объект.Респондент); ЗначенияЗаполнения.Вставить("Опрос", ТекущиеДанные.АнкетаОпрос); ЗначенияЗаполнения.Вставить("РежимАнкетирования", Объект.РежимАнкетирования); + СтруктураПараметров.Вставить("Заголовок", ТекущиеДанные.Представление); СтруктураПараметров.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения); СтруктураПараметров.Вставить("ТолькоФормаЗаполнения", Истина); - ОткрытьФорму("Документ.Анкета.ФормаОбъекта", СтруктураПараметров, Элемент); + ОткрытьФорму("Документ.Анкета.ФормаОбъекта", СтруктураПараметров, Элемент, ТекущиеДанные.Представление); КонецЕсли; КонецПроцедуры @@ -117,10 +119,10 @@ КонецЕсли; + НоваяСтрока.КодКартинки = ?(СтрокаТаблицы.Статус = "Опросы",0,1); + КонецЦикла; - НоваяСтрока.КодКартинки = ?(СтрокаТаблицы.Статус = "Опросы",0,1); - КонецЕсли; КонецПроцедуры @@ -137,25 +139,25 @@ Если ТипЗнч(СтрокаДерева.АнкетаОпрос) = Тип("ДокументСсылка.НазначениеОпросов") Тогда Если ЗначениеЗаполнено(СтрокаДерева.ДатаОкончания) Тогда Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Анкета ""%1"", к заполнению до %2'"), + НСтр("ru = '""%1"", к заполнению до %2'"), СтрокаДерева.Наименование, Формат(НачалоДня(КонецДня(СтрокаДерева.ДатаОкончания) + 1), "ДЛФ=D")); Иначе Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Анкета ""%1""'"), СтрокаДерева.Наименование); + НСтр("ru = '""%1""'"), СтрокаДерева.Наименование); КонецЕсли; ИначеЕсли ТипЗнч(СтрокаДерева.АнкетаОпрос) = Тип("ДокументСсылка.Анкета") Тогда Если ЗначениеЗаполнено(СтрокаДерева.ДатаАнкеты) И ЗначениеЗаполнено(СтрокаДерева.ДатаОкончания) Тогда Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Анкета ""%1"", последний раз редактировавшаяся %2, к заполнению до %3'"), + НСтр("ru = '""%1"", последний раз редактировали %2, к заполнению до %3'"), СтрокаДерева.Наименование, Формат(СтрокаДерева.ДатаАнкеты, "ДЛФ=D"), Формат(НачалоДня(КонецДня(СтрокаДерева.ДатаОкончания) + 1), "ДЛФ=D")); ИначеЕсли ЗначениеЗаполнено(СтрокаДерева.ДатаАнкеты) Тогда Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Анкета ""%1"", последний раз редактировавшаяся %2'"), + НСтр("ru = '""%1"", последний раз редактировали %2'"), СтрокаДерева.Наименование, Формат(СтрокаДерева.ДатаАнкеты, "ДЛФ=D")); Иначе Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Анкета ""%1""'"), СтрокаДерева.Наименование); + НСтр("ru = '""%1""'"), СтрокаДерева.Наименование); КонецЕсли; КонецЕсли; Возврат ""; diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl index ae41c661b..e305c58ba 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl @@ -80,6 +80,12 @@ КоличествоПоказываемыхСобытий = 200; + Если ОбщегоНазначения.ЭтоВебКлиент() Или ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + УдаляемыйЭлемент = Элементы.КоличествоПоказываемыхСобытий.СписокВыбора.НайтиПоЗначению(10000); + Элементы.КоличествоПоказываемыхСобытий.СписокВыбора.Удалить(УдаляемыйЭлемент); + Элементы.КоличествоПоказываемыхСобытий.МаксимальноеЗначение = 1000; + КонецЕсли; + ОтборПоУмолчанию = ОтборПоУмолчанию(ЗначенияОтбора); Если Не ОтборЖурналаРегистрации.Свойство("Событие") Тогда ОтборЖурналаРегистрации.Вставить("Событие", ОтборПоУмолчанию); diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Form.form b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Form.form index 2c2aaa139..e983507a7 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Form.form +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Form.form @@ -527,6 +527,10 @@ <event>OnActivate</event> <name>ШаблонСДаннымиПриАктивизации</name> </handlers> + <handlers> + <event>Selection</event> + <name>ШаблонСДаннымиВыбор</name> + </handlers> <width>45</width> <autoMaxWidth>true</autoMaxWidth> <height>1</height> diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl index 6631ff831..ca59779d7 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl @@ -270,6 +270,13 @@ Элемент.Защита = ?(Элемент.ТекущаяОбласть.Верх > ВысотаШапкиШаблонаСДанными, Ложь, Истина); КонецПроцедуры +&НаКлиенте +Процедура ШаблонСДаннымиВыбор(Элемент, Область, СтандартнаяОбработка) + Если Область.Верх <= ВысотаШапкиШаблонаСДанными Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаСопоставленияДанных @@ -747,7 +754,7 @@ &НаКлиенте Функция ТаблицаСДаннымиПустая() - Если ШаблонСДанными.ВысотаТаблицы < 2 Тогда + Если ШаблонСДанными.ВысотаТаблицы <= ВысотаШапкиШаблонаСДанными Тогда Возврат Истина; КонецЕсли; @@ -962,17 +969,26 @@ СкопироватьОднуКолонкуВШаблонСДанными(); - ИначеЕсли ТаблицаСДаннымиПустая() Тогда + Иначе - Если ВариантЗагрузки = 0 Тогда - ПоказатьПредупреждение(, (НСтр("ru = 'Для сопоставления и загрузки данных, заполните таблицу.'"))); - Иначе - ПоказатьПредупреждение(, (НСтр("ru = 'Невозможно выполнить сопоставление данных, т.к данные не были загружены в таблицу. - |Возможно, имена колонок в файле не соответствуют колонкам в бланке.'"))); - КонецЕсли; ВыполнитьШагЗаполнениеТаблицыДаннымиНаКлиенте(); - ДоступностьКнопокКомандойПанели(Истина); - Возврат; + + Если ТаблицаСДаннымиПустая() Тогда + + Если ВариантЗагрузки = 0 Тогда + ПоказатьПредупреждение(, (НСтр("ru = 'Для сопоставления и загрузки данных, заполните таблицу.'"))); + Иначе + ПоказатьПредупреждение(, (НСтр("ru = 'Невозможно выполнить сопоставление данных, т.к данные не были загружены в таблицу. + |Возможно, имена колонок в файле не соответствуют колонкам в бланке.'"))); + Элементы.Назад.Видимость = Ложь; + КонецЕсли; + + ДоступностьКнопокКомандойПанели(Истина); + + Возврат; + + КонецЕсли; + КонецЕсли; ПодтверждениеЗакрытияФормы = Ложь; diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Form.form b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Form.form index 66a857fcc..0c2f56434 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Form.form +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Form.form @@ -490,7 +490,6 @@ <id>2</id> <autoFill>true</autoFill> </contextMenu> - <changeRowSet>true</changeRowSet> <changeRowOrder>true</changeRowOrder> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl index 35b49a160..59607b108 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl @@ -65,12 +65,21 @@ ИнформацияОСправочниках.Колонки.Добавить("Представление", ТипСтрока); ИнформацияОСправочниках.Колонки.Добавить("ПрикладнаяЗагрузка", ТипБулево); + ФункциональныеОпции = СтандартныеПодсистемыПовтИсп.ДоступностьОбъектовПоОпциям(); + Для каждого ОбъектМетаданныхДляВывода Из Метаданные.Справочники Цикл - Если НЕ СправочникСодержитРеквизитИсключение(ОбъектМетаданныхДляВывода) Тогда + + ПолноеИмя = ОбъектМетаданныхДляВывода.ПолноеИмя(); + Если ФункциональныеОпции.Получить(ПолноеИмя) = Ложь Тогда + Продолжить; + КонецЕсли; + + Если ЗагрузкаДанныхИзФайлаДопустима(ОбъектМетаданныхДляВывода) Тогда Строка = ИнформацияОСправочниках.Добавить(); Строка.Представление = ОбъектМетаданныхДляВывода.Представление(); - Строка.ПолноеИмя = ОбъектМетаданныхДляВывода.ПолноеИмя(); + Строка.ПолноеИмя = ПолноеИмя; КонецЕсли; + КонецЦикла; ИнтеграцияПодсистемБСП.ПриОпределенииСправочниковДляЗагрузкиДанных(ИнформацияОСправочниках); @@ -138,30 +147,30 @@ КонецФункции -Функция СправочникСодержитРеквизитИсключение(Справочник) +Функция ЗагрузкаДанныхИзФайлаДопустима(Справочник) - Для каждого Реквизит Из Справочник.ТабличныеЧасти Цикл - Если Реквизит.Имя <> "КонтактнаяИнформация" - И Реквизит.Имя <> "ДополнительныеРеквизиты" - И Реквизит.Имя <> "Представления" - И Реквизит.Имя <> "СертификатыШифрования" Тогда - Возврат Истина; + Если СтрНачинаетсяС(ВРег(Справочник.Имя), "УДАЛИТЬ") Тогда + Возврат Ложь; + КонецЕсли; + + Для каждого ТабличнаяЧасть Из Справочник.ТабличныеЧасти Цикл + Если ТабличнаяЧасть.Имя <> "КонтактнаяИнформация" + И ТабличнаяЧасть.Имя <> "ДополнительныеРеквизиты" + И ТабличнаяЧасть.Имя <> "Представления" + И ТабличнаяЧасть.Имя <> "СертификатыШифрования" Тогда + Возврат Ложь; КонецЕсли; КонецЦикла; Для каждого Реквизит Из Справочник.Реквизиты Цикл Для каждого ТипРеквизита Из Реквизит.Тип.Типы() Цикл Если ТипРеквизита = Тип("ХранилищеЗначения") Тогда - Возврат Истина; + Возврат Ложь; КонецЕсли; КонецЦикла; КонецЦикла; - Если СтрНачинаетсяС(ВРег(Справочник.Имя), "УДАЛИТЬ") Тогда - Возврат Истина; - КонецЕсли; - - Возврат Ложь; + Возврат Истина; КонецФункции @@ -462,6 +471,9 @@ ПерваяСтрокаТаблицы = ?(ЗагрузкаДанныхИзФайлаКлиентСервер.КолонкиИмеютГруппировку(ТаблицаИнформацияПоКолонкам), 3, 2); + КоличествоПустыхСтрок = 0; + КоличествоПустыхСтрокПодрядДляПрерыванияЗагрузки = 30; + КорректировкаИдентификатора = ПерваяСтрокаТаблицы - 2; Для НомерСтроки = ПерваяСтрокаТаблицы По ШаблонСДанными.ВысотаТаблицы Цикл СтрокаТаблицыПустая = Истина; @@ -475,6 +487,9 @@ Колонка = НайтиИнформациюОКолонке(ТаблицаИнформацияПоКолонкам, "Позиция", НомерКолонки); Если Колонка <> Неопределено Тогда + + ДанныеЯчейки = Неопределено; + ИмяКолонки = Колонка.ИмяКолонки; ТипДанных = ТипЗнч(НоваяСтрока[ИмяКолонки]); @@ -482,7 +497,18 @@ //@skip-check query-in-loop - построчная загрузка разнородных данных. ДанныеЯчейки = ЗначениеЯчейки(Колонка, Ячейка.Текст); Иначе - ДанныеЯчейки = Ячейка.Текст; + Если ТипДанных = Тип("Булево") Тогда + ЗначениеЯчейки = ВРег(СокрЛП(Ячейка.Текст)); + Если ЗначениеЯчейки = "1" + Или СтрСравнить(ЗначениеЯчейки, ЗагрузкаДанныхИзФайлаКлиентСервер.ПредставлениеТекстаДаДляБулево()) = 0 + Или СтрСравнить(ЗначениеЯчейки, "ИСТИНА") = 0 Тогда + ДанныеЯчейки = Истина; + Иначе + ДанныеЯчейки = Ложь; + КонецЕсли; + Иначе + ДанныеЯчейки = Ячейка.Текст; + КонецЕсли; КонецЕсли; Если СтрокаТаблицыПустая Тогда СтрокаТаблицыПустая = НЕ ЗначениеЗаполнено(ДанныеЯчейки); @@ -493,6 +519,13 @@ Если СтрокаТаблицыПустая Тогда ТаблицаСопоставления.Удалить(НоваяСтрока); КорректировкаИдентификатора = КорректировкаИдентификатора + 1; + КоличествоПустыхСтрок = КоличествоПустыхСтрок + 1; + Иначе + КоличествоПустыхСтрок = 0; + КонецЕсли; + + Если КоличествоПустыхСтрок > КоличествоПустыхСтрокПодрядДляПрерыванияЗагрузки Тогда + Прервать; КонецЕсли; Если ФоновоеЗадание Тогда @@ -698,7 +731,8 @@ ОписаниеТипаКолонки = ""; Если Реквизит.Тип.СодержитТип(Тип("Булево")) Тогда - ОписаниеТипаКолонки = НСтр("ru = 'Флаг, Да или 1 / Нет или 0'"); + ОписаниеТипаКолонки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Флаг, %1 или 1 / Нет или 0'"), ЗагрузкаДанныхИзФайлаКлиентСервер.ПредставлениеТекстаДаДляБулево()); ИначеЕсли Реквизит.Тип.СодержитТип(Тип("Число")) Тогда ОписаниеТипаКолонки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Число, Длина: %1, Точность: %2'"), Строка(Реквизит.Тип.КвалификаторыЧисла.Разрядность), diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl index b584766b7..97e32e36c 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl @@ -99,7 +99,7 @@ ТекстКлассификатора = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); - СправочникБИК = JSONВЗначение(ТекстКлассификатора, "dateIn,dateOut"); + СправочникБИК = ОбщегоНазначения.JSONВЗначение(ТекстКлассификатора, "dateIn,dateOut", Ложь); Результат = Новый Массив; Для Каждого Элемент Из СправочникБИК.bics Цикл @@ -575,12 +575,6 @@ КонецФункции -Функция JSONВЗначение(Строка, ИменаСвойствСоЗначениямиДата = Неопределено) - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(Строка); - Возврат ПрочитатьJSON(ЧтениеJSON, Ложь, ИменаСвойствСоЗначениямиДата); -КонецФункции - Функция СведенияБИК(Знач БИК, Знач КоррСчет = Неопределено, ТолькоАктуальные = Истина) Экспорт ТекстЗапроса = diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl index b96019b58..e48838b79 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl @@ -96,7 +96,7 @@ ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьРод); ПараметрыПрописи.Добавить(Форма.ДлинаДробнойЧасти); - Возврат СтрСоединить(ПараметрыПрописи, ", ");; + Возврат СтрСоединить(ПараметрыПрописи, ", "); КонецФункции diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl index 47e0b1f3c..2d4f27aa1 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl @@ -207,7 +207,6 @@ Обработчик.РежимВыполнения = "Отложенно"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("dc79c561-8657-4852-bbc5-38ced6996fff"); Обработчик.Комментарий = НСтр("ru = 'Отключает ошибочно включенную загрузку курсов валюты ""Российский рубль (643)"" из интернета.'"); - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "Обработки.ЗагрузкаКурсовВалют.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ЧитаемыеОбъекты = "Справочник.Валюты"; Обработчик.ИзменяемыеОбъекты = "Справочник.Валюты"; diff --git a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl index 0349045b0..bb87dcdf7 100644 --- a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl @@ -51,13 +51,13 @@ Функция ВерсияОбновленияПроизводственныхКалендарей() Экспорт - Возврат "3.1.8.352"; + Возврат "3.1.9.43"; КонецФункции Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт - Возврат "3.1.8.371"; + Возврат "3.1.9.67"; КонецФункции @@ -104,6 +104,7 @@ ЗаполнитьПраздничныеДниРеспубликиТыва(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни); ЗаполнитьПраздничныеДниЧеченскойРеспублики(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни); ЗаполнитьПраздничныеДниЧувашскойРеспублики(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни); + ЗаполнитьПраздничныеДниКраснодарскогоКрая(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни); ЗаполнитьПраздничныеДниСтавропольскогоКрая(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни); ЗаполнитьПраздничныеДниБелгородскойОбласти(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни); ЗаполнитьПраздничныеДниПензенскойОбласти(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни); @@ -314,6 +315,18 @@ КонецПроцедуры +Процедура ЗаполнитьПраздничныеДниКраснодарскогоКрая(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни) + + Если КодПроизводственногоКалендаря <> "23" Тогда + Возврат; + КонецЕсли; + + Если НомерГода >= 2024 Тогда + ДобавитьПраздникРадоница(ПраздничныеДни, НомерГода); + КонецЕсли; + +КонецПроцедуры + Процедура ЗаполнитьПраздничныеДниСтавропольскогоКрая(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни) Если КодПроизводственногоКалендаря <> "26" Тогда diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl index 237aa7561..5afa12956 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl @@ -20,7 +20,7 @@ Если ЗначениеЗаполнено(АдресКомпоновщикаНастроек) Тогда // Хранилище приоритетнее Данные = ПолучитьИзВременногоХранилища(АдресКомпоновщикаНастроек); - АдресСхемыКомпоновки = ПоместитьВоВременноеХранилище(Данные.СхемаКомпоновки, УникальныйИдентификатор);; + АдресСхемыКомпоновки = ПоместитьВоВременноеХранилище(Данные.СхемаКомпоновки, УникальныйИдентификатор); КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемыКомпоновки)); КомпоновщикНастроек.ЗагрузитьНастройки(Данные.Настройки); diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl index 3830b313a..affa414f9 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl @@ -724,6 +724,7 @@ СтрокаЗаменыТип = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Тип(%1)", ПолноеИмяМетаданных); СтрокаЗаменыТаблицаИзменений = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.Изменения", ПолноеИмяМетаданных); + СтрокаЗаменыТаблица = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1", ПолноеИмяМетаданных); ИмяНабораПоМетаданным = СтрЗаменить(ПолноеИмяМетаданных, ".", "_"); ИмяНабора = "Автоматически_" + ИмяНабораПоМетаданным; @@ -749,7 +750,7 @@ Набор.Имя = ИмяНабора; ТекстЗапроса = СтрЗаменить(ШаблонЗапросаКоличество, "&ПолноеИмяТаблицыМетаданныхТип", СтрокаЗаменыТип); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяТаблицыМетаданных", СтрокаЗаменыТаблицаИзменений); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяТаблицыМетаданных", СтрокаЗаменыТаблица); Набор.Запрос = ТекстЗапроса; КонецЕсли; diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовXDTO/ObjectModule.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовXDTO/ObjectModule.bsl index bd5198b44..a57e4722d 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовXDTO/ObjectModule.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовXDTO/ObjectModule.bsl @@ -161,10 +161,12 @@ ПолеОбработкаДляЗагрузкиДанных = ОбработкаДляЗагрузкиДанных; КомпонентыОбмена = ОбменДаннымиXDTOСервер.ИнициализироватьКомпонентыОбмена("Отправка"); - + #Область НастройкаКомпонентовОбменаНаРаботуСУзлом КомпонентыОбмена.УзелКорреспондента = УзелДляОбмена; + ОбменДаннымиОценкаПроизводительности.Инициализировать(КомпонентыОбмена); + КомпонентыОбмена.ТолькоНастройкиXDTO = Не ОбменДаннымиСервер.НастройкаСинхронизацииЗавершена( КомпонентыОбмена.УзелКорреспондента); Если Не КомпонентыОбмена.ТолькоНастройкиXDTO Тогда @@ -242,6 +244,8 @@ ОбменДаннымиXDTOСервер.ЗаписатьВПротоколВыполнения(КомпонентыОбмена, КодОшибки); ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); + КомпонентыОбмена.ФайлОбмена = Неопределено; Отказ = Истина; КонецПопытки; @@ -263,6 +267,8 @@ Если Отказ Тогда + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); + Возврат; КонецЕсли; @@ -271,6 +277,8 @@ ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); + Если ЭтоОбменЧерезВнешнееСоединение() Тогда Если ОбработкаДляЗагрузкиДанных().РежимЗагрузкиДанных = "ЗагрузкаСообщенияДляСопоставленияДанных" Тогда Если Не КомпонентыОбмена.ФлагОшибки Тогда @@ -329,9 +337,13 @@ КонецЕсли; КомпонентыОбмена = ОбменДаннымиXDTOСервер.ИнициализироватьКомпонентыОбмена("Получение"); - + КомпонентыОбмена.УзелКорреспондента = УзелОбменаЗагрузкаДанных; + КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов = + ОбменДаннымиПовтИсп.ИспользоватьКешПубличныхИдентификаторов(УзелОбменаЗагрузкаДанных.Метаданные().Имя); + ОбменДаннымиОценкаПроизводительности.Инициализировать(КомпонентыОбмена); + ОбменДаннымиСВнешнейСистемой = Неопределено; Если ПараметрыЗагрузки.Свойство("ОбменДаннымиСВнешнейСистемой", ОбменДаннымиСВнешнейСистемой) Тогда КомпонентыОбмена.ОбменДаннымиСВнешнейСистемой = ОбменДаннымиСВнешнейСистемой; @@ -348,6 +360,7 @@ Если ПустаяСтрока(ИмяФайлаОбмена) Тогда ОбменДаннымиXDTOСервер.ЗаписатьВПротоколВыполнения(КомпонентыОбмена, 15); ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); Возврат; КонецЕсли; @@ -371,6 +384,7 @@ КонецЕсли; Если Отказ Тогда + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); Возврат; КонецЕсли; @@ -439,6 +453,8 @@ ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); + Если УстановитьБлокировкуУзлаПланаОбмена И КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда @@ -465,6 +481,11 @@ КомпонентыОбмена.ВедениеПротоколаДанных.ВыводВПротоколИнформационныхСообщений = ВыводВПротоколИнформационныхСообщений; КомпонентыОбмена.УзелКорреспондента = УзелОбменаЗагрузкаДанных; + КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов = + ОбменДаннымиПовтИсп.ИспользоватьКешПубличныхИдентификаторов(УзелОбменаЗагрузкаДанных.Метаданные().Имя); + + ОбменДаннымиОценкаПроизводительности.Инициализировать(КомпонентыОбмена); + ОбменДаннымиXDTOСервер.ПослеИнициализацииКомпонентыОбмена(КомпонентыОбмена); РежимЗагрузкиДанных = "ЗагрузкаВИнформационнуюБазу"; @@ -541,12 +562,19 @@ КомпонентыОбмена.УзелКорреспондента = УзелОбменаЗагрузкаДанных; КомпонентыОбмена.РежимЗагрузкиДанныхВИнформационнуюБазу = Ложь; + КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов = + ОбменДаннымиПовтИсп.ИспользоватьКешПубличныхИдентификаторов(УзелОбменаЗагрузкаДанных.Метаданные().Имя); + + ОбменДаннымиОценкаПроизводительности.Инициализировать(КомпонентыОбмена, Истина); + ОбменДаннымиXDTOСервер.ИнициализироватьВедениеПротоколаОбмена(КомпонентыОбмена, ИмяФайлаПротоколаОбмена); ОбменДаннымиXDTOСервер.ПослеИнициализацииКомпонентыОбмена(КомпонентыОбмена); - + Если ПустаяСтрока(ИмяФайлаОбмена) Тогда ОбменДаннымиXDTOСервер.ЗаписатьВПротоколВыполнения(КомпонентыОбмена, 15); ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); + + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); Возврат; КонецЕсли; @@ -596,14 +624,15 @@ Исключение СтрокаСообщения = НСтр("ru = 'Ошибка при анализе данных: %1'"); - СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ОбменДаннымиXDTOСервер.ЗаписатьВПротоколВыполнения(КомпонентыОбмена, СтрокаСообщения,,,,,Истина); КонецПопытки; КомпонентыОбмена.ФайлОбмена.Закрыть(); ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); - + КонецПроцедуры // Выполняет загрузку данных из файла сообщения обмена в Таблицу значений только заданных типов объектов. @@ -630,8 +659,13 @@ КомпонентыОбмена.ВедениеПротоколаДанных.ВыводВПротоколИнформационныхСообщений = ВыводВПротоколИнформационныхСообщений; КомпонентыОбмена.УзелКорреспондента = УзелОбменаЗагрузкаДанных; + КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов = + ОбменДаннымиПовтИсп.ИспользоватьКешПубличныхИдентификаторов(УзелОбменаЗагрузкаДанных.Метаданные().Имя); + ОбменДаннымиXDTOСервер.ПослеИнициализацииКомпонентыОбмена(КомпонентыОбмена); + ОбменДаннымиОценкаПроизводительности.Инициализировать(КомпонентыОбмена); + КонецЕсли; ОбменДаннымиXDTOСервер.ОткрытьФайлЗагрузки(КомпонентыОбмена, ИмяФайлаОбмена); @@ -660,8 +694,11 @@ КонецЦикла; ОбменДаннымиXDTOСервер.ПроизвестиЧтениеДанных(КомпонентыОбмена, ТаблицыДляЗагрузки); - КомпонентыОбмена.ФайлОбмена.Закрыть(); + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); + + КомпонентыОбмена.ФайлОбмена.Закрыть(); + КонецПроцедуры #КонецОбласти @@ -682,6 +719,9 @@ КомпонентыОбмена.КлючСообщенияЖурналаРегистрации = КлючСообщенияЖурналаРегистрации; КомпонентыОбмена.ВедениеПротоколаДанных.ВыводВПротоколИнформационныхСообщений = ВыводВПротоколИнформационныхСообщений; + КомпонентыОбмена.ИспользоватьКешПубличныхИдентификаторов = + ОбменДаннымиПовтИсп.ИспользоватьКешПубличныхИдентификаторов(УзелОбменаЗагрузкаДанных.Метаданные().Имя); + ОбменДаннымиXDTOСервер.ИнициализироватьВедениеПротоколаОбмена(КомпонентыОбмена, ИмяФайлаПротоколаОбмена); ОбменДаннымиXDTOСервер.ПослеИнициализацииКомпонентыОбмена(КомпонентыОбмена); @@ -689,6 +729,8 @@ ОбменДаннымиXDTOСервер.ЗаписатьВПротоколВыполнения(КомпонентыОбмена, 15); ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); + ИдентификаторФайла = ""; Иначе КаталогВыгрузки = ОбменДаннымиСервер.КаталогВременногоХранилищаФайлов(); @@ -780,6 +822,7 @@ Если КомпонентыОбмена.ФлагОшибки Тогда КомпонентыОбмена.ФайлОбмена = Неопределено; ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); Отказ = Истина; Возврат; КонецЕсли; @@ -811,6 +854,7 @@ Если Отказ Тогда ОбменДаннымиXDTOСервер.ЗаписатьВПротоколВыполнения(КомпонентыОбмена, СообщениеОбОшибке); ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); + ОбменДаннымиОценкаПроизводительности.Завершить(КомпонентыОбмена); Возврат; КонецЕсли; diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl index 3f98e5307..372eff2f0 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl @@ -531,7 +531,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(64, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, Источник, НСтр("ru = 'ПередКонвертациейОбъекта (глобальный)'")); + ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(64, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, Источник, НСтр("ru = 'ПередКонвертациейОбъекта (глобальный)'")); КонецПопытки; Если Отказ Тогда // Отказ от дальнейшей обработки правила. @@ -560,7 +561,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(41, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, Источник, "ПередВыгрузкойОбъекта"); + ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(41, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, Источник, "ПередВыгрузкойОбъекта"); КонецПопытки; Если Отказ Тогда // Отказ от дальнейшей обработки правила. @@ -935,7 +937,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(42, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, Источник, "ПриВыгрузкеОбъекта"); + ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(42, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, Источник, "ПриВыгрузкеОбъекта"); КонецПопытки; Если Отказ Тогда // Отказ от записи объекта в файл. @@ -1013,7 +1016,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(43, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, Источник, "ПослеВыгрузкиОбъекта"); + ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(43, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, Источник, "ПослеВыгрузкиОбъекта"); КонецПопытки; Если Отказ Тогда // Отказ от записи объекта в файл. @@ -1112,7 +1116,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(79, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, Источник, "ЕстьОбработчикПослеВыгрузкиВФайл"); + ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(79, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, Источник, "ЕстьОбработчикПослеВыгрузкиВФайл"); КонецПопытки; КонецЕсли; @@ -1386,7 +1391,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(31, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "ПередОбработкойВыгрузкиДанных"); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(31, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "ПередОбработкойВыгрузкиДанных"); КонецПопытки; @@ -1504,7 +1510,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "ПослеОбработкиВыгрузкиДанных"); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "ПослеОбработкиВыгрузкиДанных"); КонецПопытки; @@ -1704,7 +1711,8 @@ ЗаписатьОбъект = Ложь; - СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеВПротокол(26, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Объект, Тип); + СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеВПротокол(26, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Объект, Тип); Если Не ПродолжитьПриОшибке Тогда ВызватьИсключение СтрокаСообщенияОбОшибке; @@ -1757,7 +1765,8 @@ ЗаписатьОбъект = Ложь; - СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеВПротокол(26, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Объект, Тип); + СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеВПротокол(26, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Объект, Тип); Если Не ПродолжитьПриОшибке Тогда ВызватьИсключение СтрокаСообщенияОбОшибке; @@ -2792,7 +2801,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(22, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПередЗагрузкойДанных (конвертация)'")); + ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(22, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + НСтр("ru = 'ПередЗагрузкойДанных (конвертация)'")); Отказ = Истина; КонецПопытки; @@ -2902,7 +2912,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(23, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПослеЗагрузкиДанных (конвертация)'")); + ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(23, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + НСтр("ru = 'ПослеЗагрузкиДанных (конвертация)'")); КонецПопытки; КонецЕсли; @@ -4606,7 +4617,8 @@ ФайлПротоколаДанных = Неопределено; СтрокаСообщения = НСтр("ru = 'Ошибка при попытке записи в файл протокола данных: %1. Описание ошибки: %2'", ОбщегоНазначения.КодОсновногоЯзыка()); - СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, ИмяФайлаПротоколаОбмена, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, ИмяФайлаПротоколаОбмена, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрацииОбменДанными(СтрокаСообщения, УровеньЖурналаРегистрации.Предупреждение); КонецПопытки; @@ -5593,7 +5605,7 @@ // представлениям объекта приемника. // ТипИсточника - значение Тип - типа Тип - тип объекта источника. // -Процедура ЗагрузитьЗначения(ПравилаОбмена, Значения, ТипИсточника); +Процедура ЗагрузитьЗначения(ПравилаОбмена, Значения, ТипИсточника) Пока ПравилаОбмена.Прочитать() Цикл @@ -5728,7 +5740,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеВПротокол(11, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Строка(НоваяСтрока.Источник)); + ЗаписатьИнформациюОбОшибкеВПротокол(11, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Строка(НоваяСтрока.Источник)); КонецПопытки; @@ -6966,7 +6979,8 @@ Менеджеры[СтрокаТаблицы.Источник].ПКО = СтрокаТаблицы; КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеВПротокол(11, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Строка(СтрокаТаблицы.Источник)); + ЗаписатьИнформациюОбОшибкеВПротокол(11, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Строка(СтрокаТаблицы.Источник)); КонецПопытки; КонецЕсли; @@ -7079,7 +7093,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(29, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, Объект, "ПередУдалениемОбъектаВыборки"); + ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(29, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, Объект, "ПередУдалениемОбъектаВыборки"); КонецПопытки; @@ -7097,7 +7112,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(24, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, Объект, ""); + ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(24, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, Объект, ""); КонецПопытки; @@ -7134,7 +7150,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(27, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "", "ПередОбработкойПравилаОчистки"); + ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(27, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "", "ПередОбработкойПравилаОчистки"); КонецПопытки; @@ -7239,7 +7256,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(28, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "", "ПослеОбработкиПравилаОчистки"); + ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(28, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "", "ПослеОбработкиПравилаОчистки"); КонецПопытки; @@ -7355,7 +7373,8 @@ КонецЕсли; Исключение - ВызватьИсключение ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(22, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПередЗагрузкойДанных (конвертация)'")); + ВызватьИсключение ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(22, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + НСтр("ru = 'ПередЗагрузкойДанных (конвертация)'")); КонецПопытки; Если Отказ Тогда @@ -7481,7 +7500,8 @@ КонецЕсли; Исключение - ВызватьИсключение ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(23, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПослеЗагрузкиДанных (конвертация)'")); + ВызватьИсключение ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(23, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + НСтр("ru = 'ПослеЗагрузкиДанных (конвертация)'")); КонецПопытки; КонецЕсли; @@ -9856,7 +9876,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(53, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(53, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Неопределено, НСтр("ru = 'ПередЗагрузкойОбъекта (глобальный)'")); КонецПопытки; @@ -9892,8 +9913,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(19, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Неопределено, "ПередЗагрузкойОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(19, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Неопределено, "ПередЗагрузкойОбъекта"); КонецПопытки; @@ -10010,8 +10031,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); КонецПопытки; @@ -10063,8 +10084,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(21, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, "ПослеЗагрузкиОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(21, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, "ПослеЗагрузкиОбъекта"); КонецПопытки; @@ -10284,9 +10305,9 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(53, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Неопределено, НСтр("ru = 'ПередЗагрузкойОбъекта (глобальный)'")); - + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(53, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Неопределено, НСтр("ru = 'ПередЗагрузкойОбъекта (глобальный)'")); + КонецПопытки; Если Отказ Тогда // Отказ от загрузки объекта @@ -10320,8 +10341,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(19, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Неопределено, "ПередЗагрузкойОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(19, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Неопределено, "ПередЗагрузкойОбъекта"); КонецПопытки; @@ -10380,10 +10401,10 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); - КонецПопытки; + КонецПопытки; КонецЕсли; @@ -10544,9 +10565,9 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); - // + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); + КонецПопытки; Если ОбъектНайден И НеЗамещатьОбъект Тогда @@ -10596,8 +10617,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); КонецПопытки; @@ -10680,8 +10701,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(54, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, НСтр("ru = 'ПослеЗагрузкиОбъекта (глобальный)'")); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(54, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, НСтр("ru = 'ПослеЗагрузкиОбъекта (глобальный)'")); КонецПопытки; @@ -10705,8 +10726,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(21, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, "ПослеЗагрузкиОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(21, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, "ПослеЗагрузкиОбъекта"); КонецПопытки; @@ -10982,7 +11003,10 @@ Процедура ВыполнитьПереходНаНовыйОбмен() ИмяПланаОбмена = ИмяПланаОбмена(); - ИмяПланаОбменаДляПерехода = ПланыОбмена[ИмяПланаОбмена].ИмяПланаОбменаДляПереходаНаНовыйОбмен(); + + НастройкиСтарогоПланаОбмена = + ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена, "ИмяПланаОбменаДляПереходаНаНовыйОбмен"); + ИмяПланаОбменаДляПерехода = НастройкиСтарогоПланаОбмена.ИмяПланаОбменаДляПереходаНаНовыйОбмен; НастройкаСинхронизацииДанных = Неопределено; Если ЗначениеЗаполнено(УзелДляОбмена) Тогда @@ -11771,8 +11795,8 @@ Если КодОшибки <> 14 Тогда ЗаписатьИнформациюОбОшибкеОбработчикиПКС(КодОшибки, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, ""); КонецЕсли; - - КонецПопытки; + + КонецПопытки; КонецПроцедуры @@ -11819,8 +11843,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(55, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПередВыгрузкойСвойства", Значение); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(55, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПередВыгрузкойСвойства", Значение); КонецПопытки; @@ -11872,8 +11896,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(56, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПриВыгрузкеСвойства", Значение); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(56, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПриВыгрузкеСвойства", Значение); КонецПопытки; @@ -12026,8 +12050,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(57, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПослеВыгрузкиСвойства", Значение); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(57, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПослеВыгрузкиСвойства", Значение); КонецПопытки; @@ -12527,9 +12551,9 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(55, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПередВыгрузкойСвойства", Значение); - + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(55, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПередВыгрузкойСвойства", Значение); + КонецПопытки; Если Отказ Тогда // Отказ от выгрузки свойства @@ -12646,9 +12670,9 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(56, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПриВыгрузкеСвойства", Значение); - + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(56, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПриВыгрузкеСвойства", Значение); + КонецПопытки; Если Отказ Тогда // Отказ от выгрузки свойства @@ -12846,8 +12870,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(57, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПослеВыгрузкиСвойства", Значение); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(57, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПослеВыгрузкиСвойства", Значение); КонецПопытки; @@ -13026,7 +13050,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(65, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, НСтр("ru = 'ПередВыгрузкойОбъектаВыборки (глобальный)'"), Объект); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(65, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, НСтр("ru = 'ПередВыгрузкойОбъектаВыборки (глобальный)'"), Объект); КонецПопытки; Если Отказ Тогда @@ -13051,7 +13076,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(33, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "ПередВыгрузкойОбъектаВыборки", Объект); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(33, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "ПередВыгрузкойОбъектаВыборки", Объект); КонецПопытки; КонецЕсли; @@ -13079,7 +13105,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(69, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, НСтр("ru = 'ПослеВыгрузкиОбъектаВыборки (глобальный)'"), Объект); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(69, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, НСтр("ru = 'ПослеВыгрузкиОбъектаВыборки (глобальный)'"), Объект); КонецПопытки; КонецЕсли; @@ -13099,7 +13126,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(34, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "ПослеВыгрузкиОбъектаВыборки", Объект); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(34, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "ПослеВыгрузкиОбъектаВыборки", Объект); КонецПопытки; КонецЕсли; @@ -13299,7 +13327,9 @@ КонецЕсли; Исключение - СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(76, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПередОтправкойИнформацииОбУдалении (конвертация)'")); + СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(76, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + НСтр("ru = 'ПередОтправкойИнформацииОбУдалении (конвертация)'")); Если Не ПродолжитьПриОшибке Тогда ВызватьИсключение СтрокаСообщенияОбОшибке; @@ -13316,10 +13346,10 @@ КонецЕсли; Отбор = Новый Структура("Источник", ТипЗнч(Ссылка)); - Правила = КоллекцияПравилаКонвертации().Скопировать(Отбор, "ТипПриемника,ТипИсточника"); - Правила.Свернуть("ТипПриемника, ТипИсточника"); + ПравилаДляУдаления = КоллекцияПравилаКонвертации().Скопировать(Отбор, "ТипПриемника,ТипИсточника"); + ПравилаДляУдаления.Свернуть("ТипПриемника, ТипИсточника"); - Если Правила.Количество() = 0 Тогда + Если ПравилаДляУдаления.Количество() = 0 Тогда ЗП = ЗаписьПротоколаОбмена(45); @@ -13331,7 +13361,7 @@ КонецЕсли; - Для Каждого ПКО Из Правила Цикл + Для Каждого ПКО Из ПравилаДляУдаления Цикл ЗаписатьВФайлУдалениеОбъекта(Ссылка, ПКО.ТипПриемника, ПКО.ТипИсточника); КонецЦикла; @@ -15421,6 +15451,8 @@ Процедура УдалитьЛишниеЭлементыИзСоответствия(СтруктураДанных) + МассивКлючейДляУдаления = Новый Массив; + Для Каждого Элемент Из СтруктураДанных Цикл Если ТипЗнч(Элемент.Значение) = ТипСоответствие Тогда @@ -15428,12 +15460,16 @@ УдалитьЛишниеЭлементыИзСоответствия(Элемент.Значение); Если Элемент.Значение.Количество() = 0 Тогда - СтруктураДанных.Удалить(Элемент.Ключ); + МассивКлючейДляУдаления.Добавить(Элемент.Ключ); КонецЕсли; - КонецЕсли; + КонецЕсли; - КонецЦикла; + КонецЦикла; + + Для Каждого Ключ Из МассивКлючейДляУдаления Цикл + СтруктураДанных.Удалить(Ключ); + КонецЦикла; КонецПроцедуры @@ -16002,7 +16038,9 @@ КонецЕсли; Исключение - СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(75, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПослеЗагрузкиПравилОбмена (конвертация)'")); + СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(75, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + НСтр("ru = 'ПослеЗагрузкиПравилОбмена (конвертация)'")); Если Не ПродолжитьПриОшибке Тогда ВызватьИсключение СтрокаСообщенияОбОшибке; @@ -16073,7 +16111,10 @@ КонецЕсли; Исключение - СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(77, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПриПолученииИнформацииОбУдалении (конвертация)'")); + СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(77, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + НСтр("ru = 'ПриПолученииИнформацииОбУдалении (конвертация)'")); + Отказ = Истина; Если Не ПродолжитьПриОшибке Тогда @@ -16911,7 +16952,9 @@ КонецЕсли; Исключение - ВызватьИсключение ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(176, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПослеПолученияИнформацииОбУзлахОбмена (конвертация)'")); + ВызватьИсключение ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(176, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + НСтр("ru = 'ПослеПолученияИнформацииОбУзлахОбмена (конвертация)'")); КонецПопытки; КонецЕсли; @@ -17371,7 +17414,10 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(62, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПередВыгрузкойДанных (конвертация)'")); + ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(62, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + НСтр("ru = 'ПередВыгрузкойДанных (конвертация)'")); + Отказ = Истина; КонецПопытки; @@ -17505,7 +17551,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(63, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПослеВыгрузкиДанных (конвертация)'")); + ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(63, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПослеВыгрузкиДанных (конвертация)'")); КонецПопытки; КонецЕсли; @@ -17575,7 +17622,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(175, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), НСтр("ru = 'ПередПолучениемИзмененныхОбъектов (конвертация)'")); + ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(175, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + НСтр("ru = 'ПередПолучениемИзмененныхОбъектов (конвертация)'")); Возврат; КонецПопытки; @@ -17688,7 +17736,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПравилоВыгрузкиДанныхПредыдущее["Имя"], "ПослеОбработкиВыгрузкиДанных"); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПравилоВыгрузкиДанныхПредыдущее["Имя"], "ПослеОбработкиВыгрузкиДанных"); КонецПопытки; КонецЕсли; @@ -17749,7 +17798,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(31, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПравилоВыгрузкиДанных.Имя, "ПередОбработкойВыгрузкиДанных"); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(31, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПравилоВыгрузкиДанных.Имя, "ПередОбработкойВыгрузкиДанных"); КонецПопытки; @@ -17844,7 +17894,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПравилоВыгрузкиДанных.Имя, "ПослеОбработкиВыгрузкиДанных"); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПравилоВыгрузкиДанных.Имя, "ПослеОбработкиВыгрузкиДанных"); КонецПопытки; КонецЕсли; diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/ObjectModule.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/ObjectModule.bsl index 66d36346e..37f99eba3 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/ObjectModule.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/ObjectModule.bsl @@ -841,11 +841,13 @@ Функция ЕстьРасширениеВСообщениеОбмена(ЧтениеСообщения) - Если НЕ УзелИнформационнойБазы.Метаданные().ВключатьРасширенияКонфигурации - Или Не ОбменДаннымиСервер.ЭтоПодчиненныйУзелРИБ() + Если Не ОбменДаннымиСервер.ЭтоПодчиненныйУзелРИБ() Или ОбщегоНазначения.РазделениеВключено() Тогда Возврат Ложь; КонецЕсли; + + ЕстьРасширения = Ложь; + ЕстьРасширенияИзменяющиеСтруктуруДанных = Ложь; ФайлОбмена = Новый ЧтениеXML; @@ -853,32 +855,33 @@ Пока ФайлОбмена.Прочитать() Цикл + Если ФайлОбмена.Имя = "v8de:Data" + Или ФайлОбмена.ЛокальноеИмя = "v8de:ConfigurationExtensions" + И ФайлОбмена.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда + + Прервать; + + КонецЕсли; + Если ФайлОбмена.Имя = "v8de:ConfigurationExtensions" Тогда - Пока ФайлОбмена.Прочитать() Цикл - - Если ФайлОбмена.Имя = "v8md:Metadata" Или ФайлОбмена.Имя = "v8de:ConfigurationExtensionDeletion" Тогда - - Возврат Истина; - - ИначеЕсли ФайлОбмена.ЛокальноеИмя = "v8de:ConfigurationExtensions" - И ФайлОбмена.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда - - Возврат Ложь; - - КонецЕсли; - - КонецЦикла; + ЕстьРасширения = Истина; + Продолжить; - ИначеЕсли ФайлОбмена.Имя = "v8de:Data" Тогда + КонецЕсли; + + Если ЕстьРасширения И ФайлОбмена.Имя = "v8md:Metadata" + Или ФайлОбмена.Имя = "v8de:ConfigurationExtensionDeletion" Тогда - Возврат Ложь; + ЕстьРасширенияИзменяющиеСтруктуруДанных = Истина; + Прервать; КонецЕсли; КонецЦикла; - Возврат Ложь; + Возврат ЕстьРасширенияИзменяющиеСтруктуруДанных + Или ЕстьРасширения И Не УзелИнформационнойБазы.Метаданные().ВключатьРасширенияКонфигурации; КонецФункции diff --git a/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Form.form b/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Form.form index 7febbb2b9..c7b39a3fe 100644 --- a/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Form.form +++ b/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Form.form @@ -244,6 +244,10 @@ <horizontalAlign>Left</horizontalAlign> <autoFill>true</autoFill> </autoCommandBar> + <handlers> + <event>OnOpen</event> + <name>ПриОткрытии</name> + </handlers> <handlers> <event>BeforeClose</event> <name>ПередЗакрытием</name> diff --git a/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Module.bsl b/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Module.bsl index d72fc676f..fd2514cdf 100644 --- a/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Module.bsl +++ b/SSL/src/DataProcessors/КонструкторФормул/Forms/РедактированиеФормулы/Module.bsl @@ -44,6 +44,16 @@ КонецПроцедуры +&НаКлиенте +Процедура ПриОткрытии(Отказ) + РеквизитСписокОператоров = ЭтотОбъект[ИмяСпискаОператоров()]; + ЭлементСписокОператоров = Элементы[ИмяСпискаОператоров()]; + ЭлементыОператоры = РеквизитСписокОператоров.ПолучитьЭлементы(); + Если ЭлементыОператоры.Количество() > 0 Тогда + ЭлементСписокОператоров.Развернуть(ЭлементыОператоры[0].ПолучитьИдентификатор()); + КонецЕсли; +КонецПроцедуры + &НаКлиенте Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) @@ -374,6 +384,5 @@ Возврат ТекстСообщения; КонецФункции - - + #КонецОбласти diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Help/ru.html b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Help/ru.html index 93f0f861e..2f2616e19 100644 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Help/ru.html @@ -31,7 +31,7 @@ <ul><li>Можно отказаться от настройки автоматического резервного копирования, если резервное копирование будет осуществляться сторонними средствами, например, средствами СУБД при клиент-серверном варианте работы, или сторонними программами резервного копирования. </li> <li>Для этого выключите флажок <strong>Выполнять автоматическое резервное копирование</strong>. </li></ul><h3>Резервное копирование при хранении файлов в томах</h3> -<ul><li>При хранении файлов в томах на диске для этих файлов также необходимо проводить резервное копирование, другими средствами.</li></ul><h3>Ошибки при резервном копировании</h3> +<ul><li>При хранении файлов в томах для этих файлов также необходимо проводить резервное копирование, другими средствами.</li></ul><h3>Ошибки при резервном копировании</h3> <p>Если резервное копирование завершилось неудачей, а во временном log-файле имеется запись: "<strong>Исключение в createConnection: Error, Automation server can't create object</strong>", то, скорее всего, используется 32-разрядная компонента comcntr.dll на компьютере под управлением 64-разрядной операционной системы. Для устранения данной проблемы необходимо взять 64-разрядную компоненту comcntr.dll из поставки 1С Предприятие x64 Сервер и зарегистрировать ее, запустив из командной строки:</p> <p class="SourceCode">regsvr32 <каталог 64-разрядного comcntr.dll>\comcntr.dll</p> <p class="Important" style="MARGIN: 11.35pt 0cm 8.5pt"><font size="1"><font color="black"><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 120%; mso-fareast-language: RU"><span style="LINE-HEIGHT: 120%; mso-bidi-font-size: 10.5pt"><span style="FONT-SIZE: 8pt; FONT-FAMILY: Verdana; COLOR: black; mso-fareast-language: RU; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: RU; mso-bidi-language: AR-SA">Важно: для того чтобы войти в информационную базу, если резервное копирование не выполнилось, необходимо запустить 1С:Предприятие с параметрами: <strong>ENTERPRISE /F <путь к информационной базе> /C РазрешитьРаботуПользователей /UC РезервноеКопирование</strong>.</span></span></span></font></font></p> diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Form.form b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Form.form index aa8b27987..efb5c2057 100644 --- a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Form.form +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Form.form @@ -59,7 +59,7 @@ <title> <key>ru</key> <value>Будет разрешен доступ к %1 "%2" с помощью автоматического REST-сервиса. -Для того, чтобы сторонняя программа смогла работать с этим объектом через автоматический REST-сервис требуется дополнительно разрешить доступ через автоматический REST-сервис к следующим объектам:</value> +Для того чтобы сторонние программы смогли работать с ним через автоматический REST-сервис, требуется дополнительно разрешить доступ к зависимым объектам.</value> true true @@ -82,6 +82,7 @@ true Label + 80 true Left @@ -122,7 +123,7 @@ <key>ru</key> <value>Вы решили запретить доступ к %1 "%2" с помощью автоматического REST-сервиса. -Этот объект обязательно должен быть разрешен для использования с помощью стандартного REST-сервиса для того, чтобы через автоматический REST-сервис сторонние программы могли взаимодействовать со следующими объектами:</value> +Однако этот объект должен быть разрешен для того, чтобы сторонние программы могли взаимодействовать с зависимыми объектами.</value> true true @@ -145,6 +146,7 @@ true Label + 80 true Left @@ -201,6 +203,158 @@ Auto + + ГруппаСтраницыПодвал + 70 + + ГруппаСтраницаПодвалДобавление + 72 + + ДекорацияТекстВопросаДобавление + 48 + + <key>ru</key> + <value>Разрешить доступ к зависимым объектам через автоматический REST-сервис?</value> + + true + true + + true + + + ДекорацияТекстВопросаДобавлениеРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + + ДекорацияТекстВопросаДобавлениеКонтекстноеМеню + 49 + true + + Label + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница подвал добавление</value> + + + ГруппаСтраницаПодвалДобавлениеРасширеннаяПодсказка + 73 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + ГруппаСтраницаПодвалУдаление + 74 + + ДекорацияТекстВопросаУдаление + 76 + + <key>ru</key> + <value>Запретить доступ к зависимым объектам через автоматический REST-сервис?</value> + + true + true + + true + + + ДекорацияТекстВопросаУдалениеРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + + ДекорацияТекстВопросаУдалениеКонтекстноеМеню + 77 + true + + Label + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница подвал удаление</value> + + + ГруппаСтраницаПодвалУдалениеРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Страницы подвал</value> + + true + + ГруппаСтраницыПодвалРасширеннаяПодсказка + 71 + Label + true + true + + Left + + + Pages + + Auto + + ОбъектыМетаданных 11 @@ -225,7 +379,7 @@ 36 <key>ru</key> - <value>Объект</value> + <value>Зависимый объект</value> true true @@ -256,6 +410,7 @@ Left true + 4 true true true @@ -425,6 +580,32 @@ ОбъектыМетаданныхКонтекстноеМеню 12 + + ОбъектыМетаданныхКонтекстноеМенюВывестиСписок + 79 + true + true + + true + + + ОбъектыМетаданныхКонтекстноеМенюВывестиСписокРасширеннаяПодсказка + 80 + Label + true + true + + Left + + + Form.Item.ОбъектыМетаданных.StandardCommand.OutputList + Normal + Auto + true + true + UserCmds + Auto + true Tree @@ -439,6 +620,8 @@ AutoUse true true + false + false false true Auto @@ -449,158 +632,6 @@ true true - - ГруппаСтраницыПодвал - 70 - - ГруппаСтраницаПодвалДобавление - 72 - - ДекорацияТекстВопросаДобавление - 48 - - <key>ru</key> - <value>Разрешить доступ и к этим объектам через автоматический REST-сервис?</value> - - true - true - - true - - - ДекорацияТекстВопросаДобавлениеРасширеннаяПодсказка - 50 - Label - true - true - - Left - - - - ДекорацияТекстВопросаДобавлениеКонтекстноеМеню - 49 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>Страница подвал добавление</value> - - - ГруппаСтраницаПодвалДобавлениеРасширеннаяПодсказка - 73 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - - ГруппаСтраницаПодвалУдаление - 74 - - ДекорацияТекстВопросаУдаление - 76 - - <key>ru</key> - <value>Запретить доступ к этим объектам через автоматический REST-сервис?</value> - - true - true - - true - - - ДекорацияТекстВопросаУдалениеРасширеннаяПодсказка - 78 - Label - true - true - - Left - - - - ДекорацияТекстВопросаУдалениеКонтекстноеМеню - 77 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>Страница подвал удаление</value> - - - ГруппаСтраницаПодвалУдалениеРасширеннаяПодсказка - 75 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - true - true - - true - - - <key>ru</key> - <value>Страницы подвал</value> - - true - - ГруппаСтраницыПодвалРасширеннаяПодсказка - 71 - Label - true - true - - Left - - - Pages - - Auto - - Кнопки 51 @@ -789,7 +820,7 @@ Представление <key>ru</key> - <value>Представление</value> + <value>Зависимый объект</value> 2 diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl index 1cd32fa0a..53fee2e8c 100644 --- a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl @@ -108,6 +108,8 @@ Для Каждого СтрокаДерева Из Дерево.Строки Цикл Если СтрокаДерева.Строки.Количество() = 0 Тогда УдаляемыеСтроки.Добавить(СтрокаДерева); + Иначе + СтрокаДерева.Строки.Сортировать("Представление"); КонецЕсли; КонецЦикла; Для Каждого УдаляемаяСтрока Из УдаляемыеСтроки Цикл diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl index 761b3b68b..6ec742b7b 100644 --- a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl @@ -360,7 +360,7 @@ Состав.Добавить(Строка.ПолноеИмя); КонецЦикла; - ОбщегоНазначения.ВыполнитьВБезопасномРежиме("УстановитьСоставСтандартногоИнтерфейсаOData(Параметры);", Состав); + УстановитьСоставСтандартногоИнтерфейсаOData(Состав); Модифицированность = Ложь; ЗафиксироватьТранзакцию(); diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаСпискаОбработчиков/Module.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаСпискаОбработчиков/Module.bsl index aba77b84f..fe56542b1 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаСпискаОбработчиков/Module.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаСпискаОбработчиков/Module.bsl @@ -2759,7 +2759,12 @@ Функция ТекстИнформацииОбОбъектах(Обработчик, ИмяНабораОбъектов, РазметкаКода, ТэгиОбработчика) Отбор = Новый Структура("Ссылка", Обработчик.Ссылка); - ОбъектыОбработчика = Объект[ИмяНабораОбъектов].Выгрузить(Отбор); + Если ИмяНабораОбъектов = "НовыеОбъекты" Тогда + Отбор.Вставить("НовыеОбъекты", Истина); + ОбъектыОбработчика = Объект["ИзменяемыеОбъекты"].Выгрузить(Отбор); + Иначе + ОбъектыОбработчика = Объект[ИмяНабораОбъектов].Выгрузить(Отбор); + КонецЕсли; Если ИмяНабораОбъектов = "БлокируемыеОбъекты" Тогда Отбор.Вставить("БлокироватьИнтерфейс", Истина); БлокируемыеОбъекты = Объект["ИзменяемыеОбъекты"].Выгрузить(Отбор); @@ -2837,7 +2842,7 @@ Функция ПолныйПутьМетаданныхОбъекта(ИмяОбъекта) ЧастиИмени = СтрРазделить(ИмяОбъекта, "."); - ЧастиИмени[0] = МножественноеЧисло[ЧастиИмени[0]]; + ЧастиИмени[0] = МножественноеЧисло.Получить(ЧастиИмени[0]); ЧастиИмени.Вставить(0, "Метаданные"); ЧастиИмени.Добавить("ПолноеИмя()"); Возврат СтрСоединить(ЧастиИмени,"."); @@ -4267,7 +4272,7 @@ Объект.ИзменяемыеОбъекты.Загрузить(Данные.ИзменяемыеОбъекты); Объект.БлокируемыеОбъекты.Загрузить(Данные.БлокируемыеОбъекты); Объект.ПриоритетыВыполнения.Загрузить(Данные.ПриоритетыВыполнения); - Объект.КонфликтыОбработчиков.Загрузить(Данные.КонфликтыОбработчиков);; + Объект.КонфликтыОбработчиков.Загрузить(Данные.КонфликтыОбработчиков); Обработка = ОбъектОбработки(); ОбновитьДанныеФормы(Обработка); diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Form.form index b07898e36..c67d1a0e3 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Form.form @@ -137,7 +137,7 @@ 1877 <key>ru</key> - <value>Для экономии трафика при автоподборе и проверке адресов, а также при работе без доступа к Интернету возможно загружать и обновлять адресные сведения в программу. Требуется до 2 Гб места на диске.</value> + <value>Для экономии трафика при автоподборе и проверке адресов, а также при работе без доступа к Интернету возможно загружать и обновлять адресные сведения в программу. Требуется до 2 Гб места на компьютере.</value> Label true diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form index c28254b45..3fe19a89d 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form @@ -1960,7 +1960,7 @@ 2104 <key>ru</key> - <value>Обновление программы из файла на локальном диске, в сетевом каталоге или установка исправлений (патчей).</value> + <value>Обновление программы из файла на компьютере, в сетевом каталоге или установка исправлений (патчей).</value> Label true diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form index e76688d7a..e3542f92a 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form @@ -809,17 +809,17 @@ - ГруппаДополнительныеРеквизитыИСведения + ГруппаСвойства 1801 - ГруппаИспользоватьДополнительныеРеквизитыИСведения + ГруппаСвойстваЛевая 1802 - ИспользоватьДополнительныеРеквизитыИСведения + ИспользоватьСвойства 1803 <key>ru</key> - <value>Дополнительные реквизиты и сведения</value> + <value>Свойства</value> true true @@ -832,15 +832,15 @@ Right ru - Добавление реквизитов и сведений к объектам программы. + Создание и настройка дополнительных текстовых, числовых и прочих свойств у справочников, документов и других объектов программы. ShowBottom OnChange - ИспользоватьДополнительныеРеквизитыИСведенияПриИзменении + ИспользоватьСвойстваПриИзменении - ИспользоватьДополнительныеРеквизитыИСведенияExtendedTooltip + ИспользоватьСвойстваРасширеннаяПодсказка 1848 Label true @@ -850,7 +850,7 @@ - ИспользоватьДополнительныеРеквизитыИСведенияКонтекстноеМеню + ИспользоватьСвойстваКонтекстноеМеню 1804 true @@ -861,102 +861,6 @@ true - true - true - - true - - - <key>ru</key> - <value>Использовать дополнительные реквизиты и сведения</value> - - 43 - false - - ГруппаИспользоватьДополнительныеРеквизитыИСведенияExtendedTooltip - 1847 - Label - true - true - - Left - - - UsualGroup - - Vertical - true - true - Auto - Auto - - - - ГруппаДополнительныеРеквизитыИлиСведения - 1820 - - ГруппаДополнительныеРеквизиты - 1821 - - ДополнительныеРеквизиты - 2051 - true - true - - true - - - ДополнительныеРеквизитыРасширеннаяПодсказка - 2052 - - <key>ru</key> - <value>Создание реквизитов, их изменение, описание свойств. -Эти реквизиты отображаются в формах.</value> - - Label - true - - Left - - - Hyperlink - Form.Command.ДополнительныеРеквизиты - Normal - Auto - true - true - UserCmds - ShowBottom - Auto - - true - true - - true - - - <key>ru</key> - <value>Дополнительные реквизиты</value> - - - ГруппаДополнительныеРеквизитыExtendedTooltip - 1859 - Label - true - true - - Left - - - UsualGroup - - Vertical - true - true - Auto - Auto - - ГруппаДополнительныеСведения 1825 @@ -973,8 +877,7 @@ 2054 <key>ru</key> - <value>Создание сведений, их изменение, описание свойств. -Эти сведения отображаются в отдельной форме, которая открывается специальной командой.</value> + <value>Редактируются в отдельной форме, открываемой из справочника или документа. Права на их редактирование и просмотр настраиваются независимо от прав на объект-владелец.</value> Label true @@ -1025,6 +928,163 @@ true + + <key>ru</key> + <value>Свойства левая</value> + + 43 + false + + ГруппаСвойстваЛеваяРасширеннаяПодсказка + 1847 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + + + + ГруппаСвойстваПравая + 1820 + + ГруппаДополнительныеРеквизиты + 1821 + + ДополнительныеРеквизиты + 2051 + true + true + + true + + + ДополнительныеРеквизитыРасширеннаяПодсказка + 2052 + + <key>ru</key> + <value>Размещаются в виде полей в формах справочников и документов. Их редактирование и просмотр определены правами на объект-владелец.</value> + + Label + true + + Left + + + Hyperlink + Form.Command.ДополнительныеРеквизиты + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + + true + true + + true + + + <key>ru</key> + <value>Дополнительные реквизиты</value> + + + ГруппаДополнительныеРеквизитыExtendedTooltip + 1859 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + + + + ГруппаМетки + 2258 + + Метки + 2260 + true + true + + true + + + МеткиРасширеннаяПодсказка + 2261 + + <key>ru</key> + <value>Позволяют помечать справочники и документы разноцветными значками-метками. Их редактирование и просмотр определены правами на объект-владелец.</value> + + Label + true + + Left + + + Hyperlink + Form.Command.Метки + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + + true + true + + true + + + <key>ru</key> + <value>Метки</value> + + + ГруппаМеткиРасширеннаяПодсказка + 2259 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + + + true + true + + true + <key>ru</key> <value>Дополнительные реквизиты или сведения</value> @@ -1032,7 +1092,7 @@ <width>43</width> <horizontalStretch>false</horizontalStretch> <extendedTooltip> - <name>ГруппаДополнительныеРеквизитыИлиСведенияExtendedTooltip</name> + <name>ГруппаСвойстваПраваяРасширеннаяПодсказка</name> <id>1858</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -1058,10 +1118,10 @@ </userVisible> <title> <key>ru</key> - <value>Дополнительные реквизиты и сведения</value> + <value>Свойства</value> - ГруппаДополнительныеРеквизитыИСведенияExtendedTooltip + ГруппаСвойстваРасширеннаяПодсказка 1846 Label true @@ -3887,6 +3947,24 @@ Auto Auto + + Метки + + <key>ru</key> + <value>Метки</value> + + 9 + + true + + + + Метки + + + Auto + Auto + diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl index f176f26f5..e8532a209 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl @@ -55,7 +55,7 @@ КонецЕсли; Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда - Элементы.ГруппаДополнительныеРеквизитыИСведения.Видимость = Ложь; + Элементы.ГруппаСвойства.Видимость = Ложь; КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS") Тогда @@ -156,7 +156,7 @@ КонецПроцедуры &НаКлиенте -Процедура ИспользоватьДополнительныеРеквизитыИСведенияПриИзменении(Элемент) +Процедура ИспользоватьСвойстваПриИзменении(Элемент) Подключаемый_ПриИзмененииРеквизита(Элемент); КонецПроцедуры @@ -417,7 +417,7 @@ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда МодульУправлениеСвойствамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеСвойствамиКлиент"); - МодульУправлениеСвойствамиКлиент.ОткрытьСписокСвойств(Истина); + МодульУправлениеСвойствамиКлиент.ОткрытьСписокСвойств(Команда.Имя); КонецЕсли; КонецПроцедуры @@ -427,7 +427,17 @@ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда МодульУправлениеСвойствамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеСвойствамиКлиент"); - МодульУправлениеСвойствамиКлиент.ОткрытьСписокСвойств(); + МодульУправлениеСвойствамиКлиент.ОткрытьСписокСвойств(Команда.Имя); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Метки(Команда) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда + МодульУправлениеСвойствамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеСвойствамиКлиент"); + МодульУправлениеСвойствамиКлиент.ОткрытьСписокСвойств(Команда.Имя); КонецЕсли; КонецПроцедуры @@ -660,8 +670,9 @@ Если (РеквизитПутьКДанным = "НаборКонстант.ИспользоватьДополнительныеРеквизитыИСведения" Или РеквизитПутьКДанным = "") И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда - - Элементы.ГруппаДополнительныеРеквизитыИлиСведения.Доступность = + Элементы.ГруппаДополнительныеСведения.Доступность = + НаборКонстант.ИспользоватьДополнительныеРеквизитыИСведения; + Элементы.ГруппаСвойстваПравая.Доступность = НаборКонстант.ИспользоватьДополнительныеРеквизитыИСведения; КонецЕсли; diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form index 094f15277..1a520228f 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form @@ -616,7 +616,7 @@ 1659 <key>ru</key> - <value>Основная учетная запись электронной почты для отправки уведомлений из программы.</value> + <value>Электронная почта для рассылки уведомлений из программы.</value> Label true diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Help/ru.html index d3737f2ce..ca38b10f9 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Help/ru.html @@ -18,7 +18,7 @@ TD {
      • Запретить отображение небезопасного содержимого в письмах - включите флажок, для того чтобы при наличии небезопасных элементов в письмах не предлагать их отображение. Входящие письма могут содержать элементы, позволяющие отправителю скрытно отслеживать действия с письмом, в частности, время просмотра и некоторые параметры устройства, на котором письмо было прочитано. К небезопасным элементам относятся загружаемые из Интернета картинки или встроенные скрипты. В целях безопасности такие элементы автоматически отключаются при просмотре письма.
    • -
    • Настройка системной учетной записи - переход к настройке основной учетной записи электронной почты для отправки уведомлений из программы. +
    • Настройка системной учетной записи - переход к настройке электронной почты для рассылки различных уведомлений из программы.
    • Настройки почты - администрирование всех учетных записей электронной почты.

    Отправка SMS

    Заметки, напоминания, анкетирование, шаблоны сообщений

    diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl index da0a9ce83..fc5aaa272 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl @@ -70,7 +70,7 @@ КонецЕсли; НастройкиОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); - НастройкиОжидания.ВыводитьОкноОжидания = Ложь;; + НастройкиОжидания.ВыводитьОкноОжидания = Ложь; Обработчик = Новый ОписаниеОповещения("ПослеИзмененияПрефикса", ЭтотОбъект); ДлительныеОперацииКлиент.ОжидатьЗавершение(ФоновоеЗадание, Обработчик, НастройкиОжидания); diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form index ba5ba851b..477eb419f 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form @@ -584,6 +584,117 @@ Auto
    + + ОценкаПроизводительности + 2110 + + ИспользоватьОценкуПроизводительности + 2112 + + <key>ru</key> + <value>Оценка производительности</value> + + true + true + + true + + + НаборКонстант.ИспользоватьОценкуПроизводительностиСинхронизацииДанных + + Right + ShowBottom + + OnChange + ИспользоватьОценкуПроизводительностиПриИзменении + + + ИспользоватьОценкуПроизводительностиРасширеннаяПодсказка + 2114 + Label + true + true + + Left + + + + ИспользоватьОценкуПроизводительностиКонтекстноеМеню + 2113 + true + + CheckBoxField + Enter + true + Left + true + + + + СеансыОбменов + 2115 + + <key>ru</key> + <value>Сеансы обменов</value> + + true + true + + true + + + СеансыОбменовРасширеннаяПодсказка + 2116 + Label + true + true + + Left + + + Hyperlink + Catalog.СеансыОбменовДанными.Command.СеансыОбменовДанными + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Оценка производительности</value> + + + ru + Включение оценки производительности для синхронизации в формате EnterpriseData. + + ShowBottom + + ОценкаПроизводительностиРасширеннаяПодсказка + 2111 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + true true diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl index 46c50abe7..d7e622655 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl @@ -117,6 +117,7 @@ НаборКонстант.ИспользоватьАвтономнуюРаботуВМоделиСервиса = Ложь; НаборКонстант.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой = Ложь; НаборКонстант.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете = Ложь; + НаборКонстант.ИспользоватьОценкуПроизводительностиСинхронизацииДанных = Ложь; КонецЕсли; Подключаемый_ПриИзмененииРеквизита(Элемент); @@ -144,6 +145,13 @@ КонецПроцедуры +&НаКлиенте +Процедура ИспользоватьОценкуПроизводительностиПриИзменении(Элемент) + + Подключаемый_ПриИзмененииРеквизита(Элемент); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -224,7 +232,14 @@ Элементы.ГруппаВременныеКаталогиКластераСерверов.Доступность = НаборКонстант.ИспользоватьСинхронизациюДанных; КонецЕсли; + Если (РеквизитПутьКДанным = "НаборКонстант.ИспользоватьОценкуПроизводительностиСинхронизацииДанных" + Или РеквизитПутьКДанным = "НаборКонстант.ИспользоватьСинхронизациюДанных" + Или РеквизитПутьКДанным = "") Тогда + Элементы.СеансыОбменов.Доступность = НаборКонстант.ИспользоватьОценкуПроизводительностиСинхронизацииДанных; + КонецЕсли; + КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form index d9cbc12de..ad9990aee 100644 --- a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form @@ -46,7 +46,7 @@ ru - Между томами на диске + Между томами ПеренестиМеждуТомами @@ -55,7 +55,7 @@ ru - Из информационной базы в тома на диске + Из информационной базы в тома ПеренестиВТома @@ -64,7 +64,7 @@ ru - Из томов на диске в информационную базу + Из томов в информационную базу ПеренестиВБазу diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form index b2604ffb0..e2d8588bf 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form @@ -5399,6 +5399,138 @@ true + + КоличествоПорций + 43 + + Number + + 5 + true + + + + true + + + true + + + + ОбщееКоличествоВыбранных + 44 + + Number + + 10 + true + + + + true + + + true + + + + ОбщееКоличествоОбработанных + 45 + + Number + + 10 + true + + + + true + + + true + + + + ПрогрессУдаления + 46 + + ValueTable + + + true + + + true + + + НомерСеанса + 1 + + Number + + 10 + true + + + + true + + + true + + + + КоличествоОбработанных + 2 + + Number + + 10 + true + + + + true + + + true + + + + КоличествоУдаленных + 3 + + Number + + 10 + true + + + + true + + + true + + + + + ОбщееКоличествоУдаленных + 47 + + Number + + 10 + true + + + + true + + + true + + ОтметитьКакОригинал diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl index 42dbbbfec..536b0af7f 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl @@ -1558,22 +1558,40 @@ КонецПроцедуры &НаСервере -Функция ПарыЗаменДублей() - ПарыЗамен = Новый Соответствие; +Функция ПараметрыУдаленияДублей() + ПараметрыУдаления = Новый Соответствие; + ИндексПорции = 0; ДеревоДублей = РеквизитФормыВЗначение("НайденныеДубли"); ФильтрПоиска = Новый Структура("Основной", Истина); Для Каждого ГруппыДублей Из ДеревоДублей.Строки Цикл + ПарыЗамен = Новый Соответствие; Оригинал = ГруппыДублей.Строки.НайтиСтроки(ФильтрПоиска)[0].Ссылка; Для Каждого Дубль Из ГруппыДублей.Строки Цикл - Если Дубль.Пометка = 1 И Дубль.Ссылка <> Оригинал Тогда + Если Дубль.Пометка = 1 И Дубль.Ссылка <> Оригинал Тогда ПарыЗамен[Дубль.Ссылка] = Оригинал; КонецЕсли; КонецЦикла; + КоличествоЗамен = ПарыЗамен.Количество(); + Если КоличествоЗамен = 0 Тогда + Продолжить; + КонецЕсли; + + ОбщееКоличествоВыбранных = ОбщееКоличествоВыбранных + КоличествоЗамен; + + ПараметрыПроцедуры = Новый Структура; + ПараметрыПроцедуры.Вставить("УчитыватьПрикладныеПравила", УчитыватьПрикладныеПравила); + ПараметрыПроцедуры.Вставить("СпособУдаления", СпособУдаления); + ПараметрыПроцедуры.Вставить("ПарыЗамен", ПарыЗамен); + ПараметрыВызоваСервера = Новый Массив; + ПараметрыВызоваСервера.Добавить(ПараметрыПроцедуры); + ПараметрыУдаления.Вставить(ИндексПорции, ПараметрыВызоваСервера); + ИндексПорции = ИндексПорции + 1; КонецЦикла; - Возврат ПарыЗамен; + Возврат ПараметрыУдаления; + КонецФункции &НаСервереБезКонтекста @@ -1672,7 +1690,7 @@ НастройкиОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); НастройкиОжидания.ВыводитьОкноОжидания = Ложь; НастройкиОжидания.ВыводитьПрогрессВыполнения = Истина; - НастройкиОжидания.ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("НайтиИУдалитьДублиПрогресс", ЭтотОбъект);; + НастройкиОжидания.ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("НайтиИУдалитьДублиПрогресс", ЭтотОбъект); Обработчик = Новый ОписаниеОповещения("НайтиИУдалитьДублиЗавершение", ЭтотОбъект); ДлительныеОперацииКлиент.ОжидатьЗавершение(Задание, Обработчик, НастройкиОжидания); @@ -1702,10 +1720,15 @@ ПараметрыПроцедуры.Вставить("НастройкиКомпоновщикаПредварительногоОтбора", КомпоновщикПредварительногоОтбора.Настройки); ПараметрыПроцедуры.Вставить("СкрыватьНезначимыеДубли", СкрыватьНезначимыеДубли); + НастройкиЗапуска = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); + НастройкиЗапуска.НаименованиеФоновогоЗадания = НаименованиеМетода; + + Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, НастройкиЗапуска); + ИначеЕсли ТекущаяСтраница = Элементы.ШагВыполнениеУдаления Тогда - ПарыЗаменДублей = ПарыЗаменДублей(); - Если ПарыЗаменДублей.Количество() = 0 Тогда + ПараметрыУдаления = ПараметрыУдаленияДублей(); + Если ПараметрыУдаления.Количество() = 0 Тогда ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Выберите хотя бы одну группу дублей.'"),, "НайденныеДубли"); Возврат Неопределено; КонецЕсли; @@ -1714,18 +1737,18 @@ ИмяПроцедуры = РеквизитФормыВЗначение("Объект").Метаданные().ПолноеИмя() + ".МодульОбъекта.ФоновоеУдалениеДублей"; НаименованиеМетода = НСтр("ru = 'Поиск и удаление дублей: Удаление дублей'"); - ПараметрыПроцедуры.Вставить("ПарыЗамен", ПарыЗаменДублей); - ПараметрыПроцедуры.Вставить("СпособУдаления", СпособУдаления); + + НастройкиЗапуска = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); + НастройкиЗапуска.НаименованиеФоновогоЗадания = НаименованиеМетода; + + КоличествоПорций = ПараметрыУдаления.Количество(); + Возврат ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков(ИмяПроцедуры, НастройкиЗапуска, ПараметрыУдаления); Иначе ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Некорректная операция %1.'"), Строка(ТекущаяСтраница)); КонецЕсли; - НастройкиЗапуска = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); - НастройкиЗапуска.НаименованиеФоновогоЗадания = НаименованиеМетода; - - Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, НастройкиЗапуска); КонецФункции &НаКлиенте @@ -1750,8 +1773,18 @@ ИначеЕсли ТекущаяСтраница = Элементы.ШагВыполнениеУдаления Тогда + ПараметрыПрогресса = Неопределено; + Если Прогресс.Прогресс.Свойство("ДополнительныеПараметры", ПараметрыПрогресса) + И ПараметрыПрогресса = "ПрогрессМногопоточногоПроцесса" Тогда + Возврат; + КонецЕсли; + Если НЕ ПустаяСтрока(Прогресс.Прогресс.Текст) Тогда - Сообщение = Прогресс.Прогресс.Текст; + Если ПараметрыПрогресса = Неопределено Тогда + Сообщение = Прогресс.Прогресс.Текст; + Иначе + Сообщение = ТекстПрогресса(ПараметрыПрогресса, Прогресс.Прогресс.Текст); + КонецЕсли; Иначе Сообщение = НСтр("ru = 'Обработка дублей...'"); КонецЕсли; @@ -1762,6 +1795,47 @@ КонецПроцедуры +&НаСервере +Функция ТекстПрогресса(ПараметрыПрогресса, ИсходныйТекстПрогресса) + + ЭтоЗамена = СтрНачинаетсяС(ИсходныйТекстПрогресса, НСтр("ru = 'Замена дублей'")); + ИмяРеквизитаПрогресса = ?(ЭтоЗамена, "КоличествоОбработанных", "КоличествоУдаленных"); + Отбор = Новый Структура; + Отбор.Вставить("НомерСеанса", ПараметрыПрогресса.НомерСеанса); + СтрокиТаблицы = ПрогрессУдаления.НайтиСтроки(Отбор); + Если СтрокиТаблицы.Количество() = 0 Тогда + СтрокаТаблицы = ПрогрессУдаления.Добавить(); + СтрокаТаблицы.НомерСеанса = ПараметрыПрогресса.НомерСеанса; + ПредыдущееКоличествоОбработанных = 0; + Иначе + СтрокаТаблицы = СтрокиТаблицы[0]; + ПредыдущееКоличествоОбработанных = СтрокаТаблицы[ИмяРеквизитаПрогресса]; + КонецЕсли; + СтрокаТаблицы[ИмяРеквизитаПрогресса] = ПараметрыПрогресса.КоличествоОбработанных; + ДобавляемыйПрогресс = (ПараметрыПрогресса.КоличествоОбработанных - ПредыдущееКоличествоОбработанных); + Если ЭтоЗамена Тогда + ОбщееКоличествоОбработанных = ОбщееКоличествоОбработанных + ДобавляемыйПрогресс; + Иначе + ОбщееКоличествоУдаленных = ОбщееКоличествоУдаленных + ДобавляемыйПрогресс; + КонецЕсли; + + ТекстПрогресса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Замена дублей... обработано (%1 из %2)'"), + ОбщееКоличествоОбработанных, + ОбщееКоличествоВыбранных); + Если СпособУдаления = "Непосредственно" Тогда + ТекстПрогресса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 + |Удаление дублей... обработано (%2 из %3)'"), + ТекстПрогресса, + ОбщееКоличествоУдаленных, + ОбщееКоличествоВыбранных); + КонецЕсли; + + Возврат ТекстПрогресса; + +КонецФункции + &НаКлиенте Процедура НайтиИУдалитьДублиЗавершение(Задание, ДополнительныеПараметры) Экспорт НастройкиМастера.ПоказатьДиалогПередЗакрытием = Ложь; @@ -1900,7 +1974,19 @@ &НаСервере Функция ЗаполнитьРезультатыУдаленияДублей(Знач АдресРезультата) // ТаблицаОшибок - результат функции ЗаменитьСсылки модуля. - ТаблицаОшибок = ПолучитьИзВременногоХранилища(АдресРезультата); + РезультатВыполненияВФоне = ПолучитьИзВременногоХранилища(АдресРезультата); + ТаблицаОшибок = ПолучитьИзВременногоХранилища(РезультатВыполненияВФоне[0].АдресРезультата); + Для ИндексПорции = 1 По КоличествоПорций - 1 Цикл + АдресРезультатаПорции = РезультатВыполненияВФоне[ИндексПорции].АдресРезультата; + ТаблицаОшибокПорции = ПолучитьИзВременногоХранилища(АдресРезультатаПорции); + + ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ТаблицаОшибокПорции, ТаблицаОшибок); + КонецЦикла; + ОбщееКоличествоОбработанных = 0; + ОбщееКоличествоУдаленных = 0; + ОбщееКоличествоВыбранных = 0; + КоличествоПорций = 0; + ПрогрессУдаления.Очистить(); Если ЭтоАдресВременногоХранилища(АдресРезультатаЗамены) Тогда УдалитьИзВременногоХранилища(АдресРезультатаЗамены); diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl index be39aba0d..828c1c291 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl @@ -64,7 +64,6 @@ // Функция ГруппыДублей(Знач ПараметрыПоиска, Знач ЭталонныйОбъект = Неопределено) Экспорт - Перем МестаИспользования; ПолноеИмяОбъектаМетаданных = ПараметрыПоиска.ОбластьПоискаДублей; ОбъектМетаданных = ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных); @@ -86,10 +85,6 @@ // Вызываем обработчик ПараметрыПоискаДублей. ЕстьПравилаПоиска = Ложь; - ИменаПолейДляСравненияНаРавенство = ""; // Имена реквизитов, по которым сравниваем по равенству. - ИменаПолейДляСравненияНаПодобие = ""; // Имена реквизитов, по которым будем нечетко сравнивать. - ИменаДополнительныхПолей = ""; // Имена реквизитов, дополнительно заказанные прикладными правилами. - КоличествоЭлементовДляСравнения = 0; // Сколько отдавать в прикладные правила для расчета. ДополнительныеПараметры = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыПоиска, "ДополнительныеПараметры"); МенеджерОбластиПоиска = Неопределено; @@ -108,6 +103,8 @@ ЕстьПравилаПоиска = ЕстьПравилаПоиска Или ПараметрыПоиска.УчитыватьПрикладныеПравила; КонецЕсли; + ИменаДополнительныхПолей = ""; // Имена реквизитов, дополнительно заказанные прикладными правилами. + КоличествоЭлементовДляСравнения = 0; // Сколько отдавать в прикладные правила для расчета. Если ЕстьПравилаПоиска Тогда ВсеДополнительныеПоля = Новый Соответствие; Для Каждого Ограничение Из ПрикладныеПараметрыПоиска.ОграниченияСравнения Цикл @@ -123,198 +120,13 @@ КоличествоЭлементовДляСравнения = ПрикладныеПараметрыПоиска.КоличествоЭлементовДляСравнения; КонецЕсли; - Для Каждого Строка Из ПараметрыПоиска.ПравилаПоиска Цикл - Если Строка.Правило = "Равно" Тогда - ИменаПолейДляСравненияНаРавенство = ИменаПолейДляСравненияНаРавенство + ", " + Строка.Реквизит; - ИначеЕсли Строка.Правило = "Подобно" Тогда - ИменаПолейДляСравненияНаПодобие = ИменаПолейДляСравненияНаПодобие + ", " + Строка.Реквизит; - КонецЕсли - КонецЦикла; - ИменаПолейДляСравненияНаРавенство = Сред(ИменаПолейДляСравненияНаРавенство, 2); - ИменаПолейДляСравненияНаПодобие = Сред(ИменаПолейДляСравненияНаПодобие, 2); - - ПоляДляСравненияНаРавенство = Новый Структура(ИменаПолейДляСравненияНаРавенство); - ПоляДляСравненияНаПодобие = Новый Структура(ИменаПолейДляСравненияНаПодобие); - ДополнительныеПоля = Новый Структура(ИменаДополнительныхПолей); - - // Формируем условия отбора. - Характеристики = Новый Структура; - Характеристики.Вставить("ДлинаКода", 0); - Характеристики.Вставить("ДлинаНомера", 0); - Характеристики.Вставить("ДлинаНаименования", 0); - Характеристики.Вставить("Иерархический", Ложь); - Характеристики.Вставить("ВидИерархии", Неопределено); - - ЗаполнитьЗначенияСвойств(Характеристики, ОбъектМетаданных); - - ЕстьНаименование = Характеристики.ДлинаНаименования > 0; - ЕстьКод = Характеристики.ДлинаКода > 0; - ЕстьНомер = Характеристики.ДлинаНомера > 0; - - // Задаем псевдонимы дополнительных полей, чтобы не пересекались с остальными полями. - ТаблицаКандидатов = ТаблицаКандидатов(); - - ИменаПолейВЗапросе = ДоступныеРеквизитыОтбора(ОбъектМетаданных); - Если Не ЕстьКод Тогда - Если ЕстьНомер Тогда - ИменаПолейВЗапросе = ИменаПолейВЗапросе + ", Номер КАК Код"; - Иначе - ИменаПолейВЗапросе = ИменаПолейВЗапросе + ", НЕОПРЕДЕЛЕНО КАК Код"; - КонецЕсли; - КонецЕсли; - Если Не ЕстьНаименование Тогда - ИменаПолейВЗапросе = ИменаПолейВЗапросе + ", Ссылка КАК Наименование"; - КонецЕсли; - ИменаПолейВВыборе = СтрРазделить(ИменаПолейДляСравненияНаРавенство + "," + ИменаПолейДляСравненияНаПодобие, ",", Ложь); - - РасшифровкаДополнительныхПолей = Новый Соответствие; - ПорядковыйНомер = 0; - Для Каждого ПолеТаблицы Из ДополнительныеПоля Цикл - ИмяПоля = ПолеТаблицы.Ключ; - Псевдоним = "Доп" + Формат(ПорядковыйНомер, "ЧН=; ЧГ=") + "_" + ИмяПоля; - РасшифровкаДополнительныхПолей.Вставить(Псевдоним, ИмяПоля); - - ИменаПолейВЗапросе = ИменаПолейВЗапросе + "," + ИмяПоля + " КАК " + Псевдоним; - ИменаПолейВВыборе.Добавить(Псевдоним); - ПорядковыйНомер = ПорядковыйНомер + 1; - КонецЦикла; - - ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ #Таблица"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "*", ИменаПолейВЗапросе); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#Таблица", ПолноеИмяОбъектаМетаданных); - - // Наполнение схемы. - СхемаКД = Новый СхемаКомпоновкиДанных; - - ИсточникДанныхСхемыКД = СхемаКД.ИсточникиДанных.Добавить(); - ИсточникДанныхСхемыКД.Имя = "ИсточникДанных1"; - ИсточникДанныхСхемыКД.ТипИсточникаДанных = "Local"; - - НаборДанных = СхемаКД.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); - НаборДанных.Имя = "НаборДанных1"; - НаборДанных.ИсточникДанных = "ИсточникДанных1"; - НаборДанных.Запрос = ТекстЗапроса; - НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина; - - // Инициализация компоновщика. - КомпоновщикНастроекКД = Новый КомпоновщикНастроекКомпоновкиДанных; - КомпоновщикНастроекКД.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКД)); - КомпоновщикНастроекКД.ЗагрузитьНастройки(ПараметрыПоиска.КомпоновщикПредварительногоОтбора.Настройки); - НастройкиКД = КомпоновщикНастроекКД.Настройки; - - // Поля. - НастройкиКД.Выбор.Элементы.Очистить(); - Для Каждого ИмяПоля Из ИменаПолейВВыборе Цикл - ПолеКД = Новый ПолеКомпоновкиДанных(СокрЛП(ИмяПоля)); - ДоступноеПолеКД = НастройкиКД.ДоступныеПоляВыбора.НайтиПоле(ПолеКД); - Если ДоступноеПолеКД = Неопределено Тогда - ЗаписьЖурналаРегистрации(ПоискИУдалениеДублей.НаименованиеПодсистемы(Ложь), - УровеньЖурналаРегистрации.Предупреждение, ОбъектМетаданных, ЭталонныйОбъект, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Поле ""%1"" не существует.'"), Строка(ПолеКД))); - Продолжить; - КонецЕсли; - ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); - ВыбранноеПолеКД.Поле = ПолеКД; - КонецЦикла; - ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); - ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("Ссылка"); - ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); - ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("Код"); - ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); - ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("Наименование"); - ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); - ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("ПометкаУдаления"); - Если Характеристики.Иерархический - И Характеристики.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов Тогда - - ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); - ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("ЭтоГруппа"); - - ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); - ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("Родитель"); - КонецЕсли; - - // Сортировки. - НастройкиКД.Порядок.Элементы.Очистить(); - ЭлементПорядкаКД = НастройкиКД.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных")); - ЭлементПорядкаКД.Поле = Новый ПолеКомпоновкиДанных("Ссылка"); - - // Отборы. - // - Если ОбъектМетаданных = Метаданные.Справочники.Пользователи Тогда - ЭлементОтбораКД = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Служебный"); - ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ЭлементОтбораКД.ПравоеЗначение = Ложь; - КонецЕсли; - - // Структура. - НастройкиКД.Структура.Очистить(); - ГруппировкаКД = НастройкиКД.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); - ГруппировкаКД.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); - ГруппировкаКД.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); - - // Чтение данных оригиналов. - Если ЭталонныйОбъект = Неопределено Тогда - ВыборкаЭталонныхОбъектов = ИнициализироватьВыборкуКД(СхемаКД, КомпоновщикНастроекКД.ПолучитьНастройки()); - Иначе - ТаблицаЗначений = ОбъектВТаблицуЗначений(ЭталонныйОбъект, РасшифровкаДополнительныхПолей); - Если Не ЕстьКод И Не ЕстьНомер Тогда - ТаблицаЗначений.Колонки.Добавить("Код", Новый ОписаниеТипов("Неопределено")); - КонецЕсли; - ВыборкаЭталонныхОбъектов = ИнициализироватьВыборкуТЗ(ТаблицаЗначений); - КонецЕсли; - - // Подготовка СКД к чтению данных дублей. - ОтборыКандидатов = Новый Соответствие; - ИменаПолей = СтрРазделить(ИменаПолейДляСравненияНаРавенство, ",", Ложь); - Для Каждого ИмяПоля Из ИменаПолей Цикл - ИмяПоля = СокрЛП(ИмяПоля); - ЭлементОтбораКД = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); - ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборыКандидатов.Вставить(ИмяПоля, ЭлементОтбораКД); - КонецЦикла; - ЭлементОтбораКД = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); - ЭлементОтбораКД.ВидСравнения = ?(ЭталонныйОбъект = Неопределено, ВидСравненияКомпоновкиДанных.Больше, ВидСравненияКомпоновкиДанных.НеРавно); - ОтборыКандидатов.Вставить("Ссылка", ЭлементОтбораКД); - - Если Характеристики.Иерархический - И Характеристики.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов Тогда - - ЭлементОтбораКД = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоГруппа"); - ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборыКандидатов.Вставить("ЭтоГруппа", ЭлементОтбораКД); - - ГруппаИЛИ = НастройкиКД.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); - ГруппаИЛИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; - - ГруппаИ = ГруппаИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); - ГруппаИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; - - ЭлементОтбораКД = ГруппаИ.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоГруппа"); - ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ЭлементОтбораКД.ПравоеЗначение = Ложь; - - ГруппаИ = ГруппаИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); - ГруппаИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; - - ЭлементОтбораКД = ГруппаИ.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоГруппа"); - ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ЭлементОтбораКД.ПравоеЗначение = Истина; - - ЭлементОтбораКД = ГруппаИ.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель"); - ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборыКандидатов.Вставить("Родитель", ЭлементОтбораКД); - КонецЕсли; + Характеристики = ХарактеристикиОбъектаМетаданных(ОбъектМетаданных); + СтруктураЗапроса = ТекстЗапросаПоискаДублей(ПараметрыПоиска, Характеристики, ИменаДополнительныхПолей); + СхемаЗапроса = СхемаКомпоновкиДанныхПоискаДублей(ПараметрыПоиска, Характеристики, СтруктураЗапроса, ЭталонныйОбъект); // Результат и цикл поиска - КоллекцияДублей = КоллекцияДублей(ПараметрыПоиска, ПоляДляСравненияНаПодобие, ПоляДляСравненияНаРавенство); + КоллекцияДублей = КоллекцияДублей(ПараметрыПоиска, СтруктураЗапроса.ИменаПолейДляСравненияНаПодобие, + СтруктураЗапроса.ИменаПолейДляСравненияНаРавенство); ТаблицаДублей = КоллекцияДублей.ТаблицаДублей; Результат = Новый Структура; @@ -323,40 +135,34 @@ Результат.Вставить("ВозвращеноМеньшеЧемНайдено", Ложь); Результат.Вставить("МестаИспользования"); - СтруктураПолей = Новый Структура; - СтруктураПолей.Вставить("РасшифровкаДополнительныхПолей", РасшифровкаДополнительныхПолей); - СтруктураПолей.Вставить("СтруктураПолейИдентичности", ПоляДляСравненияНаРавенство); - СтруктураПолей.Вставить("СтруктураПолейПодобия", ПоляДляСравненияНаПодобие); - СтруктураПолей.Вставить("СписокПолейИдентичности", ИменаПолейДляСравненияНаРавенство); - СтруктураПолей.Вставить("СписокПолейПодобия", ИменаПолейДляСравненияНаПодобие); + ТаблицаКандидатов = ТаблицаКандидатов(); - Пока СледующийЭлементВыборки(ВыборкаЭталонныхОбъектов) Цикл - ЭталонныйЭлемент = ВыборкаЭталонныхОбъектов.ТекущийЭлемент; + Пока СледующийЭлементВыборки(СхемаЗапроса.ВыборкаЭталонныхОбъектов) Цикл + ЭталонныйЭлемент = СхемаЗапроса.ВыборкаЭталонныхОбъектов.ТекущийЭлемент; // Установка отборов для выбора кандидатов. - Для Каждого ЭлементОтбора Из ОтборыКандидатов Цикл + Для Каждого ЭлементОтбора Из СхемаЗапроса.ОтборыКандидатов Цикл ЭлементОтбора.Значение.ПравоеЗначение = ЭталонныйЭлемент[ЭлементОтбора.Ключ]; КонецЦикла; - // Выборка кандидатов данных из СУБД. - ВыборкаКандидатов = ИнициализироватьВыборкуКД(СхемаКД, НастройкиКД); + // Выборка кандидатов дублей. + ВыборкаКандидатов = ИнициализироватьВыборкуКД(СхемаЗапроса.СхемаКД, СхемаЗапроса.НастройкиКД); КандидатыДублей = ВыборкаКандидатов.ПроцессорВыводаКД.Вывести(ВыборкаКандидатов.ПроцессорКД); - Если ПоляДляСравненияНаПодобие.Количество() > 0 Тогда + Если СтруктураЗапроса.ИменаПолейДляСравненияНаПодобие.Количество() > 0 Тогда СравнениеСтрокНаПодобие = ПрикладныеПараметрыПоиска.СравнениеСтрокНаПодобие; Попытка ПараметрыПоискаПохожихСтрок = ПоискИУдалениеДублей.ПараметрыПоискаПохожихСтрок(); Исключение Результат.ОписаниеОшибки = - НСтр("ru = 'Не удалось подключить компоненту нечеткого поиска. Подробнее см. в журнале регистрации.'"); + НСтр("ru = 'Не удалось подключить компоненту для нечеткого поиска дублей. Подробнее см. в журнале регистрации.'"); Возврат Результат; КонецПопытки; ЗаполнитьЗначенияСвойств(ПараметрыПоискаПохожихСтрок, СравнениеСтрокНаПодобие); - Для Каждого ПолеТаблицы Из ПоляДляСравненияНаПодобие Цикл + Для Каждого ИмяПоля Из СтруктураЗапроса.ИменаПолейДляСравненияНаПодобие Цикл - ИмяПоля = ПолеТаблицы.Ключ; ЗначенияПоля = Новый Массив; Для каждого СтрокаТаблицы Из КандидатыДублей Цикл ЗначенияПоля.Добавить(СтрЗаменить(СтрокаТаблицы[ИмяПоля], "~", "\u126")); @@ -377,14 +183,14 @@ ЭлементДубль = КандидатыДублей.Получить(ИндексСтроки); Если ЕстьПравилаПоиска Тогда - ДобавитьСтрокуКандидатов(ТаблицаКандидатов, ЭталонныйЭлемент, ЭлементДубль, СтруктураПолей); + ДобавитьСтрокуКандидатов(ТаблицаКандидатов, ЭталонныйЭлемент, ЭлементДубль, СтруктураЗапроса); Если ТаблицаКандидатов.Количество() = КоличествоЭлементовДляСравнения Тогда ЗарегистрироватьДублиПоПрикладнымПравилам(КоллекцияДублей, ПолноеИмяОбъектаМетаданных, МенеджерОбластиПоиска, - ЭталонныйЭлемент, ТаблицаКандидатов, СтруктураПолей, ДополнительныеПараметры); + ЭталонныйЭлемент, ТаблицаКандидатов, СтруктураЗапроса, ДополнительныеПараметры); ТаблицаКандидатов.Очистить(); КонецЕсли; Иначе - ЗарегистрироватьДубль(КоллекцияДублей, ЭталонныйЭлемент, ЭлементДубль, СтруктураПолей); + ЗарегистрироватьДубль(КоллекцияДублей, ЭталонныйЭлемент, ЭлементДубль, СтруктураЗапроса); КонецЕсли; КонецЦикла; @@ -394,14 +200,14 @@ Для Каждого ЭлементДубль Из КандидатыДублей Цикл Если ЕстьПравилаПоиска Тогда - ДобавитьСтрокуКандидатов(ТаблицаКандидатов, ЭталонныйЭлемент, ЭлементДубль, СтруктураПолей); + ДобавитьСтрокуКандидатов(ТаблицаКандидатов, ЭталонныйЭлемент, ЭлементДубль, СтруктураЗапроса); Если ТаблицаКандидатов.Количество() = КоличествоЭлементовДляСравнения Тогда ЗарегистрироватьДублиПоПрикладнымПравилам(ТаблицаДублей, ПолноеИмяОбъектаМетаданных, МенеджерОбластиПоиска, - ЭталонныйЭлемент, ТаблицаКандидатов, СтруктураПолей, ДополнительныеПараметры); + ЭталонныйЭлемент, ТаблицаКандидатов, СтруктураЗапроса, ДополнительныеПараметры); ТаблицаКандидатов.Очистить(); КонецЕсли; Иначе - ЗарегистрироватьДубль(КоллекцияДублей, ЭталонныйЭлемент, ЭлементДубль, СтруктураПолей); + ЗарегистрироватьДубль(КоллекцияДублей, ЭталонныйЭлемент, ЭлементДубль, СтруктураЗапроса); КонецЕсли; КонецЦикла; @@ -410,7 +216,7 @@ // Обрабатываем остаток таблицы для прикладных правил. Если ЕстьПравилаПоиска Тогда ЗарегистрироватьДублиПоПрикладнымПравилам(КоллекцияДублей, ПолноеИмяОбъектаМетаданных, МенеджерОбластиПоиска, - ЭталонныйЭлемент, ТаблицаКандидатов, СтруктураПолей, ДополнительныеПараметры); + ЭталонныйЭлемент, ТаблицаКандидатов, СтруктураЗапроса, ДополнительныеПараметры); ТаблицаКандидатов.Очистить(); КонецЕсли; @@ -498,13 +304,16 @@ #Область СлужебныеПроцедурыИФункции +// АПК:299-выкл Вызывается как многопоточное фоновое задание в процедуре НайтиИУдалитьДубли из формы ПоискДублей. + // Обработчик фонового удаления дублей. // // Параметры: -// Параметры - Структура - данные для анализа. -// АдресРезультата - Строка - адрес во временном хранилище для сохранения результата. +// Параметры - Структура - данные для анализа. +// Возвращаемое значение: +// см. ОбщегоНазначения.ЗаменитьСсылки // -Процедура ФоновоеУдалениеДублей(Знач Параметры, Знач АдресРезультата) Экспорт +Функция ФоновоеУдалениеДублей(Знач Параметры) Экспорт ПараметрыЗамены = Новый Структура; ПараметрыЗамены.Вставить("ВключатьБизнесЛогику", Ложь); @@ -512,9 +321,12 @@ ПараметрыЗамены.Вставить("ЗаменаПарыВТранзакции", Ложь); ПараметрыЗамены.Вставить("СпособУдаления", Параметры.СпособУдаления); - ЗаменитьСсылки(Параметры.ПарыЗамен, ПараметрыЗамены, АдресРезультата); + Результат = ОбщегоНазначения.ЗаменитьСсылки(Параметры.ПарыЗамен, ПараметрыЗамены); + Возврат Результат; -КонецПроцедуры +КонецФункции + +// АПК:299-вкл // Преобразуем объект в таблицу для помещения в запрос. Функция ОбъектВТаблицуЗначений(Знач ОбъектДанных, Знач РасшифровкаДополнительныхПолей) @@ -547,50 +359,47 @@ // Дополнительный анализ кандидатов в дубли с помощью обработчика ПриПоискеДублей. // -Процедура ЗарегистрироватьДублиПоПрикладнымПравилам(СтрокиДереваРезультата, Знач ПолноеИмяОбъектаМетаданных, Знач МенеджерОбластиПоиска, - Знач ОсновныеДанные, Знач ТаблицаКандидатов, Знач СтруктураПолей, Знач ДополнительныеПараметры) +Процедура ЗарегистрироватьДублиПоПрикладнымПравилам(КоллекцияДублей, Знач ПолноеИмяОбъектаМетаданных, + Знач МенеджерОбластиПоиска, Знач ОсновныеДанные, Знач ДублиЭлементов, Знач СтруктураЗапроса, Знач ДополнительныеПараметры) - Если ТаблицаКандидатов.Количество() = 0 Тогда + Если ДублиЭлементов.Количество() = 0 Тогда Возврат; КонецЕсли; Если МенеджерОбластиПоиска <> Неопределено Тогда - МенеджерОбластиПоиска.ПриПоискеДублей(ТаблицаКандидатов, ДополнительныеПараметры); + МенеджерОбластиПоиска.ПриПоискеДублей(ДублиЭлементов, ДополнительныеПараметры); КонецЕсли; - ПоискИУдалениеДублейПереопределяемый.ПриПоискеДублей(ПолноеИмяОбъектаМетаданных, ТаблицаКандидатов, ДополнительныеПараметры); + ПоискИУдалениеДублейПереопределяемый.ПриПоискеДублей(ПолноеИмяОбъектаМетаданных, ДублиЭлементов, ДополнительныеПараметры); Данные1 = Новый Структура; Данные2 = Новый Структура; - Найденные = ТаблицаКандидатов.НайтиСтроки(Новый Структура("ЭтоДубли", Истина)); - Для Каждого ПараКандидатов Из Найденные Цикл - Данные1.Вставить("Ссылка", ПараКандидатов.Ссылка1); - Данные1.Вставить("Код", ПараКандидатов.Поля1.Код); - Наименование1 = ПараКандидатов.Поля1.Наименование;// Строка - Данные1.Вставить("Наименование", Наименование1); - Данные1.Вставить("ПометкаУдаления", ПараКандидатов.Поля1.ПометкаУдаления); + НайденныеДубли = ДублиЭлементов.НайтиСтроки(Новый Структура("ЭтоДубли", Истина)); + Для Каждого Дубль Из НайденныеДубли Цикл + Данные1.Вставить("Ссылка", Дубль.Ссылка1); + Данные1.Вставить("Код", Дубль.Поля1.Код); + Данные1.Вставить("Наименование", Дубль.Поля1.Наименование); + Данные1.Вставить("ПометкаУдаления", Дубль.Поля1.ПометкаУдаления); - Данные2.Вставить("Ссылка", ПараКандидатов.Ссылка2); - Данные2.Вставить("Код", ПараКандидатов.Поля2.Код); - Данные2.Вставить("Наименование", ПараКандидатов.Поля2.Наименование); - Данные2.Вставить("ПометкаУдаления", ПараКандидатов.Поля2.ПометкаУдаления); + Данные2.Вставить("Ссылка", Дубль.Ссылка2); + Данные2.Вставить("Код", Дубль.Поля2.Код); + Данные2.Вставить("Наименование", Дубль.Поля2.Наименование); + Данные2.Вставить("ПометкаУдаления", Дубль.Поля2.ПометкаУдаления); - Для Каждого КлючЗначение Из СтруктураПолей.СтруктураПолейИдентичности Цикл - ИмяПоля = КлючЗначение.Ключ; - Данные1.Вставить(ИмяПоля, ПараКандидатов.Поля1[ИмяПоля]); - Данные2.Вставить(ИмяПоля, ПараКандидатов.Поля2[ИмяПоля]); + Для Каждого ИмяПоля Из СтруктураЗапроса.ИменаПолейДляСравненияНаРавенство Цикл + Данные1.Вставить(ИмяПоля, Дубль.Поля1[ИмяПоля]); + Данные2.Вставить(ИмяПоля, Дубль.Поля2[ИмяПоля]); КонецЦикла; - Для Каждого КлючЗначение Из СтруктураПолей.СтруктураПолейПодобия Цикл - ИмяПоля = КлючЗначение.Ключ; - Данные1.Вставить(ИмяПоля, ПараКандидатов.Поля1[ИмяПоля]); - Данные2.Вставить(ИмяПоля, ПараКандидатов.Поля2[ИмяПоля]); + Для Каждого ИмяПоля Из СтруктураЗапроса.ИменаПолейДляСравненияНаПодобие Цикл + Данные1.Вставить(ИмяПоля, Дубль.Поля1[ИмяПоля]); + Данные2.Вставить(ИмяПоля, Дубль.Поля2[ИмяПоля]); КонецЦикла; - ЗарегистрироватьДубль(СтрокиДереваРезультата, Данные1, Данные2, СтруктураПолей); + ЗарегистрироватьДубль(КоллекцияДублей, Данные1, Данные2, СтруктураЗапроса); КонецЦикла; КонецПроцедуры -// Добавить строку в таблицу кандидатов для прикладного метода. +// Добавить строку в таблицу кандидатов для прикладного варианта поиска дублей. // // Описание // @@ -606,11 +415,12 @@ // * Наименование - Строка // * Код - Строка // * ПометкаУдаления - Булево -// СтруктураПолей - Структура +// СтруктураЗапроса - Структура +// // Возвращаемое значение: // СтрокаТаблицыЗначений // -Функция ДобавитьСтрокуКандидатов(ТаблицаКандидатов, Знач ДанныеОсновногоЭлемента, Знач ДанныеКандидата, Знач СтруктураПолей) +Функция ДобавитьСтрокуКандидатов(ТаблицаКандидатов, Знач ДанныеОсновногоЭлемента, Знач ДанныеКандидата, Знач СтруктураЗапроса) Строка = ТаблицаКандидатов.Добавить(); Строка.ЭтоДубли = Ложь; @@ -622,19 +432,17 @@ Строка.Поля2 = Новый Структура("Код, Наименование, ПометкаУдаления", ДанныеКандидата.Код, ДанныеКандидата.Наименование, ДанныеКандидата.ПометкаУдаления); - Для Каждого КлючЗначение Из СтруктураПолей.СтруктураПолейИдентичности Цикл - ИмяПоля = КлючЗначение.Ключ; + Для Каждого ИмяПоля Из СтруктураЗапроса.ИменаПолейДляСравненияНаРавенство Цикл Строка.Поля1.Вставить(ИмяПоля, ДанныеОсновногоЭлемента[ИмяПоля]); Строка.Поля2.Вставить(ИмяПоля, ДанныеКандидата[ИмяПоля]); КонецЦикла; - Для Каждого КлючЗначение Из СтруктураПолей.СтруктураПолейПодобия Цикл - ИмяПоля = КлючЗначение.Ключ; + Для Каждого ИмяПоля Из СтруктураЗапроса.ИменаПолейДляСравненияНаПодобие Цикл Строка.Поля1.Вставить(ИмяПоля, ДанныеОсновногоЭлемента[ИмяПоля]); Строка.Поля2.Вставить(ИмяПоля, ДанныеКандидата[ИмяПоля]); КонецЦикла; - Для Каждого КлючЗначение Из СтруктураПолей.РасшифровкаДополнительныхПолей Цикл + Для Каждого КлючЗначение Из СтруктураЗапроса.РасшифровкаДополнительныхПолей Цикл ИмяКолонки = КлючЗначение.Значение; ИмяПоля = КлючЗначение.Ключ; @@ -647,7 +455,7 @@ // Добавить в дерево результатов найденный дубль. // -Процедура ЗарегистрироватьДубль(КоллекцияДублей, Знач Элемент1, Знач Элемент2, Знач СтруктураПолей) +Процедура ЗарегистрироватьДубль(КоллекцияДублей, Знач Элемент1, Знач Элемент2, Знач СтруктураЗапроса) ТаблицаДублей = КоллекцияДублей.ТаблицаДублей; НезначимыеДубли = КоллекцияДублей.НезначимыеДубли; @@ -681,7 +489,9 @@ СсылкаГруппыДублей = ГруппаДублей.Ссылка; КонецЕсли; - СписокСвойств = "Ссылка,Код,Наименование,ПометкаУдаления," + СтруктураПолей.СписокПолейИдентичности + "," + СтруктураПолей.СписокПолейПодобия; + СписокСвойств = "Ссылка,Код,Наименование,ПометкаУдаления," + + СтрСоединить(СтруктураЗапроса.ИменаПолейДляСравненияНаРавенство, ",") + "," + + СтрСоединить(СтруктураЗапроса.ИменаПолейДляСравненияНаПодобие, ","); Если Не Дубль1Зарегистрирован Тогда @@ -713,30 +523,270 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Для автономной работы. - -// [ОбщегоНазначения.МестаИспользования] Функция МестаИспользованияСсылок(Знач НаборСсылок, Знач АдресРезультата = "") Возврат ОбщегоНазначения.МестаИспользования(НаборСсылок, АдресРезультата); КонецФункции -// [ОбщегоНазначения.ЗаменитьСсылки] -Процедура ЗаменитьСсылки(Знач ПарыЗамен, Знач Параметры = Неопределено, Знач АдресРезультата = "") - - Результат = ОбщегоНазначения.ЗаменитьСсылки(ПарыЗамен, Параметры); - - Если АдресРезультата <> "" Тогда - ПоместитьВоВременноеХранилище(Результат, АдресРезультата); - КонецЕсли; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Прочие. +// Параметры: +// ОбъектМетаданных Объект метаданных +// +// Возвращаемое значение: +// Структура: +// * ДлинаКода - Число +// * ДлинаНомера - Число +// * ДлинаНаименования - Число +// * Иерархический - Булево +// * ВидИерархии - ВидИерархии +// * ЕстьНаименование - Булево +// * ЕстьКод - Булево +// * ЕстьНомер - Булево +// +Функция ХарактеристикиОбъектаМетаданных(ОбъектМетаданных) + + Результат = Новый Структура; + Результат.Вставить("ДлинаКода", 0); + Результат.Вставить("ДлинаНомера", 0); + Результат.Вставить("ДлинаНаименования", 0); + Результат.Вставить("Иерархический", Ложь); + Результат.Вставить("ВидИерархии", Неопределено); + ЗаполнитьЗначенияСвойств(Результат, ОбъектМетаданных); + Результат.Вставить("ЕстьНаименование", Результат.ДлинаНаименования > 0); + Результат.Вставить("ЕстьКод", Результат.ДлинаКода > 0); + Результат.Вставить("ЕстьНомер", Результат.ДлинаНомера > 0); + Результат.Вставить("ПолноеИмяОбъектаМетаданных", ОбъектМетаданных.ПолноеИмя()); + Результат.Вставить("ОбъектМетаданных", ОбъектМетаданных); + Возврат Результат; + +КонецФункции + +// Параметры: +// ПараметрыПоиска - см. ПоискИУдалениеДублей.ПараметрыПоискаДублей +// Характеристики - см. ХарактеристикиОбъектаМетаданных +// +// Возвращаемое значение: +// Структура: +// * ТекстЗапроса - Строка +// * РасшифровкаДополнительныхПолей - Соответствие +// * ИменаПолейДляСравненияНаРавенство - Массив из Строка +// * ИменаПолейДляСравненияНаПодобие - Массив из Строка +// * ИменаПолейВВыборе - Массив из Строка +// +Функция ТекстЗапросаПоискаДублей(ПараметрыПоиска, Характеристики, ИменаДополнительныхПолей) + + ИменаПолейДляСравненияНаРавенство = Новый Массив; // Имена реквизитов, по которым сравниваем по равенству. + ИменаПолейДляСравненияНаПодобие = Новый Массив; // Имена реквизитов, по которым будем нечетко сравнивать. + Для Каждого Строка Из ПараметрыПоиска.ПравилаПоиска Цикл + Если Строка.Правило = "Равно" Тогда + ИменаПолейДляСравненияНаРавенство.Добавить(Строка.Реквизит); + ИначеЕсли Строка.Правило = "Подобно" Тогда + ИменаПолейДляСравненияНаПодобие.Добавить(Строка.Реквизит); + КонецЕсли + КонецЦикла; + + // Задаем псевдонимы дополнительных полей, чтобы не пересекались с остальными полями. + ИменаПолейВЗапросе = ДоступныеРеквизитыОтбора(Характеристики.ОбъектМетаданных); + Если Не Характеристики.ЕстьКод Тогда + Если Характеристики.ЕстьНомер Тогда + ИменаПолейВЗапросе = ИменаПолейВЗапросе + ", Номер КАК Код"; + Иначе + ИменаПолейВЗапросе = ИменаПолейВЗапросе + ", НЕОПРЕДЕЛЕНО КАК Код"; + КонецЕсли; + КонецЕсли; + Если Не Характеристики.ЕстьНаименование Тогда + ИменаПолейВЗапросе = ИменаПолейВЗапросе + ", Ссылка КАК Наименование"; + КонецЕсли; + ИменаПолейВВыборе = ОбщегоНазначения.СкопироватьРекурсивно(ИменаПолейДляСравненияНаРавенство); + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаПолейВВыборе, ИменаПолейДляСравненияНаПодобие); + + РасшифровкаДополнительныхПолей = Новый Соответствие; + ПорядковыйНомер = 0; + Для Каждого ПолеТаблицы Из Новый Структура(ИменаДополнительныхПолей) Цикл + ИмяПоля = ПолеТаблицы.Ключ; + Псевдоним = "Доп" + Формат(ПорядковыйНомер, "ЧН=; ЧГ=") + "_" + ИмяПоля; + РасшифровкаДополнительныхПолей.Вставить(Псевдоним, ИмяПоля); + + ИменаПолейВЗапросе = ИменаПолейВЗапросе + "," + ИмяПоля + " КАК " + Псевдоним; + ИменаПолейВВыборе.Добавить(Псевдоним); + ПорядковыйНомер = ПорядковыйНомер + 1; + КонецЦикла; + + ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ #Таблица"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "*", ИменаПолейВЗапросе); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#Таблица", Характеристики.ПолноеИмяОбъектаМетаданных); + + Результат = Новый Структура; + Результат.Вставить("ТекстЗапроса", ТекстЗапроса); + Результат.Вставить("РасшифровкаДополнительныхПолей", РасшифровкаДополнительныхПолей); + Результат.Вставить("ИменаПолейДляСравненияНаРавенство", ИменаПолейДляСравненияНаРавенство); + Результат.Вставить("ИменаПолейДляСравненияНаПодобие", ИменаПолейДляСравненияНаПодобие); + Результат.Вставить("ИменаПолейВВыборе", ИменаПолейВВыборе); + + Возврат Результат; + +КонецФункции + +// Параметры: +// ПараметрыПоиска - см. ПоискИУдалениеДублей.ПараметрыПоискаДублей +// Характеристики - см. ХарактеристикиОбъектаМетаданных +// СтруктураЗапроса - см. ТекстЗапросаПоискаДублей +// ЭталонныйОбъект - ЛюбаяСсылка, СправочникОбъект +// +// Возвращаемое значение: +// Структура: +// * СхемаКД - СхемаКомпоновкиДанных +// * НастройкиКД - НастройкиКомпоновкиДанных +// * ВыборкаЭталонныхОбъектов - Структура: +// ** Таблица +// ** ТекущийЭлемент +// ** Индекс +// ** ВГраница +// ** ПроцессорКД +// ** ПроцессорВыводаКД +// * ОтборыКандидатов - Соответствие +// +Функция СхемаКомпоновкиДанныхПоискаДублей(ПараметрыПоиска, Характеристики, СтруктураЗапроса, ЭталонныйОбъект) + + СхемаКД = Новый СхемаКомпоновкиДанных; + ИсточникДанныхСхемыКД = СхемаКД.ИсточникиДанных.Добавить(); + ИсточникДанныхСхемыКД.Имя = "ИсточникДанных1"; + ИсточникДанныхСхемыКД.ТипИсточникаДанных = "Local"; + + НаборДанных = СхемаКД.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); + НаборДанных.Имя = "НаборДанных1"; + НаборДанных.ИсточникДанных = "ИсточникДанных1"; + НаборДанных.Запрос = СтруктураЗапроса.ТекстЗапроса; + НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина; + + КомпоновщикНастроекКД = Новый КомпоновщикНастроекКомпоновкиДанных; + КомпоновщикНастроекКД.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКД)); + КомпоновщикНастроекКД.ЗагрузитьНастройки(ПараметрыПоиска.КомпоновщикПредварительногоОтбора.Настройки); + НастройкиКД = КомпоновщикНастроекКД.Настройки; + + // Поля. + НастройкиКД.Выбор.Элементы.Очистить(); + Для Каждого ИмяПоля Из СтруктураЗапроса.ИменаПолейВВыборе Цикл + ПолеКД = Новый ПолеКомпоновкиДанных(СокрЛП(ИмяПоля)); + ДоступноеПолеКД = НастройкиКД.ДоступныеПоляВыбора.НайтиПоле(ПолеКД); + Если ДоступноеПолеКД = Неопределено Тогда + ЗаписьЖурналаРегистрации(ПоискИУдалениеДублей.НаименованиеПодсистемы(Ложь), + УровеньЖурналаРегистрации.Предупреждение, Характеристики.ОбъектМетаданных, ЭталонныйОбъект, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Поле ""%1"" не существует.'"), Строка(ПолеКД))); + Продолжить; + КонецЕсли; + ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); + ВыбранноеПолеКД.Поле = ПолеКД; + КонецЦикла; + ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); + ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("Ссылка"); + ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); + ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("Код"); + ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); + ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("Наименование"); + ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); + ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("ПометкаУдаления"); + Если Характеристики.Иерархический + И Характеристики.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов Тогда + + ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); + ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("ЭтоГруппа"); + + ВыбранноеПолеКД = НастройкиКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); + ВыбранноеПолеКД.Поле = Новый ПолеКомпоновкиДанных("Родитель"); + КонецЕсли; + + // Сортировки. + НастройкиКД.Порядок.Элементы.Очистить(); + ЭлементПорядкаКД = НастройкиКД.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных")); + ЭлементПорядкаКД.Поле = Новый ПолеКомпоновкиДанных("Ссылка"); + + // Отборы. + // + Если Характеристики.ОбъектМетаданных = Метаданные.Справочники.Пользователи Тогда + ЭлементОтбораКД = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Служебный"); + ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбораКД.ПравоеЗначение = Ложь; + КонецЕсли; + + // Структура. + НастройкиКД.Структура.Очистить(); + ГруппировкаКД = НастройкиКД.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); + ГруппировкаКД.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); + ГруппировкаКД.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); + + // Чтение данных оригиналов. + Если ЭталонныйОбъект = Неопределено Тогда + ВыборкаЭталонныхОбъектов = ИнициализироватьВыборкуКД(СхемаКД, КомпоновщикНастроекКД.ПолучитьНастройки()); + Иначе + ТаблицаЗначений = ОбъектВТаблицуЗначений(ЭталонныйОбъект, СтруктураЗапроса.РасшифровкаДополнительныхПолей); + Если Не Характеристики.ЕстьКод И Не Характеристики.ЕстьНомер Тогда + ТаблицаЗначений.Колонки.Добавить("Код", Новый ОписаниеТипов("Неопределено")); + КонецЕсли; + ВыборкаЭталонныхОбъектов = ИнициализироватьВыборкуТЗ(ТаблицаЗначений); + КонецЕсли; + + // Подготовка СКД к чтению данных дублей. + ОтборыКандидатов = Новый Соответствие; + Для Каждого ИмяПоля Из СтруктураЗапроса.ИменаПолейДляСравненияНаРавенство Цикл + ИмяПоля = СокрЛП(ИмяПоля); + ЭлементОтбораКД = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); + ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборыКандидатов.Вставить(ИмяПоля, ЭлементОтбораКД); + КонецЦикла; + ЭлементОтбораКД = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); + ЭлементОтбораКД.ВидСравнения = ?(ЭталонныйОбъект = Неопределено, ВидСравненияКомпоновкиДанных.Больше, + ВидСравненияКомпоновкиДанных.НеРавно); + ОтборыКандидатов.Вставить("Ссылка", ЭлементОтбораКД); + + Если Характеристики.Иерархический + И Характеристики.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов Тогда + + ЭлементОтбораКД = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоГруппа"); + ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборыКандидатов.Вставить("ЭтоГруппа", ЭлементОтбораКД); + + ГруппаИЛИ = НастройкиКД.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); + ГруппаИЛИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; + + ГруппаИ = ГруппаИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); + ГруппаИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; + + ЭлементОтбораКД = ГруппаИ.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоГруппа"); + ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбораКД.ПравоеЗначение = Ложь; + + ГруппаИ = ГруппаИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); + ГруппаИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; + + ЭлементОтбораКД = ГруппаИ.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоГруппа"); + ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ЭлементОтбораКД.ПравоеЗначение = Истина; + + ЭлементОтбораКД = ГруппаИ.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбораКД.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель"); + ЭлементОтбораКД.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборыКандидатов.Вставить("Родитель", ЭлементОтбораКД); + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("СхемаКД", СхемаКД); + Результат.Вставить("НастройкиКД", НастройкиКД); + Результат.Вставить("ВыборкаЭталонныхОбъектов", ВыборкаЭталонныхОбъектов); + Результат.Вставить("ОтборыКандидатов", ОтборыКандидатов); + Возврат Результат; + +КонецФункции + Функция ДоступныеРеквизитыОтбора(ОбъектМетаданных) МассивРеквизитов = Новый Массив; Для Каждого РеквизитМетаданные Из ОбъектМетаданных.СтандартныеРеквизиты Цикл @@ -893,19 +943,19 @@ // ТаблицаЗначений: // * Ссылка - ЛюбаяСсылка // -Функция ТаблицаДублей(ПоляДляСравненияНаПодобие, ПоляДляСравненияНаРавенство) +Функция ТаблицаДублей(ИменаПолейДляСравненияНаПодобие, ИменаПолейДляСравненияНаРавенство) ТаблицаДублей = Новый ТаблицаЗначений; ТаблицаДублей.Колонки.Добавить("Ссылка"); - Для Каждого ПолеТаблицы Из ПоляДляСравненияНаРавенство Цикл - Если ТаблицаДублей.Колонки.Найти(ПолеТаблицы.Ключ) = Неопределено Тогда - ТаблицаДублей.Колонки.Добавить(ПолеТаблицы.Ключ); + Для Каждого ПолеТаблицы Из ИменаПолейДляСравненияНаРавенство Цикл + Если ТаблицаДублей.Колонки.Найти(ПолеТаблицы) = Неопределено Тогда + ТаблицаДублей.Колонки.Добавить(ПолеТаблицы); КонецЕсли; КонецЦикла; - Для Каждого ПолеТаблицы Из ПоляДляСравненияНаПодобие Цикл - Если ТаблицаДублей.Колонки.Найти(ПолеТаблицы.Ключ) = Неопределено Тогда - ТаблицаДублей.Колонки.Добавить(ПолеТаблицы.Ключ); + Для Каждого ПолеТаблицы Из ИменаПолейДляСравненияНаПодобие Цикл + Если ТаблицаДублей.Колонки.Найти(ПолеТаблицы) = Неопределено Тогда + ТаблицаДублей.Колонки.Добавить(ПолеТаблицы); КонецЕсли; КонецЦикла; @@ -937,10 +987,10 @@ // - Неопределено // * ТаблицаДублей - см. ТаблицаДублей // -Функция КоллекцияДублей(Знач ПараметрыПоиска, ПоляДляСравненияНаПодобие, ПоляДляСравненияНаРавенство) +Функция КоллекцияДублей(Знач ПараметрыПоиска, ИменаПолейДляСравненияНаПодобие, ИменаПолейДляСравненияНаРавенство) КоллекцияДублей = Новый Структура; - КоллекцияДублей.Вставить("ТаблицаДублей", ТаблицаДублей(ПоляДляСравненияНаПодобие, ПоляДляСравненияНаРавенство)); + КоллекцияДублей.Вставить("ТаблицаДублей", ТаблицаДублей(ИменаПолейДляСравненияНаПодобие, ИменаПолейДляСравненияНаРавенство)); КоллекцияДублей.Вставить("КоличествоЭлементовДляСравнения", ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыПоиска, "МаксимальноеЧислоДублей", 0)); КоллекцияДублей.Вставить("ДублиКПроверке", Новый Массив); diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl index 7c375fc0b..1dd62715f 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl @@ -185,6 +185,8 @@ НастройкиПодключения.Вставить("ВидТранспортаСообщенийОбмена", ВидТранспорта); НастройкиПодключения.Вставить("ИмяПланаОбмена", ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелОбмена)); + НастройкиПодключения.Вставить("ИмяПланаОбменаКорреспондента", + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбменаКорреспондента(УзелОбмена)); МодульПомощникНастройки = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными(); diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Module.bsl index 12a8eefab..15f53a714 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Module.bsl @@ -1645,7 +1645,7 @@ КонецЕсли; Исключение ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЕсли; @@ -2089,7 +2089,7 @@ WSПароль = Строка(ЭтотОбъект.УникальныйИдентификатор); Исключение - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); @@ -2464,13 +2464,13 @@ ПропуститьПолучениеДанных = Истина; Информация = ИнформацияОбОшибке(); - СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация); + СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация); ОбменДаннымиВызовСервера.ЗафиксироватьЗавершениеОбменаСОшибкой( Объект.УзелИнформационнойБазы, "ЗагрузкаДанных", ДатаНачалаОперации, - ПодробноеПредставлениеОшибки(Информация)); + ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); КонецПопытки; КонецПроцедуры diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl index 8be84ad56..243286100 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ИзменениеПрефиксаУзлаИБ/Module.bsl @@ -502,7 +502,7 @@ Переход = ТаблицаПереходов.Добавить(); Переход.ПорядковыйНомерПерехода = 2; Переход.ИмяОсновнойСтраницы = "СтраницаОжидание"; - Переход.ИмяСтраницыНавигации = "СтраницаНавигацииОжидание";; + Переход.ИмяСтраницыНавигации = "СтраницаНавигацииОжидание"; Переход.ИмяОбработчикаПриОткрытии = "Подключаемый_СтраницаОжидание_ПриОткрытии"; Переход = ТаблицаПереходов.Добавить(); diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form index 1935fc4a1..b9e669cb1 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form @@ -5191,8 +5191,7 @@ <title> <key>ru</key> <value><colorstyle -16>Внимание!</> - -Продолжение настройки приведет к изменению кода узла обмена для этой информационной базы. Если в базе уже существуют настроенные обмены, то это может привезти к их неработоспособности.</value> +Продолжение настройки приведет к изменению кода узла обмена для этой информационной базы. Если в базе уже существуют настроенные обмены, то это может привезти к их неработоспособности.</value> true true @@ -6077,6 +6076,167 @@ false + + СтраницаНавигацияСпособыНастройкиПодключения + 866 + + КоманднаяПанельНавигацияПродолжениеСлева1 + 868 + + КомандаНазадСпособНастройкиПодключения + 880 + true + true + + true + + + КомандаНазадСпособНастройкиПодключенияРасширеннаяПодсказка + 881 + Label + true + true + + Left + + + Form.Command.КомандаНазадСпособНастройкиПодключения + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель навигация продолжение слева</value> + + + КоманднаяПанельНавигацияПродолжениеСлева1РасширеннаяПодсказка + 869 + Label + true + true + + Left + + + CommandBar + + Left + + + + КоманднаяПанельНавигацияПродолжениеСправа1 + 872 + + КомандаДалееСпособНастройкиПодключения + 878 + true + true + + true + + + КомандаДалееСпособНастройкиПодключенияРасширеннаяПодсказка + 879 + Label + true + true + + Left + + + Form.Command.КомандаДалееСпособНастройкиПодключения + Normal + Auto + true + true + UserCmds + Auto + + + КомандаНавигацияПродолжениеОтмена1 + 876 + true + true + + true + + + КомандаНавигацияПродолжениеОтмена1РасширеннаяПодсказка + 877 + Label + true + true + + Left + + + Form.Command.КомандаОтмена + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель навигация продолжение справа</value> + + + КоманднаяПанельНавигацияПродолжениеСправа1РасширеннаяПодсказка + 873 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигация продолжение</value> + + + СтраницаНавигацияСпособыНастройкиПодключенияРасширеннаяПодсказка + 867 + Label + true + true + + Left + + + Page + + AlwaysHorizontal + auto + false + + true true @@ -8269,6 +8429,50 @@ Auto Auto + + КомандаДалееСпособНастройкиПодключения + + <key>ru</key> + <value>Далее ></value> + + 12 + + ru + Команда далее способ настройки подключения + + + true + + + + КомандаДалееСпособНастройкиПодключения + + + Auto + Auto + + + КомандаНазадСпособНастройкиПодключения + + <key>ru</key> + <value>< Назад</value> + + 13 + + ru + Команда назад способ настройки подключения + + + true + + + + КомандаНазадСпособНастройкиПодключения + + + Auto + Auto + diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Module.bsl index 404f4ac00..2a65fae9f 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Module.bsl @@ -251,10 +251,33 @@ Процедура НастроитьВручную(Команда) СпособНастройкиПодключенияВСервисе = "ИнтернетВручную"; - ПриИзмененииСпособНастройкиПодключения(); - ИзменитьПорядковыйНомерПерехода(+1); + Если НастройкаXDTO Тогда + Элементы.ВидПодключенияВнешнееСоединение.Видимость = ДоступныеВидыТранспорта.Свойство("COM"); + Элементы.ВидПодключенияИнтернет.Видимость = ДоступныеВидыТранспорта.Свойство("WS"); + Элементы.ВидПодключенияОбычныеКаналыСвязи.Видимость = ДоступныеВидыТранспорта.Свойство("FILE") + Или ДоступныеВидыТранспорта.Свойство("FTP") + Или ДоступныеВидыТранспорта.Свойство("EMAIL"); + + Элементы.ВидПодключенияПассивныйРежим.Видимость = ДоступныеВидыТранспорта.Свойство("WSПассивныйРежим"); + + Элементы.ГруппаФайлНастройкиПассивныйРежим.Видимость = ДоступныеВидыТранспорта.Свойство("WSПассивныйРежим"); + Элементы.ГруппаФайлНастройкиОбычныеКаналыСвязи.Видимость = ДоступныеВидыТранспорта.Свойство("FILE") + Или ДоступныеВидыТранспорта.Свойство("FTP") + Или ДоступныеВидыТранспорта.Свойство("EMAIL"); + + Элементы.ПанельСпособыНастройкиПодключения.ТекущаяСтраница = Элементы.СтраницаВидыПодключения; + Элементы.ПанельНавигации.ТекущаяСтраница = Элементы.СтраницаНавигацияСпособыНастройкиПодключения; + ПриИзмененииВидПодключения(); + + Иначе + + ПриИзмененииСпособНастройкиПодключения(); + ИзменитьПорядковыйНомерПерехода(+1); + + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -308,8 +331,13 @@ &НаКлиенте Процедура КомандаНазад(Команда) - ИзменитьПорядковыйНомерПерехода(-1); - + Если ВидПодключения = "ПассивныйРежим" Тогда + ИзменитьПорядковыйНомерПерехода(-5); + Элементы.ПанельНавигации.ТекущаяСтраница = Элементы.СтраницаНавигацияСпособыНастройкиПодключения; + Иначе + ИзменитьПорядковыйНомерПерехода(-1) + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -367,6 +395,40 @@ КонецПроцедуры +&НаКлиенте +Процедура КомандаНазадСпособНастройкиПодключения(Команда) + + Элементы.ПанельСпособыНастройкиПодключения.ТекущаяСтраница = Элементы.СтраницаМоиПриложения; + Элементы.ПанельНавигации.ТекущаяСтраница = Элементы.СтраницаНавигацияНачало; + +КонецПроцедуры + +&НаКлиенте +Процедура КомандаДалееСпособНастройкиПодключения(Команда) + + Если ВидПодключения = "Интернет" Тогда + + СпособНастройкиПодключенияВСервисе = "ИнтернетВручную"; + ПриИзмененииСпособНастройкиПодключения(); + + ИзменитьПорядковыйНомерПерехода(+1); + + Элементы.ПанельСпособыНастройкиПодключения.ТекущаяСтраница = Элементы.СтраницаМоиПриложения; + + ИначеЕсли ВидПодключения = "ПассивныйРежим" Тогда + + Если ПустаяСтрока(ИмяФайлаНастроекXDTOКорреспондента) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю( + НСтр("ru = 'Выберите файл с настройками программы-корреспондента.'"), + , "ИмяФайлаНастроекXDTOКорреспондента"); + Иначе + ИзменитьПорядковыйНомерПерехода(+3); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -1144,9 +1206,7 @@ // Преобразование структуры реквизитов формы в структуру реквизитов помощника. СтруктураНастроекПомощника.Вставить("ИмяПланаОбмена", ИмяПланаОбмена); СтруктураНастроекПомощника.Вставить("ИмяПланаОбменаКорреспондента", ИмяПланаОбменаКорреспондента); - СтруктураНастроекПомощника.Вставить("ВариантНастройкиОбмена", ИдентификаторНастройки); - СтруктураНастроекПомощника.Вставить("ФорматОбмена", ФорматОбмена); Если ЗначениеЗаполнено(УзелОбмена) @@ -1425,8 +1485,10 @@ Если СтрДлина(ИдентификаторИнформационнойБазыИсточника) = 36 И СтрДлина(ИдентификаторИнформационнойБазыПриемника) = 36 Тогда - Если ПланыОбмена[ИмяПланаОбменаКорреспондента].ЭтотУзел().Код <> ИдентификаторИнформационнойБазыИсточника - И ОбменДаннымиСервер.УзлыПланаОбмена(ИмяПланаОбменаКорреспондента).Количество() > 0 Тогда + ИмяПланаОбмена = ОбменДаннымиСервер.НайтиИмяПланаОбменаЧерезУниверсальныйФормат(ИмяПланаОбменаКорреспондента); + + Если ПланыОбмена[ИмяПланаОбмена].ЭтотУзел().Код <> ИдентификаторИнформационнойБазыИсточника + И ОбменДаннымиСервер.УзлыПланаОбмена(ИмяПланаОбмена).Количество() > 0 Тогда ВосстановлениеНастроекОбмена = "ВосстановлениеСПредупреждением"; Иначе ВосстановлениеНастроекОбмена = "Восстановление"; @@ -1504,8 +1566,8 @@ НастройкиПодключения, ВременныйФайл, Истина); Исключение Отказ = Истина; - СообщениеОбОшибке = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - СообщениеОбОшибкеЖР = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибкеЖР = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибкеЖР); @@ -1535,7 +1597,7 @@ ВременныйФайл, Истина, ПланыОбмена[ИмяПланаОбмена].ПустаяСсылка()); Исключение Отказ = Истина; - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); @@ -1686,7 +1748,12 @@ Процедура ПродолжениеНастройкиОбщиеНастройкиСинхронизации(Результат, ДополнительныеПараметры) Экспорт Если Результат.Отказ Тогда - ИзменитьПорядковыйНомерПерехода(-1); + Если ВидПодключения = "ПассивныйРежим" Тогда + ИзменитьПорядковыйНомерПерехода(-3); + Элементы.ПанельНавигации.ТекущаяСтраница = Элементы.СтраницаНавигацияСпособыНастройкиПодключения; + Иначе + ИзменитьПорядковыйНомерПерехода(-1) + КонецЕсли; ОбщегоНазначенияКлиент.СообщитьПользователю(Результат.СообщениеОбОшибке); Возврат; КонецЕсли; @@ -1719,9 +1786,9 @@ "Видимость", Элементы.ОбычныеКаналыСвязиВидТранспортаПоУмолчанию.СписокВыбора.Количество() > 1); - СохранитьПараметрыПодключенияВФайл = (ВидПодключения = "ПассивныйРежим") - Или ((ВидПодключения = "ОбычныеКаналыСвязи") - И Не НастройкаРИБ И Не ЗагрузитьПараметрыПодключенияИзФайла); + СохранитьПараметрыПодключенияВФайл = ВидПодключения = "ОбычныеКаналыСвязи" + И Не НастройкаРИБ + И Не ЗагрузитьПараметрыПодключенияИзФайла; ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ИмяФайлаНастроекПодключенияДляВыгрузки", "Видимость", СохранитьПараметрыПодключенияВФайл); diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl index b85d30df6..e37f75e74 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl @@ -362,7 +362,7 @@ Исключение - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиВебСервис.СобытиеЖурналаРегистрацииИзменениеТранспортаНаWS(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); @@ -393,7 +393,7 @@ Исключение - СообщениеОбОшибкеВКорреспонденте = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибкеВКорреспонденте = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибкеВКорреспонденте); @@ -423,7 +423,7 @@ Исключение - СообщениеОбОшибкеВКорреспонденте = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибкеВКорреспонденте = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибкеВКорреспонденте); @@ -611,7 +611,7 @@ ЗаданиеВыполнено = ДлительныеОперации.ЗаданиеВыполнено(ПараметрыОбработчика.ИдентификаторОперации); Исключение ПараметрыОбработчика.Отказ = Истина; - ПараметрыОбработчика.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПараметрыОбработчика.СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , ПараметрыОбработчика.СообщениеОбОшибке); @@ -833,7 +833,7 @@ Попытка ОбменДаннымиСервер.ПриПодключенииККорреспонденту(ИмяПланаОбмена, ВерсияКорреспондента); Исключение - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -863,6 +863,8 @@ РезультатПроверки.Вставить("УзелКорреспондентаЕстьВЭтойБазе", Ложь); РезультатПроверки.Вставить("УзелДляУдаления", Неопределено); + РезультатПроверки.Вставить("ИмяПланаОбменаКорреспондента", НастройкиПодключения.ИмяПланаОбменаКорреспондента); + Если НастройкиПодключения.ВидТранспортаСообщенийОбмена = Перечисления.ВидыТранспортаСообщенийОбмена.COM Тогда Результат = ОбменДаннымиСервер.УстановитьВнешнееСоединениеСБазой(НастройкиПодключения); @@ -880,11 +882,27 @@ РезультатПроверки.ВерсииИнтерфейса = ОбменДаннымиСервер.ВерсииИнтерфейсаЧерезВнешнееСоединение(ВнешнееСоединение); Если РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.1.1") <> Неопределено - Или РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.2.1") <> Неопределено Тогда + Или РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.2.1") <> Неопределено + Или РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.2.2") Тогда СообщениеОбОшибке = ""; - ПараметрыИнформационнойБазы = ВнешнееСоединение.ОбменДаннымиВнешнееСоединение.ПолучитьПараметрыИнформационнойБазы_2_0_1_6( - НастройкиПодключения.ИмяПланаОбмена, НастройкиПодключения.ИдентификаторИнформационнойБазыИсточника, СообщениеОбОшибке); + + Если РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.2.2") <> Неопределено Тогда + + ДополнительныеПараметры = Новый Структура; + Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкиПодключения.ИмяПланаОбмена) Тогда + ДополнительныеПараметры.Вставить("ЭтоПланОбменаXDTO", Истина); + КонецЕсли; + + ПараметрыИнформационнойБазы = ВнешнееСоединение.ОбменДаннымиВнешнееСоединение.ПолучитьПараметрыИнформационнойБазы_3_0_2_2( + НастройкиПодключения.ИмяПланаОбмена, + НастройкиПодключения.ИдентификаторИнформационнойБазыИсточника, + СообщениеОбОшибке, + ДополнительныеПараметры); + Иначе + ПараметрыИнформационнойБазы = ВнешнееСоединение.ОбменДаннымиВнешнееСоединение.ПолучитьПараметрыИнформационнойБазы_2_0_1_6( + НастройкиПодключения.ИмяПланаОбмена, НастройкиПодключения.ИдентификаторИнформационнойБазыИсточника, СообщениеОбОшибке); + КонецЕсли; ПараметрыКорреспондента = ОбщегоНазначения.ЗначениеИзСтрокиXML(ПараметрыИнформационнойБазы); Если Не ПараметрыКорреспондента.ПланОбменаСуществует Тогда @@ -900,7 +918,9 @@ КонецЕсли; РезультатПроверки.ПараметрыКорреспондентаПолучены = Истина; - РезультатПроверки.ПараметрыКорреспондента = ПараметрыКорреспондента; + РезультатПроверки.ПараметрыКорреспондента = ПараметрыКорреспондента; + + РезультатПроверки.ИмяПланаОбменаКорреспондента = ПараметрыКорреспондента.ИмяПланаОбмена; Иначе @@ -939,11 +959,11 @@ РезультатПроверки.ВерсииИнтерфейса = ОбменДаннымиПовтИсп.ВерсииКорреспондента(СтруктураНастроекАутентификации); Исключение Информация = ИнформацияОбОшибке(); - РезультатПроверки.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация); + РезультатПроверки.СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация); РезультатПроверки.ПодключениеУстановлено = Ложь; ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация)); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); ПоместитьВоВременноеХранилище(РезультатПроверки, АдресРезультата); Возврат; @@ -951,7 +971,10 @@ СтрокаСообщенияОбОшибке = ""; WSПрокси = Неопределено; - Если РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.2.1") <> Неопределено Тогда + Если РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.2.2") <> Неопределено Тогда + WSПрокси = ОбменДаннымиСервер.ПолучитьWSПрокси_3_0_2_2(СтруктураНастроекАутентификации, СтрокаСообщенияОбОшибке); + ТекущаяВерсия = "3.0.2.2"; + ИначеЕсли РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.2.1") <> Неопределено Тогда WSПрокси = ОбменДаннымиСервер.ПолучитьWSПрокси_3_0_2_1(СтруктураНастроекАутентификации, СтрокаСообщенияОбОшибке); ТекущаяВерсия = "3.0.2.1" ИначеЕсли РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.1.1") <> Неопределено Тогда @@ -979,15 +1002,22 @@ РезультатПроверки.ПодключениеУстановлено = Истина; Если РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.1.1") <> Неопределено - Или РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.2.1") <> Неопределено Тогда + Или РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.2.1") <> Неопределено + Или РезультатПроверки.ВерсииИнтерфейса.Найти("3.0.2.2") <> Неопределено Тогда СообщениеОбОшибке = ""; - + + ДополнительныеПараметры = Новый Структура; + Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкиПодключения.ИмяПланаОбмена) Тогда + ДополнительныеПараметры.Вставить("ЭтоПланОбменаXDTO", Истина); + КонецЕсли; + ПараметрыИнформационнойБазы = ОбменДаннымиВебСервис.ПолучитьПараметрыИБ(WSПрокси, ТекущаяВерсия, - НастройкиПодключения.ИмяПланаОбмена, + НастройкиПодключения.ИмяПланаОбменаКорреспондента, НастройкиПодключения.ИдентификаторИнформационнойБазыИсточника, СообщениеОбОшибке, - НастройкиПодключения.WSОбластьДанныхКорреспондента); + НастройкиПодключения.WSОбластьДанныхКорреспондента, + ДополнительныеПараметры); ПараметрыКорреспондента = СериализаторXDTO.ПрочитатьXDTO(ПараметрыИнформационнойБазы); Если Не ПараметрыКорреспондента.ПланОбменаСуществует Тогда @@ -996,15 +1026,17 @@ |Убедитесь, что | - выбран правильный вид приложения для настройки обмена; | - указан правильный адрес приложения в Интернете.'"), - НастройкиПодключения.ИмяПланаОбмена); + НастройкиПодключения.ИмяПланаОбменаКорреспондента); ПоместитьВоВременноеХранилище(РезультатПроверки, АдресРезультата); Возврат; КонецЕсли; - + РезультатПроверки.ПараметрыКорреспондентаПолучены = Истина; РезультатПроверки.ПараметрыКорреспондента = ПараметрыКорреспондента; + РезультатПроверки.ИмяПланаОбменаКорреспондента = ПараметрыКорреспондента.ИмяПланаОбмена; + Иначе РезультатПроверки.ПодключениеРазрешено = Ложь; @@ -1076,7 +1108,7 @@ УзелСсылка = МенеджерПланаОбмена.НайтиПоКоду(ПараметрыКорреспондента.КодЭтогоУзла); Если НЕ УзелСсылка.Пустая() Тогда - РезультатПроверки.УзелКорреспондентаЕстьВЭтойБазе = Истина;; + РезультатПроверки.УзелКорреспондентаЕстьВЭтойБазе = Истина; РезультатПроверки.УзелДляУдаления = УзелСсылка; КонецЕсли; @@ -1143,10 +1175,10 @@ Отказ = Истина; Информация = ИнформацияОбОшибке(); - Результат.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация); + Результат.СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация)); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); ПоместитьВоВременноеХранилище(Результат, АдресРезультата); @@ -1168,12 +1200,12 @@ Отказ = Истина; Информация = ИнформацияОбОшибке(); - Результат.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация); + Результат.СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеОбменаДанными(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация)); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); - ПоместитьВоВременноеХранилище(Результат, АдресРезультата); + ПоместитьВоВременноеХранилище(Результат, АдресРезультата); КонецПопытки; @@ -1191,7 +1223,7 @@ ВыполнитьДействияПоНастройкеОбменаДанными(НастройкиПодключения); Исключение Отказ = Истина; - Результат.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибке); @@ -1248,7 +1280,7 @@ Исключение Отказ = Истина; - Результат.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибке); @@ -1277,7 +1309,7 @@ НастройкиПодключенияКорреспондента); Исключение Отказ = Истина; - Результат.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибке); @@ -1346,7 +1378,7 @@ ПараметрыПодключения, НастройкиПодключения.WSОбластьДанныхКорреспондента); Исключение Отказ = Истина; - Результат.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибке); @@ -1378,7 +1410,7 @@ // Возникновение исключения - критично с точки зрения сохранения настройки. // Исключений быть не должно. Отказ = Истина; - Результат.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибке); @@ -1399,7 +1431,7 @@ НастройкиПодключения.УзелИнформационнойБазы, ПараметрыОбмена, Отказ); Исключение Отказ = Истина; - Результат.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибке); @@ -1489,7 +1521,7 @@ НастройкиЗагрузки.УзелОбмена, ПараметрыОбмена, Отказ, ДополнительныеПараметры); Исключение Отказ = Истина; - Результат.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибке); @@ -1549,7 +1581,7 @@ ОтменитьТранзакцию(); Результат.НастройкиСохранены = Ложь; - Результат.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибке); @@ -1644,10 +1676,10 @@ Исключение Информация = ИнформацияОбОшибке(); Результат.НастройкаУдалена = Ложь; - Результат.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация); + Результат.СообщениеОбОшибке = ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеОбменаДанными(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация)); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); КонецПопытки; ПоместитьВоВременноеХранилище(Результат, АдресРезультата); @@ -1656,7 +1688,10 @@ Процедура УдалитьНастройкуСинхронизацииВКорреспонденте(НастройкиУдаления, Результат) - ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(НастройкиУдаления.УзелОбмена); + ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(НастройкиУдаления.УзелОбмена); + ИмяПланаОбменаКорреспондента = + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбменаКорреспондента(НастройкиУдаления.УзелОбмена); + ИдентификаторУзла = ОбменДаннымиСервер.ИдентификаторЭтогоУзлаДляОбмена(НастройкиУдаления.УзелОбмена); ВидТранспорта = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию( @@ -1675,13 +1710,13 @@ Возврат; КонецЕсли; - УзелКорреспондента = ВнешнееСоединение.ОбменДаннымиСервер.УзелПланаОбменаПоКоду(ИмяПланаОбмена, + УзелКорреспондента = ВнешнееСоединение.ОбменДаннымиСервер.УзелПланаОбменаПоКоду(ИмяПланаОбменаКорреспондента, ИдентификаторУзла); Если УзелКорреспондента = Неопределено Тогда Результат.СообщениеОбОшибкеВКорреспонденте = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'В программе-корреспонденте не найден узел плана обмена ""%1"" по коду ""%2"".'"), - ИмяПланаОбмена, ИдентификаторУзла); + ИмяПланаОбменаКорреспондента, ИдентификаторУзла); Результат.НастройкаУдаленаВКорреспонденте = Ложь; Возврат; КонецЕсли; @@ -1690,7 +1725,7 @@ ВнешнееСоединение.ОбменДаннымиСервер.УдалитьНастройкуСинхронизации(УзелКорреспондента); Исключение Результат.НастройкаУдаленаВКорреспонденте = Ложь; - Результат.СообщениеОбОшибкеВКорреспонденте = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибкеВКорреспонденте = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибкеВКорреспонденте); @@ -1731,7 +1766,7 @@ ОбменДаннымиВебСервис.УдалитьУзелОбмена(WSПрокси, ПараметрыПрокси.ТекущаяВерсия, СтруктураНастроекОбмена); Исключение Результат.НастройкаУдаленаВКорреспонденте = Ложь; - Результат.СообщениеОбОшибкеВКорреспонденте = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибкеВКорреспонденте = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибкеВКорреспонденте); @@ -1751,10 +1786,10 @@ Информация = ИнформацияОбОшибке(); Результат.НастройкаУдаленаВКорреспонденте = Ложь; - Результат.СообщениеОбОшибкеВКорреспонденте = КраткоеПредставлениеОшибки(Информация); + Результат.СообщениеОбОшибкеВКорреспонденте = ОбработкаОшибок.КраткоеПредставлениеОшибки(Информация); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеОбменаДанными(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация)); + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(Информация)); КонецПопытки; КонецЕсли; @@ -1783,7 +1818,7 @@ ОбменДаннымиСервер.ЗарегистрироватьДанныеДляНачальнойВыгрузки(НастройкиРегистрации.УзелОбмена, , НомерПринятого = 0); Исключение Результат.ДанныеЗарегистрированы = Ложь; - Результат.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат.СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииРегистрацияДанныхДляНачальнойВыгрузки(), УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибке); @@ -2006,7 +2041,11 @@ ?(НастройкиПодключения.ИспользоватьПрефиксыДляНастройкиОбмена Или НастройкиПодключения.ИспользоватьПрефиксыДляНастройкиОбменаКорреспондента, НастройкиПодключения.ПрефиксИнформационнойБазыИсточника, ""), НастройкиПодключения.ПрефиксИнформационнойБазыПриемника); - + + РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.УстановитьИмяПланаОбменаКорреспондента( + НастройкиПодключения.УзелИнформационнойБазы, + НастройкиПодключения.ИмяПланаОбменаКорреспондента); + Если СоздаватьНовыйУзел И Не ОбщегоНазначения.РазделениеВключено() Тогда ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными(); @@ -2122,23 +2161,19 @@ ВызватьИсключение; КонецПопытки; - // Выполняем проверку зачитанных параметров из файла. КорректныйФайлНастроек = Ложь; ИмяПланаОбменаВНастройках = ""; Если СтруктураНастроек.Свойство("ИмяПланаОбмена", ИмяПланаОбменаВНастройках) - И ОбменДаннымиТрансляцияФорматаПовтИсп.ТранслироватьИмя(СтруктураНастроек.ИмяПланаОбмена, "en") = НастройкиПодключения.ИмяПланаОбмена Тогда + И СтруктураНастроек.ИмяПланаОбмена = НастройкиПодключения.ИмяПланаОбмена Тогда + КорректныйФайлНастроек = Истина; - Иначе - КорректныйФайлНастроек = Ложь; + + ИначеЕсли ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкиПодключения.ИмяПланаОбмена) Тогда + + НайденныйПланОбмена = ОбменДаннымиСервер.НайтиИмяПланаОбменаЧерезУниверсальныйФормат(СтруктураНастроек.ИмяПланаОбмена); + КорректныйФайлНастроек = ЗначениеЗаполнено(НайденныйПланОбмена) - Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкиПодключения.ИмяПланаОбмена) Тогда - Если СтруктураНастроек.Свойство("ПараметрыОбменаXDTO") - И СтруктураНастроек.ПараметрыОбменаXDTO.Свойство("ФорматОбмена") - И СтруктураНастроек.ПараметрыОбменаXDTO.ФорматОбмена = НастройкиПодключения.ФорматОбмена Тогда - КорректныйФайлНастроек = Истина; - КонецЕсли; - КонецЕсли; КонецЕсли; Если Не КорректныйФайлНастроек Тогда @@ -2236,7 +2271,7 @@ СтруктураНастроек.Свойство("КодНовогоУзла", НастройкиПодключения.КодНовогоУзлаВторойБазы); КонецЕсли; - + КонецПроцедуры Функция НастройкиПодключенияВXML(НастройкиПодключения, ИмяФайла = "", ТипКодировки = "UTF-8") Экспорт @@ -2459,37 +2494,52 @@ ЧтениеXML.УстановитьСтроку(ИмяФайлаСтрокаXML); КонецЕсли; - ЧтениеXML.Прочитать(); // ПараметрыНастройки - - ВерсияФормата = ЧтениеXML.ПолучитьАтрибут("ВерсияФормата"); - СтруктураНастроек.Вставить("ВерсияФорматаФайлаНастроекОбменаДанными", - ?(ВерсияФормата = Неопределено, "1.0", ВерсияФормата)); - - ЧтениеXML.Прочитать(); // ОсновныеПараметрыОбмена - - // Зачитываем узел ОсновныеПараметрыОбмена. - СчитатьДанныеВСтруктуру(СтруктураНастроек, ЧтениеXML); - - Если СтруктураНастроек.Свойство("ИспользоватьПараметрыТранспортаEMAIL") - И СтруктураНастроек.ИспользоватьПараметрыТранспортаEMAIL Тогда + Пока ЧтениеXML.Прочитать() Цикл - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда + Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента + И ЧтениеXML.Имя = "ПараметрыНастройки" Тогда - // Зачитываем узел УчетнаяЗаписьЭлектроннойПочты. - ЧтениеXML.Прочитать(); // УчетнаяЗаписьЭлектроннойПочты {НачалоЭлемента} + ВерсияФормата = ЧтениеXML.ПолучитьАтрибут("ВерсияФормата"); + СтруктураНастроек.Вставить("ВерсияФорматаФайлаНастроекОбменаДанными", + ?(ВерсияФормата = Неопределено, "1.0", ВерсияФормата)); - СчитатьДанныеЭлектроннойПочты(СтруктураНастроек, ЧтениеXML); + ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента + И ЧтениеXML.Имя = "ОсновныеПараметрыОбмена" Тогда - ЧтениеXML.Прочитать(); // УчетнаяЗаписьЭлектроннойПочты {КонецЭлемента} + СчитатьДанныеВСтруктуру(СтруктураНастроек, ЧтениеXML); + + ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента + И ЧтениеXML.Имя = "УчетнаяЗаписьЭлектроннойПочты" Тогда + + Если СтруктураНастроек.Свойство("ИспользоватьПараметрыТранспортаEMAIL") + И СтруктураНастроек.ИспользоватьПараметрыТранспортаEMAIL Тогда - Иначе + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда + + // Зачитываем узел УчетнаяЗаписьЭлектроннойПочты. + ЧтениеXML.Прочитать(); // УчетнаяЗаписьЭлектроннойПочты {НачалоЭлемента} + + СчитатьДанныеЭлектроннойПочты(СтруктураНастроек, ЧтениеXML); + + ЧтениеXML.Прочитать(); // УчетнаяЗаписьЭлектроннойПочты {КонецЭлемента} + + Иначе + + ЧтениеXML.Пропустить(); + + КонецЕсли; + + КонецЕсли; - ЧтениеXML.Пропустить(); + ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента + И ЧтениеXML.Имя = "ПараметрыОбменаXDTO" Тогда + + СчитатьПараметрыОбменаXDTO(СтруктураНастроек, ЧтениеXML); КонецЕсли; - КонецЕсли; - + КонецЦикла; + ЧтениеXML.Закрыть(); КонецПроцедуры @@ -2587,6 +2637,23 @@ КонецПроцедуры +Процедура СчитатьПараметрыОбменаXDTO(СтруктураНастроек, ЧтениеXML) + + ПараметрыОбменаXDTO = Новый Структура; + + ЧтениеXML.Прочитать(); + + Пока ЧтениеXML.ТипУзла <> ТипУзлаXML.КонецЭлемента Цикл + + Ключ = ЧтениеXML.Имя; + ПараметрыОбменаXDTO.Вставить(Ключ, ПрочитатьXML(ЧтениеXML)); + + КонецЦикла; + + СтруктураНастроек.Вставить("ПараметрыОбменаXDTO", ПараметрыОбменаXDTO); + +КонецПроцедуры + Функция НастройкиXDTOКорреспондентаИзXML(ИмяФайлаСтрокаXML, ЭтоФайл, УзелОбмена) Экспорт ЧтениеXML = Новый ЧтениеXML; diff --git a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторОшибокКриптографии/Template.bin b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторОшибокКриптографии/Template.bin index 415c33bcf..ee19d9760 100644 --- a/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторОшибокКриптографии/Template.bin +++ b/SSL/src/DataProcessors/ПрограммыЭлектроннойПодписиИШифрования/Templates/КлассификаторОшибокКриптографии/Template.bin @@ -65,7 +65,7 @@ }, { "Anchor": "истек срок действия", -"Reason": "- Истек срок действия сертификата.\n- Не корректная дата и время на компьютере.", +"Reason": "- Истек срок действия сертификата.\n- Некорректная дата и время на компьютере.", "Solution": "- Подайте заявление на новый сертификат.\n- Установите корректную дату и время на компьютере.", "ErrorText": "сертификат не прошел проверки по сроку действия при сверке с системными часами", "RepairMethods": "" @@ -161,7 +161,8 @@ "Reason": "Корневой сертификат не включен в список доверенных.", "Solution": "- Установите корневой сертификат удостоверяющего центра. См. инструкцию ", "ErrorText": "Цепочка сертификатов обработана, но прервана на корневом сертификате, который не является доверенным.", -"RepairMethods": "{\"МетодикиУстранения\": [\"УстановитьКорневойСертификат\"]}" +"RepairMethods": "{\"МетодикиУстранения\": [\"УстановитьКорневойСертификат\"]}", +"Category": "untrustedroot" }, { "Anchor": "Нет прав на получение сертификата", @@ -234,7 +235,8 @@ "Reason": "- Не установлен список отозванных сертификатов или сервис проверки отозванных сертификатов недоступен.\n- Закончился срок действия списка отзыва.", "Solution": "- Получите список отозванных сертификатов в Удостоверяющем центре и установите его. См. инструкцию\n- Обратитесь в Удостоверяющий центр для обновления списка отзыва (в случае окончания его срока действия).", "ErrorText": "Не удалось проверить сертификат в списке отозванных", -"RepairMethods": "{\"МетодикиУстранения\": [\"УстановитьСписокОтзываСертификата\"]}" +"RepairMethods": "{\"МетодикиУстранения\": [\"УстановитьСписокОтзываСертификата\"]}", +"Category": "no_revocation_check" }, { "Anchor": "сертификат не установлен на компьютере", @@ -437,8 +439,47 @@ "Solution": "Установите в личное хранилище сертификат, которым был зашифрован файл, и выберите его при расшифровке.", "ErrorText": "Требуемый персональный сертификат не найден", "RepairMethods": "" +}, +{ +"Anchor": "", +"Reason": "Неправильно строится цепочка доверия сертификата. Возможно, в сертификате указана неверная ссылка на сведения центра сертификации.", +"Solution": "Скачайте с сайта удостоверяющего центра, выдавшего сертификат, промежуточные и корневые сертификаты и установите их.", +"ErrorText": "Подпись сертификата не может быть проверена", +"RepairMethods": "", +"Category": "chaining" +}, +{ +"Anchor": "", +"Reason": "Не удается построить цепочку сертификатов при создании/проверке/усовершенствовании подписи или проверке сертификата.", +"Solution": "Скачайте и установите корневые и промежуточные сертификаты с сайта удостоверяющего центра, выдавшего сертификат. Если подпись содержит метки времени, проверьте также цепочку сертификата службы меток доверенного времени.", +"ErrorText": "0x800B010A", +"RepairMethods": "", +"Category": "chaining" +}, +{ +"Anchor": "", +"Reason": "Возможно, вы ввели неправильный пароль сертификата, и криптопровайдер заблокировал работу с закрытым ключом сертификата в этом сеансе.", +"Solution": "Перезапустите сеанс 1С:Предприятие.", +"ErrorText": "Ошибка при установке параметра модуля криптографии", +"RepairMethods": "" +}, +{ +"Anchor": "", +"Reason": "Сертификат отозван в Удостоверяющем центре.", +"Solution": "Подайте заявление на новый сертификат", +"ErrorText": "Сертификат отозван", +"RepairMethods": "", +"Category": "cert_revoked" +}, +{ +"Anchor": "", +"Reason": "Не удается построить цепочку сертификатов при создании/проверке/усовершенствовании подписи или проверке сертификата.", +"Solution": "Скачайте и установите корневые и промежуточные сертификаты с сайта удостоверяющего центра, выдавшего сертификат. Если подпись содержит метки времени, проверьте также цепочку сертификата службы меток доверенного времени.", +"ErrorText": "Цепочка сертификатов не может быть построена до доверенного корневого сертификата", +"RepairMethods": "", +"Category": "chaining" } ], -"LastChangeDate": "2023-01-18T23:50:46", -"Version": "3.0.0.5" +"LastChangeDate": "2023-07-06T10:42:24", +"Version": "3.0.1.3" } \ No newline at end of file diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Help/ru.html index fe16841cb..43ba8fa00 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Help/ru.html @@ -31,7 +31,7 @@
    Дата изменения - дата изменения данных версии файла (местное время).
  • Кодировка - автоматически выбирается значение По умолчанию.
  • Просмотр версии файла

    -
    • Нажмите Просмотреть, для того чтобы открыть выбранную версию файла соответствующим приложением для просмотра или редактирования (также можно открыть версию файла двойным щелчком мыши по нужной строке или с помощью соответствующей команды меню Еще).

    Сохранение версии файла на диск

    +
    • Нажмите Просмотреть, для того чтобы открыть выбранную версию файла соответствующим приложением для просмотра или редактирования (также можно открыть версию файла двойным щелчком мыши по нужной строке или с помощью соответствующей команды меню Еще).

    Сохранение версии файла на компьютер

    • Для того чтобы сохранить версию файла на диск или другое устройство,нажмите Сохранить как. Выберите каталог для сохранения файла.

    См. также:

    \ No newline at end of file diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Help/ru.html index 66a6fa2b9..0567a961e 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Help/ru.html @@ -1,5 +1,5 @@ -

    В программу можно загрузить одновременно несколько выбранных файлов или несколько папок с файлами с диска на компьютере. Для этого необходимо выполнить соответствующие команды в списке файлов.

    +

    В программу можно загрузить одновременно несколько выбранных файлов или несколько папок с файлами с компьютера на компьютере. Для этого необходимо выполнить соответствующие команды в списке файлов.

    Если один или несколько выбранных файлов превышают предельно допустимый размер, то программа выводит предупреждение со списком файлов, которые невозможно загрузить.

    Нажмите Продолжить импорт, для того чтобы:

    • загрузить остальные файлы, перечисленные в списке для загрузки, которые проходят по размеру; diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Form.form index 78a20cc98..e30c1e2dd 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Form.form @@ -1489,7 +1489,7 @@ 2 ru - Сохранить файл на диск или другое устройство + Сохранить файл на компьютер или другое устройство true diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Help/ru.html index b609d252f..3d16ecd8d 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Help/ru.html @@ -11,7 +11,7 @@
    • Редактирует - пользователь, который занял файл для редактирования;
    • Версия - номер версии файла;
    • Отредактировал - пользователь, который добавил версию файла. -
    • Том - том на диске, в котором хранятся файлы; +
    • Том - том в сетевом каталоге, в котором хранятся файлы;
    • Путь к файлу на томе.

    Доступные действия:

    • Просмотреть - Открыть файл внешним приложением для просмотра;
      @@ -20,7 +20,7 @@
    • Открыть карточку файла можно с помощью соответствующей команды меню Еще; 
    • -
      Сохранить файл в указанный каталог на жестком или сетевом диске можно с помощью команды Еще - Сохранить как.

    См. также:

    +
    Сохранить файл в указанный локальный или сетевой каталог можно с помощью команды Еще - Сохранить как.

    См. также:

    • diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form index 58b6b1b32..664076636 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Form.form @@ -4,6 +4,41 @@ ru Присоединенные файлы + + ИнформационноеСообщение + 377 + + <key>ru</key> + <value>При медленном открытие списка файлов переключите режим просмотра на список (меню Еще - Дополнительно - Режим просмотра) +</value> + + true + + true + + + ИнформационноеСообщениеРасширеннаяПодсказка + 379 + Label + true + true + + Left + + + + ИнформационноеСообщениеКонтекстноеМеню + 378 + true + + true + Label + true + true + + Left + + ВладелецФайла 280 @@ -296,1595 +331,6 @@ Auto - - ГруппаФайлы - 270 - Usual - - Список - 6 - - <key>ru</key> - <value>Список</value> - - true - true - - true - - - Список - - None - CancelSearch - Change - Choose - Copy - CopyToClipboard - Create - Delete - DynamicListStandardSettings - Find - FindByCurrentValue - ListSettings - LoadDynamicListSettings - MoveItem - OutputList - Refresh - SaveDynamicListSettings - ShowMultipleSelection - - СписокНомерКартинкиПодписанЗашифрован - 206 - - <key>ru</key> - <value>Номер картинки</value> - - true - true - - true - - - Список.НомерКартинкиПодписанЗашифрован - - None - - ru - Наличие электронной подписи или шифрования - - - СписокНомерКартинкиПодписанЗашифрованРасширеннаяПодсказка - 208 - Label - true - true - - Left - - - - СписокНомерКартинкиПодписанЗашифрованКонтекстноеМеню - 207 - true - - PictureField - true - Enter - true - - CommonPicture.ПодписанЗашифрованЗаголовок - - Left - true - - 2 - true - true - true - true - - CommonPicture.ПодписанЗашифрованСостояния - - - - 1 - - - - - СписокГруппаИмяОписание - 204 - - СписокНаименование - 86 - - <key>ru</key> - <value>Наименование</value> - - true - true - - true - - - Список.Наименование - - - ru - Имя файла (без расширения) - - - СписокНаименованиеExtendedTooltip - 159 - Label - true - true - - Left - - - - СписокНаименованиеКонтекстноеМеню - 87 - true - - LabelField - true - Enter - true - true - Left - true - - 20 - true - true - - - - СписокОписание - 168 - - <key>ru</key> - <value>Описание</value> - - true - true - - true - - - Список.Описание - - None - - ru - Краткое описание файла - - - СписокОписаниеРасширеннаяПодсказка - 170 - Label - true - true - - Left - - - - СписокОписаниеКонтекстноеМеню - 169 - true - - LabelField - true - Enter - true - true - Left - true - - 5 - true - true - - - true - true - - true - - - <key>ru</key> - <value>Группа имя описание</value> - - None - - СписокГруппаИмяОписаниеРасширеннаяПодсказка - 205 - Label - true - true - - Left - - - ColumnGroup - - InCell - auto - true - - - - СписокВажныеРеквизиты - 214 - - СписокДатаИзменения - 100 - - <key>ru</key> - <value>Дата изменения</value> - - true - true - - true - - - Список.ДатаИзменения - - - ru - Дата изменения данных файла (местное время) - - - СписокДатаИзмененияРасширеннаяПодсказка - 162 - Label - true - true - - Left - - - - СписокДатаИзмененияКонтекстноеМеню - 101 - true - - LabelField - true - Enter - true - Left - true - - 15 - true - true - false - - - - СписокОтредактировал - 191 - - <key>ru</key> - <value>Отредактировал</value> - - true - true - - true - - - Список.Отредактировал - - - ru - Последний пользователь, который отредактировал файл - - - СписокОтредактировалРасширеннаяПодсказка - 193 - Label - true - true - - Left - - - - СписокОтредактировалКонтекстноеМеню - 192 - true - - LabelField - true - Enter - true - Left - true - - true - true - - - true - true - - true - - - <key>ru</key> - <value>Важные реквизиты</value> - - None - - СписокВажныеРеквизитыРасширеннаяПодсказка - 215 - Label - true - true - - Left - - - ColumnGroup - - auto - true - - - - СписокРазмер - 98 - - <key>ru</key> - <value>Размер (КБ)</value> - - true - true - - true - - - Список.Размер - - - ru - Размер файла в килобайтах - - - СписокРазмерExtendedTooltip - 164 - Label - true - true - - Left - - - - СписокРазмерКонтекстноеМеню - 99 - true - - LabelField - Enter - true - Left - true - - 10 - true - true - false - - ru - ЧЦ=10; ЧН=0 - - - - - СписокРедактирует - 199 - - <key>ru</key> - <value>Редактирует</value> - - true - true - - - Список.Редактирует - - - ru - Пользователь, который занял файл для редактирования - - - СписокРедактируетРасширеннаяПодсказка - 201 - Label - true - true - - Left - - - - СписокРедактируетКонтекстноеМеню - 200 - true - - LabelField - true - Enter - true - Left - true - - true - true - - - - СписокДатаСоздания - 179 - - <key>ru</key> - <value>Дата создания</value> - - true - true - - - Список.ДатаСоздания - - - ru - Дата добавления файла в список - - - СписокДатаСозданияРасширеннаяПодсказка - 181 - Label - true - true - - Left - - - - СписокДатаСозданияКонтекстноеМеню - 180 - true - - LabelField - true - Enter - true - Left - true - - 15 - true - true - false - - - - СписокАвтор - 182 - - <key>ru</key> - <value>Автор</value> - - true - true - - - Список.Автор - - - ru - Пользователь, который добавил файл в список - - - СписокАвторРасширеннаяПодсказка - 184 - Label - true - true - - Left - - - - СписокАвторКонтекстноеМеню - 183 - true - - LabelField - true - Enter - true - Left - true - - 15 - true - true - false - - - - СписокСсылка - 165 - - <key>ru</key> - <value>Ссылка</value> - - true - true - - - Список.Ссылка - - - СписокСсылкаРасширеннаяПодсказка - 167 - Label - true - true - - Left - - - - СписокСсылкаКонтекстноеМеню - 166 - true - - LabelField - Enter - true - Left - true - - 1 - true - true - - - None - - СписокКоманднаяПанель - 8 - Left - true - - - DragCheck - СписокПроверкаПеретаскивания - - - Selection - СписокВыбор - - - BeforeAddRow - СписокПередНачаломДобавления - - - OnActivateRow - СписокПриАктивизацииСтроки - - - Drag - СписокПеретаскивание - - - BeforeRowChange - СписокПередНачаломИзменения - - - OnChange - СписокПриИзменении - - - СписокСтрокаПоиска - 248 - - СписокСтрокаПоискаРасширеннаяПодсказка - 250 - Label - true - true - - Left - - - - СписокСтрокаПоискаКонтекстноеМеню - 249 - true - - Список - - true - - - - СписокСостояниеПросмотра - 251 - - СписокСостояниеПросмотраРасширеннаяПодсказка - 253 - Label - true - true - - Left - - - - СписокСостояниеПросмотраКонтекстноеМеню - 252 - true - - ViewStatusAddition - Список - - true - - - - СписокУправлениеПоиском - 254 - - СписокУправлениеПоискомРасширеннаяПодсказка - 256 - Label - true - true - - Left - - - - СписокУправлениеПоискомКонтекстноеМеню - 255 - true - - SearchControlAddition - Список - - true - - - - СписокExtendedTooltip - 156 - Label - true - true - - Left - - - - СписокКонтекстноеМеню - 7 - - СписокКонтекстноеМенюДобавить - 54 - true - - true - - - СписокКонтекстноеМенюДобавитьРасширеннаяПодсказка - 132 - Label - true - true - - Left - - - Form.Command.Добавить - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюГруппаКомандДобавить - 274 - - СписокКонтекстноеМенюДобавитьИзФайлаНаДиске - 276 - - <key>ru</key> - <value>Из файла на диске ...</value> - - true - true - - true - - - СписокКонтекстноеМенюДобавитьИзФайлаНаДискеРасширеннаяПодсказка - 277 - Label - true - true - - Left - - - Form.Command.Добавить - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюДобавитьФайлПоШаблону - 330 - true - true - - true - - - СписокКонтекстноеМенюДобавитьФайлПоШаблонуРасширеннаяПодсказка - 331 - Label - true - true - - Left - - - Form.Command.ДобавитьФайлПоШаблону - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюДобавитьФайлСоСканера - 278 - true - true - - true - - - СписокКонтекстноеМенюДобавитьФайлСоСканераРасширеннаяПодсказка - 279 - Label - true - true - - Left - - - Form.Command.ДобавитьФайлСоСканера - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюСоздатьГруппу - 309 - true - true - - true - - - СписокКонтекстноеМенюСоздатьГруппуРасширеннаяПодсказка - 310 - Label - true - true - - Left - - - Form.Command.СоздатьГруппу - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Добавить</value> - - - СписокКонтекстноеМенюГруппаКомандДобавитьРасширеннаяПодсказка - 275 - Label - true - true - - Left - - - Popup - - - StdPicture.CreateListItem - - Auto - Normal - - - - СписокКонтекстноеМенюИзменить - 202 - true - true - - true - - - СписокКонтекстноеМенюИзменитьРасширеннаяПодсказка - 203 - Label - true - true - - Left - - - Form.Command.ОткрытьСвойстваФайла - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюГруппаКомандОсновные - 55 - - СписокКонтекстноеМенюОткрыть - 56 - true - true - - true - - - СписокКонтекстноеМенюОткрытьРасширеннаяПодсказка - 134 - Label - true - true - - Left - - - Form.Command.ОткрытьФайлДляПросмотра - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюРедактировать - 58 - true - true - - true - - - СписокКонтекстноеМенюРедактироватьExtendedTooltip - 136 - Label - true - true - - Left - - - Form.Command.Редактировать - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюЗакончитьРедактирование - 59 - - <key>ru</key> - <value>Закончить редактирование</value> - - true - true - - true - - - СписокКонтекстноеМенюЗакончитьРедактированиеExtendedTooltip - 137 - Label - true - true - - Left - - - Form.Command.ЗакончитьРедактирование - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Контекстное меню группа команд основные</value> - - - СписокКонтекстноеМенюГруппаКомандОсновныеРасширеннаяПодсказка - 133 - Label - true - true - - Left - - - - - - СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрование - 79 - - СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодпись - 246 - - СписокКонтекстноеМенюПодписать - 80 - true - true - - true - - - СписокКонтекстноеМенюПодписатьРасширеннаяПодсказка - 150 - Label - true - true - - Left - - - Form.Command.Подписать - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюДобавитьПодписьИзФайла - 81 - true - true - - true - - - СписокКонтекстноеМенюДобавитьПодписьИзФайлаРасширеннаяПодсказка - 151 - Label - true - true - - Left - - - Form.Command.ДобавитьЭПИзФайла - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюСохранитьВместеСПодписью - 82 - true - true - - true - - - СписокКонтекстноеМенюСохранитьВместеСПодписьюРасширеннаяПодсказка - 152 - Label - true - true - - Left - - - Form.Command.СохранитьВместеСЭП - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Контекстное меню группа команд электронная подпись</value> - - - СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьРасширеннаяПодсказка - 247 - Label - true - true - - Left - - - - - - СписокКонтекстноеМенюГруппаКомандШифрование - 83 - - СписокКонтекстноеМенюЗашифровать - 84 - true - true - - true - - - СписокКонтекстноеМенюЗашифроватьExtendedTooltip - 154 - Label - true - true - - Left - - - Form.Command.Зашифровать - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюРасшифровать - 85 - true - true - - true - - - СписокКонтекстноеМенюРасшифроватьExtendedTooltip - 155 - Label - true - true - - Left - - - Form.Command.Расшифровать - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Контекстное меню группа команд шифрование</value> - - - СписокКонтекстноеМенюГруппаКомандШифрованиеРасширеннаяПодсказка - 153 - Label - true - true - - Left - - - - - true - true - - true - - - <key>ru</key> - <value>Электронная подпись и шифрование</value> - - - СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрованиеРасширеннаяПодсказка - 149 - Label - true - true - - Left - - - Popup - - - CommonPicture.ПодписанЗашифрованЗаголовок - - Auto - Normal - - - - СписокКонтекстноеМенюГруппаКомандДополнительные - 61 - - СписокКонтекстноеМенюСкопировать - 63 - true - true - - true - - - СписокКонтекстноеМенюСкопироватьExtendedTooltip - 140 - Label - true - true - - Left - - - Form.Command.Скопировать - Normal - Auto - true - true - UserCmds - Auto - - - КонтекстноеМенюУстановитьПометкуУдаления - 64 - true - true - - true - - - КонтекстноеМенюУстановитьПометкуУдаленияРасширеннаяПодсказка - 141 - Label - true - true - - Left - - - Form.Command.УстановитьПометкуУдаления - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюУдалить - 360 - true - true - - true - - - СписокКонтекстноеМенюУдалитьРасширеннаяПодсказка - 361 - Label - true - true - - Left - - - Form.Command.Удалить - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюСохранитьКак - 65 - true - true - - true - - - СписокКонтекстноеМенюСохранитьКакExtendedTooltip - 142 - Label - true - true - - Left - - - Form.Command.СохранитьКак - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюПереместитьВГруппу - 340 - true - true - - true - - - СписокКонтекстноеМенюПереместитьВГруппуРасширеннаяПодсказка - 341 - Label - true - true - - Left - - - Form.Command.ПереместитьВГруппу - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюОсвободить - 60 - true - true - - true - - - СписокКонтекстноеМенюОсвободитьExtendedTooltip - 138 - Label - true - true - - Left - - - Form.Command.Освободить - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюОбновитьИзФайлаНаДиске - 66 - true - true - - true - - - СписокКонтекстноеМенюОбновитьИзФайлаНаДискеExtendedTooltip - 143 - Label - true - true - - Left - - - Form.Command.ОбновитьИзФайлаНаДиске - Normal - Auto - true - true - UserCmds - Auto - - - СписокКонтекстноеМенюОткрытьКаталогФайла - 68 - true - true - - true - - - СписокКонтекстноеМенюОткрытьКаталогФайлаExtendedTooltip - 145 - Label - true - true - - Left - - - Form.Command.ОткрытьКаталогФайла - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Контекстное меню группа команд дополнительные</value> - - - СписокКонтекстноеМенюГруппаКомандДополнительныеРасширеннаяПодсказка - 139 - Label - true - true - - Left - - - - - - СписокКонтекстноеМенюГруппаКомандОтСписка - 69 - - СписокКонтекстноеМенюВывестиСписок - 70 - true - true - - true - - - СписокКонтекстноеМенюВывестиСписокРасширеннаяПодсказка - 147 - Label - true - true - - Left - - - Form.StandardCommand.OutputList - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Контекстное меню группа команд от списка</value> - - - СписокКонтекстноеМенюГруппаКомандОтСпискаExtendedTooltip - 146 - Label - true - true - - Left - - - - - - HierarchicalList - true - true - true - 8 - true - true - true - MultiRow -
      true
      - 1 - 1 - AutoUse - AutoUse - true - true - Auto - Auto - true - true - true - true - - Список.ИндексКартинки - - - CommonPicture.КоллекцияПиктограммФайлов - - None - None - None - true - - 60 - - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - true - ГруппаПользовательскихНастроек - -
      - - АдресДанныхФайла - 267 - true - - true - - - АдресДанныхФайла - - None - - АдресДанныхФайлаРасширеннаяПодсказка - 269 - Label - true - true - - Left - - - - АдресДанныхФайлаКонтекстноеМеню - 268 - true - - PictureField - Enter - true - Left - true - - true - true - true - true - AutoSize - - ru - Выберите файл для предварительного просмотра - - - - 1 - - - - true - true - - true - - - <key>ru</key> - <value>Файлы</value> - - - ГруппаФайлыРасширеннаяПодсказка - 271 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - -
      true true @@ -1913,6 +359,1595 @@ Auto + + ГруппаФайлы + 270 + Usual + + Список + 6 + + <key>ru</key> + <value>Список</value> + + true + true + + true + + + Список + + None + CancelSearch + Change + Choose + Copy + CopyToClipboard + Create + Delete + DynamicListStandardSettings + Find + FindByCurrentValue + ListSettings + LoadDynamicListSettings + MoveItem + OutputList + Refresh + SaveDynamicListSettings + ShowMultipleSelection + + СписокНомерКартинкиПодписанЗашифрован + 206 + + <key>ru</key> + <value>Номер картинки</value> + + true + true + + true + + + Список.НомерКартинкиПодписанЗашифрован + + None + + ru + Наличие электронной подписи или шифрования + + + СписокНомерКартинкиПодписанЗашифрованРасширеннаяПодсказка + 208 + Label + true + true + + Left + + + + СписокНомерКартинкиПодписанЗашифрованКонтекстноеМеню + 207 + true + + PictureField + true + Enter + true + + CommonPicture.ПодписанЗашифрованЗаголовок + + Left + true + + 2 + true + true + true + true + + CommonPicture.ПодписанЗашифрованСостояния + + + + 1 + + + + + СписокГруппаИмяОписание + 204 + + СписокНаименование + 86 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + Список.Наименование + + + ru + Имя файла (без расширения) + + + СписокНаименованиеExtendedTooltip + 159 + Label + true + true + + Left + + + + СписокНаименованиеКонтекстноеМеню + 87 + true + + LabelField + true + Enter + true + true + Left + true + + 20 + true + true + + + + СписокОписание + 168 + + <key>ru</key> + <value>Описание</value> + + true + true + + true + + + Список.Описание + + None + + ru + Краткое описание файла + + + СписокОписаниеРасширеннаяПодсказка + 170 + Label + true + true + + Left + + + + СписокОписаниеКонтекстноеМеню + 169 + true + + LabelField + true + Enter + true + true + Left + true + + 5 + true + true + + + true + true + + true + + + <key>ru</key> + <value>Группа имя описание</value> + + None + + СписокГруппаИмяОписаниеРасширеннаяПодсказка + 205 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + СписокВажныеРеквизиты + 214 + + СписокДатаИзменения + 100 + + <key>ru</key> + <value>Дата изменения</value> + + true + true + + true + + + Список.ДатаИзменения + + + ru + Дата изменения данных файла (местное время) + + + СписокДатаИзмененияРасширеннаяПодсказка + 162 + Label + true + true + + Left + + + + СписокДатаИзмененияКонтекстноеМеню + 101 + true + + LabelField + true + Enter + true + Left + true + + 15 + true + true + false + + + + СписокОтредактировал + 191 + + <key>ru</key> + <value>Отредактировал</value> + + true + true + + true + + + Список.Отредактировал + + + ru + Последний пользователь, который отредактировал файл + + + СписокОтредактировалРасширеннаяПодсказка + 193 + Label + true + true + + Left + + + + СписокОтредактировалКонтекстноеМеню + 192 + true + + LabelField + true + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Важные реквизиты</value> + + None + + СписокВажныеРеквизитыРасширеннаяПодсказка + 215 + Label + true + true + + Left + + + ColumnGroup + + auto + true + + + + СписокРазмер + 98 + + <key>ru</key> + <value>Размер (КБ)</value> + + true + true + + true + + + Список.Размер + + + ru + Размер файла в килобайтах + + + СписокРазмерExtendedTooltip + 164 + Label + true + true + + Left + + + + СписокРазмерКонтекстноеМеню + 99 + true + + LabelField + Enter + true + Left + true + + 10 + true + true + false + + ru + ЧЦ=10; ЧН=0 + + + + + СписокРедактирует + 199 + + <key>ru</key> + <value>Редактирует</value> + + true + true + + + Список.Редактирует + + + ru + Пользователь, который занял файл для редактирования + + + СписокРедактируетРасширеннаяПодсказка + 201 + Label + true + true + + Left + + + + СписокРедактируетКонтекстноеМеню + 200 + true + + LabelField + true + Enter + true + Left + true + + true + true + + + + СписокДатаСоздания + 179 + + <key>ru</key> + <value>Дата создания</value> + + true + true + + + Список.ДатаСоздания + + + ru + Дата добавления файла в список + + + СписокДатаСозданияРасширеннаяПодсказка + 181 + Label + true + true + + Left + + + + СписокДатаСозданияКонтекстноеМеню + 180 + true + + LabelField + true + Enter + true + Left + true + + 15 + true + true + false + + + + СписокАвтор + 182 + + <key>ru</key> + <value>Автор</value> + + true + true + + + Список.Автор + + + ru + Пользователь, который добавил файл в список + + + СписокАвторРасширеннаяПодсказка + 184 + Label + true + true + + Left + + + + СписокАвторКонтекстноеМеню + 183 + true + + LabelField + true + Enter + true + Left + true + + 15 + true + true + false + + + + СписокСсылка + 165 + + <key>ru</key> + <value>Ссылка</value> + + true + true + + + Список.Ссылка + + + СписокСсылкаРасширеннаяПодсказка + 167 + Label + true + true + + Left + + + + СписокСсылкаКонтекстноеМеню + 166 + true + + LabelField + Enter + true + Left + true + + 1 + true + true + + + None + + СписокКоманднаяПанель + 8 + Left + true + + + DragCheck + СписокПроверкаПеретаскивания + + + Selection + СписокВыбор + + + BeforeAddRow + СписокПередНачаломДобавления + + + OnActivateRow + СписокПриАктивизацииСтроки + + + Drag + СписокПеретаскивание + + + BeforeRowChange + СписокПередНачаломИзменения + + + OnChange + СписокПриИзменении + + + СписокСтрокаПоиска + 248 + + СписокСтрокаПоискаРасширеннаяПодсказка + 250 + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 249 + true + + Список + + true + + + + СписокСостояниеПросмотра + 251 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 253 + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 252 + true + + ViewStatusAddition + Список + + true + + + + СписокУправлениеПоиском + 254 + + СписокУправлениеПоискомРасширеннаяПодсказка + 256 + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 255 + true + + SearchControlAddition + Список + + true + + + + СписокExtendedTooltip + 156 + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 7 + + СписокКонтекстноеМенюДобавить + 54 + true + + true + + + СписокКонтекстноеМенюДобавитьРасширеннаяПодсказка + 132 + Label + true + true + + Left + + + Form.Command.Добавить + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюГруппаКомандДобавить + 274 + + СписокКонтекстноеМенюДобавитьИзФайлаНаДиске + 276 + + <key>ru</key> + <value>Из файла на компьютере ...</value> + + true + true + + true + + + СписокКонтекстноеМенюДобавитьИзФайлаНаДискеРасширеннаяПодсказка + 277 + Label + true + true + + Left + + + Form.Command.Добавить + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюДобавитьФайлПоШаблону + 330 + true + true + + true + + + СписокКонтекстноеМенюДобавитьФайлПоШаблонуРасширеннаяПодсказка + 331 + Label + true + true + + Left + + + Form.Command.ДобавитьФайлПоШаблону + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюДобавитьФайлСоСканера + 278 + true + true + + true + + + СписокКонтекстноеМенюДобавитьФайлСоСканераРасширеннаяПодсказка + 279 + Label + true + true + + Left + + + Form.Command.ДобавитьФайлСоСканера + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюСоздатьГруппу + 309 + true + true + + true + + + СписокКонтекстноеМенюСоздатьГруппуРасширеннаяПодсказка + 310 + Label + true + true + + Left + + + Form.Command.СоздатьГруппу + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Добавить</value> + + + СписокКонтекстноеМенюГруппаКомандДобавитьРасширеннаяПодсказка + 275 + Label + true + true + + Left + + + Popup + + + StdPicture.CreateListItem + + Auto + Normal + + + + СписокКонтекстноеМенюИзменить + 202 + true + true + + true + + + СписокКонтекстноеМенюИзменитьРасширеннаяПодсказка + 203 + Label + true + true + + Left + + + Form.Command.ОткрытьСвойстваФайла + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюГруппаКомандОсновные + 55 + + СписокКонтекстноеМенюОткрыть + 56 + true + true + + true + + + СписокКонтекстноеМенюОткрытьРасширеннаяПодсказка + 134 + Label + true + true + + Left + + + Form.Command.ОткрытьФайлДляПросмотра + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюРедактировать + 58 + true + true + + true + + + СписокКонтекстноеМенюРедактироватьExtendedTooltip + 136 + Label + true + true + + Left + + + Form.Command.Редактировать + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюЗакончитьРедактирование + 59 + + <key>ru</key> + <value>Закончить редактирование</value> + + true + true + + true + + + СписокКонтекстноеМенюЗакончитьРедактированиеExtendedTooltip + 137 + Label + true + true + + Left + + + Form.Command.ЗакончитьРедактирование + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Контекстное меню группа команд основные</value> + + + СписокКонтекстноеМенюГруппаКомандОсновныеРасширеннаяПодсказка + 133 + Label + true + true + + Left + + + + + + СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрование + 79 + + СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодпись + 246 + + СписокКонтекстноеМенюПодписать + 80 + true + true + + true + + + СписокКонтекстноеМенюПодписатьРасширеннаяПодсказка + 150 + Label + true + true + + Left + + + Form.Command.Подписать + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюДобавитьПодписьИзФайла + 81 + true + true + + true + + + СписокКонтекстноеМенюДобавитьПодписьИзФайлаРасширеннаяПодсказка + 151 + Label + true + true + + Left + + + Form.Command.ДобавитьЭПИзФайла + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюСохранитьВместеСПодписью + 82 + true + true + + true + + + СписокКонтекстноеМенюСохранитьВместеСПодписьюРасширеннаяПодсказка + 152 + Label + true + true + + Left + + + Form.Command.СохранитьВместеСЭП + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Контекстное меню группа команд электронная подпись</value> + + + СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьРасширеннаяПодсказка + 247 + Label + true + true + + Left + + + + + + СписокКонтекстноеМенюГруппаКомандШифрование + 83 + + СписокКонтекстноеМенюЗашифровать + 84 + true + true + + true + + + СписокКонтекстноеМенюЗашифроватьExtendedTooltip + 154 + Label + true + true + + Left + + + Form.Command.Зашифровать + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюРасшифровать + 85 + true + true + + true + + + СписокКонтекстноеМенюРасшифроватьExtendedTooltip + 155 + Label + true + true + + Left + + + Form.Command.Расшифровать + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Контекстное меню группа команд шифрование</value> + + + СписокКонтекстноеМенюГруппаКомандШифрованиеРасширеннаяПодсказка + 153 + Label + true + true + + Left + + + + + true + true + + true + + + <key>ru</key> + <value>Электронная подпись и шифрование</value> + + + СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрованиеРасширеннаяПодсказка + 149 + Label + true + true + + Left + + + Popup + + + CommonPicture.ПодписанЗашифрованЗаголовок + + Auto + Normal + + + + СписокКонтекстноеМенюГруппаКомандДополнительные + 61 + + СписокКонтекстноеМенюСкопировать + 63 + true + true + + true + + + СписокКонтекстноеМенюСкопироватьExtendedTooltip + 140 + Label + true + true + + Left + + + Form.Command.Скопировать + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюУстановитьПометкуУдаления + 64 + true + true + + true + + + КонтекстноеМенюУстановитьПометкуУдаленияРасширеннаяПодсказка + 141 + Label + true + true + + Left + + + Form.Command.УстановитьПометкуУдаления + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюУдалить + 360 + true + true + + true + + + СписокКонтекстноеМенюУдалитьРасширеннаяПодсказка + 361 + Label + true + true + + Left + + + Form.Command.Удалить + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюСохранитьКак + 65 + true + true + + true + + + СписокКонтекстноеМенюСохранитьКакExtendedTooltip + 142 + Label + true + true + + Left + + + Form.Command.СохранитьКак + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюПереместитьВГруппу + 340 + true + true + + true + + + СписокКонтекстноеМенюПереместитьВГруппуРасширеннаяПодсказка + 341 + Label + true + true + + Left + + + Form.Command.ПереместитьВГруппу + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюОсвободить + 60 + true + true + + true + + + СписокКонтекстноеМенюОсвободитьExtendedTooltip + 138 + Label + true + true + + Left + + + Form.Command.Освободить + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюОбновитьИзФайлаНаДиске + 66 + true + true + + true + + + СписокКонтекстноеМенюОбновитьИзФайлаНаДискеExtendedTooltip + 143 + Label + true + true + + Left + + + Form.Command.ОбновитьИзФайлаНаДиске + Normal + Auto + true + true + UserCmds + Auto + + + СписокКонтекстноеМенюОткрытьКаталогФайла + 68 + true + true + + true + + + СписокКонтекстноеМенюОткрытьКаталогФайлаExtendedTooltip + 145 + Label + true + true + + Left + + + Form.Command.ОткрытьКаталогФайла + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Контекстное меню группа команд дополнительные</value> + + + СписокКонтекстноеМенюГруппаКомандДополнительныеРасширеннаяПодсказка + 139 + Label + true + true + + Left + + + + + + СписокКонтекстноеМенюГруппаКомандОтСписка + 69 + + СписокКонтекстноеМенюВывестиСписок + 70 + true + true + + true + + + СписокКонтекстноеМенюВывестиСписокРасширеннаяПодсказка + 147 + Label + true + true + + Left + + + Form.StandardCommand.OutputList + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Контекстное меню группа команд от списка</value> + + + СписокКонтекстноеМенюГруппаКомандОтСпискаExtendedTooltip + 146 + Label + true + true + + Left + + + + + + HierarchicalList + true + true + true + 8 + true + true + true + MultiRow +
      true
      + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + true + true + + Список.ИндексКартинки + + + CommonPicture.КоллекцияПиктограммФайлов + + None + None + None + true + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + ГруппаПользовательскихНастроек + +
      + + АдресДанныхФайла + 267 + true + + true + + + АдресДанныхФайла + + None + + АдресДанныхФайлаРасширеннаяПодсказка + 269 + Label + true + true + + Left + + + + АдресДанныхФайлаКонтекстноеМеню + 268 + true + + PictureField + Enter + true + Left + true + + true + true + true + true + AutoSize + + ru + Выберите файл для предварительного просмотра + + + + 1 + + + + true + true + + true + + + <key>ru</key> + <value>Файлы</value> + + + ГруппаФайлыРасширеннаяПодсказка + 271 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + true + true + Auto + Auto + +
      ФормаКоманднаяПанель -1 @@ -1949,7 +1984,7 @@ VeryHigh <key>ru</key> - <value>Добавить файл с диска...</value> + <value>Добавить файл с компьютера...</value> true @@ -1982,7 +2017,7 @@ 1 <key>ru</key> - <value>Файл с диска...</value> + <value>Файл с компьютера...</value> true true @@ -4137,7 +4172,7 @@ 4 ru - Сохранить файл на диск или другое устройство + Сохранить файл на компьютер или другое устройство true @@ -4297,12 +4332,12 @@ ОбновитьИзФайлаНаДиске <key>ru</key> - <value>Обновить из файла на диске...</value> + <value>Обновить из файла на компьютере...</value> 14 ru - Обновить из файла на диске + Обновить из файла на компьютере true @@ -4455,7 +4490,7 @@ 6 ru - Создать из файла на диске + Загрузить файл с компьютера true diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Help/ru.html index 6fc315189..e24e79641 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Help/ru.html @@ -11,7 +11,7 @@
      • Нажмите Добавить. Выберите способ ввода файла из выпадающего меню:
        • -
          Файл с диска;
          +
          Файл с компьютера;
          • укажите путь к файлу на компьютере.
        • По шаблону;
          @@ -50,13 +50,13 @@
          • Нажмите кнопку Отправить. Программа формирует почтовое сообщение, заполните необходимые поля. Присоединенный файл автоматически будет приложением данного письма.

          Сохранение файла

          • -
            С помощью команды Еще - Дополнительно - Сохранить как можно сохранить файл в указанный каталог на жестком или сетевом диске.
            +
            С помощью команды Еще - Дополнительно - Сохранить как можно сохранить файл в указанный каталог на компьютере.
          • Также можно воспользоваться соответствующей командой контекстного меню по правой кнопке мыши.
          • Соответствующей командой меню Еще - Дополнительно или контекстного меню по правой кнопке мыши можно Открыть каталог файла в Проводнике Windows.

          Обновление файла

          -
          • С помощью команды Еще - Дополнительно - Обновить из файла на диске можно обновить файл из оригинального файла на диске (из которого изначально был создан файл в программе). +
            • С помощью команды Еще - Дополнительно - Обновить из файла на компьютере можно обновить файл из оригинального файла на компьютере (из которого изначально был создан файл в программе).
            • Также можно воспользоваться соответствующей командой контекстного меню по правой кнопке мыши.

            Сравнение файлов

            • Выберите в списке файлы для сравнения.
              @@ -64,7 +64,7 @@
              Выполните команду Еще - Сравнить файлы. При первом сравнении файлов программа предлагает выбрать, с помощью какой офисной программы выполнить сравнение. После этого открываются файлы для сравнения в выбранной офисной программе. Программа для сравнения должна быть установлена на компьютере.

            Электронная подпись и шифрование

            В выпадающем меню по кнопке  Электронная подпись и шифрование доступны команды для работы с электронной подписью файлов:

            • Подписать - создает ЭП для файла. Перед созданием ЭП программа предлагает выбрать сертификат ЭП из имеющихся на компьютере. Выбор сертификата можно сделать и во время персональных настроек программы. Подписанный файл становится недоступным для редактирования и отображается в списках со значком . -
            • Сохранить вместе с электронной подписью - сохраняет подпись в файл на диске. Команду можно использовать, например, если необходимо передать подписанный файл другому лицу. +
            • Сохранить вместе с электронной подписью - сохраняет подпись в файл на компьютере. Команду можно использовать, например, если необходимо передать подписанный файл другому лицу.
            • Добавить электронную подпись из файла - добавляет подпись к файлу. Команду можно использовать, например, если подпись (файл подписи) была получена позже, чем подписанный файл.
            • Зашифровать - по команде происходит шифрование файла. В отличие от подписания могут использоваться несколько сертификатов, например, если необходимо зашифровать файл для нескольких пользователей. Зашифрованный файл в списках отображается со значком .
            • Расшифровать - по команде происходит расшифровка файла. Для расшифровки нужно ввести пароль к закрытому ключу.

            Печать табличного документа со штампом электронной подписи

            diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl index 1ff0d5017..e85381bb6 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl @@ -93,6 +93,7 @@ ЕстьРеквизитСлужебный = РаботаСФайламиСлужебный.ЕстьРеквизитСлужебный(ИмяСправочникаХранилищаФайлов); НастроитьДинамическийСписок(); + ВывестиУведомлениеЕслиМногоГрупп(МетаданныеСправочникаСФайлами); Если Не ЕстьГруппыФайлов Тогда СкрытьКнопкиСозданияГруппы(); @@ -164,15 +165,21 @@ Процедура ПриОткрытии(Отказ) Если ЕстьПравоДобавления Тогда - ДоступнаКомандаСканировать = РаботаСФайламиСлужебныйКлиент.ДоступнаКомандаСканировать(); + ДоступнаКомандаСканировать = РаботаСФайламиСлужебныйКлиент.ДоступноСканирование(); Элементы.ДобавитьФайлСоСканера.Видимость = ДоступнаКомандаСканировать; Элементы.СписокКонтекстноеМенюДобавитьФайлСоСканера.Видимость = ДоступнаКомандаСканировать; КонецЕсли; УстановитьДоступностьФайловыхКоманд(); + Если Элементы.ИнформационноеСообщение.Видимость + И Элементы.Список.Отображение = ОтображениеТаблицы.Список Тогда + Элементы.ИнформационноеСообщение.Видимость = Ложь; + КонецЕсли; + КонецПроцедуры + &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) @@ -443,13 +450,12 @@ ВладелецФайла = ЗначениеПараметраКД.Значение; КонецЕсли; - ПараметрыДобавления = Новый Структура; - ПараметрыДобавления.Вставить("ОбработчикРезультата", Неопределено); - ПараметрыДобавления.Вставить("ВладелецФайла", ВладелецФайла); - ПараметрыДобавления.Вставить("ФормаВладелец", ЭтотОбъект); - ПараметрыДобавления.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", Истина); - ПараметрыДобавления.Вставить("ЭтоФайл", Ложь); - РаботаСФайламиСлужебныйКлиент.ДобавитьСоСканера(ПараметрыДобавления); + ПараметрыДобавления = РаботаСФайламиКлиент.ПараметрыДобавленияСоСканера(); + ПараметрыДобавления.ВладелецФайла = ВладелецФайла; + ПараметрыДобавления.ФормаВладелец = ЭтотОбъект; + ПараметрыДобавления.НеОткрыватьКарточкуПослеСозданияИзФайла = Истина; + ПараметрыДобавления.ЭтоФайл = Ложь; + РаботаСФайламиКлиент.ДобавитьСоСканера(ПараметрыДобавления); КонецПроцедуры @@ -1542,6 +1548,38 @@ КонецПроцедуры +&НаСервере +Процедура ВывестиУведомлениеЕслиМногоГрупп(МетаданныеСправочникаСФайлами) + + МинимальноеКоличествоГруппДляВыводаСообщения = 5000; + + Если Не МетаданныеСправочникаСФайлами.Иерархический Или Элементы.Список.Отображение = ОтображениеТаблицы.Список Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + ТекстЗапроса = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(СправочникПрисоединенныеФайлы.ЭтоГруппа) КАК КоличествоГрупп + |ИЗ + | #СправочникПрисоединенныеФайлы КАК СправочникПрисоединенныеФайлы + |ГДЕ + | СправочникПрисоединенныеФайлы.ЭтоГруппа = ИСТИНА"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникПрисоединенныеФайлы", МетаданныеСправочникаСФайлами.ПолноеИмя()); + + Запрос = Новый Запрос(ТекстЗапроса); + + ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать(); + + Если ВыборкаДетальныеЗаписи.Следующий() Тогда + Если ВыборкаДетальныеЗаписи.КоличествоГрупп >= МинимальноеКоличествоГруппДляВыводаСообщения Тогда + Элементы.ИнформационноеСообщение.Видимость = Истина; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры &НаКлиентеНаСервереБезКонтекста Функция ИменаКомандФормы() diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form index 19602574b..03803a214 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Form.form @@ -4876,7 +4876,7 @@ 10 ru - Сохранить файл на диск или другое устройство + Сохранить файл на компьютер или другое устройство true @@ -5072,7 +5072,7 @@ 16 ru - Сохранить файл на диск или другое устройство вместе с электронной подписью + Сохранить файл на компьютер или другое устройство вместе с электронной подписью true @@ -5089,12 +5089,12 @@ ОбновитьИзФайлаНаДиске <key>ru</key> - <value>Обновить из файла на диске...</value> + <value>Обновить из файла на компьютере...</value> 17 ru - Обновить из файла на диске + Обновить из файла на компьютере true diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl index 8efb10586..8e6a852cf 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныйФайл/Module.bsl @@ -898,9 +898,8 @@ Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия( ПрисоединенныйФайл, Неопределено, ИдентификаторФормы); ИначеЕсли Режим = "ДляСохранения" Тогда - ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); - ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы; - Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ПрисоединенныйФайл,, ПараметрыДанныхФайла); + Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения( + ПрисоединенныйФайл,, ИдентификаторФормы); ИначеЕсли Режим = "ВызовСервера" Тогда ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы; diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Form.form index 57966d74a..deb9497f6 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Form.form @@ -559,7 +559,7 @@ 2 ru - Сохранить файл на диск или другое устройство + Сохранить файл на компьютер или другое устройство true diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Help/ru.html index 0a01a9af8..e2d846bed 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Help/ru.html @@ -40,7 +40,7 @@ UL {
          • После окончания редактирования файла нажмите Еще - Закончить редактирование, для того чтобы снять с него пометку занятости для редактирования. В зависимости от настроек команда также сохраняет версию файла или обновляет файл в хранилище. По умолчанию создается новая версия файла. Для изменения настройки при создании версии снимите соответствующий флажок.

          Просмотр карточки файла

          Сравнение версий

          • Нажмите Еще - Показать отличия, для того чтобы произвести сравнение версий файлов. Если программа для сравнения версий не была выбрана заранее в персональных настройках программы (вкладка Работа с файлами), предлагается ее выбрать. Доступны Microsoft Word или OpenOffice.org Writer.

          Сохранение файла

          -
          • Нажмите Еще - Сохранить как, для того чтобы сохранить файл в указанный каталог на жестком или сетевом диске. 

          Открытие файла в стандартной программе

          +
          • Нажмите Еще - Сохранить как, для того чтобы сохранить файл в указанный каталог на компьютере. 

          Открытие файла в стандартной программе

          • Нажмите Еще - Открыть стандартным приложением, для того чтобы перейти во внешнее приложение (Блокнот Windows) для редактирования файла.
          • Если необходимо, чтобы текстовые файлы c определенными расширениями по умолчанию открывались во внешнем приложении, внесите изменения в персональные настройки программы. Для этого:
            • В персональных настройках программы перейдите на вкладку Работа с файлами. diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Module.bsl index cd3c59353..851b99155 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактированиеТекстовогоФайла/Module.bsl @@ -93,10 +93,9 @@ И Параметр.Событие = "ДанныеФайлаИзменены" И Источник = Файл Тогда - ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); - ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; - - ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(Файл,, ПараметрыДанныхФайла); + ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); + ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь; + ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(Файл,,ПараметрыДанныхФайла); РежимРедактирования = Ложь; @@ -157,7 +156,6 @@ &НаКлиенте Процедура СохранитьКак(Команда) - // Выбираем путь к файлу на диске. ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); ВыборФайла.МножественныйВыбор = Ложь; diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Form.form index 81f980e78..36234cce6 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Form.form @@ -1530,7 +1530,7 @@ 6 ru - Сохранить файл на диск или другое устройство + Сохранить файл на компьютер или другое устройство true @@ -1551,12 +1551,12 @@ ОбновитьИзФайлаНаДиске <key>ru</key> - <value>Обновить из файла на диске...</value> + <value>Обновить из файла на компьютере...</value> 7 ru - Обновить из файла на диске + Обновить из файла на компьютере true diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Form.form index 4e16a8583..09938d67e 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Form.form @@ -283,7 +283,7 @@ ru - Копию файла на комьютере в рабочем каталоге (рекомендуется) + Копию файла на компьютере в рабочем каталоге (рекомендуется) 1 diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/СписокЗанятыхСВопросом/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/СписокЗанятыхСВопросом/Form.form index 8f46aa228..1034d05c4 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/СписокЗанятыхСВопросом/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/СписокЗанятыхСВопросом/Form.form @@ -1380,7 +1380,7 @@ 6 ru - Сохранить файл на диск или другое устройство + Сохранить файл на компьютер или другое устройство true @@ -1401,12 +1401,12 @@ ОбновитьИзФайлаНаДиске <key>ru</key> - <value>Обновить из файла на диске...</value> + <value>Обновить из файла на компьютере...</value> 7 ru - Обновить из файла на диске + Обновить из файла на компьютере true diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаПапки/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаПапки/Help/ru.html index ab3c9590a..99b9c3aa9 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаПапки/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаПапки/Help/ru.html @@ -1,5 +1,5 @@ -

              Предназначена для загрузки папки с диска на компьютере.

              +

              Предназначена для загрузки папки с компьютера.

              Открывается из списка файлов по команде Загрузить папку контекстного меню по правой кнопке мыши после выбора папки в открывшемся Проводнике Windows. В проводнике укажите путь к папке, нажмите Выбор папки.

              Заполните необходимые для загрузки папки сведения:

              • diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаФайлов/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаФайлов/Help/ru.html index bb7137650..84112a61f 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаФайлов/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаФайлов/Help/ru.html @@ -3,7 +3,7 @@

                Открывается из списка файлов по команде Загрузить файлы контекстного меню по правой кнопке мыши или меню Еще после выбора файла (файлов) в открывшемся Проводнике Windows. В проводнике выделите один или несколько файлов, нажмите Открыть.

                Выводится список загружаемых файлов. Можно заменить весь список с помощью кнопки Выбрать (дополнить список невозможно, при выборе новых файлов старые удаляются) - открыть Проводник Windows и выбрать другие файлы.

                Заполните необходимые для загрузки файлов сведения:

                -
                • В поле Папка автоматически проставляется выбранная папка в списке файлов, в которую будет загружены файлы с диска на компьютере. При необходимости можно выбрать другую папку; +
                  • В поле Папка автоматически проставляется выбранная папка в списке файлов, в которую будет загружены файлы с компьютера. При необходимости можно выбрать другую папку;
                  • Для экономии места на диске включите флажок Удалять файлы после добавления (по умолчанию выключен);
                  • @@ -13,7 +13,7 @@
                  • Для текстовых файлов можно Выбрать кодировку из списка.
                  • -
                    Для подтверждения нажмите Загрузить файлы.
                  Также можно использовать перетаскивание мышью для загрузки файлов с жесткого или сетевого диска - просто перетащите файлы мышью из Проводника Windows в нужную папку списка файлов программы.
                  +
                  Для подтверждения нажмите Загрузить файлы.
                Также можно использовать перетаскивание мышью для загрузки файлов с компьютера - просто перетащите файлы мышью из Проводника Windows в нужную папку списка файлов программы.

                См. также:

                • diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Help/ru.html index 690ac3527..bf35b5826 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Help/ru.html @@ -1,5 +1,5 @@ -

                  Позволяет скопировать выбранную папку с файлами из информационной базы на жесткий диск. При этом копируются только активные версии файлов.

                  +

                  Позволяет скопировать выбранную папку с файлами из программы на компьютер. При этом копируются только активные версии файлов.

                  Вызывается из списка файлов по команде контекстного меню папки по правой кнопке мыши Сохранить папку.

                  Сохранение папки

                  • diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Module.bsl index 862fea206..61831ca68 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Module.bsl @@ -139,7 +139,7 @@ ПоказатьОповещениеПользователя(НСтр("ru = 'Экспорт папки'"),, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Успешно завершен экспорт папки ""%1"" - |в папку на диске ""%2"".'"), + |в каталог на компьютере ""%2"".'"), Строка(ЧтоСохраняем), Строка(ПапкаДляЭкспорта) ) ); Закрыть(); @@ -210,7 +210,7 @@ КонецПроцедуры -// Рекурсивная функция, которая собственно и выгружает файлы на локальный диск. +// Рекурсивная функция, которая выгружает файлы на компьютер. // // Параметры: // ОбработчикРезультата - ОписаниеОповещения @@ -225,17 +225,17 @@ // РодительскаяПапка - СправочникСсылка.ПапкиФайлов - что сохраняем. // ОбщиеПараметры - Структура: // * ДляВсехФайлов - Булево - -// Истина: пользователь выбрал действие при перезаписи файла и +// Истина, если пользователь выбрал действие при перезаписи файла и // установил флажок "Для всех". Больше вопросов не задаем. -// Ложь: в каждом случае существования файла на диске, с тем же +// Ложь, если в каждом случае существования файла на компьютере, с тем же // именем, что и в информационной базе будем задавать вопрос. // * БазовоеДействие - КодВозвратаДиалога - // при выполнении одного действия для всех конфликтов при // записи файла (параметр ДляВсехФайлов = Истина) выполняется // действие, заданное этим параметром). -// .Да - перезаписать. -// .Пропустить - пропустить файл. -// .Прервать - прервать выгрузку. +// КодВозвратаДиалога.Да - перезаписать. +// КодВозвратаДиалога.Пропустить - пропустить файл. +// КодВозвратаДиалога.Прервать - прервать выгрузку. // &НаКлиенте Процедура ОбойтиДеревоФайлов(ОбработчикРезультата, ТаблицаФайлов, БазовыйКаталогСохранения, РодительскаяПапка, ОбщиеПараметры) @@ -711,7 +711,7 @@ Возврат; КонецЕсли; - // Для варианта с хранением файлов на диске (на сервере) удаляем файл из временного хранилища после получения. + // Для варианта с хранением файлов в томах удаляем файл из временного хранилища после получения. Если ЭтоАдресВременногоХранилища(АдресФайлаДляОткрытия) Тогда УдалитьИзВременногоХранилища(АдресФайлаДляОткрытия); КонецЕсли; @@ -719,7 +719,6 @@ ПараметрыВыполнения.ФайлНаДиске = Новый Файл(ПараметрыВыполнения.ПолноеИмяФайла); Попытка - // Сделаем файл только для чтения. ПараметрыВыполнения.ФайлНаДиске.УстановитьТолькоЧтение(Истина); // Поставим время модификации - как в информационной базе. ПараметрыВыполнения.ФайлНаДиске.УстановитьУниверсальноеВремяИзменения( diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl index 1081cc528..41724ec89 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl @@ -1658,11 +1658,12 @@ КонецПроцедуры // Возвращаемое значение: -// ВидКонтактнойИнформации - см. УправлениеКонтактнойИнформациейСлужебный.СтруктураВидаКонтактнойИнформации -// НаселенныйПунктДетально - Структура: -// ОсновнаяСтрана - СправочникСсылка.СтраныМира -// Страна - СправочникСсылка.СтраныМира -// ИсключатьГородИзМуниципальногоАдреса - Булево +// Структура: +// * ВидКонтактнойИнформации - см. УправлениеКонтактнойИнформациейСлужебный.СтруктураВидаКонтактнойИнформации +// * НаселенныйПунктДетально - Структура +// * ОсновнаяСтрана - СправочникСсылка.СтраныМира +// * Страна - СправочникСсылка.СтраныМира +// * ИсключатьГородИзМуниципальногоАдреса - Булево // &НаКлиенте Функция ОписаниеКонтекста() diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Form.form b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Form.form index 223411bea..b55368cf9 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Form.form +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Form.form @@ -4,308 +4,6 @@ ru Выберите улицу, населенный пункт - - ГруппаКоманднаяПанель - 66 - - ГруппаВыбрать - 68 - - Выбрать - 70 - true - true - - true - - - ВыбратьРасширеннаяПодсказка - 71 - Label - true - true - - Left - - - Form.Item.ВариантыАдреса.StandardCommand.Choose - Auto - true - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Выбрать</value> - - - ГруппаВыбратьРасширеннаяПодсказка - 69 - Label - true - true - - Left - - - CommandBar - - Left - - - - ГруппаНайти - 72 - - Найти - 63 - true - true - - true - - - Найти - - - НайтиРасширеннаяПодсказка - 65 - Label - true - true - - Left - - - - НайтиКонтекстноеМеню - 64 - true - - InputField - Enter - true - Left - true - - - AutoComplete - НайтиАвтоПодбор - - - Clearing - НайтиОчистка - - true - true - true - true - true - true - DontUse - Normal - - - true - true - - true - - - <key>ru</key> - <value>Найти</value> - - - ГруппаНайтиРасширеннаяПодсказка - 73 - Label - true - true - - Left - - - UsualGroup - - true - true - Auto - Auto - - - - ВариантыАдресаКонтекстноеМенюГруппаНайти - 49 - - ВариантыАдресаОбновить - 81 - true - true - - true - - - ВариантыАдресаОбновитьРасширеннаяПодсказка - 82 - Label - true - true - - Left - - - Form.Command.Обновить - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ВариантыАдресаКонтекстноеМенюНайти - 41 - true - true - - true - - - ВариантыАдресаКонтекстноеМенюНайтиРасширеннаяПодсказка - 42 - Label - true - true - - Left - - - Form.Item.ВариантыАдреса.StandardCommand.Find - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ВариантыАдресаКонтекстноеМенюОтменитьПоиск - 43 - true - true - - true - - - ВариантыАдресаКонтекстноеМенюОтменитьПоискРасширеннаяПодсказка - 44 - Label - true - true - - Left - - - Form.Item.ВариантыАдреса.StandardCommand.CancelSearch - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ВариантыАдресаСправка - 79 - true - true - - true - - - ВариантыАдресаСправкаРасширеннаяПодсказка - 80 - Label - true - true - - Left - - - Form.StandardCommand.Help - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Варианты адреса контекстное меню группа найти</value> - - 7 - false - - ВариантыАдресаКонтекстноеМенюГруппаНайтиРасширеннаяПодсказка - 50 - Label - true - true - - Left - - - CommandBar - - Right - Item.ВариантыАдреса - - - true - true - - true - - - <key>ru</key> - <value>Командная панель</value> - - Right - - ГруппаКоманднаяПанельРасширеннаяПодсказка - 67 - Label - true - true - - Left - - - UsualGroup - - true - true - Auto - Auto - - ВариантыАдреса 8 @@ -623,12 +321,65 @@ Auto - None - false ФормаКоманднаяПанель -1 + + Выбрать + 70 + true + true + + true + + + ВыбратьРасширеннаяПодсказка + 71 + Label + true + true + + Left + + + Form.Item.ВариантыАдреса.StandardCommand.Choose + Auto + true + true + true + UserCmds + Auto + + + true + true + + true + + ДополнениеПоиск + 92 + + ДополнениеПоискРасширеннаяПодсказка + 94 + Label + true + true + + Left + + + + ДополнениеПоискКонтекстноеМеню + 93 + true + + ВариантыАдреса + + true + + Left + true OnOpen @@ -651,11 +402,6 @@ true auto true - - - ГруппаКоманднаяПанель - - Объект 1 @@ -863,10 +609,6 @@ Найти - - <key>ru</key> - <value>Найти</value> - 8 String diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl index 461fc28bf..cf6a7a91d 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl @@ -75,11 +75,6 @@ ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто; - Элементы.Переместить(Элементы.ВариантыАдресаОбновить, Элементы.ФормаКоманднаяПанель); - Элементы.Переместить(Элементы.ВариантыАдресаКонтекстноеМенюНайти, Элементы.ФормаКоманднаяПанель); - Элементы.Переместить(Элементы.ВариантыАдресаКонтекстноеМенюОтменитьПоиск, Элементы.ФормаКоманднаяПанель); - Элементы.Переместить(Элементы.ВариантыАдресаСправка, Элементы.ФормаКоманднаяПанель); - ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "Выбрать", "Видимость", Ложь); ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ВариантыАдресаКонтекстноеМенюГруппаНайти", "Видимость", Ложь); @@ -124,24 +119,6 @@ КонецПроцедуры -&НаКлиенте -Процедура НайтиАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) - - Если ИспользуетсяВебСервис Тогда - Найти = Текст; - ПодключитьОбработчикОжидания("НайтиАдресныеОбъекты", 0.1, Истина); - Возврат; - КонецЕсли; - - Если ЗначениеЗаполнено(Текст) Тогда - Фильтр = Новый ФиксированнаяСтруктура("Представление", Текст); - Элементы.ВариантыАдреса.ОтборСтрок = Фильтр; - Иначе - Элементы.ВариантыАдреса.ОтборСтрок = Неопределено; - КонецЕсли; - -КонецПроцедуры - #КонецОбласти #Область ОбработчикиКомандФормы @@ -275,24 +252,6 @@ КонецПроцедуры -&НаКлиенте -Процедура НайтиОчистка(Элемент, СтандартнаяОбработка) - - Если ИспользуетсяВебСервис Тогда - Найти = ""; - ПодключитьОбработчикОжидания("НайтиАдресныеОбъекты", 0.1, Истина); - Возврат; - КонецЕсли; - - Элементы.ВариантыАдреса.ОтборСтрок = Неопределено; - -КонецПроцедуры - -&НаКлиенте -Процедура НайтиАдресныеОбъекты() - ЗагрузитьДанныеИзКлассификатора(0, Найти); -КонецПроцедуры - &НаСервере Функция ДанныеКлассификатораПоИдентификатору(Знач ПараметрыПоиска) @@ -392,10 +351,12 @@ Если ДанныеИзКлассификатора.Данные.Количество() > 0 И Не ДанныеИзКлассификатора.Данные[0].РегионЗагружен Тогда ИспользуетсяВебСервис = Истина; - Элементы.НавигацияВебСервис.Видимость = Истина; // Веб-сервис - Если ДанныеИзКлассификатора.Данные.Количество() = 500 Тогда + СкрыватьПанельНавигации = (Позиция = 0 И ДанныеИзКлассификатора.Данные.Количество() < РазмерПорции()); + Элементы.НавигацияВебСервис.Видимость = Не СкрыватьПанельНавигации; // Веб-сервис + Если ДанныеИзКлассификатора.Данные.Количество() = РазмерПорции() Тогда Элементы.Информация.Видимость = Истина; - Элементы.Информация.Заголовок = НСтр("ru='Показано 500 адресных объектов'"); + Элементы.Информация.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Показано %1 адресных объектов'"), РазмерПорции()); Элементы.Следующие.Доступность = Истина; Иначе Элементы.Информация.Видимость = Ложь; diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Form.form b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Form.form index 661dbb2d2..11441ff91 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Form.form +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Form.form @@ -887,9 +887,6 @@ true true true - - СписокДанных.DefaultPicture - true 60 diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Form.form b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Form.form index 44f65c81b..31a707abd 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Form.form @@ -3206,9 +3206,6 @@ true true true - - СписокСсылок.DefaultPicture - true 60 diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl index 1c4e86496..913dbafc5 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl @@ -137,6 +137,7 @@ // Настройки объекта инициализируем всегда. ТекущийОбъект.ПрочитатьНастройки(); ТекущийОбъект.ПрочитатьПризнакиПоддержкиБСП(); + ТекущийОбъект.ПрочитатьПризнакиПоддержкиБСД(); ЭтотОбъект(ТекущийОбъект); // Остальное инициализируем, только если будем открывать эту форму, @@ -2798,6 +2799,7 @@ Результат.Вставить("ДоступнаРегистрацияСредствамиБСП", Объект.ДоступнаРегистрацияСредствамиБСП); Результат.Вставить("ДоступнаРаботаРИБ", Объект.ДоступнаРаботаРИБ); Результат.Вставить("НастройкаКонтрольВыгрузкиОбъектов", Объект.НастройкаКонтрольВыгрузкиОбъектов); + Результат.Вставить("ДоступнаПакетнаяРегистрация", Объект.ДоступнаПакетнаяРегистрация); Результат.Вставить("СтруктураИменМетаданных", СтруктураИменМетаданных); diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl index 81c3b8b35..11621d37c 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl @@ -588,6 +588,7 @@ ДоступнаРегистрацияСредствамиБСП = ПараметрыЗадания.ДоступнаРегистрацияСредствамиБСП; ДоступнаРаботаРИБ = ПараметрыЗадания.ДоступнаРаботаРИБ; НастройкаКонтрольВыгрузкиОбъектов = ПараметрыЗадания.НастройкаКонтрольВыгрузкиОбъектов; + ДоступнаПакетнаяРегистрация = ПараметрыЗадания.ДоступнаПакетнаяРегистрация; РезультатВыполнения = ИзменитьРегистрациюНаСервере(ПараметрыЗадания.Команда, ПараметрыЗадания.БезУчетаАвторегистрации, ПараметрыЗадания.Узел, ПараметрыЗадания.Данные, ИмяТаблицы, ПараметрыЗадания.СтруктураИменМетаданных); @@ -1286,6 +1287,12 @@ КонецЕсли; КонецПроцедуры +Процедура ПрочитатьПризнакиПоддержкиБСД() Экспорт + + ДоступнаПакетнаяРегистрация = БСД_ДоступнаТребуемаяВерсия("1.0.3.1"); + +КонецПроцедуры + // Пишем настройки в общее хранилище. // // Параметры: @@ -1370,7 +1377,52 @@ НадоФильтрБСП = ТипЗнч(Команда) = Тип("Булево") И Команда И КонфигурацияПоддерживаетБСП И НастройкаКонтрольВыгрузкиОбъектов; Если ТипЗнч(Данные) = Тип("Массив") Тогда - ДанныеРегистрации = Данные; + + ДанныеРегистрации = Новый Массив; + + ЭтоРегистрацияПоОтбору = Ложь; + + Если Команда + И ЗначениеЗаполнено(ИмяТаблицы) + И ДоступнаПакетнаяРегистрация Тогда + + Описание = ХарактеристикиПоМетаданным(ИмяТаблицы); + ЭтоРегистрацияПоОтбору = Описание.ЭтоСсылка; + + КонецЕсли; + + Если ЭтоРегистрацияПоОтбору Тогда + + МодульОбменДаннымиСобытия = ОбщийМодульОбменДаннымиСобытия(); + + ПараметрыПР = МодульОбменДаннымиСобытия.ПараметрыПакетнойРегистрации(); + + МассивСсылок = Новый Массив; + Для Каждого ЭлементМассива Из Данные Цикл + МассивСсылок.Добавить(ЭлементМассива.Ссылка); + КонецЦикла; + + МодульОбменДаннымиСобытия.ВыполнитьПакетнуюРегистрациюДляУзла(Узел, МассивСсылок, ПараметрыПР); + + Для Каждого Ссылка Из ПараметрыПР.СсылкиПоФильтруПакетнойРегистрации Цикл + Результат.Всего = Результат.Всего + 1; + Результат.Успешно = Результат.Успешно + 1; + ПланыОбмена.ЗарегистрироватьИзменения(Узел, Ссылка); + КонецЦикла; + + Если ПараметрыПР.ЕстьПРО_БезПакетнойРегистрации Тогда + Для Каждого Ссылка Из ПараметрыПР.СсылкиНеПоФильтруПакетнойРегистрации Цикл + СтруктураДанных = Новый Структура("Ссылка", Ссылка); + ДанныеРегистрации.Добавить(СтруктураДанных); + КонецЦикла; + КонецЕсли; + + Иначе + + ДанныеРегистрации = Данные; + + КонецЕсли; + Иначе ДанныеРегистрации = Новый Массив; ДанныеРегистрации.Добавить(Данные); @@ -1961,7 +2013,8 @@ Функция СтрокаВЧисло(Знач Текст) ТекстЧисла = СокрЛП(СтрЗаменить(Текст, Символы.НПП, "")); - Если ПустаяСтрока(ТекстЧисла) Тогда + Если ПустаяСтрока(ТекстЧисла) + Или ТекстЧисла = "0" Тогда Возврат 0; КонецЕсли; @@ -2009,6 +2062,17 @@ Возврат Вычислить("СтандартныеПодсистемыСервер"); КонецФункции +// Возвращает общий модуль СтандартныеПодсистемыСервер или Неопределено, если такого нет в составе конфигурации. +// +Функция ОбщийМодульСтандартныеПодсистемыПовтИсп() + Если Метаданные.ОбщиеМодули.Найти("СтандартныеПодсистемыПовтИсп") = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + // Вызов ВычислитьВБезопасномРежиме не требуется, т.к. для вычисления передается строковый литерал. + Возврат Вычислить("СтандартныеПодсистемыПовтИсп"); +КонецФункции + // Возвращает общий модуль ОбщегоНазначения или Неопределено, если такого нет в составе конфигурации. // Функция ОбщийМодульОбщегоНазначения() @@ -2074,6 +2138,48 @@ Возврат Истина; КонецФункции +// Возвращает флаг того, что БСД в текущей конфигурации обеспечивает функционал. +// +Функция БСД_ДоступнаТребуемаяВерсия(Знач Версия = Неопределено) + + ТекущаяВерсия = Неопределено; + МодульСтандартныеПодсистемыПовтИсп = ОбщийМодульСтандартныеПодсистемыПовтИсп(); + Если МодульСтандартныеПодсистемыПовтИсп <> Неопределено Тогда + Попытка + ТекущаяВерсия = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем().ПоИменам["БиблиотекаСинхронизацииДанных"].Версия + Исключение + ТекущаяВерсия = Неопределено; + КонецПопытки; + КонецЕсли; + + Если ТекущаяВерсия = Неопределено Тогда + // Отсутствует или поломан метод определения версии, считаем БСД недоступной. + Возврат Ложь + КонецЕсли; + ТекущаяВерсия = СтрЗаменить(ТекущаяВерсия, ".", Символы.ПС); + + НужнаяВерсия = СтрЗаменить(?(Версия = Неопределено, "2.2.2", Версия), ".", Символы.ПС); + + Для Индекс = 1 По СтрЧислоСтрок(НужнаяВерсия) Цикл + + ЧастьТекущейВерсии = СтрокаВЧисло(СтрПолучитьСтроку(ТекущаяВерсия, Индекс)); + ЧастьНужнойВерсии = СтрокаВЧисло(СтрПолучитьСтроку(НужнаяВерсия, Индекс)); + + Если ЧастьТекущейВерсии = Неопределено Тогда + Возврат Ложь; + + ИначеЕсли ЧастьТекущейВерсии > ЧастьНужнойВерсии Тогда + Возврат Истина; + + ИначеЕсли ЧастьТекущейВерсии < ЧастьНужнойВерсии Тогда + Возврат Ложь; + + КонецЕсли; + КонецЦикла; + + Возврат Истина; +КонецФункции + // Возвращает флаг контроля объекта в БСП. // Функция БСП_КонтрольВыгрузкиОбъекта(Узел, ОбъектРегистрации) @@ -2306,6 +2412,33 @@ ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИменаПолейИлиРеквизитов", ПоляИзмерений); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", ТекИмяТаблицы); Запрос = Новый Запрос(ТекстЗапроса); + + Если Описание.ЭтоСсылка И ДоступнаПакетнаяРегистрация Тогда + + МодульОбменДаннымиСобытия = ОбщийМодульОбменДаннымиСобытия(); + + МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); + ПараметрыПР = МодульОбменДаннымиСобытия.ПараметрыПакетнойРегистрации(); + + МодульОбменДаннымиСобытия.ВыполнитьПакетнуюРегистрациюДляУзла(Узел, МассивСсылок, ПараметрыПР); + + Для Каждого Ссылка Из ПараметрыПР.СсылкиПоФильтруПакетнойРегистрации Цикл + Результат.Успешно = Результат.Успешно + 1; + ПланыОбмена.ЗарегистрироватьИзменения(Узел, Ссылка); + КонецЦикла; + + Если ПараметрыПР.ЕстьПРО_БезПакетнойРегистрации Тогда + Для Каждого Ссылка Из ПараметрыПР.СсылкиНеПоФильтруПакетнойРегистрации Цикл + ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийСсылки(Узел, Ссылка, БезУчетаАвторегистрации)); + КонецЦикла; + КонецЕсли; + + Результат.Всего = МассивСсылок.Количество(); + + Возврат Результат; + + КонецЕсли; + Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если Описание.ЭтоНабор Тогда @@ -2316,7 +2449,7 @@ ДобавитьРезультаты(Результат, БСП_РегистрацияИзмененийСсылки(Узел, Выборка.Ссылка, БезУчетаАвторегистрации) ); КонецЕсли; КонецЦикла; - + Возврат Результат; КонецФункции diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/РегистрацияИзмененийДляОбменаДанными.mdo b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/РегистрацияИзмененийДляОбменаДанными.mdo index 3166f0f4b..5cf9e7014 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/РегистрацияИзмененийДляОбменаДанными.mdo +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/РегистрацияИзмененийДляОбменаДанными.mdo @@ -167,6 +167,18 @@ + + ДоступнаПакетнаяРегистрация + + ru + Доступна пакетная регистрация + + + Boolean + + + + ВыборУзлаПланаОбмена diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl index f160eca21..70f3fc6bc 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl @@ -417,14 +417,13 @@ Функция СформироватьФайлыСкрипта() ПараметрыКопирования = РезервноеКопированиеИБКлиент.КлиентскиеПараметрыРезервногоКопирования(); - ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(); СоздатьКаталог(ПараметрыКопирования.КаталогВременныхФайловОбновления); ПараметрыСкрипта = РезервноеКопированиеИБКлиент.ОбщиеПараметрыСкрипта(); ПараметрыСкрипта.ИмяФайлаПрограммы = ПараметрыКопирования.ИмяФайлаПрограммы; ПараметрыСкрипта.СобытиеЖурналаРегистрации = ПараметрыКопирования.СобытиеЖурналаРегистрации; - ПараметрыСкрипта.ИмяCOMСоединителя = ПараметрыРаботыКлиента.ИмяCOMСоединителя; - ПараметрыСкрипта.ЭтоБазоваяВерсияКонфигурации = ПараметрыРаботыКлиента.ЭтоБазоваяВерсияКонфигурации; + ПараметрыСкрипта.ИмяCOMСоединителя = ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя(); + ПараметрыСкрипта.ЭтоБазоваяВерсияКонфигурации = СтандартныеПодсистемыКлиент.ЭтоБазоваяВерсияКонфигурации(); ПараметрыСкрипта.ПараметрыСкрипта = РезервноеКопированиеИБКлиент.ПараметрыАутентификацииАдминистратораОбновления(ПарольАдминистратораИБ); ПараметрыСкрипта.ПараметрыЗапускаПредприятия = ОбщегоНазначенияСлужебныйКлиент.ПараметрыЗапускаПредприятияИзСкрипта(); @@ -532,7 +531,7 @@ РезервноеКопированиеИБСервер.УстановитьОбщиеПараметрыЗаставки(ПараметрыТекста); - Возврат РезервноеКопированиеИБСервер.ПодставитьПараметрыВТекст(ШаблонТекста, ПараметрыТекста);; + Возврат РезервноеКопированиеИБСервер.ПодставитьПараметрыВТекст(ШаблонТекста, ПараметрыТекста); КонецФункции diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl index e019f8de0..e11da7a9e 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl @@ -581,15 +581,14 @@ Функция СформироватьФайлыСкрипта() ПараметрыРезервногоКопирования = РезервноеКопированиеИБКлиент.КлиентскиеПараметрыРезервногоКопирования(); - ПараметрыРаботыКлиентаПриЗапуске = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); СоздатьКаталог(ПараметрыРезервногоКопирования.КаталогВременныхФайловОбновления); ПараметрыСкрипта = РезервноеКопированиеИБКлиент.ОбщиеПараметрыСкрипта(); ПараметрыСкрипта.КаталогПрограммы = Параметры.КаталогПрограммы; ПараметрыСкрипта.ИмяФайлаПрограммы = ПараметрыРезервногоКопирования.ИмяФайлаПрограммы; ПараметрыСкрипта.СобытиеЖурналаРегистрации = ПараметрыРезервногоКопирования.СобытиеЖурналаРегистрации; - ПараметрыСкрипта.ИмяCOMСоединителя = ПараметрыРаботыКлиентаПриЗапуске.ИмяCOMСоединителя; - ПараметрыСкрипта.ЭтоБазоваяВерсияКонфигурации = ПараметрыРаботыКлиентаПриЗапуске.ЭтоБазоваяВерсияКонфигурации; + ПараметрыСкрипта.ИмяCOMСоединителя = ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя(); + ПараметрыСкрипта.ЭтоБазоваяВерсияКонфигурации = СтандартныеПодсистемыКлиент.ЭтоБазоваяВерсияКонфигурации(); ПараметрыСкрипта.ПараметрыСкрипта = РезервноеКопированиеИБКлиент.ПараметрыАутентификацииАдминистратораОбновления(ПарольАдминистратораИБ); ПараметрыСкрипта.ПараметрыЗапускаПредприятия = ОбщегоНазначенияСлужебныйКлиент.ПараметрыЗапускаПредприятияИзСкрипта(); @@ -703,7 +702,7 @@ РезервноеКопированиеИБСервер.УстановитьОбщиеПараметрыЗаставки(ПараметрыТекста); - Возврат РезервноеКопированиеИБСервер.ПодставитьПараметрыВТекст(ШаблонТекста, ПараметрыТекста);; + Возврат РезервноеКопированиеИБСервер.ПодставитьПараметрыВТекст(ШаблонТекста, ПараметрыТекста); КонецФункции diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОчисткаУстаревшихДанных/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОчисткаУстаревшихДанных/Module.bsl index eafd30122..4f83fa106 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОчисткаУстаревшихДанных/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОчисткаУстаревшихДанных/Module.bsl @@ -333,7 +333,6 @@ ПараметрыВыполнения.ОжидатьЗавершение = 0; ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление списка устаревших данных'"); ПараметрыВыполнения.АдресРезультата = АдресРезультатаОбновления; - ПараметрыВыполнения.ЗапуститьВФоне = Истина; // Всегда в фоне (очередь заданий в файловом варианте). ПараметрыВыполнения.СРасширениямиБазыДанных = Истина; ПараметрыЗадания = Новый Структура; @@ -485,7 +484,6 @@ ПараметрыВыполнения.ОжидатьЗавершение = 0; ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Очистка устаревших данных'"); ПараметрыВыполнения.АдресРезультата = АдресРезультатаОчистки; - ПараметрыВыполнения.ЗапуститьВФоне = Истина; // Всегда в фоне (очередь заданий в файловом варианте). ПараметрыВыполнения.СРасширениямиБазыДанных = Истина; ПараметрыВыполнения.КлючФоновогоЗадания = ОбновлениеИнформационнойБазыСлужебный.КлючЗаданияОчисткиУстаревшихДанных(); diff --git a/SSL/src/DataProcessors/Сканирование/Commands/СканироватьЛист/CommandModule.bsl b/SSL/src/DataProcessors/Сканирование/Commands/СканироватьЛист/CommandModule.bsl new file mode 100644 index 000000000..66c54c93c --- /dev/null +++ b/SSL/src/DataProcessors/Сканирование/Commands/СканироватьЛист/CommandModule.bsl @@ -0,0 +1,34 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытий + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + Если РаботаСФайламиКлиент.ДоступноСканирование() Тогда + ПараметрыДобавленияСоСканера = РаботаСФайламиКлиент.ПараметрыДобавленияСоСканера(); + ПараметрыДобавленияСоСканера.ФормаВладелец = ЭтотОбъект; + ПараметрыДобавленияСоСканера.ОбработчикРезультата = Новый ОписаниеОповещения("ОтсканироватьЛистЗавершение", ЭтотОбъект); + ПараметрыДобавленияСоСканера.ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииИмяФайла(); + ПараметрыДобавленияСоСканера.ТолькоОдинФайл = Истина; + РаботаСФайламиКлиент.ДобавитьСоСканера(ПараметрыДобавленияСоСканера); + КонецЕсли; +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Процедура ОтсканироватьЛистЗавершение(Результат, Контекст) Экспорт + Если Результат <> Неопределено Тогда + ФайловаяСистемаКлиент.ОткрытьФайл(Результат.ИмяФайла); + КонецЕсли; +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Form.form b/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Form.form deleted file mode 100644 index dd013bc63..000000000 --- a/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Form.form +++ /dev/null @@ -1,165 +0,0 @@ - - - - ИмяУстройства - 1 - true - true - - true - - - ИмяУстройства - - - ИмяУстройстваРасширеннаяПодсказка - 7 - Label - true - true - - Left - - - - ИмяУстройстваКонтекстноеМеню - 2 - true - - InputField - Enter - true - Left - true - - 40 - true - true - true - true - true - true - Normal - - - Bottom - true - - ФормаКоманднаяПанель - -1 - - Выбрать - 3 - true - true - - true - - false - - ВыбратьРасширеннаяПодсказка - 5 - Label - true - true - - Left - - - Form.Command.Выбрать - Auto - true - true - true - UserCmds - Auto - - - Отмена - 4 - true - true - - true - - false - - ОтменаExtendedTooltip - 6 - Label - true - true - - Left - - - Form.StandardCommand.Cancel - Normal - Auto - true - true - UserCmds - Auto - - Right - true - - - OnOpen - ПриОткрытии - - LockOwner - true - true - true - Vertical - true - true - auto - true - - ИмяУстройства - - <key>ru</key> - <value>Сканер</value> - - 1 - - String - - - - true - - - true - - ShowError - - - Выбрать - - <key>ru</key> - <value>Выбрать</value> - - 1 - - ru - Выбрать устройство сканирования - - - true - - - - ВыбратьСканер - - - DontUse - Auto - - - - - - diff --git a/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Help/ru.html b/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Help/ru.html deleted file mode 100644 index b6a488341..000000000 --- a/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Help/ru.html +++ /dev/null @@ -1,4 +0,0 @@ - -

                    Предназначена для выбора устройства сканирования.

                    -

                    Устройство сканирования должно быть подключено к компьютеру. Выберите наименование устройства изпрограмме имеется список возможных устройств сканирования, она предлагает выбрать из выпадающего списка.

                    -

                    Нажмите кнопку Выбрать, для того чтобы подтвердить свой выбор.

                    \ No newline at end of file diff --git a/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Module.bsl deleted file mode 100644 index e7243a091..000000000 --- a/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Module.bsl +++ /dev/null @@ -1,53 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2023, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаКлиенте -Процедура ПриОткрытии(Отказ) - КоличествоЭлементов = 0; - Если РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту() Тогда - МассивУстройств = РаботаСФайламиСлужебныйКлиент.ПолучитьУстройства(); - Для Каждого Строка Из МассивУстройств Цикл - КоличествоЭлементов = КоличествоЭлементов + 1; - Элементы.ИмяУстройства.СписокВыбора.Добавить(Строка); - КонецЦикла; - КонецЕсли; - Если КоличествоЭлементов = 0 Тогда - Отказ = Истина; - ПоказатьПредупреждение(, НСтр("ru = 'Не установлен сканер. Обратитесь к администратору программы.'")); - Иначе - Элементы.ИмяУстройства.РежимВыбораИзСписка = Истина; - КонецЕсли; -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура ВыбратьСканер(Команда) - - Если ПустаяСтрока(ИмяУстройства) Тогда - ТекстСообщения = НСтр("ru = 'Не выбран сканер.'"); - ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , "ИмяУстройства"); - Возврат; - КонецЕсли; - - СистемнаяИнформация = Новый СистемнаяИнформация(); - ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранить( - "НастройкиСканирования/ИмяУстройства", - СистемнаяИнформация.ИдентификаторКлиента, - ИмяУстройства, - , - , - Истина); - Закрыть(ИмяУстройства); -КонецПроцедуры - -#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form index d7887ab77..fe7f93adb 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form @@ -1,11 +1,11 @@ - + ГруппаНастройки 24 - ГруппаОсновное - 81 + ГруппаШапка + 108 ИмяУстройства 4 @@ -42,6 +42,10 @@ Left true + + StartChoice + ИмяУстройстваНачалоВыбора + ChoiceProcessing ИмяУстройстваОбработкаВыбора @@ -51,436 +55,13 @@ true false true + true true true true Normal - - ГруппаПараметрыСканирования - 38 - - Разрешение - 14 - true - true - - true - - - Разрешение - - - РазрешениеExtendedTooltip - 72 - Label - true - true - - Left - - - - РазрешениеКонтекстноеМеню - 15 - true - - InputField - Enter - true - Left - true - - 13 - true - true - false - true - true - true - true - Normal - - - - Цветность - 16 - true - true - - true - - - Цветность - - - ЦветностьExtendedTooltip - 73 - Label - true - true - - Left - - - - ЦветностьКонтекстноеМеню - 17 - true - - InputField - Enter - true - Left - true - - 13 - true - true - false - true - true - true - true - Normal - - - - Поворот - 20 - - <key>ru</key> - <value>Поворот</value> - - true - true - - true - - - Поворот - - - ПоворотExtendedTooltip - 74 - Label - true - true - - Left - - - - ПоворотКонтекстноеМеню - 21 - true - - InputField - Enter - true - Left - true - - 13 - true - true - false - true - true - true - true - Normal - - - - РазмерБумаги - 22 - true - true - - true - - - РазмерБумаги - - - РазмерБумагиExtendedTooltip - 75 - Label - true - true - - Left - - - - РазмерБумагиКонтекстноеМеню - 23 - true - - InputField - Enter - true - Left - true - - 13 - true - true - false - true - true - true - true - Normal - - - - ДвустороннееСканирование - 28 - true - true - - true - - - ДвустороннееСканирование - - Right - - ДвустороннееСканированиеExtendedTooltip - 76 - Label - true - true - - Left - - - - ДвустороннееСканированиеКонтекстноеМеню - 29 - true - - CheckBoxField - Enter - true - Left - true - - - - ПоказыватьДиалогСканера - 1 - true - true - - true - - - ПоказыватьДиалогСканера - - Right - - ПоказыватьДиалогСканераExtendedTooltip - 77 - Label - true - true - - Left - - - - ПоказыватьДиалогСканераКонтекстноеМеню - 2 - true - - CheckBoxField - Enter - true - Left - true - - - true - true - - true - - - <key>ru</key> - <value>Основное</value> - - - ГруппаПараметрыСканированияExtendedTooltip - 71 - Label - true - true - - Left - - - UsualGroup - - Vertical - WeakSeparation - true - true - auto - Auto - Auto - - - - ГруппаPDF - 36 - - ИспользоватьImageMagickДляПреобразованияВPDF - 26 - true - true - - true - - - ИспользоватьImageMagickДляПреобразованияВPDF - - Right - - OnChange - ИспользоватьImageMagickДляПреобразованияВPDFПриИзменении - - - ИспользоватьImageMagickДляПреобразованияВPDFExtendedTooltip - 58 - Label - true - true - - Left - - - - ИспользоватьImageMagickДляПреобразованияВPDFКонтекстноеМеню - 27 - true - - CheckBoxField - Enter - true - Left - true - - - - ПутьКПрограммеКонвертации - 34 - true - true - - true - - - ПутьКПрограммеКонвертации - - Top - - ПутьКПрограммеКонвертацииExtendedTooltip - 59 - Label - true - true - - Left - - - - ПутьКПрограммеКонвертацииКонтекстноеМеню - 35 - true - - InputField - Enter - true - Left - true - - - StartChoice - ПутьКПрограммеКонвертацииНачалоВыбора - - true - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>PDF</value> - - - ГруппаPDFExtendedTooltip - 57 - Label - true - true - - Left - - - UsualGroup - - Vertical - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Основное</value> - - - ГруппаОсновноеРасширеннаяПодсказка - 82 - Label - true - true - - Left - - - UsualGroup - - Vertical - true - true - Auto - Auto - - - - ГруппаДополнительныеНастройки - 83 ОткрытьНомераОтсканированныхФайлов 79 @@ -512,30 +93,71 @@ UserCmds Auto + true + true + + true + + + <key>ru</key> + <value>Группа шапка</value> + + + ГруппаШапкаРасширеннаяПодсказка + 109 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ГруппаПараметры + 106 - ГруппаФорматХраненияОдиночный - 37 + ГруппаОсновное + 81 - ГруппаФорматаХранения - 44 + ГруппаПараметрыСканирования + 38 - ФорматХраненияОдностраничный - 42 + Разрешение + 14 true true true - ФорматХраненияОдностраничный + Разрешение - - OnChange - ФорматХраненияОдностраничныйПриИзменении - + + ru + р + + Button - ФорматХраненияОдностраничныйExtendedTooltip - 62 + РазрешениеExtendedTooltip + 72 + + <key>ru</key> + <value><b>200</><b> </><b>dpi</> достаточно для отправки изображений по электронной почте, факсу, размещения на сайте или просмотра на экране. +<b>300</><b> </><b>dpi</> подходит для большинства документов и изображений, а также для распознавания текста. +<b>600</><b> </><b>dpi</> подходит для сканирования цветных изображений типографского качества, которые потом можно вывести на высококачественном или широкоформатном принтере. Изображения занимают большой объем. +<b>1200</><b> </><b>dpi</> для сканирования профессиональных фотографий типографского качества. Изображения занимают большой объем.</value> + + true Label true true @@ -544,8 +166,8 @@ - ФорматХраненияОдностраничныйКонтекстноеМеню - 43 + РазрешениеКонтекстноеМеню + 15 true InputField @@ -554,7 +176,7 @@ Left true - 9 + 13 true true false @@ -563,24 +185,22 @@ true true Normal - 9 - - ДекорацияФорматХраненияОдностраничный - 45 - - <key>ru</key> - <value>(для хранения)</value> - + + Цветность + 16 true true true + + Цветность + - ДекорацияФорматХраненияОдностраничныйExtendedTooltip - 63 + ЦветностьExtendedTooltip + 73 Label true true @@ -589,16 +209,194 @@ - ДекорацияФорматХраненияОдностраничныйКонтекстноеМеню - 46 + ЦветностьКонтекстноеМеню + 17 true - Label - true - - Left + InputField + Enter + true + Left + true + + 13 + true + true + false + true + true + true + true + Normal + + Поворот + 20 + + <key>ru</key> + <value>Поворот</value> + + true + true + + true + + + Поворот + + + ПоворотExtendedTooltip + 74 + Label + true + true + + Left + + + + ПоворотКонтекстноеМеню + 21 + true + + InputField + Enter + true + Left + true + + 13 + true + true + false + true + true + true + true + Normal + + + + РазмерБумаги + 22 + true + true + + true + + + РазмерБумаги + + + РазмерБумагиExtendedTooltip + 75 + Label + true + true + + Left + + + + РазмерБумагиКонтекстноеМеню + 23 + true + + InputField + Enter + true + Left + true + + 13 + true + true + false + true + true + true + true + Normal + + + + ДвустороннееСканирование + 28 + true + true + + true + + + ДвустороннееСканирование + + Right + + ДвустороннееСканированиеExtendedTooltip + 76 + Label + true + true + + Left + + + + ДвустороннееСканированиеКонтекстноеМеню + 29 + true + + CheckBoxField + Enter + true + Left + true + + + + ПоказыватьДиалогСканера + 1 + true + true + + true + + + ПоказыватьДиалогСканера + + Right + 2 + Button + + ПоказыватьДиалогСканераExtendedTooltip + 77 + + <key>ru</key> + <value> +Отключение диалога сканера не действует для WIA-устройств (см. настройки сканера в операционной системе). +</value> + + true + Label + true + true + + Left + + + + ПоказыватьДиалогСканераКонтекстноеМеню + 2 + true + + CheckBoxField + Enter + true + Left + true + + true true @@ -606,11 +404,11 @@ <key>ru</key> - <value>Формата хранения</value> + <value>Основное</value> - ГруппаФорматаХраненияExtendedTooltip - 61 + ГруппаПараметрыСканированияExtendedTooltip + 71 Label true true @@ -620,212 +418,15 @@ UsualGroup - HorizontalIfPossible + Vertical + WeakSeparation true true + auto Auto Auto - - ГруппаФорматаСканирования - 47 - - ФорматСканированногоИзображения - 18 - true - true - - true - - - ФорматСканированногоИзображения - - - OnChange - ФорматСканированногоИзображенияПриИзменении - - - ФорматСканированногоИзображенияExtendedTooltip - 65 - Label - true - true - - Left - - - - ФорматСканированногоИзображенияКонтекстноеМеню - 19 - true - - InputField - Enter - true - Left - true - - 9 - true - true - false - true - true - true - true - Normal - 9 - - - - ДекорацияФорматСканированногоИзображения - 48 - - <key>ru</key> - <value>(для сканирования)</value> - - true - true - - true - - - ДекорацияФорматСканированногоИзображенияExtendedTooltip - 66 - Label - true - true - - Left - - - - ДекорацияФорматСканированногоИзображенияКонтекстноеМеню - 49 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>Формата сканирования</value> - - - ГруппаФорматаСканированияExtendedTooltip - 64 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - - - КачествоJPG - 30 - true - true - - true - - - КачествоJPG - - - КачествоJPGExtendedTooltip - 67 - Label - true - true - - Left - - - - КачествоJPGКонтекстноеМеню - 31 - true - - InputField - Enter - true - Left - true - - 9 - true - true - false - true - true - true - true - Normal - - - - СжатиеTIFF - 32 - true - true - - true - - - СжатиеTIFF - - - СжатиеTIFFExtendedTooltip - 68 - Label - true - true - - Left - - - - СжатиеTIFFКонтекстноеМеню - 33 - true - - InputField - Enter - true - Left - true - - 9 - true - true - false - true - true - true - true - Normal - 9 - - true true @@ -833,11 +434,11 @@ <key>ru</key> - <value>Для одностраничных изображений</value> + <value>Основное</value> - ГруппаФорматХраненияОдиночныйExtendedTooltip - 60 + ГруппаОсновноеРасширеннаяПодсказка + 82 Label true true @@ -848,31 +449,396 @@ UsualGroup Vertical - WeakSeparation + NormalSeparation true true - auto Auto Auto - ГруппаФорматХраненияМногостраничный - 39 - - ФорматХраненияМногостраничный - 40 + ГруппаДополнительныеНастройки + 83 + + ГруппаФорматСканированногоИзображения + 37 + + ГруппаФорматаСканированногоИзображения + 44 + + ФорматСканированногоИзображения + 42 + true + true + + true + + + ФорматСканированногоИзображения + + + OnChange + ФорматСканированногоИзображенияПриИзменении + + + ФорматСканированногоИзображенияРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + + ФорматСканированногоИзображенияКонтекстноеМеню + 43 + true + + InputField + Enter + true + Left + true + + 9 + true + true + false + true + true + true + true + Normal + 9 + + + + СохранятьВPDF + 112 + + <key>ru</key> + <value>Преобразовать в PDF</value> + + true + true + + true + + + СохранятьВPDF + + Right + Button + + СохранятьВPDFРасширеннаяПодсказка + 114 + + <key>ru</key> + <value><b>JPG</> подходит для большинства документов и изображений. Позволяет сжимать изображение с потерей качества. Можно настроить величину сжатия.  +<b>PNG</> подходит для большинства документов и изображений. Изображения без потери качества, файлы небольших размеров.  +<b>TIF</> позволяет сохранять изображение без потери качества, используется для хранения изображений для дальнейшей печати. Возможно хранение многостраничных изображений. +<b>GIF</> устаревший формат для хранения изображений в низком качестве. Файлы небольшого размера. +<b>BMP</> устаревший формат для хранения изображений без потери качества. Файлы больших размеров. + +<b>Преобразовать</><b> </><b>в</><b> </><b>PDF</> позволяет поместить отсканированное изображение в PDF-файл. Возможно хранение многостраничных изображений.</value> + + true + Label + true + true + + Left + + + + СохранятьВPDFКонтекстноеМеню + 113 + true + + CheckBoxField + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Формата сканированного изображения</value> + + + ГруппаФорматаСканированногоИзображенияРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + true + true + Auto + Auto + + + + ГруппаКачествоJPG + 121 + + ДекорацияСжатиеJPG + 126 + + <key>ru</key> + <value>Лучше +сжатие</value> + + true + true + + true + + + ДекорацияСжатиеJPGРасширеннаяПодсказка + 128 + Label + true + true + + Left + + + + ДекорацияСжатиеJPGКонтекстноеМеню + 127 + true + + Label + true + true + + Left + + + + КачествоJPG + 30 + true + true + + true + + + КачествоJPG + + Top + + OnChange + КачествоJPGПриИзменении + + + КачествоJPGExtendedTooltip + 67 + Label + true + true + + Left + + + + КачествоJPGКонтекстноеМеню + 31 + true + + TrackBarField + Enter + true + Left + true + + 9 + true + 2 + true + true + 100 + 1 + 10 + 5 + BottomRight + + + + ДекорацияКачествоJPG + 123 + + <key>ru</key> + <value>Лучше +качество</value> + + true + true + + true + + + ДекорацияКачествоJPGРасширеннаяПодсказка + 125 + Label + true + true + + Left + + + + ДекорацияКачествоJPGКонтекстноеМеню + 124 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Качество</value> + + 2 + + ГруппаКачествоJPGРасширеннаяПодсказка + 122 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + СжатиеTIFF + 32 + true + true + + true + + + СжатиеTIFF + + + СжатиеTIFFExtendedTooltip + 68 + Label + true + true + + Left + + + + СжатиеTIFFКонтекстноеМеню + 33 + true + + InputField + Enter + true + Left + true + + 9 + true + true + false + true + true + true + true + Normal + 9 + + + + ОписаниеФорматаОдностраничногоДокумента + 115 + + <key>ru</key> + <value>Подходит для большинства документов и изображений. Позволяет сжимать изображение с потерей качества. Можно настроить величину сжатия. +</value> + + true + true + + true + + + ОписаниеФорматаОдностраничногоДокументаРасширеннаяПодсказка + 117 + Label + true + true + + Left + + + + ОписаниеФорматаОдностраничногоДокументаКонтекстноеМеню + 116 + true + + true + Label + true + true + true + + Style.ПоясняющийТекст + + + Left + + true true true - - ФорматХраненияМногостраничный - + + <key>ru</key> + <value>Для одностраничных изображений</value> + - ФорматХраненияМногостраничныйExtendedTooltip - 70 + ГруппаФорматСканированногоИзображенияРасширеннаяПодсказка + 60 Label true true @@ -880,27 +846,390 @@ Left - - ФорматХраненияМногостраничныйКонтекстноеМеню - 41 - true - - InputField - Enter - true - Left - true - - 9 + UsualGroup + + Vertical + WeakSeparation + true + true + auto + Auto + Auto + + + + ГруппаФорматХраненияМногостраничный + 39 + + ФорматХраненияМногостраничный + 40 + true + true + + true + + + ФорматХраненияМногостраничный + + + ru + PDF - Отображается в большинстве браузеров. +TIF - Не все браузеры отображают этот формат. + + None + + ФорматХраненияМногостраничныйExtendedTooltip + 70 + Label + true + true + + Left + + + + ФорматХраненияМногостраничныйКонтекстноеМеню + 41 + true + + InputField + Enter + true + Left + true + + 9 + true + true + false + true + true + true + true + Normal + 9 + + + + ОписаниеФорматаМногостраничногоДокумента + 118 + + <key>ru</key> + <value>Отображается в большинстве браузеров.</value> + + true + + true + + + ОписаниеФорматаМногостраничногоДокументаРасширеннаяПодсказка + 120 + Label + true + true + + Left + + + + ОписаниеФорматаМногостраничногоДокументаКонтекстноеМеню + 119 + true + + Label true true - false - true - true - true - true - Normal - 9 + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Для многостраничных изображений</value> + + + ГруппаФорматХраненияМногостраничныйExtendedTooltip + 69 + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + auto + Auto + Auto + + + + ГруппаPDF + 36 + + ГруппаИспользоватьImageMagick + 101 + + ГруппаПереключательImageMagik + 132 + + СпособПреобразованияВPDF + 134 + + <key>ru</key> + <value>Преобразовывать в PDF</value> + + true + true + + true + + + СпособПреобразованияВPDF + + Button + + OnChange + СпособПреобразованияВPDFПриИзменении + + + СпособПреобразованияВPDFРасширеннаяПодсказка + 136 + + <key>ru</key> + <value> +Преобразование с помощью <link https://imagemagick.org/>ImageMagick</> может выполняться быстрее и формировать файлы изображений меньшего размера, чем встроенными средствами. Также при работе в клиент-серверном варианте, это не требует дополнительной передачи изображений на сервер 1С:Предприятие. При выборе этого способа на рабочем компьютере должно быть предварительно установлена бесплатное приложение ImageMagick. + + +</value> + + true + Label + true + true + + Left + + + + СпособПреобразованияВPDFКонтекстноеМеню + 135 + true + + RadioButtonField + Enter + true + Left + true + + + + ru + Встроенными средствами + + + 0 + + + + + ru + С помощью ImageMagick + + + 1 + + + Vertical + + + true + true + + true + + + ГруппаПереключательImageMagikРасширеннаяПодсказка + 133 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ИспользоватьImageMagickДляПреобразованияВPDFЗаголовок + 103 + + <key>ru</key> + <value>Использовать <link https://imagemagick.org/>ImageMagick</> для преобразования в PDF:</value> + + true + + true + + + ru + Программа ImageMagick может использоваться для конвертации сканированных изображений в PDF. Если флажок не установлен будет использоваться внутренний механизм. + + + ИспользоватьImageMagickДляПреобразованияВPDFЗаголовокРасширеннаяПодсказка + 105 + Label + true + true + + Left + + + + ИспользоватьImageMagickДляПреобразованияВPDFЗаголовокКонтекстноеМеню + 104 + true + + true + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Группа1</value> + + + ГруппаИспользоватьImageMagickРасширеннаяПодсказка + 102 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ПутьКПрограммеКонвертации + 34 + + <key>ru</key> + <value>Путь к ImageMagick</value> + + true + true + + true + + + ПутьКПрограммеКонвертации + + None + + ПутьКПрограммеКонвертацииExtendedTooltip + 59 + Label + true + true + + Left + + + + ПутьКПрограммеКонвертацииКонтекстноеМеню + 35 + true + + InputField + Enter + true + Left + true + + + StartChoice + ПутьКПрограммеКонвертацииНачалоВыбора + + true + true + true + true + true + true + true + Normal + + ru + Путь к ImageMagick + + + + true + true + + true + + + <key>ru</key> + <value>PDF</value> + + + ГруппаPDFExtendedTooltip + 57 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto true @@ -910,11 +1239,11 @@ <key>ru</key> - <value>Для многостраничных изображений</value> + <value>Дополнительные настройки</value> - ГруппаФорматХраненияМногостраничныйExtendedTooltip - 69 + ГруппаДополнительныеНастройкиРасширеннаяПодсказка + 84 Label true true @@ -925,10 +1254,9 @@ UsualGroup Vertical - WeakSeparation + NormalSeparation true true - auto Auto Auto @@ -940,11 +1268,11 @@ <key>ru</key> - <value>Дополнительные настройки</value> + <value>Группа параметры</value> - ГруппаДополнительныеНастройкиРасширеннаяПодсказка - 84 + ГруппаПараметрыРасширеннаяПодсказка + 107 Label true true @@ -954,7 +1282,8 @@ UsualGroup - Vertical + HorizontalIfPossible + Auto true true Auto @@ -982,7 +1311,7 @@ UsualGroup - HorizontalIfPossible + Vertical NormalSeparation true true @@ -998,6 +1327,10 @@ ОК 7 + + <key>ru</key> + <value>ОК</value> + true true @@ -1167,6 +1500,7 @@ true + true ИмяУстройства @@ -1186,6 +1520,7 @@ true ShowError + true ВерсияКомпонентыСканирования @@ -1218,6 +1553,7 @@ true ShowError + true Цветность @@ -1236,12 +1572,13 @@ true ShowError + true ФорматСканированногоИзображения <key>ru</key> - <value>Тип</value> + <value>Сохранить как</value> 3 @@ -1253,6 +1590,7 @@ true + true Поворот @@ -1270,6 +1608,7 @@ true + true РазмерБумаги @@ -1287,13 +1626,10 @@ true + true ИспользоватьImageMagickДляПреобразованияВPDF - - <key>ru</key> - <value>Использовать ImageMagick для преобразования в PDF</value> - 9 Boolean @@ -1304,6 +1640,7 @@ true + true ДвустороннееСканирование @@ -1342,6 +1679,7 @@ true + true СжатиеTIFF @@ -1359,6 +1697,7 @@ true + true ФорматJPG @@ -1403,12 +1742,13 @@ true + true ФорматХраненияМногостраничный <key>ru</key> - <value>Формат</value> + <value>Сохранить как</value> 16 @@ -1420,13 +1760,10 @@ true + true ФорматХраненияОдностраничный - - <key>ru</key> - <value>Формат</value> - 17 EnumRef.ФорматыХраненияОдностраничныхФайлов @@ -1452,62 +1789,10 @@ - ФорматОдностраничныйPDF - 19 - - EnumRef.ФорматыХраненияОдностраничныхФайлов - - - true - - - true - - - - ФорматОдностраничныйTIF - 20 - - EnumRef.ФорматыХраненияОдностраничныхФайлов - - - true - - - true - - - - ФорматОдностраничныйJPG - 21 - - EnumRef.ФорматыХраненияОдностраничныхФайлов - - - true - - - true - - - - ФорматОдностраничныйPNG - 22 - - EnumRef.ФорматыХраненияОдностраничныхФайлов - - - true - - - true - - - - ФорматХраненияОдностраничныйПредыдущее + ФорматСканированногоИзображенияПредыдущее 23 - EnumRef.ФорматыХраненияОдностраничныхФайлов + EnumRef.ФорматыСканированногоИзображения true @@ -1530,6 +1815,58 @@ true + + СпособПреобразованияВPDF + + <key>ru</key> + <value>Использовать ImageMagick для преобразования в PDF</value> + + 25 + + Number + + 1 + + + + true + + + true + + true + + + СохранятьВPDF + + <key>ru</key> + <value>Сохранять ВPDF</value> + + 26 + + Boolean + + + true + + + true + + true + + + ПовторноеСканирование + 28 + + Boolean + + + true + + + true + + ОК @@ -1596,6 +1933,19 @@ <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <parameters> + <name>ПовторноеСканирование</name> + <valueType> + <types>Boolean</types> + </valueType> + </parameters> + <parameters> + <name>ИдентификаторКлиента</name> + <valueType> + <types>String</types> + <stringQualifiers/> + </valueType> + </parameters> <commandInterface> <navigationPanel/> <commandBar/> diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl index adae3f984..a3d314188 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl @@ -6,114 +6,41 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// +#Область ОписаниеПеременных + +&НаКлиенте +Перем ПодключаемыйМодуль; + +#КонецОбласти + #Область ОбработчикиСобытийФормы &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - ИдентификаторКлиента = Параметры.ИдентификаторКлиента; - - ПоказыватьДиалогСканера = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ПоказыватьДиалогСканера", - ИдентификаторКлиента, Истина); - - ИмяУстройства = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ИмяУстройства", - ИдентификаторКлиента, ""); - - ФорматСканированногоИзображения = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ФорматСканированногоИзображения", - ИдентификаторКлиента, Перечисления.ФорматыСканированногоИзображения.PNG); - - ФорматХраненияОдностраничный = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ФорматХраненияОдностраничный", - ИдентификаторКлиента, Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG); - - ФорматХраненияМногостраничный = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ФорматХраненияМногостраничный", - ИдентификаторКлиента, Перечисления.ФорматыХраненияМногостраничныхФайлов.TIF); - - Разрешение = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/Разрешение", - ИдентификаторКлиента); - - Цветность = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/Цветность", - ИдентификаторКлиента); - - Поворот = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/Поворот", - ИдентификаторКлиента); - - РазмерБумаги = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/РазмерБумаги", - ИдентификаторКлиента); - - ДвустороннееСканирование = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ДвустороннееСканирование", - ИдентификаторКлиента); - - ИспользоватьImageMagickДляПреобразованияВPDF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ИспользоватьImageMagickДляПреобразованияВPDF", - ИдентификаторКлиента); - - КачествоJPG = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/КачествоJPG", - ИдентификаторКлиента, 100); - - СжатиеTIFF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/СжатиеTIFF", - ИдентификаторКлиента, Перечисления.ВариантыСжатияTIFF.БезСжатия); - - ПутьКПрограммеКонвертации = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ПутьКПрограммеКонвертации", - ИдентификаторКлиента, "convert.exe"); // ImageMagick - + НастройкиСканированияПользователя = РаботаСФайлами.ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента); + ЗаполнитьЗначенияСвойств(ЭтотОбъект, НастройкиСканированияПользователя); + + СпособПреобразованияВPDF = ?(ИспользоватьImageMagickДляПреобразованияВPDF, 1, 0); + ФорматJPG = Перечисления.ФорматыСканированногоИзображения.JPG; ФорматTIF = Перечисления.ФорматыСканированногоИзображения.TIF; ФорматМногостраничныйTIF = Перечисления.ФорматыХраненияМногостраничныхФайлов.TIF; - ФорматОдностраничныйPDF = Перечисления.ФорматыХраненияОдностраничныхФайлов.PDF; - ФорматОдностраничныйJPG = Перечисления.ФорматыХраненияОдностраничныхФайлов.JPG; - ФорматОдностраничныйTIF = Перечисления.ФорматыХраненияОдностраничныхФайлов.TIF; - ФорматОдностраничныйPNG = Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG; - Если НЕ ИспользоватьImageMagickДляПреобразованияВPDF Тогда - ФорматХраненияМногостраничный = ФорматМногостраничныйTIF; - КонецЕсли; - - Элементы.ГруппаФорматаХранения.Видимость = ИспользоватьImageMagickДляПреобразованияВPDF; - - Если ИспользоватьImageMagickДляПреобразованияВPDF Тогда - Если ФорматХраненияОдностраничный = ФорматОдностраничныйPDF Тогда - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - Иначе - Элементы.КачествоJPG.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйTIF); - КонецЕсли; - Иначе - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - КонецЕсли; - - ВидимостьДекораций = (ИспользоватьImageMagickДляПреобразованияВPDF И (ФорматХраненияОдностраничный = ФорматОдностраничныйPDF)); - Элементы.ДекорацияФорматХраненияОдностраничный.Видимость = ВидимостьДекораций; - Элементы.ДекорацияФорматСканированногоИзображения.Видимость = ВидимостьДекораций; - - ВидимостьФорматаСканирования = (ИспользоватьImageMagickДляПреобразованияВPDF И (ФорматХраненияОдностраничный = ФорматОдностраничныйPDF)) ИЛИ (НЕ ИспользоватьImageMagickДляПреобразованияВPDF); - Элементы.ГруппаФорматаСканирования.Видимость = ВидимостьФорматаСканирования; + Элементы.ГруппаКачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); + Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); Элементы.ПутьКПрограммеКонвертации.Доступность = ИспользоватьImageMagickДляПреобразованияВPDF; - Элементы.ФорматХраненияМногостраничный.Доступность = ИспользоватьImageMagickДляПреобразованияВPDF; - ФорматХраненияОдностраничныйПредыдущее = ФорматХраненияОдностраничный; - Если НЕ ИспользоватьImageMagickДляПреобразованияВPDF Тогда - Элементы.ФорматСканированногоИзображения.Заголовок = НСтр("ru = 'Формат'"); - Иначе - Элементы.ФорматСканированногоИзображения.Заголовок = НСтр("ru = 'Тип'"); + УстановитьПодсказки(); + + ПовторноеСканирование = Параметры.ПовторноеСканирование; + + Если Параметры.ПовторноеСканирование Тогда + Элементы.ОК.Заголовок = НСтр("ru='Сканировать'"); КонецЕсли; КонецПроцедуры @@ -142,18 +69,9 @@ &НаКлиенте Процедура ФорматСканированногоИзображенияПриИзменении(Элемент) - Если ИспользоватьImageMagickДляПреобразованияВPDF Тогда - Если ФорматХраненияОдностраничный = ФорматОдностраничныйPDF Тогда - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - Иначе - Элементы.КачествоJPG.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйTIF); - КонецЕсли; - Иначе - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - КонецЕсли; + Элементы.ГруппаКачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); + Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); + УстановитьПодсказки(); КонецПроцедуры @@ -179,17 +97,37 @@ КонецПроцедуры &НаКлиенте -Процедура ФорматХраненияОдностраничныйПриИзменении(Элемент) +Процедура СпособПреобразованияВPDFПриИзменении(Элемент) - ОтработатьИзмененияФорматХраненияОдностраничный(); + ИспользоватьImageMagickДляПреобразованияВPDF = СпособПреобразованияВPDF = 1; + ОтработатьИзмененияИспользоватьImageMagick(); КонецПроцедуры &НаКлиенте -Процедура ИспользоватьImageMagickДляПреобразованияВPDFПриИзменении(Элемент) - - ОтработатьИзмененияИспользоватьImageMagick(); +Процедура КачествоJPGПриИзменении(Элемент) + Элементы.КачествоJPG.Заголовок = СтрШаблон(НСтр("ru='Качество (%1)'"), КачествоJPG); +КонецПроцедуры + +&НаКлиенте +Процедура ИмяУстройстваНачалоВыбора(Элемент, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + Попытка + МассивУстройств = РаботаСФайламиСлужебныйКлиент.ПолучитьУстройства(ПодключаемыйМодуль); + Исключение + МассивУстройств = Новый Массив; + КонецПопытки; + Если МассивУстройств.Количество() > 0 Тогда + СписокВыбора = Новый СписокЗначений(); + Для Каждого Строка Из МассивУстройств Цикл + СписокВыбора.Добавить(Строка); + КонецЦикла; + ОписаниеОповещения = Новый ОписаниеОповещения("ИмяУстройстваНачалоВыбораЗавершение", ЭтотОбъект, Элемент); + СписокВыбора.ПоказатьВыборЭлемента(ОписаниеОповещения, НСтр("ru='Выберите сканер'")); + Иначе + ПоказатьПредупреждение(,НСтр("ru = 'Не обнаружено подключенных сканеров. Проверьте подключение сканера.'")); + КонецЕсли; КонецПроцедуры #КонецОбласти @@ -203,31 +141,24 @@ Если Не ПроверитьЗаполнение() Тогда Возврат; КонецЕсли; + + НастройкиСканированияПользователя = РаботаСФайламиКлиентСервер.НастройкиСканированияПользователя(); + ЗаполнитьЗначенияСвойств(НастройкиСканированияПользователя, ЭтотОбъект); - МассивСтруктур = Новый Массив; - - СистемнаяИнформация = Новый СистемнаяИнформация(); - ИдентификаторКлиента = СистемнаяИнформация.ИдентификаторКлиента; - - МассивСтруктур.Добавить (СформироватьНастройку("ПоказыватьДиалогСканера", ПоказыватьДиалогСканера, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("ИмяУстройства", ИмяУстройства, ИдентификаторКлиента)); - - МассивСтруктур.Добавить (СформироватьНастройку("ФорматСканированногоИзображения", ФорматСканированногоИзображения, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("ФорматХраненияОдностраничный", ФорматХраненияОдностраничный, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("ФорматХраненияМногостраничный", ФорматХраненияМногостраничный, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("Разрешение", Разрешение, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("Цветность", Цветность, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("Поворот", Поворот, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("РазмерБумаги", РазмерБумаги, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("ДвустороннееСканирование", ДвустороннееСканирование, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("ИспользоватьImageMagickДляПреобразованияВPDF", ИспользоватьImageMagickДляПреобразованияВPDF, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("КачествоJPG", КачествоJPG, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("СжатиеTIFF", СжатиеTIFF, ИдентификаторКлиента)); - МассивСтруктур.Добавить (СформироватьНастройку("ПутьКПрограммеКонвертации", ПутьКПрограммеКонвертации, ИдентификаторКлиента)); - - ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранитьМассив(МассивСтруктур, Истина); - Закрыть(); - + Если НастройкиСканированияПользователя.ИспользоватьImageMagickДляПреобразованияВPDF Тогда + Если Не ЗначениеЗаполнено(НастройкиСканированияПользователя.ПутьКПрограммеКонвертации) Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Не заполнен путь к программе %1.'"), + "ImageMagick"); + ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки, , "ПутьКПрограммеКонвертации"); + Возврат; + Иначе + Контекст = Новый Структура; + ОбработчикРезультатаПроверки = Новый ОписаниеОповещения("ПослеПроверкиУстановленнойПрограммыКонвертации", ЭтотОбъект, НастройкиСканированияПользователя); + РаботаСФайламиКлиент.НачатьПроверкуНаличияПрограммыКонвертации(НастройкиСканированияПользователя.ПутьКПрограммеКонвертации, ОбработчикРезультатаПроверки); + Возврат; + КонецЕсли; + КонецЕсли; + ОКЗавершение(НастройкиСканированияПользователя); КонецПроцедуры &НаКлиенте @@ -244,23 +175,10 @@ #Область СлужебныеПроцедурыИФункции -&НаКлиенте -Функция СформироватьНастройку(Имя, Значение, ИдентификаторКлиента) - - Элемент = Новый Структура; - Элемент.Вставить("Объект", "НастройкиСканирования/" + Имя); - Элемент.Вставить("Настройка", ИдентификаторКлиента); - Элемент.Вставить("Значение", Значение); - Возврат Элемент; - -КонецФункции - &НаКлиенте Процедура ОбновитьСостояние() - Элементы.ИмяУстройства.Доступность = Ложь; - Элементы.ИмяУстройства.СписокВыбора.Очистить(); - Элементы.ИмяУстройства.РежимВыбораИзСписка = Ложь; + Элементы.КачествоJPG.Заголовок = СтрШаблон(НСтр("ru='Качество (%1)'"), КачествоJPG); Элементы.ФорматСканированногоИзображения.Доступность = Ложь; Элементы.Разрешение.Доступность = Ложь; Элементы.Цветность.Доступность = Ложь; @@ -268,24 +186,34 @@ Элементы.РазмерБумаги.Доступность = Ложь; Элементы.ДвустороннееСканирование.Доступность = Ложь; Элементы.УстановитьСтандартныеНастройки.Доступность = Ложь; + Элементы.СохранятьВPDF.Доступность = Ложь; + Элементы.КачествоJPG.Доступность = Ложь; + Элементы.СжатиеTIFF.Доступность = Ложь; + Элементы.ФорматХраненияМногостраничный.Доступность = Ложь; + Элементы.СпособПреобразованияВPDF.Доступность = Ложь; + Элементы.ПоказыватьДиалогСканера.Доступность = Ложь; - Если Не РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту() Тогда + ОписаниеОповещения = Новый ОписаниеОповещения("ОбновитьСостояниеПослеИнициализации", ЭтотОбъект); + РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту(ОписаниеОповещения, Истина); +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСостояниеПослеИнициализации(РезультатПроверкиИнициализации, Контекст) Экспорт + КомпонентаПроинициализирована = РезультатПроверкиИнициализации.Подключено; + + Если Не КомпонентаПроинициализирована Тогда Элементы.ИмяУстройства.Доступность = Ложь; Возврат; КонецЕсли; + ПодключаемыйМодуль = РезультатПроверкиИнициализации.ПодключаемыйМодуль; - Если Не РаботаСФайламиСлужебныйКлиент.ДоступнаКомандаСканировать() Тогда - Элементы.ИмяУстройства.Доступность = Ложь; + Если Не РаботаСФайламиСлужебныйКлиент.ГотовностьКСканированию(ПодключаемыйМодуль) Тогда + Элементы.ИмяУстройства.ПодсказкаВвода = НСтр("ru='Проверьте подключение сканера'"); Возврат; + Иначе + Элементы.ИмяУстройства.ПодсказкаВвода = ""; КонецЕсли; - МассивУстройств = РаботаСФайламиСлужебныйКлиент.ПолучитьУстройства(); - Для Каждого Строка Из МассивУстройств Цикл - Элементы.ИмяУстройства.СписокВыбора.Добавить(Строка); - КонецЦикла; - Элементы.ИмяУстройства.Доступность = Истина; - Элементы.ИмяУстройства.РежимВыбораИзСписка = Истина; - Если ПустаяСтрока(ИмяУстройства) Тогда Возврат; КонецЕсли; @@ -294,10 +222,16 @@ Элементы.Разрешение.Доступность = Истина; Элементы.Цветность.Доступность = Истина; Элементы.УстановитьСтандартныеНастройки.Доступность = Истина; + Элементы.СохранятьВPDF.Доступность = Истина; + Элементы.КачествоJPG.Доступность = Истина; + Элементы.СжатиеTIFF.Доступность = Истина; + Элементы.ФорматХраненияМногостраничный.Доступность = Истина; + Элементы.СпособПреобразованияВPDF.Доступность = Истина; + Элементы.ПоказыватьДиалогСканера.Доступность = Истина; - ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, "DUPLEX"); - + Элементы.ДвустороннееСканирование.Доступность = (ДвустороннееСканированиеЧисло <> -1); Если Не Разрешение.Пустая() И Не Цветность.Пустая() Тогда @@ -306,85 +240,55 @@ Возврат; КонецЕсли; - РазрешениеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ИмяУстройства, "XRESOLUTION"); - ЦветностьЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ИмяУстройства, "PIXELTYPE"); - ПоворотЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ИмяУстройства, "ROTATION"); - РазмерБумагиЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ИмяУстройства, "SUPPORTEDSIZES"); + РазрешениеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, "XRESOLUTION"); + ЦветностьЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, "PIXELTYPE"); + ПоворотЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, "ROTATION"); + РазмерБумагиЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, "SUPPORTEDSIZES"); Элементы.Поворот.Доступность = (ПоворотЧисло <> -1); Элементы.РазмерБумаги.Доступность = (РазмерБумагиЧисло <> -1); ДвустороннееСканирование = ? ((ДвустороннееСканированиеЧисло = 1), Истина, Ложь); - СохранитьВНастройкахПараметрыСканера(РазрешениеЧисло, ЦветностьЧисло, ПоворотЧисло, РазмерБумагиЧисло); - -КонецПроцедуры - -&НаСервере -Процедура СохранитьВНастройкахПараметрыСканера(РазрешениеЧисло, ЦветностьЧисло, ПоворотЧисло, РазмерБумагиЧисло) - + Модифицированность = Истина; ПреобразоватьПараметрыСканераВПеречисления(РазрешениеЧисло, ЦветностьЧисло, ПоворотЧисло, РазмерБумагиЧисло); - - МассивСтруктур = Новый Массив; - - СистемнаяИнформация = Новый СистемнаяИнформация(); - ИдентификаторКлиента = СистемнаяИнформация.ИдентификаторКлиента; - - Элемент = Новый Структура; - Элемент.Вставить("Объект", "НастройкиСканирования/Разрешение"); - Элемент.Вставить("Настройка", ИдентификаторКлиента); - Элемент.Вставить("Значение", Разрешение); - МассивСтруктур.Добавить(Элемент); - - Элемент = Новый Структура; - Элемент.Вставить("Объект", "НастройкиСканирования/Цветность"); - Элемент.Вставить("Настройка", ИдентификаторКлиента); - Элемент.Вставить("Значение", Цветность); - МассивСтруктур.Добавить(Элемент); - - Элемент = Новый Структура; - Элемент.Вставить("Объект", "НастройкиСканирования/Поворот"); - Элемент.Вставить("Настройка", ИдентификаторКлиента); - Элемент.Вставить("Значение", Поворот); - МассивСтруктур.Добавить(Элемент); - - Элемент = Новый Структура; - Элемент.Вставить("Объект", "НастройкиСканирования/РазмерБумаги"); - Элемент.Вставить("Настройка", ИдентификаторКлиента); - Элемент.Вставить("Значение", РазмерБумаги); - МассивСтруктур.Добавить(Элемент); - - ОбщегоНазначения.ХранилищеОбщихНастроекСохранитьМассив(МассивСтруктур); КонецПроцедуры &НаКлиенте Процедура ПрочитатьНастройкиСканера() - - Элементы.ФорматСканированногоИзображения.Доступность = Не ПустаяСтрока(ИмяУстройства); - Элементы.Разрешение.Доступность = Не ПустаяСтрока(ИмяУстройства); - Элементы.Цветность.Доступность = Не ПустаяСтрока(ИмяУстройства); + Модифицированность = Истина; Элементы.ДвустороннееСканирование.Доступность = Ложь; - Элементы.УстановитьСтандартныеНастройки.Доступность = Не ПустаяСтрока(ИмяУстройства); Если ПустаяСтрока(ИмяУстройства) Тогда Элементы.Поворот.Доступность = Ложь; Элементы.РазмерБумаги.Доступность = Ложь; Возврат; + Иначе + Элементы.ФорматСканированногоИзображения.Доступность = Истина; + Элементы.Разрешение.Доступность = Истина; + Элементы.Цветность.Доступность = Истина; + Элементы.УстановитьСтандартныеНастройки.Доступность = Истина; + Элементы.СохранятьВPDF.Доступность = Истина; + Элементы.КачествоJPG.Доступность = Истина; + Элементы.СжатиеTIFF.Доступность = Истина; + Элементы.ФорматХраненияМногостраничный.Доступность = Истина; + Элементы.СпособПреобразованияВPDF.Доступность = Истина; + Элементы.ПоказыватьДиалогСканера.Доступность = Истина; КонецЕсли; - РазрешениеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + РазрешениеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, "XRESOLUTION"); - ЦветностьЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + ЦветностьЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, "PIXELTYPE"); - ПоворотЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + ПоворотЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, "ROTATION"); - РазмерБумагиЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + РазмерБумагиЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, "SUPPORTEDSIZES"); - ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройства, "DUPLEX"); Элементы.Поворот.Доступность = (ПоворотЧисло <> -1); @@ -398,7 +302,7 @@ КонецПроцедуры -&НаСервере +&НаСервереБезКонтекста Процедура ПреобразоватьПараметрыСканераВПеречисления(РазрешениеЧисло, ЦветностьЧисло, ПоворотЧисло, РазмерБумагиЧисло) Результат = РаботаСФайламиСлужебный.ПараметрыСканераВПеречисления(РазрешениеЧисло, ЦветностьЧисло, ПоворотЧисло, РазмерБумагиЧисло); @@ -409,97 +313,54 @@ КонецПроцедуры -&НаСервере -Функция ПреобразоватьФорматСканированияВФорматХранения(ФорматСканирования) - - Если ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.BMP Тогда - Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.BMP; - ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.GIF Тогда - Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.GIF; - ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.JPG Тогда - Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.JPG; - ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.PNG Тогда - Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG; - ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.TIF Тогда - Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.TIF; - КонецЕсли; - - Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG; - -КонецФункции - -&НаСервере -Функция ПреобразоватьФорматХраненияВФорматСканирования(ФорматХранения) - - Если ФорматХранения = Перечисления.ФорматыХраненияОдностраничныхФайлов.BMP Тогда - Возврат Перечисления.ФорматыСканированногоИзображения.BMP; - ИначеЕсли ФорматХранения = Перечисления.ФорматыХраненияОдностраничныхФайлов.GIF Тогда - Возврат Перечисления.ФорматыСканированногоИзображения.GIF; - ИначеЕсли ФорматХранения = Перечисления.ФорматыХраненияОдностраничныхФайлов.JPG Тогда - Возврат Перечисления.ФорматыСканированногоИзображения.JPG; - ИначеЕсли ФорматХранения = Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG Тогда - Возврат Перечисления.ФорматыСканированногоИзображения.PNG; - ИначеЕсли ФорматХранения = Перечисления.ФорматыХраненияОдностраничныхФайлов.TIF Тогда - Возврат Перечисления.ФорматыСканированногоИзображения.TIF; - КонецЕсли; - - Возврат ФорматСканированногоИзображения; - -КонецФункции - -&НаСервере +&НаКлиенте Процедура ОтработатьИзмененияИспользоватьImageMagick() - Если НЕ ИспользоватьImageMagickДляПреобразованияВPDF Тогда - ФорматХраненияМногостраничный = ФорматМногостраничныйTIF; - ФорматСканированногоИзображения = ПреобразоватьФорматХраненияВФорматСканирования(ФорматХраненияОдностраничный); - Элементы.ФорматСканированногоИзображения.Заголовок = НСтр("ru = 'Формат'"); - Иначе - ФорматХраненияОдностраничный = ПреобразоватьФорматСканированияВФорматХранения(ФорматСканированногоИзображения); - Элементы.ФорматСканированногоИзображения.Заголовок = НСтр("ru = 'Тип'"); - КонецЕсли; - - ВидимостьДекораций = (ИспользоватьImageMagickДляПреобразованияВPDF И (ФорматХраненияОдностраничный = ФорматОдностраничныйPDF)); - Элементы.ДекорацияФорматХраненияОдностраничный.Видимость = ВидимостьДекораций; - Элементы.ДекорацияФорматСканированногоИзображения.Видимость = ВидимостьДекораций; - - ВидимостьФорматаСканирования = (ИспользоватьImageMagickДляПреобразованияВPDF И (ФорматХраненияОдностраничный = ФорматОдностраничныйPDF)) ИЛИ (НЕ ИспользоватьImageMagickДляПреобразованияВPDF); - Элементы.ГруппаФорматаСканирования.Видимость = ВидимостьФорматаСканирования; - Элементы.ПутьКПрограммеКонвертации.Доступность = ИспользоватьImageMagickДляПреобразованияВPDF; - Элементы.ФорматХраненияМногостраничный.Доступность = ИспользоватьImageMagickДляПреобразованияВPDF; - Элементы.ГруппаФорматаХранения.Видимость = ИспользоватьImageMagickДляПреобразованияВPDF; КонецПроцедуры &НаСервере -Процедура ОтработатьИзмененияФорматХраненияОдностраничный() +Процедура УстановитьПодсказки() - Элементы.ГруппаФорматаСканирования.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйPDF); - - Если ФорматХраненияОдностраничный = ФорматОдностраничныйPDF Тогда - ФорматСканированногоИзображения = ПреобразоватьФорматХраненияВФорматСканирования(ФорматХраненияОдностраничныйПредыдущее); - КонецЕсли; - - ВидимостьДекораций = (ИспользоватьImageMagickДляПреобразованияВPDF И (ФорматХраненияОдностраничный = ФорматОдностраничныйPDF)); - Элементы.ДекорацияФорматХраненияОдностраничный.Видимость = ВидимостьДекораций; - Элементы.ДекорацияФорматСканированногоИзображения.Видимость = ВидимостьДекораций; - - Если ИспользоватьImageMagickДляПреобразованияВPDF Тогда - Если ФорматХраненияОдностраничный = ФорматОдностраничныйPDF Тогда - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - Иначе - Элементы.КачествоJPG.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйTIF); + ПодсказкаФормата = ""; + РасширеннаяПодсказка = Строка(Элементы.СохранятьВPDF.РасширеннаяПодсказка.Заголовок); + Подсказки = СтрРазделить(РасширеннаяПодсказка, Символы.ПС); + ТекущийФормат = Строка(ФорматСканированногоИзображения); + Для Каждого Подсказка Из Подсказки Цикл + Если СтрНачинаетсяС(Подсказка, ТекущийФормат) Тогда + ПодсказкаФормата = Подсказка; КонецЕсли; - Иначе - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); + КонецЦикла; + + Элементы.ОписаниеФорматаОдностраничногоДокумента.Заголовок = ПодсказкаФормата; + +КонецПроцедуры + +&НаКлиенте +Процедура ИмяУстройстваНачалоВыбораЗавершение(ВыбранныйЭлемент, Элемент) Экспорт + Если ВыбранныйЭлемент <> Неопределено Тогда + ИмяУстройства = ВыбранныйЭлемент.Значение; + ИмяУстройстваПриИзменении(Элемент); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ОКЗавершение(НастройкиСканированияПользователя) + РаботаСФайламиКлиент.СохранитьНастройкиСканированияПользователя(НастройкиСканированияПользователя); + Результат = Новый Структура("ПовторноеСканирование", ПовторноеСканирование); + Закрыть(Результат); +КонецПроцедуры + +&НаКлиенте +Процедура ПослеПроверкиУстановленнойПрограммыКонвертации(РезультатЗапуска, НастройкиСканированияПользователя) Экспорт + Если СтрНайти(РезультатЗапуска.ПотокВывода, "ImageMagick") <> 0 Тогда + ОКЗавершение(НастройкиСканированияПользователя); + Иначе + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибочно указан путь к программе %1.'"), "ImageMagick"); + ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , "ПутьКПрограммеКонвертации"); КонецЕсли; - - ФорматХраненияОдностраничныйПредыдущее = ФорматХраненияОдностраничный; - КонецПроцедуры #КонецОбласти diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Form.form b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Form.form index 5878b6eb8..89520a31c 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Form.form +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Form.form @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form"> +<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form"> <title> <key>ru</key> <value>Настройка сканирования</value> @@ -21,9 +21,19 @@ <dataPath xsi:type="form:DataPath"> <segments>Разрешение</segments> </dataPath> + <toolTipRepresentation>Button</toolTipRepresentation> <extendedTooltip> <name>РазрешениеExtendedTooltip</name> <id>63</id> + <title> + <key>ru</key> + <value><b>200</><b> </><b>dpi</> достаточно для отправки изображений по электронной почте, факсу, размещения на сайте или просмотра на экране. +<b>300</><b> </><b>dpi</> подходит для большинства документов и изображений, а также для распознавания текста. +<b>600</><b> </><b>dpi</> подходит для сканирования цветных изображений типографского качества, которые потом можно вывести на высококачественном или широкоформатном принтере. Изображения занимают большой объем. +<b>1200</><b> </><b>dpi</> для сканирования профессиональных фотографий типографского качества. Изображения занимают большой объем. +</value> + + true Label true true @@ -232,9 +242,15 @@ ПоказыватьДиалогСканера Right + Button ПоказыватьДиалогСканераExtendedTooltip 68 + + <key>ru</key> + <value>Отключение диалога сканера не действует для WIA-устройств (см. настройки сканера в операционной системе).</value> + + true Label true true @@ -290,118 +306,6 @@ ГруппаФорматХраненияОдиночный 30 - - ГруппаФорматаХранения - 31 - - ФорматХраненияОдностраничный - 32 - true - true - - true - - - ФорматХраненияОдностраничный - - - OnChange - ФорматХраненияОдностраничныйПриИзменении - - - ФорматХраненияОдностраничныйExtendedTooltip - 53 - Label - true - true - - Left - - - - ФорматХраненияОдностраничныйКонтекстноеМеню - 33 - true - - InputField - Enter - true - Left - true - - 9 - true - true - false - true - true - true - true - Normal - 9 - - - - ДекорацияФорматХраненияОдностраничный - 34 - - <key>ru</key> - <value>(для хранения)</value> - - true - true - - true - - - ДекорацияФорматХраненияОдностраничныйExtendedTooltip - 54 - Label - true - true - - Left - - - - ДекорацияФорматХраненияОдностраничныйКонтекстноеМеню - 35 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>Формата хранения</value> - - - ГруппаФорматаХраненияExtendedTooltip - 52 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - true - true - Auto - Auto - - ГруппаФорматаСканирования 36 @@ -453,21 +357,37 @@ 9 - - ДекорацияФорматСканированногоИзображения - 39 + + СохранятьВPDF + 84 <key>ru</key> - <value>(для сканирования)</value> + <value>Преобразовать в PDF</value> true true true + + СохранятьВPDF + + Right + Button - ДекорацияФорматСканированногоИзображенияExtendedTooltip - 57 + СохранятьВPDFРасширеннаяПодсказка + 86 + + <key>ru</key> + <value><b>JPG</> подходит для большинства документов и изображений. Позволяет сжимать изображение с потерей качества. Можно настроить величину сжатия.  +<b>PNG</> подходит для большинства документов и изображений. Изображения без потери качества, файлы небольших размеров.  +<b>TIF</> позволяет сохранять изображение без потери качества, используется для хранения изображений для дальнейшей печати. Возможно хранение многостраничных изображений. +<b>GIF</> устаревший формат для хранения изображений в низком качестве. Файлы небольшого размера. +<b>BMP</> устаревший формат для хранения изображений без потери качества. Файлы больших размеров. + +<b>Преобразовать</><b> </><b>в</><b> </><b>PDF</> позволяет поместить отсканированное изображение в PDF-файл. Возможно хранение многостраничных изображений.</value> + + true Label true true @@ -476,15 +396,16 @@ - ДекорацияФорматСканированногоИзображенияКонтекстноеМеню - 40 + СохранятьВPDFКонтекстноеМеню + 85 true - Label - true - - Left - + CheckBoxField + Enter + true + Left + true + true true @@ -514,20 +435,141 @@ Auto - - КачествоJPG - 41 + + ГруппаКачествоJPG + 73 + + ДекорацияСжатиеJPG + 75 + + <key>ru</key> + <value>Лучше +сжатие</value> + + true + true + + true + + + ДекорацияСжатиеJPGРасширеннаяПодсказка + 77 + Label + true + true + + Left + + + + ДекорацияСжатиеJPGКонтекстноеМеню + 76 + true + + Label + true + true + + Left + + + + КачествоJPG + 78 + true + true + + true + + + КачествоJPG + + Top + + OnChange + КачествоJPGПриИзменении + + + КачествоJPGРасширеннаяПодсказка + 80 + Label + true + true + + Left + + + + КачествоJPGКонтекстноеМеню + 79 + true + + TrackBarField + Enter + true + Left + true + + 9 + true + 2 + true + true + 100 + 1 + 10 + 5 + BottomRight + + + + ДекорацияКачествоJPG + 81 + + <key>ru</key> + <value>Лучше +качество</value> + + true + true + + true + + + ДекорацияКачествоJPGРасширеннаяПодсказка + 83 + Label + true + true + + Left + + + + ДекорацияКачествоJPGКонтекстноеМеню + 82 + true + + Label + true + true + + Left + + true true true - - КачествоJPG - + + <key>ru</key> + <value>Качество</value> + + 2 - КачествоJPGExtendedTooltip - 58 + ГруппаКачествоJPGРасширеннаяПодсказка + 74 Label true true @@ -535,26 +577,14 @@ Left - - КачествоJPGКонтекстноеМеню - 42 - true - - InputField - Enter - true - Left - true - - 9 - true - true - false - true - true - true - true - Normal + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto @@ -601,6 +631,46 @@ 9 + + ОписаниеФорматаОдностраничногоДокумента + 87 + + <key>ru</key> + <value>Подходит для большинства документов и изображений. Позволяет сжимать изображение с потерей качества. Можно настроить величину сжатия. +</value> + + true + true + + true + + + ОписаниеФорматаОдностраничногоДокументаРасширеннаяПодсказка + 89 + Label + true + true + + Left + + + + ОписаниеФорматаОдностраничногоДокументаКонтекстноеМеню + 88 + true + + true + Label + true + true + true + + Style.ПоясняющийТекст + + + Left + + true true @@ -869,7 +939,7 @@ ПоказыватьДиалогСканера <key>ru</key> - <value>Показывать диалог сканера</value> + <value>Показывать диалог сканера перед сканированием</value> 1 @@ -1049,7 +1119,7 @@ ФорматСканированногоИзображения <key>ru</key> - <value>Тип</value> + <value>Сохранить как</value> 12 @@ -1075,58 +1145,6 @@ true - - ФорматОдностраничныйJPG - 14 - - EnumRef.ФорматыХраненияОдностраничныхФайлов - - - true - - - true - - - - ФорматОдностраничныйPDF - 15 - - EnumRef.ФорматыХраненияОдностраничныхФайлов - - - true - - - true - - - - ФорматОдностраничныйPNG - 16 - - EnumRef.ФорматыХраненияОдностраничныхФайлов - - - true - - - true - - - - ФорматОдностраничныйTIF - 17 - - EnumRef.ФорматыХраненияОдностраничныхФайлов - - - true - - - true - - ФорматХраненияМногостраничный @@ -1145,27 +1163,14 @@ </edit> </attributes> <attributes> - <name>ФорматХраненияОдностраничный</name> + <name>СохранятьВPDF</name> <title> <key>ru</key> - <value>Формат</value> + <value>Сохранять ВPDF</value> 19 - EnumRef.ФорматыХраненияОдностраничныхФайлов - - - true - - - true - - - - ФорматХраненияОдностраничныйПредыдущее - 20 - - EnumRef.ФорматыХраненияОдностраничныхФайлов + Boolean true @@ -1196,6 +1201,99 @@ DontUse Auto + + Разрешение + + EnumRef.РазрешенияСканированногоИзображения + + + + Цветность + + EnumRef.ЦветностиИзображения + + + + Поворот + + EnumRef.СпособыПоворотаИзображения + + + + РазмерБумаги + + EnumRef.РазмерыБумаги + + + + ДвустороннееСканирование + + Boolean + + + + ИспользоватьImageMagickДляПреобразованияВPDF + + Boolean + + + + ПоказыватьДиалогСканера + + Boolean + + + + ФорматСканированногоИзображения + + EnumRef.ФорматыСканированногоИзображения + + + + КачествоJPG + + Number + + 10 + + + + + СжатиеTIFF + + EnumRef.ВариантыСжатияTIFF + + + + ФорматХраненияМногостраничный + + EnumRef.ФорматыХраненияМногостраничныхФайлов + + + + ДоступностьПоворот + + Boolean + + + + ДоступностьРазмерБумаги + + Boolean + + + + ДоступностьДвустороннееСканирование + + Boolean + + + + СохранятьВPDF + + Boolean + + diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl index 58d55e504..4b4eb54ca 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl @@ -21,7 +21,7 @@ ФорматСканированногоИзображения = Параметры.ФорматСканированногоИзображения; КачествоJPG = Параметры.КачествоJPG; СжатиеTIFF = Параметры.СжатиеTIFF; - ФорматХраненияОдностраничный = Параметры.ФорматХраненияОдностраничный; + СохранятьВPDF = Параметры.СохранятьВPDF; ФорматХраненияМногостраничный = Параметры.ФорматХраненияМногостраничный; Элементы.Поворот.Видимость = Параметры.ДоступностьПоворот; @@ -32,48 +32,25 @@ ФорматTIF = Перечисления.ФорматыСканированногоИзображения.TIF; ФорматМногостраничныйTIF = Перечисления.ФорматыХраненияМногостраничныхФайлов.TIF; - ФорматОдностраничныйPDF = Перечисления.ФорматыХраненияОдностраничныхФайлов.PDF; - ФорматОдностраничныйJPG = Перечисления.ФорматыХраненияОдностраничныхФайлов.JPG; - ФорматОдностраничныйTIF = Перечисления.ФорматыХраненияОдностраничныхФайлов.TIF; - ФорматОдностраничныйPNG = Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG; Если НЕ ИспользоватьImageMagickДляПреобразованияВPDF Тогда ФорматХраненияМногостраничный = ФорматМногостраничныйTIF; КонецЕсли; - Элементы.ГруппаФорматаХранения.Видимость = ИспользоватьImageMagickДляПреобразованияВPDF; - - Если ИспользоватьImageMagickДляПреобразованияВPDF Тогда - Если ФорматХраненияОдностраничный = ФорматОдностраничныйPDF Тогда - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - Иначе - Элементы.КачествоJPG.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйTIF); - КонецЕсли; - Иначе - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - КонецЕсли; - - ВидимостьДекораций = (ИспользоватьImageMagickДляПреобразованияВPDF И (ФорматХраненияОдностраничный = ФорматОдностраничныйPDF)); - Элементы.ДекорацияФорматХраненияОдностраничный.Видимость = ВидимостьДекораций; - Элементы.ДекорацияФорматСканированногоИзображения.Видимость = ВидимостьДекораций; - - ВидимостьФорматаСканирования = (ИспользоватьImageMagickДляПреобразованияВPDF И (ФорматХраненияОдностраничный = ФорматОдностраничныйPDF)) ИЛИ (НЕ ИспользоватьImageMagickДляПреобразованияВPDF); - Элементы.ГруппаФорматаСканирования.Видимость = ВидимостьФорматаСканирования; + Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); + Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); Элементы.ФорматХраненияМногостраничный.Доступность = ИспользоватьImageMagickДляПреобразованияВPDF; - ФорматХраненияОдностраничныйПредыдущее = ФорматХраненияОдностраничный; - - Если НЕ ИспользоватьImageMagickДляПреобразованияВPDF Тогда - Элементы.ФорматСканированногоИзображения.Заголовок = НСтр("ru = 'Формат'"); - Иначе - Элементы.ФорматСканированногоИзображения.Заголовок = НСтр("ru = 'Тип'"); - КонецЕсли; + Элементы.КачествоJPG.Заголовок = СтрШаблон(НСтр("ru='Качество (%1)'"), КачествоJPG); + УстановитьПодсказки(); КонецПроцедуры +&НаКлиенте +Процедура КачествоJPGПриИзменении(Элемент) + Элементы.КачествоJPG.Заголовок = СтрШаблон(НСтр("ru='Качество (%1)'"), КачествоJPG); +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы @@ -81,25 +58,9 @@ &НаКлиенте Процедура ФорматСканированногоИзображенияПриИзменении(Элемент) - Если ИспользоватьImageMagickДляПреобразованияВPDF Тогда - Если ФорматХраненияОдностраничный = ФорматОдностраничныйPDF Тогда - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - Иначе - Элементы.КачествоJPG.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйTIF); - КонецЕсли; - Иначе - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ФорматХраненияОдностраничныйПриИзменении(Элемент) - - ОтработатьИзмененияФорматХраненияОдностраничный(); + Элементы.ГруппаКачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); + Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); + УстановитьПодсказки(); КонецПроцедуры @@ -129,9 +90,12 @@ РезультатВыбора.Вставить("ФорматСканированногоИзображения", ФорматСканированногоИзображения); РезультатВыбора.Вставить("КачествоJPG", КачествоJPG); РезультатВыбора.Вставить("СжатиеTIFF", СжатиеTIFF); - РезультатВыбора.Вставить("ФорматХраненияОдностраничный", ФорматХраненияОдностраничный); + РезультатВыбора.Вставить("СохранятьВPDF", СохранятьВPDF); РезультатВыбора.Вставить("ФорматХраненияМногостраничный", ФорматХраненияМногостраничный); + ФорматХраненияОдностраничный = ПреобразоватьФорматСканированияВФорматХранения(ФорматСканированногоИзображения, СохранятьВPDF); + РезультатВыбора.Вставить("ФорматХраненияОдностраничный", ФорматХраненияОдностраничный); + ОповеститьОВыборе(РезультатВыбора); КонецПроцедуры @@ -140,52 +104,27 @@ #Область СлужебныеПроцедурыИФункции -&НаСервере -Функция ПреобразоватьФорматХраненияВФорматСканирования(ФорматХранения) +&НаСервереБезКонтекста +Функция ПреобразоватьФорматСканированияВФорматХранения(ФорматСканирования, СохранятьВPDF) - Если ФорматХранения = Перечисления.ФорматыХраненияОдностраничныхФайлов.BMP Тогда - Возврат Перечисления.ФорматыСканированногоИзображения.BMP; - ИначеЕсли ФорматХранения = Перечисления.ФорматыХраненияОдностраничныхФайлов.GIF Тогда - Возврат Перечисления.ФорматыСканированногоИзображения.GIF; - ИначеЕсли ФорматХранения = Перечисления.ФорматыХраненияОдностраничныхФайлов.JPG Тогда - Возврат Перечисления.ФорматыСканированногоИзображения.JPG; - ИначеЕсли ФорматХранения = Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG Тогда - Возврат Перечисления.ФорматыСканированногоИзображения.PNG; - ИначеЕсли ФорматХранения = Перечисления.ФорматыХраненияОдностраничныхФайлов.TIF Тогда - Возврат Перечисления.ФорматыСканированногоИзображения.TIF; - КонецЕсли; + Возврат РаботаСФайламиСлужебный.ПреобразоватьФорматСканированияВФорматХранения(ФорматСканирования, СохранятьВPDF); - Возврат ФорматСканированногоИзображения; - -КонецФункции +КонецФункции &НаСервере -Процедура ОтработатьИзмененияФорматХраненияОдностраничный() +Процедура УстановитьПодсказки() - Элементы.ГруппаФорматаСканирования.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйPDF); - - Если ФорматХраненияОдностраничный = ФорматОдностраничныйPDF Тогда - ФорматСканированногоИзображения = ПреобразоватьФорматХраненияВФорматСканирования(ФорматХраненияОдностраничныйПредыдущее); - КонецЕсли; - - ВидимостьДекораций = (ИспользоватьImageMagickДляПреобразованияВPDF И (ФорматХраненияОдностраничный = ФорматОдностраничныйPDF)); - Элементы.ДекорацияФорматХраненияОдностраничный.Видимость = ВидимостьДекораций; - Элементы.ДекорацияФорматСканированногоИзображения.Видимость = ВидимостьДекораций; - - Если ИспользоватьImageMagickДляПреобразованияВPDF Тогда - Если ФорматХраненияОдностраничный = ФорматОдностраничныйPDF Тогда - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - Иначе - Элементы.КачествоJPG.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматХраненияОдностраничный = ФорматОдностраничныйTIF); + ПодсказкаФормата = ""; + РасширеннаяПодсказка = Строка(Элементы.СохранятьВPDF.РасширеннаяПодсказка.Заголовок); + Подсказки = СтрРазделить(РасширеннаяПодсказка, Символы.ПС); + ТекущийФормат = Строка(ФорматСканированногоИзображения); + Для Каждого Подсказка Из Подсказки Цикл + Если СтрНачинаетсяС(Подсказка, ТекущийФормат) Тогда + ПодсказкаФормата = Подсказка; КонецЕсли; - Иначе - Элементы.КачествоJPG.Видимость = (ФорматСканированногоИзображения = ФорматJPG); - Элементы.СжатиеTIFF.Видимость = (ФорматСканированногоИзображения = ФорматTIF); - КонецЕсли; + КонецЦикла; - ФорматХраненияОдностраничныйПредыдущее = ФорматХраненияОдностраничный; + Элементы.ОписаниеФорматаОдностраничногоДокумента.Заголовок = ПодсказкаФормата; КонецПроцедуры diff --git a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form index ba5af9c71..db643013a 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form +++ b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form @@ -1014,21 +1014,7 @@ - ПутьКПрограммеКонвертации - 18 - - String - - - - true - - - true - - - - СжатиеTIFF + СжатиеTIFFПеречисление 19 EnumRef.ВариантыСжатияTIFF @@ -1054,7 +1040,7 @@ - СжатиеTIFFЧисло + СжатиеTIFF 21 Number @@ -1212,19 +1198,6 @@ true - - ФорматХраненияОдностраничный - 33 - - EnumRef.ФорматыХраненияОдностраничныхФайлов - - - true - - - true - - ПрефиксИнформационнойБазы 34 @@ -1278,6 +1251,47 @@ true + + СохранятьВPDF + 38 + + Boolean + + + true + + + true + + + + ИдентификаторКлиента + 39 + + String + + + + true + + + true + + + + ТипРезультата + 41 + + String + + + + true + + + true + + Сохранить diff --git a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl index ee92a48c8..692e9ca8d 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl +++ b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl @@ -14,6 +14,9 @@ &НаКлиенте Перем ПозицияДляВставки; +&НаКлиенте +Перем ПодключаемыйМодуль; + #КонецОбласти #Область ОбработчикиСобытийФормы @@ -25,6 +28,10 @@ Элементы.ФормаПринятьВсеКакОдинФайл.Видимость = Ложь; Элементы.ФормаПринятьВсеКакОтдельныеФайлы.Видимость = Ложь; + Если Параметры.Свойство("ТипРезультата") Тогда + ТипРезультата = Параметры.ТипРезультата; + КонецЕсли; + Если Параметры.Свойство("ВладелецФайла") Тогда ВладелецФайла = Параметры.ВладелецФайла; КонецЕсли; @@ -44,72 +51,14 @@ НомерФайла = РаботаСФайламиСлужебный.ПолучитьНовыйНомерДляСканирования(ВладелецФайла); ИмяФайла = РаботаСФайламиСлужебныйКлиентСервер.ИмяСканированногоФайла(НомерФайла, ""); - ФорматСканированногоИзображения = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ФорматСканированногоИзображения", - ИдентификаторКлиента, Перечисления.ФорматыСканированногоИзображения.PNG); + ПрочитатьНастройки(); - ФорматХраненияОдностраничный = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ФорматХраненияОдностраничный", - ИдентификаторКлиента, Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG); + Если Параметры.Свойство("ПараметрыСканирования") Тогда + ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры.ПараметрыСканирования); + КонецЕсли; - ФорматХраненияМногостраничный = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ФорматХраненияМногостраничный", - ИдентификаторКлиента, Перечисления.ФорматыХраненияМногостраничныхФайлов.TIF); - - РазрешениеПеречисление = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/Разрешение", - ИдентификаторКлиента); - - ЦветностьПеречисление = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/Цветность", - ИдентификаторКлиента); - - ПоворотПеречисление = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/Поворот", - ИдентификаторКлиента); - - РазмерБумагиПеречисление = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/РазмерБумаги", - ИдентификаторКлиента); - - ДвустороннееСканирование = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ДвустороннееСканирование", - ИдентификаторКлиента); - - ИспользоватьImageMagickДляПреобразованияВPDF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ИспользоватьImageMagickДляПреобразованияВPDF", - ИдентификаторКлиента); - - КачествоJPG = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/КачествоJPG", - ИдентификаторКлиента, 100); - - СжатиеTIFF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/СжатиеTIFF", - ИдентификаторКлиента, Перечисления.ВариантыСжатияTIFF.БезСжатия); - - ПутьКПрограммеКонвертации = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ПутьКПрограммеКонвертации", - ИдентификаторКлиента, "convert.exe"); // ImageMagick - - ПоказыватьДиалогСканераЗагрузка = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ПоказыватьДиалогСканера", - ИдентификаторКлиента, Истина); - - ПоказыватьДиалогСканера = ПоказыватьДиалогСканераЗагрузка; - - ИмяУстройства = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкиСканирования/ИмяУстройства", - ИдентификаторКлиента, ""); - - ИмяУстройстваСканирования = ИмяУстройства; - - Если ИспользоватьImageMagickДляПреобразованияВPDF Тогда - Если ФорматХраненияОдностраничный = Перечисления.ФорматыХраненияОдностраничныхФайлов.PDF Тогда - ФорматКартинки = Строка(ФорматСканированногоИзображения); - Иначе - ФорматКартинки = Строка(ФорматХраненияОдностраничный); - КонецЕсли; + Если СохранятьВPDF Тогда + ФорматКартинки = "PDF"; Иначе ФорматКартинки = Строка(ФорматСканированногоИзображения); КонецЕсли; @@ -124,6 +73,10 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) + Если Не ЗначениеЗаполнено(ТипРезультата) Тогда + ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииПрисоединенныйФайл(); + КонецЕсли; + Если Не ПроверкиПриОткрытииВыполнены Тогда Отказ = Истина; СтандартныеПодсистемыКлиент.УстановитьХранениеФормы(ЭтотОбъект, Истина); @@ -154,8 +107,8 @@ ПоказыватьДиалогСканера = ВыбранноеЗначение.ПоказыватьДиалогСканера; ФорматСканированногоИзображения = ВыбранноеЗначение.ФорматСканированногоИзображения; КачествоJPG = ВыбранноеЗначение.КачествоJPG; - СжатиеTIFF = ВыбранноеЗначение.СжатиеTIFF; - ФорматХраненияОдностраничный = ВыбранноеЗначение.ФорматХраненияОдностраничный; + СжатиеTIFFПеречисление = ВыбранноеЗначение.СжатиеTIFF; + СохранятьВPDF = ВыбранноеЗначение.СохранятьВPDF; ФорматХраненияМногостраничный = ВыбранноеЗначение.ФорматХраненияМногостраничный; ПреобразоватьПеречисленияВПараметрыИПолучитьПредставление(); @@ -250,15 +203,8 @@ Элементы.Сохранить.Доступность = Ложь; - ПоказыватьДиалог = ПоказыватьДиалогСканера; - ВыбранноеУстройство = ИмяУстройстваСканирования; - ПараметрСжатие = ?(ВРег(ФорматКартинки) = "JPG", КачествоJPG, СжатиеTIFFЧисло); - - ПараметрыПриложения["СтандартныеПодсистемы.КомпонентаTwain"].НачатьСканирование( - ПоказыватьДиалог, ВыбранноеУстройство, ФорматКартинки, - Разрешение, Цветность, Поворот, РазмерБумаги, - ПараметрСжатие, - ДвустороннееСканирование); + ОписаниеОповещения = Новый ОписаниеОповещения("НачатьСканированиеПослеПолученияКомпоненты", ЭтотОбъект); + РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту(ОписаниеОповещения, Истина); КонецПроцедуры @@ -269,8 +215,6 @@ ПараметрыВыполнения.Вставить("МассивФайловКопия", Новый Массив); ПараметрыВыполнения.Вставить("ФайлРезультата", ""); - Результат = РезультатСканирования(); - Для Каждого Строка Из ТаблицаФайлов Цикл ПараметрыВыполнения.МассивФайловКопия.Добавить(Новый Структура("ПутьКФайлу", Строка.ПутьКФайлу)); КонецЦикла; @@ -281,60 +225,39 @@ ТаблицаФайлов.Очистить(); // Чтобы не удалились файлы в ПриЗакрытии. - РасширениеРезультата = Строка(ФорматХраненияОдностраничный); + РасширениеРезультата = Строка(ФорматСканированногоИзображения); РасширениеРезультата = НРег(РасширениеРезультата); - Если РасширениеРезультата = "pdf" Тогда + Контекст = Новый Структура; + Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения); + Контекст.Вставить("ПутьКФайлуЛокальный", ПутьКФайлуЛокальный); + Контекст.Вставить("ДвоичныеДанныеРезультата", ""); + + Если СохранятьВPDF Тогда #Если НЕ ВебКлиент И НЕ МобильныйКлиент Тогда ПараметрыВыполнения.ФайлРезультата = ПолучитьИмяВременногоФайла("pdf"); // АПК:441 Удаление временного файла см. ПринятьЗавершение. #КонецЕсли - СтрокаВсехПутей = ПутьКФайлуЛокальный; - ПараметрыПриложения["СтандартныеПодсистемы.КомпонентаTwain"].ОбъединитьВМногостраничныйФайл( - СтрокаВсехПутей, ПараметрыВыполнения.ФайлРезультата, ПутьКПрограммеКонвертации); - - ОбъектФайлРезультата = Новый Файл(ПараметрыВыполнения.ФайлРезультата); - Если НЕ ОбъектФайлРезультата.Существует() Тогда - ТекстСообщения = ТекстСообщенияОшибкиПреобразованияВPDF(ПараметрыВыполнения.ФайлРезультата); - ПоказатьПредупреждение(, ТекстСообщения); - УдалитьФайлы(ПутьКФайлуЛокальный); - УдалитьФайлы(ПараметрыВыполнения.ФайлРезультата); - - Результат.ТекстОшибки = ТекстСообщения; - ПринятьЗавершение(Результат, ПараметрыВыполнения); - Возврат; + ПараметрыКонвертацииГрафическогоДокумента = РаботаСФайламиКлиент.ПараметрыКонвертацииГрафическогоДокумента(); + ПараметрыКонвертацииГрафическогоДокумента.ИмяФайлаРезультата = ПараметрыВыполнения.ФайлРезультата; + Если ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииПрисоединенныйФайл() Тогда + ПараметрыКонвертацииГрафическогоДокумента.ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииИмяФайла(); + ИначеЕсли ЗначениеЗаполнено(ТипРезультата) Тогда + ПараметрыКонвертацииГрафическогоДокумента.ТипРезультата = ТипРезультата; КонецЕсли; - - УдалитьФайлы(ПутьКФайлуЛокальный); - ПутьКФайлуЛокальный = ПараметрыВыполнения.ФайлРезультата; + Оповещение = Новый ОписаниеОповещения("СохранитьПослеОбъединения", ЭтотОбъект, Контекст); + РаботаСФайламиКлиент.ОбъединитьВМногостраничныйФайл(Оповещение, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ПутьКФайлуЛокальный), + ПараметрыКонвертацииГрафическогоДокумента); + Иначе + СохранитьПослеОбъединенияЗавершение(Контекст); КонецЕсли; - - Если НЕ ПустаяСтрока(ПутьКФайлуЛокальный) Тогда - Обработчик = Новый ОписаниеОповещения("ПринятьЗавершение", ЭтотОбъект, ПараметрыВыполнения); - - ПараметрыДобавления = Новый Структура; - ПараметрыДобавления.Вставить("ОбработчикРезультата", Обработчик); - ПараметрыДобавления.Вставить("ПолноеИмяФайла", ПутьКФайлуЛокальный); - ПараметрыДобавления.Вставить("ВладелецФайла", ВладелецФайла); - ПараметрыДобавления.Вставить("ФормаВладелец", ЭтотОбъект); - ПараметрыДобавления.Вставить("ИмяСоздаваемогоФайла", ИмяФайла); - ПараметрыДобавления.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", НеОткрыватьКарточкуПослеСозданияИзФайла); - ПараметрыДобавления.Вставить("ИдентификаторФормы", УникальныйИдентификатор); - ПараметрыДобавления.Вставить("ЭтоФайл", ЭтоФайл); - - РаботаСФайламиСлужебныйКлиент.ДобавитьИзФайловойСистемыСРасширением(ПараметрыДобавления); - Возврат; - КонецЕсли; - - Результат.ТекстОшибки = НСтр("ru = 'Не удалось сохранить отсканированный файл.'"); - ПринятьЗавершение(Результат, ПараметрыВыполнения); КонецПроцедуры &НаКлиенте Процедура Настройка(Команда) - ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ИмяУстройстваСканирования, "DUPLEX"); ДоступностьДвустороннееСканирование = (ДвустороннееСканированиеЧисло <> -1); @@ -356,8 +279,8 @@ ПараметрыФормы.Вставить("ДоступностьДвустороннееСканирование", ДоступностьДвустороннееСканирование); ПараметрыФормы.Вставить("ФорматСканированногоИзображения", ФорматСканированногоИзображения); ПараметрыФормы.Вставить("КачествоJPG", КачествоJPG); - ПараметрыФормы.Вставить("СжатиеTIFF", СжатиеTIFF); - ПараметрыФормы.Вставить("ФорматХраненияОдностраничный", ФорматХраненияОдностраничный); + ПараметрыФормы.Вставить("СжатиеTIFF", СжатиеTIFFПеречисление); + ПараметрыФормы.Вставить("СохранятьВPDF", СохранятьВPDF); ПараметрыФормы.Вставить("ФорматХраненияМногостраничный", ФорматХраненияМногостраничный); ОткрытьФорму("Обработка.Сканирование.Форма.НастройкаСканированияНаСеанс", ПараметрыФормы, ЭтотОбъект); @@ -371,8 +294,6 @@ ПараметрыВыполнения.Вставить("МассивФайловКопия", Новый Массив); ПараметрыВыполнения.Вставить("ФайлРезультата", ""); - Результат = РезультатСканирования(); - Для Каждого Строка Из ТаблицаФайлов Цикл ПараметрыВыполнения.МассивФайловКопия.Добавить(Новый Структура("ПутьКФайлу", Строка.ПутьКФайлу)); КонецЦикла; @@ -380,52 +301,34 @@ ТаблицаФайлов.Очистить(); // Чтобы не удалились файлы в ПриЗакрытии. // Здесь работаем со всеми картинками - объединяем их в один многостраничный файл. - СтрокаВсехПутей = ""; + + ПутиКФайлам = Новый Массив; + Для Каждого Строка Из ПараметрыВыполнения.МассивФайловКопия Цикл - СтрокаВсехПутей = СтрокаВсехПутей + "*"; - СтрокаВсехПутей = СтрокаВсехПутей + Строка.ПутьКФайлу; + ПутиКФайлам.Добавить(Строка.ПутьКФайлу); КонецЦикла; + ПараметрыКонвертацииГрафическогоДокумента = РаботаСФайламиКлиент.ПараметрыКонвертацииГрафическогоДокумента(); + ПараметрыКонвертацииГрафическогоДокумента.ИмяФайлаРезультата = ПараметрыВыполнения.ФайлРезультата; + Если ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииПрисоединенныйФайл() Тогда + ПараметрыКонвертацииГрафическогоДокумента.ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииИмяФайла(); + ИначеЕсли ЗначениеЗаполнено(ТипРезультата) Тогда + ПараметрыКонвертацииГрафическогоДокумента.ТипРезультата = ТипРезультата; + КонецЕсли; #Если НЕ ВебКлиент И НЕ МобильныйКлиент Тогда РасширениеРезультата = Строка(ФорматХраненияМногостраничный); РасширениеРезультата = НРег(РасширениеРезультата); ПараметрыВыполнения.ФайлРезультата = ПолучитьИмяВременногоФайла(РасширениеРезультата); // АПК:441 Удаление временного файла см. ПринятьВсеКакОдинФайлЗавершение + ПараметрыКонвертацииГрафическогоДокумента.ФорматРезультата = РасширениеРезультата; #КонецЕсли - ПараметрыПриложения["СтандартныеПодсистемы.КомпонентаTwain"].ОбъединитьВМногостраничныйФайл( - СтрокаВсехПутей, ПараметрыВыполнения.ФайлРезультата, ПутьКПрограммеКонвертации); - - ОбъектФайлРезультата = Новый Файл(ПараметрыВыполнения.ФайлРезультата); - Если НЕ ОбъектФайлРезультата.Существует() Тогда - ТекстСообщения = ТекстСообщенияОшибкиПреобразованияВPDF(ПараметрыВыполнения.ФайлРезультата); - УдалитьФайлы(ПараметрыВыполнения.ФайлРезультата); - ПараметрыВыполнения.ФайлРезультата = ""; - Результат.ТекстОшибки = ТекстСообщения; - ПоказатьПредупреждение(, ТекстСообщения); - ПринятьВсеКакОдинФайлЗавершение(Результат, ПараметрыВыполнения); - Возврат; - КонецЕсли; - - Если НЕ ПустаяСтрока(ПараметрыВыполнения.ФайлРезультата) Тогда - Обработчик = Новый ОписаниеОповещения("ПринятьВсеКакОдинФайлЗавершение", ЭтотОбъект, ПараметрыВыполнения); - - ПараметрыДобавления = Новый Структура; - ПараметрыДобавления.Вставить("ОбработчикРезультата", Обработчик); - ПараметрыДобавления.Вставить("ВладелецФайла", ВладелецФайла); - ПараметрыДобавления.Вставить("ФормаВладелец", ЭтотОбъект); - ПараметрыДобавления.Вставить("ПолноеИмяФайла", ПараметрыВыполнения.ФайлРезультата); - ПараметрыДобавления.Вставить("ИмяСоздаваемогоФайла", ИмяФайла); - ПараметрыДобавления.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", НеОткрыватьКарточкуПослеСозданияИзФайла); - ПараметрыДобавления.Вставить("ИдентификаторФормы", УникальныйИдентификатор); - ПараметрыДобавления.Вставить("УникальныйИдентификатор", УникальныйИдентификатор); - ПараметрыДобавления.Вставить("ЭтоФайл", ЭтоФайл); - - РаботаСФайламиСлужебныйКлиент.ДобавитьИзФайловойСистемыСРасширением(ПараметрыДобавления); - Возврат; - КонецЕсли; + Контекст = Новый Структура; + Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения); + Контекст.Вставить("ДвоичныеДанныеРезультата", ""); - ПринятьВсеКакОдинФайлЗавершение(Результат, ПараметрыВыполнения); + Оповещение = Новый ОписаниеОповещения("СохранитьВсеКакОдинФайлЗавершение", ЭтотОбъект, Контекст); + РаботаСФайламиКлиент.ОбъединитьВМногостраничныйФайл(Оповещение, ПутиКФайлам, ПараметрыКонвертацииГрафическогоДокумента); КонецПроцедуры &НаКлиенте @@ -435,12 +338,15 @@ Для Каждого Строка Из ТаблицаФайлов Цикл МассивФайловКопия.Добавить(Новый Структура("ПутьКФайлу", Строка.ПутьКФайлу)); КонецЦикла; - ОтсканированныеФайлы = Новый Массив; ТаблицаФайлов.Очистить(); // Чтобы не удалились файлы в ПриЗакрытии. - РасширениеРезультата = Строка(ФорматХраненияОдностраничный); - РасширениеРезультата = НРег(РасширениеРезультата); + Если СохранятьВPDF Тогда + РасширениеРезультата = "pdf"; + Иначе + РасширениеРезультата = Строка(ФорматСканированногоИзображения); + РасширениеРезультата = НРег(РасширениеРезультата); + КонецЕсли; ПараметрыДобавления = Новый Структура; ПараметрыДобавления.Вставить("ВладелецФайла", ВладелецФайла); @@ -452,102 +358,26 @@ ПараметрыДобавления.Вставить("ИмяСоздаваемогоФайла", ""); ПараметрыДобавления.Вставить("ЭтоФайл", ЭтоФайл); - ПолныйТекстВсехОшибок = ""; - КоличествоОшибок = 0; + Контекст = Новый Структура; + Контекст.Вставить("РасширениеРезультата", РасширениеРезультата); + Контекст.Вставить("ПараметрыДобавления", ПараметрыДобавления); + Контекст.Вставить("ОтсканированныеФайлы", Новый Массив); + Контекст.Вставить("ПолныйТекстВсехОшибок", ""); + Контекст.Вставить("КоличествоОшибок", 0); + Контекст.Вставить("МассивФайлов", МассивФайловКопия); + Контекст.Вставить("ИндексФайла", 0); - // Здесь работаем со всеми картинками -каждую как отдельный файл принимаем. - Для Каждого Строка Из МассивФайловКопия Цикл - - ПутьКФайлуЛокальный = Строка.ПутьКФайлу; - - ФайлРезультата = ""; - Если РасширениеРезультата = "pdf" Тогда - -#Если НЕ ВебКлиент И НЕ МобильныйКлиент Тогда - ФайлРезультата = ПолучитьИмяВременногоФайла("pdf"); -#КонецЕсли - - СтрокаВсехПутей = ПутьКФайлуЛокальный; - ПараметрыПриложения["СтандартныеПодсистемы.КомпонентаTwain"].ОбъединитьВМногостраничныйФайл( - СтрокаВсехПутей, ФайлРезультата, ПутьКПрограммеКонвертации); - - ОбъектФайлРезультата = Новый Файл(ФайлРезультата); - Если НЕ ОбъектФайлРезультата.Существует() Тогда - ТекстОшибки = ТекстСообщенияОшибкиПреобразованияВPDF(ФайлРезультата); - Если ПолныйТекстВсехОшибок <> "" Тогда - ПолныйТекстВсехОшибок = ПолныйТекстВсехОшибок + Символы.ПС + Символы.ПС + "---" + Символы.ПС + Символы.ПС; - КонецЕсли; - ПолныйТекстВсехОшибок = ПолныйТекстВсехОшибок + ТекстОшибки; - КоличествоОшибок = КоличествоОшибок + 1; - ФайлРезультата = ""; - КонецЕсли; - - ПутьКФайлуЛокальный = ФайлРезультата; - - КонецЕсли; - - Если НЕ ПустаяСтрока(ПутьКФайлуЛокальный) Тогда - ПараметрыДобавления.ПолноеИмяФайла = ПутьКФайлуЛокальный; - ПараметрыДобавления.ИмяСоздаваемогоФайла = ИмяФайла; - Результат = РаботаСФайламиСлужебныйКлиент.ДобавитьИзФайловойСистемыСРасширениемСинхронно(ПараметрыДобавления); - Если Не Результат.ФайлДобавлен Тогда - Если ЗначениеЗаполнено(Результат.ТекстОшибки) Тогда - ПоказатьПредупреждение(, Результат.ТекстОшибки); - Возврат; - КонецЕсли; - Иначе - ОтсканированныеФайлы.Добавить(Результат); - КонецЕсли; - КонецЕсли; - - Если НЕ ПустаяСтрока(ФайлРезультата) Тогда - УдалитьФайлы(ФайлРезультата); - КонецЕсли; - - НомерФайла = НомерФайла + 1; - ИмяФайла = РаботаСФайламиСлужебныйКлиентСервер.ИмяСканированногоФайла(НомерФайла, ""); - - КонецЦикла; - - РаботаСФайламиСлужебныйВызовСервера.ЗанестиМаксимальныйНомерДляСканирования( - ВладелецФайла, НомерФайла - 1); - - УдалитьВременныеФайлы(МассивФайловКопия); - - Если КоличествоОшибок > 0 Тогда - Если КоличествоОшибок = 1 Тогда - ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось сохранить файл по причине: - |%1'"), - ПолныйТекстВсехОшибок); - Иначе - ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось сохранить некоторые файлы (%1): - |%2'"), - Строка(КоличествоОшибок), ПолныйТекстВсехОшибок); - КонецЕсли; - СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, ТекстПредупреждения, РежимДиалогаВопрос.ОК); - КонецЕсли; - - Закрыть(ОтсканированныеФайлы); + СохранитьКакОтдельныеФайлыРекурсивно(Контекст); КонецПроцедуры &НаКлиенте Процедура Сканировать(Команда) - ПоказыватьДиалог = ПоказыватьДиалогСканера; - ВыбранноеУстройство = ИмяУстройстваСканирования; - ПараметрСжатие = ?(ВРег(ФорматКартинки) = "JPG", КачествоJPG, СжатиеTIFFЧисло); - ПозицияДляВставки = Неопределено; - - ПараметрыПриложения["СтандартныеПодсистемы.КомпонентаTwain"].НачатьСканирование( - ПоказыватьДиалог, ВыбранноеУстройство, ФорматКартинки, - Разрешение, Цветность, Поворот, РазмерБумаги, - ПараметрСжатие, - ДвустороннееСканирование); - + ОписаниеОповещения = Новый ОписаниеОповещения("НачатьСканированиеПослеПолученияКомпоненты", ЭтотОбъект); + РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту(ОписаниеОповещения, Истина); + КонецПроцедуры #КонецОбласти @@ -571,35 +401,52 @@ Процедура ПередОткрытиемАвтомат(Результат, ПараметрыОткрытия) Экспорт // Вторичная инициализация автомата (вызов из диалога, открытого автоматом). Если ПараметрыОткрытия.ТекущийШаг = 2 Тогда - Если ТипЗнч(Результат) = Тип("Строка") И Не ПустаяСтрока(Результат) Тогда - ПараметрыОткрытия.ВыбранноеУстройство = Результат; - ИмяУстройстваСканирования = ПараметрыОткрытия.ВыбранноеУстройство; + ПовторноеСканирование = Неопределено; + Если ТипЗнч(Результат) = Тип("Структура") И Результат.Свойство("ПовторноеСканирование", ПовторноеСканирование) + И ПовторноеСканирование = Истина Тогда + ПрочитатьНастройки(); + ПараметрыОткрытия.ВыбранноеУстройство = ИмяУстройстваСканирования; КонецЕсли; ПараметрыОткрытия.ТекущийШаг = 3; КонецЕсли; Если ПараметрыОткрытия.ТекущийШаг = 1 Тогда - Если Не РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту() Тогда - Возврат; - КонецЕсли; - - // Вызывается здесь, т.к. вызов ПараметрыПриложения["СтандартныеПодсистемы.КомпонентаTwain"].ЕстьУстройства() - // занимает очень много времени (больше, чем ОбновитьПовторноИспользуемыеЗначения()). - Если Не РаботаСФайламиСлужебныйКлиент.ДоступнаКомандаСканировать() Тогда - ОбновитьПовторноИспользуемыеЗначения(); - Возврат; - КонецЕсли; - - ПараметрыОткрытия.ТекущийШаг = 2; + ОписаниеОповещения = Новый ОписаниеОповещения("ПередОткрытиемАвтоматШаг1ПослеИнициализации", ЭтотОбъект, ПараметрыОткрытия); + РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту(ОписаниеОповещения, Истина); + Возврат; КонецЕсли; + ПередОткрытиемАвтоматПродолжение(ПараметрыОткрытия); +КонецПроцедуры + +&НаКлиенте +Процедура ПередОткрытиемАвтоматШаг1ПослеИнициализации(РезультатПроверкиИнициализации, ПараметрыОткрытия) Экспорт + + КомпонентаПроинициализирована = РезультатПроверкиИнициализации.Подключено; + Если Не КомпонентаПроинициализирована Тогда + Возврат; + КонецЕсли; + ПодключаемыйМодуль = РезультатПроверкиИнициализации.ПодключаемыйМодуль; + Если Не ПодключаемыйМодуль.ЕстьУстройства() Тогда + Возврат; + КонецЕсли; + + ПараметрыОткрытия.ТекущийШаг = 2; + + ПередОткрытиемАвтоматПродолжение(ПараметрыОткрытия); +КонецПроцедуры + +&НаКлиенте +Процедура ПередОткрытиемАвтоматПродолжение(ПараметрыОткрытия) + Если ПараметрыОткрытия.ТекущийШаг = 2 Тогда ПараметрыОткрытия.ПоказыватьДиалог = ПоказыватьДиалогСканера; ПараметрыОткрытия.ВыбранноеУстройство = ИмяУстройстваСканирования; Если ПараметрыОткрытия.ВыбранноеУстройство = "" Тогда Обработчик = Новый ОписаниеОповещения("ПередОткрытиемАвтомат", ЭтотОбъект, ПараметрыОткрытия); - ОткрытьФорму("Обработка.Сканирование.Форма.ВыборУстройстваСканирования", , ЭтотОбъект, , , , Обработчик, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); + ПараметрыОткрытияФормы = Новый Структура("ПовторноеСканирование", Истина); + ОткрытьФорму("Обработка.Сканирование.Форма.НастройкаСканирования", ПараметрыОткрытияФормы , ЭтотОбъект, , , , Обработчик, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); Возврат; КонецЕсли; @@ -613,23 +460,23 @@ Если Разрешение = -1 ИЛИ Цветность = -1 ИЛИ Поворот = -1 ИЛИ РазмерБумаги = -1 Тогда - Разрешение = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + Разрешение = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ПараметрыОткрытия.ВыбранноеУстройство, "XRESOLUTION"); - Цветность = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + Цветность = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ПараметрыОткрытия.ВыбранноеУстройство, "PIXELTYPE"); - Поворот = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + Поворот = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ПараметрыОткрытия.ВыбранноеУстройство, "ROTATION"); - РазмерБумаги = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + РазмерБумаги = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ПараметрыОткрытия.ВыбранноеУстройство, "SUPPORTEDSIZES"); - ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку( + ДвустороннееСканированиеЧисло = РаботаСФайламиСлужебныйКлиент.ПолучитьНастройку(ПодключаемыйМодуль, ПараметрыОткрытия.ВыбранноеУстройство, "DUPLEX"); @@ -640,7 +487,6 @@ СистемнаяИнформация = Новый СистемнаяИнформация(); ИдентификаторКлиента = СистемнаяИнформация.ИдентификаторКлиента; - СохранитьПараметрыСканера(Разрешение, Цветность, ИдентификаторКлиента); Иначе ДоступностьПоворот = Не ПоворотПеречисление.Пустая(); @@ -651,24 +497,17 @@ Элементы.Сохранить.Доступность = Ложь; - ПараметрСжатие = ?(ВРег(ФорматКартинки) = "JPG", КачествоJPG, СжатиеTIFFЧисло); + ПараметрСжатие = ?(ВРег(ФорматКартинки) = "JPG", КачествоJPG, СжатиеTIFF); Если Не Открыта() Тогда ПроверкиПриОткрытииВыполнены = Истина; Открыть(); ПроверкиПриОткрытииВыполнены = Ложь; КонецЕсли; + + ОписаниеОповещения = Новый ОписаниеОповещения("НачатьСканированиеПослеПолученияКомпоненты", ЭтотОбъект); + РаботаСФайламиСлужебныйКлиент.ПроинициализироватьКомпоненту(ОписаниеОповещения, Истина); - ПараметрыПриложения["СтандартныеПодсистемы.КомпонентаTwain"].НачатьСканирование( - ПараметрыОткрытия.ПоказыватьДиалог, - ПараметрыОткрытия.ВыбранноеУстройство, - ФорматКартинки, - Разрешение, - Цветность, - Поворот, - РазмерБумаги, - ПараметрСжатие, - ДвустороннееСканирование); КонецЕсли; КонецПроцедуры @@ -689,125 +528,58 @@ Процедура ПринятьВсеКакОдинФайлЗавершение(Результат, ПараметрыВыполнения) Экспорт УдалитьВременныеФайлы(ПараметрыВыполнения.МассивФайловКопия); - УдалитьФайлы(ПараметрыВыполнения.ФайлРезультата); + Если ЗначениеЗаполнено(ПараметрыВыполнения.ФайлРезультата) Тогда + УдалитьФайлы(ПараметрыВыполнения.ФайлРезультата); + КонецЕсли; + Закрыть(Результат); КонецПроцедуры &НаСервере Процедура ПреобразоватьПеречисленияВПараметрыИПолучитьПредставление() - - Разрешение = -1; - Если РазрешениеПеречисление = Перечисления.РазрешенияСканированногоИзображения.dpi200 Тогда - Разрешение = 200; - ИначеЕсли РазрешениеПеречисление = Перечисления.РазрешенияСканированногоИзображения.dpi300 Тогда - Разрешение = 300; - ИначеЕсли РазрешениеПеречисление = Перечисления.РазрешенияСканированногоИзображения.dpi600 Тогда - Разрешение = 600; - ИначеЕсли РазрешениеПеречисление = Перечисления.РазрешенияСканированногоИзображения.dpi1200 Тогда - Разрешение = 1200; - КонецЕсли; - - Цветность = -1; - Если ЦветностьПеречисление = Перечисления.ЦветностиИзображения.Монохромное Тогда - Цветность = 0; - ИначеЕсли ЦветностьПеречисление = Перечисления.ЦветностиИзображения.ГрадацииСерого Тогда - Цветность = 1; - ИначеЕсли ЦветностьПеречисление = Перечисления.ЦветностиИзображения.Цветное Тогда - Цветность = 2; - КонецЕсли; - - Поворот = 0; - Если ПоворотПеречисление = Перечисления.СпособыПоворотаИзображения.НетПоворота Тогда - Поворот = 0; - ИначеЕсли ПоворотПеречисление = Перечисления.СпособыПоворотаИзображения.ВправоНа90 Тогда - Поворот = 90; - ИначеЕсли ПоворотПеречисление = Перечисления.СпособыПоворотаИзображения.ВправоНа180 Тогда - Поворот = 180; - ИначеЕсли ПоворотПеречисление = Перечисления.СпособыПоворотаИзображения.ВлевоНа90 Тогда - Поворот = 270; - КонецЕсли; - - РазмерБумаги = 0; - Если РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.НеЗадано Тогда - РазмерБумаги = 0; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.A3 Тогда - РазмерБумаги = 11; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.A4 Тогда - РазмерБумаги = 1; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.A5 Тогда - РазмерБумаги = 5; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.B4 Тогда - РазмерБумаги = 6; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.B5 Тогда - РазмерБумаги = 2; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.B6 Тогда - РазмерБумаги = 7; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.C4 Тогда - РазмерБумаги = 14; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.C5 Тогда - РазмерБумаги = 15; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.C6 Тогда - РазмерБумаги = 16; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.USLetter Тогда - РазмерБумаги = 3; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.USLegal Тогда - РазмерБумаги = 4; - ИначеЕсли РазмерБумагиПеречисление = Перечисления.РазмерыБумаги.USExecutive Тогда - РазмерБумаги = 10; - КонецЕсли; - - СжатиеTIFFЧисло = 6; // БезСжатия - Если СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.LZW Тогда - СжатиеTIFFЧисло = 2; - ИначеЕсли СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.RLE Тогда - СжатиеTIFFЧисло = 5; - ИначеЕсли СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.БезСжатия Тогда - СжатиеTIFFЧисло = 6; - ИначеЕсли СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.CCITT3 Тогда - СжатиеTIFFЧисло = 3; - ИначеЕсли СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.CCITT4 Тогда - СжатиеTIFFЧисло = 4; - - КонецЕсли; + + НастройкиСканирования = РаботаСФайламиСлужебныйВызовСервера.ПараметрыСканирования(); + НастройкиСканирования.Разрешение = РазрешениеПеречисление; + НастройкиСканирования.Цветность = ЦветностьПеречисление; + НастройкиСканирования.Поворот = ПоворотПеречисление; + НастройкиСканирования.РазмерБумаги = РазмерБумагиПеречисление; + НастройкиСканирования.СжатиеTIFF = СжатиеTIFFПеречисление; + ПримитивныеНастройкиСканирования = РаботаСФайламиСлужебныйВызовСервера.КонвертироватьНастройкиСканирования(НастройкиСканирования); + ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПримитивныеНастройкиСканирования, "Разрешение, Цветность, Поворот, РазмерБумаги, СжатиеTIFF"); Представление = ""; // Информационная надпись вида: // "Формат хранения: PDF. Формат сканирования: JPG. Качество: 75. Формат хранения многостраничный: PDF. Разрешение: // 200. Цветное"; - Если ИспользоватьImageMagickДляПреобразованияВPDF Тогда - Если ФорматХраненияОдностраничный = Перечисления.ФорматыХраненияОдностраничныхФайлов.PDF Тогда - ФорматКартинки = Строка(ФорматСканированногоИзображения); - - Представление = Представление + НСтр("ru = 'Формат хранения:'") + " "; - Представление = Представление + "PDF"; - Представление = Представление + ". "; - Представление = Представление + НСтр("ru = 'Формат сканирования:'") + " "; - Представление = Представление + ФорматКартинки; - Представление = Представление + ". "; - Иначе - ФорматКартинки = Строка(ФорматХраненияОдностраничный); - Представление = Представление + НСтр("ru = 'Формат хранения:'") + " "; - Представление = Представление + ФорматКартинки; - Представление = Представление + ". "; - КонецЕсли; + + Если СохранятьВPDF Тогда + ФорматКартинки = Строка(ФорматСканированногоИзображения); + + Представление = Представление + НСтр("ru = 'Сохранить как:'") + " "; + Представление = Представление + "PDF"; + Представление = Представление + ". "; + Представление = Представление + НСтр("ru = 'Формат сканирования:'") + " "; + Представление = Представление + ФорматКартинки; + Представление = Представление + ". "; Иначе ФорматКартинки = Строка(ФорматСканированногоИзображения); - Представление = Представление + НСтр("ru = 'Формат хранения:'") + " "; + Представление = Представление + НСтр("ru = 'Сохранить как:'") + " "; Представление = Представление + ФорматКартинки; Представление = Представление + ". "; КонецЕсли; + Если ВРег(ФорматКартинки) = "JPG" Тогда Представление = Представление + НСтр("ru = 'Качество:'") + " " + Строка(КачествоJPG) + ". "; КонецЕсли; Если ВРег(ФорматКартинки) = "TIF" Тогда - Представление = Представление + НСтр("ru = 'Сжатие:'") + " " + Строка(СжатиеTIFF) + ". "; + Представление = Представление + НСтр("ru = 'Сжатие:'") + " " + Строка(СжатиеTIFFПеречисление) + ". "; КонецЕсли; - Представление = Представление + НСтр("ru = 'Формат хранения многостраничный:'") + " "; + Представление = Представление + НСтр("ru = 'Сохранить как многостраничный:'") + " "; Представление = Представление + Строка(ФорматХраненияМногостраничный); Представление = Представление + ". "; @@ -927,26 +699,328 @@ КонецФункции -&НаСервереБезКонтекста -Процедура СохранитьПараметрыСканера(РазрешениеЧисло, ЦветностьЧисло, ИдентификаторКлиента) +&НаСервере +Процедура ПрочитатьНастройки() + НастройкиСканированияПользователя = РаботаСФайлами.ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента); + ЗаполнитьЗначенияСвойств(ЭтотОбъект, НастройкиСканированияПользователя); + РазрешениеПеречисление = НастройкиСканированияПользователя.Разрешение; + ЦветностьПеречисление = НастройкиСканированияПользователя.Цветность; + ПоворотПеречисление = НастройкиСканированияПользователя.Поворот; + СжатиеTIFFПеречисление = НастройкиСканированияПользователя.СжатиеTIFF; + ИмяУстройстваСканирования = НастройкиСканированияПользователя.ИмяУстройства; + РазмерБумагиПеречисление = НастройкиСканированияПользователя.РазмерБумаги; +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьПослеОбъединенияЗавершение(Контекст) + ПараметрыВыполнения = Контекст.ПараметрыВыполнения; + ПутьКФайлуЛокальный = Контекст.ПутьКФайлуЛокальный; - Результат = РаботаСФайламиСлужебный.ПараметрыСканераВПеречисления(РазрешениеЧисло, ЦветностьЧисло, 0, 0); - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("НастройкиСканирования/Разрешение", ИдентификаторКлиента, Результат.Разрешение); - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("НастройкиСканирования/Цветность", ИдентификаторКлиента, Результат.Цветность); + Результат = РаботаСФайламиСлужебныйКлиент.РезультатСканирования(); + + Если ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииДвоичныеДанные() Тогда + Результат.ДвоичныеДанные = ?(ЗначениеЗаполнено(Контекст.ДвоичныеДанныеРезультата), + Контекст.ДвоичныеДанныеРезультата, Новый ДвоичныеДанные(Контекст.ПутьКФайлуЛокальный)); + ПринятьЗавершение(Результат, ПараметрыВыполнения); + Возврат; + ИначеЕсли ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииИмяФайла() Тогда + Результат.ИмяФайла = Контекст.ПутьКФайлуЛокальный; + ИндексыУдаления = Новый Массив(); + Для ИндексФайла = 0 По ПараметрыВыполнения.МассивФайловКопия.ВГраница() Цикл + Если ПараметрыВыполнения.МассивФайловКопия[0].ПутьКФайлу = Контекст.ПутьКФайлуЛокальный Тогда + ИндексыУдаления.Вставить(0, ИндексФайла); + КонецЕсли; + КонецЦикла; + + Для Каждого ИндексУдаления Из ИндексыУдаления Цикл + ПараметрыВыполнения.МассивФайловКопия.Удалить(ИндексУдаления); + КонецЦикла; + + ПараметрыВыполнения.ФайлРезультата = ""; + ПринятьЗавершение(Результат, ПараметрыВыполнения); + Возврат; + Иначе + Если НЕ ПустаяСтрока(ПутьКФайлуЛокальный) Тогда + Обработчик = Новый ОписаниеОповещения("ПринятьЗавершение", ЭтотОбъект, ПараметрыВыполнения); + + ПараметрыДобавления = Новый Структура; + ПараметрыДобавления.Вставить("ОбработчикРезультата", Обработчик); + ПараметрыДобавления.Вставить("ПолноеИмяФайла", ПутьКФайлуЛокальный); + ПараметрыДобавления.Вставить("ВладелецФайла", ВладелецФайла); + ПараметрыДобавления.Вставить("ФормаВладелец", ЭтотОбъект); + ПараметрыДобавления.Вставить("ИмяСоздаваемогоФайла", ИмяФайла); + ПараметрыДобавления.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", НеОткрыватьКарточкуПослеСозданияИзФайла); + ПараметрыДобавления.Вставить("ИдентификаторФормы", УникальныйИдентификатор); + ПараметрыДобавления.Вставить("ЭтоФайл", ЭтоФайл); + + РаботаСФайламиСлужебныйКлиент.ДобавитьИзФайловойСистемыСРасширением(ПараметрыДобавления); + Возврат; + КонецЕсли; + КонецЕсли; + + + Результат.ТекстОшибки = НСтр("ru = 'Не удалось сохранить отсканированный файл.'"); + + ПринятьЗавершение(Результат, ПараметрыВыполнения); +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьПослеОбъединения(РезультатОбъединения, Контекст) Экспорт + + Контекст.ДвоичныеДанныеРезультата = РезультатОбъединения.ДвоичныеДанные; + ПараметрыВыполнения = Контекст.ПараметрыВыполнения; + + Результат = РаботаСФайламиСлужебныйКлиент.РезультатСканирования(); + + Если РезультатОбъединения.Успешно = Ложь Тогда + ТекстСообщения = РезультатОбъединения.ОписаниеОшибки; + ПоказатьПредупреждение(, ТекстСообщения); + УдалитьФайлы(Контекст.ПутьКФайлуЛокальный); + УдалитьФайлы(ПараметрыВыполнения.ФайлРезультата); + Результат.ТекстОшибки = ТекстСообщения; + ПринятьЗавершение(Результат, ПараметрыВыполнения); + Возврат; + КонецЕсли; + + Если ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииДвоичныеДанные() Тогда + Результат.ДвоичныеДанные = Контекст.ДвоичныеДанныеРезультата; + ИначеЕсли ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииИмяФайла() Тогда + Результат.ИмяФайла = РезультатОбъединения.ИмяФайлаРезультата; + Иначе + ОбъектФайлРезультата = Новый Файл(ПараметрыВыполнения.ФайлРезультата); + Если НЕ ОбъектФайлРезультата.Существует() Тогда + ТекстСообщения = ТекстСообщенияОшибкиПреобразованияВPDF(ПараметрыВыполнения.ФайлРезультата); + ПоказатьПредупреждение(, ТекстСообщения); + УдалитьФайлы(Контекст.ПутьКФайлуЛокальный); + УдалитьФайлы(ПараметрыВыполнения.ФайлРезультата); + Результат.ТекстОшибки = ТекстСообщения; + ПринятьЗавершение(Результат, ПараметрыВыполнения); + Возврат; + КонецЕсли; + + УдалитьФайлы(Контекст.ПутьКФайлуЛокальный); + Контекст.ПутьКФайлуЛокальный = ПараметрыВыполнения.ФайлРезультата; + КонецЕсли; + + СохранитьПослеОбъединенияЗавершение(Контекст); +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьВсеКакОдинФайлЗавершение(РезультатОбъединения, Контекст) Экспорт + + Результат = РаботаСФайламиСлужебныйКлиент.РезультатСканирования(); + + ПараметрыВыполнения = Контекст.ПараметрыВыполнения; + ПараметрыВыполнения.ФайлРезультата = РезультатОбъединения.ИмяФайлаРезультата; + Контекст.ДвоичныеДанныеРезультата = РезультатОбъединения.ДвоичныеДанные; + + Если РезультатОбъединения.Успешно = Ложь Тогда + ТекстСообщения = РезультатОбъединения.ОписаниеОшибки; + Если ЗначениеЗаполнено(ПараметрыВыполнения.ФайлРезультата) Тогда + УдалитьФайлы(ПараметрыВыполнения.ФайлРезультата); + КонецЕсли; + ПараметрыВыполнения.ФайлРезультата = ""; + Результат.ТекстОшибки = ТекстСообщения; + ПоказатьПредупреждение(, ТекстСообщения); + ПринятьВсеКакОдинФайлЗавершение(Результат, ПараметрыВыполнения); + Возврат; + КонецЕсли; + + Если ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииДвоичныеДанные() Тогда + Результат.ДвоичныеДанные = Контекст.ДвоичныеДанныеРезультата; + ИначеЕсли ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииИмяФайла() Тогда + Результат.ИмяФайла = ПараметрыВыполнения.ФайлРезультата; + Иначе + ОбъектФайлРезультата = Новый Файл(ПараметрыВыполнения.ФайлРезультата); + Если НЕ ОбъектФайлРезультата.Существует() Тогда + ТекстСообщения = ТекстСообщенияОшибкиПреобразованияВPDF(ПараметрыВыполнения.ФайлРезультата); + УдалитьФайлы(ПараметрыВыполнения.ФайлРезультата); + ПараметрыВыполнения.ФайлРезультата = ""; + Результат.ТекстОшибки = ТекстСообщения; + ПоказатьПредупреждение(, ТекстСообщения); + ПринятьВсеКакОдинФайлЗавершение(Результат, ПараметрыВыполнения); + Возврат; + КонецЕсли; + + Если НЕ ПустаяСтрока(ПараметрыВыполнения.ФайлРезультата) Тогда + + Обработчик = Новый ОписаниеОповещения("ПринятьВсеКакОдинФайлЗавершение", ЭтотОбъект, ПараметрыВыполнения); + + ПараметрыДобавления = Новый Структура; + ПараметрыДобавления.Вставить("ОбработчикРезультата", Обработчик); + ПараметрыДобавления.Вставить("ВладелецФайла", ВладелецФайла); + ПараметрыДобавления.Вставить("ФормаВладелец", ЭтотОбъект); + ПараметрыДобавления.Вставить("ПолноеИмяФайла", ПараметрыВыполнения.ФайлРезультата); + ПараметрыДобавления.Вставить("ИмяСоздаваемогоФайла", ИмяФайла); + ПараметрыДобавления.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", НеОткрыватьКарточкуПослеСозданияИзФайла); + ПараметрыДобавления.Вставить("ИдентификаторФормы", УникальныйИдентификатор); + ПараметрыДобавления.Вставить("УникальныйИдентификатор", УникальныйИдентификатор); + ПараметрыДобавления.Вставить("ЭтоФайл", ЭтоФайл); + + РаботаСФайламиСлужебныйКлиент.ДобавитьИзФайловойСистемыСРасширением(ПараметрыДобавления); + Возврат; + КонецЕсли; + + КонецЕсли; + ПараметрыВыполнения.ФайлРезультата = ""; + ПринятьВсеКакОдинФайлЗавершение(Результат, ПараметрыВыполнения); КонецПроцедуры &НаКлиенте -Функция РезультатСканирования() +Процедура СохранитьКакОтдельныеФайлыРекурсивно(Контекст) - Перем Результат; + РасширениеРезультата = Контекст.РасширениеРезультата; + ПараметрыДобавления = Контекст.ПараметрыДобавления; + ОтсканированныеФайлы = Контекст.ОтсканированныеФайлы; - Результат = Новый Структура(); - Результат.Вставить("ТекстОшибки", ""); - Результат.Вставить("ФайлДобавлен", Ложь); - Результат.Вставить("ФайлСсылка"); - Возврат Результат; + // Здесь работаем со всеми картинками -каждую как отдельный файл принимаем. + Если Контекст.ИндексФайла <= Контекст.МассивФайлов.ВГраница() Тогда + Строка = Контекст.МассивФайлов[Контекст.ИндексФайла]; + + ПутьКФайлуЛокальный = Строка.ПутьКФайлу; + Контекст.Вставить("ПутьКФайлуЛокальный", ПутьКФайлуЛокальный); + Контекст.Вставить("ФайлРезультата", ""); + Контекст.Вставить("ДвоичныеДанныеРезультата", ""); + Если РасширениеРезультата = "pdf" Тогда + +#Если НЕ ВебКлиент И НЕ МобильныйКлиент Тогда + // АПК:441-выкл Временный файл не удаляется, если от функции РаботаСФайламиКлиент.ДобавитьСоСканера + // требуется вернуть путь к файлу. + Контекст.ФайлРезультата = ПолучитьИмяВременногоФайла("pdf"); + // АПК:441-вкл +#КонецЕсли + ПараметрыКонвертацииГрафическогоДокумента = РаботаСФайламиКлиент.ПараметрыКонвертацииГрафическогоДокумента(); + ПараметрыКонвертацииГрафическогоДокумента.ИмяФайлаРезультата = Контекст.ФайлРезультата; + Если ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииПрисоединенныйФайл() Тогда + ПараметрыКонвертацииГрафическогоДокумента.ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииИмяФайла(); + ИначеЕсли ЗначениеЗаполнено(ТипРезультата) Тогда + ПараметрыКонвертацииГрафическогоДокумента.ТипРезультата = ТипРезультата; + КонецЕсли; + + Оповещение = Новый ОписаниеОповещения("СохранитьКакОтдельныеФайлыРекурсивноПослеОбъединения", ЭтотОбъект, Контекст); + РаботаСФайламиКлиент.ОбъединитьВМногостраничныйФайл(Оповещение, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ПутьКФайлуЛокальный), + ПараметрыКонвертацииГрафическогоДокумента); + Иначе + Если ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииДвоичныеДанные() Тогда + Контекст.ДвоичныеДанныеРезультата = Новый ДвоичныеДанные(Контекст.ПутьКФайлуЛокальный); + КонецЕсли; -КонецФункции + Оповещение = Новый ОписаниеОповещения("СохранитьКакОтдельныеФайлыРекурсивноЗавершение", ЭтотОбъект, Контекст); + ВыполнитьОбработкуОповещения(Оповещение); + КонецЕсли; + + Иначе + Если ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииПрисоединенныйФайл() Тогда + РаботаСФайламиСлужебныйВызовСервера.ЗанестиМаксимальныйНомерДляСканирования( + ВладелецФайла, НомерФайла - 1); + КонецЕсли; + + УдалитьВременныеФайлы(Контекст.МассивФайлов); + + Если Контекст.КоличествоОшибок > 0 Тогда + Если Контекст.КоличествоОшибок = 1 Тогда + ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось сохранить файл по причине: + |%1'"), + Контекст.ПолныйТекстВсехОшибок); + Иначе + ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось сохранить некоторые файлы (%1): + |%2'"), + Строка(Контекст.КоличествоОшибок), Контекст.ПолныйТекстВсехОшибок); + КонецЕсли; + СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, ТекстПредупреждения, РежимДиалогаВопрос.ОК); + КонецЕсли; + + Закрыть(ОтсканированныеФайлы); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьКакОтдельныеФайлыРекурсивноЗавершение(РезультатОповещения, Контекст) Экспорт + + Результат = РаботаСФайламиСлужебныйКлиент.РезультатСканирования(); + Если ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииДвоичныеДанные() Тогда + Результат.ДвоичныеДанные = Контекст.ДвоичныеДанныеРезультата; + Контекст.ОтсканированныеФайлы.Добавить(Результат); + ИначеЕсли ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииИмяФайла() Тогда + Результат.ИмяФайла = Контекст.ФайлРезультата; + Контекст.ОтсканированныеФайлы.Добавить(Результат); + Иначе + Если НЕ ПустаяСтрока(Контекст.ПутьКФайлуЛокальный) Тогда + Контекст.ПараметрыДобавления.ПолноеИмяФайла = Контекст.ПутьКФайлуЛокальный; + Контекст.ПараметрыДобавления.ИмяСоздаваемогоФайла = ИмяФайла; + Результат = РаботаСФайламиСлужебныйКлиент.ДобавитьИзФайловойСистемыСРасширениемСинхронно(Контекст.ПараметрыДобавления); + Если Не Результат.ФайлДобавлен Тогда + Если ЗначениеЗаполнено(Результат.ТекстОшибки) Тогда + ПоказатьПредупреждение(, Результат.ТекстОшибки); + Возврат; + КонецЕсли; + Иначе + Контекст.ОтсканированныеФайлы.Добавить(Результат); + КонецЕсли; + КонецЕсли; + + Если НЕ ПустаяСтрока(Контекст.ФайлРезультата) Тогда + УдалитьФайлы(Контекст.ФайлРезультата); + КонецЕсли; + КонецЕсли; + + НомерФайла = НомерФайла + 1; + ИмяФайла = РаботаСФайламиСлужебныйКлиентСервер.ИмяСканированногоФайла(НомерФайла, ""); + Контекст.ИндексФайла = Контекст.ИндексФайла + 1; + СохранитьКакОтдельныеФайлыРекурсивно(Контекст); +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьКакОтдельныеФайлыРекурсивноПослеОбъединения(РезультатОбъединения, Контекст) Экспорт + Контекст.ФайлРезультата = РезультатОбъединения.ИмяФайлаРезультата; + Контекст.ДвоичныеДанныеРезультата = РезультатОбъединения.ДвоичныеДанные; + + Если РезультатОбъединения.Успешно = Ложь Тогда + ТекстОшибки = РезультатОбъединения.ОписаниеОшибки; + Если Контекст.ПолныйТекстВсехОшибок <> "" Тогда + Контекст.ПолныйТекстВсехОшибок = Контекст.ПолныйТекстВсехОшибок + Символы.ПС + Символы.ПС + "---" + Символы.ПС + Символы.ПС; + КонецЕсли; + Контекст.ПолныйТекстВсехОшибок = Контекст.ПолныйТекстВсехОшибок + ТекстОшибки; + Контекст.КоличествоОшибок = Контекст.КоличествоОшибок + 1; + Контекст.ФайлРезультата = ""; + КонецЕсли; + + Если ТипРезультата = РаботаСФайламиКлиент.ТипРезультатаКонвертацииПрисоединенныйФайл() Тогда + ОбъектФайлРезультата = Новый Файл(Контекст.ФайлРезультата); + Если НЕ ОбъектФайлРезультата.Существует() Тогда + ТекстОшибки = ТекстСообщенияОшибкиПреобразованияВPDF(Контекст.ФайлРезультата); + Если Контекст.ПолныйТекстВсехОшибок <> "" Тогда + Контекст.ПолныйТекстВсехОшибок = Контекст.ПолныйТекстВсехОшибок + Символы.ПС + Символы.ПС + "---" + Символы.ПС + Символы.ПС; + КонецЕсли; + Контекст.ПолныйТекстВсехОшибок = Контекст.ПолныйТекстВсехОшибок + ТекстОшибки; + Контекст.КоличествоОшибок = Контекст.КоличествоОшибок + 1; + Контекст.ФайлРезультата = ""; + КонецЕсли; + + Контекст.ПутьКФайлуЛокальный = Контекст.ФайлРезультата; + КонецЕсли; + + Оповещение = Новый ОписаниеОповещения("СохранитьКакОтдельныеФайлыРекурсивноЗавершение", ЭтотОбъект, Контекст); + ВыполнитьОбработкуОповещения(Оповещение); +КонецПроцедуры + +&НаКлиенте +Процедура НачатьСканированиеПослеПолученияКомпоненты(РезультатИнициализации, Контекст) Экспорт + Если РезультатИнициализации.Подключено Тогда + ПоказыватьДиалог = ПоказыватьДиалогСканера; + ВыбранноеУстройство = ИмяУстройстваСканирования; + ПараметрСжатие = ?(ВРег(ФорматКартинки) = "JPG", КачествоJPG, СжатиеTIFF); + + РезультатИнициализации.ПодключаемыйМодуль.НачатьСканирование( + ПоказыватьДиалог, ВыбранноеУстройство, ФорматКартинки, + Разрешение, Цветность, Поворот, РазмерБумаги, + ПараметрСжатие, + ДвустороннееСканирование); + КонецЕсли; +КонецПроцедуры #КонецОбласти diff --git a/SSL/src/DataProcessors/Сканирование/Сканирование.mdo b/SSL/src/DataProcessors/Сканирование/Сканирование.mdo index 634e223e0..cb9f3b36e 100644 --- a/SSL/src/DataProcessors/Сканирование/Сканирование.mdo +++ b/SSL/src/DataProcessors/Сканирование/Сканирование.mdo @@ -52,18 +52,17 @@ <usePurposes>PersonalComputer</usePurposes> <usePurposes>MobileDevice</usePurposes> </forms> - <forms uuid="c35a643d-fe3a-4293-93c0-074fa68a31e3"> - <name>ВыборУстройстваСканирования</name> + <commands uuid="0a7e5d85-3f94-4d93-8478-6d34f3b3ea33"> + <name>СканироватьЛист</name> <synonym> <key>ru</key> - <value>Выбор устройства сканирования</value> + <value>Сканировать лист</value> </synonym> - <help> - <pages> - <lang>ru</lang> - </pages> - </help> - <usePurposes>PersonalComputer</usePurposes> - <usePurposes>MobileDevice</usePurposes> - </forms> + <group>NavigationPanelSeeAlso</group> + <representation>Auto</representation> + <toolTip> + <key>ru</key> + <value>Отсканировать лист и открыть получившийся файл</value> + </toolTip> + </commands> </mdclass:DataProcessor> diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl index 8fdf9ef3c..ba7730ba7 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl @@ -74,7 +74,7 @@ ВариантыОтбораСтатусаСопоставления = Новый Структура; // Заполняем список отборов - СписокВыбора = Элементы.ОтборПоСтатусуСопоставления.СписокВыбора;; + СписокВыбора = Элементы.ОтборПоСтатусуСопоставления.СписокВыбора; НовыйЭлементСписка = СписокВыбора.Добавить("ВсеОбъекты", НСтр("ru = 'Все данные'")); ВариантыОтбораСтатусаСопоставления.Вставить(НовыйЭлементСписка.Значение, Новый ФиксированнаяСтруктура); @@ -1484,7 +1484,7 @@ ПослеСопоставленияОбъектов(); Исключение Отказ = Истина; - ЗафиксироватьОшибку(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗафиксироватьОшибку(ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Возврат; КонецПопытки; diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl index abfc5dbfe..21890d93e 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl @@ -130,7 +130,7 @@ Исключение ОтменитьТранзакцию(); ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Отказ = Истина; Возврат; КонецПопытки; diff --git a/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl index 6fc04cdcc..90de3fd31 100644 --- a/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl @@ -309,7 +309,9 @@ ПараметрыВыполнения.ОжидатьЗавершение = 0; // запускать сразу ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление списка текущих дел'"); ПараметрыВыполнения.АдресРезультата = ТекущиеДелаВХранилище; - ПараметрыВыполнения.ЗапуститьВФоне = Истина; // Всегда в фоне (очередь заданий в файловом варианте). + // Всегда в фоне, т.к. не должно замедлять запуск программы. В файловом режиме может запускаться + // с задержкой, если уже выполняется другое фоновое задание. + ПараметрыВыполнения.ЗапуститьВФоне = Истина; Результат = ДлительныеОперации.ВыполнитьВФоне("ТекущиеДелаСлужебный.СформироватьСписокТекущихДелПользователя", Новый Структура, ПараметрыВыполнения); diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ObjectModule.bsl index c12b8b290..4d6edcdda 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/ObjectModule.bsl @@ -488,7 +488,8 @@ ТекстовыйДокумент.Записать(ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ИмяКаталогаОбменаИнформацией(), ИмяФайлаПроверки)); Исключение - ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Возврат Ложь; КонецПопытки; @@ -502,7 +503,8 @@ УдалитьФайлы(ИмяКаталогаОбменаИнформацией(), ИмяФайлаПроверки); Исключение - ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Возврат Ложь; КонецПопытки; @@ -523,6 +525,7 @@ ИмяФайлаИсточника, ИмяФайлаПриемника, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + УстановитьСтрокуСообщенияОбОшибке(СтрокаСообщения); Возврат Ложь diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl index 1b75876dc..90554ec71 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/ObjectModule.bsl @@ -618,6 +618,8 @@ Возврат Ложь; КонецЕсли; + СоздатьКаталогПриНеобходимости(FTPСоединение, КаталогНаСервере); + Попытка FTPСоединение.Записать(ИмяФайлаИсточника, КаталогНаСервере + ИмяФайлаПриемника); Исключение @@ -640,6 +642,27 @@ КонецФункции +Процедура СоздатьКаталогПриНеобходимости(FTPСоединение, КаталогНаСервере) + + Если КаталогНаСервере = "/" Тогда + Возврат; + КонецЕсли; + + МассивИмен = СтрРазделить(КаталогНаСервере, "/", Ложь); + ИмяКаталога = ""; + + Для Каждого Имя Из МассивИмен Цикл + + ИмяКаталога = ИмяКаталога + "/" + Имя; + + Если FTPСоединение.НайтиФайлы(ИмяКаталога).Количество() = 0 Тогда + FTPСоединение.СоздатьКаталог(ИмяКаталога); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + Функция ВыполнитьУдалениеФайлаНаFTPСервере(Знач ИмяФайла, ПроверкаПодключения = Ложь) Перем КаталогНаСервере; diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form index 9405f65b6..02c8975bc 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form @@ -4247,6 +4247,87 @@ <common>true</common> </edit> </attributes> + <attributes> + <name>КоличествоПорций</name> + <id>4</id> + <valueType> + <types>Number</types> + <numberQualifiers> + <precision>5</precision> + <nonNegative>true</nonNegative> + </numberQualifiers> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> + <attributes> + <name>ПрогрессУдаления</name> + <id>7</id> + <valueType> + <types>ValueTable</types> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + <columns> + <name>НомерСеанса</name> + <id>1</id> + <valueType> + <types>Number</types> + <numberQualifiers> + <precision>10</precision> + <nonNegative>true</nonNegative> + </numberQualifiers> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> + <columns> + <name>КоличествоОбработанных</name> + <id>2</id> + <valueType> + <types>Number</types> + <numberQualifiers> + <precision>10</precision> + <nonNegative>true</nonNegative> + </numberQualifiers> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </columns> + </attributes> + <attributes> + <name>ОбщееКоличествоВыбранных</name> + <id>9</id> + <valueType> + <types>Number</types> + <numberQualifiers> + <precision>10</precision> + <nonNegative>true</nonNegative> + </numberQualifiers> + </valueType> + <view> + <common>true</common> + </view> + <edit> + <common>true</common> + </edit> + </attributes> <formCommands> <name>ДеревоПомеченныхНаУдалениеУстановитьВсе</name> <title> diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl index 59743b8bb..561fe787a 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl @@ -298,12 +298,19 @@ Процедура Обновить(Команда) Если ВыполняемаяОперация = Неопределено Тогда ЗапуститьЗадание(ЗаданияФормы().ПоискПомеченных); - КонецЕсли;; + КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ВыполнитьДействияИУдалить(Команда) ОбновитьДеревоПомеченныхНаУдаление(); + СведенияОВыбранныхОбъектах = КоличествоВыбранныхОбъектов(); + ОбщееКоличествоВыбранных = СведенияОВыбранныхОбъектах.КоличествоВыбранных; + Если ОбщееКоличествоВыбранных = 0 Тогда + ТекстПредупреждения = НСтр("ru='Необходимо выбрать хотя бы один элемент для удаления.'"); + ПоказатьПредупреждение(, ТекстПредупреждения); + Возврат; + КонецЕсли; ДобавитьЗадание(ЗаданияФормы().ВыполнениеДополнительнойОбработки); ДобавитьЗадание(ЗаданияФормы().УдалениеПомеченных); ЗапуститьЗадание(); @@ -484,18 +491,19 @@ Процедура УдалитьВыбранные(Команда) СведенияОВыбранныхОбъектах = КоличествоВыбранныхОбъектов(); - Если СведенияОВыбранныхОбъектах.КоличествоВыбранных = 0 Тогда + ОбщееКоличествоВыбранных = СведенияОВыбранныхОбъектах.КоличествоВыбранных; + Если ОбщееКоличествоВыбранных = 0 Тогда ТекстВопроса = НСтр("ru='Необходимо выбрать хотя бы один элемент для удаления.'"); ПоказатьПредупреждение(, ТекстВопроса); Возврат; - ИначеЕсли СведенияОВыбранныхОбъектах.КоличествоВыбранных = 1 Тогда + ИначеЕсли ОбщееКоличествоВыбранных = 1 Тогда ТекстВопроса = НСтр("ru='Удалить элемент, помеченный на удаление?'"); - ИначеЕсли СведенияОВыбранныхОбъектах.КоличествоВыбранных = СведенияОВыбранныхОбъектах.КоличествоВсего Тогда + ИначеЕсли ОбщееКоличествоВыбранных = СведенияОВыбранныхОбъектах.КоличествоВсего Тогда ТекстВопроса = НСтр("ru='Удалить все элементы, помеченные на удаление?'"); Иначе ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Удалить элементы, помеченные на удаление (%1)?'"), - СведенияОВыбранныхОбъектах.КоличествоВыбранных); + ОбщееКоличествоВыбранных); КонецЕсли; ОповещениеПодтверждениеУдалитьВсе = Новый ОписаниеОповещения("ПриПодтвержденииУдалить", @@ -692,7 +700,7 @@ Элементы.ГруппаНастройкиОтбораПоиска.Доступность = Истина; Элементы.ПредставлениеПрогресса.Видимость = Ложь; Элементы.ДеревоПомеченныхНаУдалениеУдалитьВыбранные.КнопкаПоУмолчанию = Истина; - Элементы.ГруппаАктивныПослеПоискаПомеченные.Доступность = ДеревоПомеченныхНаУдаление.ПолучитьЭлементы().Количество() > 0;; + Элементы.ГруппаАктивныПослеПоискаПомеченные.Доступность = ДеревоПомеченныхНаУдаление.ПолучитьЭлементы().Количество() > 0; Элементы.СтрокаПоискаНаУдаление.Видимость = Ложь; КонецПроцедуры @@ -1464,12 +1472,15 @@ КонецПроцедуры &НаКлиенте -Процедура ПриНачалеФоновогоЗадания(Знач Обработчик) +Процедура ПриНачалеФоновогоЗадания(Знач Обработчик, ЭтоПроцессУдаления = Ложь) Перем НастройкиОжидания; НастройкиОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); НастройкиОжидания.ВыводитьОкноОжидания = Ложь; НастройкиОжидания.ВыводитьПрогрессВыполнения = Истина; - НастройкиОжидания.ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("ПриОбновленииПрогрессаФоновогоЗадания", ЭтотОбъект); + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ЭтоПроцессУдаления", ЭтоПроцессУдаления); + НастройкиОжидания.ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("ПриОбновленииПрогрессаФоновогоЗадания", + ЭтотОбъект, ДополнительныеПараметры); ДлительныеОперацииКлиент.ОжидатьЗавершение(ВыполняемаяОперация, Обработчик, НастройкиОжидания); Если ВыполняемаяОперация <> Неопределено И ВыполняемаяОперация.Статус = "Выполняется" Тогда ПоказатьДиалогПередЗакрытием = Истина; @@ -1498,7 +1509,6 @@ ИмяМетода = "УдалениеПомеченныхОбъектовСлужебный.ПомеченныеНаУдаление"; ПараметрыМетода = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификаторФормы); - ПараметрыМетода.ЗапуститьВФоне = Истина; ПараметрыМетода.НаименованиеФоновогоЗадания = НСтр("ru = 'Поиск помеченных на удаление'"); Задание = ДлительныеОперации.ВыполнитьФункцию(ПараметрыМетода, ИмяМетода, ОтборМетаданных, @@ -1627,25 +1637,71 @@ НастройкиДополнительныхРеквизитов = РеквизитФормыВЗначение("ДополнительныеРеквизитыПомеченныхНаУдаления"); ИмяМетода = "УдалениеПомеченныхОбъектовСлужебный.УдалитьПомеченныеОбъекты"; - ПараметрыМетода = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификаторФормы); - ПараметрыМетода.НаименованиеФоновогоЗадания = НСтр("ru = 'Удаление помеченных объектов'"); - ПараметрыМетода.ЗапуститьВФоне = Истина; + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификаторФормы); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Удаление помеченных объектов'"); + ЗначениеРезультатаПредыдущегоШага = ?(РезультатПредыдущегоШага <> Неопределено И ЭтоАдресВременногоХранилища(РезультатПредыдущегоШага.АдресРезультата), ПолучитьИзВременногоХранилища(РезультатПредыдущегоШага.АдресРезультата), Неопределено); ДопустимыеРежимыУдаления = УдалениеПомеченныхОбъектовСлужебный.ДопустимыеРежимыУдаления(); - Задание = ДлительныеОперации.ВыполнитьФункцию(ПараметрыМетода, ИмяМетода, - ИсточникУдаляемыхОбъектов, - ?(ДопустимыеРежимыУдаления.Найти(РежимУдаления) <> Неопределено, РежимУдаления, "Стандартный"), - НастройкиДополнительныхРеквизитов, - ЗначениеРезультатаПредыдущегоШага, - УникальныйИдентификаторФормы); - + ИтоговыйРежимУдаления = ?(ДопустимыеРежимыУдаления.Найти(РежимУдаления) <> Неопределено, + РежимУдаления, "Стандартный"); + Если ИтоговыйРежимУдаления = "Монопольный" Тогда + ДопустимыеРежимыУдаления = УдалениеПомеченныхОбъектовСлужебный.ДопустимыеРежимыУдаления(); + Задание = ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ИмяМетода, + ИсточникУдаляемыхОбъектов, + ИтоговыйРежимУдаления, + НастройкиДополнительныхРеквизитов, + ЗначениеРезультатаПредыдущегоШага, + УникальныйИдентификаторФормы); + Иначе + ПараметрыУдаления = ПараметрыУдаленияПомеченныхОбъектов(ИсточникУдаляемыхОбъектов, ИтоговыйРежимУдаления, + НастройкиДополнительныхРеквизитов, ЗначениеРезультатаПредыдущегоШага, УникальныйИдентификаторФормы); + КоличествоПорций = ПараметрыУдаления.Количество(); + + Задание = ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков(ИмяМетода, + ПараметрыВыполнения, ПараметрыУдаления); + КонецЕсли; + Возврат Задание; КонецФункции +&НаСервере +Функция ПараметрыУдаленияПомеченныхОбъектов(ИсточникУдаляемыхОбъектов, ИтоговыйРежимУдаления, + НастройкиДополнительныхРеквизитов, ЗначениеРезультатаПредыдущегоШага, УникальныйИдентификаторФормы) + + Если ИсточникУдаляемыхОбъектов = Неопределено Тогда + ИсточникУдаляемыхОбъектов = РеквизитФормыВЗначение("ДеревоПомеченныхНаУдаление"); + КонецЕсли; + + ПараметрыУдаления = Новый Соответствие; + Если ТипЗнч(ИсточникУдаляемыхОбъектов) <> Тип("ДеревоЗначений") Тогда + ПараметрыВызоваСервера = Новый Массив; + ПараметрыВызоваСервера.Добавить(ИсточникУдаляемыхОбъектов); + ПараметрыВызоваСервера.Добавить(ИтоговыйРежимУдаления); + ПараметрыВызоваСервера.Добавить(НастройкиДополнительныхРеквизитов); + ПараметрыВызоваСервера.Добавить(ЗначениеРезультатаПредыдущегоШага); + ПараметрыВызоваСервера.Добавить(УникальныйИдентификаторФормы); + ПараметрыУдаления.Вставить(0, ПараметрыВызоваСервера); + Возврат ПараметрыУдаления; + КонецЕсли; + + ИндексПорции = 0; + + ПараметрыВызоваСервера = Новый Массив; + ПараметрыВызоваСервера.Добавить(ИсточникУдаляемыхОбъектов); + ПараметрыВызоваСервера.Добавить(ИтоговыйРежимУдаления); + ПараметрыВызоваСервера.Добавить(НастройкиДополнительныхРеквизитов); + ПараметрыВызоваСервера.Добавить(ЗначениеРезультатаПредыдущегоШага); + ПараметрыВызоваСервера.Добавить(УникальныйИдентификаторФормы); + ПараметрыУдаления.Вставить(ИндексПорции, ПараметрыВызоваСервера); + + Возврат ПараметрыУдаления; + +КонецФункции + &НаКлиенте Процедура ПослеЗавершенияУдаленияПомеченных(Результат, ДополнительныеПараметры) Экспорт Если Результат = Неопределено Тогда @@ -1724,7 +1780,35 @@ // &НаСервере Функция ЗагрузитьРезультатУдаления(РезультатУдаления, ИдентификаторХранилищаРезультата, СведенияОРезультате) - РезультатВыполненияВФоне = ПолучитьИзВременногоХранилища(РезультатУдаления.АдресРезультата); + ОбщийРезультатВыполнения = ПолучитьИзВременногоХранилища(РезультатУдаления.АдресРезультата); + Если ТипЗнч(ОбщийРезультатВыполнения) = Тип("Структура") Тогда + РезультатВыполненияВФоне = ОбщийРезультатВыполнения; + Иначе + РезультатВыполненияВФоне = ПолучитьИзВременногоХранилища(ОбщийРезультатВыполнения[0].АдресРезультата); + Для ИндексПорции = 1 По КоличествоПорций - 1 Цикл + АдресРезультатаПорции = ОбщийРезультатВыполнения[ИндексПорции].АдресРезультата; + РезультатВыполненияПорцииВФоне = ПолучитьИзВременногоХранилища(АдресРезультатаПорции); + + РезультатВыполненияВФоне.КоличествоНеУдаленных = РезультатВыполненияВФоне.КоличествоНеУдаленных + + РезультатВыполненияПорцииВФоне.КоличествоНеУдаленных; + РезультатВыполненияВФоне.КоличествоУдаленных = РезультатВыполненияВФоне.КоличествоУдаленных + + РезультатВыполненияПорцииВФоне.КоличествоУдаленных; + ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(РезультатВыполненияПорцииВФоне.СвязиНеудаленных, + РезультатВыполненияВФоне.СвязиНеудаленных); + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(РезультатВыполненияВФоне.Удаленные, + РезультатВыполненияПорцииВФоне.Удаленные); + РезультатВыполненияВФоне.ДеревоПомеченныхНаУдаление = + ДеревоПомеченныхНаУдалениеБезУдаленных(РезультатВыполненияВФоне.ДеревоПомеченныхНаУдаление, + РезультатВыполненияПорцииВФоне.Удаленные); + ОбъединитьПомеченныеНаУдаление(РезультатВыполненияВФоне.ДеревоПомеченныхНаУдаление, + РезультатВыполненияПорцииВФоне.ДеревоПомеченныхНаУдаление); + ОбъединитьНеУдаленные(РезультатВыполненияВФоне.НеУдаленные, РезультатВыполненияПорцииВФоне.НеУдаленные); + КонецЦикла; + ОбщееКоличествоОбработанных = 0; + ОбщееКоличествоВыбранных = 0; + КоличествоПорций = 0; + ПрогрессУдаления.Очистить(); + КонецЕсли; СведенияОРезультате = ?(УдалятьПриОткрытии, СведенияОРезультате, Неопределено); Результат = СформироватьРезультатУдаления(СведенияОРезультате, РезультатВыполненияВФоне, @@ -1739,6 +1823,87 @@ Возврат Результат; КонецФункции +&НаСервереБезКонтекста +Функция ДеревоПомеченныхНаУдалениеБезУдаленных(ПомеченныеНаУдаление, Удаленные) + + Результат = ПомеченныеНаУдаление.Скопировать(); + МодифицированныеРодители = Новый Массив; + + Для Каждого УдаляемыйСсылка Из Удаленные Цикл + СтрокаДерева = Результат.Строки.Найти(УдаляемыйСсылка, "УдаляемыйСсылка", Истина); + Если СтрокаДерева = Неопределено Тогда + Продолжить; + КонецЕсли; + + Если СтрокаДерева.Родитель <> Неопределено Тогда + МодифицированныеРодители.Добавить(СтрокаДерева.Родитель); + КонецЕсли; + СтрокаДерева.Родитель.Строки.Удалить(СтрокаДерева); + КонецЦикла; + + МодифицированныеРодители = ОбщегоНазначенияКлиентСервер.СвернутьМассив(МодифицированныеРодители); + + Для Каждого МодифицированныйРодитель Из МодифицированныеРодители Цикл + Если МодифицированныйРодитель.Строки.Количество() > 0 Тогда + Продолжить; + КонецЕсли; + + Результат.Строки.Удалить(МодифицированныйРодитель); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +&НаСервереБезКонтекста +Процедура ОбъединитьПомеченныеНаУдаление(Приемник, Источник) + + КоличествоСтрок = Источник.Строки.Количество(); + + Для ИндексСтроки = 0 По КоличествоСтрок - 1 Цикл + СтрокаДереваИсточник = Источник.Строки[ИндексСтроки]; + Если СтрокаДереваИсточник.Пометка = 0 Тогда + Продолжить; + КонецЕсли; + + СтрокаДереваПриемник = Приемник.Строки.Найти(СтрокаДереваИсточник.УдаляемыйСсылка, "УдаляемыйСсылка"); + Если СтрокаДереваПриемник = Неопределено Тогда + Продолжить; + КонецЕсли; + + СтрокаДереваПриемник.Пометка = СтрокаДереваИсточник.Пометка; + КоличествоПодстрок = СтрокаДереваИсточник.Строки.Количество(); + Для ИндексПодстроки = 0 По КоличествоПодстрок - 1 Цикл + + ПодстрокаДереваИсточник = СтрокаДереваИсточник.Строки[ИндексПодстроки]; + + ПодстрокаДереваПриемник = СтрокаДереваПриемник.Строки.Найти(ПодстрокаДереваИсточник.УдаляемыйСсылка, "УдаляемыйСсылка"); + Если ПодстрокаДереваПриемник = Неопределено Тогда + Продолжить; + КонецЕсли; + + ПодстрокаДереваПриемник.Пометка = ПодстрокаДереваИсточник.Пометка; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ОбъединитьНеУдаленные(Приемник, Источник) + + КоличествоСтрок = Источник.Строки.Количество(); + + Для Каждого СтрокаДереваИсточник Из Источник.Строки Цикл + СтрокаДереваПриемник = Приемник.Строки.Добавить(); + ЗаполнитьЗначенияСвойств(СтрокаДереваПриемник, СтрокаДереваИсточник); + Для Каждого ПодстрокаДереваИсточник Из СтрокаДереваИсточник.Строки Цикл + ПодстрокаДереваПриемник = СтрокаДереваПриемник.Строки.Добавить(); + ЗаполнитьЗначенияСвойств(ПодстрокаДереваПриемник, ПодстрокаДереваИсточник); + КонецЦикла; + КонецЦикла; + +КонецПроцедуры + &НаСервере Функция СформироватьРезультатУдаления(СведенияОРезультате, РезультатВыполненияВФоне, ИдентификаторХранилищаРезультата) Результат = ?(СведенияОРезультате = Неопределено, @@ -1805,7 +1970,6 @@ ИмяМетода = "УдалениеПомеченныхОбъектовСлужебный.ВыполнитьОбработкуПричинНеудаления"; ПараметрыМетода = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор); - ПараметрыМетода.ЗапуститьВФоне = Истина; ПараметрыМетода.НаименованиеФоновогоЗадания = НСтр("ru = 'Дополнительная обработка мешающих удалению объектов'"); Задание = ДлительныеОперации.ВыполнитьФункцию(ПараметрыМетода, ИмяМетода, ТаблицаДействий.Выгрузить()); @@ -1845,11 +2009,48 @@ &НаКлиенте Процедура ПриОбновленииПрогрессаФоновогоЗадания(Задание, ДополнительныеПараметры) Экспорт Если Задание.Прогресс <> Неопределено Тогда + ПараметрыПрогресса = Неопределено; + Если Задание.Прогресс.Свойство("ДополнительныеПараметры", ПараметрыПрогресса) + И ПараметрыПрогресса = "ПрогрессМногопоточногоПроцесса" Тогда + Возврат; + КонецЕсли; + Элементы.ПредставлениеПрогресса.Видимость = Истина; - Элементы.ПредставлениеПрогресса.Заголовок = Задание.Прогресс.Текст; + Если Не ДополнительныеПараметры.ЭтоПроцессУдаления Или ПараметрыПрогресса = Неопределено Тогда + ТекстПрогресса = Задание.Прогресс.Текст; + Иначе + ТекстПрогресса = ТекстПрогресса(ПараметрыПрогресса); + КонецЕсли; + Элементы.ПредставлениеПрогресса.Заголовок = ТекстПрогресса; КонецЕсли; КонецПроцедуры +&НаСервере +Функция ТекстПрогресса(ПараметрыПрогресса) + + Отбор = Новый Структура; + Отбор.Вставить("НомерСеанса", ПараметрыПрогресса.НомерСеанса); + СтрокиТаблицы = ПрогрессУдаления.НайтиСтроки(Отбор); + Если СтрокиТаблицы.Количество() = 0 Тогда + СтрокаТаблицы = ПрогрессУдаления.Добавить(); + СтрокаТаблицы.НомерСеанса = ПараметрыПрогресса.НомерСеанса; + ПредыдущееКоличествоОбработанных = 0; + Иначе + СтрокаТаблицы = СтрокиТаблицы[0]; + ПредыдущееКоличествоОбработанных = СтрокаТаблицы.КоличествоОбработанных; + КонецЕсли; + СтрокаТаблицы.КоличествоОбработанных = ПараметрыПрогресса.КоличествоОбработанных; + ОбщееКоличествоОбработанных = ОбщееКоличествоОбработанных + + (ПараметрыПрогресса.КоличествоОбработанных - ПредыдущееКоличествоОбработанных); + + ТекстПрогресса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработано %1 из %2'"), + ОбщееКоличествоОбработанных, + ОбщееКоличествоВыбранных); + Возврат ТекстПрогресса; + +КонецФункции + &НаКлиентеНаСервереБезКонтекста Функция ЗначениеПометкиЭлементов(ЭлементыРодителя) diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl index 65600f00d..a56181098 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl @@ -1734,6 +1734,7 @@ Процент = Окр(100 * (ПараметрыВыполнения.КоличествоОбработанных) / ПараметрыВыполнения.КоличествоУдаляемых); + ДополнительныеПараметры = Неопределено; // Подготовка передаваемых параметров. Если ИмяКоллекции = "ПередПоискомПомеченныхНаУдаление" Тогда @@ -1754,6 +1755,9 @@ ИначеЕсли ИмяКоллекции = "ПользовательскиеОбъекты" Тогда + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("НомерСеанса", НомерСеансаИнформационнойБазы()); + ДополнительныеПараметры.Вставить("КоличествоОбработанных", ПараметрыВыполнения.КоличествоОбработанных); Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Обработано %1 из %2'"), ПараметрыВыполнения.КоличествоОбработанных, @@ -1779,7 +1783,7 @@ КонецЕсли; - ДлительныеОперации.СообщитьПрогресс(Процент, Текст); + ДлительныеОперации.СообщитьПрогресс(Процент, Текст, ДополнительныеПараметры); КонецПроцедуры #КонецОбласти diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl index 17d34dc7a..821fa6a97 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl @@ -1641,7 +1641,7 @@ КонецФункции &НаКлиенте -Процедура УстановитьДоступностьКомандОтладки(); +Процедура УстановитьДоступностьКомандОтладки() Элементы.НастройкаОтладкиЗагрузки.Доступность = Объект.ФлагРежимОтладкиОбработчиков; Элементы.НастройкаОтладкиВыгрузки.Доступность = Объект.ФлагРежимОтладкиОбработчиков; diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl index 048a3a908..b69fa8d84 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl @@ -939,7 +939,7 @@ Если ВестиДополнительныйКонтрольЗаписиВXML Тогда - Стр = УдалитьНедопустимыеСимволыXML(Стр); + Стр = ОбщегоНазначенияКлиентСервер.УдалитьНедопустимыеСимволыXML(Стр); КонецЕсли; @@ -963,7 +963,7 @@ Если ВестиДополнительныйКонтрольЗаписиВXML Тогда - Стр = УдалитьНедопустимыеСимволыXML(Стр); + Стр = ОбщегоНазначенияКлиентСервер.УдалитьНедопустимыеСимволыXML(Стр); КонецЕсли; @@ -1004,7 +1004,7 @@ Если ВестиДополнительныйКонтрольЗаписиВXML Тогда - СтрокаЗаписи = УдалитьНедопустимыеСимволыXML(СтрокаЗаписи); + СтрокаЗаписи = ОбщегоНазначенияКлиентСервер.УдалитьНедопустимыеСимволыXML(СтрокаЗаписи); КонецЕсли; @@ -1551,7 +1551,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(29, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, Объект, "ПередУдалениемОбъектаВыборки"); + ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(29, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, Объект, "ПередУдалениемОбъектаВыборки"); КонецПопытки; @@ -1570,7 +1571,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(24, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, Объект, ""); + ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(24, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, Объект, ""); КонецПопытки; @@ -1722,8 +1724,8 @@ Исключение ИмяОбработчика = НСтр("ru = '%1 (глобальный)'"); - ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(64, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, Источник, - ПодставитьПараметрыВСтроку(ИмяОбработчика, "ПередКонвертациейОбъекта")); + ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(64, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, Источник, ПодставитьПараметрыВСтроку(ИмяОбработчика, "ПередКонвертациейОбъекта")); КонецПопытки; @@ -1750,7 +1752,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(41, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, Источник, "ПередВыгрузкойОбъекта"); + ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(41, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, Источник, "ПередВыгрузкойОбъекта"); КонецПопытки; Если Отказ Тогда // Отказ от дальнейшей обработки правила. @@ -2026,7 +2029,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(42, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, Источник, "ПриВыгрузкеОбъекта"); + ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(42, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, Источник, "ПриВыгрузкеОбъекта"); КонецПопытки; Если Отказ Тогда // Отказ от записи объекта в файл. @@ -2063,7 +2067,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(43, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, Источник, "ПослеВыгрузкиОбъекта"); + ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(43, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, Источник, "ПослеВыгрузкиОбъекта"); КонецПопытки; Если Отказ Тогда // Отказ от записи объекта в файл. @@ -2126,10 +2131,11 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(76, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, Источник, "ЕстьОбработчикПослеВыгрузкиВФайл"); - КонецПопытки; + ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(76, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, Источник, "ЕстьОбработчикПослеВыгрузкиВФайл"); + КонецПопытки; - КонецЕсли; + КонецЕсли; Возврат УзелСсылки; @@ -2593,7 +2599,7 @@ Если Не ПустаяСтрока(ИмяФайла) Тогда - Возврат ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ИмяКаталога, ИмяФайла); + Возврат ИмяКаталога + ?(Прав(ИмяКаталога, 1) = "\", "", "\") + ИмяФайла; Иначе @@ -3776,7 +3782,7 @@ // представлениям объекта приемника. // ТипИсточника - Строка - тип объекта источника. // -Процедура ЗагрузитьЗначения(ПравилаОбмена, Значения, ТипИсточника); +Процедура ЗагрузитьЗначения(ПравилаОбмена, Значения, ТипИсточника) Пока ПравилаОбмена.Прочитать() Цикл @@ -3919,7 +3925,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеВПротокол(11, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Строка(НоваяСтрока.Источник)); + ЗаписатьИнформациюОбОшибкеВПротокол(11, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Строка(НоваяСтрока.Источник)); КонецПопытки; @@ -6166,8 +6173,9 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(27, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "", "ПередОбработкойПравилаОчистки"); - + ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(27, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "", "ПередОбработкойПравилаОчистки"); + КонецПопытки; Если Отказ Тогда @@ -6272,8 +6280,9 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(28, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "", "ПослеОбработкиПравилаОчистки"); - + ЗаписатьИнформациюОбОшибкеОбработчикаОчисткиДанных(28, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "", "ПослеОбработкиПравилаОчистки"); + КонецПопытки; КонецЕсли; @@ -6407,7 +6416,8 @@ Исключение - СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеВПротокол(26, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Объект, Тип); + СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеВПротокол(26, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Объект, Тип); Если Не ФлагРежимОтладки Тогда ВызватьИсключение СтрокаСообщенияОбОшибке; @@ -8605,7 +8615,7 @@ КонецЕсли; - // Обработчик события ПередЗагрузкойОбъекта. + // Обработчик события ПередЗагрузкойОбъекта. Если ЕстьОбработчикПередЗагрузкой Тогда Отказ = Ложь; @@ -8624,8 +8634,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(19, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Неопределено, "ПередЗагрузкойОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(19, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Неопределено, "ПередЗагрузкойОбъекта"); КонецПопытки; @@ -8664,7 +8674,7 @@ // Если есть обработчик при загрузке, то объект нужно перезаписывать, так как могут быть изменения. НужноБылоЗаписатьОбъект = НужноЗаписатьОбъект; - ОбъектМодифицирован = Истина; + ОбъектМодифицирован = Истина; Попытка @@ -8681,8 +8691,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); КонецПопытки; @@ -8836,7 +8846,7 @@ Если ЕстьОбработчикПриЗагрузке Тогда НужноБылоЗаписатьОбъект = НужноЗаписатьОбъект; - ОбъектМодифицирован = Истина; + ОбъектМодифицирован = Истина; Попытка @@ -8854,8 +8864,8 @@ Исключение УдалитьИзСтекаНеЗаписанныхОбъектов(НПП, ГНПП); - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); КонецПопытки; @@ -8875,12 +8885,12 @@ ОбъектНайден = Ложь; - // Обработчик события ПриЗагрузкеОбъекта. + // Обработчик события ПриЗагрузкеОбъекта. Если ЕстьОбработчикПриЗагрузке Тогда НужноБылоЗаписатьОбъект = НужноЗаписатьОбъект; - ОбъектМодифицирован = Истина; + ОбъектМодифицирован = Истина; Попытка @@ -8898,8 +8908,8 @@ Исключение УдалитьИзСтекаНеЗаписанныхОбъектов(НПП, ГНПП); - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(20, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, "ПриЗагрузкеОбъекта"); КонецПопытки; @@ -8945,7 +8955,7 @@ Если ЕстьГлобальныйОбработчикПослеЗагрузкиОбъекта Тогда НужноБылоЗаписатьОбъект = НужноЗаписатьОбъект; - ОбъектМодифицирован = Истина; + ОбъектМодифицирован = Истина; Попытка @@ -8996,8 +9006,8 @@ Исключение УдалитьИзСтекаНеЗаписанныхОбъектов(НПП, ГНПП); - ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(21, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ИмяПравила, Источник, - ТипОбъекта, Объект, "ПослеЗагрузкиОбъекта"); + ЗаписатьИнформациюОбОшибкеЗагрузкиОбработчикаПКО(21, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ИмяПравила, Источник, ТипОбъекта, Объект, "ПослеЗагрузкиОбъекта"); КонецПопытки; @@ -9072,7 +9082,8 @@ ЗаписатьДокументВБезопасномРежиме(Объект, ТипОбъекта); - ЗП = ПолучитьСтруктуруЗаписиПротокола(25, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗП = ПолучитьСтруктуруЗаписиПротокола(25, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗП.ИмяПКО = ИмяПравила; Если Не ПустаяСтрока(Источник) Тогда @@ -9531,8 +9542,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(48, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКГС, - Источник, "ПередОбработкойВыгрузкиГруппыСвойств",, Ложь); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(48, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКГС, Источник, "ПередОбработкойВыгрузкиГруппыСвойств",, Ложь); КонецПопытки; @@ -9620,8 +9631,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(49, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКГС, - Источник, "ПослеОбработкиВыгрузкиГруппыСвойств",, Ложь); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(49, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКГС, Источник, "ПослеОбработкиВыгрузкиГруппыСвойств",, Ложь); КонецПопытки; @@ -9651,7 +9662,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(66, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКГС, Источник,,,Ложь); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(66, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКГС, Источник,,,Ложь); Возврат; КонецПопытки; @@ -9723,8 +9735,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(50, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКГС, - Источник, "ПередВыгрузкойГруппыСвойств",, Ложь); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(50, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКГС, Источник, "ПередВыгрузкойГруппыСвойств",, Ложь); Прервать; @@ -9765,8 +9777,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(51, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКГС, - Источник, "ПриВыгрузкеГруппыСвойств",, Ложь); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(51, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКГС, Источник, "ПриВыгрузкеГруппыСвойств",, Ложь); Прервать; @@ -9807,11 +9819,12 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(52, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКГС, - Источник, "ПослеВыгрузкиГруппыСвойств",, Ложь); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(52, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКГС, Источник, "ПослеВыгрузкиГруппыСвойств",, Ложь); Прервать; - КонецПопытки; + + КонецПопытки; Если Отказ Тогда // Отказ от выгрузки подчиненного объекта. @@ -9865,12 +9878,12 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(49, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКГС, - Источник, "ПослеОбработкиВыгрузкиГруппыСвойств",, Ложь); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(49, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКГС, Источник, "ПослеОбработкиВыгрузкиГруппыСвойств",, Ложь); КонецПопытки; - Если Отказ Тогда // Отказ от записи коллекции подчиненных объектов. + Если Отказ Тогда // Отказ от записи коллекции подчиненных объектов. Возврат; @@ -9950,7 +9963,8 @@ Исключение Если КодОшибки <> 14 Тогда - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(КодОшибки, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, ""); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(КодОшибки, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, ""); КонецЕсли; КонецПопытки; @@ -10009,8 +10023,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(55, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПередВыгрузкойСвойства", Значение); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(55, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПередВыгрузкойСвойства", Значение); КонецПопытки; @@ -10055,8 +10069,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(56, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПриВыгрузкеСвойства", Значение); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(56, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПриВыгрузкеСвойства", Значение); КонецПопытки; @@ -10182,8 +10196,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(57, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПослеВыгрузкиСвойства", Значение); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(57, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПослеВыгрузкиСвойства", Значение); КонецПопытки; @@ -10600,12 +10614,12 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(55, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПередВыгрузкойСвойства", Значение); - + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(55, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПередВыгрузкойСвойства", Значение); + КонецПопытки; - - Если Отказ Тогда // Отказ от выгрузки свойства + + Если Отказ Тогда // Отказ от выгрузки свойства Продолжить; @@ -10731,12 +10745,12 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(56, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПриВыгрузкеСвойства", Значение); - + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(56, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПриВыгрузкеСвойства", Значение); + КонецПопытки; - Если Отказ Тогда // Отказ от выгрузки свойства + Если Отказ Тогда // Отказ от выгрузки свойства Продолжить; @@ -10850,12 +10864,12 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПКС(57, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПКО, ПКС, Источник, - "ПослеВыгрузкиСвойства", Значение); + ЗаписатьИнформациюОбОшибкеОбработчикиПКС(57, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПКО, ПКС, Источник, "ПослеВыгрузкиСвойства", Значение); КонецПопытки; - Если Отказ Тогда // Отказ от выгрузки свойства + Если Отказ Тогда // Отказ от выгрузки свойства Продолжить; @@ -10953,7 +10967,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(33, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "ПередВыгрузкойОбъектаВыборки", Объект); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(33, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "ПередВыгрузкойОбъектаВыборки", Объект); КонецПопытки; Если Отказ Тогда @@ -11009,7 +11024,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(34, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "ПослеВыгрузкиОбъектаВыборки", Объект); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(34, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "ПослеВыгрузкиОбъектаВыборки", Объект); КонецПопытки; КонецЕсли; @@ -11259,7 +11275,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(31, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "ПередОбработкойВыгрузкиДанных"); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(31, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "ПередОбработкойВыгрузкиДанных"); КонецПопытки; @@ -11388,7 +11405,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Правило.Имя, "ПослеОбработкиВыгрузкиДанных"); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + Правило.Имя, "ПослеОбработкиВыгрузкиДанных"); КонецПопытки; @@ -11687,7 +11705,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПоследняяСтрокаПравилаВыгрузки.Имя, "ПослеОбработкиВыгрузкиДанных"); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПоследняяСтрокаПравилаВыгрузки.Имя, "ПослеОбработкиВыгрузкиДанных"); КонецПопытки; @@ -11727,7 +11746,8 @@ Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(31, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ТекущаяСтрокаПравилаВыгрузки.Имя, "ПередОбработкойВыгрузкиДанных"); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(31, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ТекущаяСтрокаПравилаВыгрузки.Имя, "ПередОбработкойВыгрузкиДанных"); КонецПопытки; @@ -11841,7 +11861,8 @@ КонецЕсли; Исключение - ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПоследняяСтрокаПравилаВыгрузки.Имя, "ПослеОбработкиВыгрузкиДанных"); + ЗаписатьИнформациюОбОшибкеОбработчикиПВД(32, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), + ПоследняяСтрокаПравилаВыгрузки.Имя, "ПослеОбработкиВыгрузкиДанных"); КонецПопытки; @@ -11920,12 +11941,6 @@ КонецПроцедуры -Функция УдалитьНедопустимыеСимволыXML(Знач Текст) - - Возврат ЗаменитьНедопустимыеСимволыXML(Текст, ""); - -КонецФункции - #КонецОбласти #Область ЭкспортируемыеПроцедурыИФункции @@ -12724,7 +12739,8 @@ Исключение Текст = НСтр("ru = 'Обработчик: ""%1"": %2'"); - Текст = ПодставитьПараметрыВСтроку(Текст, "ПослеЗагрузкиПравилОбмена", ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + Текст = ПодставитьПараметрыВСтроку(Текст, "ПослеЗагрузкиПравилОбмена", + ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(НСтр("ru = 'Универсальный обмен данными в формате XML'", КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,,, Текст); @@ -12910,7 +12926,8 @@ Исключение - СтрокаОшибки = ПодставитьПараметрыВСтроку(НСтр("ru = 'Ошибка при загрузке данных: %1'"), ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + СтрокаОшибки = ПодставитьПараметрыВСтроку(НСтр("ru = 'Ошибка при загрузке данных: %1'"), + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); РезультирующаяСтрокаСИнформациейОбОшибке = ЗаписатьВПротоколВыполнения(СтрокаОшибки, Неопределено, Истина, , , Истина); @@ -14357,7 +14374,8 @@ СтрокаСообщенияОбОшибке = НСтр("ru = 'При попытке соединения с COM-сервером произошла следующая ошибка: |%1'"); - СтрокаСообщенияОбОшибке = ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + СтрокаСообщенияОбОшибке = ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); СообщитьПользователю(СтрокаСообщенияОбОшибке); diff --git a/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/Форма/Module.bsl index 459c73cf2..05118bdb4 100644 --- a/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/УничтожениеПерсональныхДанных/Forms/Форма/Module.bsl @@ -11,11 +11,8 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда - ТекстСообщения = НСтр("ru = 'Запрещено уничтожать персональные данные в подчиненном узле.'"); - ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , , , Отказ); - Возврат; - КонецЕсли; + ОбщегоНазначенияКлиентСервер.Проверить(Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ(), + НСтр("ru = 'Все операции по уничтожению персональных данных выполняются только в центральном узле.'")); // СтандартныеПодсистемы.ПодключаемыеКоманды ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения(); diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПроверкаСервиса/Module.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПроверкаСервиса/Module.bsl index 9288ca8cf..98a9c3a19 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПроверкаСервиса/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/Forms/ПроверкаСервиса/Module.bsl @@ -482,7 +482,7 @@ КонецЦикла; - ДанныеПроверки = Новый Структура;; + ДанныеПроверки = Новый Структура; ДанныеПроверки.Вставить("Успешно", Счетчик); ДанныеПроверки.Вставить("СписокОпераций", СписокОпераций); diff --git a/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl b/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl index ef5a56964..5bb9ee8d9 100644 --- a/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl +++ b/SSL/src/DataProcessors/УправлениеПодключениемDSS/ManagerModule.bsl @@ -230,7 +230,9 @@ ПараметрыПодключения.ТочкаПодключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ПараметрыПодключения.ТочкаПодключения, ИдентификаторСубъекта, ПодписьПароля); - ОтветСервиса = ВыполнитьЗапросREST(ПараметрыПодключения, JsonИзСтруктуры(ПолучитьBase64СтрокуИзДвоичныхДанных(ДанныеПодписи)), "POST", Заголовки); + ОтветСервиса = ВыполнитьЗапросREST(ПараметрыПодключения, + ОбщегоНазначения.ЗначениеВJSON(ПолучитьBase64СтрокуИзДвоичныхДанных(ДанныеПодписи)), "POST", Заголовки); + Если ОтветСервиса.Выполнено Тогда Если СвойствоСтруктуры(ОтветСервиса.Результат, "code", "-1") <> "0" Тогда Результат.Ошибка = НСтр("ru = 'Ошибка активирования учетной записи'"); @@ -1637,7 +1639,7 @@ КонецЦикла; Путь = Путь + ?(ПустаяСтрока(ПараметрыЗапроса), "", "?" + ПараметрыЗапроса); ИначеЕсли ТипЗнч(ПараметрыМетода) <> Тип("Строка") Тогда - ПараметрыЗапроса = JsonИзСтруктуры(ПараметрыМетода); + ПараметрыЗапроса = ОбщегоНазначения.ЗначениеВJSON(ПараметрыМетода); Иначе ПараметрыЗапроса = ПараметрыМетода; КонецЕсли; @@ -1657,7 +1659,7 @@ ТелоКакСтрока = ОтветСервиса.ПолучитьТелоКакСтроку(); Если ОтветСервиса.КодСостояния = 200 Тогда - Результат.Результат = JsonВСтруктуру(ТелоКакСтрока); + Результат.Результат = ОбщегоНазначения.JSONВЗначение(ТелоКакСтрока, , Ложь); Результат.Выполнено = Истина; Иначе Результат.Ошибка = ТелоКакСтрока; @@ -1734,39 +1736,6 @@ КонецФункции -Функция JsonВСтруктуру(СтрокаJSON, ПараметрыПреобразования = Неопределено) - - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.УстановитьСтроку(СтрокаJSON); - - Объект = ПрочитатьJSON(ЧтениеJSON); - - ЧтениеJSON.Закрыть(); - - Возврат Объект; - -КонецФункции - -// Преобразует структуру или соответствие в строку JSON. Двоичные данные преобразуются в строки Base64. -// -// Параметры: -// СтрокаJSON - Структура, Соответствие - структура, которую необходимо преобразовать в строку JSON. -// ОграничитьДлину - Булево - ограничить длину значения не более 100 символов -// -// Возвращаемое значение: -// Строка - текстовое представление JSON -// -Функция JsonИзСтруктуры(Объект, ОграничитьДлину = Ложь) - - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.УстановитьСтроку(); - - ЗаписатьJSON(ЗаписьJSON, Объект); - - Возврат ЗаписьJSON.Закрыть(); - -КонецФункции - Функция СвойствоСтруктуры(Данные, КлючевоеПоле, ЗначениеПоУмолчанию = Неопределено) Возврат СервисКриптографииDSSКлиентСервер.ПолучитьПолеСтруктуры(Данные, КлючевоеПоле, ЗначениеПоУмолчанию) diff --git a/SSL/src/DefinedTypes/ВариантОбновляемогоОтчета/ВариантОбновляемогоОтчета.mdo b/SSL/src/DefinedTypes/ВариантОбновляемогоОтчета/ВариантОбновляемогоОтчета.mdo new file mode 100644 index 000000000..ec8597d03 --- /dev/null +++ b/SSL/src/DefinedTypes/ВариантОбновляемогоОтчета/ВариантОбновляемогоОтчета.mdo @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:DefinedType xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5510a103-836d-457e-b82b-6f6223efc96b"> + <producedTypes> + <containerType typeId="b52e9b58-9d30-4e4f-acca-6b699b499cb4" valueTypeId="7d4e9a21-920c-404a-a6d1-1afb89d311ae"/> + </producedTypes> + <name>ВариантОбновляемогоОтчета</name> + <synonym> + <key>ru</key> + <value>Вариант обновляемого отчета</value> + </synonym> + <type> + <types>CatalogRef.ВариантыОтчетов</types> + </type> +</mdclass:DefinedType> diff --git a/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаНаборЗаписей/ВладелецЗначенийКлючейДоступаНаборЗаписей.mdo b/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаНаборЗаписей/ВладелецЗначенийКлючейДоступаНаборЗаписей.mdo index be60bae90..380277cad 100644 --- a/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаНаборЗаписей/ВладелецЗначенийКлючейДоступаНаборЗаписей.mdo +++ b/SSL/src/DefinedTypes/ВладелецЗначенийКлючейДоступаНаборЗаписей/ВладелецЗначенийКлючейДоступаНаборЗаписей.mdo @@ -13,6 +13,7 @@ <types>InformationRegisterRecordSet.ДанныеБизнесПроцессов</types> <types>InformationRegisterRecordSet.НастройкиВариантовОтчетов</types> <types>InformationRegisterRecordSet.ПредметыПапкиВзаимодействий</types> + <types>InformationRegisterRecordSet.СнимкиОтчетов</types> <types>InformationRegisterRecordSet.ДатыЗапретаИзменения</types> <types>InformationRegisterRecordSet.НастройкиУчетныхЗаписейЭлектроннойПочты</types> <types>InformationRegisterRecordSet.ДополнительныеСведения</types> diff --git a/SSL/src/DefinedTypes/ВладелецМеток/ВладелецМеток.mdo b/SSL/src/DefinedTypes/ВладелецМеток/ВладелецМеток.mdo new file mode 100644 index 000000000..4c8fb621d --- /dev/null +++ b/SSL/src/DefinedTypes/ВладелецМеток/ВладелецМеток.mdo @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:DefinedType xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4cc76b9f-aa72-486e-84ee-f0866edfe691"> + <producedTypes> + <containerType typeId="86021235-842f-4964-a21a-51b0d1c70ece" valueTypeId="d91362ed-cf14-4884-a069-c97667a82585"/> + </producedTypes> + <name>ВладелецМеток</name> + <synonym> + <key>ru</key> + <value>Владелец меток</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>10</length> + </stringQualifiers> + </type> +</mdclass:DefinedType> diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Help/ru.html b/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Help/ru.html index 833f942ef..be2c5d323 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Help/ru.html +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Help/ru.html @@ -22,7 +22,7 @@ <div style="MARGIN-LEFT: 20px"><strong>HTML</strong>. Создание подписи в формате HTML позволит форматировать текст и вставлять в него картинки.</div> <ul><li> <div style="MARGIN-LEFT: 20px">Создание подписей в формате HTML доступно, если это предусмотрено настройками программы. Данную настройку можно изменить в разделе <strong>Администрирование - Органайзер</strong>, отредактировав значение флажка <b>Исходящие письма в формате HTML</b>.</div></li></ul></li></ul></li><li> -<div style="MARGIN-LEFT: 20px">Напишите подпись в соответствующем поле. При выборе формата HTML можно выбирать различные способы форматирования текста, вставлять картинки и гиперссылки. Текст можно форматировать с помощью кнопок форматирования в панели навигации, а также команд меню <strong>Еще</strong>.</div></li></ul><table border="4"><tbody><tr><td>Важно. Если для <a href="Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаЭлемента/Help">учетной записи</a> настроена подпись, то при создании письма подставляется <a href="InformationRegister.НастройкиУчетныхЗаписейЭлектроннойПочты.Form.ФормаЗаписи/Help">подпись учетной записи</a>.</td></tr></tbody></table><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300b66f2364d4"> +<div style="MARGIN-LEFT: 20px">Напишите подпись в соответствующем поле. При выборе формата HTML можно выбирать различные способы форматирования текста, вставлять картинки и гиперссылки. Текст можно форматировать с помощью кнопок форматирования в панели навигации, а также команд меню <strong>Еще</strong>.</div></li></ul><table border="4"><tbody><tr><td>Если для <a href="Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаЭлемента/Help">электронной почты</a> настроена <a href="InformationRegister.НастройкиУчетныхЗаписейЭлектроннойПочты.Form.ФормаЗаписи/Help"></a>подпись, то она подставляется при создании письма.</td></tr></tbody></table><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300b66f2364d4"> <h3 style="MARGIN-LEFT: 0px">Уведомление о доставке и прочтении</h3></a> <p style="MARGIN-LEFT: 20px">На вкладке <b>Отслеживание писем</b> можно включить возможность запроса уведомлений от получателя о прочтении и доставке отправленных писем:</p> <ul><li> diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl index cf492a1ab..8e125d758 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl @@ -71,7 +71,7 @@ Если НавигационнаяСсылкаФорматированнойСтроки = "ВключитьНебезопасноеСодержимое" Тогда СтандартнаяОбработка = Ложь; ВключитьНебезопасноеСодержимое = Истина; - УстановитьТекстПисьмаHTML();; + УстановитьТекстПисьмаHTML(); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Form.form b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Form.form index 6ab4eae45..b62000a7a 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Form.form +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Form.form @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form"> +<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form" xmlns:schema="http://g5.1c.ru/v8/dt/data-composition-system/schema"> <title> <key>ru</key> <value>Взаимодействия</value> @@ -5856,7 +5856,7 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>Список.Date</segments> + <segments>Список.Дата</segments> </dataPath> <extendedTooltip> <name>ДатаExtendedTooltip</name> @@ -5891,6 +5891,10 @@ <items xsi:type="form:FormField"> <name>ЕстьВложения</name> <id>108</id> + <title> + <key>ru</key> + <value>Есть вложения</value> + true true @@ -6110,7 +6114,7 @@ true - Список.Ref + Список.Ссылка СсылкаРасширеннаяПодсказка @@ -7167,21 +7171,12 @@ true - - Список.Date - - - Список.DeletionMark - - - Список.Ref - - - Список.Type - Список.ВажностьНомерКартинки + + Список.Дата + Список.ЕстьВложения @@ -7194,15 +7189,24 @@ Список.Папка + + Список.ПометкаУдаления + Список.Предмет Список.Рассмотрено + + Список.Ссылка + Список.СтатусИсходящегоПисьма + + Список.Тип + Список.УчетнаяЗапись @@ -7280,7 +7284,13 @@ ЖурналДокументовВзаимодействияПереопределяемый.Участники, ЖурналДокументовВзаимодействияПереопределяемый.Тип, ЖурналДокументовВзаимодействияПереопределяемый.СтатусИсходящегоПисьма, - ЖурналДокументовВзаимодействияПереопределяемый.ЕстьВложения, + ВЫБОР + КОГДА ЕСТЬNULL(ЖурналДокументовВзаимодействияПереопределяемый.ЕстьВложения, НаличиеФайловПереопределяемый.ЕстьФайлы) ЕСТЬ NULL + ТОГДА ЛОЖЬ + КОГДА ЕСТЬNULL(ЖурналДокументовВзаимодействияПереопределяемый.ЕстьВложения, НаличиеФайловПереопределяемый.ЕстьФайлы) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ КАК ЕстьВложения, ЕСТЬNULL(ПредметыВзаимодействийПереопределяемый.Предмет, НЕОПРЕДЕЛЕНО) КАК Предмет, ТИПЗНАЧЕНИЯ(ПредметыВзаимодействийПереопределяемый.Предмет) КАК ТипПредмета, ЖурналДокументовВзаимодействияПереопределяемый.УчетнаяЗапись, @@ -7299,6 +7309,8 @@ ЖурналДокументов.Взаимодействия КАК ЖурналДокументовВзаимодействияПереопределяемый ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыВзаимодействийПереопределяемый ПО ЖурналДокументовВзаимодействияПереопределяемый.Ссылка = ПредметыВзаимодействийПереопределяемый.Взаимодействие + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайловПереопределяемый + ПО ЖурналДокументовВзаимодействияПереопределяемый.Ссылка = НаличиеФайловПереопределяемый.ОбъектСФайлами {ГДЕ ЖурналДокументовВзаимодействияПереопределяемый.Ссылка КАК Поиск} DocumentJournal.Взаимодействия @@ -7307,6 +7319,186 @@ true true true + + Поиск + Поиск + + <localValue> + <content> + <key>ru</key> + <value>Поиск</value> + </content> + </localValue> + + + + ЕстьВложения + ЕстьВложения + + + ВзаимодействиеОснование + ВзаимодействиеОснование + + + Размер + Размер + + + ДатаКогдаОтправить + ДатаКогдаОтправить + + + ДатаАктуальностиОтправки + ДатаАктуальностиОтправки + + + ИдентификаторСообщения + ИдентификаторСообщения + + + НомерКартинки + НомерКартинки + + <localValue> + <content> + <key>ru</key> + <value>Номер картинки</value> + </content> + </localValue> + + + + Ссылка + Ссылка + + + Дата + Дата + + + ПометкаУдаления + ПометкаУдаления + + + Номер + Номер + + + Автор + Автор + + + Входящий + Входящий + + + Тема + Тема + + + Ответственный + Ответственный + + + Рассмотрено + Рассмотрено + + <localValue> + <content> + <key>ru</key> + <value>Рассмотрено</value> + </content> + </localValue> + + + + РассмотретьПосле + РассмотретьПосле + + <localValue> + <content> + <key>ru</key> + <value>Рассмотреть после</value> + </content> + </localValue> + + + + Участники + Участники + + + Тип + Тип + + + СтатусИсходящегоПисьма + СтатусИсходящегоПисьма + + + Предмет + Предмет + + <localValue> + <content> + <key>ru</key> + <value>Предмет</value> + </content> + </localValue> + + + + ТипПредмета + ТипПредмета + + <localValue> + <content> + <key>ru</key> + <value>Тип предмета</value> + </content> + </localValue> + + + + УчетнаяЗапись + УчетнаяЗапись + + + Папка + Папка + + <localValue> + <content> + <key>ru</key> + <value>Папка</value> + </content> + </localValue> + + + + ПолученоОтправлено + ПолученоОтправлено + + + Важность + Важность + + + ВажностьНомерКартинки + ВажностьНомерКартинки + + <localValue> + <content> + <key>ru</key> + <value>Важность номер картинки</value> + </content> + </localValue> + + + + Проведен + Проведен + diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Help/ru.html b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Help/ru.html index 5880e10e5..17e42c0c9 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Help/ru.html +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Help/ru.html @@ -24,7 +24,7 @@

                    Можно ли работать с электронной перепиской из списка взаимодействий?

                    Может ли пользователь инициировать процесс отправки и получения писем?

                    Можно ли ответить или переслать письмо из списка взаимодействий?

                    -

                    Как из списка перейти к настройке учетной записи электронной почты?

                    +

                    Как из списка перейти к настройке электронной почты?

                     

                    Правая часть списка состоит из колонок:

                    @@ -190,10 +190,10 @@
                    • С помощью флажка Еще - Отображать область чтения можно установить режим просмотра текста писем или темы документов.

                    Группировка списка по папкам электронных писем. Работа с электронной перепиской

                    С электронной перепиской в списке удобно работать при группировке По папкам.

                    • -
                      В этом случае вся корреспонденция группируется сначала по учетным записям электронной почты, затем внутри каждой учетной записи по папкам электронных писем, предопределенным и пользовательским.
                      +
                      В этом случае вся корреспонденция группируется по папкам электронной почты.
                    • -
                      Двойным щелчком мыши по наименованию учетной записи электронной почты можно открыть ее.
                      +
                      Двойным щелчком мыши по наименованию электронной почты можно открыть ее.
                    • Предопределенные папки, всегда имеющиеся по умолчанию:
                      @@ -266,5 +266,5 @@
                    •  Переслать - получатели не заполняются. Будет сформировано исходящее письмо, включающее в себя текст и вложения входящего письма.
                    • Переслать как вложение - по команде контекстного меню по правой кнопке мыши будет сформировано исходящее письмо, включающее в себя как вложение выбранные входящие или отправленные письма.

                  Персональные настройки

                  -
                  • С помощью команды Еще - Персональные настройки можно перейти к настройке персональной учетной записи электронной почты.

                  См. также

                  +
                  • С помощью команды Еще - Персональные настройки можно перейти к настройке персональной электронной почты.

                  См. также

                  \ No newline at end of file diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl index ae6ba1760..6adce77b0 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl @@ -1853,7 +1853,7 @@ ИмяПоля = "УчетнаяЗапись"; ВидСравненияЭлементаОтбора = ВидСравненияКомпоновкиДанных.Равно; ПравоеЗначение = ДанныеДляОбработки.Значение; - ИмяОтбора = НСтр("ru = 'Учетная запись'"); + ИмяОтбора = НСтр("ru = 'Почта'"); КонецЕсли; @@ -2738,7 +2738,7 @@ КонецЕсли; ТекстУсловийПоРегистру = ТекстУсловийПоРегистру + СтрокаУсловия + Символы.ПС; КонецЕсли; - КонецЦикла;; + КонецЦикла; ТекстЗапросаДинамическийСписок = "ВЫБРАТЬ diff --git a/SSL/src/DocumentJournals/Взаимодействия/Взаимодействия.mdo b/SSL/src/DocumentJournals/Взаимодействия/Взаимодействия.mdo index ff03698cf..cee8a0510 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Взаимодействия.mdo +++ b/SSL/src/DocumentJournals/Взаимодействия/Взаимодействия.mdo @@ -144,7 +144,7 @@ УчетнаяЗапись ru - Учетная запись + Почта IndexWithAdditionalOrder Document.ЭлектронноеПисьмоВходящее.Attribute.УчетнаяЗапись @@ -556,7 +556,7 @@ СохранитьПисьмоНаДиск ru - Сохранить письмо на диск + Сохранить письмо на компьютер FormCommandBarImportant @@ -566,7 +566,7 @@ PictureAndText ru - Сохранить письмо на диск в формате eml + Сохранить письмо на компьютер в формате EML CommonPicture.СохранитьФайлКак diff --git a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Form.form b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Form.form index 6d8704024..9b8d81771 100644 --- a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Form.form +++ b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Form.form @@ -6,6 +6,154 @@ ФормаГруппаКомандыФормы 190 + + СкрытьПоказатьДеревоРазделовДокумент + 156 + + <key>ru</key> + <value>Показать разделы</value> + + true + true + + true + + + СкрытьПоказатьДеревоРазделовДокументРасширеннаяПодсказка + 157 + Label + true + true + + Left + + + Form.Command.ПоказатьРазделы + Normal + Auto + true + true + UserCmds + + StdPicture.ShowInList + + Auto + + + ПредыдущийРаздел + 163 + true + true + + true + + + ПредыдущийРазделРасширеннаяПодсказка + 164 + Label + true + true + + Left + + + Form.Command.ПредыдущийРаздел + Normal + Auto + 10 + true + true + UserCmds + Auto + + + СледующийРаздел + 165 + + <key>ru</key> + <value>Далее ></value> + + true + true + + true + + + СледующийРазделРасширеннаяПодсказка + 166 + Label + true + true + + Left + + + Form.Command.СледующийРаздел + Normal + Auto + 10 + true + true + UserCmds + Auto + + + ФормаЗаполненияЗавершитьИЗакрыть + 92 + true + true + + true + + false + + ФормаЗаполненияЗавершитьИЗакрытьРасширеннаяПодсказка + 115 + Label + true + true + + Left + + + Form.Command.ФормаЗаполненияЗавершитьИЗакрыть + Normal + PictureAndText + true + true + UserCmds + Auto + + + ФормаЗаполненияЗаписать + 91 + + <key>ru</key> + <value>Сохранить анкету</value> + + true + true + + true + + false + + ФормаЗаполненияЗаписатьExtendedTooltip + 116 + Label + true + true + + Left + + + Form.Command.ФормаЗаполненияЗаписать + Normal + true + true + UserCmds + Auto + true true @@ -78,71 +226,6 @@ UserCmds Auto - - ФормаЗаполненияЗаписать - 91 - - <key>ru</key> - <value>Записать</value> - - true - true - - true - - false - - ФормаЗаполненияЗаписатьExtendedTooltip - 116 - Label - true - true - - Left - - - Form.Command.ФормаЗаполненияЗаписать - Normal - Picture - true - true - UserCmds - - StdPicture.Write - - Auto - - - ФормаЗаполненияПровестиЗакрыть - 92 - - <key>ru</key> - <value>Завершить и закрыть</value> - - true - true - - true - - false - - ФормаЗаполненияПровестиЗакрытьExtendedTooltip - 115 - Label - true - true - - Left - - - Form.Command.ФормаЗаполненияПровестиЗакрыть - Normal - PictureAndText - true - true - UserCmds - Auto - ФормаКоманднаяПанельЗаписать 87 @@ -876,6 +959,7 @@ UsualGroup HorizontalIfPossible + NormalSeparation true true Auto @@ -885,148 +969,6 @@ ГруппаЗаполнение 158 - - КоманднаяПанельДокументАнкетаЛево - 178 - - СкрытьПоказатьДеревоРазделовДокумент - 156 - - <key>ru</key> - <value>Показать разделы</value> - - true - true - - true - - - СкрытьПоказатьДеревоРазделовДокументРасширеннаяПодсказка - 157 - Label - true - true - - Left - - - Form.Command.СкрытьПоказатьДеревоРазделов - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Командная панель документ анкета лево</value> - - - КоманднаяПанельДокументАнкетаЛевоРасширеннаяПодсказка - 179 - Label - true - true - - Left - - - CommandBar - - Left - - - - КоманднаяПанельДокументаАнкетаПраво - 180 - - ПредыдущийРаздел - 163 - true - true - - true - - - ПредыдущийРазделРасширеннаяПодсказка - 164 - Label - true - true - - Left - - - Form.Command.ПредыдущийРаздел - Normal - Auto - 10 - true - true - UserCmds - Auto - - - СледующийРаздел - 165 - - <key>ru</key> - <value>Далее ></value> - - true - true - - true - - - СледующийРазделРасширеннаяПодсказка - 166 - Label - true - true - - Left - - - Form.Command.СледующийРаздел - Normal - Auto - 10 - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Командная панель документа анкета право</value> - - - КоманднаяПанельДокументаАнкетаПравоРасширеннаяПодсказка - 181 - Label - true - true - - Left - - - CommandBar - - Right - - true true @@ -1707,25 +1649,67 @@ CommandBar - - Right - + - - Комментарий - 111 + + ГруппаПодвал + 221 + + Комментарий + 111 + true + true + + true + + + Объект.Комментарий + + Left + + КомментарийExtendedTooltip + 153 + Label + true + true + + Left + + + + КомментарийКонтекстноеМеню + 112 + true + + InputField + Enter + true + Left + true + + + StartChoice + КомментарийНачалоВыбора + + 2 + true + false + true + true + true + true + true + Normal + + true true true - - Объект.Комментарий - - Left - КомментарийExtendedTooltip - 153 + ГруппаПодвалРасширеннаяПодсказка + 222 Label true true @@ -1733,30 +1717,15 @@ Left - - КомментарийКонтекстноеМеню - 112 - true - - InputField - Enter - true - Left - true - - - StartChoice - КомментарийНачалоВыбора - - 2 - true - false - true - true - true - true - true - Normal + UsualGroup + + HorizontalIfPossible + Auto + NormalSeparation + true + true + Auto + Auto None @@ -1990,6 +1959,32 @@ true + + ИспользоватьМаксимальноеЗначение + 9 + + Boolean + + + true + + + true + + + + ИспользоватьМинимальноеЗначение + 10 + + Boolean + + + true + + + true + + ТаблицаВопросовРаздела @@ -2386,6 +2381,105 @@ true + + ИспользоватьМаксимальноеЗначение + 28 + + Boolean + + + true + + + true + + + + ИспользоватьМинимальноеЗначение + 29 + + Boolean + + + true + + + true + + + + ПоказыватьПолосуРегулирования + 30 + + Boolean + + + true + + + true + + + + ШагПолосыРегулирования + 31 + + Number + + 15 + 2 + true + + + + true + + + true + + + + ИспользоватьОтказОтОтвета + 32 + + Boolean + + + true + + + true + + + + ФормулировкаОтказаОтОтвета + 33 + + String + + 50 + + + + true + + + true + + + + ДиапазонПодсказокЧисловогоВопроса + 34 + + ValueTable + + + true + + + true + + ТаблицаВопросовРаздела.СоставТабличногоВопроса @@ -2566,6 +2660,72 @@ + + + ТаблицаВопросовРаздела.ДиапазонПодсказокЧисловогоВопроса + + + ЗначениеДо + + <key>ru</key> + <value>Значение до</value> + + 1 + + Number + + 15 + 2 + + + + true + + + true + + + + Подсказка + + <key>ru</key> + <value>Подсказка</value> + + 2 + + String + + 250 + + + + true + + + true + + + + НомерСтроки + + <key>ru</key> + <value>Номер строки</value> + + 3 + + Number + + 10 + + + + true + + + true + + + ВариантыОтветовНаВопросы @@ -2634,6 +2794,22 @@ true + + Подсказка + 5 + + String + + 250 + + + + true + + + true + + ПодчиненныеВопросы @@ -2959,6 +3135,9 @@ true Ctrl+S + + StdPicture.Write + ФормаЗаполненияЗаписать @@ -2969,10 +3148,10 @@ Auto - ФормаЗаполненияПровестиЗакрыть + ФормаЗаполненияЗавершитьИЗакрыть <key>ru</key> - <value>Форма заполнения провести закрыть</value> + <value>Завершить и закрыть</value> 2 @@ -2982,27 +3161,34 @@ true + + StdPicture.WriteAndClose + - ФормаЗаполненияПровестиЗакрыть + ФормаЗаполненияЗавершитьИЗакрыть DontUse Auto - СкрытьПоказатьДеревоРазделов + ПоказатьРазделы <key>ru</key> <value>Показать разделы</value> 3 + + ru + Показать или скрыть разделы анкеты + true - СкрытьПоказатьДеревоРазделов + ПоказатьРазделы DontUse @@ -3074,6 +3260,25 @@ DontUse Auto + + ВозможностьПредварительногоСохранения + + Boolean + + + + ТолькоФормаЗаполнения + + Boolean + + + + Заголовок + + String + + + diff --git a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl index 244217250..a62c3d05d 100644 --- a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl @@ -5,84 +5,84 @@ // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// - #Область ОбработчикиСобытийФормы &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - // Для предотвращения открытия документа "Анкета" другими внешними пользователями. ЭтоСеансОбычногоПользователя = Не Пользователи.ЭтоСеансВнешнегоПользователя(); - Если Не ЭтоСеансОбычногоПользователя И НЕ Объект.Ссылка.Пустая() + Если Не ЭтоСеансОбычногоПользователя И Не Объект.Ссылка.Пустая() И Объект.Респондент <> ВнешниеПользователи.ПолучитьОбъектАвторизацииВнешнегоПользователя() Тогда Отказ = Истина; Возврат; КонецЕсли; - + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); - + Если Объект.РежимАнкетирования = Перечисления.РежимыАнкетирования.Интервью Тогда - - Если НЕ Объект.ШаблонАнкеты.Пустая() Тогда + + Если Не Объект.ШаблонАнкеты.Пустая() Тогда РеквизитыОпрос = ЗначенияРеквизитовШаблонаАнкеты(Объект.ШаблонАнкеты); УстановитьЗначенияРеквизитовСогласноОпросу(РеквизитыОпрос); КонецЕсли; - - Если Параметры.Свойство("ВозможностьПредварительногоСохранения") Тогда - ВозможностьПредварительногоСохранения = Параметры.ВозможностьПредварительногоСохранения; - КонецЕсли; - + + ВозможностьПредварительногоСохранения = Параметры.ВозможностьПредварительногоСохранения; + КонецЕсли; - - Если НЕ Объект.Опрос.Пустая() Тогда - РеквизитыОпрос = ПолучитьЗначенияРеквизитовНазначениеОпроса(Объект.Опрос); + + Если Не Объект.Опрос.Пустая() Тогда + РеквизитыОпрос = ЗначенияРеквизитовНазначенияОпроса(Объект.Опрос); УстановитьЗначенияРеквизитовСогласноОпросу(РеквизитыОпрос); Объект.ШаблонАнкеты = ШаблонАнкеты; КонецЕсли; - + Если ШаблонАнкеты.Пустая() Тогда Отказ = Истина; Возврат; КонецЕсли; - - Если Параметры.Свойство("ТолькоФормаЗаполнения") Тогда + + Если Параметры.ТолькоФормаЗаполнения Тогда АвтоЗаголовок = Ложь; УстановитьЗаголовкиНадписей(РеквизитыОпрос); КонецЕсли; - - Анкетирование.УстановитьЭлементДереваРазделовАнкетыВступлениеЗаключение(ДеревоРазделов, НСтр("ru = 'Вступление'"), "Вступление"); - Анкетирование.ЗаполнитьДеревоРазделов(ЭтотОбъект,ДеревоРазделов); - Анкетирование.УстановитьЭлементДереваРазделовАнкетыВступлениеЗаключение(ДеревоРазделов, НСтр("ru = 'Заключение'"), "Заключение"); - АнкетированиеКлиентСервер.СформироватьНумерациюДерева(ДеревоРазделов,Истина); - - Если (НЕ Объект.Проведен) И ЗначениеЗаполнено(Объект.РедактируемыйРаздел) Тогда + + Анкетирование.УстановитьЭлементДереваРазделовАнкетыВступлениеЗаключение(ДеревоРазделов, + НСтр("ru = 'Вступление'"), "Вступление"); + Анкетирование.ЗаполнитьДеревоРазделов(ЭтотОбъект, ДеревоРазделов); + Анкетирование.УстановитьЭлементДереваРазделовАнкетыВступлениеЗаключение(ДеревоРазделов, + НСтр("ru = 'Заключение'"), "Заключение"); + АнкетированиеКлиентСервер.СформироватьНумерациюДерева(ДеревоРазделов, Истина); + + Если (Не Объект.Проведен) И ЗначениеЗаполнено(Объект.РедактируемыйРаздел) Тогда Если ТипЗнч(Объект.РедактируемыйРаздел) = Тип("СправочникСсылка.ВопросыШаблонаАнкеты") Тогда - НомерТекущегоРаздела = АнкетированиеКлиентСервер.НайтиСтрокуВДанныхФормыДерево(ДеревоРазделов, Объект.РедактируемыйРаздел, "Ссылка", Истина); + НомерТекущегоРаздела = АнкетированиеКлиентСервер.НайтиСтрокуВДанныхФормыДерево(ДеревоРазделов, + Объект.РедактируемыйРаздел, "Ссылка", Истина); Иначе - НомерТекущегоРаздела = АнкетированиеКлиентСервер.НайтиСтрокуВДанныхФормыДерево(ДеревоРазделов, Объект.РедактируемыйРаздел, "ТипСтроки", Истина); + НомерТекущегоРаздела = АнкетированиеКлиентСервер.НайтиСтрокуВДанныхФормыДерево(ДеревоРазделов, + Объект.РедактируемыйРаздел, "ТипСтроки", Истина); КонецЕсли; Если НомерТекущегоРаздела = -1 Тогда НомерТекущегоРаздела = 0; - КонецЕсли; + КонецЕсли; КонецЕсли; Элементы.ДеревоРазделов.ТекущаяСтрока = НомерТекущегоРаздела; ПостроениеФормыСогласноРаздела(); - + Элементы.ПредыдущийРазделПодвал.Видимость = Ложь; Элементы.СледующийРазделПодвал.Видимость = Ложь; - - ДействияВЗависимостиОтВидаФормы(); - + + УстановитьВидимостьДоступностьЭлементовФормы(); + Элементы.ГруппаДеревоРазделов.Видимость = Ложь; ЗаголовокКомандаРазделы = НСтр("ru = 'Показать разделы'"); Элементы.СкрытьПоказатьДеревоРазделовДокумент.Заголовок = ЗаголовокКомандаРазделы; - + ИзменитьВидимостьЭлементовФормы(ЭтотОбъект); // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды - + КонецПроцедуры &НаСервере @@ -91,15 +91,16 @@ // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды - + КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) - + Элементы.ДеревоРазделов.ТекущаяСтрока = НомерТекущегоРаздела; - УправлениеДоступностьюКнопкиНавигацияРазделов(); - + УстановитьДоступностьНавигацииРазделов(); + ВыделитьВопросыНаКоторыеДаныОтветы(); + Если (Не ЭтотОбъект.ТолькоПросмотр) Тогда УправлениеДоступностьюПодчиненныеВопросы(Ложь); КонецЕсли; @@ -107,21 +108,21 @@ // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды - + КонецПроцедуры &НаКлиенте Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) - + Если Элементы.ГруппаТелоАнкеты.ТолькоПросмотр Тогда Модифицированность = Ложь; КонецЕсли; - + КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - + ПреобразоватьРезультатыЗаполненияРазделаВТабличнуюЧасть(); ТекущийОбъект.Состав.Очистить(); Для Каждого СтрокаСостава Из Объект.Состав Цикл @@ -130,24 +131,21 @@ КонецЦикла; ТекущийОбъект.РедактируемыйРаздел = Объект.РедактируемыйРаздел; ТекущийОбъект.ДатаРедактирования = ТекущаяДатаСеанса(); - + КонецПроцедуры &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) - - ПоказатьОповещениеПользователя(НСтр("ru = 'Изменение'"), - , - Строка(Объект.Ссылка), - БиблиотекаКартинок.Информация32); - - Оповестить("Запись_Анкета",Новый Структура,Объект.Ссылка); - + + ПоказатьОповещениеПользователя(НСтр("ru = 'Изменение'"),, Строка(Объект.Ссылка), БиблиотекаКартинок.Информация32); + + Оповестить("Запись_Анкета", Новый Структура, Объект.Ссылка); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи); КонецЕсли; - + КонецПроцедуры #КонецОбласти @@ -156,19 +154,19 @@ &НаКлиенте Процедура РеспондентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - + СтандартнаяОбработка = Ложь; - + МассивОтбора = Новый Массив; Если ОтборРеспондентов.Количество() > 0 Тогда - МассивОтбора.Добавить(АнкетированиеКлиент.СоздатьСтруктуруПараметраОтбора(Тип("ЭлементОтбораКомпоновкиДанных"),"Ссылка",ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии,ОтборРеспондентов)); + МассивОтбора.Добавить(АнкетированиеКлиент.СоздатьСтруктуруПараметраОтбора(Тип("ЭлементОтбораКомпоновкиДанных"), + "Ссылка", ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии, ОтборРеспондентов)); КонецЕсли; - ОткрытьФорму(ИмяМетаданныхРеспондент + ".ФормаВыбора",Новый Структура("МассивОтбора",МассивОтбора),Элемент); - + ОткрытьФорму(ИмяМетаданныхРеспондент + ".ФормаВыбора", Новый Структура("МассивОтбора", МассивОтбора), Элемент); + КонецПроцедуры -// Обработчик события ПриИзменении для вопросов с условием. &НаКлиенте Процедура Подключаемый_ПриИзмененииВопросовСУсловием(Элемент) @@ -176,45 +174,90 @@ КонецПроцедуры -// Обработчик события при изменении для простых и табличных вопросов. &НаКлиенте Процедура Подключаемый_ПриИзмененииВопроса(Элемент) Модифицированность = Истина; + АнкетированиеКлиент.ПриИзмененииВопроса(ЭтотОбъект, Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииПолосыРегулирования(Элемент) + + Модифицированность = Истина; + АнкетированиеКлиент.ПриИзмененииПолосыРегулирования(ЭтотОбъект, Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииПоляЧисло(Элемент) + + Модифицированность = Истина; + АнкетированиеКлиент.ПриИзмененииПоляЧисло(ЭтотОбъект, Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_РегулированиеПоляЧисло(Элемент, Направление, СтандартнаяОбработка) + + Модифицированность = Истина; + АнкетированиеКлиент.РегулированиеПоляЧисло(ЭтотОбъект, Элемент, Направление, СтандартнаяОбработка); КонецПроцедуры -// Обработчик начало выбора текстовых ячеек табличных вопросов. &НаКлиенте Процедура Подключаемый_НачалоВыбораТекстовыхЯчеекТабличныхВопросов(Элемент, ДанныеВыбора, СтандартнаяОбработка) - + СтандартнаяОбработка = Ложь; - + ДополнительныеПараметры = Новый Структура("Элемент", Элемент); - ОбработчикОповещения = Новый ОписаниеОповещения("РедактированиеМногострочногоТекстаПриОкончании", ЭтотОбъект, ДополнительныеПараметры); + ОбработчикОповещения = Новый ОписаниеОповещения("РедактированиеМногострочногоТекстаПриОкончании", ЭтотОбъект, + ДополнительныеПараметры); ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(ОбработчикОповещения, Элемент.ТекстРедактирования); - + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_НачалоВыбораКомментарий(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Если ЭтотОбъект.Элементы.Найти(Элемент.Имя) = Неопределено Тогда + Возврат; + КонецЕсли; + + ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария( + Элемент.ТекстРедактирования, ЭтотОбъект, Элемент.Имя, Элемент.ПодсказкаВвода); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииФлагаНеОтвечатьНаВопрос(Элемент) + + Модифицированность = Истина; + АнкетированиеКлиент.ПриИзмененииФлагаНеОтвечатьНаВопрос(ЭтотОбъект, Элемент); + КонецПроцедуры &НаКлиенте Процедура ДеревоРазделовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) - + ТекущиеДанные = Элементы.ДеревоРазделов.ТекущиеДанные; Если ТекущиеДанные = Неопределено Тогда Возврат; КонецЕсли; - + ВыполнитьПостроениеФормыЗаполнения(); - УправлениеДоступностьюКнопкиНавигацияРазделов(); - + УстановитьДоступностьНавигацииРазделов(); + КонецПроцедуры &НаКлиенте Процедура КомментарийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - + ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(Элемент.ТекстРедактирования, ЭтотОбъект); - + КонецПроцедуры #КонецОбласти @@ -223,61 +266,57 @@ &НаКлиенте Процедура ФормаЗаполненияЗаписать(Команда) - + Отказ = ОкончаниеРедактированиеФормыЗаполнения(РежимЗаписиДокумента.Запись); - - Если НЕ Отказ Тогда - - ПоказатьОповещениеПользователя(НСтр("ru = 'Изменение'"), - , - Строка(Объект.Ссылка), - БиблиотекаКартинок.Информация32); - - Оповестить("Запись_Анкета",Новый Структура,Объект.Ссылка); - + Если Не Отказ Тогда + + ПоказатьОповещениеПользователя(НСтр("ru = 'Изменение'"),, Строка(Объект.Ссылка), + БиблиотекаКартинок.Информация32); + + Оповестить("Запись_Анкета", Новый Структура, Объект.Ссылка); + КонецЕсли; - + КонецПроцедуры &НаКлиенте -Процедура ФормаЗаполненияПровестиЗакрыть(Команда) - +Процедура ФормаЗаполненияЗавершитьИЗакрыть(Команда) + ОбработчикОповещенияОЗакрытии = Новый ОписаниеОповещения("ВопросОПринятииАнкетыПослеЗавершения", ЭтотОбъект); - ПоказатьВопрос(ОбработчикОповещенияОЗакрытии, - НСтр("ru = 'Ваша анкета будет принята. - |Дальнейшее заполнение анкеты будет невозможно - |Продолжить?'") - ,РежимДиалогаВопрос.ДаНет); - + ПоказатьВопрос(ОбработчикОповещенияОЗакрытии, + НСтр("ru = 'Ваша анкета будет принята. + |Дальнейшее заполнение анкеты будет невозможно. + |Продолжить?'"), РежимДиалогаВопрос.ДаНет); + КонецПроцедуры &НаКлиенте -Процедура СкрытьПоказатьДеревоРазделов(Команда) +Процедура ПоказатьРазделы(Команда) ИзменитьВидимостьДеревоРазделов(); -КонецПроцедуры +КонецПроцедуры &НаКлиенте Процедура СледующийРаздел(Команда) - + ИзменитьРаздел("Вперед"); - + КонецПроцедуры &НаКлиенте Процедура ПредыдущийРаздел(Команда) - + ИзменитьРаздел("Назад"); - + КонецПроцедуры &НаКлиенте Процедура ВыборРаздела(Команда) - + ВыполнитьПостроениеФормыЗаполнения(); - УправлениеДоступностьюКнопкиНавигацияРазделов(); - + УстановитьДоступностьНавигацииРазделов(); + КонецПроцедуры #КонецОбласти @@ -287,56 +326,57 @@ //////////////////////////////////////////////////////////////////////////////// // Установка значений реквизитов формы. -// Устанавливает значения реквизитов формы заполнения, согласно данным ранее ответам. -// &НаСервере Процедура УстановитьЗначенияРеквизитовФормыЗаполненияРаздела() - + ТаблицаВопросовРаздела.Выгрузить().ВыгрузитьКолонку("ВопросШаблона"); - + Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | ВнешнийИсточник.Вопрос КАК Вопрос, - | ВЫРАЗИТЬ(ВнешнийИсточник.ЭлементарныйВопрос КАК ПланВидовХарактеристик.ВопросыДляАнкетирования) КАК ЭлементарныйВопрос, - | ВнешнийИсточник.НомерЯчейки КАК НомерЯчейки, - | ВнешнийИсточник.Ответ КАК Ответ, - | ВнешнийИсточник.ОткрытыйОтвет КАК ОткрытыйОтвет - |ПОМЕСТИТЬ ТаблицаОтветов - |ИЗ - | &ВнешнийИсточник КАК ВнешнийИсточник - |ГДЕ - | ВнешнийИсточник.Вопрос В(&ВопросыРаздела) - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ТаблицаОтветов.Вопрос КАК Вопрос, - | ТаблицаОтветов.ЭлементарныйВопрос КАК ЭлементарныйВопрос, - | ТаблицаОтветов.НомерЯчейки КАК НомерЯчейки, - | ТаблицаОтветов.Ответ КАК Ответ, - | ТаблицаОтветов.ОткрытыйОтвет КАК ОткрытыйОтвет, - | ТаблицаОтветов.ЭлементарныйВопрос.ТребуетсяКомментарий КАК ТребуетОткрытогоОтвета - |ИЗ - | ТаблицаОтветов КАК ТаблицаОтветов - |ИТОГИ ПО - | Вопрос"; - - Запрос.УстановитьПараметр("ВнешнийИсточник",Объект.Состав.Выгрузить()); - Запрос.УстановитьПараметр("ВопросыРаздела",ТаблицаВопросовРаздела.Выгрузить().ВыгрузитьКолонку("ВопросШаблона")); - + Запрос.Текст = + "ВЫБРАТЬ + | ВнешнийИсточник.Вопрос КАК Вопрос, + | ВЫРАЗИТЬ(ВнешнийИсточник.ЭлементарныйВопрос КАК ПланВидовХарактеристик.ВопросыДляАнкетирования) КАК ЭлементарныйВопрос, + | ВнешнийИсточник.НомерЯчейки КАК НомерЯчейки, + | ВнешнийИсточник.Ответ КАК Ответ, + | ВнешнийИсточник.ОткрытыйОтвет КАК ОткрытыйОтвет, + | ВнешнийИсточник.БезОтвета КАК БезОтвета + |ПОМЕСТИТЬ ТаблицаОтветов + |ИЗ + | &ВнешнийИсточник КАК ВнешнийИсточник + |ГДЕ + | ВнешнийИсточник.Вопрос В(&ВопросыРаздела) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ТаблицаОтветов.Вопрос КАК Вопрос, + | ТаблицаОтветов.ЭлементарныйВопрос КАК ЭлементарныйВопрос, + | ТаблицаОтветов.НомерЯчейки КАК НомерЯчейки, + | ТаблицаОтветов.Ответ КАК Ответ, + | ТаблицаОтветов.ОткрытыйОтвет КАК ОткрытыйОтвет, + | ТаблицаОтветов.ЭлементарныйВопрос.ТребуетсяКомментарий КАК ТребуетОткрытогоОтвета, + | ТаблицаОтветов.БезОтвета КАК БезОтвета + |ИЗ + | ТаблицаОтветов КАК ТаблицаОтветов + |ИТОГИ ПО + | Вопрос"; + + Запрос.УстановитьПараметр("ВнешнийИсточник", Объект.Состав.Выгрузить()); + Запрос.УстановитьПараметр("ВопросыРаздела", ТаблицаВопросовРаздела.Выгрузить().ВыгрузитьКолонку("ВопросШаблона")); + Результат = Запрос.Выполнить(); - Если НЕ Результат.Пустой() Тогда - + Если Не Результат.Пустой() Тогда + Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка.Следующий() Цикл - + ВыборкаВопрос = Выборка.Выбрать(); - УстановитьЗначениеРеквизита(Выборка.Вопрос,ВыборкаВопрос); - + УстановитьЗначениеРеквизита(Выборка.Вопрос, ВыборкаВопрос); + КонецЦикла; - + КонецЕсли; - + КонецПроцедуры // Анализирует тип вопроса и вызывает соответствующие процедуры для установки значений реквизита. @@ -349,19 +389,19 @@ // ДеревоАнкетыСервер - ДеревоЗначений - дерево значений, содержащее шаблон анкеты. // &НаСервере -Процедура УстановитьЗначениеРеквизита(ВопросШаблона,ВыборкаВопрос) - - НайденныеСтроки = ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("ВопросШаблона",ВопросШаблона)); - +Процедура УстановитьЗначениеРеквизита(ВопросШаблона, ВыборкаВопрос) + + НайденныеСтроки = ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("ВопросШаблона", ВопросШаблона)); + Если НайденныеСтроки.Количество() > 0 Тогда НайденнаяСтрока = НайденныеСтроки[0]; Если НайденнаяСтрока.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Табличный Тогда - УстановитьЗначениеРеквизитаТабличныйВопрос(ВопросШаблона,ВыборкаВопрос,НайденнаяСтрока); - УстановитьЗначенияРеквизитаКомплексныйВопрос(ВопросШаблона,ВыборкаВопрос,НайденнаяСтрока); + УстановитьЗначениеРеквизитаТабличныйВопрос(ВопросШаблона, ВыборкаВопрос, НайденнаяСтрока); + УстановитьЗначенияРеквизитаКомплексныйВопрос(ВопросШаблона, ВыборкаВопрос, НайденнаяСтрока); ИначеЕсли НайденнаяСтрока.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Комплексный Тогда - УстановитьЗначенияРеквизитаКомплексныйВопрос(ВопросШаблона,ВыборкаВопрос,НайденнаяСтрока); + УстановитьЗначенияРеквизитаКомплексныйВопрос(ВопросШаблона, ВыборкаВопрос, НайденнаяСтрока); Иначе - УстановитьЗначениеРеквизитаПростойВопрос(ВопросШаблона,ВыборкаВопрос,НайденнаяСтрока); + УстановитьЗначениеРеквизитаПростойВопрос(ВопросШаблона, ВыборкаВопрос, НайденнаяСтрока); КонецЕсли; КонецЕсли; @@ -377,51 +417,78 @@ // СтрокаДерева - СтрокаДереваЗначений - строка дерева значений, содержащая данные вопроса шаблона анкеты. // &НаСервере -Процедура УстановитьЗначениеРеквизитаПростойВопрос(Вопрос,ВыборкаВопрос,СтрокаДерева) - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); - +Процедура УстановитьЗначениеРеквизитаПростойВопрос(Вопрос, ВыборкаВопрос, СтрокаДерева) + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); + Если СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - - ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос,ЭтотОбъект); - + + ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос, ЭтотОбъект); + Пока ВыборкаВопрос.Следующий() Цикл - - ПараметрыОтвета = НайтиОтветВМассиве(ВыборкаВопрос.Ответ,ВариантыОтветовНаВопрос); - + + ПараметрыОтвета = НайтиОтветВМассиве(ВыборкаВопрос.Ответ, ВариантыОтветовНаВопрос); + Если ПараметрыОтвета <> Неопределено Тогда - ЭтотОбъект[ИмяВопроса + "_Реквизит_" + ПараметрыОтвета.ПорядковыйНомерРеквизита] = Истина; + ЭтотОбъект[ИмяВопроса + "_Реквизит_" + ПараметрыОтвета.ПорядковыйНомерРеквизита] = Истина; Если ПараметрыОтвета.ТребуетОткрытогоОтвета Тогда - - ЭтотОбъект[ИмяВопроса + "_Комментарий_" + ПараметрыОтвета.ПорядковыйНомерРеквизита] = ВыборкаВопрос.ОткрытыйОтвет; - + + ЭтотОбъект[ИмяВопроса + "_Комментарий_" + ПараметрыОтвета.ПорядковыйНомерРеквизита] = + ВыборкаВопрос.ОткрытыйОтвет; + КонецЕсли; - КонецЕсли; - + КонецЕсли; + КонецЦикла; - + + ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда + + ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос, ЭтотОбъект); + + Пока ВыборкаВопрос.Следующий() Цикл + ПараметрыОтвета = НайтиОтветВМассиве(ВыборкаВопрос.Ответ, ВариантыОтветовНаВопрос); + Если ПараметрыОтвета <> Неопределено Тогда + ЭтотОбъект[ИмяВопроса + "_Реквизит_" + ПараметрыОтвета.ПорядковыйНомерРеквизита] = ВыборкаВопрос.Ответ; + КонецЕсли; + Если (СтрокаДерева.ТребуетсяКомментарий) Тогда + ЭтотОбъект[ИмяВопроса + "_Комментарий"] = ВыборкаВопрос.ОткрытыйОтвет; + КонецЕсли; + Если СтрокаДерева.ИспользоватьОтказОтОтвета Тогда + ЭтотОбъект[ИмяВопроса + "_ИспользоватьОтказОтОтвета"] = ВыборкаВопрос.БезОтвета; + КонецЕсли; + КонецЦикла; + Иначе - + Если ВыборкаВопрос.Следующий() Тогда - + Если СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда - + ЭтотОбъект[ИмяВопроса] = ВыборкаВопрос.ОткрытыйОтвет; - + Иначе - + ЭтотОбъект[ИмяВопроса] = ВыборкаВопрос.Ответ; - + + Если СтрокаДерева.ПоказыватьПолосуРегулирования Тогда + ЭтотОбъект[ИмяВопроса + "_ПолосаРегулированияРеквизит"] = (ЭтотОбъект[ИмяВопроса] + - СтрокаДерева.МинимальноеЗначение) / СтрокаДерева.ШагПолосыРегулирования; + КонецЕсли; + Если (СтрокаДерева.ТребуетсяКомментарий) Тогда ЭтотОбъект[ИмяВопроса + "_Комментарий"] = ВыборкаВопрос.ОткрытыйОтвет; КонецЕсли; - + КонецЕсли; - + + Если СтрокаДерева.ИспользоватьОтказОтОтвета Тогда + ЭтотОбъект[ИмяВопроса + "_ИспользоватьОтказОтОтвета"] = ВыборкаВопрос.БезОтвета; + КонецЕсли; + КонецЕсли; - + КонецЕсли; - + КонецПроцедуры // Анализирует тип табличного вопроса и вызывает соответствующие процедуры для установки значений реквизитов. @@ -434,26 +501,26 @@ // СтрокаДерева - СтрокаДереваЗначений - строка дерева значений, содержащая данные вопроса шаблона анкеты. // &НаСервере -Процедура УстановитьЗначениеРеквизитаТабличныйВопрос(Вопрос,ВыборкаВопрос,СтрокаДерева) - +Процедура УстановитьЗначениеРеквизитаТабличныйВопрос(Вопрос, ВыборкаВопрос, СтрокаДерева) + Если СтрокаДерева.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной Тогда - - УстановитьЗначенияРеквизитаТабличныйВопросСоставной(Вопрос,ВыборкаВопрос,СтрокаДерева); - + + УстановитьЗначенияРеквизитаТабличныйВопросСоставной(Вопрос, ВыборкаВопрос, СтрокаДерева); + ИначеЕсли СтрокаДерева.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках Тогда - - УстановитьЗначенияРеквизитаТабличныйВопросОтветыВСтроках(Вопрос,ВыборкаВопрос,СтрокаДерева); - + + УстановитьЗначенияРеквизитаТабличныйВопросОтветыВСтроках(Вопрос, ВыборкаВопрос, СтрокаДерева); + ИначеЕсли СтрокаДерева.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках Тогда - - УстановитьЗначенияРеквизитаТабличныйВопросОтветыВКолонках(Вопрос,ВыборкаВопрос,СтрокаДерева); - + + УстановитьЗначенияРеквизитаТабличныйВопросОтветыВКолонках(Вопрос, ВыборкаВопрос, СтрокаДерева); + ИначеЕсли СтрокаДерева.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках Тогда - - УстановитьЗначенияРеквизитаТабличныйВопросОтветыВСтрокахКолонках(Вопрос,ВыборкаВопрос,СтрокаДерева); - + + УстановитьЗначенияРеквизитаТабличныйВопросОтветыВСтрокахКолонках(Вопрос, ВыборкаВопрос, СтрокаДерева); + КонецЕсли; - + КонецПроцедуры // Устанавливает значения реквизитов составного табличного вопроса. @@ -466,36 +533,34 @@ // СтрокаДерева - СтрокаДереваЗначений - строка дерева значений, содержащая данные вопроса шаблона анкеты. // &НаСервере -Процедура УстановитьЗначенияРеквизитаТабличныйВопросСоставной(Вопрос,ВыборкаВопрос,СтрокаДерева); +Процедура УстановитьЗначенияРеквизитаТабличныйВопросСоставной(Вопрос, ВыборкаВопрос, СтрокаДерева) - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); ИмяТаблицы = ИмяВопроса + "_Таблица"; Таблица = РеквизитФормыВЗначение(ИмяТаблицы); - - МассивВопросы = СтрокаДерева.СоставТабличногоВопроса.Выгрузить().ВыгрузитьКолонку("ЭлементарныйВопрос"); - + + ВопросыАнкеты = СтрокаДерева.СоставТабличногоВопроса.Выгрузить().ВыгрузитьКолонку("ЭлементарныйВопрос"); + Пока ВыборкаВопрос.Следующий() Цикл - - Если МассивВопросы.Найти(ВыборкаВопрос.ЭлементарныйВопрос) = Неопределено Тогда + + Если ВопросыАнкеты.Найти(ВыборкаВопрос.ЭлементарныйВопрос) = Неопределено Тогда Продолжить; КонецЕсли; - + Если ВыборкаВопрос.НомерЯчейки > Таблица.Количество() Тогда - - Для инд = 1 По ВыборкаВопрос.НомерЯчейки - Таблица.Количество() Цикл + Для Индекс = 1 По ВыборкаВопрос.НомерЯчейки - Таблица.Количество() Цикл Таблица.Добавить(); КонецЦикла; - КонецЕсли; - - НомерВопросаВМассиве = МассивВопросы.Найти(ВыборкаВопрос.ЭлементарныйВопрос); + + НомерВопросаВМассиве = ВопросыАнкеты.Найти(ВыборкаВопрос.ЭлементарныйВопрос); Если НомерВопросаВМассиве <> Неопределено Тогда Таблица[ВыборкаВопрос.НомерЯчейки - 1][НомерВопросаВМассиве] = ВыборкаВопрос.Ответ; КонецЕсли; - + КонецЦикла; - - ЗначениеВРеквизитФормы(Таблица,ИмяТаблицы); + + ЗначениеВРеквизитФормы(Таблица, ИмяТаблицы); КонецПроцедуры @@ -509,26 +574,25 @@ // СтрокаДерева - СтрокаДереваЗначений - строка дерева значений, содержащая данные вопроса шаблона анкеты. // &НаСервере -Процедура УстановитьЗначенияРеквизитаТабличныйВопросОтветыВСтроках(Вопрос,ВыборкаВопрос,СтрокаДерева); +Процедура УстановитьЗначенияРеквизитаТабличныйВопросОтветыВСтроках(Вопрос, ВыборкаВопрос, СтрокаДерева) - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); ИмяТаблицы = ИмяВопроса + "_Таблица"; ИмяКолонкиБезНомера = ИмяТаблицы + "_Колонка_"; Таблица = РеквизитФормыВЗначение(ИмяТаблицы); - - МассивВопросы = СтрокаДерева.СоставТабличногоВопроса.Выгрузить().ВыгрузитьКолонку("ЭлементарныйВопрос"); - + + ВопросыАнкеты = СтрокаДерева.СоставТабличногоВопроса.Выгрузить().ВыгрузитьКолонку("ЭлементарныйВопрос"); Пока ВыборкаВопрос.Следующий() Цикл - - НомерВопросаВМассиве = МассивВопросы.Найти(ВыборкаВопрос.ЭлементарныйВопрос); - Если (НомерВопросаВМассиве <> Неопределено) И (ВыборкаВопрос.НомерЯчейки <= Таблица.Количество()) Тогда - Таблица[ВыборкаВопрос.НомерЯчейки - 1][ИмяКолонкиБезНомера + XMLСтрока(НомерВопросаВМассиве+1)] = ВыборкаВопрос.Ответ; + + НомерВопроса = ВопросыАнкеты.Найти(ВыборкаВопрос.ЭлементарныйВопрос); + Если (НомерВопроса <> Неопределено) И (ВыборкаВопрос.НомерЯчейки <= Таблица.Количество()) Тогда + Таблица[ВыборкаВопрос.НомерЯчейки - 1][ИмяКолонкиБезНомера + XMLСтрока(НомерВопроса + 1)] = ВыборкаВопрос.Ответ; КонецЕсли; - + КонецЦикла; - - ЗначениеВРеквизитФормы(Таблица,ИмяТаблицы); - + + ЗначениеВРеквизитФормы(Таблица, ИмяТаблицы); + КонецПроцедуры // Устанавливает значения реквизитов табличного вопроса с предопределенными ответами в колонках. @@ -541,29 +605,29 @@ // СтрокаДерева - СтрокаДереваЗначений - строка дерева значений, содержащая данные вопроса шаблона анкеты. // &НаСервере -Процедура УстановитьЗначенияРеквизитаТабличныйВопросОтветыВКолонках(Вопрос,ВыборкаВопрос,СтрокаДерева); +Процедура УстановитьЗначенияРеквизитаТабличныйВопросОтветыВКолонках(Вопрос, ВыборкаВопрос, СтрокаДерева) - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); ИмяТаблицы = ИмяВопроса + "_Таблица"; ИмяКолонкиБезНомера = ИмяТаблицы + "_Колонка_"; Таблица = РеквизитФормыВЗначение(ИмяТаблицы); - - МассивВопросы = СтрокаДерева.СоставТабличногоВопроса.Выгрузить().ВыгрузитьКолонку("ЭлементарныйВопрос"); - МассивВопросы.Удалить(0); - + + ВопросыАнкеты = СтрокаДерева.СоставТабличногоВопроса.Выгрузить().ВыгрузитьКолонку("ЭлементарныйВопрос"); + ВопросыАнкеты.Удалить(0); + Пока ВыборкаВопрос.Следующий() Цикл - - НомерВопросаВМассиве = МассивВопросы.Найти(ВыборкаВопрос.ЭлементарныйВопрос); - Если (НомерВопросаВМассиве <> Неопределено) Тогда - Если (НомерВопросаВМассиве <= Таблица.Количество()) И (ВыборкаВопрос.НомерЯчейки <= Таблица.Колонки.Количество()) Тогда - Таблица[НомерВопросаВМассиве][ИмяКолонкиБезНомера + XMLСтрока(ВыборкаВопрос.НомерЯчейки + 1)] = ВыборкаВопрос.Ответ; + + НомерВопроса = ВопросыАнкеты.Найти(ВыборкаВопрос.ЭлементарныйВопрос); + Если (НомерВопроса <> Неопределено) Тогда + Если (НомерВопроса <= Таблица.Количество()) И (ВыборкаВопрос.НомерЯчейки <= Таблица.Колонки.Количество()) Тогда + Таблица[НомерВопроса][ИмяКолонкиБезНомера + XMLСтрока(ВыборкаВопрос.НомерЯчейки + 1)] = ВыборкаВопрос.Ответ; КонецЕсли; КонецЕсли; - + КонецЦикла; - - ЗначениеВРеквизитФормы(Таблица,ИмяТаблицы); - + + ЗначениеВРеквизитФормы(Таблица, ИмяТаблицы); + КонецПроцедуры // Устанавливает значения реквизитов табличного вопроса с предопределенными ответами в строках и колонках. @@ -576,26 +640,27 @@ // СтрокаДерева - СтрокаДереваЗначений - строка дерева значений, содержащая данные вопроса шаблона анкеты. // &НаСервере -Процедура УстановитьЗначенияРеквизитаТабличныйВопросОтветыВСтрокахКолонках(Вопрос,ВыборкаВопрос,СтрокаДерева) - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); +Процедура УстановитьЗначенияРеквизитаТабличныйВопросОтветыВСтрокахКолонках(Вопрос, ВыборкаВопрос, СтрокаДерева) + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); ИмяТаблицы = ИмяВопроса + "_Таблица"; ИмяКолонкиБезНомера = ИмяТаблицы + "_Колонка_"; Таблица = РеквизитФормыВЗначение(ИмяТаблицы); КоличествоКолонок = Таблица.Колонки.Количество(); - + ВопросЯчейка = СтрокаДерева.СоставТабличногоВопроса[2].ЭлементарныйВопрос; - + Пока ВыборкаВопрос.Следующий() Цикл Если ВыборкаВопрос.ЭлементарныйВопрос = ВопросЯчейка Тогда - НомерКолонки = ?(ВыборкаВопрос.НомерЯчейки%(КоличествоКолонок - 1)=0,КоличествоКолонок - 1,ВыборкаВопрос.НомерЯчейки%(КоличествоКолонок - 1)); - НомерСтроки = ЦЕЛ((ВыборкаВопрос.НомерЯчейки + ЦЕЛ(ВыборкаВопрос.НомерЯчейки/КоличествоКолонок))/КоличествоКолонок); - Таблица[НомерСтроки ][ИмяКолонкиБезНомера + XMLСтрока(НомерКолонки+1)] = ВыборкаВопрос.Ответ; + НомерКолонки = ?(ВыборкаВопрос.НомерЯчейки % (КоличествоКолонок - 1) = 0, КоличествоКолонок - 1, + ВыборкаВопрос.НомерЯчейки % (КоличествоКолонок - 1)); + НомерСтроки = ЦЕЛ((ВыборкаВопрос.НомерЯчейки + ЦЕЛ(ВыборкаВопрос.НомерЯчейки / КоличествоКолонок)) / КоличествоКолонок); + Таблица[НомерСтроки][ИмяКолонкиБезНомера + XMLСтрока(НомерКолонки + 1)] = ВыборкаВопрос.Ответ; КонецЕсли; КонецЦикла; - - ЗначениеВРеквизитФормы(Таблица,ИмяТаблицы); - + + ЗначениеВРеквизитФормы(Таблица, ИмяТаблицы); + КонецПроцедуры // Устанавливает значения реквизитов комплексного вопроса. @@ -608,59 +673,48 @@ // СтрокаДерева - СтрокаДереваЗначений - строка дерева значений, содержащая данные вопроса шаблона анкеты. // &НаСервере -Процедура УстановитьЗначенияРеквизитаКомплексныйВопрос(Вопрос,ВыборкаВопрос,СтрокаДерева); - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); - - МассивВопросы = СтрокаДерева.СоставКомплексногоВопроса.Выгрузить().ВыгрузитьКолонку("ЭлементарныйВопрос"); +Процедура УстановитьЗначенияРеквизитаКомплексныйВопрос(Вопрос, ВыборкаВопрос, СтрокаДерева) + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); + ВопросыАнкеты = СтрокаДерева.СоставКомплексногоВопроса.Выгрузить().ВыгрузитьКолонку("ЭлементарныйВопрос"); + ВыборкаВопрос.Сбросить(); Пока ВыборкаВопрос.Следующий() Цикл - - Если МассивВопросы.Найти(ВыборкаВопрос.ЭлементарныйВопрос) = Неопределено Тогда + + Если ВопросыАнкеты.Найти(ВыборкаВопрос.ЭлементарныйВопрос) = Неопределено Тогда Продолжить; КонецЕсли; - - СтрокиВопроса = СтрокаДерева.СоставКомплексногоВопроса.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", ВыборкаВопрос.ЭлементарныйВопрос)); - текНомерСтроки = СтрокиВопроса[0].НомерСтроки; - - ИмяРеквизита = ИмяВопроса + "_Ответ_" + Формат(текНомерСтроки, "ЧГ="); - + + СтрокиВопроса = СтрокаДерева.СоставКомплексногоВопроса.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", + ВыборкаВопрос.ЭлементарныйВопрос)); + НомерСтроки = СтрокиВопроса[0].НомерСтроки; + ИмяРеквизита = ИмяВопроса + "_Ответ_" + Формат(НомерСтроки, "ЧГ="); + Если ВыборкаВопрос.ЭлементарныйВопрос.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - - ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(ВыборкаВопрос.ЭлементарныйВопрос,ЭтотОбъект); - - ПараметрыОтвета = НайтиОтветВМассиве(ВыборкаВопрос.Ответ,ВариантыОтветовНаВопрос); - + + ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(ВыборкаВопрос.ЭлементарныйВопрос, + ЭтотОбъект); + + ПараметрыОтвета = НайтиОтветВМассиве(ВыборкаВопрос.Ответ, ВариантыОтветовНаВопрос); Если ПараметрыОтвета <> Неопределено Тогда - ЭтотОбъект[ИмяРеквизита + "_Реквизит_" + ПараметрыОтвета.ПорядковыйНомерРеквизита] = Истина; + ЭтотОбъект[ИмяРеквизита + "_Реквизит_" + ПараметрыОтвета.ПорядковыйНомерРеквизита] = Истина; Если ПараметрыОтвета.ТребуетОткрытогоОтвета Тогда - ЭтотОбъект[ИмяРеквизита + "_Комментарий_" + ПараметрыОтвета.ПорядковыйНомерРеквизита] = ВыборкаВопрос.ОткрытыйОтвет; - КонецЕсли; - КонецЕсли; - - Иначе - - Если ВыборкаВопрос.ЭлементарныйВопрос.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда - - ЭтотОбъект[ИмяРеквизита] = ВыборкаВопрос.ОткрытыйОтвет; - - Иначе - - ЭтотОбъект[ИмяРеквизита] = ВыборкаВопрос.Ответ; - - Если (ВыборкаВопрос.ТребуетОткрытогоОтвета) Тогда - ЭтотОбъект[ИмяВопроса + "_Комментарий_" + Формат(текНомерСтроки, "ЧГ=")] = ВыборкаВопрос.ОткрытыйОтвет; - КонецЕсли; - КонецЕсли; - + + ИначеЕсли ВыборкаВопрос.ЭлементарныйВопрос.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда + ЭтотОбъект[ИмяРеквизита] = ВыборкаВопрос.ОткрытыйОтвет; + Иначе + ЭтотОбъект[ИмяРеквизита] = ВыборкаВопрос.Ответ; + + Если (ВыборкаВопрос.ТребуетОткрытогоОтвета) Тогда + ЭтотОбъект[ИмяВопроса + "_Комментарий_" + Формат(НомерСтроки, "ЧГ=")] = ВыборкаВопрос.ОткрытыйОтвет; + КонецЕсли; КонецЕсли; - + КонецЦикла; - + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -668,14 +722,14 @@ &НаСервере Функция ОкончаниеРедактированиеФормыЗаполнения(РежимЗаписи) - + ПреобразоватьРезультатыЗаполненияРазделаВТабличнуюЧасть(); Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда - Если ПроверитьЗаполнениеАнкеты() Тогда + Если ПроверитьЗаполнениеАнкеты() Тогда Возврат Истина; КонецЕсли; КонецЕсли; - + ДокументОбъект = РеквизитФормыВЗначение("Объект"); ДокументОбъект.ДатаРедактирования = ТекущаяДатаСеанса(); Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда @@ -684,50 +738,49 @@ КонецЕсли; КонецЕсли; ДокументОбъект.Записать(РежимЗаписи); - + Если РежимЗаписи = РежимЗаписиДокумента.Запись Тогда - ЗначениеВРеквизитФормы(ДокументОбъект,"Объект"); + ЗначениеВРеквизитФормы(ДокументОбъект, "Объект"); Модифицированность = Ложь; КонецЕсли; - + Возврат Ложь; - + КонецФункции -// Преобразовывает данные в форме заполнения ответы в данные табличной части. -// &НаСервере Процедура ПреобразоватьРезультатыЗаполненияРазделаВТабличнуюЧасть() - + ТекущийРаздел = ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока); Если ТекущийРаздел <> Неопределено Тогда - Если ТекущийРаздел.ТипСтроки = "Раздел" Тогда + Если ТекущийРаздел.ТипСтроки = "Раздел" Тогда Объект.РедактируемыйРаздел = ТекущийРаздел.Ссылка; Иначе Объект.РедактируемыйРаздел = ТекущийРаздел.ТипСтроки; - КонецЕсли; + КонецЕсли; КонецЕсли; - + ПредыдущийРазделБезВопросов = (ТаблицаВопросовРаздела.Количество() = 0); - - Для каждого СтрокаТаблицы Из ТаблицаВопросовРаздела Цикл + + Для Каждого СтрокаТаблицы Из ТаблицаВопросовРаздела Цикл // Удаление из табличной части предыдущей информации. - НайденныеСтроки = Объект.Состав.НайтиСтроки(Новый Структура("Вопрос",СтрокаТаблицы.ВопросШаблона)); - Для каждого НайденнаяСтрока Из НайденныеСтроки Цикл + НайденныеСтроки = Объект.Состав.НайтиСтроки(Новый Структура("Вопрос", СтрокаТаблицы.ВопросШаблона)); + Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл Объект.Состав.Удалить(НайденнаяСтрока); КонецЦикла; - + Если ЗначениеЗаполнено(СтрокаТаблицы.РодительВопрос) Тогда - НайденныеСтроки = ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("ВопросШаблона",СтрокаТаблицы.РодительВопрос)); + НайденныеСтроки = ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("ВопросШаблона", + СтрокаТаблицы.РодительВопрос)); Если НайденныеСтроки.Количество() > 0 Тогда СтрокаРодитель = НайденныеСтроки[0]; - Если (НЕ ЭтотОбъект[АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаРодитель.КлючСтроки)] = Истина) Тогда + Если (Не ЭтотОбъект[АнкетированиеКлиентСервер.ИмяВопроса(СтрокаРодитель.КлючСтроки)] = Истина) Тогда Продолжить; КонецЕсли; КонецЕсли; КонецЕсли; - + Если СтрокаТаблицы.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Табличный Тогда ЗаполнитьТаблицуОтветовТабличныйВопрос(СтрокаТаблицы); ИначеЕсли СтрокаТаблицы.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Комплексный Тогда @@ -735,9 +788,9 @@ Иначе ЗаполнитьОтветПростойВопрос(СтрокаТаблицы); КонецЕсли; - + КонецЦикла; - + КонецПроцедуры // Анализирует тип табличного вопроса и вызывает соответствующую процедуру для @@ -748,62 +801,62 @@ // &НаСервере Процедура ЗаполнитьТаблицуОтветовТабличныйВопрос(СтрокаДерева) - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); ИмяТаблицы = ИмяВопроса + "_Таблица"; Таблица = РеквизитФормыВЗначение(ИмяТаблицы); - + Если Таблица.Количество() = 0 Тогда Возврат; КонецЕсли; - + Если СтрокаДерева.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.Составной Тогда - - ЗаполнитьОтветыТабличныйВопросСоставной(СтрокаДерева,Таблица); - - ИначеЕсли СтрокаДерева.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках Тогда - - ЗаполнитьОтветыТабличныйВопросОтветыВСтроках(СтрокаДерева,Таблица); - + + ЗаполнитьОтветыТабличныйВопросСоставной(СтрокаДерева, Таблица); + + ИначеЕсли СтрокаДерева.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках Тогда + + ЗаполнитьОтветыТабличныйВопросОтветыВСтроках(СтрокаДерева, Таблица); + ИначеЕсли СтрокаДерева.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках Тогда - - ЗаполнитьОтветыТабличныйВопросОтветыВКолонках(СтрокаДерева,Таблица); - + + ЗаполнитьОтветыТабличныйВопросОтветыВКолонках(СтрокаДерева, Таблица); + ИначеЕсли СтрокаДерева.ТипТабличногоВопроса = Перечисления.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках Тогда - - ЗаполнитьОтветыТабличныйВопросОтветыВСтрокахИКолонках(СтрокаДерева,Таблица); - + + ЗаполнитьОтветыТабличныйВопросОтветыВСтрокахИКолонках(СтрокаДерева, Таблица); + КонецЕсли; - + КонецПроцедуры // Получает ответы, данные респондентом на составной табличный вопрос и аккумулирует их в общей -// таблице ответов. +// таблице ответов. // // Параметры: // СтрокаДерева - СтрокаДереваЗначений - строка дерева шаблона анкеты. // Таблица - ТаблицаЗначений - таблица табличного вопроса. // &НаСервере -Процедура ЗаполнитьОтветыТабличныйВопросСоставной(СтрокаДерева,Таблица) - - Для ИндексКолонки = 0 По СтрокаДерева.СоставТабличногоВопроса.Количество()-1 Цикл - +Процедура ЗаполнитьОтветыТабличныйВопросСоставной(СтрокаДерева, Таблица) + + Для ИндексКолонки = 0 По СтрокаДерева.СоставТабличногоВопроса.Количество() - 1 Цикл + Для ИндексСтроки = 0 По Таблица.Количество() - 1 Цикл - + Ответ = Таблица[ИндексСтроки][ИндексКолонки]; Если ЗначениеЗаполнено(Ответ) Тогда - + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; НоваяСтрока.ЭлементарныйВопрос = СтрокаДерева.СоставТабличногоВопроса[ИндексКолонки].ЭлементарныйВопрос; НоваяСтрока.Ответ = Ответ; НоваяСтрока.НомерЯчейки = ИндексСтроки + 1; - + КонецЕсли; КонецЦикла; КонецЦикла; - + КонецПроцедуры // Получает ответы, данные респондентом на табличный вопрос с предопределенными ответами в строках и @@ -814,49 +867,49 @@ // Таблица - ТаблицаЗначений - таблица табличного вопроса. // &НаСервере -Процедура ЗаполнитьОтветыТабличныйВопросОтветыВСтроках(СтрокаДерева,Таблица) - +Процедура ЗаполнитьОтветыТабличныйВопросОтветыВСтроках(СтрокаДерева, Таблица) + ВопросПерваяКолонка = СтрокаДерева.СоставТабличногоВопроса[0].ЭлементарныйВопрос; - ИмяКолонкиБезНомера = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки) + "_Таблица_Колонка_"; - + ИмяКолонкиБезНомера = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки) + "_Таблица_Колонка_"; + Для ИндексСтроки = 0 По Таблица.Количество() - 1 Цикл - - ЕстьХотяБыОдинОтветУказанныйРеспондентом = ЛОЖЬ; - - Для ИндексКолонки = 1 По СтрокаДерева.СоставТабличногоВопроса.Количество()-1 Цикл - - Ответ = Таблица[ИндексСтроки][ИмяКолонкиБезНомера + XMLСтрока(ИндексКолонки+1)]; + + ЕстьХотяБыОдинОтветУказанныйРеспондентом = Ложь; + + Для ИндексКолонки = 1 По СтрокаДерева.СоставТабличногоВопроса.Количество() - 1 Цикл + + Ответ = Таблица[ИндексСтроки][ИмяКолонкиБезНомера + XMLСтрока(ИндексКолонки + 1)]; Если ЗначениеЗаполнено(Ответ) Тогда - + ЕстьХотяБыОдинОтветУказанныйРеспондентом = Истина; - + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; НоваяСтрока.ЭлементарныйВопрос = СтрокаДерева.СоставТабличногоВопроса[ИндексКолонки].ЭлементарныйВопрос; НоваяСтрока.Ответ = Ответ; НоваяСтрока.НомерЯчейки = ИндексСтроки + 1; - + КонецЕсли; - + КонецЦикла; - + Если ЕстьХотяБыОдинОтветУказанныйРеспондентом Тогда - + Ответ = Таблица[ИндексСтроки][ИмяКолонкиБезНомера + "1"]; Если ЗначениеЗаполнено(Ответ) Тогда - + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; НоваяСтрока.ЭлементарныйВопрос = ВопросПерваяКолонка; НоваяСтрока.Ответ = Ответ; НоваяСтрока.НомерЯчейки = ИндексСтроки + 1; - + КонецЕсли; - + КонецЕсли; - + КонецЦикла; - + КонецПроцедуры // Получает ответы, данные респондентом на табличный вопрос с предопределенными ответами в строках и колонках и @@ -867,47 +920,49 @@ // Таблица - ТаблицаЗначений - таблица табличного вопроса. // &НаСервере -Процедура ЗаполнитьОтветыТабличныйВопросОтветыВСтрокахИКолонках(СтрокаДерева,Таблица) - +Процедура ЗаполнитьОтветыТабличныйВопросОтветыВСтрокахИКолонках(СтрокаДерева, Таблица) + ВопросДляСтрок = СтрокаДерева.СоставТабличногоВопроса[0].ЭлементарныйВопрос; ВопросДляКолонок = СтрокаДерева.СоставТабличногоВопроса[1].ЭлементарныйВопрос; ВопросДляЯчеек = СтрокаДерева.СоставТабличногоВопроса[2].ЭлементарныйВопрос; - - ОтветыСтроки = СтрокаДерева.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос",ВопросДляСтрок)); - ОтветыКолонки = СтрокаДерева.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос",ВопросДляКолонок)); - - ИмяКолонкиБезНомера = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки) + "_Таблица_Колонка_"; - + + ОтветыСтроки = СтрокаДерева.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", + ВопросДляСтрок)); + ОтветыКолонки = СтрокаДерева.ПредопределенныеОтветы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", + ВопросДляКолонок)); + + ИмяКолонкиБезНомера = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки) + "_Таблица_Колонка_"; + Для ИндексСтроки = 0 По Таблица.Количество() - 1 Цикл Для ИндексКолонки = 1 По Таблица.Колонки.Количество() - 1 Цикл - - Ответ = Таблица[ИндексСтроки][ИмяКолонкиБезНомера + XMLСтрока(ИндексКолонки+1)]; + + Ответ = Таблица[ИндексСтроки][ИмяКолонкиБезНомера + XMLСтрока(ИндексКолонки + 1)]; Если ЗначениеЗаполнено(Ответ) Тогда - + НомерЯчейки = ИндексКолонки + ИндексСтроки * (Таблица.Колонки.Количество() - 1); - + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; НоваяСтрока.ЭлементарныйВопрос = ВопросДляСтрок; НоваяСтрока.Ответ = ОтветыСтроки[ИндексСтроки].Ответ; НоваяСтрока.НомерЯчейки = НомерЯчейки; - + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; НоваяСтрока.ЭлементарныйВопрос = ВопросДляКолонок; НоваяСтрока.Ответ = ОтветыКолонки[ИндексКолонки - 1].Ответ; НоваяСтрока.НомерЯчейки = НомерЯчейки; - + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; НоваяСтрока.ЭлементарныйВопрос = ВопросДляЯчеек; НоваяСтрока.Ответ = Ответ; НоваяСтрока.НомерЯчейки = НомерЯчейки; - + КонецЕсли; КонецЦикла; КонецЦикла; - + КонецПроцедуры // Получает ответы, данные респондентом на табличный вопрос с предопределенными ответами в колонках и @@ -918,44 +973,44 @@ // Таблица - ТаблицаЗначений - таблица табличного вопроса. // &НаСервере -Процедура ЗаполнитьОтветыТабличныйВопросОтветыВКолонках(СтрокаДерева,Таблица) - +Процедура ЗаполнитьОтветыТабличныйВопросОтветыВКолонках(СтрокаДерева, Таблица) + ВопросДляКолонок = СтрокаДерева.СоставТабличногоВопроса[0].ЭлементарныйВопрос; - ИмяКолонкиБезНомера = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки) + "_Таблица_Колонка_"; - + ИмяКолонкиБезНомера = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки) + "_Таблица_Колонка_"; + Для ИндексКолонки = 1 По Таблица.Колонки.Количество() - 1 Цикл - - ЕстьХотяБыОдинОтветУказанныйРеспондентом = ЛОЖЬ; - + + ЕстьХотяБыОдинОтветУказанныйРеспондентом = Ложь; + Для ИндексСтроки = 0 По Таблица.Количество() - 1 Цикл - + Ответ = Таблица[ИндексСтроки][ИмяКолонкиБезНомера + XMLСтрока(ИндексКолонки + 1)]; Если ЗначениеЗаполнено(Ответ) Тогда - + ЕстьХотяБыОдинОтветУказанныйРеспондентом = Истина; - + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; - НоваяСтрока.ЭлементарныйВопрос = СтрокаДерева.СоставТабличногоВопроса[ИндексСтроки+1].ЭлементарныйВопрос; + НоваяСтрока.ЭлементарныйВопрос = СтрокаДерева.СоставТабличногоВопроса[ИндексСтроки + 1].ЭлементарныйВопрос; НоваяСтрока.Ответ = Ответ; НоваяСтрока.НомерЯчейки = ИндексКолонки; - + КонецЕсли; - + КонецЦикла; - - Если ЕстьХотяБыОдинОтветУказанныйРеспондентом Тогда - + + Если ЕстьХотяБыОдинОтветУказанныйРеспондентом Тогда + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; НоваяСтрока.ЭлементарныйВопрос = ВопросДляКолонок; НоваяСтрока.Ответ = СтрокаДерева.ПредопределенныеОтветы[ИндексКолонки - 1].Ответ; НоваяСтрока.НомерЯчейки = ИндексКолонки; - + КонецЕсли; - + КонецЦикла; - + КонецПроцедуры // Получает ответы, данные респондентом на простой вопрос и @@ -966,14 +1021,82 @@ // &НаСервере Процедура ЗаполнитьОтветПростойВопрос(СтрокаДерева) - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); - - Если СтрокаДерева.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); + + ОтказОтОтвета = Ложь; + Если СтрокаДерева.ИспользоватьОтказОтОтвета Тогда + ОтказОтОтвета = ЭтотОбъект[ИмяВопроса + "_ИспользоватьОтказОтОтвета"]; + КонецЕсли; + + Если СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда + + ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос, ЭтотОбъект); + + Счетчик = 0; + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + + Счетчик = Счетчик + 1; + ИмяРеквизита = ИмяВопроса + "_Реквизит_" + Счетчик; + + Если ЭтотОбъект[ИмяРеквизита] Тогда + + НоваяСтрока = Объект.Состав.Добавить(); + НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; + НоваяСтрока.ЭлементарныйВопрос = СтрокаДерева.ЭлементарныйВопрос; + НоваяСтрока.Ответ = ВариантОтвета.Ответ; + НоваяСтрока.НомерЯчейки = Счетчик; + Если ВариантОтвета.ТребуетОткрытогоОтвета Тогда + НоваяСтрока.ОткрытыйОтвет = ЭтотОбъект[ИмяВопроса + "_Комментарий_" + Счетчик]; + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда + + ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос, ЭтотОбъект); + + Счетчик = 0; + ОтветПолучен = Ложь; + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + + Счетчик = Счетчик + 1; + ИмяРеквизита = ИмяВопроса + "_Реквизит_" + Счетчик; + + Если ЗначениеЗаполнено(ЭтотОбъект[ИмяРеквизита]) Тогда + + ОтветПолучен = Истина; + + НоваяСтрока = Объект.Состав.Добавить(); + НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; + НоваяСтрока.ЭлементарныйВопрос = СтрокаДерева.ЭлементарныйВопрос; + НоваяСтрока.Ответ = ВариантОтвета.Ответ; + НоваяСтрока.НомерЯчейки = Счетчик; + НоваяСтрока.БезОтвета = ОтказОтОтвета; + Если СтрокаДерева.ТребуетсяКомментарий Тогда + НоваяСтрока.ОткрытыйОтвет = ЭтотОбъект[ИмяВопроса + "_Комментарий"]; + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Если Не ОтветПолучен И ОтказОтОтвета Тогда + НоваяСтрока = Объект.Состав.Добавить(); + НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; + НоваяСтрока.ЭлементарныйВопрос = СтрокаДерева.ЭлементарныйВопрос; + НоваяСтрока.БезОтвета = ОтказОтОтвета; + КонецЕсли; + + Иначе + Ответ = ЭтотОбъект[ИмяВопроса]; - Если ЗначениеЗаполнено(Ответ) Тогда - + + Если ЗначениеЗаполнено(Ответ) Или Анкетирование.РазрешенВводНулевогоЗначенияВЧисловоеПоле(СтрокаДерева) + Или ОтказОтОтвета Тогда + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; НоваяСтрока.ЭлементарныйВопрос = СтрокаДерева.ЭлементарныйВопрос; @@ -985,49 +1108,26 @@ НоваяСтрока.ОткрытыйОтвет = ЭтотОбъект[ИмяВопроса + "_Комментарий"]; КонецЕсли; КонецЕсли; - + НоваяСтрока.БезОтвета = ОтказОтОтвета; + КонецЕсли; - - Иначе - - ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос,ЭтотОбъект); - - Счетчик = 0; - Для каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл - - Счетчик = Счетчик + 1; - ИмяРеквизита = ИмяВопроса + "_Реквизит_" + Счетчик; - - Если ЭтотОбъект[ИмяРеквизита] Тогда - - НоваяСтрока = Объект.Состав.Добавить(); - НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; - НоваяСтрока.ЭлементарныйВопрос = СтрокаДерева.ЭлементарныйВопрос; - НоваяСтрока.Ответ = ВариантОтвета.Ответ; - НоваяСтрока.НомерЯчейки = Счетчик; - Если ВариантОтвета.ТребуетОткрытогоОтвета Тогда - НоваяСтрока.ОткрытыйОтвет = ЭтотОбъект[ИмяВопроса + "_Комментарий_" + Счетчик]; - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - + КонецЕсли; - + КонецПроцедуры &НаСервере Процедура ЗаполнитьОтветыКомплексныйВопрос(СтрокаДерева) - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); - - Для каждого СтрокаКомплексногоВопроса Из СтрокаДерева.СоставКомплексногоВопроса Цикл - + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаДерева.КлючСтроки); + + Для Каждого СтрокаКомплексногоВопроса Из СтрокаДерева.СоставКомплексногоВопроса Цикл + ИмяРеквизита = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); - - Если СтрокаКомплексногоВопроса.ЭлементарныйВопрос.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - + + Если СтрокаКомплексногоВопроса.ЭлементарныйВопрос.ТипОтвета + <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; НоваяСтрока.ЭлементарныйВопрос = СтрокаКомплексногоВопроса.ЭлементарныйВопрос; @@ -1036,22 +1136,24 @@ Иначе НоваяСтрока.Ответ = ЭтотОбъект[ИмяРеквизита]; Если СтрокаКомплексногоВопроса.ТребуетсяКомментарий Тогда - НоваяСтрока.ОткрытыйОтвет = ЭтотОбъект[ИмяВопроса + "_Комментарий_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=")]; + НоваяСтрока.ОткрытыйОтвет = ЭтотОбъект[ИмяВопроса + "_Комментарий_" + Формат( + СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=")]; КонецЕсли; - КонецЕсли; - + КонецЕсли; + Иначе - - ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(СтрокаКомплексногоВопроса.ЭлементарныйВопрос,ЭтотОбъект); - + + ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос( + СтрокаКомплексногоВопроса.ЭлементарныйВопрос, ЭтотОбъект); + Счетчик = 0; - Для каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл - + Для Каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл + Счетчик = Счетчик + 1; ИмяТекРеквизита = ИмяРеквизита + "_Реквизит_" + Счетчик; - + Если ЭтотОбъект[ИмяТекРеквизита] Тогда - + НоваяСтрока = Объект.Состав.Добавить(); НоваяСтрока.Вопрос = СтрокаДерева.ВопросШаблона; НоваяСтрока.ЭлементарныйВопрос = СтрокаКомплексногоВопроса.ЭлементарныйВопрос; @@ -1060,21 +1162,20 @@ Если ВариантОтвета.ТребуетОткрытогоОтвета Тогда НоваяСтрока.ОткрытыйОтвет = ЭтотОбъект[ИмяРеквизита + "_Комментарий_" + Счетчик]; КонецЕсли; - + КонецЕсли; - + КонецЦикла; - + КонецЕсли; - + КонецЦикла; - + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// // Прочее -// Отвечает за построение формы заполнения. &НаСервере Процедура ПостроениеФормыСогласноРаздела() @@ -1083,35 +1184,34 @@ Если ТекущиеДанныеДеревоРазделов = Неопределено Тогда Возврат; КонецЕсли; - - Если НЕ Элементы.ГруппаТелоАнкеты.ТолькоПросмотр Тогда + + Если Не Элементы.ГруппаТелоАнкеты.ТолькоПросмотр Тогда ПреобразоватьРезультатыЗаполненияРазделаВТабличнуюЧасть(); КонецЕсли; НомерТекущегоРаздела = Элементы.ДеревоРазделов.ТекущаяСтрока; - Анкетирование.ПостроениеФормыЗаполненияПоРазделу(ЭтотОбъект,ТекущиеДанныеДеревоРазделов); + Анкетирование.ПостроениеФормыЗаполненияПоРазделу(ЭтотОбъект, ТекущиеДанныеДеревоРазделов); УстановитьЗначенияРеквизитовФормыЗаполненияРаздела(); Анкетирование.СформироватьТаблицуПодчиненияВопросов(ЭтотОбъект); УстановитьОбработчикСобытияПриИзмененииДляВопросов(); - + Элементы.ПредыдущийРазделПодвал.Видимость = (ТаблицаВопросовРаздела.Количество() > 0); Элементы.СледующийРазделПодвал.Видимость = (ТаблицаВопросовРаздела.Количество() > 0); - + АнкетированиеКлиентСервер.ПереключитьВидимостьГруппТелаАнкеты(ЭтотОбъект, Истина); - + КонецПроцедуры // Проверяет, даны ли ответы на обязательные вопросы. // // Возвращаемое значение: -// Булево - Истина, в случае если проверка заполнения обязательных ответов закончилась неудачей, -// Ложь, в обратном случае. +// Булево // &НаСервере Функция ПроверитьЗаполнениеАнкеты() - + Запрос = Новый Запрос; - Запрос.Текст = " - |ВЫБРАТЬ + Запрос.Текст = + "ВЫБРАТЬ | СоставОтветов.Вопрос, | СоставОтветов.ЭлементарныйВопрос, | СоставОтветов.НомерЯчейки, @@ -1219,74 +1319,74 @@ | |УПОРЯДОЧИТЬ ПО | ВопросыШаблонаАнкеты.Ссылка"; - - Запрос.УстановитьПараметр("ВнешнийИсточник",Объект.Состав.Выгрузить()); - Запрос.УстановитьПараметр("ШаблонАнкеты",Объект.ШаблонАнкеты); - + + Запрос.УстановитьПараметр("ВнешнийИсточник", Объект.Состав.Выгрузить()); + Запрос.УстановитьПараметр("ШаблонАнкеты", Объект.ШаблонАнкеты); + Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Возврат Ложь; КонецЕсли; - + Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл - ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Не указан ответ на вопрос'") + "- "+ СтрЗаменить(Выборка.Ссылка.ПолныйКод(),"/",".") + " " + Выборка.Формулировка); + ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Не указан ответ на вопрос'") + "- " + + СтрЗаменить(Выборка.Ссылка.ПолныйКод(), "/", ".") + " " + Выборка.Формулировка); КонецЦикла; - + Возврат Истина; - + КонецФункции -// Находит ответ в массиве содержащем строки таблицы значений. -// // Параметры: // Ответ - Характеристика.ВопросыДляАнкетирования - ответ, который ищем. // МассивОтветов - Массив - массив строк таблицы значений. // // Возвращаемое значение: -// Структура - в структуре содержатся номер реквизита и признак необходимости открытого ответа. +// Структура: +// * ПорядковыйНомерРеквизита - Число +// * ТребуетОткрытогоОтвета - Булево // &НаСервереБезКонтекста -Функция НайтиОтветВМассиве(Ответ,МассивОтветов) - - СтруктураВозврата = Новый Структура; - - Для инд = 1 По МассивОтветов.Количество() Цикл - - Если МассивОтветов[инд - 1].Ответ = Ответ Тогда - - СтруктураВозврата.Вставить("ПорядковыйНомерРеквизита",инд); - СтруктураВозврата.Вставить("ТребуетОткрытогоОтвета",МассивОтветов[инд - 1].ТребуетОткрытогоОтвета); - Возврат СтруктураВозврата; +Функция НайтиОтветВМассиве(Ответ, МассивОтветов) + + Результат = Новый Структура; + + Для Индекс = 1 По МассивОтветов.Количество() Цикл + + Если МассивОтветов[Индекс - 1].Ответ = Ответ Тогда + + Результат.Вставить("ПорядковыйНомерРеквизита", Индекс); + Результат.Вставить("ТребуетОткрытогоОтвета", МассивОтветов[Индекс - 1].ТребуетОткрытогоОтвета); + Возврат Результат; КонецЕсли; - + КонецЦикла; - + Возврат Неопределено; - + КонецФункции &НаСервере Процедура УстановитьЗначенияРеквизитовСогласноОпросу(РеквизитыОпрос) - + ВозможностьПредварительногоСохранения = РеквизитыОпрос.ВозможностьПредварительногоСохранения; ШаблонАнкеты = РеквизитыОпрос.ШаблонАнкеты; - Вступление = ?(ПустаяСтрока(РеквизитыОпрос.Вступление), - НСтр("ru = 'Нажмите далее для заполнения анкеты.'"), - РеквизитыОпрос.Вступление); - Заключение = ?(ПустаяСтрока(РеквизитыОпрос.Заключение), - НСтр("ru = 'Спасибо за то, что заполнили анкету.'"), - РеквизитыОпрос.Заключение); - + Вступление = ?(ПустаяСтрока(РеквизитыОпрос.Вступление), + НСтр("ru = 'Нажмите далее для заполнения анкеты.'"), + РеквизитыОпрос.Вступление); + Заключение = ?(ПустаяСтрока(РеквизитыОпрос.Заключение), + НСтр("ru = 'Спасибо за то, что заполнили анкету.'"), + РеквизитыОпрос.Заключение); + КонецПроцедуры -// Получает необходимые значения реквизита согласно выбранному опросу. &НаСервере -Функция ПолучитьЗначенияРеквизитовНазначениеОпроса(Опрос) - +Функция ЗначенияРеквизитовНазначенияОпроса(Опрос) + Запрос = Новый Запрос; - Запрос.Текст = " - |ВЫБРАТЬ + Запрос.Текст = + "ВЫБРАТЬ | НазначениеОпросов.ШаблонАнкеты, | НазначениеОпросов.ТипРеспондентов, | НазначениеОпросов.ВозможностьПредварительногоСохранения, @@ -1304,86 +1404,84 @@ | ПО НазначениеОпросов.ШаблонАнкеты = ШаблоныАнкет.Ссылка |ГДЕ | НазначениеОпросов.Ссылка = &Опрос"; - - Запрос.УстановитьПараметр("Опрос",Опрос); - + + Запрос.УстановитьПараметр("Опрос", Опрос); + Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Возврат Выборка; - + КонецФункции -// Получает необходимые значения реквизита согласно шаблону анкеты. &НаСервереБезКонтекста Функция ЗначенияРеквизитовШаблонаАнкеты(ШаблонАнкеты) - + Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | ШаблоныАнкет.Ссылка КАК ШаблонАнкеты, - | ЛОЖЬ КАК ВозможностьПредварительногоСохранения, - | ШаблоныАнкет.Заголовок, - | ШаблоныАнкет.Вступление, - | ШаблоныАнкет.Заключение - |ИЗ - | Справочник.ШаблоныАнкет КАК ШаблоныАнкет - |ГДЕ - | ШаблоныАнкет.Ссылка = &ШаблонАнкеты"; - + Запрос.Текст = + "ВЫБРАТЬ + | ШаблоныАнкет.Ссылка КАК ШаблонАнкеты, + | ЛОЖЬ КАК ВозможностьПредварительногоСохранения, + | ШаблоныАнкет.Заголовок, + | ШаблоныАнкет.Вступление, + | ШаблоныАнкет.Заключение + |ИЗ + | Справочник.ШаблоныАнкет КАК ШаблоныАнкет + |ГДЕ + | ШаблоныАнкет.Ссылка = &ШаблонАнкеты"; + Запрос.УстановитьПараметр("ШаблонАнкеты", ШаблонАнкеты); - + Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Возврат Выборка; - + КонецФункции -// Устанавливает значения заголовков и надписей. &НаСервере Процедура УстановитьЗаголовкиНадписей(РеквизитыОпрос) - - Заголовок = РеквизитыОпрос.Заголовок; + + Заголовок = ?(Не ПустаяСтрока(Параметры.Заголовок), Параметры.Заголовок, РеквизитыОпрос.Заголовок); Элементы.НадписьВступление.Заголовок = РеквизитыОпрос.Вступление; - Вступление = РеквизитыОпрос.Вступление; - + Вступление = РеквизитыОпрос.Вступление; + КонецПроцедуры -// Управляет доступностью элементов формы. &НаКлиенте Процедура УправлениеДоступностьюПодчиненныеВопросы(УстанавливатьМодифицированность = Истина) - - Для каждого ЭлементКоллекции Из ПодчиненныеВопросы Цикл - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(ЭлементКоллекции.Вопрос); - Для каждого ПодчиненныйВопрос Из ЭлементКоллекции.Подчиненные Цикл - + + Для Каждого ЭлементКоллекции Из ПодчиненныеВопросы Цикл + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(ЭлементКоллекции.Вопрос); + Для Каждого ПодчиненныйВопрос Из ЭлементКоллекции.Подчиненные Цикл + ЭлементПодчиненногоВопроса = Элементы[ПодчиненныйВопрос.ИмяЭлементаПодчиненногоВопроса]; ЭлементПодчиненногоВопроса.ТолькоПросмотр = Не ЭтотОбъект[ИмяВопроса]; Если СтрЧислоВхождений(ПодчиненныйВопрос.ИмяЭлементаПодчиненногоВопроса, "Реквизит") = 0 Тогда + ЗначениеАвтоОтметкаНезаполненного = ЭтотОбъект[ИмяВопроса] И ПодчиненныйВопрос.Обязательный; Попытка - ЭлементПодчиненногоВопроса.АвтоОтметкаНезаполненного = ЭтотОбъект[ИмяВопроса] И ПодчиненныйВопрос.Обязательный; + ЭлементПодчиненногоВопроса.АвтоОтметкаНезаполненного = ЗначениеАвтоОтметкаНезаполненного; Исключение // АПК:280 У флажка и переключателя нет свойства АвтоОтметкаНезаполненного. КонецПопытки; КонецЕсли; КонецЦикла; КонецЦикла; - + Если ВозможностьПредварительногоСохранения И УстанавливатьМодифицированность Тогда Модифицированность = Истина; КонецЕсли; - + ОтключитьОтметкуНезаполненного(); - + КонецПроцедуры -// Устанавливает доступность и видимость реквизитов в зависимости от вида формы. &НаСервере -Процедура ДействияВЗависимостиОтВидаФормы() - - Если Параметры.Свойство("ТолькоФормаЗаполнения") Тогда - +Процедура УстановитьВидимостьДоступностьЭлементовФормы() + + Если Параметры.ТолькоФормаЗаполнения Тогда + ЭтоИнтервью = Объект.РежимАнкетирования = ПредопределенноеЗначение("Перечисление.РежимыАнкетирования.Интервью"); - + Элементы.ГруппаОсновныеРеквизиты.Видимость = ЭтоИнтервью; Элементы.Дата.Доступность = Ложь; Элементы.ФормаКоманднаяПанельПровестиИЗакрыть.Видимость = Ложь; @@ -1394,204 +1492,212 @@ Элементы.ПоказатьВСпискеАнкета.Видимость = Ложь; Элементы.ФормаУстановитьПометкуУдаления.Видимость = Ложь; Элементы.Комментарий.Видимость = Ложь; - + Элементы.РежимАнкетирования.ТолькоПросмотр = ЭтоИнтервью; Элементы.Опрос.ТолькоПросмотр = ЭтоИнтервью; Элементы.ШаблонАнкеты.ТолькоПросмотр = ЭтоИнтервью; - + Если Объект.Ссылка.Пустая() Тогда Объект.Дата = ТекущаяДатаСеанса(); КонецЕсли; - + Если Параметры.ТолькоПросмотр = Истина Тогда - + Элементы.ГруппаТелоАнкеты.ТолькоПросмотр = Истина; - Элементы.ФормаЗаполненияПровестиЗакрыть.Видимость = Ложь; + Элементы.ФормаЗаполненияЗавершитьИЗакрыть.Видимость = Ложь; Элементы.ФормаЗаполненияЗаписать.Видимость = Ложь; - + Иначе - - Элементы.ФормаЗаполненияЗаписать.Видимость = ВозможностьПредварительногоСохранения; - + + Элементы.ФормаЗаполненияЗаписать.Видимость = ВозможностьПредварительногоСохранения; + Элементы.ФормаЗаполненияЗавершитьИЗакрыть.КнопкаПоУмолчанию = Истина; + КонецЕсли; - + Модифицированность = Ложь; - + Иначе - - Элементы.ФормаЗаполненияПровестиЗакрыть.Видимость = Ложь; + + Элементы.ФормаЗаполненияЗавершитьИЗакрыть.Видимость = Ложь; Элементы.ФормаЗаполненияЗаписать.Видимость = Ложь; Элементы.ГруппаТелоАнкеты.ТолькоПросмотр = Истина; Элементы.ГруппаОсновныеРеквизиты.ТолькоПросмотр = Истина; - + КонецЕсли; - + КонецПроцедуры -// Устанавливает обработчик события при изменении для простых и табличных вопросов. &НаСервере Процедура УстановитьОбработчикСобытияПриИзмененииДляВопросов() - + Если Не ВозможностьПредварительногоСохранения Тогда Возврат; КонецЕсли; - - Для каждого СтрокаТаблицы Из ТаблицаВопросовРаздела Цикл - + + Для Каждого СтрокаТаблицы Из ТаблицаВопросовРаздела Цикл + Если СтрокаТаблицы.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.ВопросСУсловием Тогда Продолжить; КонецЕсли; - - ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаТаблицы.КлючСтроки); - + + ИмяВопроса = АнкетированиеКлиентСервер.ИмяВопроса(СтрокаТаблицы.КлючСтроки); + Если СтрокаТаблицы.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Табличный Тогда - Элементы[ИмяВопроса + "_Таблица"].УстановитьДействие("ПриИзменении","Подключаемый_ПриИзмененииВопроса"); + Элементы[ИмяВопроса + "_Таблица"].УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииВопроса"); ИначеЕсли СтрокаТаблицы.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Комплексный Тогда УстановитьОбработчикСобытияПриИзмененииДляКомплексныхВопросов(СтрокаТаблицы, ИмяВопроса); Иначе - Если СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(СтрокаТаблицы.ЭлементарныйВопрос,ЭтотОбъект); - Для инд = 1 По ВариантыОтветовНаВопрос.Количество() Цикл - Элементы[ИмяВопроса + "_Реквизит_" + инд].УстановитьДействие("ПриИзменении","Подключаемый_ПриИзмененииВопроса"); - Если ВариантыОтветовНаВопрос[инд-1].ТребуетОткрытогоОтвета Тогда - Элементы[ИмяВопроса + "_Комментарий_" + инд].УстановитьДействие("ПриИзменении","Подключаемый_ПриИзмененииВопроса"); + Если СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз + Или СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда + ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(СтрокаТаблицы.ЭлементарныйВопрос, + ЭтотОбъект); + Для Индекс = 1 По ВариантыОтветовНаВопрос.Количество() Цикл + Элементы[ИмяВопроса + "_Реквизит_" + Индекс].УстановитьДействие("ПриИзменении", + "Подключаемый_ПриИзмененииВопроса"); + Если ВариантыОтветовНаВопрос[Индекс - 1].ТребуетОткрытогоОтвета Тогда + Элементы[ИмяВопроса + "_Комментарий_" + Индекс].УстановитьДействие("ПриИзменении", + "Подключаемый_ПриИзмененииВопроса"); КонецЕсли; КонецЦикла; Иначе - Элементы[ИмяВопроса].УстановитьДействие("ПриИзменении","Подключаемый_ПриИзмененииВопроса"); - Если СтрокаТаблицы.ТребуетсяКомментарий Тогда - Элементы[ИмяВопроса + "_Комментарий"].УстановитьДействие("ПриИзменении","Подключаемый_ПриИзмененииВопроса"); + Если Не СтрокаТаблицы.ПоказыватьПолосуРегулирования Тогда + Элементы[ИмяВопроса].УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииВопроса"); КонецЕсли; КонецЕсли; + Если СтрокаТаблицы.ТребуетсяКомментарий Тогда + Элементы[ИмяВопроса + "_Комментарий"].УстановитьДействие("ПриИзменении", + "Подключаемый_ПриИзмененииВопроса"); + Элементы[ИмяВопроса + "_Комментарий"].УстановитьДействие("НачалоВыбора", + "Подключаемый_НачалоВыбораКомментарий"); + КонецЕсли; + Если СтрокаТаблицы.ИспользоватьОтказОтОтвета + И СтрокаТаблицы.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.Булево Тогда + Элементы[ИмяВопроса + "_ИспользоватьОтказОтОтвета"].УстановитьДействие("ПриИзменении", + "Подключаемый_ПриИзмененииФлагаНеОтвечатьНаВопрос"); + КонецЕсли; КонецЕсли; - + КонецЦикла; - + КонецПроцедуры -// Устанавливает обработчик события при изменении для комплексных вопросов. &НаСервере Процедура УстановитьОбработчикСобытияПриИзмененииДляКомплексныхВопросов(СтрокаТаблицы, ИмяВопроса) - - Для каждого СтрокаКомплексногоВопроса Из СтрокаТаблицы.СоставКомплексногоВопроса Цикл - - НайденныеСтроки = ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос",СтрокаКомплексногоВопроса.ЭлементарныйВопрос)); + + Для Каждого СтрокаКомплексногоВопроса Из СтрокаТаблицы.СоставКомплексногоВопроса Цикл + + НайденныеСтроки = ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос", + СтрокаКомплексногоВопроса.ЭлементарныйВопрос)); Если НайденныеСтроки.Количество() > 0 Тогда РеквизитыЭлементарногоВопроса = НайденныеСтроки[0]; Иначе Продолжить; - КонецЕсли; - + КонецЕсли; + Если РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда - ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос(СтрокаКомплексногоВопроса.ЭлементарныйВопрос,ЭтотОбъект); - Для инд = 1 По ВариантыОтветовНаВопрос.Количество() Цикл - ИмяРеквизитаВопроса = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Реквизит_" + инд; - Элементы[ИмяРеквизитаВопроса].УстановитьДействие("ПриИзменении","Подключаемый_ПриИзмененииВопроса"); - Если ВариантыОтветовНаВопрос[инд-1].ТребуетОткрытогоОтвета Тогда - ИмяРеквизитаКомментария = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + "_Комментарий_" + инд; - Элементы[ИмяРеквизитаКомментария].УстановитьДействие("ПриИзменении","Подключаемый_ПриИзмененииВопроса"); + ВариантыОтветовНаВопрос = Анкетирование.ВариантыОтветовНаВопрос( + СтрокаКомплексногоВопроса.ЭлементарныйВопрос, ЭтотОбъект); + Для Индекс = 1 По ВариантыОтветовНаВопрос.Количество() Цикл + ИмяРеквизитаВопроса = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ=") + + "_Реквизит_" + Индекс; + Элементы[ИмяРеквизитаВопроса].УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииВопроса"); + Если ВариантыОтветовНаВопрос[Индекс - 1].ТребуетОткрытогоОтвета Тогда + ИмяРеквизитаКомментария = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, + "ЧГ=") + "_Комментарий_" + Индекс; + Элементы[ИмяРеквизитаКомментария].УстановитьДействие("ПриИзменении", + "Подключаемый_ПриИзмененииВопроса"); КонецЕсли; КонецЦикла; Иначе ИмяРеквизитаВопроса = ИмяВопроса + "_Ответ_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); - Элементы[ИмяРеквизитаВопроса].УстановитьДействие("ПриИзменении","Подключаемый_ПриИзмененииВопроса"); + Элементы[ИмяРеквизитаВопроса].УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииВопроса"); Если СтрокаКомплексногоВопроса.ТребуетсяКомментарий Тогда ИмяРеквизитаКомментария = ИмяВопроса + "_Комментарий_" + Формат(СтрокаКомплексногоВопроса.НомерСтроки, "ЧГ="); - Элементы[ИмяРеквизитаКомментария].УстановитьДействие("ПриИзменении","Подключаемый_ПриИзмененииВопроса"); + Элементы[ИмяРеквизитаКомментария].УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииВопроса"); КонецЕсли; КонецЕсли; - + КонецЦикла; - + КонецПроцедуры // Начинает процесс построения формы заполнения согласно разделам. &НаКлиенте Процедура ВыполнитьПостроениеФормыЗаполнения() - + АнкетированиеКлиентСервер.ПереключитьВидимостьГруппТелаАнкеты(ЭтотОбъект, Ложь); - ПодключитьОбработчикОжидания("ОкончаниеПостроенияФормыЗаполнения",0.1,Истина); - + ПодключитьОбработчикОжидания("ОкончаниеПостроенияФормыЗаполнения", 0.1, Истина); + КонецПроцедуры -// Заканчивает формирование формы заполнения анкеты. &НаКлиенте Процедура ОкончаниеПостроенияФормыЗаполнения() - + ПостроениеФормыСогласноРаздела(); - УправлениеДоступностьюПодчиненныеВопросы(ПредыдущийРазделБезВопросов = Ложь - И Не ЭтоСеансОбычногоПользователя - И Не ТолькоПросмотр); - УправлениеДоступностьюКнопкиНавигацияРазделов(); - + УправлениеДоступностьюПодчиненныеВопросы(ПредыдущийРазделБезВопросов = Ложь И Не ЭтоСеансОбычногоПользователя + И Не ТолькоПросмотр); + УстановитьДоступностьНавигацииРазделов(); + ВыделитьВопросыНаКоторыеДаныОтветы(); + ЭлементДляПозиционирования = Элементы.Найти(ИмяЭлементаДляПозиционирования); Если ЭлементДляПозиционирования <> Неопределено Тогда ТекущийЭлемент = ЭлементДляПозиционирования; КонецЕсли; - + КонецПроцедуры -// Изменяет видимость дерева разделов. &НаКлиенте Процедура ИзменитьВидимостьДеревоРазделов() - Элементы.ГруппаДеревоРазделов.Видимость = НЕ Элементы.ГруппаДеревоРазделов.Видимость; - - ЗаголовокКомандаРазделы = ?(Элементы.ГруппаДеревоРазделов.Видимость,НСтр("ru = 'Скрыть разделы'"),НСтр("ru = 'Показать разделы'")); + Элементы.ГруппаДеревоРазделов.Видимость = Не Элементы.ГруппаДеревоРазделов.Видимость; + ЗаголовокКомандаРазделы = ?(Элементы.ГруппаДеревоРазделов.Видимость, НСтр("ru = 'Скрыть разделы'"), + НСтр("ru = 'Показать разделы'")); Элементы.СкрытьПоказатьДеревоРазделовДокумент.Заголовок = ЗаголовокКомандаРазделы; КонецПроцедуры -// Отвечает за доступность кнопок навигации по разделам. &НаКлиенте -Процедура УправлениеДоступностьюКнопкиНавигацияРазделов() +Процедура УстановитьДоступностьНавигацииРазделов() ДоступностьПредыдущийРаздел = (Элементы.ДеревоРазделов.ТекущаяСтрока > 0); - ДоступностьСледующийРаздел = (ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока + 1) <> Неопределено); - - Элементы.ПредыдущийРазделПодвал.Доступность = ДоступностьПредыдущийРаздел; + ДоступностьСледующийРаздел = (ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока + 1) + <> Неопределено); + + Элементы.ПредыдущийРазделПодвал.Доступность = ДоступностьПредыдущийРаздел; Элементы.ПредыдущийРаздел.Доступность = ДоступностьПредыдущийРаздел; - Элементы.СледующийРазделПодвал.Доступность = ДоступностьСледующийРаздел; - Элементы.СледующийРаздел.Доступность = ДоступностьСледующийРаздел; + Элементы.СледующийРазделПодвал.Доступность = ДоступностьСледующийРаздел; + Элементы.СледующийРаздел.Доступность = ДоступностьСледующийРаздел; КонецПроцедуры -// Изменяет текущий раздел &НаКлиенте Процедура ИзменитьРаздел(Направление) - - Элементы.ДеревоРазделов.ТекущаяСтрока = НомерТекущегоРаздела + ?(Направление = "Вперед",1,-1); - НомерТекущегоРаздела = НомерТекущегоРаздела + ?(Направление = "Вперед",1,-1); + + Элементы.ДеревоРазделов.ТекущаяСтрока = НомерТекущегоРаздела + ?(Направление = "Вперед", 1, -1); + НомерТекущегоРаздела = НомерТекущегоРаздела + ?(Направление = "Вперед", 1, -1); ТекущиеДанныеДеревоРазделов = ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока); - Если ТекущиеДанныеДеревоРазделов.КоличествоВопросов = 0 И ТекущиеДанныеДеревоРазделов.ТипСтроки = "Раздел" Тогда + Если ТекущиеДанныеДеревоРазделов.КоличествоВопросов = 0 И ТекущиеДанныеДеревоРазделов.ТипСтроки = "Раздел" Тогда ИзменитьРаздел(Направление); КонецЕсли; ВыполнитьПостроениеФормыЗаполнения(); - + КонецПроцедуры &НаКлиенте Процедура ВопросОПринятииАнкетыПослеЗавершения(РезультатВопроса, ДополнительныеПараметры) Экспорт - + Если РезультатВопроса = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; - + Отказ = ОкончаниеРедактированиеФормыЗаполнения(РежимЗаписиДокумента.Проведение); - - Если НЕ Отказ Тогда - - ПоказатьОповещениеПользователя(НСтр("ru = 'Изменение'"), - , - Строка(Объект.Ссылка), - БиблиотекаКартинок.Информация32); - - Оповестить("Проведение_Анкета",Новый Структура,Объект.Ссылка); + Если Не Отказ Тогда + ПоказатьОповещениеПользователя(НСтр("ru = 'Изменение'"),, Строка(Объект.Ссылка), БиблиотекаКартинок.Информация32); + Оповестить("Проведение_Анкета", Новый Структура, Объект.Ссылка); Модифицированность = Ложь; Закрыть(); - КонецЕсли; - + КонецПроцедуры // Параметры: @@ -1602,34 +1708,41 @@ Процедура РедактированиеМногострочногоТекстаПриОкончании(ИзмененныйТекст, ДополнительныеПараметры) Экспорт Элемент = ДополнительныеПараметры.Элемент; - + Если ТипЗнч(Элемент.Родитель) = Тип("ГруппаФормы") Тогда Если ЭтотОбъект[Элемент.Имя] <> ИзмененныйТекст Тогда ЭтотОбъект[Элемент.Имя] = ИзмененныйТекст; Модифицированность = Истина; КонецЕсли; Иначе - + НайденнаяСтрока = ЭтотОбъект[Элемент.Родитель.Имя].НайтиПоИдентификатору(Элемент.Родитель.ТекущаяСтрока); ИндексСтроки = ЭтотОбъект[Элемент.Родитель.Имя].Индекс(НайденнаяСтрока); - + Если ЭтотОбъект[Элемент.Родитель.Имя][ИндексСтроки][Элемент.Имя] <> ИзмененныйТекст Тогда ЭтотОбъект[Элемент.Родитель.Имя][ИндексСтроки][Элемент.Имя] = ИзмененныйТекст; Модифицированность = Истина; КонецЕсли; - + КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ВыделитьВопросыНаКоторыеДаныОтветы() + + АнкетированиеКлиент.ВыделитьВопросыНаКоторыеДаныОтветы(ЭтотОбъект); + +КонецПроцедуры + &НаКлиентеНаСервереБезКонтекста Процедура ИзменитьВидимостьЭлементовФормы(Форма) - + ЭтоИнтервью = Форма.Объект.РежимАнкетирования = ПредопределенноеЗначение("Перечисление.РежимыАнкетирования.Интервью"); - Форма.Элементы.Опрос.Видимость = НЕ ЭтоИнтервью; + Форма.Элементы.Опрос.Видимость = Не ЭтоИнтервью; Форма.Элементы.ШаблонАнкеты.Видимость = ЭтоИнтервью; Форма.Элементы.Интервьюер.Видимость = ЭтоИнтервью; - + КонецПроцедуры // СтандартныеПодсистемы.ПодключаемыеКоманды @@ -1655,4 +1768,4 @@ // Конец СтандартныеПодсистемы.ПодключаемыеКоманды -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Documents/Анкета/Forms/ФормаСписка/Form.form b/SSL/src/Documents/Анкета/Forms/ФормаСписка/Form.form index d50238a08..a6bca566f 100644 --- a/SSL/src/Documents/Анкета/Forms/ФормаСписка/Form.form +++ b/SSL/src/Documents/Анкета/Forms/ФормаСписка/Form.form @@ -48,7 +48,6 @@ true false None - Copy Create Номер @@ -499,7 +498,6 @@ OnCreateAtServer ПриСозданииНаСервере - Copy Create DontBlock true diff --git a/SSL/src/Documents/Анкета/ManagerModule.bsl b/SSL/src/Documents/Анкета/ManagerModule.bsl index becc9ad21..f3d11e1f3 100644 --- a/SSL/src/Documents/Анкета/ManagerModule.bsl +++ b/SSL/src/Documents/Анкета/ManagerModule.bsl @@ -83,7 +83,7 @@ ОбъектовОбработано = ОбъектовОбработано + 1; Исключение - // Если не удалось обработать анкету, повторяем попытку снова. + ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -121,7 +121,6 @@ НачатьТранзакцию(); Попытка - // Блокируем объект от изменения другими сеансами. Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("Документ.Анкета"); ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); @@ -129,20 +128,14 @@ ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект(); - // Если объект ранее был удален или обработан другими сеансами, пропускаем его. - Если ДокументОбъект = Неопределено Тогда - ОтменитьТранзакцию(); - Возврат; - КонецЕсли; Если ДокументОбъект.РежимАнкетирования <> Перечисления.РежимыАнкетирования.ПустаяСсылка() Тогда - ОтменитьТранзакцию(); + ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка); + ЗафиксироватьТранзакцию(); Возврат; КонецЕсли; - // Обработка объекта. ДокументОбъект.РежимАнкетирования = Перечисления.РежимыАнкетирования.Анкета; - // Запись обработанного объекта. ОбновлениеИнформационнойБазы.ЗаписатьДанные(ДокументОбъект); ЗафиксироватьТранзакцию(); diff --git a/SSL/src/Documents/Анкета/ObjectModule.bsl b/SSL/src/Documents/Анкета/ObjectModule.bsl index 02df52e92..cfbcb5c82 100644 --- a/SSL/src/Documents/Анкета/ObjectModule.bsl +++ b/SSL/src/Documents/Анкета/ObjectModule.bsl @@ -33,7 +33,8 @@ | ТаблицаСостав.НомерЯчейки, | ТаблицаСостав.Ответ, | ТаблицаСостав.ОткрытыйОтвет, - | ТаблицаСостав.НомерСтроки + | ТаблицаСостав.НомерСтроки, + | ТаблицаСостав.БезОтвета КАК БезОтвета |ПОМЕСТИТЬ Состав |ИЗ | &ТаблицаСостав КАК ТаблицаСостав @@ -44,12 +45,16 @@ | Состав.Вопрос, | Состав.ЭлементарныйВопрос, | Состав.НомерЯчейки, - | Состав.Ответ, + | ВЫБОР + | КОГДА НЕ Состав.БезОтвета + | ТОГДА Состав.Ответ + | КОНЕЦ КАК Ответ, | Состав.ОткрытыйОтвет, | ИСТИНА КАК Активность, | &Ссылка КАК Регистратор, | &Ссылка КАК Анкета, - | Состав.НомерСтроки КАК НомерСтроки + | Состав.НомерСтроки КАК НомерСтроки, + | Состав.БезОтвета КАК БезОтвета |ИЗ | Состав КАК Состав"; diff --git a/SSL/src/Documents/Анкета/Анкета.mdo b/SSL/src/Documents/Анкета/Анкета.mdo index 8b397f555..484606029 100644 --- a/SSL/src/Documents/Анкета/Анкета.mdo +++ b/SSL/src/Documents/Анкета/Анкета.mdo @@ -135,6 +135,7 @@ + Index Use Use @@ -385,5 +386,19 @@ Use Use + + БезОтвета + + ru + Без ответа + + + Boolean + + + + Use + Use + diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl index eb851eee4..c88f2a3fb 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl @@ -232,7 +232,7 @@ СвойстваВыполнитьОтложеннуюИнициализацию(); МодульУправлениеСвойствамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеСвойствамиКлиент"); МодульУправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); - КонецЕсли;; + КонецЕсли; // Конец СтандартныеПодсистемы.Свойства КонецПроцедуры diff --git a/SSL/src/Documents/НазначениеОпросов/НазначениеОпросов.mdo b/SSL/src/Documents/НазначениеОпросов/НазначениеОпросов.mdo index da666cac1..29fdb7e1a 100644 --- a/SSL/src/Documents/НазначениеОпросов/НазначениеОпросов.mdo +++ b/SSL/src/Documents/НазначениеОпросов/НазначениеОпросов.mdo @@ -210,7 +210,7 @@ String - 80 + 250 @@ -220,7 +220,7 @@ ShowError - + Use Use diff --git a/SSL/src/Documents/СообщениеSMS/СообщениеSMS.mdo b/SSL/src/Documents/СообщениеSMS/СообщениеSMS.mdo index 3863a183a..b52987c52 100644 --- a/SSL/src/Documents/СообщениеSMS/СообщениеSMS.mdo +++ b/SSL/src/Documents/СообщениеSMS/СообщениеSMS.mdo @@ -526,7 +526,7 @@ String - 20 + 50 diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Form.form b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Form.form index 64bb24240..6aa9d1769 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Form.form +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Form.form @@ -273,20 +273,98 @@ Auto - - Тема - 29 + + ГруппаТема + 321 + + Тема + 29 + true + true + + true + + + Объект.Тема + + + ТемаExtendedTooltip + 249 + Label + true + true + + Left + + + + ТемаКонтекстноеМеню + 30 + true + + InputField + Enter + true + Left + true + + 40 + true + true + true + Normal + + + + ВажностьДекорация + 323 + + <key>ru</key> + <value>Важность</value> + + true + true + + true + + + ВажностьДекорацияРасширеннаяПодсказка + 325 + Label + true + true + + Left + + + + ВажностьДекорацияКонтекстноеМеню + 324 + true + + 3 + true + 1 + true + + + CommonPicture.ВажностьНеЗадана + + AsFileRef + + true true true - - Объект.Тема - + + <key>ru</key> + <value>Группа тема</value> + - ТемаExtendedTooltip - 249 + ГруппаТемаРасширеннаяПодсказка + 322 Label true true @@ -294,22 +372,14 @@ Left - - ТемаКонтекстноеМеню - 30 - true - - InputField - Enter - true - Left - true - - 40 - true - true - true - Normal + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto @@ -1332,43 +1402,6 @@ ГруппаВажностьНомерОтправлено 187 - - Важность - 167 - true - true - - true - - - Объект.Важность - - Left - - ВажностьExtendedTooltip - 260 - Label - true - true - - Left - - - - ВажностьКонтекстноеМеню - 168 - true - - LabelField - Enter - true - Left - true - - true - true - - Номер 219 diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Help/ru.html b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Help/ru.html index 8f5fdce3b..60eb1d7ba 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Help/ru.html +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Help/ru.html @@ -22,7 +22,7 @@
                • Письмо - тело письма. Располагается на специальной вкладке.
                • -
                • Список вложений - приложенные к письму файлы. Файлы вложений можно открыть или сохранить на диске с помощью команд контекстного меню списка вложений. +
                • Список вложений - приложенные к письму файлы. Файлы вложений можно открыть или сохранить на компьютер с помощью команд контекстного меню списка вложений.
                • Важность - признак необходимости акцентировать внимание на данном взаимодействии, или наоборот, признак несущественности. Может принимать значения Низкая, Обычная, Высокая. Проставляется отправителем письма.
                • @@ -40,7 +40,7 @@

                  Заполните необходимые поля:

                  • Предмет - то, чему посвящено взаимодействие, например претензии клиента. Если предмет взаимодействия не определен, то в качестве предмета выступает текущий документ (т.е. такой документ начинает цепочку взаимодействий). При выполнении команды Взаимодействия из документа предметом взаимодействия во вновь созданном документе будет предмет, указанный в исходном документе, при этом основные поля будут также скопированы.
                    • Для заполнения поля выберите из списка тип данных, затем из соответствующего списка выберите конкретный документ.
                  • -
                  • Ответственный - выберите ответственного за данное взаимодействие из списка пользователей. По умолчанию программа указывает для входящих писем ответственного учетной записи. +
                  • Ответственный - выберите ответственного за данное взаимодействие из списка пользователей. По умолчанию для входящих писем указывается ответственный за почту.
                  • Рассмотрено - признак того, что данное взаимодействие рассмотрено и не требует дальнейшего внимания. С рассмотренных документов программа снимает выделение в списке взаимодействий. При соответствующих настройках после установки флажка отправителю будет отправлено уведомление о прочтении.
                  • @@ -115,7 +115,7 @@
                  •  Сохранить как - сохранить файл в папку на компьютере. Выберите папку на компьютере, нажмите Сохранить. Программа выводит сообщение об успешном сохранении файла.
                  • Свойства - просмотр карточки присоединенного файла.

                Сохранение входящего письма в папку на компьютере

                -
                • Выполните команду Еще - Сохранить письмо на диск. +
                  • Выполните команду Еще - Сохранить письмо на компьютер.
                  • Укажите путь на компьютере. Письмо сохраняется в формате EML.

                  См. также:

                  • diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl index bb9f79b93..56ed524b2 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl @@ -24,10 +24,13 @@ Возврат; КонецЕсли; + Объект.ТекстHTML = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыXML(Объект.ТекстHTML); + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); Взаимодействия.УстановитьЗаголовокФормыЭлектронногоПисьма(ЭтотОбъект); ЗапрещенныеРасширения = РаботаСФайламиСлужебный.СписокЗапрещенныхРасширений(); + ОтобразитьВажность(); // Заполним список выбора для поля РассмотретьПосле. Взаимодействия.ЗаполнитьСписокВыбораДляРассмотретьПосле(Элементы.РассмотретьПосле.СписокВыбора); @@ -82,6 +85,8 @@ ВключитьНебезопасноеСодержимое = Ложь; + Объект.ТекстHTML = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыXML(Объект.ТекстHTML); + Взаимодействия.УстановитьРеквизитыФормыВзаимодействияПоДаннымРегистра(ЭтотОбъект); Вложения.Очистить(); @@ -643,6 +648,27 @@ КонецПроцедуры +&НаСервере +Процедура ОтобразитьВажность() + + Элементы.ВажностьДекорация.Видимость = Истина; + + Если Объект.Важность = Перечисления.ВариантыВажностиВзаимодействия.Высокая Тогда + Элементы.ВажностьДекорация.Картинка = БиблиотекаКартинок.ВажностьВысокая; + Элементы.ВажностьДекорация.Подсказка = НСтр("ru = 'Высокая важность'"); + + ИначеЕсли Объект.Важность = Перечисления.ВариантыВажностиВзаимодействия.Низкая Тогда + Элементы.ВажностьДекорация.Картинка = БиблиотекаКартинок.ВажностьНизкая; + Элементы.ВажностьДекорация.Подсказка = НСтр("ru = 'Низкая важность'"); + + Иначе + Элементы.ВажностьДекорация.Картинка = БиблиотекаКартинок.ВажностьНеЗадана; + Элементы.ВажностьДекорация.Подсказка = НСтр("ru = 'Обычная важность'"); + Элементы.ВажностьДекорация.Видимость = Ложь; + КонецЕсли; + +КонецПроцедуры + &НаСервере Процедура ОбработатьНеобходимостьУведомленияОПрочтении() diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ЭлектронноеПисьмоВходящее.mdo b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ЭлектронноеПисьмоВходящее.mdo index 960169cc9..0901db3aa 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ЭлектронноеПисьмоВходящее.mdo +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ЭлектронноеПисьмоВходящее.mdo @@ -545,14 +545,14 @@ УчетнаяЗапись ru - Учетная запись + Почта CatalogRef.УчетныеЗаписиЭлектроннойПочты ru - Учетная запись электронной почты, на которую было получено письмо + Электронная почта, на которую было получено письмо diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Form.form b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Form.form index 5b5307252..f1d2ff3e7 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Form.form +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Form.form @@ -1098,21 +1098,242 @@ Auto - - Тема - 29 + + ГруппаТема + 484 + + Тема + 29 + true + true + + true + + + Объект.Тема + + None + + ТемаExtendedTooltip + 327 + Label + true + true + + Left + + + + ТемаКонтекстноеМеню + 30 + true + + InputField + Enter + true + Left + true + + 40 + true + true + true + true + Normal + + ru + Тема + + + + + ВажностьДекорация + 496 + + <key>ru</key> + <value>Важность</value> + + true + + true + + + ВажностьДекорацияРасширеннаяПодсказка + 498 + Label + true + true + + Left + + + + ВажностьДекорацияКонтекстноеМеню + 497 + true + + 3 + true + 1 + true + + + CommonPicture.ВажностьНеЗадана + + AsFileRef + + + + КоманднаяПанельТема + 486 + + ГруппаВажность + 488 + + ВажностьВысокая + 490 + true + true + + true + + + ВажностьВысокаяРасширеннаяПодсказка + 491 + Label + true + true + + Left + + + Form.Command.ВажностьВысокая + Normal + Auto + true + true + UserCmds + Auto + + + ВажностьОбычная + 492 + true + true + + true + + + ВажностьОбычнаяРасширеннаяПодсказка + 493 + Label + true + true + + Left + + + Form.Command.ВажностьОбычная + Normal + Auto + true + true + UserCmds + Auto + + + ВажностьНизкая + 494 + true + true + + true + + + ВажностьНизкаяРасширеннаяПодсказка + 495 + Label + true + true + + Left + + + Form.Command.ВажностьНизкая + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Важность</value> + + true + + ГруппаВажностьРасширеннаяПодсказка + 489 + Label + true + true + + Left + + + Popup + + + CommonPicture.ВажностьНеЗадана + + Picture + Normal + + + true + true + + true + + + <key>ru</key> + <value>Командная панель тема</value> + + 5 + false + + КоманднаяПанельТемаРасширеннаяПодсказка + 487 + Label + true + true + + Left + + + CommandBar + + Left + + true true true - - Объект.Тема - - None + + <key>ru</key> + <value>Группа тема</value> + - ТемаExtendedTooltip - 327 + ГруппаТемаРасширеннаяПодсказка + 485 Label true true @@ -1120,27 +1341,14 @@ Left - - ТемаКонтекстноеМеню - 30 - true - - InputField - Enter - true - Left - true - - 40 - true - true - true - true - Normal - - ru - Тема - + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto @@ -2706,6 +2914,7 @@ ru Команды вложений + false КомандыВложенийРасширеннаяПодсказка 451 @@ -2805,6 +3014,7 @@ true 32 + true true false true @@ -2855,7 +3065,7 @@ ПредставлениеОтправителяОбработкаВыбора 32 - true + 36 true true true @@ -2952,49 +3162,6 @@ Normal - - Важность - 264 - true - true - - true - - - Объект.Важность - - Top - - ВажностьExtendedTooltip - 320 - Label - true - true - - Left - - - - ВажностьКонтекстноеМеню - 265 - true - - InputField - Enter - true - Left - true - - 17 - true - true - false - true - true - true - Normal - - ГруппаДатаОтправкиАктуальность 368 @@ -4426,6 +4593,81 @@ Auto Auto + + ВажностьВысокая + + <key>ru</key> + <value>Высокая важность</value> + + 15 + + ru + Важность высокая + + + true + + + CommonPicture.ВажностьВысокая + + + + ВажностьВысокая + + + DontUse + Auto + + + ВажностьНизкая + + <key>ru</key> + <value>Низкая важность</value> + + 16 + + ru + Важность низкая + + + true + + + CommonPicture.ВажностьНизкая + + + + ВажностьНизкая + + + DontUse + Auto + + + ВажностьОбычная + + <key>ru</key> + <value>Обычная важность</value> + + 17 + + ru + Важность обычная + + + true + + + CommonPicture.ВажностьНеЗадана + + + + ВажностьОбычная + + + DontUse + Auto + Отправитель diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Help/ru.html b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Help/ru.html index 1cea96f9f..a0041dfb4 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Help/ru.html +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Help/ru.html @@ -18,12 +18,12 @@

                    Какие статусы присваиваются исходящим письмам?

                    Как вставить в письмо ссылку на объект информационной базы?

                    Как сохранить письмо на компьютер?

                    -

                    Учетная запись в письме по умолчанию

                    +

                    Почта в письме по умолчанию

                    • В поле От (электронный адрес отправителя) программой автоматически проставляется: -
                      • Учетная запись письма-основания, если данное письмо создается на основании другого письма. Например, как ответ на входящее письмо; +
                        • Почта письма-основания, если данное письмо создается на основании другого письма. Например, как ответ на входящее письмо;
                        • -
                        • Первая из доступных пользовательских учетных записей, если письмо создается не на основании другого письма.
                      • -
                      •  Учетную запись, с которой предполагается отправка письма, можно изменить. Для того чтобы заполнить адрес отправителя, выберите учетную запись электронной почты из выпадающего списка.

                      Адресаты письма

                      +
                    • Первая из доступных настроек почты, если письмо создается не на основании другого письма.
                  • +
                  • Почту, с которой предполагается отправка письма, можно изменить. Для того чтобы заполнить адрес отправителя, выберите учетную запись электронной почты из выпадающего списка.

                  Адресаты письма

                  • Адресаты письма могут быть указаны в трех списках:
                    • Кому - основные адресаты письма, участвующие в переписке.
                    • @@ -152,7 +152,7 @@
                    • В зависимости от статуса письмо помещается в ту или иную папку. Для размещения писем в папки также можно настроить правила обработки писем.

                    Вставка в письмо ссылок на объекты информационной базы

                    • С помощью соответствующей команды меню Еще можно Вставить внешнюю ссылку на объект информационной базы. Адрес, по которому информационная база доступна внешнему пользователю, заполняется автоматически. Для получения внутренней ссылки на объект откройте нужный объект, нажмите Ctrl+F11 и вставьте ссылку в соответствующее поле. Нажмите Вставить, в письме будет проставлена необходимая ссылка.

                    Сохранение письма на компьютер

                    • -
                      Выполните команду меню Еще - Сохранить письмо на диск.
                      +
                      Выполните команду меню Еще - Сохранить письмо на компьютер.
                    • Укажите путь для сохранения файла на компьютере. Письмо сохраняется в формате EML.

                    См. также:

                    diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl index 09470d7c9..62d597e47 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl @@ -22,6 +22,8 @@ ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); + Объект.ТекстHTML = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыXML(Объект.ТекстHTML); + Если Объект.Ссылка.Пустая() Тогда Рассмотрено = Истина; ПриСозданииИПриЧтенииНаСервере(); @@ -54,7 +56,7 @@ МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); КонецЕсли; - // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды СостояниеОтправкиПисем = СостояниеОтправкиПисем(); Элементы.ПредупреждениеОНеотправленныхПисьмах.Видимость = СостояниеОтправкиПисем.ОтправкаПриостановлена; @@ -178,6 +180,8 @@ Взаимодействия.УстановитьРеквизитыФормыВзаимодействияПоДаннымРегистра(ЭтотОбъект); ПриСозданииИПриЧтенииНаСервере(); + Объект.ТекстHTML = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыXML(Объект.ТекстHTML); + // СтандартныеПодсистемы.Свойства Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда МодульУправлениеСвойствами = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствами"); @@ -975,6 +979,42 @@ КонецПроцедуры +&НаКлиенте +Процедура ВажностьВысокая(Команда) + + Объект.Важность = ПредопределенноеЗначение("Перечисление.ВариантыВажностиВзаимодействия.Высокая"); + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьВысокая; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Высокая важность'"); + Элементы.ВажностьДекорация.Картинка = БиблиотекаКартинок.ВажностьВысокая; + Элементы.ВажностьДекорация.Подсказка = НСтр("ru = 'Высокая важность'"); + Модифицированность = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьОбычная(Команда) + + Объект.Важность = ПредопределенноеЗначение("Перечисление.ВариантыВажностиВзаимодействия.Обычная"); + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНеЗадана; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Обычная важность'"); + Элементы.ВажностьДекорация.Картинка = БиблиотекаКартинок.ВажностьНеЗадана; + Элементы.ВажностьДекорация.Подсказка = НСтр("ru = 'Обычная важность'"); + Модифицированность = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура ВажностьНизкая(Команда) + + Объект.Важность = ПредопределенноеЗначение("Перечисление.ВариантыВажностиВзаимодействия.Низкая"); + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНизкая; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Низкая важность'"); + Элементы.ВажностьДекорация.Картинка = БиблиотекаКартинок.ВажностьНизкая; + Элементы.ВажностьДекорация.Подсказка = НСтр("ru = 'Низкая важность'"); + Модифицированность = Истина; + +КонецПроцедуры + // СтандартныеПодсистемы.Свойства &НаКлиенте @@ -1139,6 +1179,30 @@ КонецФункции +&НаСервере +Процедура ОтобразитьВажность() + + Если Объект.Важность = Перечисления.ВариантыВажностиВзаимодействия.Высокая Тогда + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьВысокая; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Высокая важность'"); + Элементы.ВажностьДекорация.Картинка = БиблиотекаКартинок.ВажностьВысокая; + Элементы.ВажностьДекорация.Подсказка = НСтр("ru = 'Высокая важность'"); + + ИначеЕсли Объект.Важность = Перечисления.ВариантыВажностиВзаимодействия.Низкая Тогда + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНизкая; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Низкая важность'"); + Элементы.ВажностьДекорация.Картинка = БиблиотекаКартинок.ВажностьНизкая; + Элементы.ВажностьДекорация.Подсказка = НСтр("ru = 'Низкая важность'"); + + Иначе + Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНеЗадана; + Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Обычная важность'"); + Элементы.ВажностьДекорация.Картинка = БиблиотекаКартинок.ВажностьНеЗадана; + Элементы.ВажностьДекорация.Подсказка = НСтр("ru = 'Обычная важность'"); + КонецЕсли; + +КонецПроцедуры + ///////////////////////////////////////////////////////////////////////////////// // Управление доступностью элементов формы. @@ -1187,6 +1251,8 @@ Элементы.СписокПолучателейВариантОтправки.ТолькоПросмотр = Истина; Элементы.СписокПолучателейПредставление.РедактированиеТекста = Ложь; Элементы.СписокПолучателей.ТолькоПросмотр = Истина; + Элементы.ГруппаВажность.Видимость = Ложь; + Элементы.ВажностьДекорация.Видимость = Объект.Важность <> Перечисления.ВариантыВажностиВзаимодействия.Обычная; КонецЕсли; @@ -2149,7 +2215,7 @@ НайденныеСтроки = ДоступныеДляОтправкиУчетныеЗаписи.НайтиСтроки(Новый Структура("УчетнаяЗапись", Объект.УчетнаяЗапись)); Если НайденныеСтроки.Количество() = 0 Тогда ОбщегоНазначенияКлиент.СообщитьПользователю( - НСтр("ru = 'Выбранная учетная запись не доступна для отправки писем'"),, "ОтправительПредставление", "Объект"); + НСтр("ru = 'Выбранная почта недоступна для отправки писем.'"),, "ОтправительПредставление", "Объект"); Возврат; КонецЕсли; @@ -2160,7 +2226,7 @@ СписокКнопок.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Отправить и сохранить'")); СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); - ТекстВопроса = НСтр("ru = 'Для данной учетной записи не предусмотрено сохранение отправленных писем в системе. + ТекстВопроса = НСтр("ru = 'В настройках почты не предусмотрено сохранение отправленных писем в программе. |Продолжить?'"); ОбработчикОповещенияЗакрытия = Новый ОписаниеОповещения("ВопросОНеСохраненииОтправленногоПисьма", ЭтотОбъект); @@ -2251,7 +2317,8 @@ Элементы.СтраницаКомментарий.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Объект.Комментарий); - СформироватьСпискиПолучателейПисьма(); + СформироватьСпискиПолучателейПисьма(); + ОтобразитьВажность(); КонецПроцедуры diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl index 7861e7485..ace3fb268 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl @@ -219,6 +219,9 @@ ПолноеИмяОбъекта = "Документ.ЭлектронноеПисьмоИсходящее"; + ПроблемныхОбъектов = 0; + ОбъектовОбработано = 0; + Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ @@ -273,14 +276,18 @@ КонецЕсли; ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); + КонецЕсли; + ОбъектовОбработано = ОбъектовОбработано + 1; ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); + ПроблемныхОбъектов = ПроблемныхОбъектов + 1; + МетаданныеОбъекта = ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(ПолноеИмяОбъекта); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось обработать %1 %2 по причине: @@ -296,6 +303,20 @@ КонецЦикла; + Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось обновить данные электронных исходящих писем (пропущены): %1'"), + ПроблемныхОбъектов); + ВызватьИсключение ТекстСообщения; + Иначе + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Информация, + Метаданные.Документы.ЭлектронноеПисьмоИсходящее, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработана очередная порция исходящих электронных писем: %1'"), + ОбъектовОбработано)); + КонецЕсли; + Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта); КонецПроцедуры diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl index 38fad4c15..830997520 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl @@ -115,7 +115,7 @@ Если ПометкаУдаления <> ДанныеОбъектаДоЗаписи.ПометкаУдаления Тогда ЕстьВложения = ?(ПометкаУдаления, Ложь, РаботаСФайламиСлужебныйВызовСервера.КоличествоПрисоединенныхФайлов(Ссылка) > 0); - КонецЕсли;; + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ЭлектронноеПисьмоИсходящее.mdo b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ЭлектронноеПисьмоИсходящее.mdo index 852421634..c4e156a1c 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ЭлектронноеПисьмоИсходящее.mdo +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ЭлектронноеПисьмоИсходящее.mdo @@ -391,7 +391,7 @@ ru - Учетная запись отправителя + Почта отправителя @@ -571,14 +571,14 @@ УчетнаяЗапись ru - Учетная запись + Почта CatalogRef.УчетныеЗаписиЭлектроннойПочты ru - Учетная запись электронной почты, с которой письмо отправлено или планируется к отправке + Электронная почта, с которой письмо отправлено или планируется к отправке diff --git a/SSL/src/Enums/ВариантыОтображенияМеток/ManagerModule.bsl b/SSL/src/Enums/ВариантыОтображенияМеток/ManagerModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/SSL/src/Enums/ВариантыОтображенияМеток/ВариантыОтображенияМеток.mdo b/SSL/src/Enums/ВариантыОтображенияМеток/ВариантыОтображенияМеток.mdo new file mode 100644 index 000000000..f960cacdf --- /dev/null +++ b/SSL/src/Enums/ВариантыОтображенияМеток/ВариантыОтображенияМеток.mdo @@ -0,0 +1,45 @@ + + + + + + + + ВариантыОтображенияМеток + + ru + Варианты отображения меток + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + Картинка + + ru + Картинка + + + + Надпись + + ru + Надпись + + + diff --git a/SSL/src/Enums/ВидыСвойств/ВидыСвойств.mdo b/SSL/src/Enums/ВидыСвойств/ВидыСвойств.mdo new file mode 100644 index 000000000..c1f136c3d --- /dev/null +++ b/SSL/src/Enums/ВидыСвойств/ВидыСвойств.mdo @@ -0,0 +1,52 @@ + + + + + + + + ВидыСвойств + + ru + Виды свойств + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + ДополнительныеРеквизиты + + ru + Дополнительные реквизиты + + + + ДополнительныеСведения + + ru + Дополнительные сведения + + + + Метки + + ru + Метки + + + diff --git a/SSL/src/Enums/НазначенияВариантовОтчетов/ManagerModule.bsl b/SSL/src/Enums/НазначенияВариантовОтчетов/ManagerModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/SSL/src/Enums/НазначенияВариантовОтчетов/НазначенияВариантовОтчетов.mdo b/SSL/src/Enums/НазначенияВариантовОтчетов/НазначенияВариантовОтчетов.mdo new file mode 100644 index 000000000..67d58a993 --- /dev/null +++ b/SSL/src/Enums/НазначенияВариантовОтчетов/НазначенияВариантовОтчетов.mdo @@ -0,0 +1,52 @@ + + + + + + + + НазначенияВариантовОтчетов + + ru + Назначения вариантов отчетов + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + ДляКомпьютеровИПланшетов + + ru + Для компьютеров и планшетов + + + + ДляСмартфонов + + ru + Для смартфонов + + + + ДляЛюбыхУстройств + + ru + Для любых устройств + + + diff --git a/SSL/src/Enums/ТипыХраненияФайлов/ТипыХраненияФайлов.mdo b/SSL/src/Enums/ТипыХраненияФайлов/ТипыХраненияФайлов.mdo index 99ba85b2a..f547fe002 100644 --- a/SSL/src/Enums/ТипыХраненияФайлов/ТипыХраненияФайлов.mdo +++ b/SSL/src/Enums/ТипыХраненияФайлов/ТипыХраненияФайлов.mdo @@ -39,7 +39,7 @@ ВТомахНаДиске ru - В томах на диске + В томах diff --git a/SSL/src/Enums/ЦветаСвойств/ЦветаСвойств.mdo b/SSL/src/Enums/ЦветаСвойств/ЦветаСвойств.mdo new file mode 100644 index 000000000..f74225b16 --- /dev/null +++ b/SSL/src/Enums/ЦветаСвойств/ЦветаСвойств.mdo @@ -0,0 +1,101 @@ + + + + + + + + ЦветаСвойств + + ru + Цвета свойств + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + Серый + + ru + Серый + + + + Зеленый + + ru + Зеленый + + + + Желтый + + ru + Желтый + + + + Оранжевый + + ru + Оранжевый + + + + Красный + + ru + Красный + + + + Фиолетовый + + ru + Фиолетовый + + + + Синий + + ru + Синий + + + + Лаймовый + + ru + Лаймовый + + + + Розовый + + ru + Розовый + + + + Голубой + + ru + Голубой + + + diff --git a/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписиБСД/КонтрольНеразделенныхНаборовЗаписейПриЗаписиБСД.mdo b/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписиБСД/КонтрольНеразделенныхНаборовЗаписейПриЗаписиБСД.mdo new file mode 100644 index 000000000..f9ee6cfcb --- /dev/null +++ b/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписиБСД/КонтрольНеразделенныхНаборовЗаписейПриЗаписиБСД.mdo @@ -0,0 +1,15 @@ + + + КонтрольНеразделенныхНаборовЗаписейПриЗаписиБСД + + ru + Контроль неразделенных наборов записей при записи БСД + + + InformationRegisterRecordSet.ПравилаДляОбменаДанными + InformationRegisterRecordSet.СообщенияОбменаДанными + InformationRegisterRecordSet.НастройкиТранспортаОбменаОбластейДанных + + OnWrite + CommonModule.РаботаВМоделиСервисаБСП.КонтрольНеразделенныхНаборовЗаписейПриЗаписи + diff --git a/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписиБСД/КонтрольНеразделенныхОбъектовПриЗаписиБСД.mdo b/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписиБСД/КонтрольНеразделенныхОбъектовПриЗаписиБСД.mdo new file mode 100644 index 000000000..e3f73ed2f --- /dev/null +++ b/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписиБСД/КонтрольНеразделенныхОбъектовПриЗаписиБСД.mdo @@ -0,0 +1,31 @@ + + + КонтрольНеразделенныхОбъектовПриЗаписиБСД + + ru + Контроль неразделенных объектов при записи БСД + + + ConstantValueManager.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы + ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервиса + ConstantValueManager.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы + ConstantValueManager.ИспользоватьСинхронизациюДанных + ConstantValueManager.КаталогСообщенийОбменаДаннымиДляLinux + ConstantValueManager.КаталогСообщенийОбменаДаннымиДляWindows + ConstantValueManager.ИспользоватьСинхронизациюДанныхВЛокальномРежиме + ConstantValueManager.ИспользоватьОценкуПроизводительностиСинхронизацииДанных + ConstantValueManager.ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском + ConstantValueManager.СообщениеОбменаДаннымиИзГлавногоУзла + ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете + ConstantValueManager.ИспользоватьАвтономнуюРаботуВМоделиСервиса + ConstantValueManager.ЭтоАвтономноеРабочееМесто + ConstantValueManager.ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста + ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой + ConstantValueManager.НастройкаПодчиненногоУзлаРИБЗавершена + CatalogObject.СеансыОбменовДанными + ConstantValueManager.ЗагрузитьРасширенияИзменяющиеСтруктуруДанных + ConstantValueManager.ЗагрузитьСообщениеОбменаДанными + + OnWrite + CommonModule.РаботаВМоделиСервисаБСП.КонтрольНеразделенныхОбъектовПриЗаписи + diff --git a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo index d654566c8..86bcbb5eb 100644 --- a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo +++ b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo @@ -354,6 +354,9 @@ InformationRegister.ДополнительныеСведения + + InformationRegister.СнимкиОтчетов + Catalog.ПредопределенныеВариантыОтчетовРасширений @@ -444,6 +447,9 @@ Constant.ИспользоватьВерсионированиеОбъектов + + Catalog.СеансыОбменовДанными + Catalog.ВерсииРасширений diff --git a/SSL/src/FunctionalOptions/ИспользоватьДополнительныеРеквизитыИСведения/ИспользоватьДополнительныеРеквизитыИСведения.mdo b/SSL/src/FunctionalOptions/ИспользоватьДополнительныеРеквизитыИСведения/ИспользоватьДополнительныеРеквизитыИСведения.mdo index 85945ba4b..ec0c13316 100644 --- a/SSL/src/FunctionalOptions/ИспользоватьДополнительныеРеквизитыИСведения/ИспользоватьДополнительныеРеквизитыИСведения.mdo +++ b/SSL/src/FunctionalOptions/ИспользоватьДополнительныеРеквизитыИСведения/ИспользоватьДополнительныеРеквизитыИСведения.mdo @@ -13,4 +13,6 @@ InformationRegister.ДополнительныеСведения Catalog.ЗначенияСвойствОбъектов Catalog.ЗначенияСвойствОбъектовИерархия + Enum.ЦветаСвойств + Enum.ВариантыОтображенияМеток diff --git a/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВЛокальномРежиме/ИспользоватьСинхронизациюДанныхВЛокальномРежиме.mdo b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВЛокальномРежиме/ИспользоватьСинхронизациюДанныхВЛокальномРежиме.mdo index b65810534..593a6b9dc 100644 --- a/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВЛокальномРежиме/ИспользоватьСинхронизациюДанныхВЛокальномРежиме.mdo +++ b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВЛокальномРежиме/ИспользоватьСинхронизациюДанныхВЛокальномРежиме.mdo @@ -7,17 +7,18 @@ Constant.ИспользоватьСинхронизациюДанныхВЛокальномРежиме true - Subsystem.СтандартныеПодсистемы.Subsystem.ОбменДанными - Catalog.СценарииОбменовДанными - CommonCommand.НастройкиПодключения - CommonCommand.СобытияПолучения - CommonCommand.ЗагрузитьПравилаКонвертацииОбъектов - CommonCommand.ЗагрузитьПравилаРегистрацииОбъектов - CommonCommand.Синхронизировать - CommonCommand.СобытияОтправки CommonCommand.СценарииСинхронизации - CommonCommand.СинхронизироватьСДополнительнымиПараметрами + Subsystem.СтандартныеПодсистемы.Subsystem.ОбменДанными + CommonCommand.НастройкиПодключения + Catalog.СценарииОбменовДанными + CommonCommand.СобытияПолучения + CommonCommand.ЗагрузитьПравилаРегистрацииОбъектов + CommonCommand.ЗагрузитьПравилаКонвертацииОбъектов + CommonCommand.Синхронизировать CommonForm.ВыборОбъектовИнформационнойБазыКорреспондента - CommonForm.НастройкиСинхронизацииДанных CommonCommand.ПолучитьНастройкиСинхронизацииДляДругойПрограммы + CommonCommand.СобытияОтправки + CommonCommand.СинхронизироватьСДополнительнымиПараметрами + CommonForm.НастройкиСинхронизацииДанных + CommonCommand.ЗагрузитьКомплектПравил diff --git a/SSL/src/FunctionalOptions/ХранитьФайлыВТомахНаДиске/ХранитьФайлыВТомахНаДиске.mdo b/SSL/src/FunctionalOptions/ХранитьФайлыВТомахНаДиске/ХранитьФайлыВТомахНаДиске.mdo index bbb02a82d..f85cda28e 100644 --- a/SSL/src/FunctionalOptions/ХранитьФайлыВТомахНаДиске/ХранитьФайлыВТомахНаДиске.mdo +++ b/SSL/src/FunctionalOptions/ХранитьФайлыВТомахНаДиске/ХранитьФайлыВТомахНаДиске.mdo @@ -3,7 +3,7 @@ ХранитьФайлыВТомахНаДиске ru - Хранить файлы в томах на диске + Хранить файлы в томах Constant.ХранитьФайлыВТомахНаДиске true diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Form.form b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Form.form index d26fa8ec3..fe998172d 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Form.form +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Form.form @@ -10,7 +10,7 @@ <key>ru</key> <value> -Адресный классификатор изменен на формат государственного адресного реестра (ГАР), согласно Приказу ФНС России от 13.05.2020 № ЕД-7-6/329@ "Об утверждении формата выгрузки сведений об адресах, содержащихся в Государственном адресном реестре..." , ранее загруженный классификатор стал недействительным. Загрузка новых адресных сведений в программу занимает длительное время и больше места на диске, поэтому для ввода и проверки адресов рекомендуется использовать веб-сервис. С его помощью не потребуется регулярно загружать классификатор и следить за его актуальностью. +Адресный классификатор изменен на формат государственного адресного реестра (ГАР), согласно Приказу ФНС России от 13.05.2020 № ЕД-7-6/329@ "Об утверждении формата выгрузки сведений об адресах, содержащихся в Государственном адресном реестре..." , ранее загруженный классификатор стал недействительным. Загрузка новых адресных сведений в программу занимает длительное время и больше места на компьютере, поэтому для ввода и проверки адресов рекомендуется использовать веб-сервис. С его помощью не потребуется регулярно загружать классификатор и следить за его актуальностью. Выберите один из вариантов:</value> diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Form.form b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Form.form index 236df51ad..1cf4d1e5d 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Form.form +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Form.form @@ -791,7 +791,7 @@ <choiceList> <presentation> <key>ru</key> - <value>Из папки на диске:</value> + <value>Из папки на компьютере:</value> </presentation> <value xsi:type="core:StringValue"> <value>КАТАЛОГ</value> @@ -805,7 +805,7 @@ <id>28</id> <title> <key>ru</key> - <value>Загрузить из папки на диске</value> + <value>Загрузить из папки на компьютере</value> true true diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html index c1400c8ba..4c0b08b71 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html @@ -9,7 +9,7 @@
                  • С помощью переключателя выберите Вариант загрузки:
                    • С портала 1С:ИТС;
                      • Для загрузки необходимо заполнить данные авторизации для подключения к Интернет-поддержке пользователей. 
                    • -
                    • Из папки на диске.
                    • +
                    • Из папки на компьютере.
                      •  укажите путь к папке (также можно нажать клавишу F4). Скачать адресные сведения для загрузки можно на сайте 1С:ИТС - по ссылке;
                  • После указания всех параметров нажмите Загрузить адресные сведения.
                  • Во время загрузки программой выводится сообщение о состоянии загрузки: diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl index d5818eb7a..d3f706284 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl @@ -799,7 +799,7 @@ Если Задание.Статус = "Ошибка" Тогда ТекстОшибки = НСтр("ru = 'Не удается загрузить адресные сведения из файлов. - |Сохраните файлы с сайта ""1С"" http://its.1c.ru/download/fias2 на диск, а затем загрузить в программу. + |Сохраните файлы с сайта ""1С"" http://its.1c.ru/download/fias2 на компьютер, а затем загрузить в программу. | |Техническая информация:'") + Символы.ПС + Задание.КраткоеПредставлениеОшибки; ВывестиСообщениеОбОшибке(ТекстОшибки); @@ -884,7 +884,6 @@ ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Загрузка адресного классификатора с сайта'"); - ПараметрыВыполнения.ЗапуститьВФоне = Истина; ПараметрыЗагрузки = АдресныйКлассификаторСлужебный.ПараметрыЗагрузкиКлассификатораАдресов(); ПараметрыЗагрузки.ЗагружатьИсториюАдресов = ЗагружатьИсторию; @@ -951,7 +950,6 @@ ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Загрузка адресного классификатора с сайта'"); - ПараметрыВыполнения.ЗапуститьВФоне = Истина; ПараметрыЗагрузки = АдресныйКлассификаторСлужебный.ПараметрыЗагрузкиКлассификатораАдресов(); ПараметрыЗагрузки.ЗагружатьИсториюАдресов = ЗагружатьИсториюИзмененийАдресныхОбъектов; diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl index 574fa4c4b..f357075a8 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl @@ -348,7 +348,7 @@ ВыводимоеНаименование = СтруктураОписанияНаименования.ВыводимоеНаименование; ПустаяЯчейка = ОбщийШаблон.ПолучитьОбласть("ПустаяЯчейка"); - ТЧОтчета.Вывести(ПустаяЯчейка);; + ТЧОтчета.Вывести(ПустаяЯчейка); НаименованиеРеквизита = ОбщийШаблон.ПолучитьОбласть("НаименованиеРеквизитаПоля"); НаименованиеРеквизита.Параметры.НаименованиеРеквизитаПоля = ВыводимоеНаименование; diff --git a/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl b/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl index 8aee71677..9766ee630 100644 --- a/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl @@ -121,4 +121,4 @@ #КонецОбласти -#КонецЕсли +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/RecordSetModule.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/RecordSetModule.bsl index 7f45305b3..3b978adfa 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/RecordSetModule.bsl @@ -51,6 +51,9 @@ Процедура ЗаписатьИзмененийВЖурналРегистрации(ЭтотОбъект, Замещение) + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + Таблица = ЭтотОбъект.Выгрузить(); Таблица.Колонки.Добавить("ВидИзмененияСтроки", Новый ОписаниеТипов("Число")); Таблица.ЗаполнитьЗначения(1, "ВидИзмененияСтроки"); @@ -119,6 +122,9 @@ Комментарий, РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная); + УстановитьПривилегированныйРежим(Ложь); + УстановитьОтключениеБезопасногоРежима(Ложь); + КонецПроцедуры Процедура ДобавитьПоле(Поля, ШиринаКолонок, МетаданныеПоля, ШиринаКолонки); diff --git a/SSL/src/InformationRegisters/ДатыПоследнейЗагрузкиПочтовыхСообщений/ДатыПоследнейЗагрузкиПочтовыхСообщений.mdo b/SSL/src/InformationRegisters/ДатыПоследнейЗагрузкиПочтовыхСообщений/ДатыПоследнейЗагрузкиПочтовыхСообщений.mdo index c571a948f..d142d7f85 100644 --- a/SSL/src/InformationRegisters/ДатыПоследнейЗагрузкиПочтовыхСообщений/ДатыПоследнейЗагрузкиПочтовыхСообщений.mdo +++ b/SSL/src/InformationRegisters/ДатыПоследнейЗагрузкиПочтовыхСообщений/ДатыПоследнейЗагрузкиПочтовыхСообщений.mdo @@ -69,7 +69,7 @@ УчетнаяЗапись ru - Учетная запись + Почта CatalogRef.УчетныеЗаписиЭлектроннойПочты diff --git a/SSL/src/InformationRegisters/ЗаблокированныеДляПолученияУчетныеЗаписи/ЗаблокированныеДляПолученияУчетныеЗаписи.mdo b/SSL/src/InformationRegisters/ЗаблокированныеДляПолученияУчетныеЗаписи/ЗаблокированныеДляПолученияУчетныеЗаписи.mdo index 61ec735f9..f7cf6dbef 100644 --- a/SSL/src/InformationRegisters/ЗаблокированныеДляПолученияУчетныеЗаписи/ЗаблокированныеДляПолученияУчетныеЗаписи.mdo +++ b/SSL/src/InformationRegisters/ЗаблокированныеДляПолученияУчетныеЗаписи/ЗаблокированныеДляПолученияУчетныеЗаписи.mdo @@ -69,7 +69,7 @@ УчетнаяЗапись ru - Учетная запись + Почта CatalogRef.УчетныеЗаписиЭлектроннойПочты diff --git a/SSL/src/InformationRegisters/ИдентификаторыПолученныхЭлектронныхПисем/ИдентификаторыПолученныхЭлектронныхПисем.mdo b/SSL/src/InformationRegisters/ИдентификаторыПолученныхЭлектронныхПисем/ИдентификаторыПолученныхЭлектронныхПисем.mdo index dd42011a3..393441d18 100644 --- a/SSL/src/InformationRegisters/ИдентификаторыПолученныхЭлектронныхПисем/ИдентификаторыПолученныхЭлектронныхПисем.mdo +++ b/SSL/src/InformationRegisters/ИдентификаторыПолученныхЭлектронныхПисем/ИдентификаторыПолученныхЭлектронныхПисем.mdo @@ -73,14 +73,14 @@ УчетнаяЗапись ru - Учетная запись + Почта CatalogRef.УчетныеЗаписиЭлектроннойПочты ru - Учетная запись, через которую получено письмо + Почта, с которой получено письмо diff --git a/SSL/src/InformationRegisters/ИсторияРассылкиОтчетов/ИсторияРассылкиОтчетов.mdo b/SSL/src/InformationRegisters/ИсторияРассылкиОтчетов/ИсторияРассылкиОтчетов.mdo index 5c5d755d1..55a07fe84 100644 --- a/SSL/src/InformationRegisters/ИсторияРассылкиОтчетов/ИсторияРассылкиОтчетов.mdo +++ b/SSL/src/InformationRegisters/ИсторияРассылкиОтчетов/ИсторияРассылкиОтчетов.mdo @@ -241,7 +241,7 @@ УчетнаяЗапись ru - Учетная запись + Почта CatalogRef.УчетныеЗаписиЭлектроннойПочты diff --git a/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Form.form b/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Form.form index 39f8b8c38..252f6d61d 100644 --- a/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Form.form +++ b/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Form.form @@ -581,7 +581,7 @@ 100 <key>ru</key> - <value><b><colorstyle -16>Внимание!</></> Включение регистрации при зацикливании может привести к избыточности отправляемых и получаемых данных, а также к увеличению времени обмена.</value> + <value><colorstyle -16><b>Внимание!</></> Включение регистрации при зацикливании может привести к избыточности отправляемых и получаемых данных, а также к увеличению времени обмена.</value> true true diff --git a/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Module.bsl b/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Module.bsl index ffa7ab37b..4b8c5dee5 100644 --- a/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Module.bsl +++ b/SSL/src/InformationRegisters/КонтурСинхронизации/Forms/ЗацикливаниеСинхронизации/Module.bsl @@ -86,7 +86,7 @@ Исключение - ЗаписьЖурналаРегистрации(, УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗаписьЖурналаРегистрации(, УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; diff --git a/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl index 4abb57880..c457bb958 100644 --- a/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl @@ -530,7 +530,7 @@ Возврат; КонецЕсли; - МодульОбсуждения = ОбщегоНазначения.ОбщийМодуль("Обсуждения");; + МодульОбсуждения = ОбщегоНазначения.ОбщийМодуль("Обсуждения"); УстановитьПривилегированныйРежим(Истина); Получатели = Новый Массив; diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Form.form index 9d009b78f..20e870d7c 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Form.form +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Form.form @@ -2089,7 +2089,7 @@ 12 ru - Файлы, которых не существует в программе, но имеются в томе на диске + Файлы, которых не существует в программе, но имеются в томе в сетевом каталоге true diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl index c84e61129..a4f78a1f3 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl @@ -719,7 +719,7 @@ Запрос.УстановитьПараметр("ВладелецФайла", ВладелецФайла); Запрос.УстановитьПараметр("ТипВладельцаФайла", ТипВладельцаФайла); - КоличествоЗаписей = Запрос.Выполнить().Выгрузить().Количество();; + КоличествоЗаписей = Запрос.Выполнить().Выгрузить().Количество(); Если КоличествоЗаписей = 0 Тогда ЗаписатьТекущиеНастройкиПоОбъекту(ВладелецФайла, ТипВладельцаФайла, Действие, ПериодОчистки, ЭтоФайл); diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Form.form b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Form.form index c1705a844..fc6186c57 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Form.form +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Form.form @@ -88,6 +88,10 @@ true true Normal + + ru + Выберите из списка + diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Form.form b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Form.form similarity index 99% rename from SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Form.form rename to SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Form.form index 2934e21db..42ef93b6f 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Form.form +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Form.form @@ -91,7 +91,7 @@ Normal ru - Учетная запись облачного сервиса + Выберите из списка diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Help/ru.html b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Help/ru.html similarity index 100% rename from SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Help/ru.html rename to SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Help/ru.html diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Module.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Module.bsl similarity index 100% rename from SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Module.bsl rename to SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписи/Module.bsl diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Help/ru.html b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Help/ru.html index 1c618d98b..b0922de4f 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Help/ru.html +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Help/ru.html @@ -33,7 +33,7 @@
                    Учетная запись - указывается учетная запись облачного сервиса. Для разных владельцев файлов могут быть указаны разные учетные записи;
                  • -
                    Правило - ссылка показывает, какие файлы синхронизируются. По умолчанию принимает значение Все файлы. Нажав на ссылку, перейдите к настройке синхронизации файлов конкретного владельца.
                • +
                  Правило - ссылка показывает, какие файлы синхронизируются. По умолчанию принимает значение Все файлы. Нажав на ссылку, перейдите к настройке синхронизации файлов конкретного владельца.
              • С помощью кнопки Настроить синхронизацию файлов или соответствующей команды контекстного меню по правой кнопке мыши можно добавить новую синхронизацию файлов для списков программы (для таких объектов можно настроить несколько синхронизаций).

              Синхронизация файлов

              • diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/НастройкиСинхронизацииФайлов.mdo b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/НастройкиСинхронизацииФайлов.mdo index 4d0114bd5..c03d8c033 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/НастройкиСинхронизацииФайлов.mdo +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/НастройкиСинхронизацииФайлов.mdo @@ -16,7 +16,7 @@ true InDialog - InformationRegister.НастройкиСинхронизацииФайлов.Form.ФормаЗаписиНастройки + InformationRegister.НастройкиСинхронизацииФайлов.Form.ФормаЗаписи InformationRegister.НастройкиСинхронизацииФайлов.Form.НастройкиСинхронизацииФайлов Use @@ -208,10 +208,10 @@ MobileDevice - ФормаЗаписиНастройки + ФормаЗаписи ru - Форма записи настройки + Форма записи diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl index a6f4e49c3..0c0d7e596 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl @@ -631,7 +631,8 @@ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось обработать набор записей регистра ""%1"" с отбором ""УзелИнформационнойБазы = %2"" по причине: - |%3'"), ПредставлениеРегистра, Выборка.УзелИнформационнойБазы, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + |%3'"), ПредставлениеРегистра, Выборка.УзелИнформационнойБазы, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, МетаданныеРегистра, , ТекстСообщения); diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl index f5ef11354..d6275ef8b 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl @@ -122,7 +122,14 @@ &НаСервере Процедура ПроверитьПодключениеНаСервере(Отказ, ВидТранспортаСтрокой) - ОбменДаннымиСервер.ПроверитьПодключениеОбработкиТранспортаСообщенийОбмена(Отказ, Запись, Перечисления.ВидыТранспортаСообщенийОбмена[ВидТранспортаСтрокой]); + ПаролиДляПроверки = Неопределено; + + Если FTPСоединениеПарольИзменен Тогда + ПаролиДляПроверки = Новый Структура("FTPСоединениеПароль", FTPСоединениеПароль); + КонецЕсли; + + ОбменДаннымиСервер.ПроверитьПодключениеОбработкиТранспортаСообщенийОбмена( + Отказ, Запись, Перечисления.ВидыТранспортаСообщенийОбмена[ВидТранспортаСтрокой], , ПаролиДляПроверки); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl index a722858cb..67c88f4ac 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl @@ -49,7 +49,8 @@ Результат = ОбменДаннымиСлужебный.РезультатЗапросаВСтруктуру(РезультатЗапроса); УстановитьПривилегированныйРежим(Истина); - Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(КонечнаяТочкаКорреспондента, "FTPСоединениеПарольОбластейДанных,ПарольАрхиваСообщенияОбменаОбластейДанных"); + Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища( + КонечнаяТочкаКорреспондента, "FTPСоединениеПарольОбластейДанных,ПарольАрхиваСообщенияОбменаОбластейДанных", Истина); УстановитьПривилегированныйРежим(Ложь); Результат.Вставить("ПарольАрхиваСообщенияОбмена", Пароли.ПарольАрхиваСообщенияОбменаОбластейДанных); Результат.Вставить("FTPСоединениеПароль", Пароли.FTPСоединениеПарольОбластейДанных); diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl index ab9ecd948..8d9338d25 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl @@ -32,6 +32,7 @@ | НастройкиТранспортаОбластейДанных.FTPСоединениеПользователь, | НастройкиТранспортаОбластейДанных.FTPСоединениеПорт, | НастройкиТранспортаОбластейДанных.ВидТранспортаСообщенийОбменаПоУмолчанию, + | НастройкиТранспортаОбластейДанных.КонечнаяТочкаКорреспондента, | НастройкиТранспорта.АдресВебСервиса КАК WSURLВебСервиса, | НастройкиТранспорта.ИмяПользователя КАК WSИмяПользователя, | """" КАК WSОбластьДанныхКорреспондента, @@ -60,7 +61,8 @@ Результат = ОбменДаннымиСлужебный.РезультатЗапросаВСтруктуру(РезультатЗапроса); УстановитьПривилегированныйРежим(Истина); - Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Корреспондент, "FTPСоединениеПарольОбластейДанных,WSПароль, ПарольАрхиваСообщенияОбменаОбластейДанных"); + Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Результат.КонечнаяТочкаКорреспондента, + "FTPСоединениеПарольОбластейДанных,WSПароль, ПарольАрхиваСообщенияОбменаОбластейДанных", Истина); УстановитьПривилегированныйРежим(Ложь); Результат.Вставить("WSПароль", Пароли.WSПароль); diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Form.form index 2c2146086..f912508db 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Form.form +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Form.form @@ -56,7 +56,7 @@ ru - Получать, сохранять и отправлять письма с этой учетной записи + Получать, сохранять и отправлять письма с этой почты 1 @@ -65,7 +65,7 @@ ru - Не использовать (получение, хранение и отправка почты для этой учетной записи не выполняются) + Не использовать (получение, хранение и отправка почты не выполняются) 0 diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Help/ru.html b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Help/ru.html index 16e57b81e..eb71caea6 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Help/ru.html +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Help/ru.html @@ -1,36 +1,36 @@ -

                Предназначена для настройки параметров учетной записи электронной почты.

                -

                Открывается по команде Настройки на панели навигации учетной записи электронной почты.

                -

                Настройка использования учетной записи во встроенном почтовом клиенте.

                +

                Предназначена для настройки электронной почты.

                +

                Открывается по команде Настройки на панели навигации настройки почты.

                +

                Настройка использования почты во встроенном почтовом клиенте.

                Коллективная учетная запись.

                -

                Использование коллективной учетной записи.

                +

                Использование коллективной почты.

                Флажок Удалять письма после отправки.

                Флажок Помещать письма в папку письма основания.

                Флажок В представление включать имя пользователя.

                Использование другого почтового клиента для обработки писем.

                Настройка подписей к письму.

                -

                Настройка использования учетной записи во встроенном почтовом клиенте

                +

                Настройка использования почты во встроенном почтовом клиенте

                • Настройки производятся на вкладке Основное с помощью переключателя Во встроенном почтовом клиенте: -
                  • Выберите значение Получать, сохранять и отправлять письма с этой учетной записи, если с данной учетной записи электронной почты планируется переписка. +
                    • Выберите значение Получать, сохранять и отправлять письма с этой почты, если с данной электронной почты планируется переписка.
                    • -
                    • Если использование во внутреннем почтовом клиенте не предполагается (например, эта учетная запись используется для обменов с другими программами), то выберите значение Не использовать.

                  Включение имени пользователя, указанного в учетной записи, в представление отправителя письма

                  +
                • Если использование во внутреннем почтовом клиенте не предполагается (например, эта учетная запись используется для обменов с другими программами), то выберите значение Не использовать.

              Включение имени пользователя, указанного в почте, в представление отправителя письма

              • Установите флажок В представление включать имя пользователя на вкладке Основное.

              Назначение флажка Удалять письма после отправки

              • Настройка производится на вкладке Основное.
              • -
                Если нет необходимости хранить исходящие письма, успешно отправленные с данной учетной записи, то этот флажок должен быть включен.
                +
                Если нет необходимости хранить исходящие письма, успешно отправленные с данной почты, то этот флажок должен быть включен.
              • -
                В этом случае после отправки письма будут удалены.

              Коллективная учетная запись

              +
              В этом случае после отправки письма будут удалены.

            Коллективная почта

            • -
              Для коллективной учетной записи ответственным за папки может быть один пользователь, а ответственным за обработку писем по умолчанию другой (например, администратор программы).
              +
              Для коллективной почты ответственным за папки может быть один пользователь, а ответственным за обработку писем по умолчанию другой (например, администратор программы).
              • Выберите Ответственного за обработку писем из списка пользователей. Поле является обязательным для заполнения.
              • -
                Выберите Ответственного за ведение папок из списка пользователей. Поле является обязательным для заполнения.

            Пример использования коллективной учетной записи

            +
            Выберите Ответственного за ведение папок из списка пользователей. Поле является обязательным для заполнения.

        Пример использования коллективной почты

        • Крупная компания имеет большое количество клиентов по всей стране.
        • @@ -38,7 +38,7 @@
          У компании есть единый почтовый адрес, на который клиенты шлют претензии.
        • -
          Состав и порядок папок для данной учетной записи определяет руководитель службы, которая отвечает за обработку претензий.
          +
          Состав и порядок папок почты определяет руководитель службы, которая отвечает за обработку претензий.
        • Ответственный за первичный разбор писем - это другой сотрудник. Он обрабатывает входящую корреспонденцию и назначает письмам ответственных, которые в дальнейшем будут отвечать за обработку претензии, изложенной в письме.

        Назначение флажка Помещать письма в папку письма-основания

        diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl index 821f51b82..8d41324b9 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl @@ -114,7 +114,7 @@ &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - Если ИмяСобытия = "Запись_УчетнаяЗаписьЭлектроннойПочты" + Если ИмяСобытия = "Запись_УчетныеЗаписиЭлектроннойПочты" И Источник = Запись.УчетнаяЗаписьЭлектроннойПочты Тогда Элементы.ГруппаГдеИдетОбработкаПисем.Видимость = НастройкаОбработкиПисемВДругомКлиентеДоступна(); diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl index 180f28449..1c7a0a644 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl @@ -35,11 +35,11 @@ #Область СлужебныйПрограммныйИнтерфейс -// Обновляет дату использования учетной записи в регистре. +// Обновляет дату использования почты. // // Параметры: -// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись, для которой выполняется обновление. -// ДатаИспользования - Дата - дата использования учетной записи. Если не передана, то устанавливается текущая дата. +// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - почта, для которой выполняется обновление. +// ДатаИспользования - Дата - дата использования почты. Если не передана, то устанавливается текущая дата. // Процедура ОбновитьДатуИспользованияУчетнойЗаписи(УчетнаяЗапись, ДатаИспользования = Неопределено) Экспорт diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/НастройкиУчетныхЗаписейЭлектроннойПочты.mdo b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/НастройкиУчетныхЗаписейЭлектроннойПочты.mdo index 86cde1313..af51aca82 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/НастройкиУчетныхЗаписейЭлектроннойПочты.mdo +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/НастройкиУчетныхЗаписейЭлектроннойПочты.mdo @@ -247,7 +247,7 @@ ru - Ответственный за обработку писем для данной учетной записи по умолчанию + Ответственный за обработку писем почты по умолчанию @@ -267,7 +267,7 @@ ru - Ответственный за ведение папок для данной учетной записи + Ответственный за ведение папок почты @@ -287,7 +287,7 @@ ru - Для исходящих писем данной учетной записи по умолчанию будет устанавливаться признак необходимости удалить это письмо из информационной базы после успешной отправки + Для исходящих писем по умолчанию будет устанавливаться признак необходимости удалить это письмо из информационной базы после успешной отправки @@ -325,7 +325,7 @@ ru - Признак использования учетной записи во встроенном почтовом клиенте. + Признак использования почты во встроенном почтовом клиенте. @@ -345,7 +345,7 @@ ru - В представление учетной записи включать имя пользователя + В представление почты включать имя пользователя @@ -394,14 +394,14 @@ УчетнаяЗаписьЭлектроннойПочты ru - Учетная запись электронной почты + Электронная почта CatalogRef.УчетныеЗаписиЭлектроннойПочты ru - Учетная запись, для которой выполняются настройки + Электронная почта, для которой выполняются настройки @@ -448,7 +448,7 @@ Auto ru - Персональные настройки учетной записи + Персональные настройки почты diff --git a/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss new file mode 100644 index 000000000..61e6fb4bb --- /dev/null +++ b/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss @@ -0,0 +1,17 @@ + + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + diff --git a/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Form.form new file mode 100644 index 000000000..e882b7d4e --- /dev/null +++ b/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Form.form @@ -0,0 +1,519 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 1 + true + true + + true + + + <key>ru</key> + <value>Группа пользовательских настроек</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + + Список + 3 + true + true + + true + + + Список + + true + None + ShowTop + + Объект + 16 + true + true + + true + + + Список.Объект + + true + + ОбъектРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + ОбъектКонтекстноеМеню + 17 + true + + LabelField + Enter + true + Left + true + + true + true + + + + КоличествоПопыток + 19 + true + true + + true + + + Список.КоличествоПопыток + + true + + КоличествоПопытокРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + КоличествоПопытокКонтекстноеМеню + 20 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ВремяПоследнейПопытки + 22 + true + true + + true + + + Список.ВремяПоследнейПопытки + + true + + ВремяПоследнейПопыткиРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ВремяПоследнейПопыткиКонтекстноеМеню + 23 + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + Left + + + Selection + СписокВыбор + + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + + Список + + true + + + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + + ViewStatusAddition + Список + + true + + + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + + SearchControlAddition + Список + + true + + + + СписокРасширеннаяПодсказка + 6 + + <key>ru</key> + <value>В списке выводятся сведения о помеченных на удаление объектах, которые не получилось удалить в фоне по различным причинам. +Для просмотра причин перейдите в <link %1>Удаление помеченных объектов</>, оставьте в списке один или несколько проблемных объектов из этого списка и повторите их удаление.</value> + + true + Label + true + + + URLProcessing + СписокРасширеннаяПодсказкаОбработкаНавигационнойСсылки + + Left + + + + СписокКонтекстноеМеню + 4 + true + + true + true + true + true + true + MultiRow +
        true
        + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandTopLevel + true + true + true + AsFileRef + + Список.СтандартнаяКартинка + + + CommonPicture.ПиктограммыЭлементов + + true + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
        + + ФормаКоманднаяПанель + -1 + + ФормаОткрыть + 31 + true + true + + true + + + ФормаОткрытьРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + Form.Command.Открыть + Normal + Auto + true + true + UserCmds + Auto + + + ФормаОчистить + 33 + true + true + + true + + + ФормаОчиститьРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + Form.Command.Очистить + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСоздать + 27 + true + true + + true + + + ФормаСоздатьРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + Form.StandardCommand.Create + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФормаСкопировать + 29 + true + true + + true + + + ФормаСкопироватьРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + Form.StandardCommand.Copy + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + Left + true + + DontBlock + true + true + true + Vertical + true + true + true + auto + true + + Список + 1 + + DynamicList + + + true + + + true + +
        true
        + + InformationRegister.НеудаленныеОбъекты + true + true + true + true + + СтандартнаяКартинка + 4 + + <localValue> + <content> + <key>ru</key> + <value>Стандартная картинка</value> + </content> + </localValue> + + + true + true + true + + + +
        + + Открыть + + <key>ru</key> + <value>Открыть</value> + + 1 + + ru + Открыть объект + + + true + + + StdPicture.InputFieldOpen + + + + ОткрытьОбъект + + + TextPicture + Auto + Auto + + + Очистить + + <key>ru</key> + <value>Очистить</value> + + 2 + + ru + Очистить сведения о неудаленных объектах + + + true + + + + Очистить + + + Auto + Auto + + + + + + +
        diff --git a/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Module.bsl new file mode 100644 index 000000000..594ea5319 --- /dev/null +++ b/SSL/src/InformationRegisters/НеудаленныеОбъекты/Forms/ФормаСписка/Module.bsl @@ -0,0 +1,67 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура СписокРасширеннаяПодсказкаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + Если НавигационнаяСсылкаФорматированнойСтроки = "%1" Тогда + СтандартнаяОбработка = Ложь; + ОткрытьФорму("Обработка.УдалениеПомеченныхОбъектов.Форма"); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок + +&НаКлиенте +Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ОткрытьОбъект(Неопределено); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ОткрытьОбъект(Команда) + + Если Элементы.Список.ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + Значение = Неопределено; + Если Не Элементы.Список.ТекущиеДанные.Свойство("Объект", Значение) Тогда + Возврат; + КонецЕсли; + + ПоказатьЗначение(, Значение); + +КонецПроцедуры + +&НаКлиенте +Процедура Очистить(Команда) + ОчиститьСведения(); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ОчиститьСведения() + НаборЗаписей = РегистрыСведений.НеудаленныеОбъекты.СоздатьНаборЗаписей(); + НаборЗаписей.Записать(); +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/InformationRegisters/НеудаленныеОбъекты/НеудаленныеОбъекты.mdo b/SSL/src/InformationRegisters/НеудаленныеОбъекты/НеудаленныеОбъекты.mdo index b4642e56b..fd8145688 100644 --- a/SSL/src/InformationRegisters/НеудаленныеОбъекты/НеудаленныеОбъекты.mdo +++ b/SSL/src/InformationRegisters/НеудаленныеОбъекты/НеудаленныеОбъекты.mdo @@ -14,6 +14,7 @@ ru Неудаленные объекты + InformationRegister.НеудаленныеОбъекты.Form.ФормаСписка Use Active @@ -107,4 +108,13 @@ true true + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + diff --git a/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl b/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl index 964d35061..6e79f5d69 100644 --- a/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl @@ -39,6 +39,16 @@ КонецПроцедуры +Процедура УстановитьИмяПланаОбменаКорреспондента(УзелОбмена, ИмяПланаОбменаКорреспондента) Экспорт + + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелОбмена); + СтруктураЗаписи.Вставить("ИмяПланаОбменаКорреспондента", ИмяПланаОбменаКорреспондента); + + ОбновитьЗапись(СтруктураЗаписи); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -450,6 +460,29 @@ КонецФункции +Функция ИмяПланаОбменаКорреспондента (УзелОбмена) Экспорт + + Результат = ""; + + Запрос = Новый Запрос( + "ВЫБРАТЬ + | ОбщиеНастройкиУзловИнформационныхБаз.ИмяПланаОбменаКорреспондента КАК ИмяПланаОбменаКорреспондента + |ИЗ + | РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз КАК ОбщиеНастройкиУзловИнформационныхБаз + |ГДЕ + | ОбщиеНастройкиУзловИнформационныхБаз.УзелИнформационнойБазы = &УзелОбмена"); + + Запрос.УстановитьПараметр("УзелОбмена", УзелОбмена); + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Результат = Выборка.ИмяПланаОбменаКорреспондента; + КонецЕсли; + + Возврат Результат; + +КонецФункции + // Процедура обновляет запись в регистре по переданным значениям структуры. // Процедура ОбновитьЗапись(СтруктураЗаписи) diff --git a/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ОбщиеНастройкиУзловИнформационныхБаз.mdo b/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ОбщиеНастройкиУзловИнформационныхБаз.mdo index 8d6a58897..ad8ba7cb1 100644 --- a/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ОбщиеНастройкиУзловИнформационныхБаз.mdo +++ b/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ОбщиеНастройкиУзловИнформационныхБаз.mdo @@ -262,6 +262,39 @@ Use + + СинхронизацияНедоступна + + ru + Синхронизация недоступна + + + Boolean + + + + Use + Use + + + + ИмяПланаОбменаКорреспондента + + ru + Имя плана обмена корреспондента + + + String + + 150 + + + + + Use + Use + + НомерОтправленного diff --git a/SSL/src/InformationRegisters/ОбщиеПоставляемыеМакетыПечати/ManagerModule.bsl b/SSL/src/InformationRegisters/ОбщиеПоставляемыеМакетыПечати/ManagerModule.bsl index 3e9b2852d..ebeb1e7bc 100644 --- a/SSL/src/InformationRegisters/ОбщиеПоставляемыеМакетыПечати/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОбщиеПоставляемыеМакетыПечати/ManagerModule.bsl @@ -132,6 +132,16 @@ ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Как сделать факсимильную подпись и печать'"); ПечатнаяФорма.ТабличныйДокумент = ПолучитьОбщийМакет("ИнструкцияПоСозданиюФаксимильнойПодписиИПечати"); ПечатнаяФорма.ПолныйПутьКМакету = "ОбщийМакет.ИнструкцияПоСозданиюФаксимильнойПодписиИПечати"; + ПечатнаяФорма.ТабличныйДокумент.ТолькоПросмотр = Истина; + + ОбластьСсылки = ПечатнаяФорма.ТабличныйДокумент.Рисунки.Сканировать; + Если ПараметрыПечати.ДоступноСканирование И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда + ОбластьСсылки.Текст = НСтр("ru = 'Сканировать'"); + МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный"); + ОбластьСсылки.Маска = МодульРаботаСФайламиСлужебный.КомандаСканироватьЛист(); + Иначе + ПечатнаяФорма.ТабличныйДокумент.Рисунки.Удалить(ОбластьСсылки); + КонецЕсли; КонецЕсли; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ОтветыНаВопросыАнкет/ОтветыНаВопросыАнкет.mdo b/SSL/src/InformationRegisters/ОтветыНаВопросыАнкет/ОтветыНаВопросыАнкет.mdo index 42daa918b..10fad17fd 100644 --- a/SSL/src/InformationRegisters/ОтветыНаВопросыАнкет/ОтветыНаВопросыАнкет.mdo +++ b/SSL/src/InformationRegisters/ОтветыНаВопросыАнкет/ОтветыНаВопросыАнкет.mdo @@ -89,6 +89,21 @@ Use + + БезОтвета + + ru + Без ответа + + + Boolean + + + + Use + Use + + Анкета diff --git a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ManagerModule.bsl b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ManagerModule.bsl index 03e75c22d..9f01e098e 100644 --- a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ManagerModule.bsl @@ -71,7 +71,6 @@ ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(Неопределено); ПараметрыОперации.НаименованиеФоновогоЗадания = НаименованиеЗадания; ПараметрыОперации.СРасширениямиБазыДанных = Истина; - ПараметрыОперации.ЗапуститьВФоне = Истина; ПараметрыОперации.ОжидатьЗавершение = 0; ИмяПроцедуры = "РегистрыСведений.ПараметрыОграниченияДоступа.ОбработчикДлительнойОперацииОбновленияВФоне"; @@ -523,14 +522,14 @@ КонецПроцедуры -Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию3(Параметры) Экспорт +Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт // Регистрация данных не требуется. Возврат; КонецПроцедуры -Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию3(Параметры) Экспорт +Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт ВключитьОграничениеДоступаНаУровнеЗаписейУниверсально(); diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl index 6f204c535..37f3a513e 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl @@ -34,12 +34,29 @@ УстановитьПривилегированныйРежим(Ложь); УстановитьОтключениеБезопасногоРежима(Ложь); - Если Не Выборка.Следующий() - Или ТипЗнч(Выборка.ХранилищеПараметра) <> Тип("ХранилищеЗначения") Тогда + Если Не Выборка.Следующий() Тогда Возврат Неопределено; КонецЕсли; - Содержимое = Выборка.ХранилищеПараметра.Получить(); + Попытка + Содержимое = Выборка.ХранилищеПараметра.Получить(); + Исключение + // При внутренней ошибке извлечения данных, обработка выполняется также + // как в случае, когда параметр еще не заполнен. + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'При получении параметра работы версии расширений + |%1 + |возникала ошибка извлечения значения из хранилища: + |%2'"), + ИмяПараметра, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + ИмяСобытия = НСтр("ru = 'Расширения конфигурации.Получение параметра работы расширений'", + ОбщегоНазначения.КодОсновногоЯзыка()); + ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация,,, Комментарий); + Возврат Неопределено; + КонецПопытки; + Если Не БезУчетаВерсииРасширений Или ТипЗнч(Содержимое) <> Тип("Структура") Или Содержимое.Количество() <> 5 @@ -693,7 +710,6 @@ ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); ПараметрыОперации.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление разделенных вспомогательных данных'"); ПараметрыОперации.СРасширениямиБазыДанных = Истина; - ПараметрыОперации.ЗапуститьВФоне = Истина; ПараметрыОперации.ОжидатьЗавершение = 0; ИмяПроцедуры = "РегистрыСведений.ПараметрыРаботыВерсийРасширений.ОбработчикДлительнойОперацииВыполнитьОбновлениеРазделенныхДанных"; diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl index 703540b6b..68289cc34 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl @@ -137,14 +137,8 @@ // См. СтандартныеПодсистемыСервер.ИзмененияПараметраРаботыПрограммы. Функция ИзмененияПараметраРаботыПрограммы(ИмяПараметра) Экспорт - ИмяПараметраХраненияИзменений = ИмяПараметра + ":Изменения"; - ПоследниеИзменения = ХранимыеДанныеПараметраРаботыПрограммы(ИмяПараметраХраненияИзменений); - - Версия = Метаданные.Версия; - СледующаяВерсия = СледующаяВерсия(Версия); - Если ОбщегоНазначения.РазделениеВключено() - И НЕ ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда // План обновления областей строится только для областей, // которые имеют версию не ниже версии неразделенных данных. @@ -161,15 +155,21 @@ Возврат Неопределено; КонецЕсли; - ОбновлениеВнеОбновленияИБ = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, Версия) = 0; + ИмяПараметраХраненияИзменений = ИмяПараметра + УточнениеИмениПараметраХраненияИзменений(); + ПоследниеИзменения = ПараметрРаботыПрограммы(ИмяПараметраХраненияИзменений); Если Не ЭтоИзмененияПараметраРаботыПрограммы(ПоследниеИзменения) Тогда + ПроверитьВозможностьОбновленияВМоделиСервиса(ИмяПараметра, Неопределено, "ПолучениеИзменений"); ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Для параметра работы программы ""%1"" не найдены изменения.'"), ИмяПараметра) + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика(); ВызватьИсключение ТекстОшибки; КонецЕсли; + Версия = Метаданные.Версия; + СледующаяВерсия = СледующаяВерсия(Версия); + ОбновлениеВнеОбновленияИБ = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, Версия) = 0; + // Изменения к более старшим версиям не нужны, // кроме случая когда обновление выполняется вне обновления ИБ, // т.е. версия ИБ равна версии конфигурации. @@ -212,7 +212,7 @@ Изменения = Неопределено; КонецЕсли; - ИмяПараметраХраненияИзменений = ИмяПараметра + ":Изменения"; + ИмяПараметраХраненияИзменений = ИмяПараметра + УточнениеИмениПараметраХраненияИзменений(); Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыПрограммы"); @@ -222,11 +222,17 @@ Попытка Блокировка.Заблокировать(); - ОбновитьСоставИзменений = Ложь; - ПоследниеИзменения = ХранимыеДанныеПараметраРаботыПрограммы(ИмяПараметраХраненияИзменений); + ОписаниеЗначения = ОписаниеЗначенияПараметраРаботыПрограммы(ИмяПараметраХраненияИзменений, Ложь); + ПоследниеИзменения = ОписаниеЗначения.Значение; + ОбновитьСоставИзменений = ОписаниеЗначения.Версия <> Метаданные.Версия; Если Не ЭтоИзмененияПараметраРаботыПрограммы(ПоследниеИзменения) Тогда - ПоследниеИзменения = Неопределено; + ПоследниеИзменения = ХранимыеДанныеПараметраРаботыПрограммы(ИмяПараметраХраненияИзменений); + Если ЭтоИзмененияПараметраРаботыПрограммы(ПоследниеИзменения) Тогда + ОбновитьСоставИзменений = Истина; + Иначе + ПоследниеИзменения = Неопределено; + КонецЕсли; КонецЕсли; Если ПоследниеИзменения = Неопределено Тогда @@ -273,8 +279,7 @@ Если ОбновитьСоставИзменений Тогда ПроверитьВозможностьОбновленияВМоделиСервиса(ИмяПараметра, Изменения, "ДобавлениеИзменений"); - УстановитьХранимыеДанныеПараметраРаботыПрограммы(ИмяПараметраХраненияИзменений, - ПоследниеИзменения); + УстановитьПараметрРаботыПрограммы(ИмяПараметраХраненияИзменений, ПоследниеИзменения); КонецЕсли; ЗафиксироватьТранзакцию(); @@ -355,6 +360,9 @@ ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); ПараметрыОперации.НаименованиеФоновогоЗадания = НСтр("ru = 'Фоновая загрузка параметров работы программы'"); + // Обновление должно выполняться в фоне для возможности видеть прогресс выполнения. + // В режиме обновления запуск всех фоновых заданий прерывается специальной вставкой кода, поэтому + // в файловом режиме заметных задержек запуска не будет даже при отсутствии монопольного режима. ПараметрыОперации.ЗапуститьВФоне = Истина; ПараметрыОперации.ОжидатьЗавершение = ОжидатьЗавершение; @@ -379,7 +387,6 @@ ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); ПараметрыОперации.НаименованиеФоновогоЗадания = НСтр("ru = 'Фоновое обновление параметров работы программы'"); ПараметрыОперации.БезРасширений = Истина; - ПараметрыОперации.ЗапуститьВФоне = Истина; ПараметрыОперации.ОжидатьЗавершение = ОжидатьЗавершение; Если ОбщегоНазначения.РежимОтладки() @@ -417,6 +424,9 @@ ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); ПараметрыОперации.НаименованиеФоновогоЗадания = НСтр("ru = 'Фоновое обновление параметров работы версий расширений'"); + // Обновление должно выполняться в фоне для возможности видеть прогресс выполнения. + // В режиме обновления запуск всех фоновых заданий прерывается специальной вставкой кода, поэтому + // в файловом режиме заметных задержек запуска не будет даже при отсутствии монопольного режима. ПараметрыОперации.ЗапуститьВФоне = Истина; ПараметрыОперации.ОжидатьЗавершение = ОжидатьЗавершение; @@ -598,7 +608,6 @@ ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); ПараметрыОперации.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление неразделенных вспомогательных данных'"); ПараметрыОперации.БезРасширений = Истина; - ПараметрыОперации.ЗапуститьВФоне = Истина; ПараметрыОперации.ОжидатьЗавершение = 0; ИмяПроцедуры = "РегистрыСведений.ПараметрыРаботыПрограммы.ОбработчикДлительнойОперацииВыполнитьОбновлениеНеразделенныхДанных"; @@ -1101,9 +1110,7 @@ Или Не ОписаниеЗначения.Свойство("Версия") Или Не ОписаниеЗначения.Свойство("Значение") Тогда - Если СтандартныеПодсистемыСервер.ВерсияПрограммыОбновленаДинамически() Тогда - СтандартныеПодсистемыСервер.ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияВерсииПрограммы(); - КонецЕсли; + СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы(); ОписаниеЗначения = Новый Структура("Версия, Значение"); Если ПроверитьВозможностьОбновленияВМоделиСервиса Тогда ПроверитьВозможностьОбновленияВМоделиСервиса(ИмяПараметра, Null, "Получение"); @@ -1114,8 +1121,9 @@ КонецФункции -// Для функций ОписаниеЗначенияПараметраРаботыПрограммы, ИзмененияПараметраРаботыПрограммы и -// процедуры ДобавитьИзмененияПараметраРаботыПрограммы. +// Для функции ОписаниеЗначенияПараметраРаботыПрограммы и +// процедур ДобавитьИзмененияПараметраРаботыПрограммы и +// и ПроверитьВозможностьОбновленияВМоделиСервиса. // Функция ХранимыеДанныеПараметраРаботыПрограммы(ИмяПараметра) @@ -1129,20 +1137,39 @@ |ГДЕ | ПараметрыРаботыПрограммы.ИмяПараметра = &ИмяПараметра"; + Содержимое = Неопределено; + УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда - Возврат Выборка.ХранилищеПараметра.Получить(); + Попытка + Содержимое = Выборка.ХранилищеПараметра.Получить(); + Исключение + // При внутренней ошибке извлечения данных, обработка выполняется также + // как в случае, когда параметр еще не заполнен. + Содержимое = Неопределено; + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'При получении параметра работы программы + |%1 + |возникала ошибка извлечения значения из хранилища: + |%2'"), + ИмяПараметра, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + ИмяСобытия = НСтр("ru = 'Параметры работы программы.Получение параметра'", + ОбщегоНазначения.КодОсновногоЯзыка()); + ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация,,, Комментарий); + КонецПопытки; КонецЕсли; УстановитьПривилегированныйРежим(Ложь); УстановитьОтключениеБезопасногоРежима(Ложь); - Возврат Неопределено; + Возврат Содержимое; КонецФункции -// Для процедур УстановитьПараметрРаботыПрограммы, ДобавитьИзмененияПараметраРаботыПрограммы. +// Для процедур УстановитьПараметрРаботыПрограммы. Процедура УстановитьХранимыеДанныеПараметраРаботыПрограммы(ИмяПараметра, ХранимыеДанные) НаборЗаписей = СлужебныйНаборЗаписей(РегистрыСведений.ПараметрыРаботыПрограммы); @@ -1156,17 +1183,27 @@ КонецПроцедуры -Процедура ПроверитьВозможностьОбновленияВМоделиСервиса(ИмяПараметра, НовоеЗначение, Операция) +Процедура ПроверитьВозможностьОбновленияВМоделиСервиса(Знач ИмяПараметра, НовоеЗначение, Знач Операция) Если Не ОбщегоНазначения.РазделениеВключено() Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Возврат; КонецЕсли; + Если СтрЗаканчиваетсяНа(ИмяПараметра, УточнениеИмениПараметраХраненияИзменений()) Тогда + ИмяПараметра = Сред(ИмяПараметра, 1, СтрДлина(ИмяПараметра) + - СтрДлина(УточнениеИмениПараметраХраненияИзменений())); + Если Операция = "Получение" Тогда + Операция = "ПолучениеИзменений"; + ИначеЕсли Операция = "Установка" Тогда + Операция = "ДобавлениеИзменений"; + КонецЕсли; + КонецЕсли; + // Запись контекста ошибки в журнал регистрации для администратора сервиса. ОписаниеЗначения = ХранимыеДанныеПараметраРаботыПрограммы(ИмяПараметра); - ИмяПараметраХраненияИзменений = ИмяПараметра + ":Изменения"; + ИмяПараметраХраненияИзменений = ИмяПараметра + УточнениеИмениПараметраХраненияИзменений(); ПоследниеИзменения = ХранимыеДанныеПараметраРаботыПрограммы(ИмяПараметраХраненияИзменений); ИмяСобытия = НСтр("ru = 'Параметры работы программы.Не выполнено обновление в неразделенном режиме'", @@ -1179,7 +1216,7 @@ |""%1"" от имени пользователя |с правами администратора сервиса, то есть в неразделенном режиме. | - |Сведения об проблемном параметре:'"), + |Сведения о проблемном параметре:'"), "/С" + " " + "ЗапуститьОбновлениеИнформационнойБазы"); Комментарий = Комментарий + Символы.ПС + @@ -1204,6 +1241,10 @@ КонецПроцедуры +Функция УточнениеИмениПараметраХраненияИзменений() + Возврат ":Изменения"; +КонецФункции + // Параметры: // ПоследниеИзменения - см. КоллекцияИзмененийПараметраРаботыПрограммы // diff --git a/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/ПериодическиеСерверныеОповещения.mdo b/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/ПериодическиеСерверныеОповещения.mdo index 5a3ccd87e..2720d3e85 100644 --- a/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/ПериодическиеСерверныеОповещения.mdo +++ b/SSL/src/InformationRegisters/ПериодическиеСерверныеОповещения/ПериодическиеСерверныеОповещения.mdo @@ -106,23 +106,6 @@ Use - - УдалитьДатаАктивности - - ru - (не используется) Дата активности - - - Date - - - - - Index - Use - Use - - КлючСеанса diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl index 3100f8192..9c45b25b3 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl @@ -519,6 +519,34 @@ ТекущиеДанные = Элементы.Макеты.ТекущиеДанные; + Если ТекущиеДанные.Изменен И Не ТекущиеДанные.ИспользуетсяИзмененный Тогда + ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьМакетПечатнойФормыДляРедактированияПродолжение", ЭтотОбъект, ТекущиеДанные); + ТекстВопроса = НСтр("ru = 'Имеется измененный макет, но он не используется. + |Можно переключиться на него и продолжить редактирование, + |либо начать редактирование стандартного макета.'"); + + Кнопки = Новый СписокЗначений(); + Кнопки.Добавить(Истина, НСтр("ru = 'Измененный ранее'")); + Кнопки.Добавить(Ложь, НСтр("ru = 'Стандартный (текущий)'")); + Кнопки.Добавить(Неопределено, НСтр("ru = 'Отмена'")); + + ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , , НСтр("ru = 'Какой макет редактировать?'")); + Возврат; + КонецЕсли; + + ОткрытьМакетПечатнойФормыДляРедактированияПродолжение(Ложь, ТекущиеДанные); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьМакетПечатнойФормыДляРедактированияПродолжение(ПереключитьИспользование, ТекущиеДанные) Экспорт + + Если ПереключитьИспользование = Неопределено Тогда + Возврат; + ИначеЕсли ПереключитьИспользование Тогда + ПереключитьИспользованиеВыбранныхМакетов(Истина); + КонецЕсли; + ПараметрыОткрытия = Новый Структура; ПараметрыОткрытия.Вставить("ИмяОбъектаМетаданныхМакета", ТекущиеДанные.ИмяОбъектаМетаданныхМакета); ПараметрыОткрытия.Вставить("ТипМакета", ТекущиеДанные.ТипМакета); @@ -1251,7 +1279,7 @@ Если Не ЗначениеЗаполнено(СтрокаПоиска) Тогда Возврат; - КонецЕсли;; + КонецЕсли; Если Ветка = Неопределено Тогда Ветка = Макеты; diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl index f947fca50..2dc851e2b 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl @@ -481,7 +481,7 @@ КонецПроцедуры &НаКлиенте -Процедура РазрешитьВнешнийРесурс(ПараметрыЗаписи); +Процедура РазрешитьВнешнийРесурс(ПараметрыЗаписи) ОповещениеОЗакрытии = Новый ОписаниеОповещения("РазрешитьВнешнийРесурсЗавершение", ЭтотОбъект, ПараметрыЗаписи); Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl index ab94fadfd..8a9c1b74f 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl @@ -500,7 +500,7 @@ КонецПроцедуры &НаКлиенте -Процедура РазрешитьВнешнийРесурс(ПараметрыЗаписи); +Процедура РазрешитьВнешнийРесурс(ПараметрыЗаписи) ОповещениеОЗакрытии = Новый ОписаниеОповещения("РазрешитьВнешнийРесурсЗавершение", ЭтотОбъект, ПараметрыЗаписи); Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl index 7958ef7b6..e9ff568e3 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl @@ -122,7 +122,7 @@ // В архиве количество файлов не соответствует ожидаемому - отказываемся от загрузки. Если СписокРаспакованныхФайлов.Количество() <> 3 Тогда - ВызватьИсключение НСтр("ru = 'Не верный формат комплекта правил. Ожидаемое количество файлов в архиве - три. Ожидаются файлы: + ВызватьИсключение НСтр("ru = 'Неверный формат комплекта правил. Ожидаемое количество файлов в архиве - три. Ожидаются файлы: |ExchangeRules.xml - правила конвертации для текущей программы; |CorrespondentExchangeRules.xml - правила конвертации для программы-корреспондента; |RegistrationRules.xml - правила регистрации для текущей программы.'"); @@ -189,30 +189,9 @@ ИнформацияОПравилахКонвертации = СтрЗаменить(ИнформацияОПравилахКонвертации, "[ИнформацияОПравилахИсточника]", ИнформацияОПравилахИсточника); ИнформацияОПравилахКонвертации = СтрЗаменить(ИнформацияОПравилахКонвертации, "[ИнформацияОПравилахКорреспондента]", ИнформацияОПравилахКорреспондента); - // Получаем имя временного файла регистрации в локальной ФС на сервере. - ИмяВременногоФайлаРегистрации = ПолучитьИмяВременногоФайла("xml"); - // Получаем файл правил для зачитки. - ДвоичныеДанныеРегистрации.Записать(ИмяВременногоФайлаРегистрации); - - // Зачитываем правила регистрации. - ЗагрузкаПравилРегистрации = Обработки.ЗагрузкаПравилРегистрацииОбъектов.Создать(); - - // свойства обработки - ЗагрузкаПравилРегистрации.ИмяПланаОбменаДляЗагрузки = ИмяПланаОбмена; - - // методы обработки - ЗагрузкаПравилРегистрации.ЗагрузитьПравила(ИмяВременногоФайлаРегистрации); - ПравилаРегистрацииЗачитанные = ЗагрузкаПравилРегистрации.ПравилаРегистрацииОбъектов; - ИнформацияОПравилахРегистрации = ЗагрузкаПравилРегистрации.ИнформацияОПравилах(); - - Если ЗагрузкаПравилРегистрации.ФлагОшибки Тогда - ВызватьИсключение НСтр("ru = 'Ошибка при загрузке правил регистрации.'"); - КонецЕсли; - // Удаляем временные файлы правил. ФайловаяСистема.УдалитьВременныйФайл(ИмяВременногоФайла); ФайловаяСистема.УдалитьВременныйФайл(ИмяВременногоФайлаКорреспондента); - ФайловаяСистема.УдалитьВременныйФайл(ИмяВременногоФайлаРегистрации); // Сделаем запись правил конвертации. ЗаписьПравилКонвертации = СоздатьМенеджерЗаписи(); @@ -232,6 +211,52 @@ ЗаписьПравилКонвертации.ПравилаЗагружены = Истина; ЗаписьПравилКонвертации.Записать(); + ЗагрузитьПравилаРегистрацииОбъектов(ДвоичныеДанныеРегистрации, ИмяФайла, ИмяПланаОбмена); + +КонецПроцедуры + +// Загружает поставляемые правила регистрации объектов для плана обмена. +// +// Параметры: +// ИмяПланаОбмена - Строка - имя плана обмена, для которого загружаются правила. +// ИмяФайлаПравил - Строка - полное имя файла правил регистрации объектов (*.xml). +// +Процедура ЗагрузитьПоставляемыеПравилаРегистрацииОбъектов(ИмяПланаОбмена, ИмяФайлаПравил) Экспорт + + Файл = Новый Файл(ИмяФайлаПравил); + ИмяФайла = Файл.Имя; + + ДвоичныеДанныеРегистрации = Новый ДвоичныеДанные(ИмяФайлаПравил); + + ЗагрузитьПравилаРегистрацииОбъектов(ДвоичныеДанныеРегистрации, ИмяФайла, ИмяПланаОбмена); + +КонецПроцедуры + +Процедура ЗагрузитьПравилаРегистрацииОбъектов(ДвоичныеДанные, ИмяФайла, ИмяПланаОбмена) + + // Получаем имя временного файла регистрации в локальной ФС на сервере. + ИмяВременногоФайлаРегистрации = ПолучитьИмяВременногоФайла("xml"); + // Получаем файл правил для зачитки. + ДвоичныеДанные.Записать(ИмяВременногоФайлаРегистрации); + + // Зачитываем правила регистрации. + ЗагрузкаПравилРегистрации = Обработки.ЗагрузкаПравилРегистрацииОбъектов.Создать(); + + // свойства обработки + ЗагрузкаПравилРегистрации.ИмяПланаОбменаДляЗагрузки = ИмяПланаОбмена; + + // методы обработки + ЗагрузкаПравилРегистрации.ЗагрузитьПравила(ИмяВременногоФайлаРегистрации); + ПравилаРегистрацииЗачитанные = ЗагрузкаПравилРегистрации.ПравилаРегистрацииОбъектов; + ИнформацияОПравилахРегистрации = ЗагрузкаПравилРегистрации.ИнформацияОПравилах(); + + Если ЗагрузкаПравилРегистрации.ФлагОшибки Тогда + ВызватьИсключение НСтр("ru = 'Ошибка при загрузке правил регистрации.'"); + КонецЕсли; + + // Удаляем временные файлы правил. + ФайловаяСистема.УдалитьВременныйФайл(ИмяВременногоФайлаРегистрации); + // Сделаем запись правил регистрации. ЗаписьПравилРегистрации = СоздатьМенеджерЗаписи(); ЗаписьПравилРегистрации.ИмяПланаОбмена = ИмяПланаОбмена; @@ -241,7 +266,7 @@ ЗаписьПравилРегистрации.ИмяФайлаПравил = ИмяФайла; ЗаписьПравилРегистрации.ИнформацияОПравилах = ИнформацияОПравилахРегистрации; ЗаписьПравилРегистрации.ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.Файл; - ЗаписьПравилРегистрации.ПравилаXML = Новый ХранилищеЗначения(ДвоичныеДанныеРегистрации, Новый СжатиеДанных()); + ЗаписьПравилРегистрации.ПравилаXML = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных()); ЗаписьПравилРегистрации.ПравилаЗачитанные = Новый ХранилищеЗначения(ПравилаРегистрацииЗачитанные); ЗаписьПравилРегистрации.ПравилаЗагружены = Истина; ЗаписьПравилРегистрации.Записать(); @@ -256,24 +281,39 @@ Процедура УдалитьПоставляемыеПравила(ИмяПланаОбмена) Экспорт Для Каждого ВидПравил Из Перечисления.ВидыПравилДляОбменаДанными Цикл - - МенеджерЗаписи = СоздатьМенеджерЗаписи(); - МенеджерЗаписи.ВидПравил = ВидПравил; - МенеджерЗаписи.ИмяПланаОбмена = ИмяПланаОбмена; - МенеджерЗаписи.Прочитать(); - МенеджерЗаписи.ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МакетКонфигурации; - ЕстьОшибки = Ложь; - ЗагрузитьПравила(ЕстьОшибки, МенеджерЗаписи); - Если ЕстьОшибки Тогда - ВызватьИсключение НСтр("ru = 'Ошибка при загрузке правил из конфигурации.'"); - Иначе - МенеджерЗаписи.Записать(); - КонецЕсли; - + УдалитьПравила(ИмяПланаОбмена, ВидПравил); КонецЦикла; КонецПроцедуры +// Удаляет поставляемые правила регистрации объектов для плана обмена (очищает данные в регистре). +// +// Параметры: +// ИмяПланаОбмена - Строка - имя плана обмена, для которого удаляются правила. +// +Процедура УдалитьПоставляемыеПравилаРегистрацииОбъектов(ИмяПланаОбмена) Экспорт + + УдалитьПравила(ИмяПланаОбмена, Перечисления.ВидыПравилДляОбменаДанными.ПравилаРегистрацииОбъектов); + +КонецПроцедуры + +Процедура УдалитьПравила(ИмяПланаОбмена, ВидПравил) + + МенеджерЗаписи = СоздатьМенеджерЗаписи(); + МенеджерЗаписи.ВидПравил = ВидПравил; + МенеджерЗаписи.ИмяПланаОбмена = ИмяПланаОбмена; + МенеджерЗаписи.Прочитать(); + МенеджерЗаписи.ИсточникПравил = Перечисления.ИсточникиПравилДляОбменаДанными.МакетКонфигурации; + ЕстьОшибки = Ложь; + ЗагрузитьПравила(ЕстьОшибки, МенеджерЗаписи); + Если ЕстьОшибки Тогда + ВызватьИсключение НСтр("ru = 'Ошибка при загрузке правил из конфигурации.'"); + Иначе + МенеджерЗаписи.Записать(); + КонецЕсли; + +КонецПроцедуры + // Определяет, используются ли типовых правила конвертации для плана обмена. // // Параметры: @@ -613,7 +653,7 @@ // В архиве количество файлов не соответствует ожидаемому - отказываемся от загрузки. Если СписокРаспакованныхФайлов.Количество() <> 3 Тогда - НСтрока = НСтр("ru = 'Не верный формат комплекта правил. Ожидаемое количество файлов в архиве - три. Ожидаются файлы: + НСтрока = НСтр("ru = 'Неверный формат комплекта правил. Ожидаемое количество файлов в архиве - три. Ожидаются файлы: |ExchangeRules.xml - правила конвертации для текущей программы; |CorrespondentExchangeRules.xml - правила конвертации для программы-корреспондента; |RegistrationRules.xml - правила регистрации для текущей программы.'"); diff --git a/SSL/src/InformationRegisters/РабочиеКаталогиФайлов/РабочиеКаталогиФайлов.mdo b/SSL/src/InformationRegisters/РабочиеКаталогиФайлов/РабочиеКаталогиФайлов.mdo index 987b243ae..e7c4fffe4 100644 --- a/SSL/src/InformationRegisters/РабочиеКаталогиФайлов/РабочиеКаталогиФайлов.mdo +++ b/SSL/src/InformationRegisters/РабочиеКаталогиФайлов/РабочиеКаталогиФайлов.mdo @@ -61,7 +61,7 @@ ru - Путь к каталогу на диске + Путь к каталогу на компьютере diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийКоллизии/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийКоллизии/Module.bsl index 5fcb7263a..f8b02422a 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийКоллизии/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийКоллизии/Module.bsl @@ -150,7 +150,7 @@ КонецПроцедуры &НаКлиенте -Процедура ИзменитьОтметкуСтрок(ЗначениеОтметки); +Процедура ИзменитьОтметкуСтрок(ЗначениеОтметки) Для Каждого ВыделеннаяСтрока Из ТаблицаОбъектовИсправления Цикл diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПоДатеЗапретаЗагрузки/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПоДатеЗапретаЗагрузки/Module.bsl index 9e2b86060..c3e3cb85f 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПоДатеЗапретаЗагрузки/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПоДатеЗапретаЗагрузки/Module.bsl @@ -124,7 +124,7 @@ КонецПроцедуры &НаКлиенте -Процедура ИзменитьОтметкуСтрок(ЗначениеОтметки); +Процедура ИзменитьОтметкуСтрок(ЗначениеОтметки) Для Каждого ВыделеннаяСтрока Из ТаблицаОбъектовИсправления Цикл diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПроведения/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПроведения/Module.bsl index 047715f08..a74045e11 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПроведения/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ОбработкаПредупрежденийПроведения/Module.bsl @@ -82,7 +82,7 @@ #Область СлужебныеПроцедурыИФункции &НаКлиенте -Процедура ИзменитьОтметкуСтрок(ЗначениеОтметки); +Процедура ИзменитьОтметкуСтрок(ЗначениеОтметки) Для Каждого ВыделеннаяСтрока Из ТаблицаОбъектовИсправления Цикл diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНепроведенногоДокумента/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНепроведенногоДокумента/Module.bsl index 8c40ce18a..f6bf25dc6 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНепроведенногоДокумента/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеНепроведенногоДокумента/Module.bsl @@ -181,7 +181,7 @@ ОтменитьТранзакцию(); ШаблонСообщения = НСтр("ru = 'Не удалось провести документ ""%1"" по причине:%2 %3.'", ОбщегоНазначения.КодОсновногоЯзыка()); - ПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); ОбщегоНазначения.СообщитьПользователю(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ПроблемныйОбъект, Символы.ПС, ПредставлениеОшибки)); КонецПопытки; diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеОКоллизии/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеОКоллизии/Module.bsl index f67260956..b89ac18a2 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеОКоллизии/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеОКоллизии/Module.bsl @@ -236,7 +236,7 @@ Исключение ПредставлениеОбъекта = ?(ОбщегоНазначения.СсылкаСуществует(ПроблемныйОбъект), ПроблемныйОбъект, ПроблемныйОбъект.Метаданные()); - ТекстИсключения = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ТекстИсключения = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); ШаблонТекста = НСтр("ru = 'Не удалось принять версию объекта ""%1"" по причине:%2 %3.'", ОбщегоНазначения.КодОсновногоЯзыка()); ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, ПредставлениеОбъекта, Символы.ПС, ТекстИсключения); diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеПоДатеЗапретаЗагрузки/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеПоДатеЗапретаЗагрузки/Module.bsl index 1b4f1dc3c..87230869a 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеПоДатеЗапретаЗагрузки/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупреждениеПоДатеЗапретаЗагрузки/Module.bsl @@ -228,7 +228,7 @@ Исключение ПредставлениеОбъекта = ?(ОбщегоНазначения.СсылкаСуществует(ПроблемныйОбъект), ПроблемныйОбъект, ПроблемныйОбъект.Метаданные()); - ТекстИсключения = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + ТекстИсключения = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); ШаблонТекста = НСтр("ru = 'Не удалось принять версию объекта ""%1"" по причине:%2 %3.'", ОбщегоНазначения.КодОсновногоЯзыка()); ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, ПредставлениеОбъекта, Символы.ПС, ТекстИсключения); diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Form.form b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Form.form index b3cab5e07..f04c21e96 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Form.form +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Form.form @@ -1809,24 +1809,9 @@ true - - Список.АвторДругойВерсии - - - Список.НовыйОбъект - - - Список.НомерДругойВерсии - - - Список.НомерЭтойВерсии - Список.Пропущена - - Список.ТипСтрокой - Список.ВерсияИзДругойПрограммы diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl index 956c063d4..90894a80d 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/ПредупрежденияСинхронизаций/Module.bsl @@ -938,7 +938,7 @@ #Область ПакетноеИсправлениеОшибок &НаКлиенте -Процедура ПровестиДокументыПоВыделеннымСтрокам(ВыделенныеСтроки); +Процедура ПровестиДокументыПоВыделеннымСтрокам(ВыделенныеСтроки) ДанныеВыделенныхСтрок = Новый Массив; Для Каждого ИндексСтроки Из ВыделенныеСтроки Цикл @@ -975,7 +975,7 @@ КонецПроцедуры &НаКлиенте -Процедура КоллизииПоВыделеннымСтрокам(ВыделенныеСтроки); +Процедура КоллизииПоВыделеннымСтрокам(ВыделенныеСтроки) ТипыПредупрежденийКоллизии = Новый Массив(2); ТипыПредупрежденийКоллизии[0] = КэшЗначений.НепринятыеДанныеПоКоллизии; @@ -1021,7 +1021,7 @@ КонецПроцедуры &НаКлиенте -Процедура ЗапретЗагрузкиПоВыделеннымСтрокам(ВыделенныеСтроки); +Процедура ЗапретЗагрузкиПоВыделеннымСтрокам(ВыделенныеСтроки) ТипыПредупрежденийКоллизии = Новый Массив(2); ТипыПредупрежденийКоллизии[0] = КэшЗначений.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе; diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Form.form b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Form.form index 48fc58133..4f55e563a 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Form.form +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Form.form @@ -5420,9 +5420,6 @@ true true true - - НепринятыеПоДате.DefaultPicture - SelectionPresentation true @@ -7230,9 +7227,6 @@ Коллизии.Дата - - Коллизии.ДругаяВерсияПринята - Коллизии.НомерДругойВерсии @@ -7277,9 +7271,6 @@ true - - НепринятыеПоДате.ДругаяВерсияПринята - НепринятыеПоДате.АвторДругойВерсии @@ -7563,9 +7554,6 @@ true - - ОшибкиОбъектаXDTO.ТипСтрокой - ОшибкиОбъектаXDTO.ДатаВозникновения diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl index 21ff89848..55524a3a0 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl @@ -615,7 +615,7 @@ КонецПроцедуры &НаСервере -Функция ПодготовитьОтборыЖурналаРегистрации(); +Функция ПодготовитьОтборыЖурналаРегистрации() УровниПредупреждений = Новый Массив(); УровниПредупреждений.Добавить(Строка(УровеньЖурналаРегистрации.Ошибка)); diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl index e40a8b3e0..ef00bb2e7 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl @@ -879,7 +879,8 @@ ОтменитьТранзакцию(); ИмяСобытия = НСтр("ru = 'Обмен данными'", ОбщегоНазначения.КодОсновногоЯзыка()); - ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка,,, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение; КонецПопытки; diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаЗаписи/Form.form new file mode 100644 index 000000000..5169a1a97 --- /dev/null +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаЗаписи/Form.form @@ -0,0 +1,300 @@ + + + + <key>ru</key> + <value>Снимок отчета</value> + + + ГруппаРеквизиты + 4 + + Отчет + 9 + true + true + + true + + + Отчет + + 2 + + ОтчетРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + + ОтчетКонтекстноеМеню + 10 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Вариант + 12 + true + true + + true + + + Вариант + + 2 + + ВариантРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + + ВариантКонтекстноеМеню + 13 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ДатаАктуальности + 6 + + <key>ru</key> + <value>Актуальность</value> + + true + true + + true + + + ДатаАктуальности + + 2 + + ДатаАктуальностиРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + + ДатаАктуальностиКонтекстноеМеню + 7 + true + + LabelField + Enter + true + Left + true + + true + true + + + true + true + + true + + + <key>ru</key> + <value>Реквизиты</value> + + + ГруппаРеквизитыРасширеннаяПодсказка + 5 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + + + + ТабДокумент + 1 + true + true + + true + + + ТабДокумент + + None + + ТабДокументРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + ТабДокументКонтекстноеМеню + 2 + true + + SpreadsheetDocumentField + Enter + true + Left + true + + 50 + true + 10 + true + true + true + Special + ScrollAuto + ScrollAuto + true + Always + Auto + true + true + true + + + None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + Vertical + true + true + true + auto + true + + ТабДокумент + + <key>ru</key> + <value>Таб документ</value> + + 2 + + SpreadsheetDocument + + + true + + + true + + + + + ДатаАктуальности + + <key>ru</key> + <value>Дата актуальности</value> + + 3 + + Date + + + + true + + + true + + + + Отчет + + <key>ru</key> + <value>Отчет</value> + + 4 + + CatalogRef.ИдентификаторыОбъектовРасширений + CatalogRef.ДополнительныеОтчетыИОбработки + CatalogRef.ИдентификаторыОбъектовМетаданных + + + true + + + true + + + + Вариант + + <key>ru</key> + <value>Вариант</value> + + 5 + + CatalogRef.ВариантыОтчетов + + + true + + + true + + + + + + + diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаЗаписи/Module.bsl new file mode 100644 index 000000000..bd2168490 --- /dev/null +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаЗаписи/Module.bsl @@ -0,0 +1,54 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + СтруктураЗаписи = Неопределено; + Если Не Параметры.Свойство("СтруктураЗаписи", СтруктураЗаписи) Тогда + ОбщегоНазначения.СообщитьПользователю(НСтр( + "ru = 'Просмотр снимка отчета доступен только из списка снимков отчетов пользователя.'"), , , , Отказ); + Возврат; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(ЭтотОбъект, СтруктураЗаписи); + + УстановитьПривилегированныйРежим(Истина); + + Запись = РегистрыСведений.СнимкиОтчетов.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Параметры.СтруктураЗаписи); + Запись.Прочитать(); + Если Не Запись.Выбран() Тогда + ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Не найдена запись по указанным параметрам.'"), , , , Отказ); + ИначеЕсли Запись.ОшибкаОбновленияОтчета Тогда + ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Снимок отчета не был сформирован.'"), , , , Отказ); + КонецЕсли; + Если Отказ Тогда + Возврат; + КонецЕсли; + + РезультатОтчета = Запись.РезультатОтчета.Получить(); + Если ТипЗнч(РезультатОтчета) = Тип("ТабличныйДокумент") Тогда + ТабДокумент.Вывести(РезультатОтчета); + Иначе + ОбщегоНазначения.СообщитьПользователю(НСтр( + "ru = 'Ошибка при чтении снимка отчета - некорректные данные.'"), , , , Отказ); + КонецЕсли; + + Если Не Отказ Тогда + Запись.ДатаПоследнегоПросмотра = ТекущаяДатаСеанса(); + Запись.Записать(); + КонецЕсли; + + УстановитьПривилегированныйРежим(Ложь); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаПросмотраОтчетов/Form.form b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаПросмотраОтчетов/Form.form new file mode 100644 index 000000000..021e8a207 --- /dev/null +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаПросмотраОтчетов/Form.form @@ -0,0 +1,1104 @@ + + + + ОтчетТабличныйДокумент + 1 + true + true + + true + + + ОтчетТабличныйДокумент + + true + None + AlignCenter + AlignDrawingBottom + AlignDrawingCenter + AlignDrawingLeft + AlignDrawingMiddle + AlignDrawingRight + AlignDrawingTop + AlignJustify + AlignLeft + AlignRight + BackColor + BlackAndWhiteView + Bold + BorderAll + BorderBottom + BorderColor + BorderInside + BorderLeft + BorderNone + BorderOutline + BorderRight + BorderTop + BringDrawingForward + BringDrawingToFront + ClearAll + ClearContent + CollapseAllGroups + ColumnWidth + CombineToGroup + CopyToClipboard + DeleteColumns + DeleteComment + DeleteRows + DistributeDrawingsHorizontally + DistributeDrawingsVertically + Edit + Ellipse + EqualDrawingHeight + EqualDrawingSize + EqualDrawingWidth + ExpandAllGroups + Find + FindNext + FindPrevious + FixTable + Font + GoToCell + Group + HeaderFooter + Hide + InsertColumnsLeft + InsertColumnsRight + InsertComment + InsertPageBreak + InsertRows + InsertRowsBottom + InsertRowsTop + Italic + Line + Merge + Names + NextComment + PageSetup + PageViewMode + PasteFromClipboard + Picture + Preview + PreviousComment + Print + PrintImmediately + Properties + Rectangle + Redo + RemoveFromGroup + RemoveName + RemovePageBreak + RemovePrintArea + RemoveRepeatOnEachPage + RepeatOnEachPage + RowHeight + Save + SaveAs + SearchEverywhere + SelectAll + SendDrawingBackward + SendDrawingToBack + SetName + SetPrintArea + Show + ShowCellNames + ShowComments + ShowGrid + ShowGroups + ShowHeaders + ShowRowAndColumnNames + SplitCell + Text + TextColor + ThickBorderBottom + ThickBorderOutline + ThickBorderTop + Underline + Undo + Ungroup + + ОтчетТабличныйДокументРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + ОтчетТабличныйДокументКонтекстноеМеню + 2 + true + + SpreadsheetDocumentField + Enter + true + Left + true + + 50 + true + 10 + true + true + true + Special + ScrollAlways + ScrollAlways + true + Always + Auto + true + + + + ГруппаКнопокПросмотрОтчетов + 4 + + ГруппаКнопокПросмотрОтчетовВложенная + 6 + + ГруппаСнимкиОтчетов + 8 + + КнопкаСнимкиОтчетов + 10 + true + true + + true + + + КнопкаСнимкиОтчетовРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + UsualButton + Form.Command.СнимкиОтчетов + Supplementary + Picture + true + true + UserCmds + Auto + None + + + ДекорацияСнимкиОтчетов + 37 + + <key>ru</key> + <value>Варианты</value> + + true + true + + true + + + ДекорацияСнимкиОтчетовРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + ДекорацияСнимкиОтчетовКонтекстноеМеню + 38 + true + + Label + true + 1 + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Снимки отчетов</value> + + true + + ГруппаСнимкиОтчетовРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + UsualGroup + + Vertical + None + None + Center + true + true + Auto + Auto + + + + ГруппаКнопокПерейтиКНачалу + 14 + + КнопкаПерейтиКНачалу + 16 + true + true + + true + + + КнопкаПерейтиКНачалуРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + UsualButton + Form.Command.ПерейтиКНачалу + Supplementary + Picture + true + true + UserCmds + Auto + None + + + ДекорацияПерейтиКНачалу + 40 + + <key>ru</key> + <value>Начало</value> + + true + true + + true + + + ДекорацияПерейтиКНачалуРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + ДекорацияПерейтиКНачалуКонтекстноеМеню + 41 + true + + Label + true + 1 + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Кнопок перейти к началу</value> + + true + + ГруппаКнопокПерейтиКНачалуРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + UsualGroup + + Vertical + None + None + Center + true + true + Auto + Auto + + + + ГруппаКнопокПерейтиНазад + 18 + + КнопкаПерейтиНазад + 20 + true + true + + true + + + КнопкаПерейтиНазадРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + UsualButton + Form.Command.ПерейтиНазад + Supplementary + Picture + true + true + UserCmds + Auto + None + + + ДекорацияПерейтиНазад + 43 + + <key>ru</key> + <value>Назад</value> + + true + true + + true + + + ДекорацияПерейтиНазадРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + + ДекорацияПерейтиНазадКонтекстноеМеню + 44 + true + + Label + true + 1 + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Кнопок перейти назад</value> + + true + + ГруппаКнопокПерейтиНазадРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + UsualGroup + + Vertical + None + None + Center + true + true + Auto + Auto + + + + ГруппаКнопокПерейтиВперед + 22 + + КнопкаПерейтиВперед + 24 + true + true + + true + + + КнопкаПерейтиВпередРасширеннаяПодсказка + 25 + Label + true + true + + Left + + + UsualButton + Form.Command.ПерейтиВперед + Supplementary + Picture + true + true + UserCmds + Auto + None + + + ДекорацияПерейтиВперед + 46 + + <key>ru</key> + <value>Вперед</value> + + true + true + + true + + + ДекорацияПерейтиВпередРасширеннаяПодсказка + 48 + Label + true + true + + Left + + + + ДекорацияПерейтиВпередКонтекстноеМеню + 47 + true + + Label + true + 1 + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Кнопок перейти вперед</value> + + true + + ГруппаКнопокПерейтиВпередРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + UsualGroup + + Vertical + None + None + Center + true + true + Auto + Auto + + + + ГруппаКнопокПерейтиККонцу + 26 + + КнопкаПерейтиККонцу + 28 + true + true + + true + + + КнопкаПерейтиККонцуРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + UsualButton + Form.Command.ПерейтиККонцу + Supplementary + Picture + true + true + UserCmds + Auto + None + + + ДекорацияПерейтиККонцу + 49 + + <key>ru</key> + <value>Конец</value> + + true + true + + true + + + ДекорацияПерейтиККонцуРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + ДекорацияПерейтиККонцуКонтекстноеМеню + 50 + true + + Label + true + 1 + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Кнопок перейти к концу</value> + + true + + ГруппаКнопокПерейтиККонцуРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + UsualGroup + + Vertical + None + None + Center + true + true + Auto + Auto + + + + ГруппаКнопокУдалитьСнимокОтчета + 30 + + КнопкаУдалитьСнимокОтчета + 32 + true + true + + true + + + КнопкаУдалитьСнимокОтчетаРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + UsualButton + Form.Command.УдалитьСнимокОтчета + Supplementary + Picture + true + true + UserCmds + Auto + None + + + ДекорацияУдалитьСнимокОтчета + 34 + + <key>ru</key> + <value>Удалить</value> + + true + true + + true + + + ДекорацияУдалитьСнимокОтчетаРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + ДекорацияУдалитьСнимокОтчетаКонтекстноеМеню + 35 + true + + Label + true + 1 + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Кнопок удалить снимок отчета</value> + + true + + ГруппаКнопокУдалитьСнимокОтчетаРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + UsualGroup + + Vertical + None + None + Center + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Кнопок просмотр отчетов вложенная</value> + + + ГруппаКнопокПросмотрОтчетовВложеннаяРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Center + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Кнопок просмотр отчетов</value> + + Left + + ГруппаКнопокПросмотрОтчетовРасширеннаяПодсказка + 5 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + None + None + Center + true + true + Auto + Auto + + + None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + auto + true + + ТекущийСнимокОтчета + 1 + + Number + + 5 + true + + + + true + + + true + + + + ОтчетТабличныйДокумент + + <key>ru</key> + <value>Табличный документ - результат формирования отчета</value> + + 2 + + SpreadsheetDocument + + + true + + + true + + + + + СнимкиОтчетов + 3 + + ValueTable + + + true + + + true + + + Отчет + 1 + + CatalogRef.ИдентификаторыОбъектовРасширений + CatalogRef.ДополнительныеОтчетыИОбработки + CatalogRef.ИдентификаторыОбъектовМетаданных + + + true + + + true + + + + Вариант + 2 + + CatalogRef.ВариантыОтчетов + + + true + + + true + + + + ХешПользовательскойНастройки + 3 + + String + + 100 + + + + true + + + true + + + + Пользователь + 4 + + CatalogRef.Пользователи + + + true + + + true + + + + + Пользователь + 4 + + CatalogRef.Пользователи + + + true + + + true + + + + ПерейтиВперед + + <key>ru</key> + <value>Перейти вперед</value> + + 1 + + ru + Перейти вперед + + + true + + + StdPicture.GoForward + + + + ПерейтиВперед + + + Auto + Auto + + + ПерейтиККонцу + + <key>ru</key> + <value>Перейти к концу</value> + + 2 + + ru + Перейти к концу + + + true + + + StdPicture.GoToEnd + + + + ПерейтиККонцу + + + Auto + Auto + + + ПерейтиКНачалу + + <key>ru</key> + <value>Перейти к началу</value> + + 3 + + ru + Перейти к началу + + + true + + + StdPicture.GoToBegin + + + + ПерейтиКНачалу + + + Auto + Auto + + + ПерейтиНазад + + <key>ru</key> + <value>Перейти назад</value> + + 4 + + ru + Перейти назад + + + true + + + StdPicture.GoBack + + + + ПерейтиНазад + + + Auto + Auto + + + СнимкиОтчетов + + <key>ru</key> + <value>Снимки отчетов</value> + + 5 + + ru + Список снимков отчетов + + + true + + + StdPicture.ListViewModeList + + + + СнимкиОтчетов + + + TextPicture + Auto + Auto + + + УдалитьСнимокОтчета + + <key>ru</key> + <value>Удалить снимок отчета</value> + + 6 + + ru + Удалить снимок отчета + + + true + + + StdPicture.Delete + + + + УдалитьСнимокОтчета + + + Auto + Auto + + + + + + diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаПросмотраОтчетов/Module.bsl b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаПросмотраОтчетов/Module.bsl new file mode 100644 index 000000000..c0d37503c --- /dev/null +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаПросмотраОтчетов/Module.bsl @@ -0,0 +1,184 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УИДПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор; + Пользователь = Справочники.Пользователи.НайтиПоРеквизиту("ИдентификаторПользователяИБ", + Новый УникальныйИдентификатор(УИДПользователяИБ)); + + ИмяСправочникаВариантыОтчетов = ""; + Параметры.Свойство("ИмяСправочникаВариантыОтчетов", ИмяСправочникаВариантыОтчетов); + + ВариантОтчета = Неопределено; + Если Параметры.Свойство("ВариантОтчета", ВариантОтчета) Тогда + Для Каждого ПодчиненныйЭлемент Из Элементы.ГруппаКнопокПросмотрОтчетовВложенная.ПодчиненныеЭлементы Цикл + Если ПодчиненныйЭлемент.Имя <> "ГруппаКнопокУдалитьСнимокОтчета" Тогда + ПодчиненныйЭлемент.Доступность = Ложь; + КонецЕсли; + КонецЦикла; + КонецЕсли; + + ОбновитьСнимкиОтчетов(ИмяСправочникаВариантыОтчетов, ВариантОтчета); + + Если СнимкиОтчетов.Количество() > 0 Тогда + ТекущийСнимокОтчета = 1; + ПрочитатьСнимокОтчета(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура СнимкиОтчетов(Команда) + + ОткрытьФорму("РегистрСведений.СнимкиОтчетов.ФормаСписка", + Новый Структура("Пользователь", Пользователь)); + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиККонцу(Команда) + + ТекущийСнимокОтчета = СнимкиОтчетов.Количество(); + ПрочитатьСнимокОтчета(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиКНачалу(Команда) + + Если СнимкиОтчетов.Количество() > 0 Тогда + ТекущийСнимокОтчета = 1; + ПрочитатьСнимокОтчета(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиНазад(Команда) + + Если ТекущийСнимокОтчета > 1 Тогда + ТекущийСнимокОтчета = ТекущийСнимокОтчета - 1; + ПрочитатьСнимокОтчета(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиВперед(Команда) + + Если ТекущийСнимокОтчета < СнимкиОтчетов.Количество() Тогда + ТекущийСнимокОтчета = ТекущийСнимокОтчета + 1; + ПрочитатьСнимокОтчета(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьСнимокОтчета(Команда) + + Если ТекущийСнимокОтчета <> 0 Тогда + УдалитьСнимокОтчетаНаСервере(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ОбновитьСнимкиОтчетов(ИмяСправочникаВариантыОтчетов, ВариантОтчета) + + СнимкиОтчетовПользователя = РегистрыСведений.СнимкиОтчетов.СнимкиОтчетовПользователя(Пользователь, ИмяСправочникаВариантыОтчетов); + СнимкиОтчетовПользователя.ЗаполнитьЗначения(Пользователь, "Пользователь"); + + Если ЗначениеЗаполнено(ВариантОтчета) Тогда + Счетчик = 0; + Пока Счетчик < СнимкиОтчетовПользователя.Количество() Цикл + Если СнимкиОтчетовПользователя[Счетчик].Вариант = ВариантОтчета Тогда + Счетчик = Счетчик + 1; + Иначе + СнимкиОтчетовПользователя.Удалить(Счетчик); + КонецЕсли; + КонецЦикла; + КонецЕсли; + + СнимкиОтчетов.Загрузить(СнимкиОтчетовПользователя); + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьСнимокОтчета() + + СтрокаОтчет = СнимкиОтчетов[ТекущийСнимокОтчета-1]; + + ОтчетТабличныйДокумент.Очистить(); + ДатаАктуальности = Неопределено; + + МенеджерЗаписи = РегистрыСведений.СнимкиОтчетов.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтрокаОтчет); + МенеджерЗаписи.Прочитать(); + Если МенеджерЗаписи.Выбран() Тогда + Если МенеджерЗаписи.ОшибкаОбновленияОтчета Тогда + ОбщегоНазначения.СообщитьПользователю(НСтр( + "ru = 'Снимок отчета был записан с ошибкой - необходимо его перезаписать'")); + Иначе + РезультатОтчета = МенеджерЗаписи.РезультатОтчета.Получить(); + Если ТипЗнч(РезультатОтчета) = Тип("ТабличныйДокумент") Тогда + ОтчетТабличныйДокумент.Вывести(РезультатОтчета); + МенеджерЗаписи.ДатаПоследнегоПросмотра = ТекущаяДатаСеанса(); + МенеджерЗаписи.Записать(); + Иначе + ОбщегоНазначения.СообщитьПользователю(НСтр( + "ru = 'Ошибка при чтении снимка отчета - некорректные данные'")); + КонецЕсли; + КонецЕсли; + ДатаАктуальности = МенеджерЗаписи.ДатаАктуальности; + Иначе + ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Ошибка при чтении снимка отчета - отчет был удален'")); + КонецЕсли; + + Заголовок = НСтр("ru = 'Актуальность'") + ": " + ДатаАктуальности; + +КонецПроцедуры + +&НаСервере +Процедура УдалитьСнимокОтчетаНаСервере() + + СтрокаОтчет = СнимкиОтчетов[ТекущийСнимокОтчета-1]; + + ОтчетТабличныйДокумент.Очистить(); + + МенеджерЗаписи = РегистрыСведений.СнимкиОтчетов.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтрокаОтчет); + МенеджерЗаписи.Прочитать(); + Если МенеджерЗаписи.Выбран() Тогда + МенеджерЗаписи.Удалить(); + КонецЕсли; + + СнимкиОтчетов.Удалить(СтрокаОтчет); + + Если ТекущийСнимокОтчета > СнимкиОтчетов.Количество() Тогда + ТекущийСнимокОтчета = СнимкиОтчетов.Количество(); + КонецЕсли; + + Если ТекущийСнимокОтчета > 0 Тогда + ПрочитатьСнимокОтчета(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаСписка/Form.form new file mode 100644 index 000000000..1cdedd5fd --- /dev/null +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаСписка/Form.form @@ -0,0 +1,1368 @@ + + + + <key>ru</key> + <value>Снимки отчетов</value> + + + ГруппаСнимкиОтчетов + 23 + + СнимкиОтчетов + 1 + true + true + + true + + + СнимкиОтчетов + + None + Add + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + FindByCurrentValue + MoveDown + MoveUp + OutputList + SearchEverywhere + SelectAll + ShowMultipleSelection + ShowRowRearrangement + SortListAsc + SortListDesc + + СнимкиОтчетовПометка + 25 + true + true + + true + + + СнимкиОтчетов.Пометка + + None + + СнимкиОтчетовПометкаРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + СнимкиОтчетовПометкаКонтекстноеМеню + 26 + true + + CheckBoxField + true + Left + true + + + + СнимкиОтчетовВариант + 17 + true + true + + true + + + СнимкиОтчетов.НаименованиеВарианта + + None + + СнимкиОтчетовВариантРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + + СнимкиОтчетовВариантКонтекстноеМеню + 18 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + СнимкиОтчетовДатаАктуальности + 70 + true + true + + true + + + СнимкиОтчетов.ДатаАктуальности + + None + + СнимкиОтчетовДатаАктуальностиРасширеннаяПодсказка + 72 + Label + true + true + + Left + + + + СнимкиОтчетовДатаАктуальностиКонтекстноеМеню + 71 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + СнимкиОтчетовПользователь + 76 + true + true + + true + + + СнимкиОтчетов.Пользователь + + None + + СнимкиОтчетовПользовательРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + + СнимкиОтчетовПользовательКонтекстноеМеню + 77 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + СнимкиОтчетовКоманднаяПанель + 3 + Left + + + Selection + СписокСнимковОтчетовВыбор + + + BeforeDeleteRow + СнимкиОтчетовПередУдалением + + + СнимкиОтчетовСтрокаПоиска + 5 + + СнимкиОтчетовСтрокаПоискаРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + + СнимкиОтчетовСтрокаПоискаКонтекстноеМеню + 6 + true + + СнимкиОтчетов + + true + + + + СнимкиОтчетовСостояниеПросмотра + 8 + + СнимкиОтчетовСостояниеПросмотраРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + + СнимкиОтчетовСостояниеПросмотраКонтекстноеМеню + 9 + true + + ViewStatusAddition + СнимкиОтчетов + + true + + + + СнимкиОтчетовУправлениеПоиском + 11 + + СнимкиОтчетовУправлениеПоискомРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + + СнимкиОтчетовУправлениеПоискомКонтекстноеМеню + 12 + true + + SearchControlAddition + СнимкиОтчетов + + true + + + + СнимкиОтчетовРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + + СнимкиОтчетовКонтекстноеМеню + 2 + + СнимкиОтчетовОткрытьСнимокОтчета + 28 + + <key>ru</key> + <value>Открыть</value> + + true + true + + true + + + СнимкиОтчетовОткрытьСнимокОтчетаРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + Form.Command.ОткрытьСнимокОтчета + Normal + PictureAndText + true + true + UserCmds + + StdPicture.Find + + OnlyInContextMenu + InCommandBarAndInAdditionalSubmenu + + + СнимкиОтчетовСохранитьСнимокОтчета + 30 + true + true + + true + + + СнимкиОтчетовСохранитьСнимокОтчетаРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + Form.Command.ОбновитьСнимокОтчета + Normal + Auto + true + true + UserCmds + OnlyInContextMenu + InCommandBarAndInAdditionalSubmenu + + + СнимкиОтчетовУдалитьСнимокОтчета + 32 + true + true + + true + + + СнимкиОтчетовУдалитьСнимокОтчетаРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + Form.Item.СнимкиОтчетов.StandardCommand.Delete + Normal + Auto + true + true + UserCmds + OnlyInContextMenu + + true + + true + true + true + true + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + AsFileRef + None + None + None + true + + + true + true + + true + + + <key>ru</key> + <value>Снимки отчетов</value> + + + ГруппаСнимкиОтчетовРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + true + true + Auto + Auto + + + + ГруппаКнопокМобильныйКлиент + 42 + + ГруппаКнопокМобильныйКлиентВложенная + 44 + + ГруппаОтметитьВсе + 46 + + КнопкаОтметитьВсеКартинка + 56 + true + true + + true + + + КнопкаОтметитьВсеКартинкаРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + UsualButton + Form.Command.ОтметитьВсе + Supplementary + Picture + true + true + UserCmds + Auto + None + + + КнопкаОтметитьВсе + 54 + true + true + + true + + + КнопкаОтметитьВсеРасширеннаяПодсказка + 55 + Label + true + true + + Left + + + UsualButton + Form.Command.ОтметитьВсе + Supplementary + true + true + UserCmds + Auto + None + + true + true + + true + + + <key>ru</key> + <value>Отметить все</value> + + + ГруппаОтметитьВсеРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + + + + ГруппаСнятьВсе + 48 + + КнопкаСнятьВсеКартинка + 58 + true + true + + true + + + КнопкаСнятьВсеКартинкаРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + UsualButton + Form.Command.СнятьВсе + Supplementary + Picture + true + true + UserCmds + Auto + None + + + КнопкаСнятьВсе + 60 + true + true + + true + + + КнопкаСнятьВсеРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + UsualButton + Form.Command.СнятьВсе + Supplementary + true + true + UserCmds + Auto + None + + true + true + + true + + + <key>ru</key> + <value>Снять все</value> + + + ГруппаСнятьВсеРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + + + + ГруппаСохранитьСнимкиОтчетов + 50 + + КнопкаСохранитьСнимкиОтчетовКартинка + 62 + true + true + + true + + + КнопкаСохранитьСнимкиОтчетовКартинкаРасширеннаяПодсказка + 63 + Label + true + true + + Left + + + UsualButton + Form.Command.ОбновитьСнимкиОтчетов + Supplementary + Picture + true + true + UserCmds + Auto + None + + + КнопкаСохранитьСнимкиОтчетов + 64 + true + true + + true + + + КнопкаСохранитьСнимкиОтчетовРасширеннаяПодсказка + 65 + Label + true + true + + Left + + + UsualButton + Form.Command.ОбновитьСнимкиОтчетов + Supplementary + true + true + UserCmds + Auto + None + + true + true + + true + + + <key>ru</key> + <value>Сохранить снимки отчетов</value> + + + ГруппаСохранитьСнимкиОтчетовРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + + + + ГруппаУдалитьСнимкиОтчетов + 52 + + КнопкаУдалитьСнимкиОтчетовКартинка + 66 + true + true + + true + + + КнопкаУдалитьСнимкиОтчетовКартинкаРасширеннаяПодсказка + 67 + Label + true + true + + Left + + + UsualButton + Form.Command.УдалитьСнимкиОтчетов + Supplementary + Picture + true + true + UserCmds + Auto + None + + + КнопкаУдалитьСнимкиОтчетов + 68 + true + true + + true + + + КнопкаУдалитьСнимкиОтчетовРасширеннаяПодсказка + 69 + Label + true + true + + Left + + + UsualButton + Form.Command.УдалитьСнимкиОтчетов + Supplementary + true + true + UserCmds + Auto + None + + true + true + + true + + + <key>ru</key> + <value>Удалить снимки отчетов</value> + + + ГруппаУдалитьСнимкиОтчетовРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Кнопок мобильный клиент вложенная</value> + + + ГруппаКнопокМобильныйКлиентВложеннаяРасширеннаяПодсказка + 45 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + true + Auto + Auto + + + true + + true + + + <key>ru</key> + <value>Кнопок мобильный клиент</value> + + Left + Bottom + + ГруппаКнопокМобильныйКлиентРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + None + None + Center + true + true + Auto + Auto + + + + ПоказатьВсеСнимкиОтчетов + 73 + true + + true + + + ПоказатьВсеСнимкиОтчетов + + Right + + OnChange + ПоказатьВсеСнимкиОтчетовПриИзменении + + + ПоказатьВсеСнимкиОтчетовРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + + ПоказатьВсеСнимкиОтчетовКонтекстноеМеню + 74 + true + + CheckBoxField + Enter + true + Left + true + + + + ФормаКоманднаяПанель + -1 + + ФормаОтметитьВсе + 34 + true + true + + true + + + ФормаОтметитьВсеРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + Form.Command.ОтметитьВсе + Normal + Auto + true + true + UserCmds + Auto + + + ФормаСнятьВсе + 36 + true + true + + true + + + ФормаСнятьВсеРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + Form.Command.СнятьВсе + Normal + Auto + true + true + UserCmds + Auto + + + ФормаОбновитьСнимкиОтчетов + 38 + true + true + + true + + + ФормаОбновитьСнимкиОтчетовРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + Form.Command.ОбновитьСнимкиОтчетов + Normal + Auto + true + true + UserCmds + Auto + + + ФормаУдалитьСнимкиОтчетов + 40 + true + true + + true + + + ФормаУдалитьСнимкиОтчетовРасширеннаяПодсказка + 41 + Label + true + true + + Left + + + Form.Command.УдалитьСнимкиОтчетов + Normal + Auto + true + true + UserCmds + Auto + + Left + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + auto + true + + СнимкиОтчетов + + <key>ru</key> + <value>Снимки отчетов</value> + + 1 + + ValueTable + + + true + + + true + + + Отчет + 1 + + CatalogRef.ИдентификаторыОбъектовРасширений + CatalogRef.ДополнительныеОтчетыИОбработки + CatalogRef.ИдентификаторыОбъектовМетаданных + + + true + + + true + + + + Вариант + 2 + + CatalogRef.ВариантыОтчетов + + + true + + + true + + + + ХешПользовательскойНастройки + 3 + + String + + 100 + + + + true + + + true + + + + Пометка + + <key>ru</key> + <value>Пометка</value> + + 4 + + Boolean + + + true + + + true + + + + Пользователь + + <key>ru</key> + <value>Пользователь</value> + + 5 + + CatalogRef.Пользователи + + + true + + + true + + + + ДатаАктуальности + + <key>ru</key> + <value>Дата актуальности</value> + + 6 + + Date + + + + true + + + true + + + + ДатаПоследнегоПросмотра + 7 + + Date + + Date + + + + true + + + true + + + + НаименованиеВарианта + + <key>ru</key> + <value>Наименование варианта</value> + + 8 + + String + + 150 + + + + true + + + true + + + + + Пользователь + 2 + + CatalogRef.Пользователи + + + true + + + true + + + + ИмяСправочникаВариантыОтчетов + 3 + + String + + 100 + + + + true + + + true + + + + ПоказатьВсеСнимкиОтчетов + + <key>ru</key> + <value>Показать все снимки отчетов</value> + + 4 + + Boolean + + + true + + + true + + + + ОткрытьСнимокОтчета + + <key>ru</key> + <value>Открыть</value> + + 1 + + ru + Открыть снимок отчета + + + true + + + CommonPicture.ОтчетТаблица + + + + ОткрытьСнимокОтчета + + + TextPicture + Auto + Auto + + + ОбновитьСнимокОтчета + + <key>ru</key> + <value>Обновить</value> + + 2 + + ru + Обновить снимок отчета + + + true + + + StdPicture.FixTable + + + + ОбновитьСнимокОтчета + + + TextPicture + Auto + Auto + + + ОтметитьВсе + + <key>ru</key> + <value>Отметить все</value> + + 3 + + ru + Отметить все + + + true + + + StdPicture.CheckAll + + + + ОтметитьВсе + + + TextPicture + Auto + Auto + + + СнятьВсе + + <key>ru</key> + <value>Снять все</value> + + 4 + + ru + Снять все + + + true + + + StdPicture.UncheckAll + + + + СнятьВсе + + + TextPicture + Auto + Auto + + + ОбновитьСнимкиОтчетов + + <key>ru</key> + <value>Обновить</value> + + 5 + + ru + Обновить снимки отчетов + + + true + + + StdPicture.FixTable + + + + ОбновитьСнимкиОтчетов + + + TextPicture + Auto + Auto + + + УдалитьСнимкиОтчетов + + <key>ru</key> + <value>Удалить</value> + + 6 + + ru + Удалить снимки отчетов + + + true + + + StdPicture.Delete + + + + УдалитьСнимкиОтчетов + + + TextPicture + Auto + Auto + + + + + + diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаСписка/Module.bsl new file mode 100644 index 000000000..d83e7ad0e --- /dev/null +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/Forms/ФормаСписка/Module.bsl @@ -0,0 +1,286 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не Параметры.Свойство("Пользователь", Пользователь) Тогда + ОбщегоНазначения.СообщитьПользователю(НСтр( + "ru = 'Список доступен только из формы отчета или панели отчетов'"), , , , Отказ); + Возврат; + КонецЕсли; + + УстановитьУсловноеОформление(); + + Параметры.Свойство("ИмяСправочникаВариантыОтчетов", ИмяСправочникаВариантыОтчетов); + + ЗаполнитьСнимкиОтчетов(); + +#Если НЕ МобильныйАвтономныйСервер Тогда + Если Пользователи.ЭтоПолноправныйПользователь() Тогда + Элементы.ПоказатьВсеСнимкиОтчетов.Видимость = Истина; + КонецЕсли; +#КонецЕсли + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + +#Если МобильныйКлиент Тогда + ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Нет; + Элементы.ГруппаКнопокМобильныйКлиент.Видимость = Истина; + Элементы.СнимкиОтчетов.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет; + + Если ОсновнойСерверДоступен() = Ложь Тогда + Элементы.ГруппаСохранитьСнимкиОтчетов.Доступность = Ложь; + Элементы.СнимкиОтчетовСохранитьСнимокОтчета.Доступность = Ложь; + КонецЕсли; +#КонецЕсли + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ПоказатьВсеСнимкиОтчетовПриИзменении(Элемент) + + ЗаполнитьСнимкиОтчетов(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ОтметитьВсе(Команда) + + Для Каждого СтрокаОтчет Из СнимкиОтчетов Цикл + СтрокаОтчет.Пометка = Истина; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура СнятьВсе(Команда) + + Для Каждого СтрокаОтчет Из СнимкиОтчетов Цикл + СтрокаОтчет.Пометка = Ложь; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСнимкиОтчетов(Команда) + + ИдентификаторыСтрок = Новый Массив; + Для Каждого СтрокаОтчет Из СнимкиОтчетов Цикл + Если СтрокаОтчет.Пометка Тогда + ИдентификаторыСтрок.Добавить(СтрокаОтчет.ПолучитьИдентификатор()); + КонецЕсли; + КонецЦикла; + + Если ИдентификаторыСтрок.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ОписаниеОповещения = Новый ОписаниеОповещения("ПослеОбновленияСнимковОтчетов", ЭтотОбъект); + ДлительнаяОперация = Неопределено; + ПараметрыОжидания = Неопределено; + +#Если МобильныйКлиент Тогда + Выполнить("ДлительнаяОперация = ОбновитьСнимкиОтчетовНаСервере(ИдентификаторыСтрок)"); + Выполнить("ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект)"); + Выполнить("ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОписаниеОповещения, ПараметрыОжидания)"); +#Иначе + ДлительнаяОперация = ОбновитьСнимкиОтчетовНаСервере(ИдентификаторыСтрок); + ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); + ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОписаниеОповещения, ПараметрыОжидания); +#КонецЕсли + +КонецПроцедуры + + +#Если НЕ МобильныйАвтономныйСервер Тогда + +&НаСервере +Функция ОбновитьСнимкиОтчетовНаСервере(ИдентификаторыСтрок) + + ПараметрыЗаполнения = Новый Структура; + ПараметрыЗаполнения.Вставить("Пользователь", Пользователь); + ПараметрыЗаполнения.Вставить("ИмяСправочникаВариантыОтчетов", ИмяСправочникаВариантыОтчетов); + + СнимкиОтчетовПользователя = СнимкиОтчетов.Выгрузить(, "Пользователь, Отчет, Вариант, ХешПользовательскойНастройки"); + СнимкиОтчетовПользователя.Очистить(); + Для Каждого ИдентификаторСтроки Из ИдентификаторыСтрок Цикл + СтрокаОтчет = СнимкиОтчетов.НайтиПоИдентификатору(ИдентификаторСтроки); + НоваяСтрока = СнимкиОтчетовПользователя.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаОтчет); + КонецЦикла; + ПараметрыЗаполнения.Вставить("СнимкиОтчетов", СнимкиОтчетовПользователя); + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление снимков отчетов пользователя'"); + + РезультатВыполнения = ДлительныеОперации.ВыполнитьВФоне( + "РегистрыСведений.СнимкиОтчетов.ОбновитьСнимкиОтчетовПользователя", + ПараметрыЗаполнения, ПараметрыВыполнения); + + Возврат РезультатВыполнения; + +КонецФункции + +#КонецЕсли + +&НаКлиенте +Процедура ПослеОбновленияСнимковОтчетов(Результат, ДополнительныеПараметры) Экспорт + + Если Результат.Статус = "Ошибка" Тогда + ТекстОповещения = НСтр("ru = 'Не удалось обновить снимки отчетов по причине: %1'"); + ТекстОповещения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОповещения, Символы.ПС + + Результат.КраткоеПредставлениеОшибки); + Иначе + ТекстОповещения = НСтр("ru = 'Снимки отчетов обновлены.'"); + КонецЕсли; + + ПоказатьОповещениеПользователя(НСтр("ru = 'Обновление снимков завершено'"), , ТекстОповещения); + + ЗаполнитьСнимкиОтчетов(); + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьСнимкиОтчетов(Команда) + + ИдентификаторыСтрок = Новый Массив; + Для Каждого СтрокаОтчет Из СнимкиОтчетов Цикл + Если СтрокаОтчет.Пометка Тогда + ИдентификаторыСтрок.Добавить(СтрокаОтчет.ПолучитьИдентификатор()); + КонецЕсли; + КонецЦикла; + + Если ИдентификаторыСтрок.Количество() > 0 Тогда + УдалитьСнимкиОтчетовНаСервере(ИдентификаторыСтрок); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура УдалитьСнимкиОтчетовНаСервере(ИдентификаторыСтрок) + + Для Каждого ИдентификаторСтроки Из ИдентификаторыСтрок Цикл + СтрокаОтчет = СнимкиОтчетов.НайтиПоИдентификатору(ИдентификаторСтроки); + МенеджерЗаписи = РегистрыСведений.СнимкиОтчетов.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтрокаОтчет); + МенеджерЗаписи.Прочитать(); + Если МенеджерЗаписи.Выбран() Тогда + МенеджерЗаписи.Удалить(); + КонецЕсли; + СнимкиОтчетов.Удалить(СтрокаОтчет); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьСнимокОтчета(Команда) + + СтруктураЗаписи = Новый Структура("Пользователь,Отчет,Вариант,ХешПользовательскойНастройки,ДатаАктуальности"); + + СтрокаОтчет = Элементы.СнимкиОтчетов.ТекущиеДанные; + ЗаполнитьЗначенияСвойств(СтруктураЗаписи, СтрокаОтчет); + + ОткрытьФорму("РегистрСведений.СнимкиОтчетов.ФормаЗаписи", + Новый Структура("СтруктураЗаписи", СтруктураЗаписи), ЭтотОбъект, УникальныйИдентификатор); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСнимокОтчета(Команда) + + ИдентификаторыСтрок = Новый Массив; + ИдентификаторыСтрок.Добавить(Элементы.СнимкиОтчетов.ТекущаяСтрока); + + ОписаниеОповещения = Новый ОписаниеОповещения("ПослеОбновленияСнимковОтчетов", ЭтотОбъект); + ДлительнаяОперация = Неопределено; + ПараметрыОжидания = Неопределено; + +#Если МобильныйКлиент Тогда + Выполнить("ДлительнаяОперация = ОбновитьСнимкиОтчетовНаСервере(ИдентификаторыСтрок)"); + Выполнить("ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект)"); + Выполнить("ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОписаниеОповещения, ПараметрыОжидания)"); +#Иначе + ДлительнаяОперация = ОбновитьСнимкиОтчетовНаСервере(ИдентификаторыСтрок); + ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); + ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОписаниеОповещения, ПараметрыОжидания); +#КонецЕсли + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийТаблицыФормыСнимкиОтчетов + +&НаКлиенте +Процедура СписокСнимковОтчетовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + СтрокаОтчет = СнимкиОтчетов.НайтиПоИдентификатору(ВыбраннаяСтрока); + СтрокаОтчет.Пометка = Не СтрокаОтчет.Пометка; + +КонецПроцедуры + +&НаКлиенте +Процедура СнимкиОтчетовПередУдалением(Элемент, Отказ) + + ИдентификаторыСтрок = Новый Массив; + ИдентификаторыСтрок.Добавить(Элементы.СнимкиОтчетов.ТекущаяСтрока); + + УдалитьСнимкиОтчетовНаСервере(ИдентификаторыСтрок); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СнимкиОтчетовПользователь.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПоказатьВсеСнимкиОтчетов"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСнимкиОтчетов() + + СнимкиОтчетов.Загрузить(РегистрыСведений.СнимкиОтчетов.СнимкиОтчетовПользователя( + ?(ПоказатьВсеСнимкиОтчетов, Неопределено, Пользователь), ИмяСправочникаВариантыОтчетов)); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/ManagerModule.bsl b/SSL/src/InformationRegisters/СнимкиОтчетов/ManagerModule.bsl new file mode 100644 index 000000000..a7fd65b73 --- /dev/null +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/ManagerModule.bsl @@ -0,0 +1,245 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ПрограммныйИнтерфейс + +#Если НЕ МобильныйАвтономныйСервер Тогда + +// Процедура сохраняет сформированный отчет в виде табличного документа MXL в регистр сведений СнимкиОтчетов +// +// Параметры: +// РезультатОтчета - ТабличныйДокумент - снимок отчета в виде табличного документа MXL +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. +// +Процедура СохранитьСнимокОтчетаПользователя(РезультатОтчета, НастройкиОтчета) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + МенеджерЗаписи = РегистрыСведений.СнимкиОтчетов.СоздатьМенеджерЗаписи(); + + МенеджерЗаписи.Пользователь = Пользователи.ТекущийПользователь(); + МенеджерЗаписи.Отчет = НастройкиОтчета.ОтчетСсылка; + МенеджерЗаписи.Вариант = НастройкиОтчета.ВариантСсылка; + + МенеджерЗаписи.ХешПользовательскойНастройки = ОбщегоНазначения.КонтрольнаяСуммаСтрокой( + НастройкиОтчета.СвойстваРезультата.КомпоновщикНастроек.ПользовательскиеНастройки); + МенеджерЗаписи.ПользовательскаяНастройка = Новый ХранилищеЗначения(НастройкиОтчета.СвойстваРезультата.КомпоновщикНастроек.ПользовательскиеНастройки); + + МенеджерЗаписи.РезультатОтчета = Новый ХранилищеЗначения(РезультатОтчета); + МенеджерЗаписи.ДатаАктуальности = ТекущаяДатаСеанса(); + МенеджерЗаписи.ДатаПоследнегоПросмотра = ТекущаяДатаСеанса(); + + МенеджерЗаписи.Записать(); + +КонецПроцедуры + +// Процедура обновляет снимки отчетов пользователя +// +// Параметры: +// ПараметрыЗаполнения - Структура: +// * Пользователь - СправочникСсылка.Пользователи - пользователь, для которого обновляются снимки отчетов +// * СнимкиОтчетов - ТаблицаЗначений: +// ** Пользователь - СправочникСсылка.Пользователи +// ** Отчет - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// ** Вариант - СправочникСсылка.ВариантыОтчетов +// ** ХешПользовательскойНастройки - Число +// * ИмяСправочникаВариантыОтчетов - Строка - имя справочника, хранящего варианты отчетов (если это не справочник ВариантыОтчетов) +// АдресХранилища - Строка - используется для возможности выполнения в фоновом задании. +// +Процедура ОбновитьСнимкиОтчетовПользователя(ПараметрыЗаполнения, АдресХранилища) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + МодульОценкаПроизводительности = Неопределено; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда + МодульОценкаПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности"); + ОписаниеЗамера = МодульОценкаПроизводительности.НачатьЗамерДлительнойОперации( + "ОбновитьСнимкиОтчетовПользователя"); + КонецЕсли; + + ИмяСправочникаВариантыОтчетов = ""; + ПараметрыЗаполнения.Свойство("ИмяСправочникаВариантыОтчетов", ИмяСправочникаВариантыОтчетов); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Пользователь", ПараметрыЗаполнения.Пользователь); + Если ПараметрыЗаполнения.Свойство("СнимкиОтчетов") Тогда + Запрос.УстановитьПараметр("СнимкиОтчетов", ПараметрыЗаполнения.СнимкиОтчетов); + Запрос.Текст = + "ВЫБРАТЬ + | СнимкиОтчетов.Пользователь КАК Пользователь, + | СнимкиОтчетов.Отчет КАК Отчет, + | СнимкиОтчетов.Вариант КАК Вариант, + | СнимкиОтчетов.ХешПользовательскойНастройки КАК ХешПользовательскойНастройки + |ПОМЕСТИТЬ СохраненныеСнимкиОтчетов + |ИЗ + | &СнимкиОтчетов КАК СнимкиОтчетов + | + |ИНДЕКСИРОВАТЬ ПО + | Пользователь, + | Отчет, + | Вариант, + | ХешПользовательскойНастройки + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | СнимкиОтчетов.Пользователь КАК Пользователь, + | СнимкиОтчетов.Отчет КАК Отчет, + | СнимкиОтчетов.Вариант КАК Вариант, + | СнимкиОтчетов.Вариант.КлючВарианта КАК КлючВарианта, + | СнимкиОтчетов.ХешПользовательскойНастройки КАК ХешПользовательскойНастройки, + | СнимкиОтчетов.ПользовательскаяНастройка КАК ПользовательскаяНастройка + |ИЗ + | РегистрСведений.СнимкиОтчетов КАК СнимкиОтчетов + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ СохраненныеСнимкиОтчетов КАК СохраненныеСнимкиОтчетов + | ПО СнимкиОтчетов.Пользователь = СохраненныеСнимкиОтчетов.Пользователь + | И СнимкиОтчетов.Отчет = СохраненныеСнимкиОтчетов.Отчет + | И СнимкиОтчетов.Вариант = СохраненныеСнимкиОтчетов.Вариант + | И СнимкиОтчетов.ХешПользовательскойНастройки = СохраненныеСнимкиОтчетов.ХешПользовательскойНастройки + |ГДЕ + | СнимкиОтчетов.Пользователь = &Пользователь + | И СнимкиОтчетов.Вариант ССЫЛКА Справочник.ВариантыОтчетов"; + Иначе + Запрос.Текст = + "ВЫБРАТЬ + | СнимкиОтчетов.Пользователь КАК Пользователь, + | СнимкиОтчетов.Отчет КАК Отчет, + | СнимкиОтчетов.Вариант КАК Вариант, + | СнимкиОтчетов.Вариант.КлючВарианта КАК КлючВарианта, + | СнимкиОтчетов.ХешПользовательскойНастройки КАК ХешПользовательскойНастройки, + | СнимкиОтчетов.ПользовательскаяНастройка КАК ПользовательскаяНастройка + |ИЗ + | РегистрСведений.СнимкиОтчетов КАК СнимкиОтчетов + |ГДЕ + | СнимкиОтчетов.Пользователь = &Пользователь + | И СнимкиОтчетов.Вариант ССЫЛКА Справочник.ВариантыОтчетов"; + КонецЕсли; + Если Не ПустаяСтрока(ИмяСправочникаВариантыОтчетов) Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, "ВариантыОтчетов", ИмяСправочникаВариантыОтчетов); + КонецЕсли; + + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + + МенеджерЗаписи = РегистрыСведений.СнимкиОтчетов.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Выборка, "Пользователь, Отчет, Вариант, ХешПользовательскойНастройки"); + + ПараметрыФормированияОтчета = ВариантыОтчетов.ПараметрыФормированияОтчета(); + + ПараметрыФормированияОтчета.СсылкаВарианта = Выборка.Вариант; + ПараметрыФормированияОтчета.СсылкаОтчета = Выборка.Отчет; + ПараметрыФормированияОтчета.КлючВарианта = Выборка.КлючВарианта; + ПараметрыФормированияОтчета.ПользовательскиеНастройкиКД = Выборка.ПользовательскаяНастройка.Получить(); + Если Не ПустаяСтрока(ИмяСправочникаВариантыОтчетов) Тогда + КлючВарианта = Выборка.Отчет.Имя; + ПараметрыФормированияОтчета.КлючВарианта = КлючВарианта; + ПараметрыФормированияОтчета.СсылкаВарианта = ВариантыОтчетов.ВариантОтчета(Выборка.Отчет, КлючВарианта); + КонецЕсли; + + Формирование = ВариантыОтчетов.СформироватьОтчет(ПараметрыФормированияОтчета, Истина, Ложь); + + Если Не Формирование.Успех Тогда + ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление снимков отчетов'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, + ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Выборка.Отчет), + Выборка.Вариант, + Формирование.ТекстОшибки); + КонецЕсли; + + МенеджерЗаписи.РезультатОтчета = Новый ХранилищеЗначения(Формирование.ТабличныйДокумент, Новый СжатиеДанных); + МенеджерЗаписи.ПользовательскаяНастройка = Выборка.ПользовательскаяНастройка; + МенеджерЗаписи.ДатаАктуальности = ТекущаяДатаСеанса(); + МенеджерЗаписи.ДатаПоследнегоПросмотра = ТекущаяДатаСеанса(); + МенеджерЗаписи.ОшибкаОбновленияОтчета = Не Формирование.Успех; + МенеджерЗаписи.Записать(); + + КонецЦикла; + + Если МодульОценкаПроизводительности <> Неопределено Тогда + МодульОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, Выборка.Количество()); + КонецЕсли; + +КонецПроцедуры + +#КонецЕсли + +// Функция возвращает список снимков отчетов пользователя +// +// Параметры: +// Пользователь - СправочникСсылка.Пользователи - пользователь, для которого формируется список снимков отчетов +// ИмяСправочникаВариантыОтчетов - Строка - имя справочника, хранящего варианты отчетов (если это не справочник ВариантыОтчетов) +// Возвращаемое значение: +// ТаблицаЗначений: +// * Пользователь - СправочникСсылка.Пользователи - пользователь снимка отчета +// * Отчет - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор отчета +// * Вариант - ОпределяемыйТип.ВариантОбновляемогоОтчета - вариант отчета +// * НаименованиеВарианта - Строка - наименование варианта отчета (для автономного режима) +// * ХешПользовательскойНастройки - Число - хеш-сумма пользовательской настройки +// +Функция СнимкиОтчетовПользователя(Пользователь, ИмяСправочникаВариантыОтчетов) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Пользователь", Пользователь); + Запрос.Текст = + "ВЫБРАТЬ + | СнимкиОтчетов.Пользователь КАК Пользователь, + | СнимкиОтчетов.Отчет КАК Отчет, + | СнимкиОтчетов.Вариант КАК Вариант, + | СнимкиОтчетов.Вариант.Наименование КАК НаименованиеВарианта, + | СнимкиОтчетов.ХешПользовательскойНастройки КАК ХешПользовательскойНастройки, + | СнимкиОтчетов.ДатаАктуальности КАК ДатаАктуальности + |ИЗ + | РегистрСведений.СнимкиОтчетов КАК СнимкиОтчетов + |ГДЕ + | СнимкиОтчетов.Пользователь = &Пользователь + | И СнимкиОтчетов.Вариант ССЫЛКА Справочник.ВариантыОтчетов + | И НЕ СнимкиОтчетов.Вариант.Наименование ЕСТЬ NULL + | + |УПОРЯДОЧИТЬ ПО + | Отчет, + | Вариант, + | ХешПользовательскойНастройки"; + Если Пользователь = Неопределено Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, "СнимкиОтчетов.Пользователь = &Пользователь", "ИСТИНА"); + КонецЕсли; + Если Не ПустаяСтрока(ИмяСправочникаВариантыОтчетов) Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, "ВариантыОтчетов", ИмяСправочникаВариантыОтчетов); + КонецЕсли; + + Возврат Запрос.Выполнить().Выгрузить(); + +КонецФункции + +#Область ДляВызоваИзДругихПодсистем + +// СтандартныеПодсистемы.УправлениеДоступом + +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// +Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт + + Ограничение.Текст = + "РазрешитьЧтениеИзменение + |ГДЕ + | ЭтоАвторизованныйПользователь(Пользователь)"; + +КонецПроцедуры + +// Конец СтандартныеПодсистемы.УправлениеДоступом + +#КонецОбласти + +#КонецОбласти + +#КонецЕсли diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/RecordSetModule.bsl b/SSL/src/InformationRegisters/СнимкиОтчетов/RecordSetModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/SSL/src/InformationRegisters/СнимкиОтчетов/СнимкиОтчетов.mdo b/SSL/src/InformationRegisters/СнимкиОтчетов/СнимкиОтчетов.mdo new file mode 100644 index 000000000..d44ba520d --- /dev/null +++ b/SSL/src/InformationRegisters/СнимкиОтчетов/СнимкиОтчетов.mdo @@ -0,0 +1,231 @@ + + + + + + + + + + + + СнимкиОтчетов + + ru + Снимки отчетов + + true + InDialog + InformationRegister.СнимкиОтчетов.Form.ФормаЗаписи + InformationRegister.СнимкиОтчетов.Form.ФормаСписка + + Use + Active + + Use + + + + + Use + LineNumber + + Use + + + + + Use + Recorder + + Use + + + + + Use + Period + + ShowError + Use + + + + Managed + + РезультатОтчета + + ru + Результат отчета + + + ValueStorage + + + + Use + Use + + + + ДатаАктуальности + + ru + Дата актуальности + + + Date + + + + + Use + Use + + + + ДатаПоследнегоПросмотра + + ru + Дата последнего просмотра + + + Date + + + + + Use + Use + + + + ПользовательскаяНастройка + + ru + Пользовательская настройка + + + ValueStorage + + + + Use + Use + + + + ОшибкаОбновленияОтчета + + ru + Ошибка обновления отчета + + + Boolean + + + + Use + Use + + + + Пользователь + + ru + Пользователь + + + CatalogRef.Пользователи + + + + true + Use + Use + + true + + + Отчет + + ru + Отчет + + + CatalogRef.ИдентификаторыОбъектовРасширений + CatalogRef.ДополнительныеОтчетыИОбработки + CatalogRef.ИдентификаторыОбъектовМетаданных + + + + true + Use + Use + + true + + + Вариант + + ru + Вариант + + + CatalogRef.ВариантыОтчетов + + + + true + Use + Use + + true + + + ХешПользовательскойНастройки + + ru + Хеш пользовательской настройки + + + String + + 100 + + + + + Use + Use + + true + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + + ФормаЗаписи + + ru + Форма записи + + PersonalComputer + MobileDevice + + + ФормаПросмотраОтчетов + + ru + Форма просмотра отчетов + + PersonalComputer + MobileDevice + + diff --git a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/СоответствияОбъектовИнформационныхБаз.mdo b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/СоответствияОбъектовИнформационныхБаз.mdo index b8f412a47..0a28e5ea7 100644 --- a/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/СоответствияОбъектовИнформационныхБаз.mdo +++ b/SSL/src/InformationRegisters/СоответствияОбъектовИнформационныхБаз/СоответствияОбъектовИнформационныхБаз.mdo @@ -138,6 +138,7 @@ + FoldersAndItems Use true diff --git a/SSL/src/InformationRegisters/СубъектыДляРасчетаСроковХранения/ManagerModule.bsl b/SSL/src/InformationRegisters/СубъектыДляРасчетаСроковХранения/ManagerModule.bsl index 106b97b2a..4583911dd 100644 --- a/SSL/src/InformationRegisters/СубъектыДляРасчетаСроковХранения/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СубъектыДляРасчетаСроковХранения/ManagerModule.bsl @@ -37,6 +37,7 @@ // Возвращает первых 10000 субъектов, для которых необходимо рассчитать сроки хранения персональных данных. // // Возвращаемое значение: см. ЗащитаПерсональныхДанных.НоваяТаблицаДляРасчетаСроковХранения +// Функция СубъектыДляРасчетаСроковХранения() Экспорт Субъекты = ЗащитаПерсональныхДанных.НоваяТаблицаДляРасчетаСроковХранения(); diff --git a/SSL/src/InformationRegisters/ЭлектронныеПодписи/ЭлектронныеПодписи.mdo b/SSL/src/InformationRegisters/ЭлектронныеПодписи/ЭлектронныеПодписи.mdo index e56de23ff..0c1031fae 100644 --- a/SSL/src/InformationRegisters/ЭлектронныеПодписи/ЭлектронныеПодписи.mdo +++ b/SSL/src/InformationRegisters/ЭлектронныеПодписи/ЭлектронныеПодписи.mdo @@ -49,6 +49,25 @@ Managed + + ТребуетсяПроверка + + ru + Требуется проверка + + + Boolean + + + ru + Не удалось проверить подпись из-за внешних обстоятельств (нет криптопровайдера, актуального списка отзыва и т.п.) + + + + Use + Use + + ТипПодписи diff --git a/SSL/src/Reports/АнализВерсийОбъектов/Help/ru.html b/SSL/src/Reports/АнализВерсийОбъектов/Help/ru.html index 04d41d178..49f132715 100644 --- a/SSL/src/Reports/АнализВерсийОбъектов/Help/ru.html +++ b/SSL/src/Reports/АнализВерсийОбъектов/Help/ru.html @@ -1,7 +1,7 @@

        Предназначен для получения статистики по хранимым версиям объектов программы.

        Открывается по команде Количество и объем хранимых версий объектов из настроек версионирования.

        -

        Если дисковое пространство, предназначенное для хранения данных программы, ограничено, с помощью отчета можно контролировать объем хранимых версий объектов в сравнении и принять решение о сокращении числа хранимых версий.

        +

        Если ограничен размер диска, предназначенного для хранения данных программы, с помощью отчета можно контролировать объем хранимых версий объектов в сравнении и принять решение о сокращении числа хранимых версий.

        В отчете выводится:

        • Диаграмма Объем хранимых версий по типам объектов;
        • Диаграмма Количество хранимых версий по типам объектов; diff --git a/SSL/src/Reports/АнализОпроса/ObjectModule.bsl b/SSL/src/Reports/АнализОпроса/ObjectModule.bsl index e1b5170c6..b99d152dc 100644 --- a/SSL/src/Reports/АнализОпроса/ObjectModule.bsl +++ b/SSL/src/Reports/АнализОпроса/ObjectModule.bsl @@ -596,6 +596,7 @@ |ГДЕ | ОтветыНаВопросыАнкет.Анкета.Опрос = &Опрос | И ТИПЗНАЧЕНИЯ(ОтветыНаВопросыАнкет.Ответ) = ТИП(ЧИСЛО) + | И ОтветыНаВопросыАнкет.БезОтвета = ЛОЖЬ |СГРУППИРОВАТЬ ПО | ОтветыНаВопросыАнкет.Вопрос, | ОтветыНаВопросыАнкет.ЭлементарныйВопрос, @@ -618,6 +619,7 @@ |ГДЕ | ОтветыНаВопросыАнкет.Анкета.Опрос = &Опрос | И ТИПЗНАЧЕНИЯ(ОтветыНаВопросыАнкет.Ответ) = ТИП(ДАТА) + | И ОтветыНаВопросыАнкет.БезОтвета = ЛОЖЬ | |СГРУППИРОВАТЬ ПО | ОтветыНаВопросыАнкет.Вопрос, @@ -668,6 +670,7 @@ | И ТИПЗНАЧЕНИЯ(ОтветыНаВопросыАнкет.Ответ) <> ТИП(ДАТА) | И ТИПЗНАЧЕНИЯ(ОтветыНаВопросыАнкет.Ответ) <> ТИП(ЧИСЛО) | И ТИПЗНАЧЕНИЯ(ОтветыНаВопросыАнкет.Ответ) <> ТИП(Справочник.ВариантыОтветовАнкет) + | И ОтветыНаВопросыАнкет.БезОтвета = ЛОЖЬ | |СГРУППИРОВАТЬ ПО | ОтветыНаВопросыАнкет.Вопрос, diff --git a/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl b/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl index 023d7273e..d6b83f960 100644 --- a/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl +++ b/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl @@ -146,6 +146,11 @@ СтандартнаяОбработка = Ложь; + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда + ТекстОшибки = НСтр("ru = 'Для использования отчета требуется внедрить подсистему Варианты отчетов.'"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + НастройкиКомпоновщика = КомпоновщикНастроек.ПолучитьНастройки(); ПараметрВидПользователей = НастройкиКомпоновщика.ПараметрыДанных.Элементы.Найти("ВидПользователей"); diff --git a/SSL/src/Reports/ОбъемНенужныхФайлов/Help/ru.html b/SSL/src/Reports/ОбъемНенужныхФайлов/Help/ru.html index d976f867a..e3ad4ef64 100644 --- a/SSL/src/Reports/ОбъемНенужныхФайлов/Help/ru.html +++ b/SSL/src/Reports/ОбъемНенужныхФайлов/Help/ru.html @@ -1,5 +1,5 @@ -

          Предназначен для получения информации об объеме данных на диске, который занимают "ненужные" файлы (устаревшие, добавленные по ошибке).

          +

          Предназначен для получения информации об объеме данных в томах, который занимают "ненужные" файлы (устаревшие, добавленные по ошибке).

          Количество файлов выдается по каждому владельцу (объекту программы, к которому присоединены файлы).

          Открывается из окна Настройки очистки файлов, в котором можно задать критерии оценки файлов и сроки их хранения для каждого объекта. 

          diff --git a/SSL/src/Reports/ПраваДоступа/ObjectModule.bsl b/SSL/src/Reports/ПраваДоступа/ObjectModule.bsl index 0b671cba7..6caadd17d 100644 --- a/SSL/src/Reports/ПраваДоступа/ObjectModule.bsl +++ b/SSL/src/Reports/ПраваДоступа/ObjectModule.bsl @@ -91,10 +91,15 @@ // Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) - РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра(); - СтандартнаяОбработка = Ложь; + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда + ТекстОшибки = НСтр("ru = 'Для использования отчета требуется внедрить подсистему Варианты отчетов.'"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра(); + ПараметрыДанных = КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных; ПользовательИлиГруппа = ОтборПользователь(); ПодробныеСведенияОПравахДоступа = ПараметрыДанных.Элементы.Найти("ПодробныеСведенияОПравахДоступа").Значение; diff --git a/SSL/src/Reports/ПраваРолей/ObjectModule.bsl b/SSL/src/Reports/ПраваРолей/ObjectModule.bsl index 91a8e816d..be82ccf43 100644 --- a/SSL/src/Reports/ПраваРолей/ObjectModule.bsl +++ b/SSL/src/Reports/ПраваРолей/ObjectModule.bsl @@ -931,7 +931,7 @@ Иначе ТекущийПутьКОбъекту = ?(ЗначениеЗаполнено(ТекущийПутьКОбъекту), ТекущийПутьКОбъекту + ".", "") + ЧастиПутиКОбъекту[Индекс] + "." + ЧастиПутиКОбъекту[Индекс + 1]; - ТекущаяСтрокаДерева = Дерево.Строки.Найти(ТекущийПутьКОбъекту, "ПутьКОбъекту", Истина);; + ТекущаяСтрокаДерева = Дерево.Строки.Найти(ТекущийПутьКОбъекту, "ПутьКОбъекту", Истина); Если ТекущаяСтрокаДерева = Неопределено Тогда Возврат Неопределено; КонецЕсли; diff --git a/SSL/src/Reports/ПроверкаЦелостностиТома/Templates/ОсновнаяСхемаКомпоновкиДанных/Template.dcs b/SSL/src/Reports/ПроверкаЦелостностиТома/Templates/ОсновнаяСхемаКомпоновкиДанных/Template.dcs index 881ae7b21..1e70c636a 100644 --- a/SSL/src/Reports/ПроверкаЦелостностиТома/Templates/ОсновнаяСхемаКомпоновкиДанных/Template.dcs +++ b/SSL/src/Reports/ПроверкаЦелостностиТома/Templates/ОсновнаяСхемаКомпоновкиДанных/Template.dcs @@ -378,7 +378,7 @@ ru - Отсутствуют данные в томе на диске + Отсутствуют данные в томе @@ -424,7 +424,7 @@ ru - Удаленные файлы (есть на диске, но сведения о них отсутствуют) + Удаленные файлы (есть в томе, но сведения о них отсутствуют) diff --git a/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl b/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl index 9e16bd73f..432892045 100644 --- a/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl +++ b/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl @@ -1193,45 +1193,6 @@ //////////////////////////////////////////////////////////////////////////////// // Работа с источником данных варианта отчета. -// Устанавливает параметр "ИсточникДанных" настроек варианта отчета -// -// Параметры: -// Вариант - СправочникСсылка.ВариантыОтчетов - хранилище настроек варианта отчета. -// -Процедура УстановитьИсточникДанныхВарианта(Вариант) Экспорт - УниверсальныйОтчет = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Метаданные.Отчеты.УниверсальныйОтчет); - - НачатьТранзакцию(); - Попытка - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить(Вариант.Метаданные().ПолноеИмя()); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Вариант); - Блокировка.Заблокировать(); - - ВариантОбъект = Вариант.ПолучитьОбъект(); - - НастройкиВарианта = Неопределено; - Если ВариантОбъект <> Неопределено - И ВариантОбъект.Отчет = УниверсальныйОтчет Тогда - НастройкиВарианта = НастройкиВарианта(ВариантОбъект); - КонецЕсли; - - Если НастройкиВарианта = Неопределено Тогда - ОтменитьТранзакцию(); - ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Вариант); - Возврат; - КонецЕсли; - - ВариантОбъект.Настройки = Новый ХранилищеЗначения(НастройкиВарианта); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВариантОбъект); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; -КонецПроцедуры - // Возвращает настройки варианта отчета с установленным параметром ИсточникДанных. // // Параметры: @@ -1241,7 +1202,7 @@ // НастройкиКомпоновкиДанных, Неопределено - обновленные настройки или Неопределено, // если обновить не удалось. // -Функция НастройкиВарианта(Вариант) +Функция НастройкиВарианта(Вариант) Экспорт Попытка НастройкиВарианта = Вариант.Настройки.Получить(); // НастройкиКомпоновкиДанных Исключение diff --git a/SSL/src/Roles/АдминистраторСистемы/Rights.rights b/SSL/src/Roles/АдминистраторСистемы/Rights.rights index fdcfaff15..d29f179b0 100644 --- a/SSL/src/Roles/АдминистраторСистемы/Rights.rights +++ b/SSL/src/Roles/АдминистраторСистемы/Rights.rights @@ -1393,93 +1393,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - Administration - true - - - DataAdministration - true - - - UpdateDataBaseConfiguration - true - - - ExclusiveMode - true - - - ActiveUsers - true - - - EventLog - true - - - ThinClient - true - - - WebClient - true - - - ThickClient - true - - - ExternalConnection - true - - - Automation - true - - - TechnicalSpecialistMode - true - - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - - SaveUserData - true - - - ConfigurationExtensionsAdministration - true - - - Output - true - - InformationRegister.НастройкиТранспортаОбменаОбластейДанных @@ -1676,6 +1589,89 @@ true + + Catalog.СеансыОбменовДанными + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + View + true + + + InteractiveInsert + true + + + Edit + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + + + InputByString + true + + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistory + true + + + UpdateDataHistoryOfMissingData + true + + + UpdateDataHistorySettings + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + + InformationRegister.ПричиныИзмененияАдресныхСведений @@ -3158,6 +3154,93 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + Administration + true + + + DataAdministration + true + + + UpdateDataBaseConfiguration + true + + + ExclusiveMode + true + + + ActiveUsers + true + + + EventLog + true + + + ThinClient + true + + + WebClient + true + + + ThickClient + true + + + ExternalConnection + true + + + Automation + true + + + TechnicalSpecialistMode + true + + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + SaveUserData + true + + + ConfigurationExtensionsAdministration + true + + + Output + true + + InformationRegister.ИсторияМуниципальнойИерархии @@ -3420,6 +3503,25 @@ true + + Constant.ИспользоватьОценкуПроизводительностиСинхронизацииДанных + + Read + true + + + Update + true + + + View + true + + + Edit + true + + Catalog.ПредопределенныеВариантыОтчетов diff --git a/SSL/src/Roles/БазовыеПраваБСП/Rights.rights b/SSL/src/Roles/БазовыеПраваБСП/Rights.rights index e32bb1084..4f4da43f9 100644 --- a/SSL/src/Roles/БазовыеПраваБСП/Rights.rights +++ b/SSL/src/Roles/БазовыеПраваБСП/Rights.rights @@ -97,6 +97,13 @@ true + + DataProcessor.Сканирование.Command.СканироватьЛист + + View + true + + InformationRegister.ПериодыНерабочихДнейКалендаря @@ -683,33 +690,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Constant.ОтправлятьПисьмаВФорматеHTML @@ -1207,6 +1187,17 @@ true + + DataProcessor.Сканирование + + Use + true + + + View + true + + Constant.ИспользоватьАнкетирование @@ -1618,6 +1609,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.СравнениеТабличныхДокументов @@ -2457,6 +2475,13 @@ true + + CommonForm.РедактированиеМеток + + View + true + + CommonForm.ВводЗначенийСпискомСФлажками diff --git a/SSL/src/Roles/БазовыеПраваБСП/БазовыеПраваБСП.mdo b/SSL/src/Roles/БазовыеПраваБСП/БазовыеПраваБСП.mdo index 1dc23ffab..56451358e 100644 --- a/SSL/src/Roles/БазовыеПраваБСП/БазовыеПраваБСП.mdo +++ b/SSL/src/Roles/БазовыеПраваБСП/БазовыеПраваБСП.mdo @@ -5,5 +5,5 @@ ru Базовые права БСП - Это базовые права БСП, которые должны быть у любого пользователя (кроме внешних пользователей) + Базовые права, которые должны быть у любого пользователя (кроме внешних пользователей). diff --git a/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights b/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights index 30012dc85..285bd6eb2 100644 --- a/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights +++ b/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights @@ -560,33 +560,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Constant.ОтправлятьПисьмаВФорматеHTML @@ -1326,6 +1299,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.СравнениеТабличныхДокументов diff --git a/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/БазовыеПраваВнешнихПользователейБСП.mdo b/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/БазовыеПраваВнешнихПользователейБСП.mdo index edb968f0c..9ffa7d251 100644 --- a/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/БазовыеПраваВнешнихПользователейБСП.mdo +++ b/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/БазовыеПраваВнешнихПользователейБСП.mdo @@ -5,5 +5,5 @@ ru Базовые права внешних пользователей БСП - Это базовые права БСП, которые должны быть у любого внешнего пользователя + Базовые права, которые должны быть у любого внешнего пользователя. diff --git a/SSL/src/Roles/ВыполнениеСинхронизацииДанных/Rights.rights b/SSL/src/Roles/ВыполнениеСинхронизацииДанных/Rights.rights index b175677f3..5cfcce3bc 100644 --- a/SSL/src/Roles/ВыполнениеСинхронизацииДанных/Rights.rights +++ b/SSL/src/Roles/ВыполнениеСинхронизацииДанных/Rights.rights @@ -3,6 +3,20 @@ false true false + + WebService.Exchange_3_0_2_1.Operation.GetIBParameters + + Use + true + + + + WebService.Exchange_3_0_2_2.Operation.UploadDataInt + + Use + true + + WebService.Exchange.Operation.SaveFileFromParts @@ -52,6 +66,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.Upload + + Use + true + + WebService.Exchange.Operation.PutFileIntoStorage @@ -66,6 +87,27 @@ true + + WebService.Exchange_3_0_2_1.Operation.SaveFileFromParts + + Use + true + + + + WebService.Exchange_3_0_2_2.Operation.ReleaseFile + + Use + true + + + + WebService.Exchange_3_0_2_2.Operation.DownloadData + + Use + true + + CommonCommand.СценарииСинхронизации @@ -73,6 +115,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.StopTasks + + Use + true + + WebService.Exchange_2_0_1_6.Operation.GetFilePart @@ -80,6 +129,13 @@ true + + WebService.Exchange_3_0_2_1.Operation.ChangeNodeTransportToWSInt + + Use + true + + DataProcessor.ВыгрузкаЗагрузкаEnterpriseData.Command.ЗагрузкаДанныхEnterpriseData @@ -112,6 +168,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.PrepareGetFile + + Use + true + + WebService.Exchange.Operation.Upload @@ -119,6 +182,20 @@ true + + WebService.Exchange_3_0_2_1.Operation.PrepareGetFile + + Use + true + + + + WebService.Exchange_3_0_2_1.Operation.UploadData + + Use + true + + CommonCommand.НастройкиСинхронизацииДанных @@ -174,29 +251,9 @@ - Configuration.БиблиотекаСтандартныхПодсистем + WebService.Exchange_3_0_2_2.Operation.RemoveExchangeNode - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient + Use true @@ -218,6 +275,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.PutFilePart + + Use + true + + WebService.Exchange.Operation.DownloadData @@ -225,6 +289,13 @@ true + + WebService.Exchange_3_0_2_1.Operation.PutMessageForDataMatching + + Use + true + + WebService.EnterpriseDataUpload_1_0_1_1.Operation.PutData @@ -232,6 +303,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.Download + + Use + true + + WebService.EnterpriseDataExchange_1_0_1_1.Operation.GetDataPart @@ -246,6 +324,13 @@ true + + WebService.Exchange_3_0_2_1.Operation.UploadDataInt + + Use + true + + InformationRegister.СостоянияОбменовДанными @@ -257,6 +342,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.GetFilePart + + Use + true + + WebService.Exchange_3_0_1_1.Operation.GetFilePart @@ -264,6 +356,20 @@ true + + WebService.Exchange_3_0_2_1.Operation.DownloadData + + Use + true + + + + WebService.Exchange_3_0_2_1.Operation.CreateExchangeNode + + Use + true + + WebService.Exchange_3_0_1_1.Operation.Upload @@ -271,6 +377,13 @@ true + + WebService.Exchange_3_0_2_1.Operation.Callback + + Use + true + + CommonCommand.СобытияОтправки @@ -285,6 +398,13 @@ true + + WebService.Exchange_3_0_2_1.Operation.ReleaseFile + + Use + true + + WebService.Exchange_2_0_1_6.Operation.DownloadData @@ -299,6 +419,20 @@ true + + WebService.Exchange_3_0_2_2.Operation.UploadData + + Use + true + + + + WebService.Exchange_3_0_2_1.Operation.RemoveExchangeNode + + Use + true + + WebService.EnterpriseDataUpload_1_0_1_1.Operation.TestConnection @@ -306,6 +440,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.GetContinuousOperationStatus + + Use + true + + WebService.EnterpriseDataExchange_1_0_1_1.Operation.ConfirmGettingFile @@ -313,6 +454,20 @@ true + + WebService.Exchange_3_0_2_1.Operation.TaskStatus + + Use + true + + + + WebService.Exchange_3_0_2_1.Operation.DownloadDataInt + + Use + true + + WebService.Exchange_2_0_1_6.Operation.PutFileIntoStorage @@ -327,6 +482,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.DownloadDataInt + + Use + true + + InformationRegister.КонтурСинхронизации @@ -345,6 +507,13 @@ true + + WebService.Exchange_3_0_2_1.Operation.Ping + + Use + true + + WebService.Exchange_2_0_1_6.Operation.GetContinuousOperationStatus @@ -373,6 +542,54 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + + WebService.Exchange_3_0_2_1.Operation.StopTasks + + Use + true + + + + WebService.Exchange_3_0_2_2.Operation.TaskStatus + + Use + true + + + + WebService.Exchange_3_0_2_2.Operation.TestConnection + + Use + true + + WebService.Exchange_3_0_1_1.Operation.GetContinuousOperationStatus @@ -387,6 +604,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.GetIBParameters + + Use + true + + WebService.Exchange_3_0_1_1.Operation.UploadData @@ -412,6 +636,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.SaveFileFromParts + + Use + true + + WebService.Exchange_2_0_1_6.Operation.UploadData @@ -437,6 +668,13 @@ true + + WebService.Exchange_3_0_2_1.Operation.PutFilePart + + Use + true + + WebService.EnterpriseDataExchange_1_0_1_1.Operation.TestConnection @@ -505,6 +743,13 @@ true + + WebService.Exchange_3_0_2_1.Operation.Download + + Use + true + + WebService.Exchange_3_0_1_1.Operation.PrepareGetFile @@ -530,6 +775,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.Ping + + Use + true + + WebService.Exchange.Operation.GetFilePart @@ -558,6 +810,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.CreateExchangeNode + + Use + true + + WebService.Exchange_3_0_1_1.Operation.TestConnection @@ -579,6 +838,20 @@ true + + WebService.Exchange_3_0_2_1.Operation.TestConnection + + Use + true + + + + WebService.Exchange_3_0_2_1.Operation.Upload + + Use + true + + WebService.EnterpriseDataExchange_1_0_1_1.Operation.PutData @@ -586,6 +859,20 @@ true + + WebService.Exchange_3_0_2_2.Operation.ChangeNodeTransportToWSInt + + Use + true + + + + WebService.Exchange_3_0_2_1.Operation.GetFilePart + + Use + true + + WebService.EnterpriseDataExchange_1_0_1_1.Operation.PutFilePart @@ -593,6 +880,13 @@ true + + WebService.Exchange_3_0_2_1.Operation.GetContinuousOperationStatus + + Use + true + + WebService.Exchange_2_0_1_6.Operation.PrepareGetFile @@ -607,6 +901,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.Callback + + Use + true + + WebService.Exchange_3_0_1_1.Operation.PutFilePart @@ -614,6 +915,13 @@ true + + WebService.Exchange_3_0_2_2.Operation.PutMessageForDataMatching + + Use + true + + CommonCommand.СобытияПолучения diff --git a/SSL/src/Roles/ДобавлениеИзменениеАдресныхСведений/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеАдресныхСведений/Rights.rights index 547b31edf..31ee579d0 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеАдресныхСведений/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеАдресныхСведений/Rights.rights @@ -72,33 +72,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.ПричиныИзмененияАдресныхСведений @@ -191,6 +164,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + InformationRegister.ИсторияМуниципальнойИерархии diff --git a/SSL/src/Roles/ДобавлениеИзменениеАктовОбУничтоженииПерсональныхДанных/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеАктовОбУничтоженииПерсональныхДанных/Rights.rights index f16f8656a..439362a97 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеАктовОбУничтоженииПерсональныхДанных/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеАктовОбУничтоженииПерсональныхДанных/Rights.rights @@ -26,6 +26,29 @@ true + + InformationRegister.СубъектыДляРасчетаСроковХранения + + Read + true + + + Update + true + + + View + true + + + Edit + true + + + TotalsControl + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -53,29 +76,6 @@ true - - InformationRegister.СубъектыДляРасчетаСроковХранения - - Read - true - - - Update - true - - - View - true - - - Edit - true - - - TotalsControl - true - - DataProcessor.УничтожениеПерсональныхДанных diff --git a/SSL/src/Roles/ДобавлениеИзменениеБанков/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеБанков/Rights.rights index 1b997b6ca..f7a7300dc 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеБанков/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеБанков/Rights.rights @@ -10,6 +10,17 @@ true + + DataProcessor.ЗагрузкаКлассификатораБанков + + Use + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -37,17 +48,6 @@ true - - DataProcessor.ЗагрузкаКлассификатораБанков - - Use - true - - - View - true - - Catalog.КлассификаторБанков diff --git a/SSL/src/Roles/ДобавлениеИзменениеВариантовОтчетов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеВариантовОтчетов/Rights.rights index e00ace9c0..3adaae5f9 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеВариантовОтчетов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеВариантовОтчетов/Rights.rights @@ -49,33 +49,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ПользовательскиеНастройкиОтчетов @@ -129,6 +102,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonCommand.ПанельОтчетовАдминистрирование diff --git a/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights index 0b54e5a9e..68db44e22 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights @@ -391,33 +391,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.СостоянияКонтактовВзаимодействий @@ -1064,6 +1037,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + InformationRegister.СостоянияПапокПисем diff --git a/SSL/src/Roles/ДобавлениеИзменениеВидовКонтактнойИнформации/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеВидовКонтактнойИнформации/Rights.rights index 726dc4e6f..5cd95b945 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеВидовКонтактнойИнформации/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеВидовКонтактнойИнформации/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ВидыКонтактнойИнформации @@ -108,4 +81,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеВнешнихПользователей/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеВнешнихПользователей/Rights.rights index 66575237d..dac399c61 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеВнешнихПользователей/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеВнешнихПользователей/Rights.rights @@ -17,33 +17,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ГруппыВнешнихПользователей.Command.ГруппыВнешнегоПользователя @@ -101,6 +74,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Catalog.ГруппыВнешнихПользователей diff --git a/SSL/src/Roles/ДобавлениеИзменениеДополнительныхОтчетовИОбработок/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеДополнительныхОтчетовИОбработок/Rights.rights index 27837d5b6..24409a347 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеДополнительныхОтчетовИОбработок/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеДополнительныхОтчетовИОбработок/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.ПользовательскиеНастройкиДоступаКОбработкам @@ -122,6 +95,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.ДополнительныеОтчетыИОбработки diff --git a/SSL/src/Roles/ДобавлениеИзменениеДополнительныхРеквизитовИСведений/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеДополнительныхРеквизитовИСведений/Rights.rights index cf399d4cb..fdb3036aa 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеДополнительныхРеквизитовИСведений/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеДополнительныхРеквизитовИСведений/Rights.rights @@ -81,6 +81,13 @@ true + + CommonForm.РедактированиеГиперссылки + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -108,13 +115,6 @@ true - - CommonForm.РедактированиеГиперссылки - - View - true - - Catalog.ЗначенияСвойствОбъектовИерархия @@ -193,6 +193,13 @@ true + + CommonForm.РедактированиеМеток + + View + true + + CommonForm.РедактированиеДополнительныхСведений diff --git a/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights index b17d38fa3..f73676d5c 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights @@ -72,33 +72,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Task.ЗадачаИсполнителя.Command.ВсеЗадачи @@ -127,6 +100,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Task.ЗадачаИсполнителя.Command.МоиЗадачи diff --git a/SSL/src/Roles/ДобавлениеИзменениеКалендарныхГрафиков/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеКалендарныхГрафиков/Rights.rights index 75b8db8dc..eb39bffc5 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеКалендарныхГрафиков/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеКалендарныхГрафиков/Rights.rights @@ -26,33 +26,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.ДанныеПроизводственногоКалендаря @@ -115,6 +88,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Constant.ИспользоватьНесколькоПроизводственныхКалендарей diff --git a/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights index 3abd8da1c..a6d49a603 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights @@ -72,33 +72,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.ПользовательскиеНастройкиОтчетов @@ -166,6 +139,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Constant.НастройкиКолонтитулов diff --git a/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights index 0cf7d0f75..00d533d0e 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights @@ -158,6 +158,31 @@ true + + CommonCommand.ОтправитьПисьмо + + View + true + + + + CommonCommand.ОтправитьSMS + + View + true + + + + Constant.ИспользоватьОтправкуSMSВШаблонахСообщений + + Read + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -185,31 +210,6 @@ true - - CommonCommand.ОтправитьПисьмо - - View - true - - - - CommonCommand.ОтправитьSMS - - View - true - - - - Constant.ИспользоватьОтправкуSMSВШаблонахСообщений - - Read - true - - - View - true - - Constant.ИспользоватьЭлектроннуюПочтуВШаблонахСообщений diff --git a/SSL/src/Roles/ДобавлениеИзменениеОтветовНаВопросыАнкет/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеОтветовНаВопросыАнкет/Rights.rights index 1f6e71993..453bf4efb 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеОтветовНаВопросыАнкет/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеОтветовНаВопросыАнкет/Rights.rights @@ -30,29 +30,47 @@ - Configuration.БиблиотекаСтандартныхПодсистем + Catalog.ВопросыШаблонаАнкеты - MainWindowModeNormal + Read true - MainWindowModeWorkplace + View true - MainWindowModeEmbeddedWorkplace + InputByString + true + + + + Catalog.ВариантыОтветовАнкет + + Read true - MainWindowModeFullscreenWorkplace + View true - MainWindowModeKiosk + InputByString + true + + + + Document.НазначениеОпросов + + Read true - AnalyticsSystemClient + View + true + + + InputByString true @@ -126,6 +144,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + DataProcessor.ДоступныеАнкеты @@ -137,4 +182,19 @@ true + + ChartOfCharacteristicTypes.ВопросыДляАнкетирования + + Read + true + + + View + true + + + InputByString + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights index 44bc3a53f..3e4d2a204 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights @@ -10,33 +10,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.Файлы.Command.Файлы @@ -107,6 +80,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.НастройкаРабочегоКаталога diff --git a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights index 6f6eb8109..aa053f1d3 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights @@ -10,33 +10,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.Файлы.Command.Файлы @@ -107,6 +80,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.НастройкаРабочегоКаталога diff --git a/SSL/src/Roles/ДобавлениеИзменениеПользователей/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеПользователей/Rights.rights index 35eee2c65..e6f8cf206 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеПользователей/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеПользователей/Rights.rights @@ -10,33 +10,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.Пользователи @@ -94,6 +67,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Catalog.ГруппыПользователей diff --git a/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights index d967c575c..38489e898 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights @@ -40,37 +40,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - - Output - true - - InformationRegister.СертификатыПолучателейРассылкиОтчетов @@ -108,17 +77,35 @@ #Иначе РассылкиОтчетов ГДЕ (РассылкиОтчетов.Автор = &ТекущийПользователь ИЛИ РассылкиОтчетов.Личная = ЛОЖЬ - ИЛИ РассылкиОтчетов.ЭтоГруппа = ИСТИНА) + ИЛИ Предопределенный = ИСТИНА) #КонецЕсли Insert true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +РассылкиОтчетов ГДЕ (РассылкиОтчетов.Автор = &ТекущийПользователь + ИЛИ РассылкиОтчетов.Личная = ЛОЖЬ + ИЛИ Предопределенный = ИСТИНА) +#КонецЕсли + Update true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +РассылкиОтчетов ГДЕ (РассылкиОтчетов.Автор = &ТекущийПользователь + ИЛИ РассылкиОтчетов.Личная = ЛОЖЬ + ИЛИ Предопределенный = ИСТИНА) +#КонецЕсли + View @@ -145,6 +132,37 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + Output + true + + Report.КонтрольРассылкиОтчетов diff --git a/SSL/src/Roles/ДобавлениеИзменениеРолейИсполнителей/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеРолейИсполнителей/Rights.rights index 3d6584e47..7d595f4d5 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеРолейИсполнителей/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеРолейИсполнителей/Rights.rights @@ -87,6 +87,24 @@ true + + Report.ЗависшиеЗадачи + + Use + true + + + View + true + + + + InformationRegister.ИсполнителиЗадач.Command.РолиИИсполнителиЗадач + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -114,24 +132,6 @@ true - - Report.ЗависшиеЗадачи - - Use - true - - - View - true - - - - InformationRegister.ИсполнителиЗадач.Command.РолиИИсполнителиЗадач - - View - true - - ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач diff --git a/SSL/src/Roles/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights index f66ea0c94..6dd13a8a5 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеСертификатовКлючейЭлектроннойПодписиИШифрования/Rights.rights @@ -22,33 +22,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования @@ -88,4 +61,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеСнимковОтчетов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеСнимковОтчетов/Rights.rights new file mode 100644 index 000000000..839f29964 --- /dev/null +++ b/SSL/src/Roles/ДобавлениеИзменениеСнимковОтчетов/Rights.rights @@ -0,0 +1,457 @@ + + + false + true + false + + InformationRegister.СнимкиОтчетов + + Read + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийСнимкиОтчетов", "Пользователь", "", "", "", "") +#Иначе +ГДЕ Пользователь = &ТекущийПользователь +#КонецЕсли + + + + Update + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийСнимкиОтчетов", "Пользователь", "", "", "", "") +#Иначе +ГДЕ Пользователь = &ТекущийПользователь +#КонецЕсли + + + + View + true + + + Edit + true + + + TotalsControl + true + + + + CommonCommand.СнимкиОтчетовДляАвтономногоРежима + + View + true + + + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + + ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5) + // ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "") +// Шаблон используется для ограничения групп записей регистров. +// +// Параметры: +// Регистр - имя предопределенного элемента справочника Идентификаторы объектов метаданных или справочника +// Идентификаторы объектов расширений в формате: имя справочника с точкой и полное имя таблицы +// без точки, например, ИдентификаторыОбъектовМетаданных.РегистрНакопленияОстаткиНаСкладах; +// - имя отдельного регистра ключей в формате КлючиДоступаКРегистру<ОстатокИмени>, +// например, КлючиДоступаКРегиструОстаткиНаСкладах. +// Поле1 - имя первого поля (измерения, ресурса, реквизита), которое будет соединяться с полем Поле1 +// регистра сведений КлючиДоступаКРегистр* +// Поле2 - аналогично предыдущему параметру, если используется в ограничении доступа к регистру. +// ... +// Поле5 - аналогично предыдущему параметру, если используется в ограничении доступа к регистру. + +#Если &СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда + // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра9,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 9 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда + // У пользователя отключены все виды доступа или + // ограничение на уровне записей не используется. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда + // У пользователя отключено ограничение для текущей таблицы. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ТребуетсяПерезапуститьСеанс,") #Тогда + Ошибка: Версия программы обновлена, требуется перезапустить сеанс. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли #ИмяТекущегоПраваДоступа <> "Чтение" #Тогда + // Проверка прав Добавление, Изменение, Удаление выполняется ПередЗаписью / ПриЗаписи. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";0") #Тогда + ГДЕ ЛОЖЬ + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";1") #Тогда + Ошибка: Внешние пользователи отключены. + +#ИначеЕсли Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") + И Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + + Ошибка: Требуется актуализировать ограничение доступа по причине: Не удалось определить вариант ограничения доступа в параметрах сеанса для шаблона ДляРегистра со значениями параметров "#Регистр", "#Поле1", "#Поле2", "#Поле3", "#Поле4", "#Поле5". Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#Иначе + +ТекущаяТаблица ГДЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА +#Если Не СтрСодержит("#Регистр", "КлючиДоступаКРегистру") #Тогда + ИЗ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам +#Иначе + ИЗ РегистрСведений.#Регистр КАК КлючиДоступаКРегистрам +#КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаНаборовГруппДоступа + ПО + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаНаборовГруппДоступа.НаборГруппДоступа = &РазрешенныйНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда + + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаРазрешенногоНабораГруппДоступа + ПО + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаРазрешенногоНабораГруппДоступа.НаборГруппДоступа = &РазрешенныйПустойНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаПользователей.Пользователь = &РазрешенныйПользователь + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаПользователей.ВнешнийПользователь = &РазрешенныйПользователь + #КонецЕсли + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаНаборовГруппПользователей.Пользователь = &РазрешенныйНаборГруппПользователей + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа + И КлючиДоступаНаборовГруппПользователей.ВнешнийПользователь = &РазрешенныйНаборГруппПользователей + #КонецЕсли + #КонецЕсли + ГДЕ + #Если Не СтрСодержит("#Регистр", "КлючиДоступаКРегистру") #Тогда + КлючиДоступаКРегистрам.Регистр = Значение(Справочник.#Регистр) + #Иначе + ИСТИНА + #КонецЕсли + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли + #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Версия1=0") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит0=1") #Тогда + 64 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит1=1") #Тогда + 128 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит2=1") #Тогда + 256 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит3=1") #Тогда + 512 #КонецЕсли + #КонецЕсли + ) + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле1;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2") #Тогда + + ИЛИ + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли + #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Версия2=0") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле5=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит0=1") #Тогда + 64 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит1=1") #Тогда + 128 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит2=1") #Тогда + 256 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит3=1") #Тогда + 512 #КонецЕсли + #КонецЕсли + ) + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле1;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле5=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3") #Тогда + + ИЛИ + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли + #Если Не СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Версия3=0") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле5=Поле") #Тогда + 2 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит0=1") #Тогда + 64 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит1=1") #Тогда + 128 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит2=1") #Тогда + 256 #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит3=1") #Тогда + 512 #КонецЕсли + #КонецЕсли + ) + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле1;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле2;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле3;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле4;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле5=Поле5;") #Тогда + И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 + #КонецЕсли + + #КонецЕсли + ) + И ( + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL + #Иначе + ЛОЖЬ + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + ) + ) + + #Если Не СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;") + И ( СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;") + Или СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда + + #Если Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #Иначе + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #КонецЕсли + #КонецЕсли + +#КонецЕсли + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеСнимковОтчетов/ДобавлениеИзменениеСнимковОтчетов.mdo b/SSL/src/Roles/ДобавлениеИзменениеСнимковОтчетов/ДобавлениеИзменениеСнимковОтчетов.mdo new file mode 100644 index 000000000..138a99278 --- /dev/null +++ b/SSL/src/Roles/ДобавлениеИзменениеСнимковОтчетов/ДобавлениеИзменениеСнимковОтчетов.mdo @@ -0,0 +1,8 @@ + + + ДобавлениеИзменениеСнимковОтчетов + + ru + Добавление изменение снимков отчетов + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights index 3067b5aa8..2669ce0ce 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.СостоянияОригиналовПервичныхДокументов @@ -105,4 +78,31 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + diff --git a/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights index d21a1536d..3fc798034 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.УчетныеЗаписиЭлектроннойПочты @@ -104,6 +77,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.ОтправкаСообщения diff --git a/SSL/src/Roles/ДобавлениеИзменениеЭлектронныхПодписей/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЭлектронныхПодписей/Rights.rights index a9b029f0a..247899a6f 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЭлектронныхПодписей/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЭлектронныхПодписей/Rights.rights @@ -10,6 +10,13 @@ true + + CommonForm.ПродлениеСрокаДействияЭлектронныхПодписей + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -37,11 +44,4 @@ true - - CommonForm.ПродлениеСрокаДействияЭлектронныхПодписей - - View - true - - diff --git a/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights b/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights index 4784f0eda..d173a95f8 100644 --- a/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights +++ b/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights @@ -106,6 +106,20 @@ true + + Task.ЗадачаИсполнителя.Command.ВсеЗадачи + + View + true + + + + CommonCommand.ЗадачиПоПредмету + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -133,20 +147,6 @@ true - - Task.ЗадачаИсполнителя.Command.ВсеЗадачи - - View - true - - - - CommonCommand.ЗадачиПоПредмету - - View - true - - DataProcessor.КартаМаршрутаБизнесПроцесса diff --git a/SSL/src/Roles/ИзменениеМакетовПечатныхФорм/Rights.rights b/SSL/src/Roles/ИзменениеМакетовПечатныхФорм/Rights.rights index c12a0c7f4..2d2ce2f69 100644 --- a/SSL/src/Roles/ИзменениеМакетовПечатныхФорм/Rights.rights +++ b/SSL/src/Roles/ИзменениеМакетовПечатныхФорм/Rights.rights @@ -3,6 +3,25 @@ false true false + + InformationRegister.ПользовательскиеМакетыПечати + + Read + true + + + Update + true + + + View + true + + + Edit + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,25 +49,6 @@ true - - InformationRegister.ПользовательскиеМакетыПечати - - Read - true - - - Update - true - - - View - true - - - Edit - true - - Catalog.МакетыПечатныхФорм diff --git a/SSL/src/Roles/ИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights b/SSL/src/Roles/ИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights index f58fc4e2b..31e04e541 100644 --- a/SSL/src/Roles/ИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights +++ b/SSL/src/Roles/ИзменениеСостоянийОригиналовПервичныхДокументов/Rights.rights @@ -22,6 +22,21 @@ true + + Catalog.СостоянияОригиналовПервичныхДокументов + + Read + true + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -49,21 +64,6 @@ true - - Catalog.СостоянияОригиналовПервичныхДокументов - - Read - true - - - View - true - - - InputByString - true - - CommonCommand.ЖурналУчетаОригиналовПервичныхДокументов diff --git a/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights b/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights index 453f5ffbf..b04af10da 100644 --- a/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights +++ b/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights @@ -10,6 +10,13 @@ true + + CommonForm.ПраваДоступа + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -37,13 +44,6 @@ true - - CommonForm.ПраваДоступа - - View - true - - Catalog.ГруппыДоступа diff --git a/SSL/src/Roles/ИспользованиеУниверсальногоОтчета/Rights.rights b/SSL/src/Roles/ИспользованиеУниверсальногоОтчета/Rights.rights index 7e15c9249..543f3cbd8 100644 --- a/SSL/src/Roles/ИспользованиеУниверсальногоОтчета/Rights.rights +++ b/SSL/src/Roles/ИспользованиеУниверсальногоОтчета/Rights.rights @@ -14,6 +14,13 @@ true + + CommonForm.НастройкаКолонтитулов + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -41,13 +48,6 @@ true - - CommonForm.НастройкаКолонтитулов - - View - true - - Constant.НастройкиКолонтитулов diff --git a/SSL/src/Roles/НастройкаИОценкаПроизводительности/Rights.rights b/SSL/src/Roles/НастройкаИОценкаПроизводительности/Rights.rights index 02cab2e52..e7f2411d5 100644 --- a/SSL/src/Roles/НастройкаИОценкаПроизводительности/Rights.rights +++ b/SSL/src/Roles/НастройкаИОценкаПроизводительности/Rights.rights @@ -152,33 +152,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Constant.ДатаПоследнейВыгрузкиЗамеровПроизводительностиUTC @@ -238,6 +211,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + Constant.ОценкаПроизводительностиПериодЗаписи diff --git a/SSL/src/Roles/НастройкаСинхронизацииФайлов/Rights.rights b/SSL/src/Roles/НастройкаСинхронизацииФайлов/Rights.rights index 2a73335d3..6dac8b866 100644 --- a/SSL/src/Roles/НастройкаСинхронизацииФайлов/Rights.rights +++ b/SSL/src/Roles/НастройкаСинхронизацииФайлов/Rights.rights @@ -26,6 +26,21 @@ true + + InformationRegister.СтатусыСинхронизацииФайловСОблачнымСервисом + + Read + true + + + Update + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -53,21 +68,6 @@ true - - InformationRegister.СтатусыСинхронизацииФайловСОблачнымСервисом - - Read - true - - - Update - true - - - View - true - - Catalog.УчетныеЗаписиСинхронизацииФайлов diff --git a/SSL/src/Roles/ОтправкаSMS/Rights.rights b/SSL/src/Roles/ОтправкаSMS/Rights.rights index 5a6b4927e..7457cad55 100644 --- a/SSL/src/Roles/ОтправкаSMS/Rights.rights +++ b/SSL/src/Roles/ОтправкаSMS/Rights.rights @@ -3,6 +3,13 @@ false true false + + CommonForm.ОтправкаSMS + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,11 +37,4 @@ true - - CommonForm.ОтправкаSMS - - View - true - - diff --git a/SSL/src/Roles/ПолныеПрава/Rights.rights b/SSL/src/Roles/ПолныеПрава/Rights.rights index 65d40d605..edad27f6c 100644 --- a/SSL/src/Roles/ПолныеПрава/Rights.rights +++ b/SSL/src/Roles/ПолныеПрава/Rights.rights @@ -2094,45 +2094,6 @@ false - - Configuration.БиблиотекаСтандартныхПодсистем - - Administration - false - - - UpdateDataBaseConfiguration - false - - - ThickClient - false - - - ExternalConnection - false - - - Automation - false - - - TechnicalSpecialistMode - false - - - ConfigurationExtensionsAdministration - false - - - InteractiveOpenExtDataProcessors - false - - - InteractiveOpenExtReports - false - - InformationRegister.НастройкиТранспортаОбменаОбластейДанных @@ -2305,6 +2266,97 @@ false + + Catalog.СеансыОбменовДанными + + Insert + false + + + Update + false + + + Delete + false + + + InteractiveInsert + false + + + Edit + false + + + InteractiveDelete + false + + + InteractiveSetDeletionMark + false + + + InteractiveClearDeletionMark + false + + + InteractiveDeleteMarked + false + + + InteractiveDeletePredefinedData + false + + + InteractiveSetDeletionMarkPredefinedData + false + + + InteractiveClearDeletionMarkPredefinedData + false + + + InteractiveDeleteMarkedPredefinedData + false + + + ReadDataHistory + false + + + ReadDataHistoryOfMissingData + false + + + UpdateDataHistory + false + + + UpdateDataHistoryOfMissingData + false + + + UpdateDataHistorySettings + false + + + UpdateDataHistoryVersionComment + false + + + ViewDataHistory + false + + + EditDataHistoryVersionComment + false + + + SwitchToDataHistoryVersion + false + + Catalog.ВерсииРасширений @@ -4359,6 +4411,45 @@ false + + Configuration.БиблиотекаСтандартныхПодсистем + + Administration + false + + + UpdateDataBaseConfiguration + false + + + ThickClient + false + + + ExternalConnection + false + + + Automation + false + + + TechnicalSpecialistMode + false + + + ConfigurationExtensionsAdministration + false + + + InteractiveOpenExtDataProcessors + false + + + InteractiveOpenExtReports + false + + InformationRegister.ИсторияМуниципальнойИерархии @@ -4701,6 +4792,17 @@ false + + Constant.ИспользоватьОценкуПроизводительностиСинхронизацииДанных + + Update + false + + + Edit + false + + Catalog.ПредопределенныеВариантыОтчетов diff --git a/SSL/src/Roles/УдалениеЭлектронныхПодписей/Rights.rights b/SSL/src/Roles/УдалениеЭлектронныхПодписей/Rights.rights new file mode 100644 index 000000000..0d611cfb2 --- /dev/null +++ b/SSL/src/Roles/УдалениеЭлектронныхПодписей/Rights.rights @@ -0,0 +1,33 @@ + + + false + true + false + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + + diff --git a/SSL/src/Roles/УдалениеЭлектронныхПодписей/УдалениеЭлектронныхПодписей.mdo b/SSL/src/Roles/УдалениеЭлектронныхПодписей/УдалениеЭлектронныхПодписей.mdo new file mode 100644 index 000000000..ab0eb5eff --- /dev/null +++ b/SSL/src/Roles/УдалениеЭлектронныхПодписей/УдалениеЭлектронныхПодписей.mdo @@ -0,0 +1,8 @@ + + + УдалениеЭлектронныхПодписей + + ru + Удаление электронных подписей других пользователей + + diff --git a/SSL/src/Roles/УдаленныйДоступOData/Rights.rights b/SSL/src/Roles/УдаленныйДоступOData/Rights.rights index 5d73d0aac..083eb5d89 100644 --- a/SSL/src/Roles/УдаленныйДоступOData/Rights.rights +++ b/SSL/src/Roles/УдаленныйДоступOData/Rights.rights @@ -216,6 +216,17 @@ true + + InformationRegister.АрхивСообщенийОбменов + + Read + true + + + Update + true + + Catalog.ПапкиЭлектронныхПисем @@ -434,6 +445,17 @@ true + + InformationRegister.ОбъектыНезарегистрированныеПриЗацикливании + + Read + true + + + Update + true + + SessionParameter.ВерсииШаблоновОграниченияДоступа @@ -452,6 +474,17 @@ true + + InformationRegister.ОбработчикиСобытийСинхронизацииДанных + + Read + true + + + Update + true + + InformationRegister.ЗаявленияНаВыпускСертификата @@ -674,6 +707,17 @@ true + + InformationRegister.ЗадачиОбменаДаннымиВнутренняяПубликация + + Read + true + + + Update + true + + Catalog.ЗапланированноеВзаимодействиеПрисоединенныеФайлы @@ -693,6 +737,17 @@ true + + InformationRegister.НастройкиОбменаДаннымиXDTO + + Read + true + + + Update + true + + Constant.ИспользоватьПризнакРассмотрено @@ -878,6 +933,17 @@ true + + InformationRegister.СнимкиОтчетов + + Read + true + + + Update + true + + InformationRegister.КлючиДоступаКРегиструРезультатыПроверкиУчета @@ -1117,33 +1183,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Constant.ОтправлятьПисьмаВФорматеHTML @@ -1228,6 +1267,17 @@ true + + InformationRegister.СессииОбменаСообщениямиСистемы + + Read + true + + + Update + true + + SessionParameter.ВыполняетсяУдалениеОбъектов @@ -1991,6 +2041,17 @@ true + + InformationRegister.КонтурСинхронизации + + Read + true + + + Update + true + + InformationRegister.СоставыГруппПользователей @@ -2080,6 +2141,17 @@ true + + InformationRegister.ИзмененияОбщихДанныхУзлов + + Read + true + + + Update + true + + InformationRegister.ОбновлениеКлючейДоступаПользователей @@ -2143,6 +2215,17 @@ true + + InformationRegister.ДанныеОбъектовДляРегистрацииВОбменах + + Read + true + + + Update + true + + InformationRegister.ДанныеБизнесПроцессов @@ -2292,6 +2375,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + InformationRegister.НапоминанияПользователя @@ -2599,6 +2709,17 @@ true + + InformationRegister.ПсевдонимыПредопределенныхУзлов + + Read + true + + + Update + true + + SessionParameter.ВидыДоступаБезГруппДляЗначенияДоступа @@ -3189,6 +3310,17 @@ true + + InformationRegister.НастройкиАрхиваСообщенийОбменов + + Read + true + + + Update + true + + SessionParameter.ДатаОбновленияПовторноИспользуемыхЗначенийМРО @@ -3541,6 +3673,17 @@ true + + InformationRegister.РезультатыПроверкиУчета + + Read + true + + + Update + true + + InformationRegister.СведенияОПользователях diff --git a/SSL/src/Roles/УдаленныйДоступБазоваяФункциональность/Rights.rights b/SSL/src/Roles/УдаленныйДоступБазоваяФункциональность/Rights.rights index c3d9936e0..2171eed35 100644 --- a/SSL/src/Roles/УдаленныйДоступБазоваяФункциональность/Rights.rights +++ b/SSL/src/Roles/УдаленныйДоступБазоваяФункциональность/Rights.rights @@ -3,6 +3,13 @@ false true false + + WebService.InterfaceVersion.Operation.GetVersions + + Use + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -30,11 +37,4 @@ true - - WebService.InterfaceVersion.Operation.GetVersions - - Use - true - - diff --git a/SSL/src/Roles/УдаленныйДоступОбменДаннымиВМоделиСервиса/Rights.rights b/SSL/src/Roles/УдаленныйДоступОбменДаннымиВМоделиСервиса/Rights.rights index f9571a76f..3f05dc958 100644 --- a/SSL/src/Roles/УдаленныйДоступОбменДаннымиВМоделиСервиса/Rights.rights +++ b/SSL/src/Roles/УдаленныйДоступОбменДаннымиВМоделиСервиса/Rights.rights @@ -59,33 +59,6 @@ true - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - WebService.RemoteAdministrationOfExchange_2_4_5_1.Operation.StartExchangeExecutionInSecondDataBase @@ -121,6 +94,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + WebService.RemoteAdministrationOfExchange_2_4_5_1.Operation.TestConnection diff --git a/SSL/src/Roles/ЧтениеАктовОбУничтоженииПерсональныхДанных/Rights.rights b/SSL/src/Roles/ЧтениеАктовОбУничтоженииПерсональныхДанных/Rights.rights index 3433ce452..d65b7e267 100644 --- a/SSL/src/Roles/ЧтениеАктовОбУничтоженииПерсональныхДанных/Rights.rights +++ b/SSL/src/Roles/ЧтениеАктовОбУничтоженииПерсональныхДанных/Rights.rights @@ -14,6 +14,17 @@ true + + InformationRegister.СубъектыДляРасчетаСроковХранения + + Read + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -41,17 +52,6 @@ true - - InformationRegister.СубъектыДляРасчетаСроковХранения - - Read - true - - - View - true - - InformationRegister.УничтоженныеПерсональныеДанные diff --git a/SSL/src/Roles/ЧтениеВариантовОтчетов/Rights.rights b/SSL/src/Roles/ЧтениеВариантовОтчетов/Rights.rights index bb1f9f7de..537f47036 100644 --- a/SSL/src/Roles/ЧтениеВариантовОтчетов/Rights.rights +++ b/SSL/src/Roles/ЧтениеВариантовОтчетов/Rights.rights @@ -25,6 +25,28 @@ true + + Catalog.ПользовательскиеНастройкиОтчетов + + Read + true + + + View + true + + + InputByString + true + + + + CommonForm.НастройкаКолонтитулов + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -52,28 +74,6 @@ true - - Catalog.ПользовательскиеНастройкиОтчетов - - Read - true - - - View - true - - - InputByString - true - - - - CommonForm.НастройкаКолонтитулов - - View - true - - Constant.НастройкиКолонтитулов diff --git a/SSL/src/Roles/ЧтениеВнешнихПользователей/Rights.rights b/SSL/src/Roles/ЧтениеВнешнихПользователей/Rights.rights index a4c1c8803..3d8ece3ac 100644 --- a/SSL/src/Roles/ЧтениеВнешнихПользователей/Rights.rights +++ b/SSL/src/Roles/ЧтениеВнешнихПользователей/Rights.rights @@ -10,6 +10,32 @@ true + + InformationRegister.СоставыГруппПользователей + + Read + true + + + View + true + + + + Catalog.ВнешниеПользователи + + Read + true + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -37,32 +63,6 @@ true - - InformationRegister.СоставыГруппПользователей - - Read - true - - - View - true - - - - Catalog.ВнешниеПользователи - - Read - true - - - View - true - - - InputByString - true - - Catalog.ГруппыВнешнихПользователей diff --git a/SSL/src/Roles/ЧтениеДанныхСервисаDSS/Rights.rights b/SSL/src/Roles/ЧтениеДанныхСервисаDSS/Rights.rights index 12bca9590..9a436e56e 100644 --- a/SSL/src/Roles/ЧтениеДанныхСервисаDSS/Rights.rights +++ b/SSL/src/Roles/ЧтениеДанныхСервисаDSS/Rights.rights @@ -33,6 +33,24 @@ true + + SessionParameter.ПодключениеDSS + + Get + true + + + Set + true + + + + Constant.ИспользоватьСервисDSS + + Read + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -60,24 +78,6 @@ true - - SessionParameter.ПодключениеDSS - - Get - true - - - Set - true - - - - Constant.ИспользоватьСервисDSS - - Read - true - - InformationRegister.СертификатыПользователяDSS diff --git a/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights b/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights index 18a23f74f..44b56caff 100644 --- a/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights +++ b/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - InformationRegister.ПользовательскиеНастройкиДоступаКОбработкам @@ -82,6 +55,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.ДополнительныеОтчетыИОбработки diff --git a/SSL/src/Roles/ЧтениеЗаданий/Rights.rights b/SSL/src/Roles/ЧтениеЗаданий/Rights.rights index cb3eadb00..e9820353f 100644 --- a/SSL/src/Roles/ЧтениеЗаданий/Rights.rights +++ b/SSL/src/Roles/ЧтениеЗаданий/Rights.rights @@ -82,6 +82,20 @@ true + + CommonCommand.ЗадачиПоБизнесПроцессу + + View + true + + + + Task.ЗадачаИсполнителя.Command.ВсеЗадачи + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -109,20 +123,6 @@ true - - CommonCommand.ЗадачиПоБизнесПроцессу - - View - true - - - - Task.ЗадачаИсполнителя.Command.ВсеЗадачи - - View - true - - Task.ЗадачаИсполнителя.Command.МоиЗадачи diff --git a/SSL/src/Roles/ЧтениеЗадач/Rights.rights b/SSL/src/Roles/ЧтениеЗадач/Rights.rights index ba89fa764..0f394b067 100644 --- a/SSL/src/Roles/ЧтениеЗадач/Rights.rights +++ b/SSL/src/Roles/ЧтениеЗадач/Rights.rights @@ -75,6 +75,20 @@ true + + Task.ЗадачаИсполнителя.Command.ВсеЗадачи + + View + true + + + + CommonCommand.ЗадачиПоПредмету + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -102,20 +116,6 @@ true - - Task.ЗадачаИсполнителя.Command.ВсеЗадачи - - View - true - - - - CommonCommand.ЗадачиПоПредмету - - View - true - - ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач diff --git a/SSL/src/Roles/ЧтениеОтветовНаВопросыАнкет/Rights.rights b/SSL/src/Roles/ЧтениеОтветовНаВопросыАнкет/Rights.rights index f90a14c59..e9c997270 100644 --- a/SSL/src/Roles/ЧтениеОтветовНаВопросыАнкет/Rights.rights +++ b/SSL/src/Roles/ЧтениеОтветовНаВопросыАнкет/Rights.rights @@ -74,6 +74,21 @@ true + + Document.Анкета + + Read + true + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -101,21 +116,6 @@ true - - Document.Анкета - - Read - true - - - View - true - - - InputByString - true - - Report.АналитическийОтчетПоАнкетированию diff --git a/SSL/src/Roles/ЧтениеРассылокОтчетов/Rights.rights b/SSL/src/Roles/ЧтениеРассылокОтчетов/Rights.rights index 01d89231c..e79ba3e13 100644 --- a/SSL/src/Roles/ЧтениеРассылокОтчетов/Rights.rights +++ b/SSL/src/Roles/ЧтениеРассылокОтчетов/Rights.rights @@ -25,6 +25,41 @@ true + + InformationRegister.СертификатыПолучателейРассылкиОтчетов + + Read + true + + + View + true + + + + Catalog.РассылкиОтчетов + + Read + true + + #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда +#ДляОбъекта("") +#Иначе +РассылкиОтчетов ГДЕ (РассылкиОтчетов.Автор = &ТекущийПользователь + ИЛИ РассылкиОтчетов.Личная = ЛОЖЬ + ИЛИ Предопределенный = ИСТИНА) +#КонецЕсли + + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -52,32 +87,6 @@ true - - InformationRegister.СертификатыПолучателейРассылкиОтчетов - - Read - true - - - View - true - - - - Catalog.РассылкиОтчетов - - Read - true - - - View - true - - - InputByString - true - - Report.КонтрольРассылкиОтчетов @@ -89,4 +98,211 @@ true + + ДляОбъекта(ПолеОбъекта) + // ДляОбъекта(ПолеОбъекта = "") +// Шаблон используется для ограничения элементов справочников, документов и +// других списков объектов по полю Ссылка, а также элементов зависимых списков +// объектов и записей регистров через поле объекта-владельца. +// +// Параметры: +// ПолеОбъекта - имя поля, содержащего ссылку на объект, от которого зависит элемент списка. +// Значение "" (по умолчанию) то же, что имя поля "Ссылка". +// + +#Если &СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда + // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта9,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 9 шаблона ограничения доступа ДляОбъекта. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда + // У пользователя отключены все виды доступа или + // ограничение на уровне записей не используется. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда + // У пользователя отключено ограничение для текущей таблицы. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ТребуетсяПерезапуститьСеанс,") #Тогда + Ошибка: Версия программы обновлена, требуется перезапустить сеанс. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. + +#ИначеЕсли #ИмяТекущегоПраваДоступа <> "Чтение" #Тогда + // Проверка прав Добавление, Изменение, Удаление выполняется ПередЗаписью / ПриЗаписи. + ГДЕ ИСТИНА + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";0") #Тогда + ГДЕ ЛОЖЬ + +#ИначеЕсли СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";1") #Тогда + Ошибка: Внешние пользователи отключены. + +#ИначеЕсли Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") + И Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + + Ошибка: Требуется актуализировать ограничение доступа по причине: Не удалось определить вариант ограничения доступа в параметрах сеанса для шаблона ДляОбъекта со значением параметра "#ПолеОбъекта". Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#Иначе + +ТекущаяТаблица ГДЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ИЗ РегистрСведений.КлючиДоступаКОбъектам КАК КлючиДоступаКОбъектам + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаНаборовГруппДоступа + ПО + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + #Иначе + КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + #КонецЕсли + И КлючиДоступаНаборовГруппДоступа.НаборГруппДоступа = &РазрешенныйНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда + + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаРазрешенногоНабораГруппДоступа + ПО + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + #Иначе + КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + #КонецЕсли + И КлючиДоступаРазрешенногоНабораГруппДоступа.НаборГруппДоступа = &РазрешенныйПустойНаборГруппДоступа + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + И КлючиДоступаПользователей.Пользователь = &РазрешенныйПользователь + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаПользователей + ПО + КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + И КлючиДоступаПользователей.ВнешнийПользователь = &РазрешенныйПользователь + #КонецЕсли + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда + + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаПользователей + И КлючиДоступаНаборовГруппПользователей.Пользователь = &РазрешенныйНаборГруппПользователей + #Иначе + ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаНаборовГруппПользователей + ПО + КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКОбъектам.КлючДоступаВнешнихПользователей + И КлючиДоступаНаборовГруппПользователей.ВнешнийПользователь = &РазрешенныйНаборГруппПользователей + #КонецЕсли + #КонецЕсли + ГДЕ + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда + КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка + #Иначе + КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта + #КонецЕсли + И ( + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL + #Иначе + ЛОЖЬ + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL + #КонецЕсли + ) + ) + + #Если Не СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;") + И ( СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;") + Или СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда + + #Если Не СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #Иначе + И ИСТИНА В (ИСТИНА + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";31^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";30^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";29^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";28^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";27^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";26^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";25^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";24^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";23^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";22^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";21^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";20^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";19^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";18^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";17^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";16^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";15^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";14^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";13^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";12^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";11^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";10^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";09^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";08^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";07^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";06^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";05^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";04^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";03^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";02^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";01^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + #Если СтрСодержит(&ОбщиеПараметрыШаблоновОграниченияДоступа, ";00^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли + ) + #КонецЕсли + #КонецЕсли + +#КонецЕсли + diff --git a/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights b/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights index 870d0ea02..037a51642 100644 --- a/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights +++ b/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights @@ -25,6 +25,32 @@ true + + Report.РезультатыПроверкиУчета + + Use + true + + + View + true + + + + Catalog.ПравилаПроверкиУчета + + Read + true + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -52,32 +78,6 @@ true - - Report.РезультатыПроверкиУчета - - Use - true - - - View - true - - - - Catalog.ПравилаПроверкиУчета - - Read - true - - - View - true - - - InputByString - true - - InformationRegister.РезультатыПроверкиУчета diff --git a/SSL/src/Roles/ЧтениеСостоянийОригиналовПервичныхДокументов/Rights.rights b/SSL/src/Roles/ЧтениеСостоянийОригиналовПервичныхДокументов/Rights.rights index fae2830da..f57da49fe 100644 --- a/SSL/src/Roles/ЧтениеСостоянийОригиналовПервичныхДокументов/Rights.rights +++ b/SSL/src/Roles/ЧтениеСостоянийОригиналовПервичныхДокументов/Rights.rights @@ -14,6 +14,21 @@ true + + Catalog.СостоянияОригиналовПервичныхДокументов + + Read + true + + + View + true + + + InputByString + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -41,19 +56,4 @@ true - - Catalog.СостоянияОригиналовПервичныхДокументов - - Read - true - - - View - true - - - InputByString - true - - diff --git a/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights b/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights index 5fd99b965..a195de6fa 100644 --- a/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights +++ b/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights @@ -3,33 +3,6 @@ false true false - - Configuration.БиблиотекаСтандартныхПодсистем - - MainWindowModeNormal - true - - - MainWindowModeWorkplace - true - - - MainWindowModeEmbeddedWorkplace - true - - - MainWindowModeFullscreenWorkplace - true - - - MainWindowModeKiosk - true - - - AnalyticsSystemClient - true - - Catalog.УчетныеЗаписиЭлектроннойПочты @@ -58,6 +31,33 @@ true + + Configuration.БиблиотекаСтандартныхПодсистем + + MainWindowModeNormal + true + + + MainWindowModeWorkplace + true + + + MainWindowModeEmbeddedWorkplace + true + + + MainWindowModeFullscreenWorkplace + true + + + MainWindowModeKiosk + true + + + AnalyticsSystemClient + true + + CommonForm.ОтправкаСообщения diff --git a/SSL/src/Roles/ЧтениеШаблоновСообщений/Rights.rights b/SSL/src/Roles/ЧтениеШаблоновСообщений/Rights.rights index f28423fdb..acab35263 100644 --- a/SSL/src/Roles/ЧтениеШаблоновСообщений/Rights.rights +++ b/SSL/src/Roles/ЧтениеШаблоновСообщений/Rights.rights @@ -44,6 +44,17 @@ true + + Constant.ИспользоватьОтправкуSMSВШаблонахСообщений + + Read + true + + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -71,17 +82,6 @@ true - - Constant.ИспользоватьОтправкуSMSВШаблонахСообщений - - Read - true - - - View - true - - Constant.ИспользоватьЭлектроннуюПочтуВШаблонахСообщений diff --git a/SSL/src/ScheduledJobs/УдалениеНеиспользуемыхВнешнихКомпонент/Schedule.schedule b/SSL/src/ScheduledJobs/УдалениеНеиспользуемыхВнешнихКомпонент/Schedule.schedule new file mode 100644 index 000000000..49cadfaf9 --- /dev/null +++ b/SSL/src/ScheduledJobs/УдалениеНеиспользуемыхВнешнихКомпонент/Schedule.schedule @@ -0,0 +1,22 @@ + + + Mon + Tue + Wed + Thu + Fri + Sat + Sun + Jan + Feb + Mar + Apr + May + Jun + Jul + Aug + Sep + Oct + Nov + Dec + diff --git a/SSL/src/ScheduledJobs/УдалениеНеиспользуемыхВнешнихКомпонент/УдалениеНеиспользуемыхВнешнихКомпонент.mdo b/SSL/src/ScheduledJobs/УдалениеНеиспользуемыхВнешнихКомпонент/УдалениеНеиспользуемыхВнешнихКомпонент.mdo new file mode 100644 index 000000000..5b07241a6 --- /dev/null +++ b/SSL/src/ScheduledJobs/УдалениеНеиспользуемыхВнешнихКомпонент/УдалениеНеиспользуемыхВнешнихКомпонент.mdo @@ -0,0 +1,13 @@ + + + УдалениеНеиспользуемыхВнешнихКомпонент + + ru + Удаление неиспользуемых внешних компонент + + CommonModule.ВнешниеКомпонентыВМоделиСервисаСлужебный.УдалениеНеиспользуемыхВнешнихКомпонент + true + true + 3 + 10 + diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Form.form b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Form.form index 02315c8c5..864f9310a 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Form.form +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Form.form @@ -456,6 +456,53 @@ Normal + + ДеревоВариантовОтчетаКартинкаНазначение + 62 + true + true + + true + + + ДеревоВариантовОтчета.КартинкаНазначение + + None + + ДеревоВариантовОтчетаКартинкаНазначениеРасширеннаяПодсказка + 64 + Label + true + true + + Left + + + + ДеревоВариантовОтчетаКартинкаНазначениеКонтекстноеМеню + 63 + true + + PictureField + Auto + true + Left + true + + true + true + true + true + + CommonPicture.НазначенияВариантовОтчетов + + + + 1 + + AsFileRef + + None ДеревоВариантовОтчетаКоманднаяПанель @@ -985,6 +1032,26 @@ true + + КартинкаНазначение + + <key>ru</key> + <value>Картинка назначение</value> + + 16 + + Number + + 1 + + + + true + + + true + + ТекущийПользователь diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Module.bsl index 5cfc81d77..07fcb9cfd 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ВыборВариантаОтчета/Module.bsl @@ -12,6 +12,8 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); + ОпределитьПоведениеВМобильномКлиенте(); + КлючВарианта = Параметры.КлючТекущихНастроек; ТекущийПользователь = Пользователи.АвторизованныйПользователь(); @@ -213,6 +215,21 @@ КонецПроцедуры +&НаСервере +Процедура ОпределитьПоведениеВМобильномКлиенте() + + Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + Возврат; + КонецЕсли; + + Элементы.БыстрыеОтборы.Видимость = Ложь; + Элементы.ОсновнаяКоманднаяПанель.Видимость = Ложь; + Элементы.ВариантОписание.Видимость = Ложь; + Элементы.ДеревоВариантовОтчетаКартинкаАвтора.Видимость = Ложь; + Элементы.ДеревоВариантовОтчетаАвтор.Видимость = Ложь; + +КонецПроцедуры + &НаКлиенте Процедура ВыбратьИЗакрыть() Вариант = Элементы.ДеревоВариантовОтчета.ТекущиеДанные; @@ -342,6 +359,13 @@ Элементы.ДеревоВариантовОтчета.ТекущаяСтрока = Вариант.ПолучитьИдентификатор(); КонецЕсли; Вариант.КартинкаАвтора = ?(Вариант.ТолькоДляАвтора, -1, 0); + Если СведенияОВарианте.Назначение = Перечисления.НазначенияВариантовОтчетов.ДляСмартфонов Тогда + Вариант.КартинкаНазначение = 0; + ИначеЕсли СведенияОВарианте.Назначение = Перечисления.НазначенияВариантовОтчетов.ДляКомпьютеровИПланшетов Тогда + Вариант.КартинкаНазначение = 1; + ИначеЕсли СведенияОВарианте.Назначение = Перечисления.НазначенияВариантовОтчетов.ДляЛюбыхУстройств Тогда + Вариант.КартинкаНазначение = 2; + КонецЕсли; КонецЦикла; КонецПроцедуры diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/НастройкаПоля/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/НастройкаПоля/Module.bsl index 88a60608c..9bbd87ffc 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/НастройкаПоля/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/НастройкаПоля/Module.bsl @@ -680,7 +680,6 @@ ПараметрыМетода = ДлительныеОперации.ПараметрыВыполненияФункции(ИдентификаторЗадания); ПараметрыМетода.НаименованиеФоновогоЗадания = НСтр("ru = 'Заполнение фильтра по значению'"); - ПараметрыМетода.ЗапуститьВФоне = Истина; РезультатЗаполнения = ДлительныеОперации.ВыполнитьФункцию( ПараметрыМетода, diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Form.form b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Form.form index 98fb76653..13b635fb0 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Form.form +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Form.form @@ -55,6 +55,47 @@ Normal + + Назначение + 252 + true + true + + true + + + Объект.Назначение + + + НазначениеРасширеннаяПодсказка + 254 + Label + true + true + + Left + + + + НазначениеКонтекстноеМеню + 253 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ГруппаДоступность 268 @@ -1957,6 +1998,19 @@ true + + Назначение + 14 + + EnumRef.НазначенияВариантовОтчетов + + + true + + + true + + ВариантСсылка diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Help/ru.html b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Help/ru.html index b71324333..67ee05a5d 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Help/ru.html +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Help/ru.html @@ -19,10 +19,16 @@
          • Варианты отчетов, в том числе и предопределенных, которые нельзя перезаписать, отображаются в списке существующих вариантов серым цветом. При сохранении таких вариантов отчетов программа в наименовании по умолчанию добавляет слово "-копия".
          • В случае если заменяемый вариант отчета был помечен на удаление, программой выводится предупреждение. Нажмите кнопку Да, для того чтобы подтвердить свой выбор.
          • -
          • Для администраторов программы или ответственных за отчеты предусмотрена возможность перезаписи общих вариантов отчетов других авторов.

          Доступность

          +
        • Для администраторов программы или ответственных за отчеты предусмотрена возможность перезаписи общих вариантов отчетов других авторов.
        • Назначение

          +

          +
          • При сохранении варианта отчета также нужно выбрать его Назначение с помощью выпадающего списка:
          • +
            • Для компьютеров и планшетов - удобно использовать для устройств с широким экраном, т.к. в них возможно отображение таблиц с большим количеством колонок. 
            • +
            • Для смартфонов (для мобильного клиента) - оптимизировано для устройств с узким экраном.
            • +
            • Для любых устройств - одинаково удобно подходит для любых устройств. 

          +

          Доступность

          • С помощью переключателя Доступен администратор варианта отчета может ограничить доступность варианта отчета:
            • Только автору - в таблице ниже с помощью кнопки Подобрать выберите автора отчета.
            • -
            • Указанным пользователям, в этом случае вариант отчета будет виден для выбранных пользователей. В таблице ниже с помощью кнопки Подобрать выберите из списка пользователя или группу пользователей. 
            • +
            • Всем, в этом случае вариант отчета будет виден для всех или для конкретно выбранных пользователей. В таблице ниже с помощью кнопки Подобрать выберите из списка пользователя или группу пользователей. 
          • Для указанных пользователей отчет будет отображаться в панели отчетов, подменю и окне выбора варианта отчета. Остальным пользователям, имеющим права на отчет, он будет доступен из списка Все отчеты, а также в режиме настройки панели отчетов.

          Описание отчета

          • Введите Описание, которое выводится под ссылкой в панели отчетов.

          Сохранение варианта отчета

          diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl index 8476a6f8d..fd32aa152 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl @@ -667,6 +667,7 @@ ВариантОбъект.Наименование = Объект.Наименование; ВариантОбъект.Описание = Объект.Описание; ВариантОбъект.ТолькоДляАвтора = Объект.ТолькоДляАвтора; + ВариантОбъект.Назначение = Объект.Назначение; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); @@ -761,6 +762,7 @@ Если Вариант.КлючВарианта = ПрототипКлюч Тогда ПрототипСсылка = Вариант.Ссылка; ПрототипПредопределенный = Не Вариант.Пользовательский; + Объект.Назначение = Вариант.Назначение; КонецЕсли; КонецЦикла; Если Не ЗначениеЗаполнено(ПрототипСсылка) И ЗначениеЗаполнено(ПрототипКлюч) Тогда @@ -770,7 +772,8 @@ Запрос.Текст = "ВЫБРАТЬ | ВариантыОтчетов.Ссылка КАК Ссылка, - | ВариантыОтчетов.Пользовательский КАК Пользовательский + | ВариантыОтчетов.Пользовательский КАК Пользовательский, + | ВариантыОтчетов.Назначение КАК Назначение |ИЗ | Справочник.ВариантыОтчетов КАК ВариантыОтчетов |ГДЕ @@ -783,6 +786,7 @@ Если Выборка.Следующий() Тогда ПрототипСсылка = Выборка.Ссылка; ПрототипПредопределенный = Не Выборка.Пользовательский; + Объект.Назначение = Выборка.Назначение; КонецЕсли; КонецЕсли; @@ -840,6 +844,7 @@ БудетПерезаписанСуществующий = Истина; НаименованиеМодифицировано = Ложь; Объект.Наименование = Вариант.Наименование; + Объект.Назначение = Вариант.Назначение; ВариантСсылка = Вариант.Ссылка; Объект.Автор = Вариант.Автор; diff --git a/SSL/src/StyleItems/ЦветМеткиГолубой/ЦветМеткиГолубой.mdo b/SSL/src/StyleItems/ЦветМеткиГолубой/ЦветМеткиГолубой.mdo new file mode 100644 index 000000000..2a88e8908 --- /dev/null +++ b/SSL/src/StyleItems/ЦветМеткиГолубой/ЦветМеткиГолубой.mdo @@ -0,0 +1,15 @@ + + + ЦветМеткиГолубой + + ru + Цвет метки голубой + + + + 144 + 224 + 236 + + + diff --git a/SSL/src/StyleItems/ЦветМеткиЖелтый/ЦветМеткиЖелтый.mdo b/SSL/src/StyleItems/ЦветМеткиЖелтый/ЦветМеткиЖелтый.mdo new file mode 100644 index 000000000..ec01093e2 --- /dev/null +++ b/SSL/src/StyleItems/ЦветМеткиЖелтый/ЦветМеткиЖелтый.mdo @@ -0,0 +1,15 @@ + + + ЦветМеткиЖелтый + + ru + Цвет метки желтый + + + + 245 + 235 + 147 + + + diff --git a/SSL/src/StyleItems/ЦветМеткиЗеленый/ЦветМеткиЗеленый.mdo b/SSL/src/StyleItems/ЦветМеткиЗеленый/ЦветМеткиЗеленый.mdo new file mode 100644 index 000000000..b9690905e --- /dev/null +++ b/SSL/src/StyleItems/ЦветМеткиЗеленый/ЦветМеткиЗеленый.mdo @@ -0,0 +1,15 @@ + + + ЦветМеткиЗеленый + + ru + Цвет метки зеленый + + + + 184 + 222 + 178 + + + diff --git a/SSL/src/StyleItems/ЦветМеткиКрасный/ЦветМеткиКрасный.mdo b/SSL/src/StyleItems/ЦветМеткиКрасный/ЦветМеткиКрасный.mdo new file mode 100644 index 000000000..e7783c856 --- /dev/null +++ b/SSL/src/StyleItems/ЦветМеткиКрасный/ЦветМеткиКрасный.mdo @@ -0,0 +1,15 @@ + + + ЦветМеткиКрасный + + ru + Цвет метки красный + + + + 239 + 180 + 173 + + + diff --git a/SSL/src/StyleItems/ЦветМеткиЛаймовый/ЦветМеткиЛаймовый.mdo b/SSL/src/StyleItems/ЦветМеткиЛаймовый/ЦветМеткиЛаймовый.mdo new file mode 100644 index 000000000..d9cb775de --- /dev/null +++ b/SSL/src/StyleItems/ЦветМеткиЛаймовый/ЦветМеткиЛаймовый.mdo @@ -0,0 +1,15 @@ + + + ЦветМеткиЛаймовый + + ru + Цвет метки лаймовый + + + + 180 + 241 + 209 + + + diff --git a/SSL/src/StyleItems/ЦветМеткиОранжевый/ЦветМеткиОранжевый.mdo b/SSL/src/StyleItems/ЦветМеткиОранжевый/ЦветМеткиОранжевый.mdo new file mode 100644 index 000000000..45576d022 --- /dev/null +++ b/SSL/src/StyleItems/ЦветМеткиОранжевый/ЦветМеткиОранжевый.mdo @@ -0,0 +1,15 @@ + + + ЦветМеткиОранжевый + + ru + Цвет метки оранжевый + + + + 250 + 211 + 157 + + + diff --git a/SSL/src/StyleItems/ЦветМеткиРозовый/ЦветМеткиРозовый.mdo b/SSL/src/StyleItems/ЦветМеткиРозовый/ЦветМеткиРозовый.mdo new file mode 100644 index 000000000..aa86a5a3d --- /dev/null +++ b/SSL/src/StyleItems/ЦветМеткиРозовый/ЦветМеткиРозовый.mdo @@ -0,0 +1,15 @@ + + + ЦветМеткиРозовый + + ru + Цвет метки розовый + + + + 249 + 195 + 229 + + + diff --git a/SSL/src/StyleItems/ЦветМеткиСерый/ЦветМеткиСерый.mdo b/SSL/src/StyleItems/ЦветМеткиСерый/ЦветМеткиСерый.mdo new file mode 100644 index 000000000..faa8a8eff --- /dev/null +++ b/SSL/src/StyleItems/ЦветМеткиСерый/ЦветМеткиСерый.mdo @@ -0,0 +1,15 @@ + + + ЦветМеткиСерый + + ru + Цвет метки серый + + + + 194 + 200 + 209 + + + diff --git a/SSL/src/StyleItems/ЦветМеткиСиний/ЦветМеткиСиний.mdo b/SSL/src/StyleItems/ЦветМеткиСиний/ЦветМеткиСиний.mdo new file mode 100644 index 000000000..ef82938be --- /dev/null +++ b/SSL/src/StyleItems/ЦветМеткиСиний/ЦветМеткиСиний.mdo @@ -0,0 +1,15 @@ + + + ЦветМеткиСиний + + ru + Цвет метки синий + + + + 140 + 190 + 218 + + + diff --git a/SSL/src/StyleItems/ЦветМеткиФиолетовый/ЦветМеткиФиолетовый.mdo b/SSL/src/StyleItems/ЦветМеткиФиолетовый/ЦветМеткиФиолетовый.mdo new file mode 100644 index 000000000..02749be56 --- /dev/null +++ b/SSL/src/StyleItems/ЦветМеткиФиолетовый/ЦветМеткиФиолетовый.mdo @@ -0,0 +1,15 @@ + + + ЦветМеткиФиолетовый + + ru + Цвет метки фиолетовый + + + + 224 + 193 + 236 + + + diff --git a/SSL/src/StyleItems/ЦветТекстаМетки/ЦветТекстаМетки.mdo b/SSL/src/StyleItems/ЦветТекстаМетки/ЦветТекстаМетки.mdo new file mode 100644 index 000000000..bb70dbc1b --- /dev/null +++ b/SSL/src/StyleItems/ЦветТекстаМетки/ЦветТекстаМетки.mdo @@ -0,0 +1,15 @@ + + + ЦветТекстаМетки + + ru + Цвет текста метки + + + + 63 + 81 + 110 + + + diff --git a/SSL/src/StyleItems/ШрифтМеток/ШрифтМеток.mdo b/SSL/src/StyleItems/ШрифтМеток/ШрифтМеток.mdo new file mode 100644 index 000000000..c82b7581d --- /dev/null +++ b/SSL/src/StyleItems/ШрифтМеток/ШрифтМеток.mdo @@ -0,0 +1,19 @@ + + + ШрифтМеток + + ru + Шрифт меток + + Font + + + Style.NormalTextFont + 8.0 + false + false + false + false + + + diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo index 64875b925..14b359704 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo @@ -374,5 +374,8 @@ CommonPicture.МестоДляШтрихкода CommonPicture.ЦветГраницы CommonPicture.АнализДанных48 + CommonPicture.ВажностьВысокая + CommonPicture.ВажностьНеЗадана + CommonPicture.ВажностьНизкая Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВариантыОтчетов/ВариантыОтчетов.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВариантыОтчетов/ВариантыОтчетов.mdo index 7444ddd85..e6f0e9190 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВариантыОтчетов/ВариантыОтчетов.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВариантыОтчетов/ВариантыОтчетов.mdo @@ -119,5 +119,11 @@ CommonPicture.ПроверитьФормулу CommonPicture.ОтменитьДействие CommonPicture.ПовторитьДействие + CommonPicture.НазначенияВариантовОтчетов + Enum.НазначенияВариантовОтчетов + InformationRegister.СнимкиОтчетов + CommonCommand.СнимкиОтчетовДляАвтономногоРежима + Role.ДобавлениеИзменениеСнимковОтчетов + DefinedType.ВариантОбновляемогоОтчета Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ОбменДанными/ОбменДанными.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ОбменДанными/ОбменДанными.mdo index ba7fea80b..d27427735 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ОбменДанными/ОбменДанными.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ОбменДанными/ОбменДанными.mdo @@ -176,9 +176,13 @@ FunctionalOption.РаботаВАвтономномРежиме CommonModule.ОбменДаннымиТрансляцияФорматаПовтИсп DefinedType.ОбменДаннымиУчетныеЗаписиЭлектроннойПочты + Constant.ИспользоватьОценкуПроизводительностиСинхронизацииДанных + CommonModule.ОбменДаннымиОценкаПроизводительности + Catalog.СеансыОбменовДанными XDTOPackage.EnterpriseData_1_11_7 - XDTOPackage.EnterpriseData_1_12_1 XDTOPackage.EnterpriseData_1_15_3 + XDTOPackage.EnterpriseData_1_12_1 + WebService.Exchange_3_0_2_2 Регистрация Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаВМоделиСервиса/Subsystems/ВнешниеКомпонентыВМоделиСервиса/ВнешниеКомпонентыВМоделиСервиса.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаВМоделиСервиса/Subsystems/ВнешниеКомпонентыВМоделиСервиса/ВнешниеКомпонентыВМоделиСервиса.mdo index afee7ffa3..ba1dcf743 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаВМоделиСервиса/Subsystems/ВнешниеКомпонентыВМоделиСервиса/ВнешниеКомпонентыВМоделиСервиса.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаВМоделиСервиса/Subsystems/ВнешниеКомпонентыВМоделиСервиса/ВнешниеКомпонентыВМоделиСервиса.mdo @@ -9,5 +9,6 @@ Catalog.ОбщиеВнешниеКомпоненты CommonModule.ВнешниеКомпонентыВМоделиСервисаСлужебный CommonModule.ВнешниеКомпонентыВМоделиСервисаСлужебныйКлиент + ScheduledJob.УдалениеНеиспользуемыхВнешнихКомпонент Subsystem.СтандартныеПодсистемы.Subsystem.РаботаВМоделиСервиса diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаВМоделиСервиса/Subsystems/ОбменДаннымиВМоделиСервиса/ОбменДаннымиВМоделиСервиса.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаВМоделиСервиса/Subsystems/ОбменДаннымиВМоделиСервиса/ОбменДаннымиВМоделиСервиса.mdo index 9199e2611..755617f1f 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаВМоделиСервиса/Subsystems/ОбменДаннымиВМоделиСервиса/ОбменДаннымиВМоделиСервиса.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаВМоделиСервиса/Subsystems/ОбменДаннымиВМоделиСервиса/ОбменДаннымиВМоделиСервиса.mdo @@ -82,5 +82,7 @@ CommonModule.ОбменДаннымиВнутренняяПубликацияВызовСервера FunctionalOption.ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста Constant.ИспользоватьОптимизированнуюЗаписьСозданияАвтономногоРабочегоМеста + EventSubscription.КонтрольНеразделенныхНаборовЗаписейПриЗаписиБСД + EventSubscription.КонтрольНеразделенныхОбъектовПриЗаписиБСД Subsystem.СтандартныеПодсистемы.Subsystem.РаботаВМоделиСервиса diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/Help/ru.html b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/Help/ru.html index 99a62e1c7..7484f2004 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/Help/ru.html +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСФайлами/Help/ru.html @@ -1,5 +1,5 @@ -

          Система предоставляет возможность хранения файлов произвольного формата. В отличие от хранения файлов на дисках, файлы хранящиеся непосредственно в системе могут быть связаны с данными информационной базы. Например, в файле прикрепленном к справочнику "Номенклатура" можно хранить подробное описание товара.

          +

          Система предоставляет возможность хранения файлов произвольного формата. В отличие от хранения файлов на компьютере, файлы хранящиеся непосредственно в системе могут быть связаны с данными информационной базы. Например, в файле прикрепленном к справочнику "Номенклатура" можно хранить подробное описание товара.

          Администрирование файлов осуществляется в форме настроек параметров системы раздела Настройка и администрирование. Персональные настройки пользователя для работы с файлами находятся в форме Мои настройки этого же раздела.

          См. также

          • diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Свойства/Свойства.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Свойства/Свойства.mdo index 19f569248..39b5b50b1 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Свойства/Свойства.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Свойства/Свойства.mdo @@ -35,5 +35,35 @@ CommonModule.УправлениеСвойствамиПовтИсп SessionParameter.ИнтерактивнаяПроверкаЗаполненияСвойств EventSubscription.ДополнительныеРеквизитыОбработкаПроверкиЗаполнения + Enum.ЦветаСвойств + Enum.ВидыСвойств + StyleItem.ЦветМеткиГолубой + StyleItem.ЦветМеткиЖелтый + StyleItem.ЦветМеткиЗеленый + StyleItem.ЦветМеткиЛаймовый + StyleItem.ЦветМеткиКрасный + StyleItem.ЦветМеткиОранжевый + StyleItem.ЦветМеткиРозовый + StyleItem.ЦветМеткиСерый + StyleItem.ЦветМеткиСиний + StyleItem.ЦветМеткиФиолетовый + CommonPicture.МеткаФиолетовая + CommonPicture.МеткаСиняя + CommonPicture.МеткаСерая + CommonPicture.МеткаРозовая + CommonPicture.МеткаОранжевая + CommonPicture.МеткаКрасная + CommonPicture.МеткаЛаймовая + CommonPicture.МеткаЗеленая + CommonPicture.МеткаЖелтая + CommonPicture.МеткаГолубая + CommonPicture.Метка + CommonPicture.ПиктограммыСвойств + CommonForm.РедактированиеМеток + Enum.ВариантыОтображенияМеток + DefinedType.ВладелецМеток + CommonPicture.РедактироватьМетки + StyleItem.ЦветТекстаМетки + StyleItem.ШрифтМеток Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяПодпись/ЭлектроннаяПодпись.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяПодпись/ЭлектроннаяПодпись.mdo index 67258b6f5..b1ae1e486 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяПодпись/ЭлектроннаяПодпись.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ЭлектроннаяПодпись/ЭлектроннаяПодпись.mdo @@ -85,5 +85,6 @@ Enum.РежимыИспользованияПрограммыЭлектроннойПодписи CommonPicture.ТипыСертификатов InformationRegister.СпискиОтзываСертификатов + Role.УдалениеЭлектронныхПодписей Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачи/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачи/Module.bsl index 145786934..53f7eb620 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачи/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/МоиЗадачи/Module.bsl @@ -169,6 +169,18 @@ УсловноеОформление.Элементы.Очистить(); БизнесПроцессыИЗадачиСервер.УстановитьОформлениеЗадач(Список); + Элемент = Список.УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДатаНачала.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Выполнена"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", ""); + КонецПроцедуры &НаКлиенте diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Form.form b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Form.form index a76ed4597..1b92b708d 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Form.form +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Form.form @@ -89,6 +89,7 @@ + true true true @@ -2521,6 +2522,7 @@ String + true ПоказыватьЗадачи @@ -2531,6 +2533,14 @@ + + БлокировкаОкнаВладельца + + + + ВидимостьОтборов + + diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl index d7d07532e..3f78425ca 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ФормаСписка/Module.bsl @@ -13,18 +13,14 @@ УстановитьУсловноеОформление(); - ТекстЗаголовкаФормы = ""; - Если Параметры.Свойство("ЗаголовокФормы", ТекстЗаголовкаФормы) - И Не ПустаяСтрока(ТекстЗаголовкаФормы) Тогда - Заголовок = ТекстЗаголовкаФормы; + Если Не ПустаяСтрока(Параметры.ЗаголовокФормы) Тогда + Заголовок = Параметры.ЗаголовокФормы; АвтоЗаголовок = Ложь; КонецЕсли; - Если Параметры.Свойство("БизнесПроцесс") Тогда - СтрокаБизнесПроцесса = Параметры.БизнесПроцесс; - СтрокаЗадачи = Параметры.Задача; - Элементы.ГруппаЗаголовок.Видимость = Истина; - КонецЕсли; + Элементы.ГруппаЗаголовок.Видимость = Не ПустаяСтрока(Параметры.БизнесПроцесс); + СтрокаБизнесПроцесса = Параметры.БизнесПроцесс; + СтрокаЗадачи = Параметры.Задача; Если Параметры.Свойство("ПоказыватьЗадачи") Тогда ПоказыватьЗадачи = Параметры.ПоказыватьЗадачи; @@ -32,14 +28,14 @@ ПоказыватьЗадачи = 2; КонецЕсли; - Если Параметры.Свойство("ВидимостьОтборов") Тогда + Если Параметры.ВидимостьОтборов <> Неопределено Тогда Элементы.ГруппаОтбор.Видимость = Параметры.ВидимостьОтборов; Иначе ПоАвтору = Пользователи.АвторизованныйПользователь(); КонецЕсли; УстановитьОтбор(); - Если Параметры.Свойство("БлокировкаОкнаВладельца") Тогда + Если Параметры.БлокировкаОкнаВладельца <> Неопределено Тогда РежимОткрытияОкна = Параметры.БлокировкаОкнаВладельца; КонецЕсли; @@ -66,7 +62,7 @@ &НаСервере Процедура ПередЗагрузкойДанныхИзНастроекНаСервере(Настройки) - ИмяНастройки = ?(Параметры.Свойство("БизнесПроцесс"), "ФормаСпискаБП", "ФормаСписка"); + ИмяНастройки = ?(Не ПустаяСтрока(Параметры.БизнесПроцесс), "ФормаСпискаБП", "ФормаСписка"); НастройкиОтбора = ОбщегоНазначения.ХранилищеСистемныхНастроекЗагрузить("Задачи.ЗадачаИсполнителя.Формы.ФормаСписка", ИмяНастройки); Если НастройкиОтбора = Неопределено Тогда Настройки.Очистить(); @@ -133,13 +129,11 @@ &НаКлиенте Процедура СписокПриАктивизацииСтроки(Элемент) - Если Элемент.ТекущиеДанные <> Неопределено - И Элемент.ТекущиеДанные.Свойство("ПринятаКИсполнению") - И НЕ Элемент.ТекущиеДанные.ПринятаКИсполнению Тогда - ДоступностьПунктаПринятьКИсполнению(Истина); - Иначе - ДоступностьПунктаПринятьКИсполнению(Ложь); + ПринятаКИсполнению = Ложь; + Если Элемент.ТекущиеДанные <> Неопределено Тогда + Элемент.ТекущиеДанные.Свойство("ПринятаКИсполнению", ПринятаКИсполнению) КонецЕсли; + УстановитьДоступностьПринятьКИсполнению(ПринятаКИсполнению); КонецПроцедуры #КонецОбласти @@ -150,7 +144,7 @@ Процедура ПринятьКИсполнению(Команда) БизнесПроцессыИЗадачиКлиент.ПринятьЗадачиКИсполнению(Элементы.Список.ВыделенныеСтроки); - ДоступностьПунктаПринятьКИсполнению(Ложь); + УстановитьДоступностьПринятьКИсполнению(Ложь); КонецПроцедуры @@ -158,7 +152,7 @@ Процедура ОтменитьПринятиеКИсполнению(Команда) БизнесПроцессыИЗадачиКлиент.ОтменитьПринятиеЗадачКИсполнению(Элементы.Список.ВыделенныеСтроки); - ДоступностьПунктаПринятьКИсполнению(Истина); + УстановитьДоступностьПринятьКИсполнению(Истина); КонецПроцедуры @@ -254,7 +248,7 @@ КонецПроцедуры &НаКлиенте -Процедура ДоступностьПунктаПринятьКИсполнению(ЗначениеФлага) +Процедура УстановитьДоступностьПринятьКИсполнению(ЗначениеФлага) Элементы.ПринятьКИсполнению.Доступность = ЗначениеФлага; Элементы.СписокКонтекстноеМенюПринятьКИсполнению.Доступность = ЗначениеФлага; diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl index 84b90d3fb..e569670ce 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl @@ -23,13 +23,7 @@ Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт Результат = Новый Массив; - Результат.Добавить("Автор"); Результат.Добавить("Важность"); - Результат.Добавить("ДатаИсполнения"); - Результат.Добавить("ДатаНачала"); - Результат.Добавить("ДатаПринятияКИсполнению"); - Результат.Добавить("Предмет"); - Результат.Добавить("ПринятаКИсполнению"); Результат.Добавить("СрокИсполнения"); Возврат Результат; @@ -67,10 +61,15 @@ | ИЛИ ЗначениеРазрешено(ИсполнителиЗадач.Исполнитель)"; Ограничение.ТекстДляВнешнихПользователей = - "РазрешитьЧтениеИзменение + "РазрешитьЧтение |ГДЕ - | ЗначениеРазрешено(Исполнитель) - | ИЛИ ЗначениеРазрешено(Автор)"; + | ЗначениеРазрешено(Автор) + | ИЛИ ЗначениеРазрешено(Исполнитель) + |; + |РазрешитьИзменениеЕслиРазрешеноЧтение + |ГДЕ + | ЗначениеРазрешено(Исполнитель)"; + КонецПроцедуры diff --git a/SSL/src/WebServices/Exchange_3_0_2_1/Module.bsl b/SSL/src/WebServices/Exchange_3_0_2_1/Module.bsl index 4cd3c5f5d..7ff4d1f66 100644 --- a/SSL/src/WebServices/Exchange_3_0_2_1/Module.bsl +++ b/SSL/src/WebServices/Exchange_3_0_2_1/Module.bsl @@ -187,7 +187,7 @@ МодульПомощникНастройки.ВыполнитьДействияПоНастройкеОбменаДанными( НастройкиПодключения); Исключение - СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); @@ -256,7 +256,7 @@ Если ФоновоеЗадание.ИнформацияОбОшибке <> Неопределено Тогда - СтрокаСообщенияОбОшибке = ПодробноеПредставлениеОшибки(ФоновоеЗадание.ИнформацияОбОшибке); + СтрокаСообщенияОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ФоновоеЗадание.ИнформацияОбОшибке); КонецЕсли; @@ -339,7 +339,7 @@ УдалитьФайлы(ВременныйКаталогВыгрузки(TransferId)); Исключение ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеВременногоФайла(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; Возврат ""; @@ -414,7 +414,7 @@ УдалитьФайлы(ВременныйКаталог); Исключение ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеВременногоФайла(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; ВыйтиИзОбластиДанных(Zone); @@ -436,7 +436,7 @@ УдалитьФайлы(ВременныйКаталог); Исключение ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеВременногоФайла(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; ВыйтиИзОбластиДанных(Zone); @@ -450,6 +450,8 @@ ВойтиВОбластьДанных(ОбластьДанных); + УстановитьПривилегированныйРежим(Истина); + УзелОбмена = ОбменДаннымиСервер.УзелПланаОбменаПоКоду(ИмяПланаОбмена, ИдентификаторУзла); Если УзелОбмена = Неопределено Тогда @@ -500,7 +502,7 @@ Попытка ОбменДаннымиСервер.ПроверитьВозможностьВыполненияОбменов(Истина); Исключение - Результат = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); Возврат Ложь; КонецПопытки; @@ -508,7 +510,7 @@ Попытка ПроверитьБлокировкуИнформационнойБазыДляОбновления(); Исключение - Результат = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Результат = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); Возврат Ложь; КонецПопытки; diff --git a/SSL/src/WebServices/Exchange_3_0_2_2/Exchange_3_0_2_2.mdo b/SSL/src/WebServices/Exchange_3_0_2_2/Exchange_3_0_2_2.mdo new file mode 100644 index 000000000..7f81c7800 --- /dev/null +++ b/SSL/src/WebServices/Exchange_3_0_2_2/Exchange_3_0_2_2.mdo @@ -0,0 +1,1219 @@ + + + Exchange_3_0_2_2 + + ru + Exchange 3.0.2.2 + + http://www.1c.ru/SSL/Exchange_3_0_2_2 + + http://v8.1c.ru/8.1/data/core + + exchange_3_0_2_2.1cws + 20 + + Ping + + ru + Ping + + + string + http://www.w3.org/2001/XMLSchema + + true + Ping + Managed + + + TestConnection + + ru + Test connection + + + boolean + http://www.w3.org/2001/XMLSchema + + TestConnection + Managed + + ExchangePlanName + + ru + Exchange plan name + + + string + http://www.w3.org/2001/XMLSchema + + + + NodeCode + + ru + Node code + + + string + http://www.w3.org/2001/XMLSchema + + + + Result + + ru + Result + + + string + http://www.w3.org/2001/XMLSchema + + true + InOut + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + Upload + + ru + Upload + + Выполняет выгрузку данных + + string + http://www.w3.org/2001/XMLSchema + + true + ВыполнитьВыгрузку + Managed + + ExchangePlanName + + ru + Exchange plan name + + + string + http://www.w3.org/2001/XMLSchema + + + + NodeCode + + ru + Node code + + + string + http://www.w3.org/2001/XMLSchema + + + + Data + + ru + Data + + + ValueStorage + http://v8.1c.ru/8.1/data/core + + true + InOut + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + Download + + ru + Download + + Выполняет загрузку данных + + string + http://www.w3.org/2001/XMLSchema + + true + ВыполнитьЗагрузку + Managed + + ExchangePlanName + + ru + Exchange plan name + + + string + http://www.w3.org/2001/XMLSchema + + + + NodeCode + + ru + Node code + + + string + http://www.w3.org/2001/XMLSchema + + + + Data + + ru + Data + + + ValueStorage + http://v8.1c.ru/8.1/data/core + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + UploadData + + ru + Upload data + + Выполняет выгрузку данных + + string + http://www.w3.org/2001/XMLSchema + + true + ВыполнитьВыгрузкуДанных + Managed + + ExchangePlanName + + ru + Exchange plan name + + + string + http://www.w3.org/2001/XMLSchema + + + + NodeCode + + ru + Node code + + + string + http://www.w3.org/2001/XMLSchema + + + + FileID + + ru + File ID + + + string + http://www.w3.org/2001/XMLSchema + + true + InOut + + + ContinuousOperation + + ru + Continuous operation + + + boolean + http://www.w3.org/2001/XMLSchema + + true + InOut + + + Operation + + ru + Operation + + + string + http://www.w3.org/2001/XMLSchema + + true + InOut + + + ContinuousOperationAllowed + + ru + Continuous operation allowed + + + boolean + http://www.w3.org/2001/XMLSchema + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + DownloadData + + ru + Download data + + Выполняет загрузку данных + + string + http://www.w3.org/2001/XMLSchema + + true + ВыполнитьЗагрузкуДанных + Managed + + ExchangePlanName + + ru + Exchange plan name + + + string + http://www.w3.org/2001/XMLSchema + + + + NodeCode + + ru + Node code + + + string + http://www.w3.org/2001/XMLSchema + + + + FileID + + ru + File ID + + + string + http://www.w3.org/2001/XMLSchema + + + + ContinuousOperation + + ru + Continuous operation + + + boolean + http://www.w3.org/2001/XMLSchema + + true + InOut + + + Operation + + ru + Operation + + + string + http://www.w3.org/2001/XMLSchema + + true + InOut + + + ContinuousOperationAllowed + + ru + Continuous operation allowed + + + boolean + http://www.w3.org/2001/XMLSchema + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + GetIBParameters + + ru + Get IBParameters + + + Structure + http://v8.1c.ru/8.1/data/core + + ПолучитьПараметрыИнформационнойБазы + Managed + + ExchangePlanName + + ru + Exchange plan name + + + string + http://www.w3.org/2001/XMLSchema + + + + NodeCode + + ru + Node code + + + string + http://www.w3.org/2001/XMLSchema + + true + + + ResultMessage + + ru + Result message + + + string + http://www.w3.org/2001/XMLSchema + + true + InOut + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + AdvancedOptions + + ru + Advanced options + + + Structure + http://v8.1c.ru/8.1/data/core + + true + InOut + + + + GetContinuousOperationStatus + + ru + Get continuous operation status + + + string + http://www.w3.org/2001/XMLSchema + + ПолучитьСостояниеДлительнойОперации + Managed + + Operation + + ru + Operation + + + string + http://www.w3.org/2001/XMLSchema + + + + ResultMessage + + ru + Result message + + + string + http://www.w3.org/2001/XMLSchema + + true + InOut + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + PrepareGetFile + + ru + Prepare get file + + + string + http://www.w3.org/2001/XMLSchema + + true + PrepareGetFile + Managed + + FileId + + ru + File id + + + UUID + http://v8.1c.ru/8.1/data/core + + + + BlockSize + + ru + Block size + + В КБ, 0 не разделять + + decimal + http://www.w3.org/2001/XMLSchema + + + + TransferId + + ru + Transfer id + + + UUID + http://v8.1c.ru/8.1/data/core + + true + InOut + + + PartQuantity + + ru + Part quantity + + + int + http://www.w3.org/2001/XMLSchema + + true + InOut + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + GetFilePart + + ru + Get file part + + + string + http://www.w3.org/2001/XMLSchema + + true + GetFilePart + Managed + + TransferId + + ru + Transfer id + + + UUID + http://v8.1c.ru/8.1/data/core + + + + PartNumber + + ru + Part number + + + int + http://www.w3.org/2001/XMLSchema + + + + PartData + + ru + Part data + + + base64Binary + http://www.w3.org/2001/XMLSchema + + true + InOut + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + ReleaseFile + + ru + Release file + + + string + http://www.w3.org/2001/XMLSchema + + true + ReleaseFile + Managed + + TransferId + + ru + Transfer id + + + UUID + http://v8.1c.ru/8.1/data/core + + + + + PutFilePart + + ru + Put file part + + + string + http://www.w3.org/2001/XMLSchema + + true + PutFilePart + Managed + + TransferId + + ru + Transfer id + + + UUID + http://v8.1c.ru/8.1/data/core + + + + PartNumber + + ru + Part number + + + int + http://www.w3.org/2001/XMLSchema + + true + + + PartData + + ru + Part data + + + base64Binary + http://www.w3.org/2001/XMLSchema + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + SaveFileFromParts + + ru + Save file from parts + + + string + http://www.w3.org/2001/XMLSchema + + true + SaveFileFromParts + Managed + + TransferId + + ru + Transfer id + + + UUID + http://v8.1c.ru/8.1/data/core + + + + PartQuantity + + ru + Part quantity + + + int + http://www.w3.org/2001/XMLSchema + + + + FileId + + ru + File id + + + UUID + http://v8.1c.ru/8.1/data/core + + true + InOut + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + CreateExchangeNode + + ru + Create exchange node + + + Structure + http://v8.1c.ru/8.1/data/core + + true + СоздатьУзелОбменаДанными + Managed + + Parameters + + ru + Parameters + + + Structure + http://v8.1c.ru/8.1/data/core + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + RemoveExchangeNode + + ru + Remove exchange node + + + Structure + http://v8.1c.ru/8.1/data/core + + true + УдалитьУзелОбменаДанными + Managed + + ExchangePlanName + + ru + Exchange plan name + + + string + http://www.w3.org/2001/XMLSchema + + + + NodeId + + ru + Node id + + + string + http://www.w3.org/2001/XMLSchema + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + PutMessageForDataMatching + + ru + Put message for data matching + + + string + http://www.w3.org/2001/XMLSchema + + true + PutMessageForDataMatching + Managed + + ExchangePlanName + + ru + Exchange plan name + + + string + http://www.w3.org/2001/XMLSchema + + + + NodeId + + ru + Node id + + + string + http://www.w3.org/2001/XMLSchema + + + + FileId + + ru + File id + + + string + http://www.w3.org/2001/XMLSchema + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + UploadDataInt + + ru + Upload data int + + Выполняет выгрузку данных (Для внутренней публикации) + + string + http://www.w3.org/2001/XMLSchema + + true + ВыполнитьВыгрузкуДанныхВнутренняяПубликация + Managed + + ExchangePlanName + + ru + Exchange plan name + + + string + http://www.w3.org/2001/XMLSchema + + + + NodeCode + + ru + Node code + + + string + http://www.w3.org/2001/XMLSchema + + + + TaskID + + ru + Task ID + + + string + http://www.w3.org/2001/XMLSchema + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + DownloadDataInt + + ru + Download data int + + Выполняет загрузку данных (внутренняя публикация) + + string + http://www.w3.org/2001/XMLSchema + + true + ВыполнитьЗагрузкуДанныхВнутренняяПубликация + Managed + + ExchangePlanName + + ru + Exchange plan name + + + string + http://www.w3.org/2001/XMLSchema + + + + NodeCode + + ru + Node code + + + string + http://www.w3.org/2001/XMLSchema + + + + TaskID + + ru + Task ID + + + string + http://www.w3.org/2001/XMLSchema + + + + FileID + + ru + File ID + + + string + http://www.w3.org/2001/XMLSchema + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + ChangeNodeTransportToWSInt + + ru + Change node transport to WS (Internal) + + Изменить транспорт узла на Интернет (Внутренняя публикация) + + boolean + http://www.w3.org/2001/XMLSchema + + true + ChangeNodeTransportToWSInt + Managed + + Parameters + + ru + Parameters + + + Structure + http://v8.1c.ru/8.1/data/core + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + Callback + + ru + Callback + + Сообщить корреспонденту об окончании задачи обмена + + string + http://www.w3.org/2001/XMLSchema + + true + Callback + Managed + + TaskID + + ru + Task ID + + + string + http://www.w3.org/2001/XMLSchema + + true + + + Error + + ru + Error + + + string + http://www.w3.org/2001/XMLSchema + + true + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + + TaskStatus + + ru + Task status + + Возвращает состояние задачи + + string + http://www.w3.org/2001/XMLSchema + + true + TaskStatus + Managed + + TaskID + + ru + Task ID + + + string + http://www.w3.org/2001/XMLSchema + + true + + + + StopTasks + + ru + Stop tasks + + + string + http://www.w3.org/2001/XMLSchema + + StopTasks + Managed + + TasksID + + ru + Tasks ID + + + Array + http://v8.1c.ru/8.1/data/core + + + + Zone + + ru + Zone + + + integer + http://www.w3.org/2001/XMLSchema + + + + diff --git a/SSL/src/WebServices/Exchange_3_0_2_2/Module.bsl b/SSL/src/WebServices/Exchange_3_0_2_2/Module.bsl new file mode 100644 index 000000000..f00c8f969 --- /dev/null +++ b/SSL/src/WebServices/Exchange_3_0_2_2/Module.bsl @@ -0,0 +1,1029 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2023, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +//////////////////////////////////////////////////////////////////////////////// +// Обработчики операций + +// Соответствует операции Upload. +Функция ВыполнитьВыгрузку(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ХранилищеСообщенияОбмена, ОбластьДанных) + + ВойтиВОбластьДанных(ОбластьДанных); + + ПроверитьБлокировкуИнформационнойБазыДляОбновления(); + + ОбменДаннымиСервер.ПроверитьИспользованиеОбменаДанными(); + + УстановитьПривилегированныйРежим(Истина); + + СообщениеОбмена = ""; + + ОбменДаннымиСервер.ВыполнитьВыгрузкуДляУзлаИнформационнойБазыЧерезСтроку(ИмяПланаОбмена, КодУзлаИнформационнойБазы, СообщениеОбмена); + + ХранилищеСообщенияОбмена = Новый ХранилищеЗначения(СообщениеОбмена, Новый СжатиеДанных(9)); + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат ""; + +КонецФункции + +// Соответствует операции UploadData. +Функция ВыполнитьВыгрузкуДанных(ИмяПланаОбмена, + КодУзлаИнформационнойБазы, + ИдентификаторФайлаСтрокой, + ДлительнаяОперация, + ИдентификаторОперации, + ДлительнаяОперацияРазрешена, + ОбластьДанных) + + ВойтиВОбластьДанных(ОбластьДанных); + + ПроверитьБлокировкуИнформационнойБазыДляОбновления(); + + ОбменДаннымиСервер.ПроверитьИспользованиеОбменаДанными(); + + ИдентификаторФайла = Новый УникальныйИдентификатор; + ИдентификаторФайлаСтрокой = Строка(ИдентификаторФайла); + + ВыполнитьВыгрузкуДанныхВКлиентСерверномРежиме(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ИдентификаторФайла, ДлительнаяОперация, ИдентификаторОперации, ДлительнаяОперацияРазрешена); + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат ""; + +КонецФункции + +// Соответствует операции UploadDataInt. +Функция ВыполнитьВыгрузкуДанныхВнутренняяПубликация(ИмяПланаОбмена, + КодУзлаИнформационнойБазы, + ИдентификаторЗадачи, + ОбластьДанных) + + УстановитьПривилегированныйРежим(Истина); + + ПроверитьБлокировкуИнформационнойБазыДляОбновления(); + + ОбменДаннымиСервер.ПроверитьИспользованиеОбменаДанными(); + + ВыполнитьВыгрузкуДанныхВКлиентСерверномРежимеВнутренняяПубликация( + ИмяПланаОбмена, КодУзлаИнформационнойБазы, ИдентификаторЗадачи, ОбластьДанных); + + Возврат ""; + +КонецФункции + +// Соответствует операции Download. +Функция ВыполнитьЗагрузку(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ХранилищеСообщенияОбмена, ОбластьДанных) + + ВойтиВОбластьДанных(ОбластьДанных); + + ПроверитьБлокировкуИнформационнойБазыДляОбновления(); + + ОбменДаннымиСервер.ПроверитьИспользованиеОбменаДанными(); + + УстановитьПривилегированныйРежим(Истина); + + ОбменДаннымиСервер.ВыполнитьЗагрузкуДляУзлаИнформационнойБазыЧерезСтроку(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ХранилищеСообщенияОбмена.Получить()); + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат ""; + +КонецФункции + +// Соответствует операции DownloadData. +Функция ВыполнитьЗагрузкуДанных(ИмяПланаОбмена, + КодУзлаИнформационнойБазы, + ИдентификаторФайлаСтрокой, + ДлительнаяОперация, + ИдентификаторОперации, + ДлительнаяОперацияРазрешена, + ОбластьДанных) + + ВойтиВОбластьДанных(ОбластьДанных); + + ПроверитьБлокировкуИнформационнойБазыДляОбновления(); + + ОбменДаннымиСервер.ПроверитьИспользованиеОбменаДанными(); + + ИдентификаторФайла = Новый УникальныйИдентификатор(ИдентификаторФайлаСтрокой); + + ВыполнитьЗагрузкуДанныхВКлиентСерверномРежиме(ИмяПланаОбмена, КодУзлаИнформационнойБазы, ИдентификаторФайла, ДлительнаяОперация, ИдентификаторОперации, ДлительнаяОперацияРазрешена); + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат ""; + +КонецФункции + +// Соответствует операции DownloadDataInt. +Функция ВыполнитьЗагрузкуДанныхВнутренняяПубликация(ИмяПланаОбмена, + КодУзлаИнформационнойБазы, + ИдентификаторЗадачи, + ИдентификаторФайлаСтрокой, + ОбластьДанных) + + УстановитьПривилегированныйРежим(Истина); + + ПроверитьБлокировкуИнформационнойБазыДляОбновления(); + + ОбменДаннымиСервер.ПроверитьИспользованиеОбменаДанными(); + + ИдентификаторФайла = Новый УникальныйИдентификатор(ИдентификаторФайлаСтрокой); + + ВыполнитьЗагрузкуДанныхВКлиентСерверномРежимеВнутренняяПубликация( + ИмяПланаОбмена, КодУзлаИнформационнойБазы, ИдентификаторЗадачи, ИдентификаторФайла, ОбластьДанных); + + Возврат ""; + +КонецФункции + +// Соответствует операции GetIBParameters. +Функция ПолучитьПараметрыИнформационнойБазы(ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, ОбластьДанных, ДополнительныеПараметрыXDTO) + + ВойтиВОбластьДанных(ОбластьДанных); + + ДополнительныеПараметры = СериализаторXDTO.ПрочитатьXDTO(ДополнительныеПараметрыXDTO); + + Результат = ОбменДаннымиСервер.ПараметрыИнформационнойБазы(ИмяПланаОбмена, КодУзла, СообщениеОбОшибке, ДополнительныеПараметры); + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат СериализаторXDTO.ЗаписатьXDTO(Результат); + +КонецФункции + +// Соответствует операции CreateExchangeNode. +Функция СоздатьУзелОбменаДанными(ПараметрыXDTO, ОбластьДанных) + + ВойтиВОбластьДанных(ОбластьДанных); + + УстановитьПривилегированныйРежим(Истина); + + ОбменДаннымиСервер.ПроверитьИспользованиеОбменаДанными(Истина); + + Параметры = СериализаторXDTO.ПрочитатьXDTO(ПараметрыXDTO); + + НастройкиПодключения = Параметры.НастройкиПодключения; + + МодульПомощникНастройки = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными(); + Попытка + МодульПомощникНастройки.ЗаполнитьНастройкиПодключенияИзXML( + НастройкиПодключения, Параметры.СтрокаПараметровXML, , Истина); + + Если ЗначениеЗаполнено(НастройкиПодключения.WSКонечнаяТочкаКорреспондента) Тогда + НастройкиПодключения.WSКонечнаяТочкаКорреспондента = + ПланыОбмена["ОбменСообщениями"].НайтиПоКоду(НастройкиПодключения.WSКонечнаяТочкаКорреспондента); + НастройкиПодключения.Вставить("ВидТранспортаСообщенийОбмена", Перечисления.ВидыТранспортаСообщенийОбмена.WS); + Иначе + НастройкиПодключения.Вставить("ВидТранспортаСообщенийОбмена", Перечисления.ВидыТранспортаСообщенийОбмена.WSПассивныйРежим); + КонецЕсли; + + МодульПомощникНастройки.ВыполнитьДействияПоНастройкеОбменаДанными( + НастройкиПодключения); + Исключение + СообщениеОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), + УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); + + ВызватьИсключение СообщениеОбОшибке; + КонецПопытки; + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат ""; + +КонецФункции + +// Соответствует операции RemoveExchangeNode. +Функция УдалитьУзелОбменаДанными(ИмяПланаОбмена, ИдентификаторУзла, ОбластьДанных) + + ВойтиВОбластьДанных(ОбластьДанных); + + УстановитьПривилегированныйРежим(Истина); + + УзелОбмена = ОбменДаннымиСервер.УзелПланаОбменаПоКоду(ИмяПланаОбмена, ИдентификаторУзла); + + Если УзелОбмена = Неопределено Тогда + ПредставлениеПрограммы = ?(ОбщегоНазначения.РазделениеВключено(), + Метаданные.Синоним, ОбменДаннымиПовтИсп.ИмяЭтойИнформационнойБазы()); + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В ""%1"" не найден узел плана обмена ""%2"" с идентификатором ""%3"".'"), + ПредставлениеПрограммы, ИмяПланаОбмена, ИдентификаторУзла); + КонецЕсли; + + ОбменДаннымиСервер.УдалитьНастройкуСинхронизации(УзелОбмена); + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат ""; + +КонецФункции + +// Соответствует операции GetContinuousOperationStatus. +Функция ПолучитьСостояниеДлительнойОперации(ИдентификаторОперации, СтрокаСообщенияОбОшибке, ОбластьДанных) + + ВойтиВОбластьДанных(ОбластьДанных); + + УстановитьПривилегированныйРежим(Истина); + + СостоянияФоновогоЗадания = Новый Соответствие; + СостоянияФоновогоЗадания.Вставить(СостояниеФоновогоЗадания.Активно, "Active"); + СостоянияФоновогоЗадания.Вставить(СостояниеФоновогоЗадания.Завершено, "Completed"); + СостоянияФоновогоЗадания.Вставить(СостояниеФоновогоЗадания.ЗавершеноАварийно, "Failed"); + СостоянияФоновогоЗадания.Вставить(СостояниеФоновогоЗадания.Отменено, "Canceled"); + + ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Новый УникальныйИдентификатор(ИдентификаторОперации)); + + Если ФоновоеЗадание = Неопределено Тогда + + СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найдено длительной операции с идентификатором %1.'"), + ИдентификаторОперации); + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат СостоянияФоновогоЗадания.Получить(СостояниеФоновогоЗадания.Отменено); + + КонецЕсли; + + Если ФоновоеЗадание.ИнформацияОбОшибке <> Неопределено Тогда + + СтрокаСообщенияОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ФоновоеЗадание.ИнформацияОбОшибке); + + КонецЕсли; + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат СостоянияФоновогоЗадания.Получить(ФоновоеЗадание.Состояние); + +КонецФункции + +// Соответствует операции PrepareGetFile. +Функция PrepareGetFile(FileId, BlockSize, TransferId, PartQuantity, Zone) + + ВойтиВОбластьДанных(Zone); + + УстановитьПривилегированныйРежим(Истина); + + TransferId = Новый УникальныйИдентификатор; + + ИмяИсходногоФайла = ОбменДаннымиСервер.ПолучитьФайлИзХранилища(FileId); + + ВременныйКаталог = ВременныйКаталогВыгрузки(TransferId); + + ИмяИсходногоФайлаВоВременномКаталоге = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ВременныйКаталог, "data.zip"); + + СоздатьКаталог(ВременныйКаталог); + + ПереместитьФайл(ИмяИсходногоФайла, ИмяИсходногоФайлаВоВременномКаталоге); + + Если BlockSize <> 0 Тогда + // Разделение файла на части + ИменаФайлов = РазделитьФайл(ИмяИсходногоФайлаВоВременномКаталоге, BlockSize * 1024); + PartQuantity = ИменаФайлов.Количество(); + + УдалитьФайлы(ИмяИсходногоФайлаВоВременномКаталоге); + Иначе + PartQuantity = 1; + ПереместитьФайл(ИмяИсходногоФайлаВоВременномКаталоге, ИмяИсходногоФайлаВоВременномКаталоге + ".1"); + КонецЕсли; + + ВыйтиИзОбластиДанных(Zone); + + Возврат ""; + +КонецФункции + +// Соответствует операции GetFilePart. +Функция GetFilePart(TransferId, PartNumber, PartData, Zone) + + ВойтиВОбластьДанных(Zone); + + ИменаФайлов = НайтиФайлЧасти(ВременныйКаталогВыгрузки(TransferId), PartNumber); + + Если ИменаФайлов.Количество() = 0 Тогда + + ШаблонСообщения = НСтр("ru = 'Не найден фрагмент %1 сессии передачи с идентификатором %2'"); + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Строка(PartNumber), Строка(TransferId)); + ВызватьИсключение(ТекстСообщения); + + ИначеЕсли ИменаФайлов.Количество() > 1 Тогда + + ШаблонСообщения = НСтр("ru = 'Найдено несколько фрагментов %1 сессии передачи с идентификатором %2'"); + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Строка(PartNumber), Строка(TransferId)); + ВызватьИсключение(ТекстСообщения); + + КонецЕсли; + + ИмяФайлаЧасти = ИменаФайлов[0].ПолноеИмя; + PartData = Новый ДвоичныеДанные(ИмяФайлаЧасти); + + ВыйтиИзОбластиДанных(Zone); + + Возврат ""; + +КонецФункции + +// Соответствует операции ReleaseFile. +Функция ReleaseFile(TransferId) + + Попытка + УдалитьФайлы(ВременныйКаталогВыгрузки(TransferId)); + Исключение + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеВременногоФайла(), + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + Возврат ""; + +КонецФункции + +// Соответствует операции PutFilePart. +// +// Параметры: +// TransferId - УникальныйИдентификатор - уникальный идентификатор сессии передачи данных. +// PartNumber - Число - номер части файла. +// PartData - ДвоичныеДанные - данные части файла. +// +Функция PutFilePart(TransferId, PartNumber, PartData, Zone) + + ВойтиВОбластьДанных(Zone); + + ВременныйКаталог = ВременныйКаталогВыгрузки(TransferId); + + Если PartNumber = 1 Тогда + + СоздатьКаталог(ВременныйКаталог); + + КонецЕсли; + + ИмяФайла = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ВременныйКаталог, ПолучитьИмяФайлаЧасти(PartNumber)); + + PartData.Записать(ИмяФайла); + + ВыйтиИзОбластиДанных(Zone); + + Возврат ""; + +КонецФункции + +// Соответствует операции SaveFileFromParts. +Функция SaveFileFromParts(TransferId, PartQuantity, FileId, Zone) + + ВойтиВОбластьДанных(Zone); + + УстановитьПривилегированныйРежим(Истина); + + ВременныйКаталог = ВременныйКаталогВыгрузки(TransferId); + + ФайлыЧастейДляОбъединения = Новый Массив; + + Для НомерЧасти = 1 По PartQuantity Цикл + + ИмяФайла = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ВременныйКаталог, ПолучитьИмяФайлаЧасти(НомерЧасти)); + + Если НайтиФайлы(ИмяФайла).Количество() = 0 Тогда + ШаблонСообщения = НСтр("ru = 'Не найден фрагмент %1 сессии передачи с идентификатором %2. + |Необходимо убедиться, что в настройках программы заданы параметры + |""Каталог временных файлов для Linux"" и ""Каталог временных файлов для Windows"".'"); + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Строка(НомерЧасти), Строка(TransferId)); + ВызватьИсключение(ТекстСообщения); + КонецЕсли; + + ФайлыЧастейДляОбъединения.Добавить(ИмяФайла); + + КонецЦикла; + + ИмяАрхива = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ВременныйКаталог, "data.zip"); + + ОбъединитьФайлы(ФайлыЧастейДляОбъединения, ИмяАрхива); + + Разархиватор = Новый ЧтениеZipФайла(ИмяАрхива); + + Если Разархиватор.Элементы.Количество() = 0 Тогда + + Попытка + УдалитьФайлы(ВременныйКаталог); + Исключение + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеВременногоФайла(), + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + ВыйтиИзОбластиДанных(Zone); + ВызватьИсключение(НСтр("ru = 'Файл архива не содержит данных.'")); + + КонецЕсли; + + КаталогВыгрузки = ОбменДаннымиСервер.КаталогВременногоХранилищаФайлов(); + + ЭлементАрхива = Разархиватор.Элементы.Получить(0); + ИмяФайла = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогВыгрузки, ЭлементАрхива.Имя); + + Разархиватор.Извлечь(ЭлементАрхива, КаталогВыгрузки); + Разархиватор.Закрыть(); + + FileId = ОбменДаннымиСервер.ПоместитьФайлВХранилище(ИмяФайла, FileId); + + Попытка + УдалитьФайлы(ВременныйКаталог); + Исключение + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииУдалениеВременногоФайла(), + УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + ВыйтиИзОбластиДанных(Zone); + + Возврат ""; + +КонецФункции + +// Соответствует операции PutMessageForDataMatching. +Функция PutMessageForDataMatching(ИмяПланаОбмена, ИдентификаторУзла, ИдентификаторФайла, ОбластьДанных) + + ВойтиВОбластьДанных(ОбластьДанных); + + УстановитьПривилегированныйРежим(Истина); + + УзелОбмена = ОбменДаннымиСервер.УзелПланаОбменаПоКоду(ИмяПланаОбмена, ИдентификаторУзла); + + Если УзелОбмена = Неопределено Тогда + + ПредставлениеПрограммы = ?(ОбщегоНазначения.РазделениеВключено(), + Метаданные.Синоним, ОбменДаннымиПовтИсп.ИмяЭтойИнформационнойБазы()); + + ВыйтиИзОбластиДанных(ОбластьДанных); + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В ""%1"" не найден узел плана обмена ""%2"" с идентификатором ""%3"".'"), + ПредставлениеПрограммы, ИмяПланаОбмена, ИдентификаторУзла); + + КонецЕсли; + + ПроверитьБлокировкуИнформационнойБазыДляОбновления(); + + ОбменДаннымиСервер.ПроверитьИспользованиеОбменаДанными(); + + ОбменДаннымиСлужебный.ПоместитьСообщениеДляСопоставленияДанных(УзелОбмена, ИдентификаторФайла); + + // У веб-клиента и тонкого клиент разные временные каталоги. + // Если продолжить настройку синхронизации из тонкого клиента, то будет ошибка из-за отсутствия файла во временном + // каталоге тонкого клиента. Что бы этого не было, перемещаем файл сопоставления в каталог, к которому гарантированно + // будет доступ у двух сеансов. + ПереместитьФайлСообщенияДляФайловойИБ(ИдентификаторФайла); + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат ""; + +КонецФункции + +// Соответствует операции Ping. +Функция Ping() + // Проверка связи. + Возврат ""; +КонецФункции + +// Соответствует операции TestConnection. +Функция TestConnection(ИмяПланаОбмена, КодУзла, Результат, ОбластьДанных) + + ВойтиВОбластьДанных(ОбластьДанных); + + УстановитьПривилегированныйРежим(Истина); + + // Проверяем наличие прав для выполнения обмена. + Попытка + ОбменДаннымиСервер.ПроверитьВозможностьВыполненияОбменов(Истина); + Исключение + Результат = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Возврат Ложь; + КонецПопытки; + + // Проверяем блокировку информационной базы для обновления. + Попытка + ПроверитьБлокировкуИнформационнойБазыДляОбновления(); + Исключение + Результат = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Возврат Ложь; + КонецПопытки; + + // Проверяем наличие узла плана обмена (возможно узел уже удален). + УзелСсылка = ОбменДаннымиСервер.УзелПланаОбменаПоКоду(ИмяПланаОбмена, КодУзла); + Если УзелСсылка = Неопределено + Или ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелСсылка, "ПометкаУдаления") Тогда + ПредставлениеПрограммы = ?(ОбщегоНазначения.РазделениеВключено(), + Метаданные.Синоним, ОбменДаннымиПовтИсп.ИмяЭтойИнформационнойБазы()); + + ПредставлениеПланаОбмена = Метаданные.ПланыОбмена[ИмяПланаОбмена].Представление(); + + Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В ""%1"" не найдена настройка синхронизации данных ""%2"" с идентификатором ""%3"".'"), + ПредставлениеПрограммы, ПредставлениеПланаОбмена, КодУзла); + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат Ложь; + КонецЕсли; + + ВыйтиИзОбластиДанных(ОбластьДанных); + + Возврат Истина; +КонецФункции + +// Соответствует операции ChangeNodeTransportToWSPass. +Функция ChangeNodeTransportToWSInt(ПараметрыXDTO, ОбластьДанных) + + ВойтиВОбластьДанных(ОбластьДанных); + + УстановитьПривилегированныйРежим(Истина); + + Параметры = СериализаторXDTO.ПрочитатьXDTO(ПараметрыXDTO); + + УзелОбмена = ОбменДаннымиСервер.УзелПланаОбменаПоКоду(Параметры.ИмяПланаОбмена, Параметры.КодУзлаКорреспондента); + + Если УзелОбмена = Неопределено Тогда + + ПредставлениеПрограммы = ?(ОбщегоНазначения.РазделениеВключено(), + Метаданные.Синоним, ОбменДаннымиПовтИсп.ИмяЭтойИнформационнойБазы()); + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В ""%1"" не найден узел плана обмена ""%2"" с идентификатором ""%3"".'"), + ПредставлениеПрограммы, Параметры.ИмяПланаОбмена, Параметры.КодУзлаКорреспондента); + + КонецЕсли; + + КонечнаяТочка = ПланыОбмена["ОбменСообщениями"].НайтиПоКоду(Параметры.КонечнаяТочкаКорреспондента); + + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("Корреспондент", УзелОбмена); + СтруктураЗаписи.Вставить("ВидТранспортаСообщенийОбменаПоУмолчанию", Перечисления.ВидыТранспортаСообщенийОбмена.WS); + СтруктураЗаписи.Вставить("WSКонечнаяТочкаКорреспондента", КонечнаяТочка); + СтруктураЗаписи.Вставить("WSОбластьДанныхКорреспондента", Параметры.ОбластьДанныхКорреспондента); + СтруктураЗаписи.Вставить("WSИспользоватьПередачуБольшогоОбъемаДанных", Истина); + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Изменение транспорта узла ""%1"" плана обмена ""%2"" в области данных %3 на ""Интернет"".'"), + Параметры.КодУзлаКорреспондента, Параметры.ИмяПланаОбмена, ОбластьДанных); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВебСервис.СобытиеЖурналаРегистрацииИзменениеТранспортаНаWS(), + УровеньЖурналаРегистрации.Информация, , , ТекстСообщения); + + РегистрыСведений.НастройкиТранспортаОбменаДанными.ДобавитьЗапись(СтруктураЗаписи); + + СтруктураЗаписи = Новый Структура("Корреспондент", УзелОбмена); + ОбменДаннымиСлужебный.УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "НастройкиТранспортаОбменаОбластиДанных"); + + ВыйтиИзОбластиДанных(ОбластьДанных); + +КонецФункции + +// Соответствует операции Callback. +Функция Callback(TaskID, Error, Zone) + + ВойтиВОбластьДанных(Zone); + + УстановитьПривилегированныйРежим(Истина); + + МодульОбменДаннымиВнутренняяПубликация = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВнутренняяПубликация"); + МодульОбменДаннымиВнутренняяПубликация.ОтметитьВыполнениеЗадачи(TaskID, Error); + + Если Error = "" Тогда + + Задача = МодульОбменДаннымиВнутренняяПубликация.СледующаяЗадача(TaskID); + ЗадачаПред = TaskID; + + Если Задача = Неопределено Тогда + Возврат ""; + КонецЕсли; + + ПараметрыПроцедуры = Новый Массив; + ПараметрыПроцедуры.Добавить(Задача); + ПараметрыПроцедуры.Добавить(ЗадачаПред); + + Ключ = Задача.ИдентификаторЗадачи; + + ПараметрыЗадания = Новый Структура; + ПараметрыЗадания.Вставить("Ключ", Лев(Ключ, 120)); + ПараметрыЗадания.Вставить("ИмяМетода" , "ОбменДаннымиВнутренняяПубликация.ВыполнитьОчередьЗадач"); + ПараметрыЗадания.Вставить("ОбластьДанных", Zone); + ПараметрыЗадания.Вставить("Использование", Истина); + ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ТекущаяДатаСеанса()); + ПараметрыЗадания.Вставить("Параметры", ПараметрыПроцедуры); + + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); + + Иначе + + Задача = МодульОбменДаннымиВнутренняяПубликация.ЗадачаПоИдентификатору(TaskID); + + Отказ = Ложь; + СтруктураНастроекОбмена = + МодульОбменДаннымиВнутренняяПубликация.НастройкиОбменаДляУзлаИнформационнойБазы(Задача.УзелИнформационнойБазы, Задача.Действие, Отказ); + СтруктураНастроекОбмена.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка; + + ОбменДаннымиСервер.ЗаписьЖурналаРегистрацииОбменаДанными(Error, СтруктураНастроекОбмена, Истина); + ОбменДаннымиСервер.ЗафиксироватьЗавершениеОбмена(СтруктураНастроекОбмена); + + КонецЕсли; + + ВыйтиИзОбластиДанных(Zone); + +КонецФункции + +// Соответствует операции ChekTask. +Функция TaskStatus(TaskID) + + УстановитьПривилегированныйРежим(Истина); + + ПараметрыЗадания = Новый Структура("Ключ", TaskID); + + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + Задания = МодульОчередьЗаданий.ПолучитьЗадания(ПараметрыЗадания); + + Если Задания.Количество() > 0 Тогда + + Состояние = Задания[0].Идентификатор.СостояниеЗадания; + + ОбъектМД = Состояние.Метаданные(); + МенеджерПеречисления = Перечисления[ОбъектМД.Имя]; + ИндексЗначения = МенеджерПеречисления.Индекс(Состояние); + + Возврат ОбъектМД.ЗначенияПеречисления.Получить(ИндексЗначения).Имя; + + Иначе + + Возврат ""; + + КонецЕсли; + +КонецФункции + +// Соответствует операции StopTasks. +Функция StopTasks(TasksID, Zone) + + ВойтиВОбластьДанных(Zone); + + УстановитьПривилегированныйРежим(Истина); + + ИдентификаторыЗадач = СериализаторXDTO.ПрочитатьXDTO(TasksID); + + Для Каждого ИдентификаторЗадачи Из ИдентификаторыЗадач Цикл + + Отбор = Новый Структура("Ключ", ИдентификаторЗадачи); + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + Задания = МодульОчередьЗаданий.ПолучитьЗадания(Отбор); + + Если Задания.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + + УникальныйИдентификаторФЗ = Задания[0].Идентификатор.ИсполняющееФоновоеЗадание; + + Если Не ЗначениеЗаполнено(УникальныйИдентификаторФЗ) Тогда + Продолжить; + КонецЕсли; + + ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(УникальныйИдентификаторФЗ); + Если ФоновоеЗадание <> Неопределено Тогда + ФоновоеЗадание.Отменить(); + КонецЕсли; + + КонецЦикла; + + ВыйтиИзОбластиДанных(Zone); + + Возврат ""; + +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// Локальные служебные процедуры и функции. + +Процедура ПроверитьБлокировкуИнформационнойБазыДляОбновления() + + Если ЗначениеЗаполнено(ОбновлениеИнформационнойБазыСлужебный.ИнформационнаяБазаЗаблокированаДляОбновления()) Тогда + + ВызватьИсключение НСтр("ru = 'Синхронизация данных временно недоступна в связи с обновлением приложения в Интернете.'"); + + КонецЕсли; + +КонецПроцедуры + +Процедура ВыполнитьВыгрузкуДанныхВКлиентСерверномРежиме(ИмяПланаОбмена, + КодУзлаИнформационнойБазы, + ИдентификаторФайла, + ДлительнаяОперация, + ИдентификаторОперации, + ДлительнаяОперацияРазрешена) + + КлючФоновогоЗадания = КлючФоновогоЗаданияВыгрузкиЗагрузкиДанных(ИмяПланаОбмена, + КодУзлаИнформационнойБазы, + НСтр("ru = 'Выгрузка'")); + + Если ЕстьАктивныеФоновыеЗаданияСинхронизацииДанных(КлючФоновогоЗадания) Тогда + ВызватьИсключение НСтр("ru = 'Синхронизация данных уже выполняется.'"); + КонецЕсли; + + ПараметрыПроцедуры = Новый Структура; + ПараметрыПроцедуры.Вставить("ИмяПланаОбмена", ИмяПланаОбмена); + ПараметрыПроцедуры.Вставить("КодУзлаИнформационнойБазы", КодУзлаИнформационнойБазы); + ПараметрыПроцедуры.Вставить("ИдентификаторФайла", ИдентификаторФайла); + ПараметрыПроцедуры.Вставить("ИспользоватьСжатие", Истина); + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Выгрузка данных через веб-сервис.'"); + ПараметрыВыполнения.КлючФоновогоЗадания = КлючФоновогоЗадания; + + ПараметрыВыполнения.ЗапуститьНеВФоне = Не ДлительнаяОперацияРазрешена; + ПараметрыВыполнения.ЗапуститьВФоне = ДлительнаяОперацияРазрешена; + + ФоновоеЗадание = ДлительныеОперации.ВыполнитьВФоне( + "ОбменДаннымиВебСервис.ВыполнитьВыгрузкуДляУзлаИнформационнойБазыВСервисПередачиФайлов", + ПараметрыПроцедуры, + ПараметрыВыполнения); + + Если ФоновоеЗадание.Статус = "Выполняется" Тогда + ИдентификаторОперации = Строка(ФоновоеЗадание.ИдентификаторЗадания); + ДлительнаяОперация = Истина; + Возврат; + ИначеЕсли ФоновоеЗадание.Статус = "Выполнено" Тогда + ДлительнаяОперация = Ложь; + Возврат; + Иначе + Сообщение = НСтр("ru = 'Ошибка при выгрузке данных через веб-сервис.'"); + Если ЗначениеЗаполнено(ФоновоеЗадание.ПодробноеПредставлениеОшибки) Тогда + Сообщение = ФоновоеЗадание.ПодробноеПредставлениеОшибки; + КонецЕсли; + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииВыгрузкаДанныхВСервисПередачиФайлов(), + УровеньЖурналаРегистрации.Ошибка, , , Сообщение); + + ВызватьИсключение Сообщение; + КонецЕсли; + +КонецПроцедуры + +Процедура ВыполнитьВыгрузкуДанныхВКлиентСерверномРежимеВнутренняяПубликация(ИмяПланаОбмена, + КодУзлаИнформационнойБазы, ИдентификаторЗадачи, ОбластьДанных) + + ПараметрыПроцедуры = Новый Массив; + ПараметрыПроцедуры.Добавить(ИмяПланаОбмена); + ПараметрыПроцедуры.Добавить(КодУзлаИнформационнойБазы); + ПараметрыПроцедуры.Добавить(ИдентификаторЗадачи); + + Ключ = ИдентификаторЗадачи; + + ПараметрыЗадания = Новый Структура; + ПараметрыЗадания.Вставить("Ключ", Лев(Ключ, 120)); + ПараметрыЗадания.Вставить("ИмяМетода" , "ОбменДаннымиВнутренняяПубликация.ВыполнитьВыгрузкуДляУзлаИнформационнойБазыВСервисПередачиФайлов"); + ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных); + ПараметрыЗадания.Вставить("Использование", Истина); + ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ТекущаяДатаСеанса()); + ПараметрыЗадания.Вставить("Параметры", ПараметрыПроцедуры); + + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); + +КонецПроцедуры + +Процедура ВыполнитьЗагрузкуДанныхВКлиентСерверномРежиме(ИмяПланаОбмена, + КодУзлаИнформационнойБазы, + ИдентификаторФайла, + ДлительнаяОперация, + ИдентификаторОперации, + ДлительнаяОперацияРазрешена) + + + КлючФоновогоЗадания = КлючФоновогоЗаданияВыгрузкиЗагрузкиДанных(ИмяПланаОбмена, + КодУзлаИнформационнойБазы, + НСтр("ru = 'Загрузка'")); + + Если ЕстьАктивныеФоновыеЗаданияСинхронизацииДанных(КлючФоновогоЗадания) Тогда + ВызватьИсключение НСтр("ru = 'Синхронизация данных уже выполняется.'"); + КонецЕсли; + + ПараметрыПроцедуры = Новый Структура; + ПараметрыПроцедуры.Вставить("ИмяПланаОбмена", ИмяПланаОбмена); + ПараметрыПроцедуры.Вставить("КодУзлаИнформационнойБазы", КодУзлаИнформационнойБазы); + ПараметрыПроцедуры.Вставить("ИдентификаторФайла", ИдентификаторФайла); + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Загрузка данных через веб-сервис.'"); + ПараметрыВыполнения.КлючФоновогоЗадания = КлючФоновогоЗадания; + + ПараметрыВыполнения.ЗапуститьНеВФоне = Не ДлительнаяОперацияРазрешена; + ПараметрыВыполнения.ЗапуститьВФоне = ДлительнаяОперацияРазрешена; + + ФоновоеЗадание = ДлительныеОперации.ВыполнитьВФоне( + "ОбменДаннымиВебСервис.ВыполнитьЗагрузкуДляУзлаИнформационнойБазыИзСервисаПередачиФайлов", + ПараметрыПроцедуры, + ПараметрыВыполнения); + + Если ФоновоеЗадание.Статус = "Выполняется" Тогда + ИдентификаторОперации = Строка(ФоновоеЗадание.ИдентификаторЗадания); + ДлительнаяОперация = Истина; + Возврат; + ИначеЕсли ФоновоеЗадание.Статус = "Выполнено" Тогда + ДлительнаяОперация = Ложь; + Возврат; + Иначе + + Сообщение = НСтр("ru = 'Ошибка при загрузке данных через веб-сервис.'"); + Если ЗначениеЗаполнено(ФоновоеЗадание.ПодробноеПредставлениеОшибки) Тогда + Сообщение = ФоновоеЗадание.ПодробноеПредставлениеОшибки; + КонецЕсли; + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииЗагрузкаДанныхИзСервисаПередачиФайлов(), + УровеньЖурналаРегистрации.Ошибка, , , Сообщение); + + ВызватьИсключение Сообщение; + КонецЕсли; + +КонецПроцедуры + +Процедура ВыполнитьЗагрузкуДанныхВКлиентСерверномРежимеВнутренняяПубликация(ИмяПланаОбмена, + КодУзлаИнформационнойБазы, ИдентификаторЗадачи, ИдентификаторФайла, ОбластьДанных) + + ПараметрыПроцедуры = Новый Массив; + ПараметрыПроцедуры.Добавить(ИмяПланаОбмена); + ПараметрыПроцедуры.Добавить(КодУзлаИнформационнойБазы); + ПараметрыПроцедуры.Добавить(ИдентификаторЗадачи); + ПараметрыПроцедуры.Добавить(ИдентификаторФайла); + + Ключ = ИдентификаторЗадачи; + + ПараметрыЗадания = Новый Структура; + ПараметрыЗадания.Вставить("Ключ", Лев(Ключ, 120)); + ПараметрыЗадания.Вставить("ИмяМетода" , "ОбменДаннымиВнутренняяПубликация.ВыполнитьЗагрузкуДляУзлаИнформационнойБазыИзСервисаПередачиФайлов"); + ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных); + ПараметрыЗадания.Вставить("Использование", Истина); + ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ТекущаяДатаСеанса()); + ПараметрыЗадания.Вставить("Параметры", ПараметрыПроцедуры); + + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); + +КонецПроцедуры + +Функция КлючФоновогоЗаданияВыгрузкиЗагрузкиДанных(ПланОбмена, КодУзла, Действие) + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'ПланОбмена:%1 КодУзла:%2 Действие:%3'"), + ПланОбмена, + КодУзла, + Действие); + +КонецФункции + +Функция ЕстьАктивныеФоновыеЗаданияСинхронизацииДанных(КлючФоновогоЗадания) + + Отбор = Новый Структура; + Отбор.Вставить("Ключ", КлючФоновогоЗадания); + Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); + + АктивныеФоновыеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); + + Возврат (АктивныеФоновыеЗадания.Количество() > 0); + +КонецФункции + +Функция ПолучитьИмяФайлаЧасти(PartNumber) + + Результат = "data.zip.[n]"; + + Возврат СтрЗаменить(Результат, "[n]", Формат(PartNumber, "ЧГ=0")); +КонецФункции + +Функция ВременныйКаталогВыгрузки(Знач ИдентификаторСессии) + + УстановитьПривилегированныйРежим(Истина); + + ВременныйКаталог = "{ИдентификаторСессии}"; + ВременныйКаталог = СтрЗаменить(ВременныйКаталог, "ИдентификаторСессии", Строка(ИдентификаторСессии)); + + Результат = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ОбменДаннымиСервер.КаталогВременногоХранилищаФайлов(), ВременныйКаталог); + + Возврат Результат; +КонецФункции + +Функция НайтиФайлЧасти(Знач Каталог, Знач НомерФайла) + + Для КоличествоРазрядов = КоличествоРазрядовЧисла(НомерФайла) По 5 Цикл + + ФорматнаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ЧЦ=%1; ЧВН=; ЧГ=0", Строка(КоличествоРазрядов)); + + ИмяФайла = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("data.zip.%1", Формат(НомерФайла, ФорматнаяСтрока)); + + ИменаФайлов = НайтиФайлы(Каталог, ИмяФайла); + + Если ИменаФайлов.Количество() > 0 Тогда + + Возврат ИменаФайлов; + + КонецЕсли; + + КонецЦикла; + + Возврат Новый Массив; +КонецФункции + +Функция КоличествоРазрядовЧисла(Знач Число) + + Возврат СтрДлина(Формат(Число, "ЧДЦ=0; ЧГ=0")); + +КонецФункции + +Процедура ПереместитьФайлСообщенияДляФайловойИБ(ИдентификаторФайла) + + Если НЕ ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда + Возврат; + КонецЕсли; + + ТекстЗапроса = + "ВЫБРАТЬ + | СообщенияОбменаДанными.ИмяФайлаСообщения КАК ИмяФайла + |ИЗ + | РегистрСведений.СообщенияОбменаДанными КАК СообщенияОбменаДанными + |ГДЕ + | СообщенияОбменаДанными.ИдентификаторСообщения = &ИдентификаторСообщения"; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ИдентификаторСообщения", Строка(ИдентификаторФайла)); + Запрос.Текст = ТекстЗапроса; + + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + Возврат; + КонецЕсли; + + Выборка = РезультатЗапроса.Выбрать(); + Выборка.Следующий(); + ИмяФайла = Выборка.ИмяФайла; + ИмяФайлаСообщения = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ОбменДаннымиСервер.КаталогВременногоХранилищаФайлов(), ИмяФайла); + + ИмяКаталога = ОбменДаннымиСервер.ИмяКаталогаДляСопоставленияФайловаяИБ(); + + Каталог = Новый Файл(ИмяКаталога); + Если Не Каталог.Существует() Тогда + СоздатьКаталог(ИмяКаталога); + КонецЕсли; + + ИмяНовогоФайлаСообщения = ОбменДаннымиСервер.ПолноеИмяФайлаДляСопоставленияФайловаяИБ(ИмяФайла); + + ПереместитьФайл(ИмяФайлаСообщения, ИмяНовогоФайлаСообщения); + +КонецПроцедуры + +Процедура ВойтиВОбластьДанных(ОбластьДанных) + + Если ОбластьДанных = 0 + Или Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса"); + ВерсияБТС = МодульТехнологияСервиса.ВерсияБиблиотеки(); + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБТС, "2.0.7.46") >= 0 Тогда + МодульРаботаВМоделиСервиса.ВойтиВОбластьДанных(ОбластьДанных); //АПК: 287 + Иначе + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); + КонецЕсли; + +КонецПроцедуры + +Процедура ВыйтиИзОбластиДанных(ОбластьДанных) + + Если ОбластьДанных = 0 + Или Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса"); + ВерсияБТС = МодульТехнологияСервиса.ВерсияБиблиотеки(); + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБТС, "2.0.7.46") >= 0 Тогда + МодульРаботаВМоделиСервиса.ВыйтиИзОбластиДанных(); //АПК: 287 + Иначе + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); + КонецЕсли; + +КонецПроцедуры + + +#КонецОбласти